1、第二章进 程 管 理 第二章进 程 管 理 2.1进程的基本概念进程的基本概念 2.2进程控制进程控制 2.3进程同步进程同步 2.4经典进程的同步问题经典进程的同步问题 2.5 进程通信进程通信 2.6线程线程 第二章进 程 管 理 2.1进程的基本概念进程的基本概念 2.1.1程序的顺序执行及其特征程序的顺序执行及其特征1.程序的顺序执行程序的顺序执行通常可以把一个应用程序分成若干个程序段,在各程序通常可以把一个应用程序分成若干个程序段,在各程序段之间,必须按照某种先后次序顺序执行,仅当前一操作段之间,必须按照某种先后次序顺序执行,仅当前一操作(程程序段序段)执行完后,才能执行后继操作。执
2、行完后,才能执行后继操作。第二章进 程 管 理 例如,在进行计算时,总须先输入用户的程序和数据,例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。然后进行计算,最后才能打印计算结果。这里,我们用结点这里,我们用结点(Node)代表各程序段的操作代表各程序段的操作(在图在图2-1中中用圆圈表示用圆圈表示),其中,其中,I代表输入操作,代表输入操作,C代表计算操作,代表计算操作,P为为打印操作;打印操作;另外,用箭头指示操作的先后次序。这样,上述的三个另外,用箭头指示操作的先后次序。这样,上述的三个程序段的执行顺序可示于图程序段的执行顺序可示于图2-1(a)中。中
3、。对一个程序段中的多条语句来说,也有一个执行顺序问对一个程序段中的多条语句来说,也有一个执行顺序问题,例如对于下述三条语句的程序段题,例如对于下述三条语句的程序段:第二章进 程 管 理 S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;其中,语句其中,语句S2必须在语句必须在语句S1之后之后(即即a被赋值被赋值)才能执行;同样,才能执行;同样,语句语句S3也只能在也只能在b被赋值后才能执行。因此,这三条语句应被赋值后才能执行。因此,这三条语句应按图按图2-1(b)所示的顺序执行。所示的顺序执行。第二章进 程 管 理 图图 2-1程序的顺序执行程序的顺序执行(a)程序的顺序执行(b)三
4、条语句的顺序执行I1C1P1I2C2P2S1S2S3第二章进 程 管 理 2.程序顺序执行时的特征程序顺序执行时的特征(1)(1)顺序性:处理机的操作严格按照程序所规定的顺序顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在上一个操作结束之后开始。执行,即每一操作必须在上一个操作结束之后开始。(2)(2)封闭性:程序是在封闭的环境下执行的,即封闭性:程序是在封闭的环境下执行的,即程序运程序运行时独占全机资源行时独占全机资源,资源的状态,资源的状态(除初始状态外除初始状态外)只有本程序只有本程序才能改变它。才能改变它。程序一旦开始执行,其执行结果不受外界因素程序一旦开始执行,其执
5、行结果不受外界因素影响影响。(3)(3)可再现性:只要程序执行时的环境和初始条件相同,可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走停停走走”地执行,都将获得相同的结果。地执行,都将获得相同的结果。程序顺序执行时的特性,为程序员检测和校正程序的错程序顺序执行时的特性,为程序员检测和校正程序的错误带来了很大的方便。误带来了很大的方便。第二章进 程 管 理 2.1.2前趋图前趋图前趋图前趋图(Precedence Graph)是一个有向无循环图,是一个有向无循环图,记为记为DAG(Di
6、rected Acyclic Graph),用于描述进程之间执行的前,用于描述进程之间执行的前后关系。后关系。图中的每个图中的每个结点结点可用于描述一个可用于描述一个程序段程序段或或进程进程,乃至一,乃至一条语句;结点间的条语句;结点间的有向边有向边则用于表示两个结点之间存在的则用于表示两个结点之间存在的偏偏序序(Partial Order,亦称偏序关系,亦称偏序关系)或或前趋关系前趋关系(Precedence Relation)“”。第二章进 程 管 理=(Pi,Pj)|Pi must complete before Pj may start,如,如果果(Pi,Pj),可写成,可写成PiPj
7、,称,称Pi是是Pj的的直接前趋直接前趋,而称,而称Pj是是Pi的的直接后继直接后继。在前趋图中,把没有前趋的结点称为在前趋图中,把没有前趋的结点称为初始结点初始结点(Initial Node),把没有后继的结点称为,把没有后继的结点称为终止结点终止结点(Final Node)。此外,每个结点还具有一个重量此外,每个结点还具有一个重量(Weight),用于表示该,用于表示该结点所含有的结点所含有的程序量程序量或或结点的执行时间结点的执行时间。第二章进 程 管 理 在图在图2-1(a)和和2-1(b)中分别存在着这样的前趋关系:中分别存在着这样的前趋关系:IiCiPi S1S2S3 和 第二章进
8、 程 管 理 对于图对于图2-2(a)所示的前趋图,存在下述前趋关系:所示的前趋图,存在下述前趋关系:P1P2,P1P3,P1P4,P2P5,P3P5,P4P6,P4P7,P5P8,P6P8,P7P9,P8P9前驱图前驱图2-2(a)表示为:表示为:G=(P,)其中,其中,P=P1,P2,P3,P4,P5,P6,P7,P8,P9=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)应当注意,前趋图中必须不存在循环,但在图应当注意,前趋图中必须不存在循环,但在图2-2(b)中
9、却中却有着下述的前趋关系:有着下述的前趋关系:S2S3,S3S2 第二章进 程 管 理 图 2-2前趋图 P1P3P8P9P4P2P5P6P7S1S2S3(a)具有九个结点的前趋图(b)具有循环的图第二章进 程 管 理 2.1.3程序的并发执行及其特征程序的并发执行及其特征1程序的并发执行程序的并发执行在图在图2-1中的输入程序、计算程序和打印程序三者之间,中的输入程序、计算程序和打印程序三者之间,存在着存在着IiCiPi这样的前趋关系,以至对一个作业的输入、这样的前趋关系,以至对一个作业的输入、计算和打印三个操作,必须顺序执行,但并不存在计算和打印三个操作,必须顺序执行,但并不存在PiIi+
10、1的的关系,因而在对一批程序进行处理时,可使它们并发执行。关系,因而在对一批程序进行处理时,可使它们并发执行。第二章进 程 管 理 例如,输入程序在输入第一个程序后,在计算程序对该例如,输入程序在输入第一个程序后,在计算程序对该程序进行计算的同时,可由输入程序再输入第二个程序,从程序进行计算的同时,可由输入程序再输入第二个程序,从而使第一个程序的计算操作可与第二个程序的输入操作并发而使第一个程序的计算操作可与第二个程序的输入操作并发执行。执行。一般来说,输入程序在输入第一般来说,输入程序在输入第i+1个程序时,计算程序可个程序时,计算程序可能正在对第能正在对第i个程序进行计算,而打印程序正在打
11、印第个程序进行计算,而打印程序正在打印第i-1个程个程序的计算结果。序的计算结果。图图2-3示出了输入、计算和打印这三个程序对一批作业进示出了输入、计算和打印这三个程序对一批作业进行处理的情况。行处理的情况。第二章进 程 管 理 图2-3 并发执行时的前趋图 P1P2P3P4I1I2I3I4C1C2C3C4第二章进 程 管 理 在该例中存在下述前趋关系:在该例中存在下述前趋关系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1 而而Ii+1和和Ci及及Pi-1是重迭的,亦即在是重迭的,亦即在Pi-1和和Ci以及以及Ii+1之间,之间,可以并发执行。对于具有下述四条语句的程序段:可以
12、并发执行。对于具有下述四条语句的程序段:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+b 第二章进 程 管 理 图图 2-4四条语句的前趋关系四条语句的前趋关系 S1S2S3S4第二章进 程 管 理 2 2程序并发执行时的特征程序并发执行时的特征1)1)间断性间断性程序在并发执行时,由于它们共享系统资源,以及为完程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。例如,图形成了相互制约的关系。例如,图2-3 中的中的I、C和和P是三个相是三个相互
13、合作的程序,当计算程序完成互合作的程序,当计算程序完成Ci1的计算后,如果输入程的计算后,如果输入程序序I尚未完成尚未完成Ii的处理,则计算程序就无法进行的处理,则计算程序就无法进行Ci的处理,致的处理,致使计算程序必须暂停运行。又如,当打印程序完成使计算程序必须暂停运行。又如,当打印程序完成Pi的打印的打印后,若计算程序尚未完成后,若计算程序尚未完成Ci1的计算,则打印程序就无法对的计算,则打印程序就无法对Ci1的计算结果进行打印。一旦使程序暂停的因素消失后的计算结果进行打印。一旦使程序暂停的因素消失后(如如Ii已处理完成已处理完成),计算程序便可恢复执行对,计算程序便可恢复执行对Ci的处理
14、。简而言的处理。简而言之,相互制约将导致并发程序具有之,相互制约将导致并发程序具有“执行执行暂停暂停执行执行”这这种间断性的活动规律。种间断性的活动规律。第二章进 程 管 理 2 2程序并发执行时的特征程序并发执行时的特征1)1)间断性间断性程序在并发执行时,由于它们共享系统资源,以及为完程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。例如,图形成了相互制约的关系。例如,图2-3 中的中的I、C和和P是三个相是三个相互合作的程序,当计算程序完成互合作的程序,当计算程
15、序完成Ci1的计算后,如果输入程的计算后,如果输入程序序I尚未完成尚未完成Ii的处理,则计算程序就无法进行的处理,则计算程序就无法进行Ci的处理,致的处理,致使计算程序必须暂停运行。又如,当打印程序完成使计算程序必须暂停运行。又如,当打印程序完成Pi的打印的打印后,若计算程序尚未完成后,若计算程序尚未完成Ci1的计算,则打印程序就无法对的计算,则打印程序就无法对Ci1的计算结果进行打印。一旦使程序暂停的因素消失后的计算结果进行打印。一旦使程序暂停的因素消失后(如如Ii已处理完成已处理完成),计算程序便可恢复执行对,计算程序便可恢复执行对Ci的处理。简而言的处理。简而言之,相互制约将导致并发程序
16、具有之,相互制约将导致并发程序具有“执行执行暂停暂停执行执行”这这种间断性的活动规律。种间断性的活动规律。第二章进 程 管 理 2)2)失去封闭性失去封闭性程序在并发执行时,是多个程序共享系统中的各种资源程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。失去了封闭性。这样,某程序在执行时,必然会受到其它程序的影响。这样,某程序在执行时,必然会受到其它程序的影响。例如,当处理机这一资源已被某个程序占有时,另一程序必例如,当处理机这一资源已被某个程序占有时,另一程序必须等待。须等待
17、。第二章进 程 管 理 3)3)不可再现性不可再现性程序在并发执行时,由于失去了封闭性,也将导致其再程序在并发执行时,由于失去了封闭性,也将导致其再失去可再现性。例如,有两个循环程序失去可再现性。例如,有两个循环程序A和和B,它们共享一个,它们共享一个变量变量N。程序。程序A每执行一次时,都要做每执行一次时,都要做N:=N+1操作;程序操作;程序B每每执行一次时,都要执行执行一次时,都要执行Print(N)操作,然后再将操作,然后再将N置成置成“0”。程序程序A和和B以不同的速度运行。这样,可能出现下述三种情况以不同的速度运行。这样,可能出现下述三种情况(假定某时刻变量假定某时刻变量N的值为的
18、值为n)。第二章进 程 管 理(1)N:=N+1(1)N:=N+1在在Print(N)Print(N)和和N:=0N:=0之前,此时得到的之前,此时得到的N N值分值分别为别为n+1n+1,n+1n+1,0 0。(2)N:=N+1(2)N:=N+1在在Print(N)Print(N)和和N:=0N:=0之后,此时得到的之后,此时得到的N N值分值分别为别为n n,0 0,1 1。(3)N:=N+1(3)N:=N+1在在Print(N)Print(N)和和N:=0N:=0之间,此时得到的之间,此时得到的N N值分值分别为别为n n,n+1n+1,0 0。上述情况说明,程序在并发执行时,由于失去了
19、封闭性,上述情况说明,程序在并发执行时,由于失去了封闭性,其计算结果已与并发程序的执行速度有关,从而使程序的执其计算结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性,亦即,程序经过多次执行后,虽然它们行失去了可再现性,亦即,程序经过多次执行后,虽然它们执行时的环境和初始条件相同,但得到的结果却各不相同。执行时的环境和初始条件相同,但得到的结果却各不相同。第二章进 程 管 理 2.1.42.1.4进程的特征与状态进程的特征与状态1.1.进程的特征和定义进程的特征和定义在多道程序环境下,程序的执行属于并发执行,此时它在多道程序环境下,程序的执行属于并发执行,此时它们将失去其封闭性,并
20、具有间断性及不可再现性的特征。们将失去其封闭性,并具有间断性及不可再现性的特征。这决定了通常的程序是不能参与并发执行的,因为程序这决定了通常的程序是不能参与并发执行的,因为程序执行的结果是不可再现的。这样,程序的运行也就失去了意执行的结果是不可再现的。这样,程序的运行也就失去了意义。义。为使程序能并发执行,且为了对并发执行的程序加以描为使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了述和控制,人们引入了“进程进程”的概念。为了能较深刻地了的概念。为了能较深刻地了解什么是进程,我们将先对进程的特征加以描述。解什么是进程,我们将先对进程的特征加以描述。第二章进 程 管 理 1)1
21、)结构特征结构特征通常的程序是不能并发执行的。为使程序通常的程序是不能并发执行的。为使程序(含数据含数据)能独立能独立运行,应为之配置一运行,应为之配置一进程控制块进程控制块,即,即PCB(Process Control Block);而由程序段、相关的数据段和;而由程序段、相关的数据段和PCB三部分便构成了三部分便构成了进进程实体程实体。在早期的在早期的UNIX版本中,把这三部分总称为版本中,把这三部分总称为“进程映像进程映像”。值得指出的是,在许多情况下所说的进程,实际上是指值得指出的是,在许多情况下所说的进程,实际上是指进程进程实体实体,例如,例如,所谓创建进程,实质上是创建进程实体中的
22、所谓创建进程,实质上是创建进程实体中的PCB;而撤消进程,实质上是撤消进程的而撤消进程,实质上是撤消进程的PCB,本教材中也本教材中也是如此。是如此。第二章进 程 管 理 2)2)动态性动态性进程的实质是进程实体的一次执行过程进程的实质是进程实体的一次执行过程,因此,因此,动态性是动态性是进程的最基本的特征进程的最基本的特征。动态性还表现在:动态性还表现在:“它由创建而产生,由调度而执行,由它由创建而产生,由调度而执行,由撤消而消亡撤消而消亡”。可见,进程实体有一定的生命期,而程序则只是一组有序可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动
23、的含指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是义,因而是静态静态的。的。第二章进 程 管 理 3)3)并发性并发性这是指多个进程实体同存于内存中,且能在一段时间内这是指多个进程实体同存于内存中,且能在一段时间内同时运行。同时运行。并发性是进程的重要特征,同时也成为并发性是进程的重要特征,同时也成为OSOS的重要特征。的重要特征。引入进程的引入进程的目的目的也正是为了使其进程实体能和其它进程也正是为了使其进程实体能和其它进程实体并发执行;而程序实体并发执行;而程序(没有建立没有建立PCB)PCB)是不能并发执行的。是不能并发执行的。第二章进 程 管 理 4)4)独立性独立性
24、在传统的在传统的OS中,独立性是指进程实体是一个能中,独立性是指进程实体是一个能独立运行独立运行、独立分配资源独立分配资源和和独立接受调度的独立接受调度的基本单位。基本单位。凡未建立凡未建立PCB的程序都不能作为一个独立的单位参与运的程序都不能作为一个独立的单位参与运行。行。第二章进 程 管 理 5)5)异步性异步性这是指进程按各自独立的、这是指进程按各自独立的、不可预知的速度向前推进,不可预知的速度向前推进,或说进程实体按异步方式运行。或说进程实体按异步方式运行。第二章进 程 管 理 现在我们再来讨论进程的定义。曾有许多人从不同的角现在我们再来讨论进程的定义。曾有许多人从不同的角度对进程下过
25、定义,其中较典型的进程定义有:度对进程下过定义,其中较典型的进程定义有:(1)(1)进程是程序的一次执行。进程是程序的一次执行。(2)(2)进程是一个程序及其数据在处理机上顺序执行时所进程是一个程序及其数据在处理机上顺序执行时所发生的活动。发生的活动。(3)进程是程序在一个数据集合上运行的过程,它是系统进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。进行资源分配和调度的一个独立单位。第二章进 程 管 理 2.2.进程的三种基本状态进程的三种基本状态进程执行时的间断性决定了进程可能具有多种状态。进程执行时的间断性决定了进程可能具有多种状态。事实上,运行中的进程可能
26、具有以下三种基本状态。事实上,运行中的进程可能具有以下三种基本状态。1)1)就绪就绪(Ready)(Ready)状态状态当进程已分配到除当进程已分配到除CPU以外的所有必要资源后,只要以外的所有必要资源后,只要再获得再获得CPU,便可立即执行,进程这时的状态称为就绪状,便可立即执行,进程这时的状态称为就绪状态。态。在一个系统中处于就绪状态的进程可能有多个,通常在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为将它们排成一个队列,称为就绪队列就绪队列。第二章进 程 管 理 2)2)执行状态执行状态进程已获得进程已获得CPUCPU,其程序正在执行。,其程序正在执行。在单处理机系
27、统中,只有一个进程处于执行状态在单处理机系统中,只有一个进程处于执行状态;在多处;在多处理机系统中,则有多个进程处于执行状态。理机系统中,则有多个进程处于执行状态。第二章进 程 管 理 3)3)阻塞状态阻塞状态正在执行的进程由于发生某事件而暂时无法继续执行时,正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为这种暂停状态称为阻塞状态阻塞状态,有时也称为,有时也称为等待状态等待状态或或封锁状态封锁状态。致使进程阻塞的典型事件有:请求致使进程阻塞的典型事件有:请求I/O,申请
28、缓冲空间等。,申请缓冲空间等。通常将这种处于阻塞状态的进程也排成通常将这种处于阻塞状态的进程也排成一个队列一个队列。有的系。有的系统则根据阻塞原因的不同而把处于阻塞状态的进程排成统则根据阻塞原因的不同而把处于阻塞状态的进程排成多个队多个队列列。第二章进 程 管 理 图图2-5 进程的三种基本状态及其转换进程的三种基本状态及其转换 就绪阻塞执行时间片完进程调度I/O完成I/O请求第二章进 程 管 理 3.3.挂起状态挂起状态1)1)引入挂起状态的原因引入挂起状态的原因在不少系统中进程只有上述三种状态,但在另一些系统中,在不少系统中进程只有上述三种状态,但在另一些系统中,又增加了一些新状态,最重要
29、的是挂起状态。又增加了一些新状态,最重要的是挂起状态。第二章进 程 管 理 引入挂起状态的原因有:引入挂起状态的原因有:(1)终端用户的请求。终端用户的请求。当终端用户在自己的程序运行期间发现有可疑问题时,希当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来。望暂时使自己的程序静止下来。亦即,使正在执行的进程暂停执行;亦即,使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改。我们接受调度,以便用户研究其执行情况或对程序进行修改。我们把这种静止状态
30、称为把这种静止状态称为挂起状态挂起状态。第二章进 程 管 理(2)(2)父进程请求。父进程请求。有时父进程希望挂起自己的某个子进程,以便考查和修有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。改该子进程,或者协调各子进程间的活动。(3)(3)负荷调节的需要。负荷调节的需要。当实时系统中的工作负荷较重,已可能影响到对实时任当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。统能正常运行。(4)操作系统的需要。操作系统的需要。操作系统有时希望挂起某
31、些进程,以便检查运行中的资操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。源使用情况或进行记账。第二章进 程 管 理 2)2)进程状态的转换进程状态的转换在引入挂起状态后,又将增加从挂起状态在引入挂起状态后,又将增加从挂起状态(又称为静止状又称为静止状态态)到非挂起状态到非挂起状态(又称为活动状态又称为活动状态)的转换;或者相反。可有的转换;或者相反。可有以下几种情况:以下几种情况:(1)活动就绪活动就绪静止就绪。静止就绪。当进程处于未被挂起的就绪状态时,称此为当进程处于未被挂起的就绪状态时,称此为活动就绪状活动就绪状态态,表示为,表示为Readya。当用挂起原语。当用挂
32、起原语Suspend将该进程挂起后,将该进程挂起后,该进程便转变为该进程便转变为静止就绪状态静止就绪状态,表示为,表示为Readys,处于,处于Readys状态的进程不再被调度执行。状态的进程不再被调度执行。第二章进 程 管 理 图 2-6具有挂起状态的进程状态图 活动就绪静止就绪执行挂起激活释放挂起活动阻塞静止阻塞挂起激活释放请求I/O调度第二章进 程 管 理(2)(2)活动阻塞活动阻塞静止阻塞。当进程处于未被挂起的阻塞静止阻塞。当进程处于未被挂起的阻塞状态时,称它是处于状态时,称它是处于活动阻塞状态活动阻塞状态,表示为,表示为BlockedaBlockeda。当用。当用SuspendSus
33、pend原语将它挂起后,进程便转变为原语将它挂起后,进程便转变为静止阻塞状态静止阻塞状态,表示,表示为为BlockedsBlockeds。处于该状态的进程在其所期待的事件出现后,。处于该状态的进程在其所期待的事件出现后,将将从静止阻塞变为静止就绪从静止阻塞变为静止就绪。(3)(3)静止就绪静止就绪活动就绪。处于活动就绪。处于ReadysReadys状态的进程,若状态的进程,若用激活原语用激活原语ActiveActive激活后,该进程将转变为激活后,该进程将转变为ReadyaReadya状态。状态。(4)静止阻塞静止阻塞活动阻塞。处于活动阻塞。处于Blockeds状态的进程,若状态的进程,若用激
34、活原语用激活原语Active激活后,该进程将转变为激活后,该进程将转变为Blockeda状态。状态。图图2-6示出了具有挂起状态的进程状态图。示出了具有挂起状态的进程状态图。第二章进 程 管 理 4 4创建状态和终止状态创建状态和终止状态1)1)创建状态创建状态创建一个进程一般要通过两个步骤:创建一个进程一般要通过两个步骤:首先,为一个新进程创建首先,为一个新进程创建PCB,并填写必要的管理信息;,并填写必要的管理信息;其次,把该进程转入就绪状态并插入就绪队列之中。其次,把该进程转入就绪状态并插入就绪队列之中。第二章进 程 管 理 当一个新进程被创建时,系统已为其分配了当一个新进程被创建时,系
35、统已为其分配了PCB,填写,填写了进程标识等信息,但由于该进程所必需的资源或其它信息,了进程标识等信息,但由于该进程所必需的资源或其它信息,如主存资源尚未分配等,一般而言,此时的进程已拥有了自如主存资源尚未分配等,一般而言,此时的进程已拥有了自己的己的PCB,但进程自身还未进入主存,即创建工作尚未完成,但进程自身还未进入主存,即创建工作尚未完成,进程还不能被调度运行,其所处的状态就是进程还不能被调度运行,其所处的状态就是创建状态创建状态。第二章进 程 管 理 引入创建状态,是为了保证进程的调度必须在创建工作引入创建状态,是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整
36、性。完成后进行,以确保对进程控制块操作的完整性。同时,创建状态的引入,也增加了管理的灵活性,操作同时,创建状态的引入,也增加了管理的灵活性,操作系统可以根据系统性能或主存容量的限制,推迟创建状态进系统可以根据系统性能或主存容量的限制,推迟创建状态进程的提交。程的提交。对于处于创建状态的进程,获得了其所必需的资源,以对于处于创建状态的进程,获得了其所必需的资源,以及对其及对其PCBPCB初始化工作完成后,初始化工作完成后,进程状态便可由创建状态转入进程状态便可由创建状态转入就绪状态。就绪状态。第二章进 程 管 理 2)2)终止状态终止状态进程的终止也要通过两个步骤:进程的终止也要通过两个步骤:首
37、先首先等待操作系统进行善后处理,等待操作系统进行善后处理,然后然后将其将其PCBPCB清零,清零,并将并将PCBPCB空间返还系统。空间返还系统。第二章进 程 管 理 当一个进程到达了自然结束点,或是出现了无法克服的当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入所终结,它将进入终止状态终止状态。进入终止态的进程以后不能再执行,但在操作系统中依进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计数据,供然保留一个记录,其中保存状态码和一
38、些计时统计数据,供其它进程收集。一旦其它进程完成了对终止状态进程的信息其它进程收集。一旦其它进程完成了对终止状态进程的信息提取之后,操作系统将删除该进程。提取之后,操作系统将删除该进程。图图2-7示出了增加了创建状态和终止状态后,进程的三示出了增加了创建状态和终止状态后,进程的三种基本状态及转换图衍变为五种状态及转换关系图。种基本状态及转换图衍变为五种状态及转换关系图。第二章进 程 管 理 图2-7 进程的五种基本状态及转换 创建就绪阻塞执行终止许可I/O请求释放I/O完成时间片完进程调度第二章进 程 管 理 图图2-8 具有创建、终止和挂起状态的进程状态图具有创建、终止和挂起状态的进程状态图
39、 创建终止执行活动就绪活动阻塞静止阻塞静止就绪许可许可请求I/O释放激活挂起释放挂起激活挂起释放第二章进 程 管 理 如图如图2-82-8所示,引进创建和终止状态后,在进程状态转换所示,引进创建和终止状态后,在进程状态转换时,相比较图时,相比较图2-72-7所示的进程五状态转换而言,需要增加考虑所示的进程五状态转换而言,需要增加考虑下面的几种情况。下面的几种情况。(1)NULL(1)NULL创建:创建:一个新进程产生时,该进程处于创建状态。一个新进程产生时,该进程处于创建状态。(2)创建创建活动就绪:活动就绪:在当前系统的性能和内存的容量均允许的情况下,完成在当前系统的性能和内存的容量均允许的
40、情况下,完成对进程创建的必要操作后,相应的系统进程将进程的状态转对进程创建的必要操作后,相应的系统进程将进程的状态转换为活动就绪状态。换为活动就绪状态。第二章进 程 管 理(3)(3)创建创建静止就绪:静止就绪:考虑到系统当前资源状况和性能要求,并不分配给新考虑到系统当前资源状况和性能要求,并不分配给新建进程所需资源,主要是主存资源,相应的系统进程将进建进程所需资源,主要是主存资源,相应的系统进程将进程状态转为程状态转为静止就绪状态静止就绪状态,对换到外存,不再参与调度,对换到外存,不再参与调度,此时进程创建工作尚未完成。此时进程创建工作尚未完成。(4)执行执行终止:终止:当一个进程到达了自然
41、结束点,或是出现了无法克服当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,进程即进进程所终结,进程即进终止状态终止状态。第二章进 程 管 理 2.1.52.1.5进程控制块进程控制块1 1进程控制块的作用进程控制块的作用为了描述和控制进程的运行,系统为每个进程定义了一个为了描述和控制进程的运行,系统为每个进程定义了一个数据结构数据结构进程控制块进程控制块PCB(Process Control Block),它是,它是进程实体的一部分,是操作系统中最重要的记录型数据结构。进程实体的一部分
42、,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的、用于描述进程的当前情况中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。以及控制进程运行的全部信息。进程控制块的作用进程控制块的作用是使一个在多道程序环境下不能独立运是使一个在多道程序环境下不能独立运行的程序行的程序(含数据含数据),成为成为一个能独立运行的基本单位,一个能一个能独立运行的基本单位,一个能与其它进程与其它进程并发执行并发执行的进程。的进程。第二章进 程 管 理 或者说,或者说,OS是根据是根据PCB来对并发执行的进程进行控制和来对并发执行的进程进行控制和管理的。例如:管理的。例如:当当O
43、S要调度某进程执行时,要从该进程的要调度某进程执行时,要从该进程的PCB中查出其现行中查出其现行状态及优先级;状态及优先级;在调度到某进程后,要根据其在调度到某进程后,要根据其PCB中所保存的处理机状态信中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其息,设置该进程恢复运行的现场,并根据其PCB中的程序和数中的程序和数据的内存始址,找到其程序和数据;据的内存始址,找到其程序和数据;进程在执行过程中,当需要和与之合作的进程实现同步、通进程在执行过程中,当需要和与之合作的进程实现同步、通信或访问文件时,也都需要访问信或访问文件时,也都需要访问PCB;当进程由于某种原因而暂停执行时,又须
44、将其断点的处理机当进程由于某种原因而暂停执行时,又须将其断点的处理机环境保存在环境保存在PCB中。中。第二章进 程 管 理 可见,在进程的整个生命期中,系统总是通过可见,在进程的整个生命期中,系统总是通过PCB对进程对进程进行控制的,亦即,进行控制的,亦即,系统是根据进程的系统是根据进程的PCB而不是任何别的什而不是任何别的什么而感知到该进程的存在的么而感知到该进程的存在的。所以说,所以说,PCB是进程存在的惟一标志。是进程存在的惟一标志。第二章进 程 管 理 当系统创建一个新进程时,就为它建立了一个当系统创建一个新进程时,就为它建立了一个PCB;进;进程结束时又回收其程结束时又回收其PCB,
45、进程于是也随之消亡。,进程于是也随之消亡。PCB可以被操作系统中的多个模块读或修改,如被调度可以被操作系统中的多个模块读或修改,如被调度程序、资源分配程序、中断处理程序以及监督和分析程序等程序、资源分配程序、中断处理程序以及监督和分析程序等读或修改。读或修改。因为因为PCB经常被系统访问,尤其是被运行频率很高的进经常被系统访问,尤其是被运行频率很高的进程及分派程序访问,故程及分派程序访问,故PCB应常驻内存。应常驻内存。第二章进 程 管 理 系统将所有的系统将所有的PCB组织成若干个链表组织成若干个链表(或队列或队列),存放在,存放在操作系统中专门开辟的操作系统中专门开辟的PCB区内。区内。例
46、如在例如在Linux系统中用系统中用task_struct数据结构来描述每个进数据结构来描述每个进程的进程控制块,在程的进程控制块,在Windows操作系统中则使用一个执行体操作系统中则使用一个执行体进程块进程块(EPROCESS)来表示进程对象的基本属性。来表示进程对象的基本属性。第二章进 程 管 理 2 2进程控制块中的信息进程控制块中的信息1)1)进程标识符进程标识符进程进程标识符标识符用于惟一地标识一个进程。一个进程通常有两用于惟一地标识一个进程。一个进程通常有两种标识符:种标识符:(1)(1)内部标识符内部标识符。在所有的操作系统中,都为每一个进程。在所有的操作系统中,都为每一个进程
47、赋予了一个惟一的赋予了一个惟一的数字标识符数字标识符,它通常是一个进程的序号。设,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。置内部标识符主要是为了方便系统使用。(2)外部标识符外部标识符。它由创建者提供,通常是由字母、数字。它由创建者提供,通常是由字母、数字组成,往往是由用户组成,往往是由用户(进程进程)在访问该进程时使用。在访问该进程时使用。为了描述进程的家族关系,还应设置为了描述进程的家族关系,还应设置父进程标识父进程标识及及子进程子进程标识标识。此外,还可设置。此外,还可设置用户标识用户标识,以指示拥有该进程的用户。,以指示拥有该进程的用户。第二章进 程 管 理 2)
48、2)处理机状态处理机状态处理机状态信息主要是由处理机的各种寄存器中的内容处理机状态信息主要是由处理机的各种寄存器中的内容组成的。组成的。处理机在运行时,许多信息都放在寄存器中。处理机在运行时,许多信息都放在寄存器中。当处理机被中断时,所有这些信息都必须保存在当处理机被中断时,所有这些信息都必须保存在PCB中,中,以便在该进程重新执行时,能从断点继续执行。以便在该进程重新执行时,能从断点继续执行。第二章进 程 管 理 这些寄存器包括:这些寄存器包括:通用寄存器,又称为用户可视寄存器,它们是用户程序可通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有以访
49、问的,用于暂存信息,在大多数处理机中,有 832个通个通用寄存器,在用寄存器,在RISC结构的计算机中可超过结构的计算机中可超过100个;个;指令计数器,其中存放了要访问的下一条指令的地址;指令计数器,其中存放了要访问的下一条指令的地址;程序状态字程序状态字PSW,其中含有状态信息,如条件码、执行方,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;式、中断屏蔽标志等;用户栈指针,指每个用户进程都有一个或若干个与之相关用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址,栈指的系统栈,用于存放过程和系统调用参数及调用地址,栈指针指向该栈的栈顶。针
50、指向该栈的栈顶。第二章进 程 管 理 3)3)进程调度信息进程调度信息在在PCB中还存放一些与进程调度和进程对换有关的信息,中还存放一些与进程调度和进程对换有关的信息,包括:包括:进程状态,指明进程的当前状态,作为进程调度和对换时进程状态,指明进程的当前状态,作为进程调度和对换时的依据;的依据;进程优先级,用于描述进程使用处理机的优先级别的一个进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机;整数,优先级高的进程应优先获得处理机;第二章进 程 管 理 进程调度所需的其它信息,它们与所采用的进程调度算法进程调度所需的其它信息,它们与所采用的进程调度算法有关,
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。