《操作系统第2章ppt课件.ppt》由会员分享,可在线阅读,更多相关《操作系统第2章ppt课件.ppt(101页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人第二章第二章 进程管理进程管理 2.1 2.1 进程的基本概念进程的基本概念 2.2 2.2 进程控制进程控制 2.3 2.3 进程同步进程同步 2.4 2.4 经典进程的同步问题经典进程的同步问题 2.52.5 进程通信进程通信 2.6 2.6 线程线程 1第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1 2.1 进程的基本概念进程的基本
2、概念 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征 1.程序的顺序执行程序的顺序执行 仅仅当当前前一一操操作作(程程序序段段)执执行行完完后后,才才能能执执行行后后继继操操作作。例例如如,在在进进行行计计算算时时,总总须须先先输输入入用用户户的的程程序序和和数数据据,然然后后进行计算,最后才能打印计算结果。进行计算,最后才能打印计算结果。S1:a=x+y;S2:b=a-5;S3:c=b+1;2第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人图 2-1 程序的顺序执行 3第二章 进
3、程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.程序顺序执行时的特征程序顺序执行时的特征(1)顺序性:顺序性:处理机的操作,严格按照程序所规定的顺序执行,即只处理机的操作,严格按照程序所规定的顺序执行,即只有前一操作结束后,才能执行后继操作。有前一操作结束后,才能执行后继操作。(2)封闭性封闭性(失去交换性)(失去交换性):程序是在封闭的环境下运行的。即程序在运行时,它独程序是在封闭的环境下运行的。即程序在运行时,它独占全机资源,因而机内各资源的状态(除初始状态外),占全机资源,因而机内各资源的状态(
4、除初始状态外),只有程序才能改变它。程序一旦开始运行,其执行结果只有程序才能改变它。程序一旦开始运行,其执行结果不受外界因素的影响。不受外界因素的影响。(3)可再现性:可再现性:只要程序执行时的环境和初始条件都相同,不论它是从只要程序执行时的环境和初始条件都相同,不论它是从头到尾的不停顿的执行,还是头到尾的不停顿的执行,还是“走走停停走走停停”地执行,都地执行,都将获得相同的结果。将获得相同的结果。4第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 2.1.2 前趋图前趋图 n前驱图
5、(前驱图(Procedence Graph):是一个有向无循环图,是一个有向无循环图,图中的每个图中的每个结点结点可用于表示一条语句、一个程序段或进程;可用于表示一条语句、一个程序段或进程;结点间的结点间的有向边有向边则表示在两结点之间存在的偏序或前驱关则表示在两结点之间存在的偏序或前驱关系系“”,即,即(pi,pj)n如果如果(pi,pj)可写成可写成pi pj,称称pi是是pj 的直接前驱,的直接前驱,而而pj是是pi的直接后继。的直接后继。n关于前驱图的几个概念:关于前驱图的几个概念:1 直接前趋直接前趋2 直接后继直接后继3 初始结点初始结点 没有前驱的结点没有前驱的结点4 终止结点终
6、止结点 没有后继的结点没有后继的结点5 结点的重量:该结点所含的程序量或结点的执行时间来结点的重量:该结点所含的程序量或结点的执行时间来计算。计算。5第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人示 例图 2-2 前趋图 存在下述前趋关系:存在下述前趋关系:P1P2,P1P3,P1P4,P2P5,P3P5,P4P6,P4P7,P5P8,P6P8,P7P9,P8P9 或表示为:或表示为:P=P1,P2,P3,P4,P5,P6,P7,P8,P9=(P1,P2),(P1,P3),(P1,P4),(
7、P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)6第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人注意,前趋图中必须不存在循环。注意,前趋图中必须不存在循环。如在图如在图2-2(b)中的前趋关系:中的前趋关系:S2S3,S3S2 显然这种前驱关系是不可能满足的,显然这种前驱关系是不可能满足的,S3的执行要依赖于的执行要依赖于S2的的执行结果,执行结果,S2的执行结果又要依赖于的执行结果又要依赖于S3的执行结果,这种程的
8、执行结果,这种程序是不可能执行下去的。序是不可能执行下去的。图 2-2 前趋图 7第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征1.程序的并发执行程序的并发执行 程序并发执行可分为两种:程序并发执行可分为两种:多道程序系统的程序执行环境变化所引起的多道程序的并发多道程序系统的程序执行环境变化所引起的多道程序的并发执行执行 由于资源有限,多道程序的并发执行总是伴随着资源的共享与由于资源有限,多道程序的并发执行总是伴随着资源的共
9、享与竞争,制约了各道程序的执行速度。竞争,制约了各道程序的执行速度。在某道程序段中,包含着一部分可以同时执行或顺序颠倒执在某道程序段中,包含着一部分可以同时执行或顺序颠倒执行的代码行的代码 例如:例如:read(a););read(b););既可以同时执行,也可以颠倒次序执行,同时执行不会改变顺既可以同时执行,也可以颠倒次序执行,同时执行不会改变顺序程序所具有的逻辑结构,可采用并发执行来充分利用资源。序程序所具有的逻辑结构,可采用并发执行来充分利用资源。8第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来
10、治疗该病人P1P2P3P4I1I2I3I4C1C2C3C4示例示例1存在下述前趋关系:存在下述前趋关系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1而而Ii+1和和Ci及及Pi-1是是重重迭迭的的,亦亦即即在在Pi-1和和Ci以以及及Ii+1之之间间,可可以以并并发执行。发执行。9第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人对于具有下述四条语句的程序段:对于具有下述四条语句的程序段:S1:a=x+2 S2:b=y+4 S3:c=a+b S4:d=c+b 图图 2-4 四条语
11、句的前趋关系四条语句的前趋关系示例示例210第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人程序并发执行:程序并发执行:一组逻辑上相互独立的程序或程序段一组逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上相互在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行,尚未结束,重叠,即一个程序段的执行,尚未结束,另一个程序段的执行已经开始的这种执行另一个程序段的执行已经开始的这种执行方式。方式。11第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对
12、于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.程序并发执行时的特征程序并发执行时的特征 1)间断性间断性 程序在并发执行时,由于它们共享资源或为完成某一项任务程序在并发执行时,由于它们共享资源或为完成某一项任务而合作,致使在并发程序之间存在相互制约的关系。而合作,致使在并发程序之间存在相互制约的关系。I、C、P是三个相互合作的程序,当计算程序完成是三个相互合作的程序,当计算程序完成Ci1的计算后,如的计算后,如果输入程序果输入程序I尚未完成对尚未完成对Ii的处理,则计算程序无法进行的处理,则计算程序无法进行Ci处处理,致使计算程序暂停运行。理,致使计算程序暂停运行
13、。2)失去封闭性失去封闭性 程序在并发执行时,是多个程序共享系统中的各种资源,因程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。去了封闭性。3)不可再现性不可再现性程序在并发执行时,由于失去了封闭性,也导致失去了可再现性。程序在并发执行时,由于失去了封闭性,也导致失去了可再现性。12第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人例如:有两个循环程序例如:有两个循环程序A和和
14、B,它们共享一个变量,它们共享一个变量N。int N=n程序程序 A条件为真条件为真1 N=N+1;程序程序A的其余部分的其余部分程序程序B条件为真条件为真 1 print(N);2 N=0;程序程序B的其余部分结构的其余部分结构讨论可能出现的结果讨论可能出现的结果 (1)N=N+1在在Print(N)和和N=0之之前前,此此时时得得到到的的N值值分分别别为为n+1,n+1,0。(2)N=N+1在在Print(N)和和N=0之之后后,此此时时得得到到的的N值值分分别别为为n,0,1。(3)N=N+1在在Print(N)和和N=0之之间间,此此时时得得到到的的N值值分分别别为为n,n+1,0。1
15、3第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人程序并发执行的条件程序并发执行的条件程序并发执行过程可以描述为:程序并发执行过程可以描述为:S0CobeginP1;P2;PnCoendSn1966年,年,Bernstein提出了相邻语句提出了相邻语句S1,S2可以并发执可以并发执行的条件。行的条件。如果并发执行的各程序段中语句或指令满足如果并发执行的各程序段中语句或指令满足Bernstein的三个条件,则认为并发执行不会对执行结果的封的三个条件,则认为并发执行不会对执行结果的封闭性和可再现性
16、产生影响。闭性和可再现性产生影响。14第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人将程序中任一语句将程序中任一语句Si划分为两个变量的集合划分为两个变量的集合R(Si)和)和 W(Si),其中),其中R(Si)a1,a2,am是语句是语句Si在执行其间所需在执行其间所需引引用用的变量集合,称为的变量集合,称为Si的的读集读集。W(Si)b1,b2,bn是语句是语句Si在执行其间必须在执行其间必须对其进行对其进行修改修改的变量集合,称为的变量集合,称为Si的的写集写集。如果对于语句如果对于语
17、句S1和和S2,有,有 R(S1)W(S2)W(S1)R(S2)W(S1)W(S2)=同时成立同时成立即:即:R(S1)W(S2)W(S1)R(S2)W(S1)W(S2),则语句则语句S1和和S2是可以并发执行的。是可以并发执行的。15第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人例:若有两条语句例:若有两条语句c:ab和和w:c1,判断它们是否,判断它们是否可以并发执行?可以并发执行?解:解:它们的它们的“读集读集”和和“写集写集”分别为分别为 R(c:ab)a,b;R(w:c1)c W(
18、c:ab)c ;W(w:c1)w R(c:ab)W(w:c1)=R(w:c1)W(c:ab)=c所以:两条语句不能并发执行。所以:两条语句不能并发执行。16第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人同一语句的同一语句的“读集读集”和和“写集写集”的交集可以是空集。的交集可以是空集。R(C:ab)W(C:ab)R(W:c1)W(W:c1)=其实,同一语句的其实,同一语句的“读集读集”和和“写集写集”也可能相同(交也可能相同(交集不为空)集不为空)例如:计数语句:例如:计数语句:x xx x
19、1 1读集和写集相同读集和写集相同 R R(x xx x1 1)WW(x xx x1 1)xx17第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人练练 习习例:用例:用Bernstein条件判断以下四条语句是否两条件判断以下四条语句是否两两可以并发执行。两可以并发执行。S1:a:xyS2:b:z1S3:c:abS4:w:c118第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人解答:解答:R(S
20、1)=x,y,W(S1)=aR(S2)=z,W(S2)=bR(S3)=a,b,W(S3)=cR(S4)=c,W(S4)=wS1和和S2能满足能满足Bernstein条件,所以能并发执行条件,所以能并发执行而对于而对于S1和和S3不不能满足能满足Bernstein条件,因为条件,因为R(S3)W(S1)=a)=a,所以不能并发执行。,所以不能并发执行。同理,同理,S S2 2和和S S3 3,以及以及S S3 3和和S S4 4也不能并发执行。也不能并发执行。S1S2S4S3S1:a:xyS2:b:z1S3:c:abS4:w:c119第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮
21、肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.4 2.1.4 进程的特征与状态进程的特征与状态 1.进程的特征和定义进程的特征和定义 1)结构特征结构特征每个进程都有程序段、数据段及一个每个进程都有程序段、数据段及一个PCB三部分组成三部分组成2)动态性动态性 (a 进程的实质进程的实质 b 进程的生命周期进程的生命周期)3)并发性并发性 4)独立性独立性 独立运行,独立分配资源,独立接受调度独立运行,独立分配资源,独立接受调度 5)异步性异步性 进程按各自独立的、不可预知的速度向前推进进程按各自独立的、不可预知的速度向前推进20第二章 进 程
22、 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人q 较典型的较典型的进程定义进程定义有:有:(1)进程是程序的一次执行。进程是程序的一次执行。(2)进进程程是是一一个个程程序序及及其其数数据据在在处处理理机机上上顺顺序序执执行行时时所所发生的活动。发生的活动。(3)进进程程是是程程序序在在一一个个数数据据集集合合上上运运行行的的过过程程,它它是是系系统进行资源分配和调度的一个独立单位。统进行资源分配和调度的一个独立单位。在在引引入入了了进进程程实实体体的的概概念念后后,我我们们可可以以把把传传统统OS中中的
23、的进进程程定定义义为为:“进进程程是是进进程程实实体体的的运运行行过过程程,是是系系统统进进行行资资源源分配和调度的一个独立单位分配和调度的一个独立单位”。21第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人n 比较进程和程序的区别:比较进程和程序的区别:答:答:1 进程是一个动态的概念进程是一个动态的概念,进程的实质是程序的一次执,进程的实质是程序的一次执行过程,动态性是进程的基本特征,同时进程是有一定的生行过程,动态性是进程的基本特征,同时进程是有一定的生命期的;而程序只是一组有序指令的集
24、合,本身并无运动的命期的;而程序只是一组有序指令的集合,本身并无运动的含义,是静态的。含义,是静态的。2 2 并发性并发性,并发性是进程的重要特征,引入进程的目的正是,并发性是进程的重要特征,引入进程的目的正是为了使其程序和其它程序并发执行;为了使其程序和其它程序并发执行;而程序而程序(没有建立进程没有建立进程)是不能并发执行的。是不能并发执行的。3 3 独立性独立性,是指进程是一个能独立运行、独立分配资源和独,是指进程是一个能独立运行、独立分配资源和独立调度的基本单位;立调度的基本单位;凡未建立进程的程序,都不能作为一个凡未建立进程的程序,都不能作为一个独立的单位参加运行。独立的单位参加运行
25、。不同的进程可以包含同一个程序,同一个程序在执行中不同的进程可以包含同一个程序,同一个程序在执行中也可以产生多个进程,一个进程可由多个程序组成。也可以产生多个进程,一个进程可由多个程序组成。22第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.进程的三种基本状态进程的三种基本状态 1)就绪就绪(Ready)状态状态 当进程已经分配到除当进程已经分配到除CPU以外的所有必要的资源后,只要能以外的所有必要的资源后,只要能再获得处理机,就可以立即执行。这时的进程的状态称为再获得处理机,就可以立即执
26、行。这时的进程的状态称为就就绪状态绪状态。2)执行状态执行状态(Running)()(运行状态)运行状态)指进程已获得处理机,其程序正在执行。在单处理机系统中,指进程已获得处理机,其程序正在执行。在单处理机系统中,只能有一个进程处于执行状态。(在多处理机中,可能有多只能有一个进程处于执行状态。(在多处理机中,可能有多个进程处于执行状态)个进程处于执行状态)3)阻塞状态阻塞状态(Block)()(等待状态)等待状态)进程因为发生某个事件而暂停执行时的状态(如:请求进程因为发生某个事件而暂停执行时的状态(如:请求I/O、申请缓冲空间等),即进程受到阻塞,所以称这种暂停状态申请缓冲空间等),即进程受
27、到阻塞,所以称这种暂停状态为阻塞状态,有时也称为阻塞状态,有时也称“等待等待”状态或状态或“睡眠睡眠”状态。状态。23第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人就绪就绪新进程新进程(创建)(创建)结束结束(终止)(终止)执行执行阻塞阻塞接纳接纳事件发生事件发生进程调度进程调度等待某事件等待某事件完成完成中断中断图 2-5 进程的三种基本状态及其转换 24第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如
28、何来治疗该病人示例:示例:进程一般有三个基本状态,即运行、就绪和等待。进程一般有三个基本状态,即运行、就绪和等待。有一单处理机系统中有五个进程存在,当处于目有一单处理机系统中有五个进程存在,当处于目态执行时,问:态执行时,问:运行进程最多运行进程最多 个,最少个,最少 个。个。A.1 B.2 C.0 D.5等待进程最多等待进程最多 个,最少个,最少 个。个。A.5 B.4 C.3 D.1 E.0就绪进程最多就绪进程最多 个,最少个,最少 个。个。A.5 B.4 C.3 D.1 E.0ACAEBE25第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病
29、人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人3.挂起状态挂起状态1)引入挂起状态的原因引入挂起状态的原因(1)终端用户的请求。终端用户的请求。(2)(2)当终端用户在自己的程序运行期间,发现有可疑问题时,当终端用户在自己的程序运行期间,发现有可疑问题时,往往希望暂时使自己的进程静止下来。也就是说,如果进程往往希望暂时使自己的进程静止下来。也就是说,如果进程处于执行状态,则暂停执行;如果进程处于就绪状态,则暂处于执行状态,则暂停执行;如果进程处于就绪状态,则暂时不接受调度,以便研究其执行情况或对程序进行修改。我时不接受调度,以便研究其执行情况或对程序进行修改。我们把这种静止状态称为们把
30、这种静止状态称为挂起状态挂起状态。(3)(2)父进程请求。父进程请求。(4)(4)父进程常常希望考察和修改子进程,或者当要协调各子进父进程常常希望考察和修改子进程,或者当要协调各子进程间的活动时,要挂起自己的子进程。程间的活动时,要挂起自己的子进程。26第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人(3)负荷调节的需要。负荷调节的需要。当实时系统中的工作负荷较重,可能影响到对实时任务的控当实时系统中的工作负荷较重,可能影响到对实时任务的控制时,可由系统把一些不重要或不紧迫的进程挂起,以保证系
31、制时,可由系统把一些不重要或不紧迫的进程挂起,以保证系统仍然能正常运行。统仍然能正常运行。(4)操作系统的需要。操作系统的需要。操作系统有时需要挂起某些进程,检查运行中资源的使用情操作系统有时需要挂起某些进程,检查运行中资源的使用情况及进行记帐,以便改善系统的运行性能况及进行记帐,以便改善系统的运行性能(5)(5)对换的需要对换的需要 为为了了缓缓和和内内存存紧紧张张的的情情况况,将将内内存存中中处处于于阻阻塞塞状状态态的的进进程程换换至外存上。至外存上。27第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如
32、何来治疗该病人2)2)进程状态的转换进程状态的转换 在引入挂起状态后,又将增加从挂起状态(又称静止状态)到在引入挂起状态后,又将增加从挂起状态(又称静止状态)到非挂起状态(又称活动状态)的转换,或者相反。非挂起状态(又称活动状态)的转换,或者相反。(1)活动就绪活动就绪静止就绪。静止就绪。当进程处于未被挂起的当进程处于未被挂起的就绪状态就绪状态时,称此为时,称此为活动就绪状态活动就绪状态,表示为表示为Readya。当用挂起原语当用挂起原语Suspend将该进程挂起后,将该进程挂起后,该进程便转变为该进程便转变为静止就绪状态静止就绪状态。表示为。表示为Readys(处在处在Readys状态的进程
33、,不再被调度执行)状态的进程,不再被调度执行)28第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人(2)活动阻塞活动阻塞静止阻塞。静止阻塞。当当进进程程处处于于未未被被挂挂起起的的阻阻塞塞状状态态时时,称称为为它它处处在在活活动动阻阻塞塞状状态态(表表示示为为Blockeda)。当当Suspend原原语语将将它它挂挂起起后后,进进程程便便转转变变为为静静止止阻阻塞塞状状态态(表表示示为为Blockeds)。处处于于该该状状态态的的进进程程,在其所期待的事件出现以后,他将从静止阻塞变为静止就绪。
34、在其所期待的事件出现以后,他将从静止阻塞变为静止就绪。(3)静止就绪静止就绪活动就绪。活动就绪。处处于于Readys状状态态的的进进程程,若若用用激激活活原原语语Active激激活活后后,该该进进程将转变为程将转变为Readya状态。状态。(4)静止阻塞静止阻塞活动阻塞。活动阻塞。处处于于Blockeds状状态态的的进进程程,若若用用激激活活原原语语Active激激活活后后,进进程程将转变为将转变为Blockeda状态。状态。29第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人图 2-6 具有
35、挂起状态的进程状态图 活动活动就绪就绪静止就绪执行执行挂起挂起激活激活释放释放挂起挂起活动活动阻塞阻塞静止阻塞挂起挂起激活激活释放释放请求请求I/O30第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人3.创建状态和终止状态创建状态和终止状态 1)创建状态)创建状态 2)终止状态)终止状态 3)进程状态转换)进程状态转换 P40 图图2.7、图、图2.831第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来
36、治疗该病人2.1.5 2.1.5 进程控制块进程控制块 1.1.进程控制块的作用进程控制块的作用 进进程程控控制制块块的的作作用用是是使使一一个个在在多多道道程程序序环环境境下下不不能能独独立立运运行行的的程程序序(含含数数据据),成成为为一一个个能能独独立立运运行行的的基基本本单单位位,一一个个能能与与其其它它进进程程并并发发执执行行的的进进程程。或或者者说说,OS是根据是根据PCB来对并发执行的进程进行控制和管理的。来对并发执行的进程进行控制和管理的。v每一个进程都有一个每一个进程都有一个PCB,PCB是系统感知进是系统感知进程存在的唯一实体程存在的唯一实体 v PCB 通常常驻内存通常常
37、驻内存32第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.进程控制块中的信息进程控制块中的信息 1)进程标识符进程标识符 进进程程标标识识符符用用于于惟惟一一地地标标识识一一个个进进程程。一一个个进进程程通通常常有有两两种标识符:种标识符:(1)(1)内内部部标标识识符符。在在所所有有的的操操作作系系统统中中,都都为为每每一一个个进进 程程赋赋予予一一个个惟惟一一的的数数字字标标识识符符,它它通通常常是是一一个个进进程程的的序序号号。设设置内部标识符主要是为了方便系统使用。置内部标识符
38、主要是为了方便系统使用。(2)(2)外外部部标标识识符符。它它由由创创建建者者提提供供,通通常常是是由由字字母母、数数字字组组成成,往往往往是是由由用用户户(进进程程)在在访访问问该该进进程程时时使使用用。为为了了描描述述进进程程的的家家族族关关系系,还还应应设设置置父父进进程程标标识识及及子子进进程程标标识识。此此外外,还还可设置用户标识,以指示拥有该进程的用户。可设置用户标识,以指示拥有该进程的用户。33第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人 2)处理机状态处理机状态 处处理理机
39、机状状态态信信息息主主要要是是由由处处理理机机的的各各种种寄寄存存器器中中的的内内容容组成的。组成的。(如中断时如中断时)通通用用寄寄存存器器(或或用用户户可可视视寄寄存存器器),它它们们是是用用户户程程序序可可以以访访问问的的,用用于于暂暂存存信信息息,在在大大多多数数处处理理机机中中,有有 832 个个通用寄存器,在通用寄存器,在RISC结构的计算机中可超过结构的计算机中可超过 100 个;个;指指令令计计数数器器,其其中中存存放放了了要要访访问问的的下下一一条条指指令令的的地地址址;程程序序状状态态字字PSWPSW,其其中中含含有有状状态态信信息息,如如条条件件码码、执执行行方方式、式、
40、中断屏蔽标志等;中断屏蔽标志等;34第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人 用用户户栈栈指指针针,指指每每个个用用户户进进程程都都有有一一个个或或若若干干个个与与之之相相关关的的系系统统栈栈,用用于于存存放放过过程程和和系系统统调调用用参参数数及及调调用用地地址址。栈栈指针指向该栈的栈顶。指针指向该栈的栈顶。35第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人 3)进程调度信息进程调
41、度信息 在在PCB中中还还存存放放一一些些与与进进程程调调度度和和进进程程对对换换有有关关的的信信息息,包包括括:进进程程状状态态,指指明明进进程程的的当当前前状状态态,作作为为进进程程调调度度和和对对换换时时的的依依据据;进进程程优优先先级级,用用于于描描述述进进程程使使用用处处理理机机的的优优先先级级别别的的一一个个整整数数,优优先先级级高高的的进进程程应应优优先先获获得得处处理理机机;进进程程调调度度所所需需的的其其它它信信息息,它它们们与与所所采采用用的的进进程程调调度度算算法法有有关关,比比如如,进进程程已已等等待待CPU的的时时间间总总和和、进进程程已已执执行行的的时时间间总总和和
42、等等;事事件件,是是指指进进程程由由执执行行状状态态转转变变为为阻阻塞塞状状态态所所等待发生的事件,即阻塞原因。等待发生的事件,即阻塞原因。36第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人 4)进程控制信息进程控制信息包包括括:程程序序和和数数据据的的地地址址,是是指指进进程程的的程程序序和和数数据据所所在在的的内内存存或或外外存存地地(首首)址址,以以便便再再调调度度到到该该进进程程执执行行时时,能能从从PCB中找到其程序和数据;中找到其程序和数据;进进程程同同步步和和通通信信机机制制,
43、指指实实现现进进程程同同步步和和进进程程通通信信时时必必需需的的机机制制,如如消消息息队队列列指指针针、信信号号量量等等,它它们们可可能能全全部部或或部部分分地地放放在在PCB中;中;资资源源清清单单,是是一一张张列列出出了了除除CPU以以外外的的、进进程程所所需需的的全全部部资资源及已经分配到该进程的资源的清单;源及已经分配到该进程的资源的清单;链链接接指指针针,它它给给出出了了本本进进程程(PCB)所所在在队队列列中中的的下下一一个个进进程程的的PCB的首地址。的首地址。37第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有
44、限,请同学们想一想如何来治疗该病人3.3.进程控制块的组织方式进程控制块的组织方式 1)链接方式链接方式 具有相同状态的具有相同状态的PCBPCB,用其中的链接字,链接成一个队,用其中的链接字,链接成一个队列。这样就可以形成就绪队列、若干个阻塞队列和空白队列列。这样就可以形成就绪队列、若干个阻塞队列和空白队列等。等。对其中的就绪队列常按照进程优先权的大小排列,把优对其中的就绪队列常按照进程优先权的大小排列,把优先权高的进程的先权高的进程的PCBPCB排在队列前面。也可根据阻塞原因的不排在队列前面。也可根据阻塞原因的不同而把处于阻塞状态的进程分成不同队列。同而把处于阻塞状态的进程分成不同队列。3
45、8第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人执行指针执行指针就绪队列指针就绪队列指针阻塞队列指针阻塞队列指针空闲队列指针空闲队列指针PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB94308 7901图 2-9 PCB链接队列示意图 39第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2)索引方式索引方式 系统根据所有进程的状态,建立几张索引表。例系统根据所有进程的
46、状态,建立几张索引表。例如:就绪索引表、阻塞索引表。并把各索引表在内存如:就绪索引表、阻塞索引表。并把各索引表在内存的首地址记录在内存中的一些专用单元中。每个索引的首地址记录在内存中的一些专用单元中。每个索引表的表目中,记录具有相同状态的某个表的表目中,记录具有相同状态的某个PCBPCB在在PCBPCB表中表中的地址。的地址。40第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人图 2-10 按索引方式组织PCB 41第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,
47、但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人进程上下文进程上下文进程上下文:进程上下文:是进程执行活动全过程的静态描述是进程执行活动全过程的静态描述。包括计算。包括计算机系统中与执行该进程有关的各种寄存器的值、程机系统中与执行该进程有关的各种寄存器的值、程序段在经过编译之后形成的机器指令代码集、数据序段在经过编译之后形成的机器指令代码集、数据集及各种堆栈值和集及各种堆栈值和PCB结构。可按一定的执行层次结构。可按一定的执行层次组合,如用户级上下文、系统级上下文等。组合,如用户级上下文、系统级上下文等。42第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮
48、肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人进程空间进程空间任何一个进程,都有自己的地址空间,把该空间称为进程空任何一个进程,都有自己的地址空间,把该空间称为进程空间或虚空间间或虚空间。进程空间的大小只与处理机的位数有关。程序的执行都在进进程空间的大小只与处理机的位数有关。程序的执行都在进程空间内进行。用户程序、进程的各种控制表格都按一定程空间内进行。用户程序、进程的各种控制表格都按一定的结构排列在进程空间里。的结构排列在进程空间里。在在Unix和和Linux系统中,进程空间还被划分为用户空间和系系统中,进程空间还被划分为用户空间和系统空间两大部分统
49、空间两大部分在进程空间被划分为两大部分后,用户程序在用户空间内执在进程空间被划分为两大部分后,用户程序在用户空间内执行,操作系统内核程序在进程的系统空间内执行。行,操作系统内核程序在进程的系统空间内执行。为了防止用户程序访问系统空间,造成访问出错,计算机系为了防止用户程序访问系统空间,造成访问出错,计算机系统还通过程序状态寄存器设置不同的执行模式,用户模式统还通过程序状态寄存器设置不同的执行模式,用户模式和系统模式来进行保护,即用户态和系统态和系统模式来进行保护,即用户态和系统态。43第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮
50、肤很有限,请同学们想一想如何来治疗该病人 练练 习习1.为使进程由活动就绪转变为静止就绪,应利用为使进程由活动就绪转变为静止就绪,应利用_原语;为使进程由执行状态变为阻塞状态,原语;为使进程由执行状态变为阻塞状态,应利用应利用_原语;为使进程由静止就绪变为活原语;为使进程由静止就绪变为活动就绪,应利用动就绪,应利用_原语;从阻塞状态变为就原语;从阻塞状态变为就绪状态应利用绪状态应利用_原语。原语。-:A.create B.suspend C.active D.block E.wakeup 答案:答案:B D C E44第二章 进 程 管 理 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植