第3章进程管理课件.ppt

上传人(卖家):ziliao2023 文档编号:5874141 上传时间:2023-05-13 格式:PPT 页数:270 大小:2.50MB
下载 相关 举报
第3章进程管理课件.ppt_第1页
第1页 / 共270页
第3章进程管理课件.ppt_第2页
第2页 / 共270页
第3章进程管理课件.ppt_第3页
第3页 / 共270页
第3章进程管理课件.ppt_第4页
第4页 / 共270页
第3章进程管理课件.ppt_第5页
第5页 / 共270页
点击查看更多>>
资源描述

1、第第3章章 进程管理进程管理3.1 进程的概念进程的概念3.2 进程的描述进程的描述3.3 进程状态及其转换进程状态及其转换3.4 进程控制进程控制3.5 进程互斥进程互斥3.6 进程同步进程同步3.7 进程通信进程通信3.8 死锁问题死锁问题3.9 线程线程的概念的概念3.10 线程线程分类与执行分类与执行本章小结本章小结,习题习题3.1 进程的概念进程的概念1.现代操作系统的重要特点是现代操作系统的重要特点是:程序的并发执行程序的并发执行;系统所拥有的资源被共享;系统所拥有的资源被共享;用户随机地使用系统;用户随机地使用系统;三个特点互相联系和互相依赖。三个特点互相联系和互相依赖。它们是互

2、相独立的用户如何使用有限的计算机系统它们是互相独立的用户如何使用有限的计算机系统资源的反映。资源的反映。2.采用什么样的概念描述采用什么样的概念描述程序的执行过程和作为资源程序的执行过程和作为资源分配的基本单位分配的基本单位,才能反映上述特点才能反映上述特点?3.1.1 程序的并发执行程序的并发执行1.程序程序程序用来描述计算机所要完成的独立程序用来描述计算机所要完成的独立功能,并在时间上严格地按前后次序相功能,并在时间上严格地按前后次序相继的进行计算机操作序列集合,是一个继的进行计算机操作序列集合,是一个静态的概念。静态的概念。它体现了编程人员要求计算机完成所它体现了编程人员要求计算机完成所

3、要求功能时所应该采取的顺序步骤。要求功能时所应该采取的顺序步骤。2.程序的顺序执行程序的顺序执行 一个程序只有经过执行才能得到最终结果一个程序只有经过执行才能得到最终结果;程序的执行分为程序的执行分为顺序执行顺序执行和和并发执行并发执行。CPU是通过时序脉冲来控制顺序执行指令的。是通过时序脉冲来控制顺序执行指令的。其执行过程可以描述为:其执行过程可以描述为:Repeat IR M pcpc pc+1 Execute(instruction in IR)Until CPU halt 程序的顺序性与计算机硬件的顺序性是一致的。程序的顺序性与计算机硬件的顺序性是一致的。把一个具有独立功能的程序独占处

4、理机直至最终结束的过把一个具有独立功能的程序独占处理机直至最终结束的过程称为程称为程序的顺序执行程序的顺序执行。具有如下特点:。具有如下特点:(1)顺序性顺序性 程序执行过程可看作一系列严格按程序规定的状态转移程序执行过程可看作一系列严格按程序规定的状态转移过程。过程。(2)封闭性封闭性 程序执行得到的最终结果由给定的初始条件决定,不程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。受外界因素的影响。(3)可再现性可再现性顺序执行的最终结果与执行速度无关顺序执行的最终结果与执行速度无关.只要输入的初始条件只要输入的初始条件相同相同,则无论何时重复执行该程序都会得到相同的结果。则无

5、论何时重复执行该程序都会得到相同的结果。3.多道程序系统多道程序系统中程序执行环境的特点:中程序执行环境的特点:(1)独立性独立性 每道程序都是逻辑上独立的,它们之间不存在每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。即若有充分的资源保证逻辑上的制约关系。即若有充分的资源保证,则则每道程序都可以独立执行每道程序都可以独立执行,且执行速度与其他程且执行速度与其他程序无关序无关,执行的起止时间也是独立的。执行的起止时间也是独立的。(2)随机性随机性程序和数据的输入与执行开始时间都是随机的。程序和数据的输入与执行开始时间都是随机的。(3)资源共享资源共享 导致对进程执行速度的制约。导致对

6、进程执行速度的制约。4.程序的并发执行程序的并发执行(1)什么是程序的并发执行什么是程序的并发执行为了增强计算机系统的处理能力和提高资源利为了增强计算机系统的处理能力和提高资源利用率所采取的一种同时操作技术用率所采取的一种同时操作技术.可分为两种:可分为两种:多道程序系统的程序执行环境变化所引起的多多道程序系统的程序执行环境变化所引起的多道程序的并发执行道程序的并发执行(宏观上同时进行,微观上顺序执行宏观上同时进行,微观上顺序执行)在某道程序的几个程序段中,包含着一部分可在某道程序的几个程序段中,包含着一部分可以同时执行或顺序颠倒执行的代码以同时执行或顺序颠倒执行的代码例如语句:例如语句:re

7、ad(a);read(b);c=a+b;Write(c);它们既可以它们既可以同时执行同时执行,也可,也可颠倒次序颠倒次序执行。执行。对于这样的语句,同时执行不会改变顺序程对于这样的语句,同时执行不会改变顺序程序所具有的逻辑性质。序所具有的逻辑性质。可以采用并发执行来充分利用系统资源以提可以采用并发执行来充分利用系统资源以提高计算机的处理能力。高计算机的处理能力。程序的并发执行可总结为程序的并发执行可总结为:一组在逻辑上互相独立的程序或程序段在执行过程中一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠其执行时间在客观上互相重叠,即一个程序段的执行尚即一个程序段的执行尚

8、未结束未结束,另一个程序段的执行已经开始的这种执行方式。另一个程序段的执行已经开始的这种执行方式。可以将并发执行过程描述为:可以将并发执行过程描述为:S0CobeginP1;P2;.PnCoendSnS0,Sn:表示并发程序段表示并发程序段P1,Pn开始执行前和并发执行结束后的语句。开始执行前和并发执行结束后的语句。P1,P2,Pn也可以由同一程序段中的不同语句组成。也可以由同一程序段中的不同语句组成。程序的并发执行不同于程序的并行执行程序的并发执行不同于程序的并行执行。程序的并行执行是指一组程序按独立的、程序的并行执行是指一组程序按独立的、异步的速度执行。异步的速度执行。并行执行不等于时间上

9、的重叠。并行执行不等于时间上的重叠。5 程序的并发执行及其特征 例如有两个循环程序A和B,它们共享一个变量N 程序A和B以不同的速度运行(失去封闭性,导致不可再现性)v N=N+1在Print(N)和N=0之前,此时得到的N值分别为n+1,n+1,0v N=N+1在Print(N)和N=0之后,此时得到的N值分别为n,0,1v N=N+1在Print(N)和N=0之间,此时得到的N值分别为n,n+1,0N =N+1;Print(N);N =0;5程序的并发执行及其特征N =N+1;Print(N);N =0;Print(N);N =0;N =N+1;Print(N);N =N+1;N =0;注

10、意:注意:A、B程序得到的共享变程序得到的共享变量结果不同,失去封闭性、不可量结果不同,失去封闭性、不可再现性;要得到良好的控制,系再现性;要得到良好的控制,系统必须要进行管理统必须要进行管理进程控制进程控制管理管理5程序的并发执行及其特征 并发执行的特征 间断(异步)性 走走停停,一个程序可能走到中途停下来,失去原有的时序关系;失去封闭性 共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。失去可再现性 失去封闭性 失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征6 程序并发执行的条件(程序并发执行的条件(19

11、66年由年由Bernstein提出)提出)若两个程序P1和P2满足下述条件,便能并发执行且有可再现性:R(P1)W(P2)R(P2)W(P1)W(P1)W(P2)=为程序 Pi 在执行期间所需参考参考的所有变量的集合。为程序 Pi 在执行期间所需改变改变的所有变量的集合。例如:S1:a:=x+y S2:b:=z+1S3:c:=a-bS4:d:=c+16 程序并发执行的条件(程序并发执行的条件(1966年由年由Bernstein提出)提出)S1:a:=x+y R(S1)=W(S1)=S2:b:=z+1 R(S2)=W(S2)=S3:c:=a-bR(S3)=W(S3)=S4:d:=c+1 R(S4

12、)=W(S4)=语句S1、S2_并发,因为_。语句S1、S3_并发,因为_。语句S2、S3_并发,因为_。语句S3、S4_并发,因为_。语句S2、S4_并发,因为_。x,yazba,bccd可以R(P1)W(P2)R(P2)W(P1)W(P1)W(P2)=不能R(S3)W(S1)=a 不能不能可以R(S3)W(S2)=b R(S4)W(S3)=c 7 程序的并发执行所带来的影响程序的并发执行所带来的影响好处好处:提高系统资源的利用率提高系统资源的利用率.弊端弊端:必然必然导致资源共享和资源竞争导致资源共享和资源竞争,改变程序的执行,改变程序的执行速度,速度,对程序的最终结果带来不利的影响,且可

13、对程序的最终结果带来不利的影响,且可能造成程序出现错误。能造成程序出现错误。如果并发执行的各程序段中语句或指令:如果并发执行的各程序段中语句或指令:满足满足Bernstein 条件条件,则并发执行不会对执行,则并发执行不会对执行结果的封闭性和可再现性产生影响。结果的封闭性和可再现性产生影响。不按照特定的规则和方法进行不按照特定的规则和方法进行资源共享和竞争,资源共享和竞争,则其执行结果将失去封闭性和可再现性。则其执行结果将失去封闭性和可再现性。例例1:设有堆栈设有堆栈S,栈指针,栈指针top,栈中存放内存中相,栈中存放内存中相应数据块地址,如图应数据块地址,如图3.1(a)。设有两个程序段设有

14、两个程序段getaddr(top)和和reladdr(blk)。getaddr(top):从给定的从给定的top所指栈中取出相应的内所指栈中取出相应的内存数据块地址;存数据块地址;reladdr(blk):将内存数据块地址将内存数据块地址blk放入堆栈放入堆栈S中。中。procedure getaddr(top)procedure reladdr(blk)beginbeginlocal r top top+1r (top)(top)blktop top-1endreturn(r)end 若若getaddr 和和 reladdr程序段进行顺序执行:程序段进行顺序执行:其执行结果具有封闭性和可再现

15、性。其执行结果具有封闭性和可再现性。如果对这两个程序段采用并发执行如果对这两个程序段采用并发执行:则在:则在单单CPU系统中,将有可能出现下述情况:系统中,将有可能出现下述情况:1)程序段)程序段 reladdr开始执行,当执行到开始执行,当执行到top top+1语句时语句时(b),程序段,程序段getaddr 也开始执行且抢也开始执行且抢占了处理机,从而程序段占了处理机,从而程序段reladdr 停在停在top top+1处等待处理机。处等待处理机。2)由于)由于reladdr 程序段的执行将指针程序段的执行将指针top 升高了一升高了一格且未放进适当的数据,格且未放进适当的数据,geta

16、ddr 的执行结果是的执行结果是失败的失败的(C)。结论结论1:程序的并发执行使得其执行结果不再具程序的并发执行使得其执行结果不再具有封闭性和可再现性;有封闭性和可再现性;分析:分析:由于两程序段共享资源堆栈由于两程序段共享资源堆栈S,从而使得,从而使得执行结果受执行速度影响。执行结果受执行速度影响。一般情况下,一般情况下,并发执行的各程序段如果共享软、并发执行的各程序段如果共享软、硬件资源,都会造成其执行结果受执行速度影硬件资源,都会造成其执行结果受执行速度影响的局面。响的局面。结论结论2:为了使在并发执行时不出现错误结果,为了使在并发执行时不出现错误结果,必须采取某些措施来制约、控制各并发

17、程序段必须采取某些措施来制约、控制各并发程序段的执行速度。的执行速度。为了控制和协调各程序段执行过程中的软、硬为了控制和协调各程序段执行过程中的软、硬件资源的共享和竞争,必须有一个件资源的共享和竞争,必须有一个描述各程序描述各程序段执行过程和共享资源的基本单位段执行过程和共享资源的基本单位。程序:程序:由于程序的顺序性、静态性及孤立性,由于程序的顺序性、静态性及孤立性,用程序段作为描述其执行过程和共享资源的基用程序段作为描述其执行过程和共享资源的基本单位既增加本单位既增加OS设计和实现的复杂性,也无法设计和实现的复杂性,也无法反映反映OS的并发性、用户随机性,以及资源共享的并发性、用户随机性,

18、以及资源共享等特征。等特征。进程进程(或任务)(或任务):需要有一个能描述程序的执需要有一个能描述程序的执行过程且能用来共享资源的基本单位。行过程且能用来共享资源的基本单位。3.1.2 进程的定义进程的定义 进程的概念是进程的概念是60年代初期,首先在年代初期,首先在MIT 的的 Multics系统和系统和IBM 的的 TSS/360系统中引用的。系统中引用的。1)进程是可以并行执行的计算部分进程是可以并行执行的计算部分(S.E.Madnick,J.T.Donovan)2)进程是一个独立的可以调度的活动进程是一个独立的可以调度的活动E.Cohen,D.Jofferson3)进程是一抽象实体,当

19、它执行某个任务时,将进程是一抽象实体,当它执行某个任务时,将要分配和释放各种资源要分配和释放各种资源(P.Denning););4)行为的规则叫程序,程序在处理机上执行时的活动称行为的规则叫程序,程序在处理机上执行时的活动称为进程为进程(E.W.Dijkstra););5)一个进程是一系列逐一执行的操作,而操作的确切含一个进程是一系列逐一执行的操作,而操作的确切含义则有赖于以何种详尽程度来描述进程义则有赖于以何种详尽程度来描述进程;(Brinch Hansen)以上进程的定义,尽管各有侧重,但在本以上进程的定义,尽管各有侧重,但在本质上是相同的。即主要注重质上是相同的。即主要注重进程是一个动态

20、的进程是一个动态的执行过程执行过程这一概念。这一概念。进程:进程:一个具有独立功能的程序对某个数据集在一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。处理机上的执行过程和分配资源的基本单位。-程序:指一组操作序列程序:指一组操作序列;-数据集:是接受程序规定操作的一组存储数据集:是接受程序规定操作的一组存储单元的内容。单元的内容。并发执行的程序在执行过程中分配和管理资源并发执行的程序在执行过程中分配和管理资源的基本单位。的基本单位。进程概念阅读菜谱阅读菜谱准备原料准备原料烹制菜肴烹制菜肴饭菜饭菜阅读洗衣机手册阅读洗衣机手册准备衣服、洗衣粉准备衣服、洗衣粉设定参数,洗

21、衣服设定参数,洗衣服干净衣服干净衣服程序程序输入输入运行运行输出输出程序程序输入输入运行运行输出输出分时切换分时切换进程概念 进程的核心思想进程是某种类型的一个活动,它有程序、输入、进程是某种类型的一个活动,它有程序、输入、输出和状态。输出和状态。在分时操作系统中,单个在分时操作系统中,单个CPU被若干进程共享,被若干进程共享,它使用某种调度算法决定何时停止一个进程的运它使用某种调度算法决定何时停止一个进程的运行,转而为其他进程提供服务。行,转而为其他进程提供服务。进程和程序是区别和关系:进程和程序是区别和关系:(1)进程是一个动态概念;程序是一个静态概念。进程是一个动态概念;程序是一个静态概

22、念。程序是指令的有序集合,描述完成某个功能的一个具体程序是指令的有序集合,描述完成某个功能的一个具体操作过程;没有任何执行的含义。操作过程;没有任何执行的含义。进程强调执行过程,它被动态地创建,并被调度执行后进程强调执行过程,它被动态地创建,并被调度执行后消亡。消亡。(2)进程具有并发特征,而程序没有。进程具有并发特征,而程序没有。进程具有并发特征的两个方面:独立性和异步性。即在进程具有并发特征的两个方面:独立性和异步性。即在不考虑资源共享的情况下,各进程的执行是独立的,执不考虑资源共享的情况下,各进程的执行是独立的,执行速度是异步的。行速度是异步的。程序不反映执行过程,所以不具有并发特征。程

23、序不反映执行过程,所以不具有并发特征。(3)进程是竞争计算机系统资源的基本单进程是竞争计算机系统资源的基本单位,从而其并发性受到系统自己的制约。位,从而其并发性受到系统自己的制约。这里,制约就是对进程独立性和异步性这里,制约就是对进程独立性和异步性的限制。的限制。(4)不同的进程可以包含同一程序,只要不同的进程可以包含同一程序,只要该程序所对应的数据集不同。该程序所对应的数据集不同。作业和进程作业和进程*作业作业:用户需要计算机完成某项任务时要求计用户需要计算机完成某项任务时要求计算机所作工作的集合。一个作业的完成要经过算机所作工作的集合。一个作业的完成要经过提交、收容、执行和完成四个阶段。提

24、交、收容、执行和完成四个阶段。进程进程:已提交完毕程序的执行过程的描述,是已提交完毕程序的执行过程的描述,是资源分配的基本单位。资源分配的基本单位。作业和进程的区别作业和进程的区别1)作业是作业是用户向计算机提交任务的任务实体。用户向计算用户向计算机提交任务的任务实体。用户向计算机提交作业后,系统将它放入外存的作业等待队列中等机提交作业后,系统将它放入外存的作业等待队列中等待执行。待执行。进程是进程是完成用户任务的执行实体,是向系统申完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程只要被创建,总有相请分配资源的基本单位。任一进程只要被创建,总有相应的部分存在于内存中。应的部分存

25、在于内存中。2)作业描述作业描述用户和用户和OS之间的任务委托关系,之间的任务委托关系,进程描述进程描述OS内部任务的具体执行过程。内部任务的具体执行过程。3)作业的概念主要用在批处理系统中作业的概念主要用在批处理系统中,进程的概念则用在进程的概念则用在几乎所有的多道系统中。几乎所有的多道系统中。关系:关系:一个用户的作业一个用户的作业,由用户提交给系统由用户提交给系统,必须以进程的形式必须以进程的形式具体完成。具体完成。一个作业包含多个进程一个作业包含多个进程,至少含一个进程至少含一个进程,但反过来不成立但反过来不成立进程的特征 动态性:动态性:进程具有进程具有动态的地址空间动态的地址空间(

26、数量和内容),(数量和内容),地址空间上包括:地址空间上包括:代码代码(指令执行和(指令执行和CPU状态的改变)状态的改变)数据数据(变量的生成和赋值)(变量的生成和赋值)系统系统控制信息控制信息(进程控制块的建立和系统收回)(进程控制块的建立和系统收回)独立性独立性:各进程的:各进程的地址空间相互独立地址空间相互独立,除非采用进程,除非采用进程间通信手段;间通信手段;并发性:并发性:多个多个同存于内存中,且能在一段时同存于内存中,且能在一段时间内同时运行;引入进程实体的目的就是并发执行间内同时运行;引入进程实体的目的就是并发执行 异步性:异步性:各进程按各自独立的、不可预知的速度向前各进程按

27、各自独立的、不可预知的速度向前推进推进 结构性结构性:;程序文件中通常也;程序文件中通常也划分了代码段和数据段,进程的创建与撤消就是划分了代码段和数据段,进程的创建与撤消就是PCB的创建与撤消的创建与撤消3.2 进程的描述进程的描述从处理机的活动角度(从处理机的活动角度(进程的静态描述进程的静态描述)系统中有描述进程存在和反映其变化的物理实体系统中有描述进程存在和反映其变化的物理实体,即进程的静态描述。即进程的静态描述。进程的静态描述由三部分组成:进程的静态描述由三部分组成:进程控制块进程控制块PCB、有关程序段:有关程序段:描述进程所要完成的功能。描述进程所要完成的功能。该程序段对其进行操作

28、的数据结构集:该程序段对其进行操作的数据结构集:程序在执行时程序在执行时必不可少的工作区和操作对象。必不可少的工作区和操作对象。是进程完成所需功能的物质基础。是进程完成所需功能的物质基础。它们放在外存中它们放在外存中,直到该进程执行时再调入内存。直到该进程执行时再调入内存。3.2.1 进程控制块进程控制块PCB PCB是系统感知进程存在的唯一实体;是系统感知进程存在的唯一实体;PCB是进程动态特征的集中反映。是进程动态特征的集中反映。创建一个进程时,先创建其创建一个进程时,先创建其 PCB,然后才能根据,然后才能根据PCB 中信息对进程实施有效的管理和控制。中信息对进程实施有效的管理和控制。当

29、一个进程完成其功能之后,系统则释放当一个进程完成其功能之后,系统则释放PCB,进程也随之消亡。进程也随之消亡。一个进程的一个进程的PCB结构全部或部分常驻内存的。结构全部或部分常驻内存的。进程的进程的 PCB所包含的基本内容:所包含的基本内容:(1)描述信息描述信息(2)控制信息控制信息(3)资源管理信息资源管理信息(4)CPU 现场保护结构现场保护结构(1)描述信息描述信息 进程名或进程标识号(唯一)进程名或进程标识号(唯一)用户名或用户标识号用户名或用户标识号 家族关系家族关系(2)控制信息控制信息 进程当前状态:进程当前状态:说明进程当前处于何种状态。说明进程当前处于何种状态。初始态、就

30、绪态、执行态、等待态、终止态初始态、就绪态、执行态、等待态、终止态 就绪态就绪态:表示该进程准备占有处理机表示该进程准备占有处理机;执行态执行态:表示该进程占有处理机表示该进程占有处理机;等待态等待态:表示该进程因某种原因不能占有处理机表示该进程因某种原因不能占有处理机;进程优先级进程优先级是选取进程占有处理机的重要依据。与它有关的是选取进程占有处理机的重要依据。与它有关的PCB表项有:表项有:a.占有占有CPU时间;时间;b.进程优先级偏移;进程优先级偏移;c.占据内存时间等。占据内存时间等。程序开始地址程序开始地址规定该进程的程序从此地址开始执行规定该进程的程序从此地址开始执行.各种计时信

31、息各种计时信息给出进程占有和利用资源的有关情况。给出进程占有和利用资源的有关情况。通信信息通信信息用来说明该进程在执行过程中与别的进程所发生的信息交换情况。用来说明该进程在执行过程中与别的进程所发生的信息交换情况。(3)资源管理信息资源管理信息 有关存储器的信息、输入输出设备的信息、文件系统有关存储器的信息、输入输出设备的信息、文件系统的信息等。的信息等。占用内存大小及其管理用的数据结构指针。占用内存大小及其管理用的数据结构指针。对换或覆盖用的有关信息对换或覆盖用的有关信息 共享程序段大小及起始地址。共享程序段大小及起始地址。输入输出设备的设备号,所要传送的数据长度、缓冲输入输出设备的设备号,

32、所要传送的数据长度、缓冲区地址、缓冲区长度及所用设备的有关数据结构指区地址、缓冲区长度及所用设备的有关数据结构指 指向文件系统的指针及有关标识等。进程可使用这些指向文件系统的指针及有关标识等。进程可使用这些信息对文件系统进行操作。信息对文件系统进行操作。(4)CPU 现场保护结构现场保护结构 当前进程因等待某个事件而进入等待状态或因当前进程因等待某个事件而进入等待状态或因某种事件发生被中止在处理机上的执行时,为某种事件发生被中止在处理机上的执行时,为了以后该进程能在被打断处恢复执行,需要保了以后该进程能在被打断处恢复执行,需要保护当前进程的护当前进程的 CPU现场现场(或(或称进程上下文称进程

33、上下文)。)。PCB 中设有专门的中设有专门的 CPU现场保护结构,以存现场保护结构,以存储退出执行时的进程现场数据。储退出执行时的进程现场数据。3.2.2 进程上下文进程上下文 实际上是实际上是进程执行过程中顺序关联的静态描述进程执行过程中顺序关联的静态描述,是,是进程执行进程执行活动全过程的静态描述活动全过程的静态描述。是一个与是一个与进程切换进程切换和和处理机状态发生变换处理机状态发生变换有关的概念。有关的概念。是一个抽象的概念,它包含了每个进程是一个抽象的概念,它包含了每个进程执行过的执行过的、执行时执行时的的以及以及待执行的待执行的指令和数据,在指令和数据,在IR、堆栈、状态寄存器等

34、中的、堆栈、状态寄存器等中的内容内容。已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文上文。正在执行的进程指令和数据在相关寄存器与堆栈中的内容称为正在执行的进程指令和数据在相关寄存器与堆栈中的内容称为正文正文。待执行的进程指令和数据在相关寄存器与堆栈中的内容称为待执行的进程指令和数据在相关寄存器与堆栈中的内容称为下文下文。在不发生进程调度时,进程上下文的改变是在同一进在不发生进程调度时,进程上下文的改变是在同一进程内进行的。程内进行的。同一进程的上下文结构同一进程的上下文结构包括包括:1.计算机系统中与执行该进程有关的各种寄存器的

35、值计算机系统中与执行该进程有关的各种寄存器的值2.程序段在经过编译之后形成的机器指令代码集(正文程序段在经过编译之后形成的机器指令代码集(正文段)段)3.数据集及各种堆栈值与数据集及各种堆栈值与PCB结构结构UNIX System 中,进程上下文由以下中,进程上下文由以下3部分组成:部分组成:用户级上下文:用户级上下文:由进程的用户程序段部分编译而成的用户正文段、由进程的用户程序段部分编译而成的用户正文段、用户数据、用户栈等组成。用户数据、用户栈等组成。寄存器上下文:寄存器上下文:由由PC、PS、栈指针和通用寄存器、栈指针和通用寄存器的值组成。的值组成。进程的系统级上下文:分进程的系统级上下文

36、:分为为静态部分、动态部分。静态部分、动态部分。静态部分静态部分:PCB 结构结构将进程虚地址空间映射到将进程虚地址空间映射到物理空间用的有关表格物理空间用的有关表格核心栈核心栈(用来装载进程中用来装载进程中所使用系统调用的调用序所使用系统调用的调用序列列)系统级上下文的动态部分系统级上下文的动态部分是与寄存器上下文相关联的。是与寄存器上下文相关联的。进程上下文的层次概念也主要体现在动态部分中,即系统级上下进程上下文的层次概念也主要体现在动态部分中,即系统级上下文的动态部分可看成是一些数量变化的层次组成。其变化规则文的动态部分可看成是一些数量变化的层次组成。其变化规则满足先进后出的堆栈方式,每

37、个上下文层次在栈中各占一项。满足先进后出的堆栈方式,每个上下文层次在栈中各占一项。动态部分动态部分是指在进入是指在进入和退出不同的上下文和退出不同的上下文层次时,系统为各层层次时,系统为各层上下文中相关联的寄上下文中相关联的寄存器值所保存和恢复存器值所保存和恢复的记录。的记录。3.2.3进程上下文切换进程上下文切换 进程上下文的切换发生在不同的进程之间而不是同一个进程内。进程上下文的切换发生在不同的进程之间而不是同一个进程内。进程上下文的切换过程包含进程上下文的切换过程包含3个部分个部分,涉及到涉及到3个进程。个进程。第第1部分:部分:保存被切换进程保存被切换进程的上下文部分到有关存储区。的上

38、下文部分到有关存储区。第第2部分:部分:OS进程中有关进程中有关调度和资源分配程序调度和资源分配程序执行,并选取新的执行,并选取新的进程。进程。第第3部分:部分:将被选中进程将被选中进程的原来被保存的正文部分从有关存储区中的原来被保存的正文部分从有关存储区中取出,并送至有关寄存器与堆栈中,激活被选中进程执行。取出,并送至有关寄存器与堆栈中,激活被选中进程执行。进程上下文的切换过程:图进程上下文的切换过程:图P46 进程上下文的切换过程涉及到谁来保护和获取进程上下文的切换过程涉及到谁来保护和获取进程的正文问题。也就是如何使得寄存器和堆进程的正文问题。也就是如何使得寄存器和堆栈等中的数据流入流出栈

39、等中的数据流入流出PCB的存储区。的存储区。进程上下文的切换过程涉及到了系统调度和分进程上下文的切换过程涉及到了系统调度和分配程序配程序,耗费耗费CPU时间。时间。多组寄存器技术:为了提高效率多组寄存器技术:为了提高效率,进程切换时进程切换时进程上下文不保存到存储器区进程上下文不保存到存储器区,设置多组寄存设置多组寄存器器,直接切换到相应的寄存器直接切换到相应的寄存器.3.2.4 进程空间与大小进程空间与大小 任一进程,都有一个自己的地址空间,称为任一进程,都有一个自己的地址空间,称为进程空间进程空间。进程空间的大小只与进程空间的大小只与处理机的位数处理机的位数有关。有关。(例如例如:16位机

40、位机2的的16次方次方(64K),32位机位机2的的32次方单元次方单元(4G)程序的执行都在进程空间内进行。程序的执行都在进程空间内进行。用户程序、进程的各种控制表格等都按一定的结构排列在进用户程序、进程的各种控制表格等都按一定的结构排列在进程空间中。程空间中。有些系统中,进程空间还被划分为:有些系统中,进程空间还被划分为:用户空间、系统空间;用户空间、系统空间;用用户程序在用户空间内执行;户程序在用户空间内执行;OS内核程序则在进程的系统空间内核程序则在进程的系统空间内执行。内执行。系统通过系统通过程序状态寄存器程序状态寄存器等设置不同的执行模式,即用户模式等设置不同的执行模式,即用户模式

41、和系统模式和系统模式,把用户执行模式把用户执行模式和系统执行模式分别称为和系统执行模式分别称为用户态用户态和系统态和系统态。图图3.4 进程空间进程空间3.3 进程状态及其转换进程状态及其转换3.3.1 进程状态进程状态 一个进程的生命期可以划分为一组状态,这一个进程的生命期可以划分为一组状态,这些状态刻划了整个进程。些状态刻划了整个进程。系统根据系统根据PCB 结构中的状态值控制进程。结构中的状态值控制进程。在进程的生命期内,一个进程至少具有在进程的生命期内,一个进程至少具有5种种基本状态:初始态、就绪状态、执行状态、基本状态:初始态、就绪状态、执行状态、等待状态、终止态。等待状态、终止态。

42、1、初始态:、初始态:进程刚被创建时,由于其它进程正占有处理机得进程刚被创建时,由于其它进程正占有处理机得不到执行,处于初始态。不到执行,处于初始态。初始初始终止终止2、终止态:、终止态:进程在执行进程在执行结束后,将退结束后,将退出执行而被终出执行而被终止,这时进程止,这时进程处于终止态。处于终止态。3、就绪状态:、就绪状态:表示该进程准备占有处理机表示该进程准备占有处理机;此时进程已经得到除此时进程已经得到除 CPU外的所有资源,只要由外的所有资源,只要由调度得到处理机,便可立即投入执行。调度得到处理机,便可立即投入执行。内存就绪状态:内存就绪状态:处于这种状态的进程在得到处理机后才能立处

43、于这种状态的进程在得到处理机后才能立即投入执行。即投入执行。外存就绪状态:外存就绪状态:处于这种状态的进程只有先成为内存就绪状处于这种状态的进程只有先成为内存就绪状态后,才可能被调度执行。态后,才可能被调度执行。4、执行状态:、执行状态:表示该进程占有处理机表示该进程占有处理机;单单CPU系统中任一时刻处于执行状态的进程只能有一个。系统中任一时刻处于执行状态的进程只能有一个。只有处于就绪状态的进程经调度选中之后才可进入执行只有处于就绪状态的进程经调度选中之后才可进入执行状态。状态。又分为用户执行状态和系统执行状态;又分为用户执行状态和系统执行状态;用户执行状态:用户执行状态:进程的用户程序段在

44、执行时该进程处于用户状态。进程的用户程序段在执行时该进程处于用户状态。系统执行状态:系统执行状态:进程的系统程序段在执行时该进程处于系统状态。进程的系统程序段在执行时该进程处于系统状态。5、等待状态:、等待状态:表示该进程因某种原因表示该进程因某种原因不能占有处理机不能占有处理机;进程因等待某个事件发生而放弃处理机进程因等待某个事件发生而放弃处理机进入等待状态。进入等待状态。根据等待事件的种类而进一步划分为不根据等待事件的种类而进一步划分为不同的子状态,如内存等待、设备等待、同的子状态,如内存等待、设备等待、文件等待和数据等待等。文件等待和数据等待等。3.3.2 进程状态转换进程状态转换 进程

45、的状态随着进程的执行和外界条件进程的状态随着进程的执行和外界条件变化和转换。变化和转换。进程的状态转换是一个非常复杂的过程。进程的状态转换是一个非常复杂的过程。从一个状态到另一个状态的转换除了要从一个状态到另一个状态的转换除了要使用不同的控制过程,有时还要借助于使用不同的控制过程,有时还要借助于硬件触发器才能完成。硬件触发器才能完成。图图3.5 进程状态转换进程状态转换初始初始终止终止3.4 进进 程程 控控 制制 进程控制就是系统使用一些具有特定功能的进程控制就是系统使用一些具有特定功能的程序段程序段来创来创建、撤消进程以及完成进程各状态间的转换,从而达到建、撤消进程以及完成进程各状态间的转

46、换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。多进程高效率并发执行和协调、实现资源共享的目的。把系统态下执行的某些具有特定功能的程序段称为把系统态下执行的某些具有特定功能的程序段称为原语原语。原语可分为两类:原语可分为两类:1.机器指令级的原语,机器指令级的原语,特点是执行期间特点是执行期间不允许中断不允许中断,如物,如物理学中的原子,在理学中的原子,在OS中它是一个不可分割的基本单位。中它是一个不可分割的基本单位。2.功能级的原语,功能级的原语,特点是作为原语的程序段特点是作为原语的程序段不允许并发执不允许并发执行行。这两类原语都在系统态下执行,且都是为了完成某个系这两类原语都

47、在系统态下执行,且都是为了完成某个系统管理所需要的功能和被高层软件所调用。统管理所需要的功能和被高层软件所调用。系统在创建、撤消一个进程以及要改变系统在创建、撤消一个进程以及要改变进程的状态时,都要调用相应的进程的状态时,都要调用相应的程序段程序段来完成这些功能。来完成这些功能。在在OS中,通常把进程控制用的程序段中,通常把进程控制用的程序段做成做成原语原语。用于进程控制的原语有:用于进程控制的原语有:创建原语、撤消原语、阻塞原语、唤醒原语等。创建原语、撤消原语、阻塞原语、唤醒原语等。3.4.1 3.4.1 进程创建与撤消进程创建与撤消1.1.进程创建进程创建进程创建方式有进程创建方式有2 2

48、种种:(1)(1)由系统程序模块统一创建。由系统程序模块统一创建。批处理系统中,由批处理系统中,由OSOS的作业调度程序为用户作业创的作业调度程序为用户作业创建建(2)(2)由父进程创建。由父进程创建。例如在层次结构的系统中,父进程创建子进程。例如在层次结构的系统中,父进程创建子进程。由系统统一创建的进程之间的由系统统一创建的进程之间的关系是平等的关系是平等的,它们之间不存在,它们之间不存在资源继承关系。资源继承关系。在父进程创建的进程之间则存在在父进程创建的进程之间则存在隶属关系隶属关系,且互相构成树型结,且互相构成树型结构的家族关系。属于某个家族的一个进程可以继承其父进程所构的家族关系。属

49、于某个家族的一个进程可以继承其父进程所拥有的资源。拥有的资源。无论是哪一种方式创建进程,在系统生成时,无论是哪一种方式创建进程,在系统生成时,都必须由都必须由OSOS创建创建一部分系统进程,由系统进程承担资源分配和管理一部分系统进程,由系统进程承担资源分配和管理工作。工作。无论是哪一种方式创建进程,都无论是哪一种方式创建进程,都必须调用创建原语来实现必须调用创建原语来实现。图图3.6 创创建建原原语语流流图图 创建原语创建原语扫描系扫描系统的统的PCB链表,链表,在找到一定在找到一定PCB表之后,填入调表之后,填入调用者提供的有关用者提供的有关参数,最后形成参数,最后形成代表进程的代表进程的P

50、CB结构。结构。参数:参数:进程名、进程名、进程优先级进程优先级0、进程正文段起始进程正文段起始地址地址0、资源清、资源清单单0等。等。2.进程撤消进程撤消 以下几种情况导致进程被撤消:以下几种情况导致进程被撤消:(1)该进程已完成所要求的功能而正常终止。该进程已完成所要求的功能而正常终止。(2)由于某种错误导致非正常终止。由于某种错误导致非正常终止。(3)祖先进程要求撤消某个子进程。祖先进程要求撤消某个子进程。进程被撤消时,进程都必须释放它所占用的各种资源和进程被撤消时,进程都必须释放它所占用的各种资源和PCB 结构本身。结构本身。当一个祖先进程撤消某个子进程时,还需审查该子进程当一个祖先进

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第3章进程管理课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|