第二章 进程的描述与控制
2.1进程的定义:
(1)进程是程序的一次执行
(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动
(3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
2.2操作系统为进程配置了一个专门的数据结构PCB(Process Control Block)。系统用PCB来描述进程的基本情况和活动过程,进而控制和管理进程
2.3进程的基本状态及转换
1.进程的三种基本状态
(1)就绪态(Ready)。这是指进程已经处于准备好运行的状态,即程序已经获得了除cpu以外的所有必要资源。操作系统会按一定的策略将就绪态进程排成一个队列,该队列叫就绪队列。
(2)执行态(Running)。这是指进程已经获得cpu,其程序正在执行的状态。单处理机中只有一个进程在执行,多处理机则有多个进程处于执行态。
(3)阻塞态(Block)。正在执行的进程由于发生某些事件暂时无法继续执行时的状态,即进程的执行收到阻塞。此时引起进程调度,操作系统将会把处理及分配给另外一个就绪态的进程。操作系统通常也有阻塞队列,为了减少队列操作的开销,提高系统效率,根据阻塞原因不同,会设置多个阻塞队列。
2.创建态和终止状态
(1)创建状态。进程是由创建而产生。创建进程首先由进程申请一个空白PCB,并向PCB中填写用于控制和管理进程的信息,然后为该进程分配运行所必须的资源;如果进程所需资源目前得不到满足,此时创建工作尚未完成;创建成功后,把该进程转入就绪状态并插入就绪队列中。
(2)终止状态。进程的终止也要通过两个不走:首先,是等待操作系统进行善后处理,最后将其PCB清零,并将PCB空间返回系统。当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态。进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计数据,供其他进程收集。一旦其他进程完成了对其信息的提取之后,操作系统将删除该进程,即将其PCB清零,并将该空白OCB返还系统。
2.4进程控制块中的信息
(1)进程标识符 进程标识符唯一地标识一个进程
(2)处理机状态
(3)进程调度信息
(4) 进程控制信息
2.5进程的终止
(1)正常结束,表示进程的任务已经完成,准备退出运行。
(2)异常结束:
①越界错误,进程访问了不属于自己的内存区域
②保护错,进程试图访问一个不允许访问的资源
③非法错,指程序试图去执行一条不存在的指令。
④特权指令错,进程试图执行一条只允许os执行的指令。
⑤运行超时
⑥等待超时,进程等待某事件的时间超过了规定最大值
⑦算术运算错,进程去执行一个被禁止的运算,例如被0除
(3)外界干预:是指进程因外界的请求而终止运行
①操作员或操作系统干预
②父进程请求,指当子进程已经完成父进程所要求的任务,父进程可以图一处请求结束该子进程。
③因父进程终止,父进程终止时,所有子进程也得终止
2.6 进程的阻塞与唤醒
1.引起进程阻塞和唤醒的事件
①向系统请求共享资源失败
②等待某种操作的完成
③新数据尚未到达
④等待新任务的到达
2.7 进程同步
1.临界资源指的是该资源一次只能供一个进程使用。如输入机,打印机,磁带机等等。
2.临界区指的是每个进程中访问临界资源的那段代码。
3.同步机制应遵循的规则
①空闲让进。当没有进程处于临界区,则允许一个进程进入临界区。
②忙则等待。当有进程已经进入临界区,则必须等待访问的进程访问完。
③有限等待。对要求访问临界资源的进程,应保证在有限的时间内能进去自己的临界区。
④让权等待。当进程不能进入自己的临界区时,应立即释放处理及,以免进程陷入忙等。
4.信号量机制
①整型信号量
整型信号量定义为一个用域表示资源数目的整型量S,它与一半整型量不同,除初始化外,仅能通过两个标准的原子操作wait(S)和signal(S)来访问。这两个操作一直被分别称为P,V操作。
wait(S)
{
while(S <= 0)
S--;
}
signal(S)
{
S++;
}
②记录型信号量
在整型信号量中,只要信号量S<=0,就会不断的测试。因此,不符合让权等待的准则。记录型信号量机则是一种不存在忙等现象的进程同步机制。