第2章进程管理_第1页
第2章进程管理_第2页
第2章进程管理_第3页
第2章进程管理_第4页
第2章进程管理_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-4-71操作系统操作系统2022-4-72内容概述内容概述2.1 2.1 进程的基本概念进程的基本概念 2.2 2.2 进程控制进程控制 2.3 2.3 进程同步进程同步 2.4 2.4 经典进程的同步问题经典进程的同步问题 2.5 2.5 管程机制管程机制 2.6 2.6 进程通信进程通信 2.7 2.7 线程线程 进程管理的进程管理的主要功能主要功能是把处理机分配给进程是把处理机分配给进程,并对处理器运并对处理器运行进行有效地控制和管理行进行有效地控制和管理,以及协调各个进程之间的相互关系。以及协调各个进程之间的相互关系。2022-4-732.1.1 2.1.1 程序的顺序执行及

2、其特征程序的顺序执行及其特征2.1.2 2.1.2 前趋图前趋图2.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征2.1.4 2.1.4 进程的特征与状态进程的特征与状态2.1.5 2.1.5 进程控制块进程控制块2022-4-742.1.2 2.1.2 前趋图前趋图(Precedence Graph) (Precedence Graph) 前趋图前趋图是一个有向是一个有向无循环无循环图图,记为记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系用于描述进程之间执行的前后关系。图中的每个。图中的每个结点结点可用于描可用于描述一个述一个程序

3、段程序段或或进程进程,乃至乃至一条语句一条语句;结点间的结点间的有向边有向边则用于表示则用于表示两个结点之间存在的两个结点之间存在的偏序偏序(Partial Order)或或前趋关系前趋关系(Precedence Relation)“”。 =(Pi, Pj)|Pi must complete before Pj may start, 如果如果(Pi, Pj),可写成可写成PiPj,称称Pi是是Pj的直接前趋的直接前趋,而称而称Pj是是Pi的直接后的直接后继。在前趋图中继。在前趋图中,把没有前趋的结点称为把没有前趋的结点称为初始结点初始结点(Initial Node),把没有后继的结点称为把没有

4、后继的结点称为终止结点终止结点(Final Node)。2022-4-75 每个结点还具有一个每个结点还具有一个重量重量(Weight),用于表示该结点所用于表示该结点所含有的含有的程序量程序量或结点的或结点的执行时间执行时间。 图图2-2 2-2 前趋图前趋图 2022-4-76对于图对于图 2-2(a)所示的前趋图所示的前趋图,存在下述前趋关系存在下述前趋关系P1P2, P1P3, P1P4, P2P5, P3P5, P4P6, P4P7, P5P8, P6P8, P7P9, P8P9或表示为或表示为: P=P1, P2, P3, P4, P5, P6, P7, P8, P9=(P1, P

5、2),(P1, P3),(P1, P4),(P2, P5),(P3, P5),(P4, P6),(P4, P7),(P5, P8),(P6, P8),(P7, P9),(P8, P9) 应当注意应当注意,前趋图中必须前趋图中必须不存在不存在循环循环,但在图但在图2-2(b)中却有着下中却有着下述的前趋关系述的前趋关系: S2S3, S3S2 2022-4-772.1.1 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征2.1.2 2.1.2 前趋图前趋图2.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征2.1.4 2.1.4 进程的特征与状态进程的特征与状态2.1.5

6、 2.1.5 进程控制块进程控制块2022-4-78程序的执行有两种方式程序的执行有两种方式:顺序执行顺序执行和和并发执行并发执行。顺序执行顺序执行是是单道单道批处理系统的执行方式批处理系统的执行方式,也用于也用于简单的单简单的单片机片机系统系统;现在的操作系统多为现在的操作系统多为并发执行并发执行,具有许多新的特征。引入具有许多新的特征。引入并发执行的目的是为了提高并发执行的目的是为了提高资源利用率。资源利用率。2022-4-79图图2-1 2-1 程序的顺序执行程序的顺序执行 1.程序的顺序执行程序的顺序执行 这是最自然、也是最初的设计。这是最自然、也是最初的设计。仅当前一操作仅当前一操作

7、(程序段程序段)执行完后执行完后,才能执行后继操作。才能执行后继操作。例如例如,在进行计算时在进行计算时,总须先输总须先输入用户的程序和数据入用户的程序和数据,然后进行计算然后进行计算,最后才能打印计算结果。最后才能打印计算结果。 S1: a:=x+y; S2: b:=a-5; S3: c:=b+1;2.1.1 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征2022-4-7102.2.程序顺序执行时的特征程序顺序执行时的特征(1)(1)顺序性顺序性: :处理机的操作严格按照程序所规定的顺序执处理机的操作严格按照程序所规定的顺序执行行, ,只有当上一个操作完成后只有当上一个操作完成后,

8、 ,下一个操作才能执行。下一个操作才能执行。(2)(2)封闭性封闭性: :程序运行在一个封闭的环境中程序运行在一个封闭的环境中, ,即程序运行时即程序运行时独占系统的全部资源独占系统的全部资源, ,这些资源的状态只能因程序的执行这些资源的状态只能因程序的执行而改变而改变, ,不受任何外界因素的影响。不受任何外界因素的影响。(3)(3)可再现性可再现性: :由于程序顺序执行的封闭性由于程序顺序执行的封闭性, ,只要程序顺序只要程序顺序执行的执行的初始条件和环境相同初始条件和环境相同, ,则不论何时执行则不论何时执行, ,也不论程也不论程序执行期间是否存在停顿序执行期间是否存在停顿, ,程序所得的

9、程序所得的结果结果也也相同相同。结论结论: :正由于程序顺序执行的特点正由于程序顺序执行的特点, ,程序员可以检测和重程序员可以检测和重现程序的错误现程序的错误, ,可以调试和校正程序。可以调试和校正程序。2022-4-7112.1.1 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征2.1.2 2.1.2 前趋图前趋图2.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征2.1.4 2.1.4 进程的特征与状态进程的特征与状态2.1.5 2.1.5 进程控制块进程控制块2022-4-7122.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征 1.1.程序

10、的并发执行程序的并发执行 图图2-3 2-3 并发执行时的前趋图并发执行时的前趋图 2022-4-713在该例中存在下述前趋关系在该例中存在下述前趋关系: IiCi,IiIi+1, CiPi, CiCi+1,PiPi+1而而Ii+1和和Ci及及Pi-1是重迭的是重迭的,亦即在亦即在Pi-1和和Ci以及以及Ii+1之间之间,可以并可以并发执行。对于具有下述四条语句的程序段发执行。对于具有下述四条语句的程序段: S1: a:=x+2 S2: b:=y+4 S3: c:=a+b S4: d:=c+6 图图2-4 2-4 四条语句的前趋关系四条语句的前趋关系S1S2S3S42022-4-7142.2.

11、程序并发执行时的特征程序并发执行时的特征 (1)(1)间断性间断性 走走停停走走停停,一个程序可能走到中途停下来一个程序可能走到中途停下来, ,失去失去原有的时序关系原有的时序关系; ;(2)(2)失去封闭性失去封闭性 程序并发执行时程序并发执行时,系统中多道程序系统中多道程序共享共享资源资源,资源的资源的状态不是唯一地取决于某一个程序状态不是唯一地取决于某一个程序,因此因此,必然失去了程必然失去了程序的封闭性序的封闭性,而程序的执行结果因依赖于外部环境也失而程序的执行结果因依赖于外部环境也失去了可再现性。去了可再现性。(3)(3)不可再现性不可再现性 失去封闭性失去封闭性 失去可再现性失去可

12、再现性; ;外界环境在程序的外界环境在程序的两次执行期间发生变化两次执行期间发生变化, ,失去原有的可重复特征。失去原有的可重复特征。2022-4-715例如例如, ,有两个程序有两个程序A A和和B,B,它们共享一个变量它们共享一个变量N(N(初始值为初始值为x)x)。 A:A:N:=N+1N:=N+1 B: B:Print(N);Print(N);N:=0; N:=0; 程序程序A A和和B B并发执行并发执行, ,以不可预知的速度运行以不可预知的速度运行, ,可出现以可出现以下下三种三种情况情况: : (1)N:=N+1 (1)N:=N+1在在Print(N)Print(N)和和N:=0

13、N:=0之之前前, ,此时得到的此时得到的N N值分别为值分别为x+1, x+1, 0 x+1, x+1, 0。 (2)N:=N+1(2)N:=N+1在在Print(N)Print(N)和和N:=0N:=0之之后后, ,此时得到的此时得到的N N值分别为值分别为x, 0, 1x, 0, 1。 (3)N:=N+1(3)N:=N+1在在Print(N)Print(N)和和N:=0N:=0之之间间, ,此时得到的此时得到的N N值分别为值分别为x, x+1, 0 x, x+1, 0。 2022-4-716补充补充: :并发执行失去封闭性的原因是共享资源的影响并发执行失去封闭性的原因是共享资源的影响,

14、 ,去掉这去掉这种影响就行了。种影响就行了。19661966年年, ,由由BernsteinBernstein( (波恩斯坦波恩斯坦) )给出给出并发并发执行的条件执行的条件。若两个程序。若两个程序P P1 1和和P P2 2满足下述条件满足下述条件, ,便能并发便能并发执行且有执行且有可再现性可再现性: :(R(P(R(P1 1) ) W(PW(P2 2) ( (R(PR(P2 2) ) W(PW(P1 1) ) ) ( (W(PW(P1 1) ) W(PW(P2 2)=)=解释解释: :运算的运算的读集读集R(PR(Pi i) )是指在运算执行期间参考的所有变量是指在运算执行期间参考的所有

15、变量的集合的集合; ;运算的运算的写集写集W(PW(Pi i) )是指在运算执行期间要改变的所有变是指在运算执行期间要改变的所有变量的集合。量的集合。存在的存在的问题问题是这个条件不好检查是这个条件不好检查2022-4-717S S1 1: a:=x+y: a:=x+yR(SR(S1 1)=x,y)=x,yW(SW(S1 1)=a)=aS S2 2: b:=z+1: b:=z+1R(SR(S2 2)=z)=zW(SW(S2 2)=b)=bS S3 3: c:=a-b: c:=a-bR(SR(S3 3)=a,b)=a,bW(SW(S3 3)=c)=cS S4 4: d:=c+1: d:=c+1R

16、(SR(S4 4)=c)=cW(SW(S4 4)=d)=d可见可见: :语句语句S S1 1和和S S2 2可以并发执行吗?可以并发执行吗?语句语句S S1 1和和S S3 3可以并发执行吗?可以并发执行吗?语句语句S S2 2和和S S3 3可以并发执行吗?可以并发执行吗?语句语句S S3 3和和S S4 4可以并发执行吗?可以并发执行吗?语句语句S S2 2和和S S4 4可以并发执行吗?可以并发执行吗?(R(S1) W(S2) (R(S2) W(S1) (W(S1) W(S2)=可以可以不可以不可以,因为因为: R(S3) W(S1)=a 不可以不可以,因为因为: R(S3) W(S2)

17、=b 不可以不可以,因为因为: R(S4) W(S3)=c 可以可以2022-4-7182.1.1 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征2.1.2 2.1.2 前趋图前趋图2.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征2.1.4 2.1.4 进程的特征与状态进程的特征与状态2.1.5 2.1.5 进程控制块进程控制块2022-4-719进程实体由三部分构成进程实体由三部分构成: :(1)(1)程序程序( (段段) ): :进程要进行的操作。进程要进行的操作。(2)(2)数据段数据段: :包括操作的数据和程序自己的变量。包括操作的数据和程序自己的变量。(

18、3)(3)进程控制块进程控制块PCB(Process Control Block)PCB(Process Control Block): :存放进程标识存放进程标识符、进程运行的当前状态、程序和数据的地址、程序运行符、进程运行的当前状态、程序和数据的地址、程序运行时的时的CPUCPU环境等。环境等。2022-4-7202.1.4 2.1.4 进程的特征与状态进程的特征与状态 1.1.进程的特征和定义进程的特征和定义 动态性动态性: :进程是一个动态的概念进程是一个动态的概念, ,实质上是程序的一次实质上是程序的一次执行过程。进程具有生命期执行过程。进程具有生命期: :它因它因“创建创建”而产生

19、而产生, ,因因“调度调度”而执行而执行, ,执行时还走走停停执行时还走走停停, ,因因“撤消撤消”而灭而灭亡。亡。 并发性并发性: :多个进程实体同存于内存中多个进程实体同存于内存中, ,且能在一段时间且能在一段时间内同时运行内同时运行, ,共享系统资源共享系统资源; ;引入进程实体的目的就是引入进程实体的目的就是并发执行并发执行; ; 独立性独立性: :进程是一个能进程是一个能独立运行独立运行的基本单位的基本单位, ,也是系统也是系统进行资源分配和调度的基本单位进行资源分配和调度的基本单位; ; 异步性异步性: :各进程按各自独立的、不可预知的速度向前各进程按各自独立的、不可预知的速度向前

20、推进推进; ; 结构特征结构特征: :程序段程序段、数据段数据段和和PCBPCB; ;程序文件中通常也程序文件中通常也划分了代码段和数据段划分了代码段和数据段, ,进程的创建与撤消就是进程的创建与撤消就是PCBPCB的的创建与撤消。创建与撤消。2022-4-721较典型的较典型的进程定义进程定义有有: :(1)(1)进程是程序的一次执行。进程是程序的一次执行。(2)(2)进程是一个程序及其数据在处理机上顺序执行时所发进程是一个程序及其数据在处理机上顺序执行时所发生的活动。生的活动。(3)(3)进程是程序在一个数据集合上运行的过程进程是程序在一个数据集合上运行的过程, ,它是系统进它是系统进行资

21、源分配和调度的一个独立单位。行资源分配和调度的一个独立单位。 在引入了进程实体的概念后在引入了进程实体的概念后, ,我们可以把传统我们可以把传统OSOS中的中的进程定义为进程定义为: :“进程是进程实体的运行过程进程是进程实体的运行过程, ,是系统进行资是系统进行资源分配和调度的一个独立单位源分配和调度的一个独立单位”。 2022-4-722进程是动态的进程是动态的, ,程序是静态的程序是静态的: :程序是有序代码的集合程序是有序代码的集合, ,它可它可以复制以复制; ;进程是程序在数据集上的一次执行。进程是程序在数据集上的一次执行。进程是暂时的进程是暂时的, ,程序是永久的程序是永久的: :

22、进程是一个状态变化的过程进程是一个状态变化的过程, ,有它的撤销有它的撤销, ,程序可长久保存。程序可长久保存。进程具有结构特征进程具有结构特征, ,由程序段、数据段和进程控制块三者组由程序段、数据段和进程控制块三者组成成, ,而程序仅是指令的有序集合而程序仅是指令的有序集合, ,是进程的组成部分之一。是进程的组成部分之一。进程与程序的对应关系进程与程序的对应关系: :通过多次执行通过多次执行, ,一个程序可对应多一个程序可对应多个进程个进程; ;2022-4-7232.2.进程的三种基本状态进程的三种基本状态 (1)(1)就绪就绪(Ready)(Ready)状态状态 进程已获得除进程已获得除

23、处理机处理机外的所需资源外的所需资源, ,等待分配处理机资源等待分配处理机资源; ;只要分配只要分配CPUCPU就可执行。就可执行。一个系统中多个处于就绪状态的进程排成一个系统中多个处于就绪状态的进程排成就绪队列。就绪队列。(2)(2)执行执行(Running)(Running)状态状态处于就绪状态的进程一旦获得了处于就绪状态的进程一旦获得了处理机处理机, ,就可以运行就可以运行, ,进程进程状态也就处于执行状态。状态也就处于执行状态。处于此状态的进程的数目处于此状态的进程的数目小于等于小于等于CPUCPU的数目。的数目。(3)(3)阻塞阻塞(Blocked)(Blocked)状态状态( (“

24、等待等待”或或“睡眠睡眠”) ) 由于进程等待某种事件由于进程等待某种事件( (如如I/OI/O操作或进程同步操作或进程同步),),在事件发在事件发生之前无法继续执行。该事件发生前即使把处理机分配给生之前无法继续执行。该事件发生前即使把处理机分配给该进程该进程, ,也无法运行。如也无法运行。如: :请求请求I/OI/O操作操作, ,申请缓冲空间等申请缓冲空间等通常阻塞进程也排成通常阻塞进程也排成若干队列若干队列。2022-4-724图图2-5 2-5 进程的三种基本状态及其转换进程的三种基本状态及其转换 进程的三种基本状态及其转换进程的三种基本状态及其转换1.1.时间片用光时间片用光2.2.有

25、优先级高的进程到来有优先级高的进程到来2022-4-725新新( (创建创建) )状态状态 当一个新进程刚刚建立当一个新进程刚刚建立, ,还还未未将其放入就绪队将其放入就绪队列时的状态列时的状态, ,称为新状态。称为新状态。 终止状态终止状态 当一个进程已经当一个进程已经正常结束正常结束或或异常结束异常结束, ,操作系操作系统已将其从系统队列中移出统已将其从系统队列中移出, ,但但尚未撤消尚未撤消, ,这时称为这时称为终止状态。终止状态。 2022-4-726图图2-52-5 进程的五种基本状态及其转换进程的五种基本状态及其转换 进程的五种基本状态及其转换进程的五种基本状态及其转换2022-4

26、-7271.1.引入挂起状态的原因引入挂起状态的原因 (1)(1)终端用户的请求终端用户的请求当终端用户在自己的程序运行期间发现有当终端用户在自己的程序运行期间发现有可疑问可疑问题题时时, ,希望暂时将自己的程序静止下来。希望暂时将自己的程序静止下来。(2)(2)父进程请求父进程请求父进程需要考查和修改子进程。父进程需要考查和修改子进程。(3)(3)操作系统的需要操作系统的需要如检查运行中的资源使用情况。如检查运行中的资源使用情况。(4)(4)对换的需要对换的需要缓和内存紧张缓和内存紧张, ,将将阻塞进程阻塞进程换到外存上换到外存上, ,有别于阻有别于阻塞状态。塞状态。(5)(5)负荷调节的需

27、要负荷调节的需要在在实时系统实时系统中为了调整工作负荷可将不重要的进中为了调整工作负荷可将不重要的进程挂起。程挂起。3.3.挂起状态挂起状态2022-4-728图图2-6 2-6 具有挂起状态的进程状态图具有挂起状态的进程状态图 活动就绪静止就绪执行挂起激活释放挂起活动阻塞静止阻塞挂起激活释放请求I/O2.2.进程状态的转换进程状态的转换 2022-4-7292.1.1 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征2.1.2 2.1.2 前趋图前趋图2.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征2.1.4 2.1.4 进程的特征与状态进程的特征与状态2.1.5

28、 2.1.5 进程控制块进程控制块2022-4-7302.1.5 2.1.5 进程控制块进程控制块 1.1.进程控制块的作用进程控制块的作用 进程控制块的进程控制块的作用作用是使一个在多道程序环境下不能是使一个在多道程序环境下不能独立运行的程序独立运行的程序( (含数据含数据),),成为一个能独立运行的基本单成为一个能独立运行的基本单位位, ,一个能与其它进程并发执行的进程。或者说一个能与其它进程并发执行的进程。或者说,OS,OS是根是根据据PCBPCB来对并发执行的进程进行控制和管理的。来对并发执行的进程进行控制和管理的。 记录了操作系统所需的记录了操作系统所需的, ,用于描述进程情况及控制

29、进用于描述进程情况及控制进程运行所需的程运行所需的全部信息全部信息。 PCBPCB是进程存在的唯一标志。是进程存在的唯一标志。2022-4-7312.2.进程控制块中的信息进程控制块中的信息 1) 1)进程标识符进程标识符 进程标识符用于惟一地标识一个进程。进程标识符用于惟一地标识一个进程。一个进程通常一个进程通常有有两种两种标识符标识符: : (1) (1)内部标识符内部标识符。在所有的操作系统中。在所有的操作系统中, ,都为每一个进都为每一个进程赋予一个惟一的程赋予一个惟一的数字标识符数字标识符, ,它通常是一个进程的序号。它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。设置

30、内部标识符主要是为了方便系统使用。 (2)(2)外部标识符外部标识符。它由创建者提供。它由创建者提供, ,通常是由字母、数通常是由字母、数字组成字组成, ,往往是由用户往往是由用户( (进程进程) )在访问该进程时使用。为了在访问该进程时使用。为了描述进程的家族关系描述进程的家族关系, ,还应设置父进程标识及子进程标识。还应设置父进程标识及子进程标识。此外此外, ,还可设置用户标识还可设置用户标识, ,以指示拥有该进程的用户。以指示拥有该进程的用户。2022-4-7322)2)处理机状态处理机状态 处理机状态信息主要是由处理机的各种处理机状态信息主要是由处理机的各种寄存器寄存器中的内中的内容组

31、成的。容组成的。通用寄存器通用寄存器, ,又称为用户可视寄存器又称为用户可视寄存器, ,它们是用户程序可以它们是用户程序可以访问的访问的, ,用于暂存信息用于暂存信息, ,在大多数处理机中在大多数处理机中, ,有有8 8 32 32 个通用个通用寄存器寄存器, ,在在RISCRISC结构的计算机中可超过结构的计算机中可超过100100个个; ;指令计数器指令计数器PCPC, ,其中存放了要访问的下一条指令的地址其中存放了要访问的下一条指令的地址; ;程序状态字程序状态字PSWPSW, ,其中含有状态信息其中含有状态信息, ,如条件码、执行方式、如条件码、执行方式、中断屏蔽标志等中断屏蔽标志等;

32、 ;用户栈指针用户栈指针, ,指每个用户进程都有一个或若干个与之相关指每个用户进程都有一个或若干个与之相关的系统栈的系统栈, ,用于存放过程和系统调用参数及调用地址。栈用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。指针指向该栈的栈顶。2022-4-7333)3)进程调度信息进程调度信息 在在PCBPCB中还存放一些与进程调度和进程对换有关的中还存放一些与进程调度和进程对换有关的信息信息, ,包括包括: : 进程状态进程状态, ,指明进程的当前状态指明进程的当前状态, ,作为进程调度和对换时作为进程调度和对换时的依据的依据; ;进程优先级进程优先级, ,用于描述进程使用处理机的优先

33、级别的一用于描述进程使用处理机的优先级别的一个整数个整数, ,优先级高的进程应优先获得处理机优先级高的进程应优先获得处理机; ; 进程调度所需的其它信息进程调度所需的其它信息, ,它们与所采用的进程调度算它们与所采用的进程调度算法有关法有关, ,比如比如, ,进程已等待进程已等待CPUCPU的的时间总和时间总和、进程已执行、进程已执行的的时间总和时间总和等等; ;事件事件, ,是指进程由执行状态转变为阻塞状态所等待发生是指进程由执行状态转变为阻塞状态所等待发生的事件的事件, ,即即阻塞原因阻塞原因。 2022-4-7344)4)进程控制信息进程控制信息 进程控制信息包括进程控制信息包括: :程

34、序和数据的地址程序和数据的地址, ,是指进程的程序和数据所在的内存是指进程的程序和数据所在的内存或外存地或外存地( (首首) )址址, ,以便再调度到该进程执行时以便再调度到该进程执行时, ,能从能从PCBPCB中找到其程序和数据中找到其程序和数据; ;进程同步和通信机制进程同步和通信机制, ,指实现进程同步和进程通信时必指实现进程同步和进程通信时必需的机制需的机制, , 如消息队列指针、如消息队列指针、信号量信号量等等, ,它们可能全部它们可能全部或部分地放在或部分地放在PCBPCB中中; ;资源清单资源清单, ,是一张列出了除是一张列出了除CPUCPU以外的、进程所需的全部以外的、进程所需

35、的全部资源及已经分配到该进程的资源的清单资源及已经分配到该进程的资源的清单; ;链接指针链接指针, ,它给出了本进程它给出了本进程(PCB)(PCB)所在队列中的所在队列中的下一个下一个进进程的程的PCBPCB的首地址。的首地址。 2022-4-735图图2-7 PCB2-7 PCB链接队列示意图链接队列示意图 3.3.进程控制块的组织方式进程控制块的组织方式(1)(1)链接方式链接方式 把具有同一状态的把具有同一状态的PCBPCB用其中的链接字链接用其中的链接字链接成一个队列成一个队列, ,可以形成可以形成就绪队列就绪队列、若干个、若干个阻塞队列阻塞队列和和空空闲队列闲队列(2). .(2)

36、. .2022-4-736图图2-8 2-8 按索引方式组织按索引方式组织PCB PCB 3.3.进程控制块的组织方式进程控制块的组织方式(1). .(1). .(2)(2)索引方式索引方式 系统根据所有进程的状态建立几张系统根据所有进程的状态建立几张索引表索引表, ,如如就绪索引表就绪索引表、阻塞索引表阻塞索引表等等, ,并把各索引表在内存的并把各索引表在内存的首地址记录在专用单元中。索引表中记录的是首地址记录在专用单元中。索引表中记录的是PCBPCB在在PCBPCB表中的地地址。表中的地地址。2022-4-7372.1 2.1 进程的基本概念进程的基本概念 2.2 2.2 进程控制进程控制

37、 2.3 2.3 进程同步进程同步 2.4 2.4 经典进程的同步问题经典进程的同步问题 2.5 2.5 管程机制管程机制 2.6 2.6 进程通信进程通信 2.7 2.7 线程线程 2022-4-738处理机的执行状态分处理机的执行状态分系统态系统态和和用户态用户态两种两种: : (1) (1)系统态系统态( (管态管态、核心态核心态):):有较有较高高特权特权, ,能执能执行行一切一切指令指令, ,访问访问所有所有寄存器和存储区。寄存器和存储区。 (2)(2)用户态用户态( (目态目态):):有较有较低低特权特权, ,能执行能执行规定规定指指令令, ,访问访问指定指定寄存器和存储区。寄存器

38、和存储区。用户用户程序运行在程序运行在用户态用户态, ,不能执行不能执行OSOS指令及区域。指令及区域。OSOS内核运行在内核运行在系统态系统态, ,进程控制进程控制是由是由OSOS内核实现内核实现的。的。2022-4-739进程控制是进程管理中进程控制是进程管理中最基本最基本的功能的功能, ,主要包括以下几个方面主要包括以下几个方面 创建创建新进程新进程 终止终止已结束进程已结束进程 终止终止由于某事件而无法运行下去的进程由于某事件而无法运行下去的进程 负责进程的状态负责进程的状态转换转换原语原语(primitive)(primitive) 由若干条指令构成的由若干条指令构成的“原子操作原子

39、操作(atomic operation)(atomic operation)”过程过程, ,在执行期间在执行期间不可中断不可中断, ,以保证其正确性。作为一个整体而不以保证其正确性。作为一个整体而不可分割。许多系统调用就是原语。可分割。许多系统调用就是原语。 系统调用系统调用并不都是并不都是原语。进程原语。进程A A调用调用read(),read(),因无数据而阻因无数据而阻塞塞, ,在在read()read()里未返回。然后进程里未返回。然后进程B B调用调用read(),read(),此时此时read()read()被重入。系统调用不一定一次执行完并返回该进程被重入。系统调用不一定一次执行

40、完并返回该进程, ,有可能有可能在特定的点暂停在特定的点暂停, ,而转入到其他进程。而转入到其他进程。1.创建原语创建原语2.撤消原语撤消原语3.阻塞原语阻塞原语4.唤醒原语唤醒原语5.挂起原语挂起原语6.激活原语激活原语2022-4-7402.2.1 2.2.1 进程的创建进程的创建2.2.2 2.2.2 进程的终止进程的终止2.2.3 2.2.3 进程的阻塞与唤醒进程的阻塞与唤醒2.2.4 2.2.4 进程的挂起与激活进程的挂起与激活2022-4-7412.2.1 2.2.1 进程的创建进程的创建图图2-9 2-9 进程树进程树 1.1.进程图进程图(Process Graph)(Proc

41、ess Graph)进程图进程图是用于描述一个进程的家族是用于描述一个进程的家族关系关系的的有向树有向树, ,树中的树中的结点结点表示表示进程进程在进程在进程A A创建了进程创建了进程B B之后称之后称A A是是B B的的父进程父进程(Parent Process)(Parent Process),B,B是是A A的的子子进程进程(Progeny Process)(Progeny Process)。创建父进。创建父进程的进程称为祖先进程程的进程称为祖先进程, ,把树的把树的根根结结点称为进程家族的点称为进程家族的祖先进程祖先进程(Ancestor)(Ancestor)子进程可以子进程可以继承继

42、承(Inherit)(Inherit)父进程的父进程的资源。资源。撤消父进程时必须撤消父进程时必须同时同时撤消子进程撤消子进程2022-4-7422.2.引起创建进程的事件引起创建进程的事件 在在多道程序多道程序环境中环境中, ,只有只有进程进程才能在系统中运行。才能在系统中运行。因此因此, ,为使程序运行为使程序运行, ,必须创建进程必须创建进程, ,创建进程事件包创建进程事件包括括: :(1)(1)用户登录用户登录 在在分时系统分时系统中中, ,用户在终端登录后用户在终端登录后, ,如是合法用户如是合法用户, ,系统将为用户创建一个进程系统将为用户创建一个进程, ,并插入并插入就绪队列就绪

43、队列。(2)(2)作业调度作业调度 在批处理系统中在批处理系统中, ,当作业调度程序调度到某作业当作业调度程序调度到某作业时时, ,将该作业装入内存将该作业装入内存, ,为它分配资源并创建进程。为它分配资源并创建进程。(3)(3)提供服务提供服务 当运行中的用户进程提出某种请求后当运行中的用户进程提出某种请求后, ,系统系统将专将专门创建一个进程来提供服务门创建一个进程来提供服务, ,如打印。如打印。(4)(4)应用请求应用请求 由应用进程为由应用进程为自己自己创建进程创建进程, ,以便能并发执行以便能并发执行, ,如如输入、计算、输出程序。输入、计算、输出程序。2022-4-7433.3.进

44、程的创建进程的创建步骤步骤(Creation of Progress) (Creation of Progress) (1)(1)申请空白申请空白PCB PCB 为新进程申请惟一的数字为新进程申请惟一的数字标识符标识符, ,并从并从PCBPCB集合中索取集合中索取一个空白一个空白PCBPCB(2)(2)为新进程分配资源为新进程分配资源 为新进程的程序和数据为新进程的程序和数据分配内存分配内存。对于。对于批处理批处理型作业型作业, ,可以在可以在用户用户提出创建进程时要求提供所需内存大小。提出创建进程时要求提供所需内存大小。对于对于交互型交互型作业可以由作业可以由系统系统来分配一定的空间来分配一

45、定的空间(3)(3)初始化进程控制块初始化进程控制块 初始化标识信息初始化标识信息将系统标识信息写入新将系统标识信息写入新PCBPCB初始化处理机状态信息初始化处理机状态信息使使程序计数器程序计数器指向程序的入指向程序的入口地址口地址, ,栈指针指向栈顶栈指针指向栈顶初始化处理机控制信息初始化处理机控制信息将进程的状态设为将进程的状态设为就绪状态就绪状态或或静止就绪状态静止就绪状态(4)(4)将新进程插入就绪队列将新进程插入就绪队列如果进程就绪队列能够接纳新进程如果进程就绪队列能够接纳新进程, ,便将新进程插入就便将新进程插入就绪队列绪队列2022-4-7442.2.1 2.2.1 进程的创建

46、进程的创建2.2.2 2.2.2 进程的终止进程的终止2.2.3 2.2.3 进程的阻塞与唤醒进程的阻塞与唤醒2.2.4 2.2.4 进程的挂起与激活进程的挂起与激活2022-4-7451.1.引起进程终止引起进程终止(Termination of Process)(Termination of Process)的事件的事件 1)1)正常结束正常结束 在任何计算机系统中在任何计算机系统中, ,都应有一个用于表示进程已经都应有一个用于表示进程已经运行完成的指示。例如运行完成的指示。例如, ,在批处理系统中在批处理系统中, ,通常在程序的最通常在程序的最后安排一条后安排一条HaltHalt指令或终

47、止的系统调用。当程序运行到指令或终止的系统调用。当程序运行到HaltHalt指令时指令时, ,将产生一个中断将产生一个中断, ,去通知去通知OSOS本进程已经完成。本进程已经完成。 在分时系统中在分时系统中, ,用户可利用用户可利用Logs offLogs off去表示进程运行完毕去表示进程运行完毕, , 此时同样可产生一个中断此时同样可产生一个中断, ,去通知去通知OSOS进程已运行完毕。进程已运行完毕。 2022-4-746 2) 2)异常结束异常结束 在进程运行期间在进程运行期间, ,由于出现某些错误和故障而迫使进程由于出现某些错误和故障而迫使进程终止。这类异常事件很多终止。这类异常事件

48、很多, ,常见的有常见的有: :越界错误。这是指程序所访问的存储区越界错误。这是指程序所访问的存储区, ,已已越出越出该进程的区该进程的区域域; ; 保护错。进程试图去访问一个保护错。进程试图去访问一个不允许访问不允许访问的资源或文件的资源或文件, ,或或者以不适当的方式进行访问者以不适当的方式进行访问, ,例如例如, ,进程试图去写一个进程试图去写一个只读只读文件文件; ;非法指令。程序试图去执行一条非法指令。程序试图去执行一条不存在不存在的的指令指令。出现该错。出现该错误的原因误的原因, ,可能是程序错误地转移到数据区可能是程序错误地转移到数据区, ,把数据当成了把数据当成了指令指令; ;

49、特权指令错。用户进程试图去执行一条只允许特权指令错。用户进程试图去执行一条只允许OSOS执行的指执行的指令令; ;运行超时。进程的执行时间超过了指定的最大值运行超时。进程的执行时间超过了指定的最大值; ;等待超时。进程等待某事件的时间等待超时。进程等待某事件的时间, ,超过了规定的最大值超过了规定的最大值; ;算术运算错。进程试图去执行一个被禁止的运算算术运算错。进程试图去执行一个被禁止的运算, ,例如例如, ,被被0 0除除; ;I/OI/O故障。这是指在故障。这是指在I/OI/O过程中发生了错误等。过程中发生了错误等。2022-4-747 3) 3)外界干预外界干预 外界干预并外界干预并非

50、非指在本进程运行中出现了指在本进程运行中出现了异常事件异常事件, ,而而是指进程应外界的请求而终止运行。这些干预有是指进程应外界的请求而终止运行。这些干预有: :操作员操作员或或操作系统操作系统干预。由于某种原因干预。由于某种原因, ,例如例如, ,发生了发生了死锁死锁, ,由操作员或操作系统终止该进程由操作员或操作系统终止该进程; ;父进程请求父进程请求。由于父进程具有终止自己的任何子孙进。由于父进程具有终止自己的任何子孙进程的权利程的权利, ,因而当父进程提出请求时因而当父进程提出请求时, ,系统将终止该进程系统将终止该进程; ; 父进程终止父进程终止。当父进程终止时。当父进程终止时,OS

51、,OS也将他的所有子孙进也将他的所有子孙进程终止。程终止。 2022-4-7482.2.进程的终止过程进程的终止过程 (1)(1)根据被终止进程的标识符根据被终止进程的标识符, ,从从PCBPCB集合中检索出该进集合中检索出该进程的程的PCB,PCB,从中读出该进程的状态。从中读出该进程的状态。 (2)(2)若被终止进程正处于若被终止进程正处于执行状态执行状态, ,应立即终止该进程应立即终止该进程的执行的执行, ,并置并置调度标志调度标志为为真真, ,用于指示该进程被终止后应重用于指示该进程被终止后应重新进行调度。新进行调度。 (3)(3)若该进程还有若该进程还有子孙进程子孙进程, ,还应将其

52、所有子孙进程予还应将其所有子孙进程予以以终止终止, ,以防他们成为不可控的进程。以防他们成为不可控的进程。 (4)(4)将被终止进程所拥有的将被终止进程所拥有的全部资源全部资源, ,或者归还给其父或者归还给其父进程进程, , 或者归还给系统。或者归还给系统。 (5)(5)将被终止进程将被终止进程( (它的它的PCBPCB) )从所在队列从所在队列( (或链表或链表) )中中移移出出, ,等待其他程序来搜集信息。等待其他程序来搜集信息。 2022-4-7492.2.1 2.2.1 进程的创建进程的创建2.2.2 2.2.2 进程的终止进程的终止2.2.3 2.2.3 进程的阻塞与唤醒进程的阻塞与

53、唤醒2.2.4 2.2.4 进程的挂起与激活进程的挂起与激活2022-4-7501.1.引起进程阻塞和唤醒的事件引起进程阻塞和唤醒的事件 (1)(1)请求系统服务请求系统服务 如请求如请求打印机打印机时时, ,若已被其他进程若已被其他进程占用占用, ,此时只能此时只能阻塞阻塞, ,等其他进程释放后再将请求进程唤醒。等其他进程释放后再将请求进程唤醒。(2)(2)启动某种操作启动某种操作 当进程启动某种操作后当进程启动某种操作后, ,如果该进程必须在该操如果该进程必须在该操作完成后才能继续执行作完成后才能继续执行, ,则必须先使进程阻塞则必须先使进程阻塞, ,以等待以等待该该操作完成操作完成。如启

54、动。如启动I/OI/O设备。设备。(3)(3)新数据尚未到达新数据尚未到达 对于相互合作的进程对于相互合作的进程, ,如果一个进程需要另一合如果一个进程需要另一合作进程提供的数据作进程提供的数据, ,则在数据到达之前只能阻塞。则在数据到达之前只能阻塞。(4)(4)无新工作可做无新工作可做 系统中的一些特殊功能进程系统中的一些特殊功能进程, ,在完成了任务之后在完成了任务之后, ,等待新任务到来。如系统中的发送进程。等待新任务到来。如系统中的发送进程。2022-4-7512.2.进程阻塞过程进程阻塞过程 正在执行的进程正在执行的进程, ,当发现上述某事件时当发现上述某事件时, ,由于无法继续由于

55、无法继续执行执行, ,于是进程便通过调用阻塞原语于是进程便通过调用阻塞原语block()block()把自己阻把自己阻塞。可见塞。可见, ,进程的阻塞是进程自身的一种主动行为进程的阻塞是进程自身的一种主动行为 进入进入blockblock过程后过程后, ,由于此时该进程还处于由于此时该进程还处于执行状态执行状态, ,所以应先立即所以应先立即停止执行停止执行, ,把进程控制块中的现行状态把进程控制块中的现行状态由由“执行执行”改为改为阻塞阻塞, ,并将并将PCBPCB插入插入阻塞队列阻塞队列 如果系统中设置了因不同事件而阻塞的多个如果系统中设置了因不同事件而阻塞的多个阻塞队列阻塞队列, ,则应将

56、本进程则应将本进程插入插入到具有相同事件的阻塞到具有相同事件的阻塞( (等待等待) )队列队列 调度程序进行调度程序进行重新调度重新调度, ,将处理机分配给另一就绪进将处理机分配给另一就绪进程程, ,并进行切换并进行切换, ,亦即亦即, ,保留被阻塞进程的处理机状态保留被阻塞进程的处理机状态( (在在PCBPCB中中),),再按新进程的再按新进程的PCBPCB中的处理机状态设置中的处理机状态设置CPUCPU的环境的环境2022-4-7523.3.进程唤醒过程进程唤醒过程 当被阻塞进程所期待的事件出现时当被阻塞进程所期待的事件出现时, ,如如I/OI/O完成或其所完成或其所期待的数据已经到达期待

57、的数据已经到达, ,则由有关进程则由有关进程( (比如比如, ,用完并释用完并释放了该放了该I/OI/O设备的进程设备的进程) )调用唤醒原语调用唤醒原语wakeup( )wakeup( ), ,将等将等待该事件的进程唤醒待该事件的进程唤醒 唤醒原语执行的过程是唤醒原语执行的过程是 把被阻塞的进程从等待该事件的阻塞队列中把被阻塞的进程从等待该事件的阻塞队列中移出移出 将其将其PCBPCB中的现行状态由中的现行状态由阻塞阻塞改为改为就绪就绪 将该将该PCBPCB插入到插入到就绪队列就绪队列中中2022-4-7532.2.1 2.2.1 进程的创建进程的创建2.2.2 2.2.2 进程的终止进程的

58、终止2.2.3 2.2.3 进程的阻塞与唤醒进程的阻塞与唤醒2.2.4 2.2.4 进程的挂起与激活进程的挂起与激活2022-4-7541.1.进程的挂起进程的挂起 当出现了引起进程挂起的事件时当出现了引起进程挂起的事件时, ,比如比如, ,用户进程请求用户进程请求将自己挂起将自己挂起, ,或父进程请求将自己的某个子进程挂起或父进程请求将自己的某个子进程挂起, , 系统将利用挂起原语系统将利用挂起原语suspend( )suspend( )将指定进程或处于阻将指定进程或处于阻塞状态的进程挂起。塞状态的进程挂起。 suspend()suspend()原语的执行过程原语的执行过程 首先检查被挂起进

59、程的状态首先检查被挂起进程的状态, ,若处于若处于活动就绪活动就绪状态状态, ,便将其改为便将其改为静止就绪静止就绪; ;对于对于活动阻塞活动阻塞状态的进程状态的进程, ,则将之改为则将之改为静止阻塞。静止阻塞。 为了方便用户或父进程考查该进程的运行情况而为了方便用户或父进程考查该进程的运行情况而把该进程的把该进程的PCBPCB复制复制到某指定的到某指定的内存区域内存区域。 若被挂起的进程若被挂起的进程正在执行正在执行, ,则转向调度程序则转向调度程序重新调重新调度。度。2022-4-7552.2.进程的激活过程进程的激活过程 当发生激活进程的事件时当发生激活进程的事件时, ,例如例如, ,父

60、进程或用户进程请父进程或用户进程请求激活指定进程求激活指定进程, ,若该进程驻留在外存而内存中已有若该进程驻留在外存而内存中已有足够的空间时足够的空间时, ,则可将在外存上处于静止就绪状态的则可将在外存上处于静止就绪状态的进程换入内存。这时进程换入内存。这时, ,系统将利用激活原语系统将利用激活原语active( )active( )将指定进程激活。将指定进程激活。 active()active()原语执行过程原语执行过程 激活原语先将进程从外存激活原语先将进程从外存调入内存调入内存, ,检查该进程的检查该进程的现行状态现行状态, ,若是若是静止就绪静止就绪, ,便将之改为便将之改为活动就绪活

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论