第2章 进程管理1.ppt
第二章第二章进程管理进程管理本章主要讲述进程和线程的基本概念,具体包括进程的基本概念、进程控制、进程同步、进程间通信和线程等内容。2.1进程的基本概念进程的基本概念2.2进程控制进程控制2.3进程同步进程同步2.4经典进程的同步问题经典进程的同步问题2.5进程通信进程通信2.6线程线程章节内容章节内容2.1 进程的基本概念 程序的顺序执行程序的顺序执行是指若干个程序或程序段是指若干个程序或程序段之间必须严格按照某种先后次序来执行,仅当之间必须严格按照某种先后次序来执行,仅当前一程序或程序段执行后,才能执行后面的程前一程序或程序段执行后,才能执行后面的程序或程序段。序或程序段。例如:例如:I:I:表示输入操作,表示输入操作,C:C:表示计算操作,表示计算操作,P:P:表示打印操作。在进行计算时,总是先输入表示打印操作。在进行计算时,总是先输入用户的程序和数据,然后进行计算,最后将结用户的程序和数据,然后进行计算,最后将结果打印出来。果打印出来。图2-1 程序的顺序执行一、程序顺序执行语句的顺序执行:语句的顺序执行:S1S1:a:=x+y a:=x+y S2 S2:b:=a-5 b:=a-5 S3 S3:c:=b+1 c:=b+1 如如下下图图,语语句句S2S2必必须须在在a a被被赋赋值值后后才才能能执执行;行;S3S3也只能在也只能在b b被赋值后才能执行。被赋值后才能执行。二、程序顺序执行时的特征顺顺序序性性:一一个个程程序序的的各各个个部部分分严严格格按按照照某某种种先先后次序执行;后次序执行;封封闭闭性性:程程序序在在封封闭闭的的环环境境下下运运行行,即即程程序序运运行行时时独独占占全全部部系系统统资资源源,因因此此,机机器器资资源源状状态态的的改改变变只只与与执执行行的的程程序序有有关关,而而与与外外界界环环境境无无关;关;可可再再现现性性:只只要要程程序序执执行行时时的的环环境境和和初初始始条条件件相相同同,当当程程序序重重复复执执行行时时,不不论论它它是是从从头头到到尾尾不不停停顿顿地地执执行行,还还是是“停停停停走走走走”地地执执行行,都都将获得相同的结果。将获得相同的结果。程程序序顺顺序序执执行行的的特特性性,为为程程序序员员检检测测和和校校正正程程序的错误带来很大方便。序的错误带来很大方便。2.1.2前趋图前趋图为了描述一个程序的各部分为了描述一个程序的各部分(程序段或语句程序段或语句)间的依赖关系,或者是一个大的计算的各个间的依赖关系,或者是一个大的计算的各个子任务间的因果关系,常常采用前趋图方式子任务间的因果关系,常常采用前趋图方式。前趋图前趋图是一个有向无循环图是一个有向无循环图(如下图如下图不是前趋图不是前趋图),可用来描述程序段或,可用来描述程序段或进程之间执行的先后次序。进程之间执行的先后次序。下下图图中中的的每每个个结结点点可可以以表表示示一一条条语语句句、一一个个程程序序段段或或进进程程,结结点点间间的的有有向向边边表表示示两两个个结结点点之之间间存存在在的的偏偏序序或或前前趋趋关关系系“”“”,如如P Pi i P Pj j 表表示示P Pi i必必须须在在P Pj j开开始始执执行行前前完完成成,并并称称P Pi i是是P Pj j的的直直接接前前趋趋,P Pj j是是P Pi i的直接后继。的直接后继。下下图图中中P P1 1为为初初始始结结点点,P P7 7为为终终止止结结点点,每每个个结结点点还具有一个重量。还具有一个重量。该该前前趋趋图图,存存在在下下面面的的前前趋趋关关系系:P P1 1PP2 2,P P1 1PP3 3,P P1 1PP4 4,P P2 2PP5 5,P P3 3PP5 5,P P4 4PP6 6,P P5 5PP7 7,P P6 6PP7 7或表示为:或表示为:P=PP=P1 1,P,P2 2,P,P3 3,P,P4 4,P,P5 5,P,P6 6,P,P7 7=(P=(P1 1,P,P2 2),(P),(P1 1,P,P3 3),(P),(P1 1,P,P4 4),(P),(P2 2,P,P5 5),(P),(P3 3,P,P5 5),(P),(P4 4,P,P6 6),(P),(P5 5,P,P7 7),(P),(P6 6,P,P7 7)2.1.3 程序并发执行及其特征 程序的并发执行程序的并发执行是指两个或两个以是指两个或两个以上的程序或程序段可在同一时间间隔内上的程序或程序段可在同一时间间隔内同时执行。同时执行。在对一批程序进行处理时,可以并发执行。在对一批程序进行处理时,可以并发执行。例例如如,输输入入、计计算算、打打印印三三个个程程序序对对一一批批作作业业进进行行处处理理时时,存存在在以以下下的的前前趋趋关关系系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1在在Pi-1和和Ci以及以及Ii+1之间,可以并发执行。之间,可以并发执行。一、程序并发执行图 2-3 程序并发执行时的前趋图 对于具有下述四条语句的程序段,:对于具有下述四条语句的程序段,:S1:a=x+2S2:b=y+4S3:c=a+bS4:d=c+b图 2-4 四条语句的前趋图可画出图可画出图24所示的前趋关系:所示的前趋关系:S3必须在必须在a和和b赋值后才能执行;赋值后才能执行;S4必须在必须在S3之后执行;之后执行;但但S1和和S2可并发执行。可并发执行。二、程序并发执行时的特征间间断断性性:程程序序并并发发执执行行时时,由由于于它它们们共共享享资资源源或或程程序序之之间间相相互互合合作作完完成成一一项项共共同同任任务务,因而使程序之间相互制约。因而使程序之间相互制约。失失去去封封闭闭性性:程程序序在在运运行行时时与与其其他他并并发发执执行行的的程程序序共共享享系系统统的的资资源源,因因此此,资资源源状状态态的的改改变变还还与与其其他他程程序序有有关关,即即程程序序本本身身的的执执行行环境要受到外界程序的影响。环境要受到外界程序的影响。不不可可再再现现性性:由由于于程程序序的的并并发发执执行行,打打破破了了由由另另一一程程序序独独占占系系统统资资源源的的封封闭闭性性,因因而而破破坏了可再现性。坏了可再现性。并发程序执行产生的新特性没有了顺序性失去了封闭性程序和计算不再一一对应并发程序之间有相互制约性(如果制约条件不足,会出现结果的不确(如果制约条件不足,会出现结果的不确定性,请看下例)定性,请看下例)Par(Co)begin get;copy;put;Par(Co)endgetcopyput复制一个记录复制一个记录例例:考察下面文件复制的例子考察下面文件复制的例子F和和G有同样的结构有同样的结构,都可放都可放M个记录个记录,开始时开始时,F中有中有m个记录个记录,G为空为空,即即F=(1,2,3,m),G=(),S和和T为一个记录的缓冲为一个记录的缓冲,开始时开始时,S和和T为空为空.假设一开始已依次做了如下操作序列假设一开始已依次做了如下操作序列,get,copy,put,get,这时这时F,S,T,G的情况为的情况为:F=(3,4,m)S=2T=1G=(1)考察考察get,copy,put三者可并行,则当三者可并行,则当get,copy,put各各执行一次后,可能的操作顺序组合及执行一次后,可能的操作顺序组合及G中的情况为:中的情况为:FGTSgetcopyputgetcopyputget可能的操作顺序组合可能的操作顺序组合G中的情况中的情况getgetgetgetgetcopycopycopycopycopycopyputputputputputput当前情况为:当前情况为:F=(3,4,m),),S=2,T=1,G=(1)G=(1,3)G=(1,1)G=(1,2)G=(1,2)G=(1,1)G=(1,1)六种顺序执行的情况,共有三种不同的结果,其中只有结果六种顺序执行的情况,共有三种不同的结果,其中只有结果G=(1,2)是希望的,为得到希望的结果,必须对是希望的,为得到希望的结果,必须对get,copy,put三者的并行作进一步的限制,以防结果的不确定性。三者的并行作进一步的限制,以防结果的不确定性。并行环境下程序间的制约关系并行环境下程序间的制约关系 2.1.4 2.1.4 进程的特征与状态进程的特征与状态一、进程的定义与特征一、进程的定义与特征1.1.进程的定义进程的定义 进程是进程实体的运行过程,是系统进行进程是进程实体的运行过程,是系统进行资源分配和调度的独立单位。(进程是可并资源分配和调度的独立单位。(进程是可并发执行的程序在一个数据集合上的运行过程)发执行的程序在一个数据集合上的运行过程)P30 P30 多种能反映进程实质的定义多种能反映进程实质的定义2.2.进程的特征进程的特征动态性:动态性:进程的实质是程序的一次执行过程,进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的,进程在其生命周期内,进程是动态产生,动态消亡的,进程在其生命周期内,在三种基本状态之间转换。在三种基本状态之间转换。并发性:并发性:任何进程都可以同其他进程一起向前推进。任何进程都可以同其他进程一起向前推进。独独立立性性:进进程程是是一一个个能能独独立立运运行行的的基基本本单单位位,同同时时也也是系统分配资源和调度的独立单位。是系统分配资源和调度的独立单位。异异步步性性:由由于于进进程程间间的的相相互互制制约约,使使进进程程具具有有执执行行的的间间断断性性,即即进进程程按按各各自自独独立立的的、不不可可预预知知的的速速度度向向前前推进。推进。结结构构特特征征:为为了了控控制制和和管管理理进进程程,系系统统为为每每个个进进程程设设立立一一个个进进程程控控制制块块PCBPCB。程程序序段段、数数据据段段及及PCBPCB称称为为“进程映像进程映像”。3.3.进程与程序的区别进程与程序的区别1 1、进程由程序、数据、进程控制块组成。、进程由程序、数据、进程控制块组成。2 2、进程是指程序的一次执行过程,是暂时的,是、进程是指程序的一次执行过程,是暂时的,是动态的概念,而程序是指令的有序集合,作为软动态的概念,而程序是指令的有序集合,作为软件资源可长期保存,是静态的概念。件资源可长期保存,是静态的概念。3 3、一个程序可以对应多个进程,即供多个进程所、一个程序可以对应多个进程,即供多个进程所共享,一个进程也可包含多个程序。共享,一个进程也可包含多个程序。4 4、进程具有、进程具有“生命期生命期”,即有其,即有其“创建创建”、“活活动动”、“消亡消亡”的过程,不能长期存在,而程序的过程,不能长期存在,而程序无无“生命生命”可言。可言。5 5、进程更能真实地描述并发、进程更能真实地描述并发,而程序不能。而程序不能。6 6、进程具有创建其他进程的功能,而程序没有。、进程具有创建其他进程的功能,而程序没有。二、进程的三种基本状态二、进程的三种基本状态就绪(就绪(ReadyReady)状态)状态执行(执行(RunningRunning)状态)状态阻塞阻塞(等待等待)(BlockBlock)状态)状态问题问题:(1)进程的状态有哪些?)进程的状态有哪些?(2)进程状态之间转换的条件是什么?)进程状态之间转换的条件是什么?运行(运行(Running)状态:)状态:进程获得进程获得CPU控制权,正在控制权,正在CPU上运行上运行时的状态。时的状态。就绪(就绪(Ready)状态:)状态:获得了除获得了除CPU以外的一切所需资源的进以外的一切所需资源的进程所处的状态程所处的状态阻塞阻塞(等待等待)(Block)状态:)状态:进程正等待某一事件或受到某种制约而进程正等待某一事件或受到某种制约而暂时停止执行(或进程因等待某种条件而不暂时停止执行(或进程因等待某种条件而不能运行能运行)的状态。的状态。1 1、新、新(new)(new)状态:状态:进程刚建立,还未进入就绪队列时的状态。进程刚建立,还未进入就绪队列时的状态。2 2、终止、终止(Terminated)(Terminated)状态:状态:进程已经正常或异常结束,进程已经正常或异常结束,OSOS已将它从就绪队列中已将它从就绪队列中移出,但尚未将它撤销时的状态。移出,但尚未将它撤销时的状态。新进程建立时的步骤:新进程建立时的步骤:(1 1)创建新进程,分配资源;)创建新进程,分配资源;(2 2)新创建的进程送入就绪队列,进程从新状态)新创建的进程送入就绪队列,进程从新状态变为就绪状态。变为就绪状态。结束进程时的步骤:结束进程时的步骤:(1 1)进程从就绪队列中移出,成为一个不能再运)进程从就绪队列中移出,成为一个不能再运行的进程;行的进程;(2 2)移出的进程暂留在系统中,以便其它进程去)移出的进程暂留在系统中,以便其它进程去收集该进程的有关信息。收集该进程的有关信息。*新状态和终止状态新状态和终止状态运行运行就绪就绪阻塞阻塞进程状态的转换进程状态的转换图 2-5 进程的三种基本状态及其转换 1.1.新新(创建创建)就绪状态就绪状态当就绪队列能够接纳新的进程时,当就绪队列能够接纳新的进程时,OSOS便把处于新状便把处于新状态的进程移入就绪队列,此时进程由新状态转变为态的进程移入就绪队列,此时进程由新状态转变为就绪状态。就绪状态。2.2.就绪就绪执行状态执行状态处于就绪状态的进程,分配到处于就绪状态的进程,分配到CPUCPU后,便由就绪状后,便由就绪状态变为执行状态。态变为执行状态。3.3.执行执行阻塞状态阻塞状态正在执行的进程因发生某事件而无法执行,进程便正在执行的进程因发生某事件而无法执行,进程便由执行状态变为阻塞状态。由执行状态变为阻塞状态。4.4.执行执行就绪状态就绪状态正在执行的进程因时间片用完或被优先权高的进程正在执行的进程因时间片用完或被优先权高的进程抢占抢占CPUCPU,则由执行状态转换为就绪状态。,则由执行状态转换为就绪状态。5.5.执行执行终止状态终止状态当一个进程已经完成或发生某事件而被异常结束,当一个进程已经完成或发生某事件而被异常结束,进程将由执行状态转变为终止状态。进程将由执行状态转变为终止状态。三、进程的挂起状态三、进程的挂起状态1 1、挂起状态的引入、挂起状态的引入挂起状态又称静止状态,非挂起状态又称活动状态。挂起状态又称静止状态,非挂起状态又称活动状态。引入挂起状态的可能原因:引入挂起状态的可能原因:(1 1)终端用户的请求)终端用户的请求(2 2)父进程的请求)父进程的请求(3 3)负荷调节的需要)负荷调节的需要(4 4)操作系统的需要)操作系统的需要2 2、进程状态的转换、进程状态的转换1.1.活动就绪活动就绪静止就绪静止就绪活动就绪状态(Readya):未挂起时的就绪状态。静止就绪状态(Readys):已挂起时的就绪状态。处于处于ReadydsReadyds状态的进程不再被调度执行。状态的进程不再被调度执行。活动就绪 静止就绪2.2.活动阻塞活动阻塞静止阻塞静止阻塞活动阻塞状态(Blockeda):未被挂起时的阻塞状态。静止阻塞状态(Blockeds):已挂起时的阻塞状态。处于静止阻塞状态的进程在等待的事件出现后变为静止就绪处于静止阻塞状态的进程在等待的事件出现后变为静止就绪活动阻塞 静止阻塞挂起挂起挂起挂起3.3.静止就绪静止就绪活动就绪活动就绪静止就绪 活动就绪4.4.静止阻塞静止阻塞活动阻塞活动阻塞静止阻塞 活动阻塞激活激活激活激活进程的挂起状态进程的挂起状态图 2-6 具有挂起状态的进程状态图 五状态进程模型图图2-7进程的五种基本状态及其转换进程的五种基本状态及其转换七状态进程模型活动活动挂起挂起事件事件发生发生事件事件发生发生等待等待事件事件挂起挂起调度调度超时超时释放释放活动活动挂起挂起图图2-8具有创建、终止和挂起状态的进程状态图具有创建、终止和挂起状态的进程状态图问题:问题:1、进程是有生命期的,那么进程存在的标、进程是有生命期的,那么进程存在的标志是什么?志是什么?2、OS是根据什么来对并发执行的进程进行是根据什么来对并发执行的进程进行控制和管理的?控制和管理的?2.1.5 进程控制块(PCB)系统为了管理进程设置的一个专门的数据结构,存放了用于描述该进程情况和控制进程运行所需的全部信息。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的一、进程控制块(PCB)的作用PCB是进程实体的一部分;PCB的作用是使一个在多道环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位。二、进程控制块中的信息1 1、进程标识符信息、进程标识符信息 (1 1)内部标识符:标识一个进程的编号,给)内部标识符:标识一个进程的编号,给OSOS使用。使用。(2 2)外外部部标标识识符符:由由字字母母、数数字字组组成成,便便于于记记忆忆,由由创创建者提供,给用户使用。建者提供,给用户使用。2 2、处理机状态信息、处理机状态信息(P42)(P42)保保存存进进程程由由执执行行状状态态变变为为其其它它状状态态时时的的CPUCPU现现场场信信息息,主要由处理机各种寄存器中的内容组成。主要由处理机各种寄存器中的内容组成。3 3、进程调度信息、进程调度信息(P42)(P42)(1 1)进程状态)进程状态 (2 2)进程优先级)进程优先级 (3 3)进程调度所需的其他信息)进程调度所需的其他信息(与调度算法有关的信息与调度算法有关的信息)(4 4)事件(等待发生的事件,阻塞原因)事件(等待发生的事件,阻塞原因)4 4、进程控制信息、进程控制信息(1)程序与数据地址:该进程的程序和数据所在位置信息;(2)同步和通信机制:实现进程同步和进程通信时所必须的机构;(3)资源清单:列出进程拥有的资源的记录;(4)连接指针:给出本进程所在队列中的下一个进程的PCB首地址。三、PCB的组织方式 为为了了有有效效地地对对进进程程控控制制块块进进行行管管理理,应应该该采采用用适适当当的的方方式式把把它它们们组组织织起起来来。目目前前常常用用的的组组织织方方式有以下两种:式有以下两种:链接方式链接方式 方法:不同状态进程分别组成队列。系统中有运方法:不同状态进程分别组成队列。系统中有运行队列、就绪队列、等待队列等。行队列、就绪队列、等待队列等。索引方式索引方式 方法:对具有相同状态的进程,分别设置各自的方法:对具有相同状态的进程,分别设置各自的PCBPCB索引表,表明索引表,表明PCBPCB在在PCBPCB表中的地址。把索引表表中的地址。把索引表在内存的首地址放在内存的专用单元中。在内存的首地址放在内存的专用单元中。1、链接方式图图2-9PCB链接队列示意图链接队列示意图问:图问:图2-9的描述是否正确?的描述是否正确?问:为什么系统中会有多个等待队列?问:为什么系统中会有多个等待队列?2、索引方式图图2-10按索引方式组织按索引方式组织PCB2.2 进程控制l进程控制的主要任务进程控制的主要任务:进程控制是对系统中所有进程从产生、存在到进程控制是对系统中所有进程从产生、存在到消亡的全过程实行有效的管理和控制。进程控制一消亡的全过程实行有效的管理和控制。进程控制一般是由操作系统的内核来实现,内核在执行操作时,般是由操作系统的内核来实现,内核在执行操作时,往往是通过执行各种原语操作来实现的。往往是通过执行各种原语操作来实现的。进程创建原语进程创建原语进程撤消原语进程撤消原语阻塞原语阻塞原语唤醒原语唤醒原语挂起原语挂起原语激活原语激活原语进程如何从一种进程如何从一种状态转换到另一状态转换到另一种状态?种状态?l处理机的状态分为两种:处理机的状态分为两种:(1 1)系统态系统态(核心态、管态):具有较高的特权,(核心态、管态):具有较高的特权,能执行一切指令,访问所有寄存器和存储区。能执行一切指令,访问所有寄存器和存储区。(2 2)用户态用户态(目态):具有较低特权,只能执行规(目态):具有较低特权,只能执行规定命令,访问指定的寄存器和存储区。定命令,访问指定的寄存器和存储区。通过这两种状态的划分,可防止用户程序破通过这两种状态的划分,可防止用户程序破坏操作系统内核代码和数据。坏操作系统内核代码和数据。CPU有自己的指令系统:有自己的指令系统:特权指令特权指令和和非特权指令非特权指令1、特权指令:特权指令:只允许由操作系统使用,而不允许一般只允许由操作系统使用,而不允许一般用户使用的指令用户使用的指令.(OS可使用所有的指令可使用所有的指令)2、处理机的状态处理机的状态CPU如何知道当前是如何知道当前是OS程序还是一般用户程序在程序还是一般用户程序在其上执行?为此,引入处理机状态的概念其上执行?为此,引入处理机状态的概念 处理机的状态处理机的状态 CPU执行用户程序执行用户程序CPU执行管理程序执行管理程序用户态、目态用户态、目态系统态、管态、核心态系统态、管态、核心态(常态、普通状态、问题态)(特态、管理态、特权状态)(常态、普通状态、问题态)(特态、管理态、特权状态)只能执行非特权状态只能执行非特权状态可执行全部命令可执行全部命令3、程序状态字、程序状态字PSW(PSW标识标识CPU的状态的状态)用一专门的寄存器来指示处理机的状态,称为程序用一专门的寄存器来指示处理机的状态,称为程序状态字状态字PSW(各个机器的(各个机器的PSW的内容和格式不尽相同)的内容和格式不尽相同)2.2.1 进程的创建一、一、进程图(进程图(Process GraphProcess Graph)进程图是用于描述进程家族关系的有向树进程图是用于描述进程家族关系的有向树图中的结点代表进程,在进图中的结点代表进程,在进程程Pi创建了创建了Pj后,称后,称Pi是是Pj的父进程,的父进程,Pj是是Pi的子进程,的子进程,创建父进程的进程称为祖父创建父进程的进程称为祖父进程,如此形成一颗进程树,进程,如此形成一颗进程树,根结点作为进程家族的祖先。根结点作为进程家族的祖先。子进程可继承父进程所拥有子进程可继承父进程所拥有的资源,当子进程被撤销时,的资源,当子进程被撤销时,要归还资源,撤销父进程时,要归还资源,撤销父进程时,也需同时撤销其所有的子进也需同时撤销其所有的子进程。程。图 2-11 进程树二、引起创建进程的事件二、引起创建进程的事件1 1、用户登录、用户登录2 2、作业调度、作业调度3 3、提供服务、提供服务4 4、应用请求、应用请求三、进程的创建(三、进程的创建(Creation of ProgressCreation of Progress)调用进程的创建原语调用进程的创建原语CreatCreat()(),创建一新进程的步骤:,创建一新进程的步骤:1 1、申请空白、申请空白PCBPCB2 2、为新进程分配资源、为新进程分配资源3 3、初始化进程控制块、初始化进程控制块 PCBPCB的初始化工作包括的初始化工作包括:(1):(1)初始化标识符信息;初始化标识符信息;(2 2)初初始始化化处处理理机机状状态态信信息息;(3 3)初初始始化化处处理理机机控控制信息。制信息。4 4、将新进程插入就绪队列、将新进程插入就绪队列创建原语的实现过程:1、申请空白、申请空白PCB2、为新进程分配、为新进程分配资源资源3、初始化进程控、初始化进程控制块制块PCB的初始化工的初始化工作包括作包括:(1)初始初始化标识符信息;化标识符信息;(2)初始化处理)初始化处理机状态信息;机状态信息;(3)初始化处理)初始化处理机控制信息。机控制信息。4、将新进程插入、将新进程插入就绪队列就绪队列2.2.2 进程的终止一、引起进程终止(一、引起进程终止(Termination of ProcessTermination of Process)的事件)的事件1 1、正常结束、正常结束2 2、异异常常结结束束(越越界界错错、保保护护错错、特特权权指指令令错错、非非法法指指令令、运行超时、等待超时、算术运算错、运行超时、等待超时、算术运算错、I/OI/O故障等故障等)3 3、外界干预、外界干预(操作员干预、父进程请求、父进程终止操作员干预、父进程请求、父进程终止)二、进程的终止过程二、进程的终止过程(1 1)根据进程标识符检索出)根据进程标识符检索出PCBPCB,从中读出进,从中读出进程的状态。程的状态。(2 2)若状态为执行态,立即中止进程的执行,)若状态为执行态,立即中止进程的执行,调度标志置为真。调度标志置为真。(3 3)终止该进程所有的子孙进程(若该进程)终止该进程所有的子孙进程(若该进程又子孙进程)。又子孙进程)。(4 4)该进程拥有的全部资源归还给其父进程)该进程拥有的全部资源归还给其父进程或系统。或系统。(5 5)终止进程从所在队列中移出,等其它程)终止进程从所在队列中移出,等其它程序来搜集信息。序来搜集信息。进程的终止过程进程的终止过程:(1)根据进程标识符)根据进程标识符检索出检索出PCB,从中读,从中读出进程的状态。出进程的状态。(2)若状态为执行态,)若状态为执行态,立即中止进程的执行,立即中止进程的执行,调度标志置为真。调度标志置为真。(3)终止该进程所有)终止该进程所有的子孙进程(若该进的子孙进程(若该进程又子孙进程)。程又子孙进程)。(4)该进程拥有的全)该进程拥有的全部资源归还给其父进部资源归还给其父进程或系统。程或系统。(5)终止进程从所在)终止进程从所在队列中移出队列中移出,等其它等其它程序来搜集信息。程序来搜集信息。2.2.3 进程的阻塞与唤醒进程的阻塞:进程的阻塞:处处于于运运行行状状态态的的进进程程,在在其其运运行行过过程程中中期期待待某某一一事事件件发发生生,如如等等待待键键盘盘输输入入、等等待待磁磁盘盘数数据据传传输输完完成成、等等待待其其它它进进程程发发送送消消息息,当当被被等等待待的的事事件件未未发发生生时时,由由进进程程自自己己执执行行阻阻塞塞原原语语,使使自自己己由由运运行行态态变变为阻塞态。为阻塞态。一、引起进程阻塞和唤醒的事件一、引起进程阻塞和唤醒的事件1 1、请求系统服务、请求系统服务2 2、启动某种操作、启动某种操作3 3、新数据尚未到达、新数据尚未到达4 4、无新工作可做、无新工作可做二、进程阻塞过程二、进程阻塞过程当当正正在在执执行行的的进进程程需需要要等等待待某某种种事事件件的的完完成成或或本本身身无无新新工工作作可可做做时时,应应调调用用阻阻塞塞原原语语将将自自己己从执行状态转换成阻塞状态。从执行状态转换成阻塞状态。过过程程:停停止止调调用用进进程程的的执执行行,变变为为阻阻塞塞,PCBPCB插插入相应阻塞队列,转调度程序进行从新调度。入相应阻塞队列,转调度程序进行从新调度。进程阻塞过程进程阻塞过程:三、进程唤醒过程三、进程唤醒过程当当阻阻塞塞进进程程所所等等待待的的事事件件完完成成时时,应应调调用用唤唤醒醒原原语将该进程的状态转换成就绪状态。语将该进程的状态转换成就绪状态。过过程程:在在阻阻塞塞队队列列中中移移出出该该进进程程的的PCB,PCB,将将其其置置成成就绪态,插入就绪队列。就绪态,插入就绪队列。引起唤醒的原因引起唤醒的原因 系统服务由不满足到满足系统服务由不满足到满足 I/OI/O完成完成新数据到达新数据到达 进程提出新请求(服务)进程提出新请求(服务)进程唤醒过程进程唤醒过程:2.2.4 进程的挂起与激活挂起原语的功能:自身挂起、挂起具有指定标识符的进程、将其进程及其全部或部分“子孙”挂起。激活原语功能:使处于静止状态的进程变为活动。一、进程的挂起若进程处于活动阻塞状态,则将它的状态转换成静止阻塞状态,否则转换成静止就绪状态,若挂起前进程正在执行,则转调度程序重新进行调度,若挂起是为了对换则在挂起进程时还须将它换出内存中。二、进程的激活过程若进程处于静止阻塞状态,则将它转换成活动阻塞状态,否则转换成活动就绪状态,若进程转换成活动就绪状态,而系统又采用抢占调度策略,则应检查该进程是否有权抢占CPU,若有则应进行进程调度。同时,如果挂起是为了对换,则在激活被挂起的进程时还必须将它调入内存中。思考题1 1如果系统中有如果系统中有N N个进程,运行的进程最多个进程,运行的进程最多几个,最少几个;就绪进程最多几个几个,最少几个;就绪进程最多几个,最少最少几个;等待进程最多几个,最少几个?几个;等待进程最多几个,最少几个?2.2.为什么说一个进程可以将自己挂起却不为什么说一个进程可以将自己挂起却不能将自己解挂?能将自己解挂?3.3.一个状态转换的发生,是否一定导致另一个状态转换的发生,是否一定导致另一个状态转换的发生?一个状态转换的发生?