一、进程的描述
1、进程的静态描述
一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。如何从处理机的活动角度,如何识别程序执行活动的进程?系统中描述进程存在和能够反映其变化的物理实体,即进程的静态描述------进程控制块(PCB)、有关程序段和该程序段对其进行操作的数据结构集。
a)进程控制块包含进程的描述信息,控制信息以及资源信息,是进程动态特征的集中反映。系统根据PCB感知进程的存在,通过PCB中所包含的各项变量的变化掌握进程所处的状态,以达到控制进程活动的目的。进程的PCB是系统感知进程的唯一实体,几乎所有的多道操作系统中,一个进程的PCB结构都是全部或者部分常驻内存的。包括描述信息,控制信息,资源信息以及CPU现场保护结构。
b)进程的程序部分描述进程所要完成的功能。数据结构集是程序在执行时必不可少的工作区和操作对象。两者一般存放在外存中,直到该进程执行时在调入内存。
1.1、进程上下文
a)进程上下文实际上是进程执行过程中顺序关联的静态描述。进程上下文是一个与进程切换和处理机状态发生交换有关的概念。操作系统需要直到和记忆进程已经执行到什么地方或者新的进程将从何处执行。还有调用子程序的情况,执行后从何处继续执行,存放在什么地方等都需要记忆。
已执行过的进程的指令和数据在相关寄存器与堆栈中的内容称为上文;正在执行的指令和数据在相关寄存器与堆栈中的内容称为正文;待执行的指令和数据在相关寄存器与堆栈中的内容称为下文。
不发生进程调度时,进程上下文的改变都是在同一进程内进行的。
b)进程上下文的切换
进程上下文切换发生在不同的进程之间而不是同一进程内。
切换过程一般包含3部分,并涉及3个进程。一、保存被切换进程的正文部分(或当前状态)至有关区,如PCB中;二、操作系统进程中有关调度和资源分配程序执行,并选取新进程;三、将被选中进程的原来被保存的正文部分从有关存储区中取出,并送至有关寄存器与堆栈中,激活被选中进程执行。
为提高系统执行效率,有的计算机在设计时采用多组寄存器技术。
1.2、进程空间与大小
任一进程都有一个自己的地址空间,该空间被称为进程空间或虚空间。
进程空间的大小只与处理机的位数有关,如:32为处理机的进程空间大小为232 。
二、进程状态及其转换
一个进程至少有五个状态:初始状态、执行状态、等待状态、就绪状态和终止状态。
一个进程在并发执行中,由于资源共享和竞争,有时处于执行状态;有时,进程则因等待某件事件的发生而处于等待状态;另外,当一个处于等待状态的进程因等待事件发生唤醒后,又因不可能立即得到处理机而进入就绪状态,处于就绪状态的进程已经得到除CPU之外的其他资源,只要由调度得到处理机,便可立即执行;进程刚被创建时,由于其他进程正占有处理机而得不到执行,只能处于初始状态;进程在执行结束以后,将退出执行而被终止,这时进程处于终止状态。
三、进程控制
进程控制就是系统使用一些具有特定功能的程序段来创建、撤销进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。
1、原语
一般,把系统态下执行某些具有特定功能的程序段称为原语。
原语分为两类:一类是机器指令级的,其特点是执行期间不允许中断。二、功能级的,其特点是作为原语的程序段不允许并发执行。
2、进程创建与撤销
2.1 进程创建的方式有:
a)由系统程序模块统一创建。由系统统一创建的进程之间是平等的,它们之间一般不存在资源继承关系。
b)由父进程控制。父进程与父进程创建的进程之间存在隶属关系,且构成树形结构的家族关系。属于某个家族的一个进程可以继承其父进程所拥有的资源。
折两种方式都必须调用创建原语来实现。
2.2 进程撤销
导致进程撤销的有:
a)该进程已完成所要求的功能二正常终止;
b)由于某中错误导致非正常终止;
c)祖先进程要求撤销某个子进程。
这里要注意的是:如果被撤销的进程有自己的子进程,则撤销原语先撤销其子进程的PCB结构并释放子进程所占用的资源以后,再撤销当前进程的PCB结构并释放其资源。(撤销原语首先要检查PCB进程链或进程家族,寻找所要撤销的进程是否存在)。
2.3 进程的阻塞与唤醒
实现进程的执行状态到等待状态---阻塞原语;由等待状态到就绪状态----唤醒原语
阻塞原语在一个进程期待某一事件发生,但是发生条件尚不具备时,该进程自己调用来阻塞自己。(其中过程要保护该进程的CPU现场,转进程调度程序选择新的就绪进程投入运行,否则,处理机将会出现空转而浪费资源)。
当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒。(不能自己唤醒自己)
唤醒方式有两种:由系统进程唤醒;由事件发生进程唤醒。