计算机操作系统(2)第2章进程管理_第1页
计算机操作系统(2)第2章进程管理_第2页
计算机操作系统(2)第2章进程管理_第3页
计算机操作系统(2)第2章进程管理_第4页
计算机操作系统(2)第2章进程管理_第5页
已阅读5页,还剩243页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章进第二章进 程程 管管 理理n重点重点n理解理解进程进程的含义的含义n理解和掌握同步的概念及经典理解和掌握同步的概念及经典进程同步进程同步问题问题 ,是本课程的重点之一是本课程的重点之一n难点难点n会写会写进程同步进程同步问题的算法问题的算法n知识点知识点n进程、线程、进程的特征、进程、线程、进程的特征、PCB、进程控制、进程控制、进程状态转换、进程状态转换、 进程同步、进程通信进程同步、进程通信第二章进 程 管 理 2.1进程的基本概念进程的基本概念 2.2进程控制进程控制 2.3进程同步进程同步 2.4经典进程的同步问题经典进程的同步问题 2.5 进程通信进程通信 2.6线程线程 2

2、.1进程的基本概念进程的基本概念n程序的顺序执行及其特征程序的顺序执行及其特征n程序的顺序执行程序的顺序执行n通常可以把一个应用程序分成若干个程序段,在各程序段之间,必须按照某种先后次序顺序执行,仅当前一操作(程序段)执行完后,才能执行后继操作。n例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。顺序执行实例顺序执行实例S1: a:=x+y;S2: b:=a-5;S3: c:=b+1;n其中,语句S2必须在语句S1之后(即a被赋值)才能执行;同样,语句S3也只能在b被赋值后才能执行。程序的顺序执行及其特征程序的顺序执行及其特征nIiCiPi和和S1S2S3程序

3、的顺序执行程序的顺序执行 (a) 程序的顺序执行程序的顺序执行I1C1P1I2C2P2(b) 三条语句的顺序执行三条语句的顺序执行S1S2S3程序的顺序执行及其特征程序的顺序执行及其特征n顺序性顺序性:按照程序结构所指定的次序(可:按照程序结构所指定的次序(可能有分支或循环)能有分支或循环)n封闭性封闭性:独占全部资源,计算机的状态只:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定由于该程序的控制逻辑所决定n可再现性可再现性:初始条件相同则结果相同。如:初始条件相同则结果相同。如:可通过空指令控制时间关系可通过空指令控制时间关系前趋图前趋图n前趋图前趋图(Precedence Grap

4、h)是一个是一个有向无循环有向无循环图,记为图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的,用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序存在的偏序(Partial Order)或前趋关系或前趋关系(Precedence Relation)“”n =(Pi, Pj)|Pj 开始前开始前 Pi 必须完成必须完成, 如果如果(Pi, Pj),可可写成写成PiPj,称,称P

5、i是是Pj的的直接前趋直接前趋,而称,而称Pj是是Pi的的直接后直接后继继。在前趋图中,把没有前趋的结点称为。在前趋图中,把没有前趋的结点称为初始结点初始结点(Initial Node),把没有后继的结点称为,把没有后继的结点称为终止结点终止结点(Final Node)前趋图实例前趋图实例n每个结点还具有一个重量每个结点还具有一个重量(Weight, 权值权值),用于表用于表示该结点所含有的程序量或结点的执行时间。示该结点所含有的程序量或结点的执行时间。P1P3P8P9P4P2P5P6P7(a) 具有九个结点的前趋图具有九个结点的前趋图(b) 具有循环的前趋图具有循环的前趋图S1S2S3前趋图

6、实例前趋图实例nP1P2,P1P3,P1P4,P2P5,P3P5,P4P6,P4P7,P5P8,P6P8,P7P9,P8P9n或表示为:nP=P1,P2,P3,P4,P5,P6,P7,P8,P9n=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9) 注意注意:前趋图中必须不存在循环前趋图中必须不存在循环,但右图中却有着下述的前趋关系: S2S3,S3S2S1S2S3程序的并发执行及其特征程序的并发执行及其特征n程序的并发执行程序的并发执行前趋:前趋: IiCi,CiPi,

7、 IiIi+1, CiCi+1,PiPi+1而而Ii+1和和Ci及及Pi-1是重迭的,亦即在是重迭的,亦即在Pi-1和和Ci以及以及Ii+1之间,可以之间,可以并发执行。并发执行。程序的并发执行及其特征程序的并发执行及其特征n对于具有下述四条语句的程序段对于具有下述四条语句的程序段nS1: a =x+2nS2: b =y+4nS3: c =a+bnS4: d =c+b 程序并发执行时的特征程序并发执行时的特征n间断间断(异步异步)性性n走走停停走走停停,一个程序可能走到中途停下来,失去原,一个程序可能走到中途停下来,失去原有的时序关系;有的时序关系;n失去封闭性失去封闭性n共享资源,受其他程序

8、的控制逻辑的影响。如:一个共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。去原有的不变特征。n失去可再现性失去可再现性n失去封闭性失去封闭性 失去可再现性;外界环境在程序的两失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征次执行期间发生变化,失去原有的可重复特征并发执行实例并发执行实例程序AN:=N+1 程序BPrint(N)N:=0Nn例,程序例,程序A和和B,共享变量,共享变量N,它们的,它们的功能如下:功能如下:N =N+1;Print(N); N =0 ;

9、Print(N); N =0 ;N =N+1;Print(N); N =N+1;N =0;注意:注意:A、B程序得到的共享变程序得到的共享变量结果不同,失去封闭性、不可量结果不同,失去封闭性、不可再现性;要得到良好的控制,系再现性;要得到良好的控制,系统必须要进行管理统必须要进行管理进程控制进程控制管理管理并发执行实例并发执行实例程序并发执行时的特征程序并发执行时的特征n并发执行并发执行失去封闭性的原因失去封闭性的原因是共享资源的影响,是共享资源的影响,去掉这种影响就行了。去掉这种影响就行了。1966年,由年,由Bernstein给出给出并发执行的条件并发执行的条件。(这里没有考虑执行速度的影

10、。(这里没有考虑执行速度的影响。)响。)n程序程序 P(i) 针对针对共享变量共享变量的读集和写集的读集和写集 R(i)和和W(i)n条件:任意两个程序条件:任意两个程序P(i)和和P(j),有:,有:nR(i) W(j)= ;nW(i) R(j)= ;nW(i) W(j)= ;n前两条保证一个程序的两次读之间数据不变化;前两条保证一个程序的两次读之间数据不变化;最后一条保证写的结果不丢掉。最后一条保证写的结果不丢掉。程序并发执行的条件n若两个程序P1和P2满足下述条件,便能并发执行且有可再现性:nR(P1)W(P2)R(P2)W(P1)W(P1)W(P2) = 为程序 Pi 在执行期间所需参

11、考参考的所有变量的集合。为程序 Pi 在执行期间所需改变改变的所有变量的集合。n例如:S1: a := x + yn S2: b := z + 1n S3: c := a - bn S4: d := c + 1S1: 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)=W(S4)=语句S1、S2_并发,因为_。语句S1、S3_并发,因为_。语句S2、S3_并发,因为_。语句S3、S4_并发,因为_。语句S2、S4_并发,因为_。x, yazba, bcc

12、d可以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 程序并发执行的条件程序并发执行的条件2.1.4进程的特征与状态进程的特征与状态n何谓进程(何谓进程(Process)n描述性定义:计算机中的所有程序(软件),描述性定义:计算机中的所有程序(软件),按照某种顺序运行,这种运行的过程称之为进按照某种顺序运行,这种运行的过程称之为进程。程。n如何理解进程概念?如何理解进程概念?n进程与程序有何差别?进程与程序有何差别?2.1.4进程的特征与状态进程的特征与状态阅读菜谱阅读菜谱准备原料准

13、备原料烹制菜肴烹制菜肴饭菜饭菜阅读洗衣机手册阅读洗衣机手册准备衣服、洗衣粉准备衣服、洗衣粉设定参数,洗衣服设定参数,洗衣服干净衣服干净衣服程序程序输入输入运行运行输出输出程序程序输入输入运行运行输出输出分时切换分时切换2.1.4进程的特征与状态进程的特征与状态n进程的核心思想进程的核心思想n进程是某种类型的一个活动,它有程序、输入、进程是某种类型的一个活动,它有程序、输入、输出和状态。输出和状态。n在分时操作系统中,单个在分时操作系统中,单个CPU被若干进程共享,被若干进程共享,它使用某种调度算法决定何时停止一个进程的它使用某种调度算法决定何时停止一个进程的运行,转而为其他进程提供服务。运行,

14、转而为其他进程提供服务。2.1.4进程的特征与状态进程的特征与状态n进程的特征和定义进程的特征和定义n结构特征结构特征n采用机制:进程控制块,采用机制:进程控制块,PCB(Process Control Block)。n进程实体:程序段、相关的数据段和进程实体:程序段、相关的数据段和PCB。n注:注:n在早期的在早期的UNIX中,把这三部分总称为中,把这三部分总称为“进程映进程映像像”。n在许多情况下所说的进程,实际上是指进程实在许多情况下所说的进程,实际上是指进程实体。体。2.1.4进程的特征与状态进程的特征与状态n进程的特征和定义进程的特征和定义n动态性动态性n进程的实质:进程实体的一次执

15、行过程,因此,动进程的实质:进程实体的一次执行过程,因此,动态性是进程的最基本的特征。态性是进程的最基本的特征。n它由创建而产生,由调度而执行,由撤消而消亡。它由创建而产生,由调度而执行,由撤消而消亡。n进程实体有一定的生命期,而程序则只是一组有序进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的。有运动的含义,因而是静态的。2.1.4进程的特征与状态进程的特征与状态n进程的特征和定义进程的特征和定义n并发性并发性n指多个进程实体同存于内存中,且能在一段时间内指多个进程实体同存于内存中,

16、且能在一段时间内同时运行。并发性是进程的重要特征,同时也成为同时运行。并发性是进程的重要特征,同时也成为OS的重要特征。引入进程的目的也正是为了使其进的重要特征。引入进程的目的也正是为了使其进程实体能和其它进程实体并发执行;而程序程实体能和其它进程实体并发执行;而程序(没有建没有建立立PCB)是不能并发执行的。是不能并发执行的。n独立性独立性n在传统的在传统的OS中,独立性是指进程实体是一个能独立中,独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。运行、独立分配资源和独立接受调度的基本单位。凡未建立凡未建立PCB的程序都不能作为一个独立的单位参的程序都不能作为一个独立

17、的单位参与运行。与运行。 2.1.4进程的特征与状态进程的特征与状态n进程的特征和定义进程的特征和定义n异步性异步性n指进程按各自独立的、指进程按各自独立的、 不可预知的速度向前推进,不可预知的速度向前推进,或说进程实体按异步方式运行。或说进程实体按异步方式运行。进程概念进程概念n较典型的进程定义有:较典型的进程定义有:n进程是程序的一次执行进程是程序的一次执行n进程是一个程序及其数据在处理机上顺序执行时所发进程是一个程序及其数据在处理机上顺序执行时所发生的活动生的活动n进程是程序在一个数据集合上运行的过程,它是系统进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

18、进行资源分配和调度的一个独立单位n在引入了进程实体的概念后,我们可以把传统在引入了进程实体的概念后,我们可以把传统OS中的进程定义为:中的进程定义为:“进程是进程实体的运行过程,进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位是系统进行资源分配和调度的一个独立单位”进程与程序的区别进程与程序的区别n进程是动态的,程序是静态的进程是动态的,程序是静态的:程序是有序代:程序是有序代码的集合;进程是程序的执行。通常进程不可码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、在计算机之间迁移;而程序通常对应着文件、静态和可以复制静态和可以复制n进程是暂时的,

19、程序是永久的进程是暂时的,程序是永久的:进程是一个状:进程是一个状态变化的过程,程序可长久保存态变化的过程,程序可长久保存n进程与程序的组成不同进程与程序的组成不同:进程的组成包括程序、:进程的组成包括程序、数据和进程控制块(即进程状态信息)数据和进程控制块(即进程状态信息)n进程与程序的对应关系进程与程序的对应关系:通过多次执行,一个:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程序可对应多个进程;通过调用关系,一个进程可包括多个程序程可包括多个程序进程的三种基本状态进程的三种基本状态n就绪就绪(Ready)状态状态 n可运行,已获得除CPU外的所需资源,等待分配CPUn一个系

20、统中多个处于就绪状态的进程排成就绪队列n执行执行(Running)状态状态 n占用CPU运行;处于此状态的进程的数目=CPU的数目n没有其它进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的idle进程(相当于空操作)n阻塞阻塞(Blocked)状态状态 n等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行n通常阻塞进程也排成一个阻塞队列进程的三种基本状态及转换进程的三种基本状态及转换挂起状态挂起状态n挂起挂起/激活激活n挂起挂起(进程进程):暂时被淘汰出内存的进程。在资暂时被淘汰出内存的进程。在资源不足的情况下,源

21、不足的情况下,OS对在内存中的程序进行合对在内存中的程序进行合理的安排,其中有的进程被暂时调离出内存。理的安排,其中有的进程被暂时调离出内存。n激活:激活:当条件允许的时候,会被操作系统再次当条件允许的时候,会被操作系统再次调回内存。调回内存。挂起状态挂起状态n目的目的n提高处理机效率提高处理机效率:就绪进程表为空时,要提交:就绪进程表为空时,要提交新进程,以提高处理机效率;新进程,以提高处理机效率;n为运行进程提供足够内存为运行进程提供足够内存:资源紧张时,暂停:资源紧张时,暂停某些进程,如:某些进程,如:CPU繁忙(或实时任务执行),繁忙(或实时任务执行),内存紧张内存紧张n用于调试用于调

22、试:在调试时,挂起被调试进程(从而:在调试时,挂起被调试进程(从而对其地址空间进行读写)对其地址空间进行读写)挂起状态挂起状态n引入挂起状态的原因引入挂起状态的原因n终端用户的请求终端用户的请求 n当终端用户在自己的程序运行期间发现有可疑问题当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时将自己的程序静止下来时,希望暂时将自己的程序静止下来n父进程请求父进程请求 n父进程需要考查和修改子进程父进程需要考查和修改子进程n负荷调节的需要负荷调节的需要 n在实时系统中为了调整工作负荷可将不重要的进程在实时系统中为了调整工作负荷可将不重要的进程挂起挂起n操作系统的需要操作系统的需要n如检查运行

23、中的资源使用情况如检查运行中的资源使用情况挂起状态挂起状态挂起状态挂起状态n转换转换n事件出现事件出现(Event Occurs) :进程等待的事件出:进程等待的事件出现,如:操作完成、申请成功等;现,如:操作完成、申请成功等;n可能的情况有:可能的情况有:n阻塞到就绪:针对内存进程的事件出现;阻塞到就绪:针对内存进程的事件出现;n阻塞挂起到就绪挂起:针对外存进程的事件出现;阻塞挂起到就绪挂起:针对外存进程的事件出现;n收容收容(Admit):收容一个新进程,进入就绪状:收容一个新进程,进入就绪状态或就绪挂起状态。进入就绪挂起的原因是系态或就绪挂起状态。进入就绪挂起的原因是系统希望保持一个大的

24、就绪进程表(挂起和非挂统希望保持一个大的就绪进程表(挂起和非挂起);起);具有挂起状态的进程状态具有挂起状态的进程状态创建状态和终止状态创建状态和终止状态n创建状态创建状态n为一个新进程创建PCB,并填写必要的管理信息;n把该进程转入就绪状态并插入就绪队列之中。n终止状态终止状态n等待操作系统进行善后处理;n将其PCB清零,并将PCB空间返还系统。进程的五种基本状态及转换进程的五种基本状态及转换 具有创建、终止和挂起状态的进程状态具有创建、终止和挂起状态的进程状态 需要增加考虑的种情况需要增加考虑的种情况n(1) NULL创建创建:一个新进程产生时,该进程处:一个新进程产生时,该进程处于创建状

25、态。于创建状态。n(2) 创建创建活动就绪活动就绪:在当前系统的性能和内存的:在当前系统的性能和内存的容量均允许的情况下,完成对进程创建的必要操容量均允许的情况下,完成对进程创建的必要操作后,相应的系统进程将进程的状态转换为活动作后,相应的系统进程将进程的状态转换为活动就绪状态。就绪状态。 需要增加考虑的种情况需要增加考虑的种情况n(3) 创建创建静止就绪静止就绪:考虑到系统当前资源状况和:考虑到系统当前资源状况和性能要求,并不分配给新建进程所需资源,主要性能要求,并不分配给新建进程所需资源,主要是主存资源,相应的系统进程将进程状态转为静是主存资源,相应的系统进程将进程状态转为静止就绪状态,对

26、换到外存,不再参与调度,此时止就绪状态,对换到外存,不再参与调度,此时进程创建工作尚未完成。进程创建工作尚未完成。n(4) 执行执行终止终止:当一个进程到达了自然结束点,:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,进程终结,或是被其他有终止权的进程所终结,进程即进终止状态。即进终止状态。 2.1.5进程控制块进程控制块n进程控制块的作用进程控制块的作用n使一个在多道程序环境下不能独立运行的程序使一个在多道程序环境下不能独立运行的程序(含数据含数据),成为一个能独立运行的基本单位,成为一个

27、能独立运行的基本单位,一个能与其它进程并发执行的进程。一个能与其它进程并发执行的进程。n或者说,或者说,OS是根据是根据PCB来对并发执行的进程进来对并发执行的进程进行控制和管理的。行控制和管理的。进程控制块进程控制块n进程控制块中的信息进程控制块中的信息n进程标识符:用于惟一地标识一个进程。一个进程标识符:用于惟一地标识一个进程。一个进程通常有两种标识符:进程通常有两种标识符:n内部标识符内部标识符 在所有的操作系统中,都为每一个进程在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的赋予一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统

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

29、这些寄存器包括:容组成的。这些寄存器包括:n通用寄存器通用寄存器,又称为用户可视寄存器,它们是用户程序,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有可以访问的,用于暂存信息,在大多数处理机中,有 832个通用寄存器,在个通用寄存器,在RISC结构的计算机中可超过结构的计算机中可超过100个;个;n指令计数器指令计数器,存放了要访问的下一条指令的地址;,存放了要访问的下一条指令的地址;n程序状态字程序状态字PSW,其中含有状态信息,如条件码、执行,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;方式、中断屏蔽标志等;n用户栈指针用户栈指针,指每个用户进

30、程都有一个或若干个与之相,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。关的系统栈,用于存放过程和系统调用参数及调用地址。 进程控制块进程控制块n进程控制块中的信息进程控制块中的信息n3) 进程调度信息,与进程调度和进程对换有关的信息,进程调度信息,与进程调度和进程对换有关的信息,包括:包括:n进程状态进程状态,指明进程的当前状态,作为进程调度和对换时的,指明进程的当前状态,作为进程调度和对换时的依据;依据;n进程优先级进程优先级,用于描述进程使用处理机的优先级别的一个整,用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机;数,优

31、先级高的进程应优先获得处理机;n进程调度所需的其它信息进程调度所需的其它信息,它们与所采用的进程调度算法有,它们与所采用的进程调度算法有关,比如,进程已等待关,比如,进程已等待CPU的时间总和、进程已执行的时间的时间总和、进程已执行的时间总和等;总和等;n事件事件,指进程由执行状态转变为阻塞状态所等待发生的事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。即阻塞原因。进程控制块进程控制块n进程控制块中的信息进程控制块中的信息n4) 进程控制信息进程控制信息n程序和数据的地址程序和数据的地址,指进程的程序和数据所在的内存或外存,指进程的程序和数据所在的内存或外存地地(首首)址,以

32、便再调度到该进程执行时,能从址,以便再调度到该进程执行时,能从PCB中找到其程中找到其程序和数据;序和数据;n进程同步和通信机制进程同步和通信机制,指实现进程同步和进程通信时必需的,指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地机制,如消息队列指针、信号量等,它们可能全部或部分地放在放在PCB中;中;n资源清单资源清单,即一张列出了除,即一张列出了除CPU以外的、进程所需的全部资以外的、进程所需的全部资源及已经分配到该进程的资源的清单;源及已经分配到该进程的资源的清单;n链接指针链接指针,它给出了本进程,它给出了本进程(PCB)所在队列中的下一个进程的所在

33、队列中的下一个进程的PCB的首地址。的首地址。 typedef struct tagPROCESSENTRY32 . DWORD dwSize; 结构本身的大小 DWORD cntUsage; 进程引用计数 DWORD th32ProcessID; 进程ID ULONG_PTR th32DefaultHeapID; 默认堆ID DWORD th32ModuleID; 可执行文件的ID DWORD cntThreads; 本进程开启线程计数 DWORD th32ParentProcessID; 父进程ID LONG pcPriClassBase; 进程的优先权 DWORD dwFlags; 标志

34、 TCHAR szExeFileMAX_PATH;进程可执行文件全名 PROCESSENTRY32, *PPROCESSENTRY32;实例:实例:Windows系统:系统:PCB快照快照Struct proc char p_stat ; 进程的状态进程的状态 char p_flag; 进程标志进程标志 char p_pri; 进程优先数进程优先数 char p_time; 调度驻留时间调度驻留时间 char p_cpu; 用于调度的用于调度的cpu情况情况 char p_nice; 计算进程优先级的偏移量计算进程优先级的偏移量 ushort r p_uid; 实际用户标识号实际用户标识号 u

35、short p_suid; 设置用户标识号设置用户标识号 short p_pgrp; 进程组的首进程名进程组的首进程名 short p_pid; 进程唯一标识号进程唯一标识号 short p_ppid; 父进程标识号父进程标识号实例:实例:UNIX:proc short p_addr; User结构的起始结构的起始 int *p_nspt; 转换进程页表使用的系统页表项数转换进程页表使用的系统页表项数 short p_size; 可交换映像的长度可交换映像的长度 short p_swaddr; 交换时的磁盘地主交换时的磁盘地主 short p_swsize; 已被换出的块数已被换出的块数 sh

36、ort p_tsize; 正文段长度正文段长度 short p_sszie; 栈段长度栈段长度 long p_sig; 发现该进程的信号发现该进程的信号 union caddr_t p_cad; 睡眠原因睡眠原因 int p_int; 传递给换出进程的参数传递给换出进程的参数 实例:实例:UNIX:proc #define p_wchan p_unw p_cad #define p_arg p_unw p_int struct text *p_textp; 共享正文段控制块指针共享正文段控制块指针 struct proc *plink; 进程链接指针进程链接指针 int p_clktim; 发

37、报警时钟信号的时间发报警时钟信号的时间 int p_smbeg; 共享内存段的开始页表共享内存段的开始页表 int p_smend; 共享内存段的结束页表共享内存段的结束页表; 实例:实例:UNIX:proc struct pcb int pcb_ksp; 核心栈指针核心栈指针 pcb_esp; 执行栈指针执行栈指针 pcb_ssp; 管理栈指针管理栈指针 pcb_usp; 用户栈指针用户栈指针 pcb_r0; 寄存器寄存器r0 pcb_r1; 寄存器寄存器r1 pcb_r2; pcb_r3; pcb_r4; pcb_r5; pcb_r6; 实例:实例:UNIX:PCB pcb_r7; 寄存器

38、寄存器r7 pcb_r8; 寄存器寄存器r8 pcb_r9; pcb_r10; pcb_r11; pcb_r12; 寄存器寄存器r12或或AP pcb_r13; 寄存器寄存器r13或或FP pcb_pc; 程序计数器程序计数器 pcb_psl; 处理机状态长字处理机状态长字 pcb_p0br; p0基地址寄存器基地址寄存器 pcb_p0lr; p0长度寄存器和异步系统自陷级长度寄存器和异步系统自陷级 pcb_p1br; p1基地址寄存器基地址寄存器 pcb_p1lr; p1长度寄存器和性能监督器赋能长度寄存器和性能监督器赋能;实例:实例:UNIX:PCB进程控制块的组织方式进程控制块的组织方式

39、n链接方式链接方式n把具有同一状态的把具有同一状态的PCB,用其中的链接字链接,用其中的链接字链接成一个队列。这样,可以形成就绪队列、若干成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。个阻塞队列和空白队列等。n对其中的就绪队列常按进程优先级的高低排列,对其中的就绪队列常按进程优先级的高低排列,把优先级高的进程的把优先级高的进程的PCB排在队列前面。排在队列前面。n此外,也可根据阻塞原因的不同而把处于阻塞此外,也可根据阻塞原因的不同而把处于阻塞状态的进程的状态的进程的PCB排成等待排成等待I/O操作完成的队操作完成的队列和等待分配内存的队列等。列和等待分配内存的队列等。PCB链

40、接队列链接队列进程控制块的组织方式进程控制块的组织方式n索引方式索引方式n系统根据所有进程的状态建立几张索引表。例系统根据所有进程的状态建立几张索引表。例如,就绪索引表、阻塞索引表等,并把各索引如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状中。在每个索引表的表目中,记录具有相应状态的某个态的某个PCB在在PCB表中的地址。表中的地址。索引方式组织索引方式组织PCB 2.1.6进程的上下文(进程的上下文(context)n进程上下文的本质进程上下文的本质n进程执行活动全过程的静态描述

41、。进程执行活动全过程的静态描述。n上文:已执行过的进程指令和数据在相关寄存上文:已执行过的进程指令和数据在相关寄存器与堆栈中的内容。器与堆栈中的内容。n正文:正在执行的指令和数据在寄存器和堆栈正文:正在执行的指令和数据在寄存器和堆栈中的内容。中的内容。n下文:待执行的指令和数据在寄存器与堆栈中下文:待执行的指令和数据在寄存器与堆栈中的内容。的内容。进程的上下文进程的上下文n进程上下文的具体内容进程上下文的具体内容n包括计算机系统中与执行该进程有关的各种寄包括计算机系统中与执行该进程有关的各种寄存器(例如通用寄存器,程序计数器存器(例如通用寄存器,程序计数器PC,程序,程序状态字寄存器状态字寄存

42、器PS等)的值;等)的值;n程序段经过编译过后形成的机器指令代码集;程序段经过编译过后形成的机器指令代码集;n数据集;数据集;n各种堆栈值各种堆栈值nPCB结构。结构。进程的上下文进程的上下文n进程上下文的组织方式进程上下文的组织方式n可以按照层次规则组合起来的。可以按照层次规则组合起来的。n例如例如unix v,进程上下文由用户级上下文,寄存器上下,进程上下文由用户级上下文,寄存器上下文以及系统级上下文组成。文以及系统级上下文组成。n用户级上下文由进程的用户程序段部分编译而成的用用户级上下文由进程的用户程序段部分编译而成的用户正文段,用户数据,用户栈组成。户正文段,用户数据,用户栈组成。n寄

43、存器上下文则有程序寄存器寄存器上下文则有程序寄存器PC,处理机状态寄存器,处理机状态寄存器PS,栈指针和通用寄存器的值组成,其中,栈指针和通用寄存器的值组成,其中PC给出了给出了CPU将要执行的下一条指令的虚地址;将要执行的下一条指令的虚地址;PS给出了机器给出了机器与该进程相关联的硬件状态;栈指针与该进程相关联的硬件状态;栈指针SP指向下一项的指向下一项的当前地址,而通用寄存器则用于不同执行模式间的参当前地址,而通用寄存器则用于不同执行模式间的参数传递。数传递。进程的上下文进程的上下文n进程上下文的组织方式进程上下文的组织方式n进程的系统级上下文分为静态和动态部分。进程的系统级上下文分为静态

44、和动态部分。n动态指进程在进入和退出不同的上下文层次时,动态指进程在进入和退出不同的上下文层次时,系统为各层上下文中相关联的寄存器所保存和系统为各层上下文中相关联的寄存器所保存和恢复的记录。恢复的记录。n静态部分为静态部分为PCB结构,将进程虚地址空间映射结构,将进程虚地址空间映射到物理空间以得到核心栈。主要是用来装载进到物理空间以得到核心栈。主要是用来装载进程中所使用系统调用的调用序列。程中所使用系统调用的调用序列。 n系统级上下文的动态部分是与寄存器上下文相系统级上下文的动态部分是与寄存器上下文相关联的。关联的。进程的上下文进程的上下文n进程上下文的进程上下文的切换情况切换情况n当进程使自

45、己进入阻塞状态;当进程使自己进入阻塞状态;n从系统调用返回用户态而不是最有资格运行;从系统调用返回用户态而不是最有资格运行;n核心完成中断处理返回用户态但不是最有资格核心完成中断处理返回用户态但不是最有资格运行;运行;n已已exit退出时。退出时。2.2进程控制进程控制 n职责是对系统中全部进程实施有效管理,包括职责是对系统中全部进程实施有效管理,包括n创建新进程创建新进程n终止已结束进程终止已结束进程n终止由于某事件而无法运行下去的进程终止由于某事件而无法运行下去的进程n负责进程的状态转换负责进程的状态转换n这些功能一般由操作系统的内核实现,操作系统这些功能一般由操作系统的内核实现,操作系统

46、的内核是基于硬件的第一次扩充。把与硬件紧密的内核是基于硬件的第一次扩充。把与硬件紧密相关的模块、运行频率较高的模块及一些公用的相关的模块、运行频率较高的模块及一些公用的基本操作安排在靠近硬件的软件层次中,并常驻基本操作安排在靠近硬件的软件层次中,并常驻内存,以提高系统运行效率。内存,以提高系统运行效率。 操作系统内核操作系统内核nOS内核是计算机硬件的第一层软件扩充,常驻内内核是计算机硬件的第一层软件扩充,常驻内存。存。n例:中断处理程序、设备驱动程序以及时钟管理、例:中断处理程序、设备驱动程序以及时钟管理、进程调度等。进程调度等。n支撑功能支撑功能n中断处理:最基本的功能,是中断处理:最基本

47、的功能,是OS的基础。的基础。n时钟管理:为基本功能,如分时系统的时间片,实时时钟管理:为基本功能,如分时系统的时间片,实时系统的时间控制。系统的时间控制。n原语操作:是原子操作(是不可分割的操作),用来原语操作:是原子操作(是不可分割的操作),用来执行基本操作。创建、撤销、阻塞、唤醒、挂起、激执行基本操作。创建、撤销、阻塞、唤醒、挂起、激活。活。操作系统内核操作系统内核n资源管理功能资源管理功能n进程管理:放在内核。例:调度、分派、创建、进程管理:放在内核。例:调度、分派、创建、撤销、同步、通信。运行频率高。撤销、同步、通信。运行频率高。n存储器管理:内存分配、回收、保护、对换等存储器管理:

48、内存分配、回收、保护、对换等放在内核,保证运行速度高。放在内核,保证运行速度高。n设备管理:驱动程序、缓冲管理、设备分配等。设备管理:驱动程序、缓冲管理、设备分配等。进程控制进程控制n原语原语(primitive)n由若干条指令构成的由若干条指令构成的“原子操作原子操作(atomic operation)”过过程,作为一个整体而不可分割要么全都做,要么全程,作为一个整体而不可分割要么全都做,要么全不做不做n系统调用并不都是原语系统调用并不都是原语 进程进程A调用调用read(),因无数据而,因无数据而阻塞,在阻塞,在read()里未返回。然后进程里未返回。然后进程B调用调用read(),此时,

49、此时read()被重入。系统调用不一定一次执行完并返回该进被重入。系统调用不一定一次执行完并返回该进程,有可能在特定的点暂停,而转入到其他进程程,有可能在特定的点暂停,而转入到其他进程n处理机的执行状态处理机的执行状态保护系统程序保护系统程序n核心态(管态、系统态)系统管理程序执行时的状态。核心态(管态、系统态)系统管理程序执行时的状态。具有较高的特权,能执行一切指令,访问所有的寄存器具有较高的特权,能执行一切指令,访问所有的寄存器和存储区和存储区n用户态(目态)以后程序执行时的状态。具有较低的特用户态(目态)以后程序执行时的状态。具有较低的特权,只能执行规定指令,访问指定的寄存器和存储区权,

50、只能执行规定指令,访问指定的寄存器和存储区2.2.1 进程的创建进程的创建n进程图进程图(Process Graph)n描述一个进程的家族关系的有向树。图中的结点描述一个进程的家族关系的有向树。图中的结点(圆圈圆圈)代表进程。在进程代表进程。在进程D创建了进程创建了进程I之后,称之后,称D是是I的父进的父进程程(Parent Process),I是是D的子进程的子进程(Progeny Process)实例:实例:Windows xp进程关系进程关系2.2.1 进程的创建进程的创建n引起创建进程的事件引起创建进程的事件n用户登录用户登录。在分时系统中,用户在终端键入登。在分时系统中,用户在终端键

51、入登录命令后,如果是合法用户,系统将为该终端录命令后,如果是合法用户,系统将为该终端建立一个进程,并把它插入就绪队列中。建立一个进程,并把它插入就绪队列中。n作业调度作业调度。在批处理系统中,当作业调度程序。在批处理系统中,当作业调度程序按一定的算法调度到某作业时,便将该作业装按一定的算法调度到某作业时,便将该作业装入内存,为它分配必要的资源,并立即为它创入内存,为它分配必要的资源,并立即为它创建进程,再插入就绪队列中。建进程,再插入就绪队列中。 2.2.1 进程的创建进程的创建n引起创建进程的事件引起创建进程的事件n提供服务提供服务。当运行中的用户进程提出某种请求。当运行中的用户进程提出某种

52、请求后,系统将专门创建一个进程来提供服务,如后,系统将专门创建一个进程来提供服务,如打印。打印。n应用请求应用请求。由应用程序为自己创建进程,以便。由应用程序为自己创建进程,以便能并发执行,如输入、计算、输出程序。能并发执行,如输入、计算、输出程序。2.2.1 进程的创建进程的创建n进程的创建进程的创建(Creation of Process)n调用进程创建原语调用进程创建原语Creat( ) 创建一个新进程。创建一个新进程。n申请空白申请空白PCB。为新进程申请获得惟一的数字标识。为新进程申请获得惟一的数字标识符,并从符,并从PCB集合中索取一个空白集合中索取一个空白PCB。n为新进程分配资

53、源为新进程分配资源。为新进程的程序和数据以及用。为新进程的程序和数据以及用户栈分配必要的内存空间。显然,此时操作系统必户栈分配必要的内存空间。显然,此时操作系统必须知道新进程所需内存的大小。须知道新进程所需内存的大小。 2.2.1 进程的创建进程的创建n进程的创建进程的创建(Creation of Process)n初始化进程控制块初始化进程控制块。PCB的初始化包括:的初始化包括: 初始化标初始化标识信息,将系统分配的标识符和父进程标识符填入新识信息,将系统分配的标识符和父进程标识符填入新PCB中;中; 初始化处理机状态信息,使程序计数器指初始化处理机状态信息,使程序计数器指向程序的入口地址

54、,使栈指针指向栈顶;向程序的入口地址,使栈指针指向栈顶; 初始化处初始化处理机控制信息,将进程的状态设置为就绪状态或静止理机控制信息,将进程的状态设置为就绪状态或静止就绪状态,对于优先级,通常是将它设置为最低优先就绪状态,对于优先级,通常是将它设置为最低优先级,除非用户以显式方式提出高优先级要求。级,除非用户以显式方式提出高优先级要求。n将新进程插入就绪队列将新进程插入就绪队列。如果进程就绪队列能够接纳。如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。新进程,便将新进程插入就绪队列。 /Father process#include void main(int argc, char *a

55、rgv) int pid; pid = fork(); if (pid 0) fprintf(stderr, “Fork Failed”); exit(-1); else if (pid = 0) execlp(“/bin/ls”, “ls”, NULL); else wait(NULL); printf(“Child Complete”); exit(0); 实例:实例:UNIX创建进程创建进程 /Child process#include void main(int argc, char *argv) int pid; pid = fork(); if (pid p_ppid; u.u_r

56、val2=1; u.u_start=time; /进程创建时的系统时间 u.u_ticks=lbolt; /进程创建时的lbotl时间 u.u_mem=u.u_procp-p_size; /统计进程内存使用情况 u.u_ior=u.u_iow=u.u_ioch=0; /IO块读写次数、传送字节数 u.u_cstime=0; /进程用户时间 u.u_stime=0; /进程系统时间实例:实例:UNIX创建进程:创建进程:fork()() u.u_cutime=0; /子进程用户时间总和 u.u_utime=0; /子进程系统时间总和 u.u_acflag=AFORK; /统计标志 return;

57、 case 0: break; default: u.u_error=EAGAIN; break; out: u.u_rval2=0;实例:实例:UNIX创建进程:创建进程:fork()()newproc(i) register struct proc *rpp,*rip; register n; register a; struct proc *pend; static mpid; rpp=NULL; retry: mpid+; if (mpid=MAXPID) mpid=0;实例:实例:UNIX创建进程:创建进程:fork()() goto retry; rip=&proc0; n

58、=(struct proc *)v.ve_proc-rip; /v.ve_proc最后项地址+1 a=0; do if (rip-p_stat= =NULL) /p_stat进程状态 if (rpp= = NULL) rpp=rip; continue; 实例:实例:UNIX创建进程:创建进程:fork()() if (rip-p_pid= =mpid) /mpid已被占用 goto retry; if (rip-p_uid= =u.u_ruid) /与当前进程属于同一个用户 a+; pend=rip; /最后一个有效进程的地址 while (rip+,-n) if (rpp= =NULL)

59、/proc中间没有空余表项 if (struct proc *)v.ve_proc=&procv.v_proc) if (i) /v_proc是proc表的最大长度 covf+; /i不等于0是创建1#进程 u.u_error=EAGAIN; return(-1);实例:实例:UNIX创建进程:创建进程:fork()() else panic(“no procs”); rpp=(struct proc *)v.ve_proc; /从后分配一个表项 if (rpppend) pend=rpp; /重新计算pend pend+; v.ve_proc=(char *)pe

60、nd; /重新设置ve_proc if (u.u_uid&u.u_ruid) /如果是普通用户 if (rpp= =&procv.v_proc-1|av.v_maxup) u.u_error=EAGAIN; /如果是最后项或最大允许数实例:实例:UNIX创建进程:创建进程:fork()() return (-1); rip=u.u_procp; /装配新进程的proc项 rpp-p_stat=SRUN; /运行或可运行 rpp-p_clktim=0; /发报警时钟信号的时间 rpp-p_flag=SLOAD; /在内存 rpp-p_uid=rip-p_uid; rpp-p_suid=rip-p_suid; rpp-p_pgrp=rip-p_pgrp

温馨提示

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

评论

0/150

提交评论