操作系统原理一:进程管理 (2)

终端用户的请求:当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来。亦即,使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改。我们把这种静止状态称为挂起状态。

父进程请求:有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。

负荷调节的需要:当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。

操作系统的需要:操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。

在引入挂起状态后:

操作系统原理一:进程管理

活动就绪→静止就绪:当进程处于未被挂起的就绪状态时,称此为活动就绪状态,表示为Readya
当用挂起原语Suspend 将该进程挂起后,该进程便转变为静止就绪状态,表示为Readys,处于Readys状态的进程不再被调度执行

活动阻塞→静止阻塞:当进程处于未被挂起的阻塞状态时,称它是处于活动阻塞状态,表示为Blockeda。当用Suspend原语将它挂起后,进程便转变为静止阻塞状态,表示为Blockeds。处于该状态的进程在其所期待的事件出现后,将从静止阻塞变为静止就绪

静止就绪→活动就绪:处于Readys 状态的进程,若用激活原语Active 激活后,该进程将转变为Readya 状态

静止阻塞→活动阻塞:处于Blockeds 状态的进程,若用激活原语Active 激活后,该进程将转变为Blockeda 状态

五个进程状态的转换

操作系统原理一:进程管理

NULL→创建:一个新进程产生时,该进程处于创建状态

创建→活动就绪:在当前系统的性能和内存的容量均允许的情况下,完成对进程创建的必要操作后,相应的系统进程将进程的状态转换为活动就绪状态

创建→静止就绪:考虑到系统当前资源状况和性能要求,并不分配给新建进程所需资源,主要是主存资源,相应的系统进程将进程状态转为静止就绪状态,对换到外存,不再参与调度,此时进程创建工作尚未完成

执行→终止:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,进程即进终止状态

PCB

为了描述和控制进程的运行,系统为每个进程定义了一个数据结构——进程控制块PCB(Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录型数据结构

PCB 的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程

作为独立运行基本单位的标志

能实现间断性的运行方式

提供进程管理所需要的信息

提供进程调度所需要的信息

实现与其他进程的同步与通信

PCB中的信息:

进程标识符:用于惟一地标识一个进程,一个进程通常有两种标识符:

内部标识符,在所有的操作系统中,都为每一个进程赋予了一个惟一的数字标识符,
它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。

外部标识符,它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。

处理机状态:主要是由处理机的各种寄存器中的内容组成的。处理机在运行时,许多信息都放在寄存器中。当处理机被中断时,所有这些信息都必须保存在PCB 中,以便在该进程重新执行时,能从断点继续执行。这些寄存器包括

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypfsj.html