操作系统-进程


操作系统-进程

理论嘛,当然是枯燥的啦,并且不容易懂,都是这些都是在描述和介绍这门学科的原理,让我们知道计算机操作系统是如何工作的,进程是什么,这让我们更好的理解这门学科,也就是计算机能做什么,为什么能做。

学完之后,一定要用自己的话去概述学过的,在脑子里构建一个框架,用自己的理解去总结学习的,这才叫学习。

Ax 前趋图和程序执行

a 定义

前驱图(Precedence Graph)是指一个有向无循环图,用于描述进程之间的先后顺序。

b 顺序执行

一个应用程序有若干个程序段组成,运行时需要按照先后顺序执行。

所以,每一个段都是一个过程,并不是赋值。

c 程序并发执行

不存在前趋关系可以并发。

并发执行特征

  • 间断性
  • 失去封闭性
  • 不可再现性

Bx 进程的描述

a 定义

  1. 进程是程序的一次执行

  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

  3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立的单位

b 特征

  • 动态性
  • 并发性
  • 独立性
  • 异步性

c 状态与转换

a 三种状态

Ready        // 就绪
Running        // 执行
Block        // 阻塞

b 状态转换

就绪→执行处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
执行→就绪处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
执行→阻塞正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
阻塞→就绪处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

c 创建状态和终止状态

  1. 创建状态
  2. 终止状态

d 挂起操作和进程状态的转换

omit.

d 进程管理中的数据结构

omit.

Cx 进程控制

进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。

由OS内核中的原语句实现。

a 操作系统内核

OS划分不同的层次,将与OS与密切相关的硬件、各种常用设备、使用较高的模块都放在高层次中。两方面

  • 提高OS的运行效率
  • 对软件进行保护,防止被其它应用程序破环。

防止OS遭受到破坏(有意的无意的),通常将处理机的执行状态分成系统态和用户态。

  • 系统态,也称管态、内核态:具有较高特权,能执行一切指令,访问所有存储的区域。
  • 用户态,也称目态:较低的权限,一般情况下不能去OS的地方,和运行OS指令。

支撑功能

  • 中断处理
  • 时钟管理
  • 原语操作

资源管理功能

  • 进程管理(这次主要的内容)
  • 存储器管理
  • 设备管理

b 进程的创建

1 进程层次结构

在OS中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程

被创建的进程,称为子进程

子进程创建的进程称其孙进程

由此,被组成了一个进程家族的一个组

了解进程间的关系十分重要

子进程可以继承父进程所有资源

子进程撤销后把资源归还父进程

父进程撤销必须把子进程先撤销

!微软的Windows则不同,所有进程都是相同地位的,没有层次结构概念。

windows创建进程获得一个句柄,就是一个令牌,可以控制其它进程。所以不具有层次性。

2 进程图

3 引起创建进程的事件

  • 用户登入
  • 作业调度
  • 提供服务
  • 应用请求

4 进程的创建 Creation of Process

PCB:进程控制块

(1)申请空白PCB,获取唯一标识。申请后就从PCB集合中索取一个空白PCB

(2)为新进程分配所需资源,包括物理和逻辑资源,比如输入输出、内存、文件、设备、CPU时间等。

(3)初始化PCB:标识信息、处理机状态、控制信息。

(4)如果进程就绪队列有位置,就让新进程加进去。

c 进程的终止 Termination of Process

1 引起进程终止的时间

  • 正常结束

  • 异常结束

  • 外界干预

2 进程的终止过程

(1)根据被终止进程的标识符

(2)终止进程在运行,应立即停止,并置调度标志为真

(3)若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程

(4)将被终止进程所拥有的全部资源或归还给其父进程或系统。

(5)将终止进程(PCB)从所在队列中移出,等待其它程序来收集信息。

d 进程的阻塞与唤醒

1 引起进程阻塞和唤醒的事件

(1)向系统请求共享资源失败

(2)等待某种操作的完成。

(3)新数据尚未到达。

(4)等待新任务的到达。

2 进程阻塞过程

一起阻塞事件后,进程通过调用Block将自己阻塞。

3 进程唤醒过程

wakeup唤醒,将等待的进程唤醒。

block 和 wakeup必须成对出现,以便能唤醒被阻塞的进程;否则,阻塞进程将会因不能被唤醒而永久地处于阻塞状态,将再没机会继续运行。

e 进程的挂起与激活

1 进程的挂起

suspend将指定进程或处于阻塞状态的进程挂起。首先检查被挂起进程的状态,若处于活动,则置于静止阻塞,若处于就绪,改为静止。

2 进程的激活过程

利用激活active指定进程激活。将进程从外存调入内存,检查该进程的现行状态,若静止,改为活动。

H 参考

[1] https://www.cnblogs.com/kiplove/p/6745335.html


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录