资源描述
1 1第三章第三章 进程管理进程管理lOSOS的任务是使用户充分有效地利用系的任务是使用户充分有效地利用系统资源,对于处理机而言则是统资源,对于处理机而言则是如何把如何把处理机分配给多任务用(处理机调度处理机分配给多任务用(处理机调度算法)。由于多数现代操作系统的设算法)。由于多数现代操作系统的设计都是基于进程的概念,处理机的分计都是基于进程的概念,处理机的分配对象也大都是进程,所以先介绍进配对象也大都是进程,所以先介绍进程管理,再介绍处理机调度程管理,再介绍处理机调度2 2l采用进程的概念来描述计算机程序采用进程的概念来描述计算机程序的执行过程和作为资源分配的基本的执行过程和作为资源分配的基本单位,充分反映单位,充分反映OSOS的执行并发、资的执行并发、资源共享、用户随机的特点源共享、用户随机的特点l进程进程(process)(process)是操作系统中最基本、是操作系统中最基本、重要的概念重要的概念3 3第三章第三章 进程管理进程管理l3.1进程的概念进程的概念l3.2进程的描述进程的描述l3.3进程状态及其转换进程状态及其转换l3.4进程控制进程控制l3.5进程互斥进程互斥l3.6进程同步进程同步l3.7进程通信进程通信l3.8死锁问题死锁问题l3.9线程的概念线程的概念l3.10线程分类与执行线程分类与执行4 4第三章第三章 进程管理进程管理l进程进程(process)的引入的引入5 53.1 3.1 进程的概念进程的概念1 1 程序的顺序执行程序的顺序执行l人们在使用计算机完成各自所要求的功能人们在使用计算机完成各自所要求的功能时,总是使用时,总是使用“程序程序”这个概念这个概念l程序:是一个在时间上按严格次序前后相程序:是一个在时间上按严格次序前后相继的操作序列,是一个静态的概念继的操作序列,是一个静态的概念l程序的顺序执行:具有独立功能的程序独程序的顺序执行:具有独立功能的程序独占处理机直至最终结束的过程占处理机直至最终结束的过程6 6程序顺序执行的特点:程序顺序执行的特点:l顺顺序序性性:上上一一条条指指令令的的执执行行结结束束是是下下一一条条指指令令执执行行开开始始的的充充分分必必要要条条件件;一一个个程程序序开开始始执执行行必必须须要要等等到到前前一一个个程程序序已已执行完成执行完成l封封闭闭性性:程程序序执执行行得得到到的的最最终终结结果果由由给给定的初始条件决定,不受外界因素影响定的初始条件决定,不受外界因素影响l可可再再现现性性:程程序序的的结结果果与与它它的的执执行行速速度度、时时间间无无关关,只只要要给给定定相相同同的的输输入入,一一定定会得到相同的结果会得到相同的结果程序顺序执行的特点:程序顺序执行的特点:l顺序性顺序性l封闭性封闭性l可再现性可再现性7 72 2 程序的并发执行程序的并发执行l为了增强计算机系统的处理能力和提高为了增强计算机系统的处理能力和提高资源利用率资源利用率l所谓程序的并发执行是指:一组在逻辑所谓程序的并发执行是指:一组在逻辑上互相独立的程序或程序段在执行过上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,程中,其执行时间在客观上互相重叠,即一个程序或程序段的执行尚未结束,即一个程序或程序段的执行尚未结束,另一个程序或程序段的执行已经开始另一个程序或程序段的执行已经开始会出现什么问题会出现什么问题8 8程序并发执行的特点:程序并发执行的特点:l充分利用了系统资源,提高了系统的处充分利用了系统资源,提高了系统的处理能力理能力l由于资源有限由于资源有限 ,导致资源共享和竞争,导致资源共享和竞争,从而改变程序的执行速度从而改变程序的执行速度l并发程序执行的结果与其执行的相对速并发程序执行的结果与其执行的相对速度有关,是不确定的,失去程序的封闭度有关,是不确定的,失去程序的封闭性性l不可再现性不可再现性l举例举例(P41)(P41)9 9例:有两个循环程序例:有两个循环程序A A和和B.AB.A每执行一次时,每执行一次时,都要作都要作m mm m1 1操作。操作。B B每执行一次时,先执每执行一次时,先执行行print(m)print(m)操作,然后再将操作,然后再将m m置成置成“0 0”。可。可能出现以下三种情况(假定某时刻能出现以下三种情况(假定某时刻m m的值为的值为m m)vm=m+1 在在print(m)和和m0之前。此时之前。此时得到的得到的m值分别为值分别为m+1,m+1,0vm=m+1 在在print(m)和和m0之后。此时之后。此时得到的得到的m值分别为值分别为m,0,1vm=m+1 在在print(m)和和m0之间。此时之间。此时得到的得到的m值分别为值分别为m,m+1,01010程序并发执行的条件程序并发执行的条件任何并发执行都是不可再现的吗?任何并发执行都是不可再现的吗?定义:定义:R(Pi)=a1,a2,R(Pi)=a1,a2,am,am 表示程序表示程序PiPi在执行期间需引用的变在执行期间需引用的变量的集合,称为量的集合,称为“读集读集”W(Pi)=b1,b2,W(Pi)=b1,b2,bn,bn 表示程序表示程序PiPi在执行期间要改变的变在执行期间要改变的变量的集合,称为量的集合,称为“写集写集”1111有如下两条语句:有如下两条语句:P1:c=a-bP1:c=a-b P2:w=c+1 P2:w=c+1则它们的读集和写集分别是:则它们的读集和写集分别是:R(P1)=a,b W(p1)R(P1)=a,b W(p1)=cc R(P2)=c W(p2)R(P2)=c W(p2)=ww1212若两个程序若两个程序P1P1和和P2P2能满足下述条件,它能满足下述条件,它们便能并发执行,否则不能。此条件称们便能并发执行,否则不能。此条件称伯恩斯坦条件(伯恩斯坦条件(BernsteinBernstein,1966)1966)R(P1)W(P2)R(P2)W(P1)R(P1)W(P2)R(P2)W(P1)W(P1)W(P2)=W(P1)W(P2)=。即。即P1P1读集与读集与P2P2写写集的交集,集的交集,P2P2读集与读集与P1P1写集的交集,写集的交集,P1P1写集和写集和P2P2写集的交集,三者同时为空集写集的交集,三者同时为空集1313在一般情况下,系统要判断并发执行在一般情况下,系统要判断并发执行的各段程序段是否满足的各段程序段是否满足BernsteinBernstein条条件是相当困难的,因此我们需要来解件是相当困难的,因此我们需要来解决程序并发执行所带来的问题决程序并发执行所带来的问题1414思考思考为什么要引入进程的概念?为什么要引入进程的概念?应该有一个描述各程序段执行过程和应该有一个描述各程序段执行过程和共享资源的基本单位,以采取某些措共享资源的基本单位,以采取某些措施来制约、控制各并发程序段,程序施来制约、控制各并发程序段,程序并不合适并不合适1515 操作系统引入进程的概念操作系统引入进程的概念l从从理理论论角角度度看看,是是对对正正在在运运行行的的程程序过程的抽象;序过程的抽象;l从从实实现现角角度度看看,是是一一种种数数据据结结构构,目目的的在在于于清清晰晰地地刻刻划划动动态态系系统统的的内内在在规规律律,有有效效管管理理和和调调度度进进入入计计算算机系统运行的程序机系统运行的程序16163.1 3.1 进程的概念进程的概念进程的概念是进程的概念是6060年代初首先由麻省理工学院年代初首先由麻省理工学院的的MULTICSMULTICS系统和系统和IBMIBM公司的公司的CTSS/360CTSS/360系统引系统引入的。进程有很多各式各样的定义,如:入的。进程有很多各式各样的定义,如:l进程是一个可以并行执行的计算部分进程是一个可以并行执行的计算部分l进进程程是是一一个个抽抽象象实实体体,当当它它执执行行某某个个任任务务时时,将要分配和释放各种资源将要分配和释放各种资源l进程是一个独立的可以调度的活动进程是一个独立的可以调度的活动l等等等等 1717进程的定义:进程进程的定义:进程ProcessProcessu进程是一个具有独立功能的程序对某进程是一个具有独立功能的程序对某个数据集合在处理机上的执行过程和个数据集合在处理机上的执行过程和分配资源的基本单位分配资源的基本单位u程序指一组操作序列,数据集合则是程序指一组操作序列,数据集合则是接受程序规定操作的一组存储单元的接受程序规定操作的一组存储单元的内容内容1818进程的特征进程的特征l动动态态性性:进进程程是是程程序序的的执执行行具具有有生生命命周周期期。由由系系统统“创创建建”而而诞诞生生,因因被被“调调度度”而而执执行行,因因得得不不到到资资源源而而暂暂停,最后因被停,最后因被“撤消撤消”而消亡而消亡 l并并发发性性:多多个个进进程程可可同同存存于于内内存存中中,能在一段时间内同时运行能在一段时间内同时运行1919进程的特征进程的特征l独独立立性性:独独立立获获得得资资源源和和调调度度的的基基本本单位单位l异异步步性性:各各进进程程按按各各自自独独立立的的不不可可预预知的速度向前推进知的速度向前推进l结结构构特特征征:由由程程序序段段 、数数据据段段、进进程程控制块三部分组成控制块三部分组成2020进程进程和和程序程序的区别:的区别:l程程序序是是指指令令的的有有序序集集合合,其其本本身身没没有有任任何何运运行行的的含含义义,是是一一个个静静态态的的概概念念。而而进进程程是是程程序序在在处处理理机机上上的的一一次次执执行行过过程程,它是一个动态的概念。它是一个动态的概念。l程程序序可可以以作作为为一一种种软软件件资资料料长长期期存存在在,而而进进程程是是有有一一定定生生命命期期的的。程程序序是是永永久久的,进程是暂时的。的,进程是暂时的。l进程更能真实地描述并发,而程序不能进程更能真实地描述并发,而程序不能2121进程进程和和程序程序的联系:的联系:l同一程序同时运行于若干个数据集合上,同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说它将属于若干个不同的进程。也就是说同一程序可以对应多个进程同一程序可以对应多个进程2222进程进程和作业的关系:和作业的关系:l作业是用户向计算机提交的任务实体,作业是用户向计算机提交的任务实体,进程则是完成用户任务的执行实体进程则是完成用户任务的执行实体l一个作业可由多个进程组成一个作业可由多个进程组成l作业的概念主要用在批处理系统中,进作业的概念主要用在批处理系统中,进程的概念用在几乎所有的多道、并发技程的概念用在几乎所有的多道、并发技术的操作系统中术的操作系统中23233.2 3.2 进程的描述进程的描述进进程程的的静静态态描描述述:由由程程序序段段 、该该程程序序段段对对其其进进行行操操作作的的数数据据结结构构集集、进程控制块进程控制块PCBPCB三部分组成三部分组成程程序序段段部部分分描描述述进进程程所所要要完完成成的的功功能能,数数据据结结构构集集是是程程序序在在执执行行时时必必不不可可少少的的工工作作区区和和操操作作对对象象,一一般般存存放放在在外外存存中中,直直到到该该进进程程执执行行时时再调入内存再调入内存24243.2.13.2.1进程进程控制块控制块PCB PCB Process Control BlockProcess Control BlocklPCBPCB包含一个进程的描述信息、控制信包含一个进程的描述信息、控制信息以及资源信息,是进程动态特性的集息以及资源信息,是进程动态特性的集中反映中反映l进程与进程与PCBPCB是一一对应的。系统利用是一一对应的。系统利用PCBPCB来控制和管理进程,所以来控制和管理进程,所以PCBPCB是系统感是系统感知进程存在的唯一标志,知进程存在的唯一标志,PCBPCB结构是全结构是全部或部分常驻内存部或部分常驻内存l当一个进程完成其功能后,系统释放当一个进程完成其功能后,系统释放PCBPCB,进程也随之消亡,进程也随之消亡2525lPCBPCB是进程存在的标志,当系统或父进是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其程创建一个进程时,实际上就是为其建立一个进程控制块建立一个进程控制块 lPCBPCB既既能能标标识识进进程程的的存存在在,又又能能刻刻画画出出进进程程的的动动态态特特征征,它它是是一一个个进进程程仅仅有有的被系统真正感知的部分的被系统真正感知的部分l对对操操作作系系统统而而言言,所所有有进进程程控控制制块块将将构构成成并并发发执执行行控控制制和和维维护护系系统统工工作作的的依据依据PCB的作用:的作用:2626PCBPCB的内容的内容 (不同系统不尽相同)2727PCBPCB的内容的内容1.1.进程描述信息:进程描述信息:l进程标识符进程标识符(process ID(process ID,唯一,通常是一个整,唯一,通常是一个整数)或进程名数)或进程名l用户名或用户标识符用户名或用户标识符(user ID)(user ID)l家族关系家族关系2.2.进程控制信息:进程控制信息:l当前状态(就绪态、执行态、等待态)当前状态(就绪态、执行态、等待态)l进程优先级进程优先级(priority)(priority)l进程开始地址进程开始地址l运行统计信息,进程占有和利用资源的情况运行统计信息,进程占有和利用资源的情况l通信信息通信信息28283.3.资源管理信息:资源管理信息:l有关存储器的信息有关存储器的信息l使用输入输出设备的信息使用输入输出设备的信息l有关文件系统的信息等有关文件系统的信息等4.CPU4.CPU现场保护信息:现场保护信息:存储退出执行时的进程现场数据,当该进存储退出执行时的进程现场数据,当该进程重新恢复运行时恢复处理器现场。程重新恢复运行时恢复处理器现场。包括通用寄存器内容、控制寄存器内容、包括通用寄存器内容、控制寄存器内容、用户堆栈指针、系统堆栈指针等。用户堆栈指针、系统堆栈指针等。2929PCBPCB是系统中最重要也是被频繁访问的数是系统中最重要也是被频繁访问的数据结构,系统中的许多模块,如调度程序、据结构,系统中的许多模块,如调度程序、资源分配程序、中断处理程序以及监督和资源分配程序、中断处理程序以及监督和分析程序等,特别是运行频率很高的进程分析程序等,特别是运行频率很高的进程分派程序,都要对它进行读或写操作,所分派程序,都要对它进行读或写操作,所以以PCBPCB常驻内存的系统区中,系统将所有常驻内存的系统区中,系统将所有的的PCBPCB组织成若干个链表(或队列),存组织成若干个链表(或队列),存放在操作系统中专门开辟的放在操作系统中专门开辟的PCBPCB区内区内 3030PCBPCB表:系统把所有表:系统把所有PCBPCB组织在一起,组织在一起,并把它们放在内存的固定区域,就构并把它们放在内存的固定区域,就构成了成了PCBPCB表表PCBPCB表的大小决定了系统中最多可同时表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度存在的进程个数,称为系统的并发度 有两种组织方式:链接和索引有两种组织方式:链接和索引PCB表表第二章 进 程 管 理 31进程控制块的组织方式进程控制块的组织方式 1)链接方式 图 PCB链接队列示意图 第二章 进 程 管 理 322)索引方式 图 按索引方式组织PCB 3333l两类进程:系统进程和用户进程两类进程:系统进程和用户进程l系系统统进进程程是是在在系系统统态态下下执执行行操操作作系系统代码统代码l用用户户进进程程是是在在用用户户态态下下执执行行用用户户程程序序3434管态与目态管态与目态l管态指操作系统的管理程序在执行时管态指操作系统的管理程序在执行时CPUCPU所处的状态,又名特权态、系统态、所处的状态,又名特权态、系统态、核心态核心态l目态指用户程序在执行时目态指用户程序在执行时CPUCPU所处的状所处的状态,又名用户态态,又名用户态3535为什么要区分管态与目态?为什么要区分管态与目态?l操操作作系系统统是是计计算算机机系系统统中中最最重重要要的的系系统统软软件件,为为了了能能正正确确地地进进行行管管理理和和控控制制,其其本本身身是是不不能能被被破破坏坏的的。因因此此,系系统统采采用用了了区区分分处处理理机机状状态态的的办办法法,为为操操作作系系统统程程序序建建立立一一个个保保护护环环境境。这这样样,用用户户程程序序只只能能在在目目态态下下运运行行,只只能能执执行行非非特特权权指指令令,只只能能访访问问自自己己的的存存储储区区,从从而而保护了操作系统程序的正常运行。保护了操作系统程序的正常运行。36363.2.23.2.2进程上下文进程上下文l进程上下文实际上是进程执行活动全进程上下文实际上是进程执行活动全过程的静态描述过程的静态描述lOSOS中把进程物理实体和支持进程运行中把进程物理实体和支持进程运行的环境合称为进程上下文的环境合称为进程上下文(contextcontext)3737l包括计算机系统中与执行该进程有关包括计算机系统中与执行该进程有关的各种寄存器的值、程序段在经过编的各种寄存器的值、程序段在经过编译之后形成的机器指令代码集、数据译之后形成的机器指令代码集、数据集、各种堆栈值和集、各种堆栈值和PCBPCB结构等结构等l当系统调度新进程占有处理器时,这当系统调度新进程占有处理器时,这时要做一次进程上下文切换、即保存时要做一次进程上下文切换、即保存老进程状态而装入被保护了的新进程老进程状态而装入被保护了的新进程的状态,以便新进程运行的状态,以便新进程运行3838l已执行过的进程指令和数据在相关寄已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文存器与堆栈中的内容称为上文l正在执行的进程指令和数据在相关寄正在执行的进程指令和数据在相关寄存器与堆栈中的内容称为正文存器与堆栈中的内容称为正文l待执行的进程指令和数据在相关寄存待执行的进程指令和数据在相关寄存器与堆栈中的内容称为下文器与堆栈中的内容称为下文3939进程上下文的结构进程上下文的结构进程上下文可按一定的执行层次组合:进程上下文可按一定的执行层次组合:用用户户级级上上下下文文:由由进进程程的的用用户户程程序序块块、用用户户数数据据块块和和用用户户堆堆栈栈组组成成的的进进程程地地址址空间。空间。系系统统级级上上下下文文:包包括括系系统统进进程程的的标标识识信信息及系统堆栈等组成的进程地址空间息及系统堆栈等组成的进程地址空间寄寄存存器器上上下下文文:由由PSWPSW寄寄存存器器和和各各类类控控制制寄存器、地址寄存器、通用寄存器组成寄存器、地址寄存器、通用寄存器组成4040进程切换的步骤进程切换的步骤保存被中断进程的处理器现场信息保存被中断进程的处理器现场信息修修改改被被中中断断进进程程的的进进程程控控制制块块的的有有关关信信息息,如进程状态等。如进程状态等。把被中断进程的进程控制块加入有关队列把被中断进程的进程控制块加入有关队列选择下一个占有处理器运行的进程选择下一个占有处理器运行的进程修改被选中进程的进程控制块的有关信息修改被选中进程的进程控制块的有关信息根据被选中进程恢复处理器现场根据被选中进程恢复处理器现场41413.2.33.2.3进程上下文切换进程上下文切换包括包括3 3个部分个部分1.1.保存被切换进程的正文部分保存被切换进程的正文部分2.2.操操作作系系统统进进程程中中有有关关调调度度和和资资源源分分配配程程序执行,选取新的进程序执行,选取新的进程3.3.将将被被选选中中进进程程的的原原来来被被保保存存的的正正文文部部分分恢复恢复42423.2.43.2.4进程空间与大小进程空间与大小l每个进程都有自己的地址空间,该空每个进程都有自己的地址空间,该空间称为进程空间或虚空间间称为进程空间或虚空间l进程空间的大小只与处理机的位数有进程空间的大小只与处理机的位数有关,关,1616位长处理机的进程空间大小为位长处理机的进程空间大小为2 21616,程序的执行都在进程空间内进行,程序的执行都在进程空间内进行l可划分为:用户空间和系统空间可划分为:用户空间和系统空间43433.3 3.3 进程状态及其转换进程状态及其转换l3.3.1 3.3.1 进程状态进程状态l3.3.2 3.3.2 进程状态转换进程状态转换44443.3.1 3.3.1 进程状态进程状态一个进程的生命期可以划分为一组状一个进程的生命期可以划分为一组状态,系统根据态,系统根据PCBPCB结构中的状态值控制结构中的状态值控制进程进程进程在生命消亡前处于且仅处于三种进程在生命消亡前处于且仅处于三种基本状态之一基本状态之一三种状态:执行(三种状态:执行(RunningRunning)、等待)、等待(Wait)/Wait)/阻塞(阻塞(BlockedBlocked)、就绪)、就绪(ReadyReady)4545l执执行行状状态态:进进程程正正在在处处理理机机上上运运行行的的状状态态,该该进进程程已已获获得得必必要要的的资资源源,也也获获得得了了处处理理机机,用用户户程程序序正正在在处处理理机机上运行。上运行。l等等待待(阻阻塞塞)状状态态:进进程程等等待待某某种种事事件件完完成成(例例如如,等等待待输输入入/输输出出操操作作的的完完成成)而而暂暂时时不不能能运运行行的的状状态态,处处于于该该状状态态的的进进程程不不能能参参加加竞竞争争处处理理机机,此此时时,即即使使分分配配给给它它处处理理机机,它它也也不不能运行。能运行。4646l就就绪绪状状态态:该该进进程程运运行行所所需需的的一一切切条条件件都都得得到到满满足足,但但因因处处理理机机资资源源个个数数少少于于进进程程个个数数,所所以以该该进进程程不不能能运运行行,而而必必须须等等待待分分配配处处理理机机资资源源,一一旦旦获获得处理机就立即投入运行得处理机就立即投入运行l在在不不少少系系统统中中,又又增增加加了了两两种种基基本本状状态:新状态和终止状态态:新状态和终止状态4747引入新状态和终止状态的原因:引入新状态和终止状态的原因:l由于由于OSOS在建立一个新进程时,通常分为在建立一个新进程时,通常分为2 2步:步:第一步是为新登录的用户程序创建进程,第一步是为新登录的用户程序创建进程,并为他分配资源,此时进程即处于新状态。并为他分配资源,此时进程即处于新状态。第二步是把新创建的进程送入就绪队列,第二步是把新创建的进程送入就绪队列,一旦进程进入就绪队列,它便由新状态变一旦进程进入就绪队列,它便由新状态变为就绪状态为就绪状态 l一个结束了的进程,其退出系统的过程也一个结束了的进程,其退出系统的过程也分为两步:第一步是将该进程从执行队列分为两步:第一步是将该进程从执行队列中移出,相应的进程处于终止状态。此时中移出,相应的进程处于终止状态。此时系统并不立即撤销它,而是将它暂时留在系统并不立即撤销它,而是将它暂时留在系统中,以便其它进程去收集该进程的有系统中,以便其它进程去收集该进程的有关信息关信息48483.3.2 3.3.2 进程状态转换进程状态转换进程的状态反映进程执行过程的变进程的状态反映进程执行过程的变化,这些状态随着进程的执行和化,这些状态随着进程的执行和外界条件发生变化和转换。外界条件发生变化和转换。4949 典型的进程状态演变图典型的进程状态演变图5050就绪就绪执行执行阻塞阻塞创建创建完成完成I/O完成完成或等待的或等待的事件发生事件发生I/O请求或请求或等待某事等待某事件件进程状态间的转换进程状态间的转换5151挂起状态挂起状态使使进进程程不不能能继继续续执执行行,即即使使挂挂起起后后的的进进程程处处于于就就绪绪状状态态,它它也也不不能能参与参与CPUCPU的竞争的竞争 5252图 具有挂起状态的进程状态图 I/O完成完成I/O完成完成5353引入挂起状态的原因引入挂起状态的原因常被用在进程对换中,此时挂起(即换常被用在进程对换中,此时挂起(即换出)进程可以腾出内存空间给就绪进出)进程可以腾出内存空间给就绪进程使用程使用调节系统的负荷调节系统的负荷方便用户考察自己的运行进程或父进程方便用户考察自己的运行进程或父进程考查子进程考查子进程方便操作系统检查运行中的资源使用情方便操作系统检查运行中的资源使用情况或进行记账等况或进行记账等54543.4 3.4 进程控制进程控制l3.4.1 3.4.1 进程创建与撤销进程创建与撤销l3.4.2 3.4.2 进程的阻塞与唤醒进程的阻塞与唤醒5555l进程控制就是对系统中的所有进程进程控制就是对系统中的所有进程实施管理,包括进程的创建、撤销实施管理,包括进程的创建、撤销以及完成进程各状态间的转换。以及完成进程各状态间的转换。3.4 3.4 进程控制进程控制5656l进程控制一般用原语进程控制一般用原语(Primitive)(Primitive)来实来实现。所谓原语是一种特殊的系统功能现。所谓原语是一种特殊的系统功能调用,它可以完成一个特定的功能。调用,它可以完成一个特定的功能。l其特点是原语执行时不可被中断,不其特点是原语执行时不可被中断,不允许并发执行,在操作系统中它是一允许并发执行,在操作系统中它是一个不可分割的基本单位。一个原语操个不可分割的基本单位。一个原语操作中的所有动作,要么全作,要么全作中的所有动作,要么全作,要么全不作。不作。5757原语在管态下执行,实现方法是以系原语在管态下执行,实现方法是以系统调用方式提供原语接口,且采用屏统调用方式提供原语接口,且采用屏蔽中断的方式来实现原语功能,以保蔽中断的方式来实现原语功能,以保证原语操作不被打断的特性证原语操作不被打断的特性用于进程控制的原语有:用于进程控制的原语有:l创建原语创建原语l撤销原语撤销原语l阻塞原语阻塞原语l唤醒原语唤醒原语为什么进程控制要用原语为什么进程控制要用原语58581.1.进程创建原语进程创建原语Create()Create()n进程创建方式:进程创建方式:l由系统程序模块统一创建,进程之间的关由系统程序模块统一创建,进程之间的关系是平等的系是平等的l由父进程创建,存在隶属关系,构成家族由父进程创建,存在隶属关系,构成家族关系,继承其父进程所拥有的资源关系,继承其父进程所拥有的资源l创建过程:创建过程:1.1.申请空白申请空白PCBPCB2.2.为新进程分配资源,如内存为新进程分配资源,如内存3.3.初始化进程控制块初始化进程控制块 4.4.将新进程插入就绪队列将新进程插入就绪队列 59592.2.进程撤销原语进程撤销原语Tenminat()Tenminat()u进程撤销方式:进程撤销方式:l该进程已完成所要求的功能而正常终止该进程已完成所要求的功能而正常终止l由于某种错误导致非正常终止由于某种错误导致非正常终止l父进程要求撤销某个子进程父进程要求撤销某个子进程l撤销过程:撤销过程:1.1.根根据据被被终终止止进进程程的的标标识识符符,从从PCBPCB集集合合中中检检索出该进程的索出该进程的PCBPCB2.2.将进程所拥有的资源交给父进程或系统进程将进程所拥有的资源交给父进程或系统进程3.3.释放释放PCB PCB 60603.3.进程阻塞原语进程阻塞原语Block()Block()阻塞:运行状态的进程,在其运行过程中期待阻塞:运行状态的进程,在其运行过程中期待某一事件发生,如等待键盘输入、等待磁某一事件发生,如等待键盘输入、等待磁盘数据传输完成等,当被等待的事件未发盘数据传输完成等,当被等待的事件未发生时,由进程自己执行阻塞原语,使自己生时,由进程自己执行阻塞原语,使自己由运行态变为阻塞态由运行态变为阻塞态阻塞过程:阻塞过程:1.1.中断处理机并保存该进程的中断处理机并保存该进程的CPUCPU现场现场2.2.为该进程置阻塞状态后插入等待队列为该进程置阻塞状态后插入等待队列3.3.转转进进程程调调度度,将将处处理理机机分分配配给给另另一一个个就就绪绪进程进程61614.4.进程唤醒原语进程唤醒原语Wakeup()Wakeup()唤醒:当等待队列中的进程等待的事件发唤醒:当等待队列中的进程等待的事件发生时,等待该事件的所有进程都将被唤生时,等待该事件的所有进程都将被唤醒。两种方法:系统进程唤醒、事件发醒。两种方法:系统进程唤醒、事件发生进程唤醒生进程唤醒唤醒过程:唤醒过程:1.1.从等待队列中摘下被唤醒进程从等待队列中摘下被唤醒进程2.2.将将被被唤唤醒醒进进程程置置为为就就绪绪状状态态后后送送入入就就绪绪队列队列3.3.转进程调度或返回转进程调度或返回
展开阅读全文