您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 操作系统中的进程管理
第二章进程的描述和控制程序的顺序执行一个较大的程序通常都由若干个程序段组成程序在执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完后,才能执行后继操作。I1C1P1I2C2P2程序顺序执行时的前趋图S1:a:=x+yS2:b:=a-5S3:c:=b+1前趋关系:IiCiPi程序顺序执行时的特征顺序性处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在上一个操作结束之后开始。封闭性程序是在封闭的环境下执行的,即程序运行时独占全机资源资源的状态(除初始状态外)只有本程序才能改变它程序一旦开始执行,其执行结果不受外界因素影响可再现性只要程序执行时的环境和初始条件相同,当程序多次重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。前趋图2.1.2前趋图PrecedenceGraph有向无循环图DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系。结点:语句/程序段/进程有向边:两结点之间存在的偏序(PartialOrder)或前趋关系(PrecedenceRelation)””={(Pi,Pj)|PimustcompletebeforePjmaystart},如果(Pi,Pj)∈,可写成PiPj,称Pi是Pj的前趋,Pj是Pi的直接后继初始结点InitialNode:没有前趋的结点终止结点FinalNode:没有后继的结点Weight:结点所含的程序量或结点的执行时间上图的前趋关系:IiCiPi和S1S2S3图2-1具有7个结点的前趋图前趋关系: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),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8)(P6,P8),(P7,P9),(P8,P9)}P1P2P3P4P5P6P7不存在循环!P9P8图2-1具有循环的图前趋关系:S2S3,S3S2S1S2S3程序并发执行及其特征程序的并发执行程序并发执行时的前趋图P1P2P3P4I1I2I3I4C1C2C3C4前趋关系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之间,可以并发执行。前趋图和程序执行例:程序段如下:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+bS1S2S3S4程序并发执行时的特征间断性并发程序之间相互制约执行——暂停执行——执行失去封闭性多个程序共享全机资源执行状态受外界因素影响不可再现性程序经过多次执行后,虽然其执行时的环境和初始条件都相同,但得到的结果却各不相同不可再现性的例子有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N:=N+1操作;程序B则每执行一次时,都要执行print(N)操作,然后再将N置成“0”,程序A和B以不同的速度运行。这样,可能出现下述三种情况(假定某时刻变量N的值为n)。1)N:=N+1在print(N)和N:=0之前,此时得到的N值分别为n+1,n+1,02)N:=N+1在print(N)和N:=0之后,此时得到的N值分别为n,0,13)N:=N+1在print(N)和N:=0之间,此时得到的N值分别为n,n+1,0结论:失去了可再现性进程的特征与状态1.进程的特征和定义2.进程的三种基本状态3.挂起状态4.创建状态和终止状态进程的特征和定义1)结构特征(程序段、数据段、PCB)为使程序(含数据)能独立运行,应为之配置一进程控制块,即PCB(ProcessControlBlock);而由程序段、相关的数据段和PCB三部分便构成了进程实体。进程=进程实体创建进程=创建进程实体中的PCB撤消进程=撤消进程实体中的PCB进程的特征与状态2)动态性进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。进程由创建而产生,由调度而执行,由撤消而消亡,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放在某种介质上,其本身并不具有运动的含义,因而是静态的。进程的特征与状态3)并发性多个进程实体同存于内存中,且能在一段时间内同时运行。并发性是进程的重要特征,同时也成为OS的重要特征。引入进程的目的也是为了使进程实体能和其他进程实体并发执行,而程序是不能并发执行的。4)独立性进程实体是一个能独立运行的基本单位、独立分配资源和独立接受调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。5)异步性进程各自独立的、不可预知的速度向前推进,或说进程实体按异步方式运行。进程的定义几种典型定义进程是程序的一次执行。进程是一个程序及其数据在处理机上顺序执行时所发生的活动。进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。定义进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程例子:SuseLinux进程例子:WindowsXP进程的三种基本状态进程执行时的间断性,决定了进程可能具有多种状态。就绪(Ready)状态就绪状态:当进程已分配到除了CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。就绪队列:在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。执行状态进程已获得CPU,其程序正在执行。单处理机:一个进程处于执行状态多处理机:多个进程处于执行状态2.进程的三种基本状态阻塞状态(等待状态)阻塞状态:正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态(等待状态、封锁状态)。致使进程阻塞的典型事件请求I/O申请缓冲空间等阻塞队列:将处于阻塞状态的进程排成的队列。根据阻塞原因,把处于阻塞状态的进程排成多个队列。进程调度就绪执行阻塞时间片完I/O请求I/O完成图2-5进程的三种基本状态及其转换进程状态的转换1.就绪执行状态(进程调度)处于就绪状态的进程,在调度程序为之分配了处理机之后,该进程便可执行,相应地,它就由就绪状态转变为执行状态。2.执行就绪状态(时间片完)正在执行的进程也称为当前进程,如果因分配给它的时间片已完而被暂停执行时,该进程便由执行状态又回复到就绪状态。3.执行阻塞状态(I/O请求)如果因发生某事件而使进程的执行受阻,使之无法继续执行,该进程将由执行状态转变为阻塞状态。4.阻塞就绪状态(I/O完成)进程1进程2进程3调度模块运行阻塞就绪进程状态转换例子挂起状态定义:使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改。这种静止状态称为挂起状态。挂起状态1)引入挂起状态的原因(1)终端用户的请求:当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来。(2)父进程请求:父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。(3)负荷调节的需要:当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以便系统能正常运行。(4)操作系统的需要:OS有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。挂起状态2)进程状态的转换在引入挂起状态后,又将增加从挂起状态(静止状态)到非挂起状态(活动状态)的转换;或者相反。(1)活动就绪→静止就绪活动就绪状态Readya:当进程处于未被挂起的就绪状态时。静止就绪状态Readys:当用挂起原语suspend将进程挂起后,该进程便转换为静止就绪状态,处于Readys状态的进程不再被调度执行。挂起状态2)进程状态的转换(2)活动阻塞→静止阻塞活动阻塞状态Blockeda:进程处于未被挂起的阻塞状态时。静止阻塞状态Blockeds:当用Suspend原语将处于活动阻塞状态的进程挂起后,进程便转换为静止阻塞状态。处于该状态的进程在其所期待的事件出现后,将从静止阻塞变为静止就绪。(3)静止就绪→活动就绪处于Readys状态的进程,若用激活原语Active激活后,该进程将转变为Readya状态。(4)静止阻塞→活动阻塞处于Blockeds状态的进程,若用激活原语Active激活后,进程将转变为Blockeda状态。活动阻塞静止阻塞静止就绪执行活动就绪具有挂起状态的进程状态图创建状态和终止状态1、创建状态2、终止状态创建状态创建进程的步骤为新进程创建PCB,并填写必要的管理信息把该进程转入就绪状态并插入就绪队列当一个新进程被创建时,进程已拥有了自己的PCB,但进程自身还未进入主存,即创建工作尚未完成,进程还不能被调度运行,其所处的状态就是创建状态。引入创建状态的原因保证进程调度必须在创建工作完成后进行,以确保对PCB操作的完整性。增加了管理的灵活性,操作系统可以根据系统性能或主存容量的限制,推迟创建状态进程的提交。对于处于创建状态的进程,获得了其所必需的资源,以及对其PCB初始化工作完成后,进程状态便可由创建状态转入就绪状态。终止状态终止进程的步骤等待操作系统进行善后处理将其PCB清零,并将PCB空间返还系统几种情况,使进程进入终止状态进程到达了自然结束点出现了无法克服的错误被操作系统所终结被其他有终止权的进程所终结进入终止状态的进程以后不能再执行,但在OS中依然保留一个记录(保存状态码和一些计时统计数据,供其他进程收集)。一旦其他进程完成了对终止状态进程的信息提取之后,OS将删除该进程。进程五种基本状态及转换就绪执行阻塞I/O请求终止创建释放许可思考?1.如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?2.有没有这样的状态转换,为什么?等待—运行;就绪—等待3.一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能。7状态的进程状态图活动阻塞静止阻塞静止就绪执行活动就绪请求I/O终止创建需要增加考虑的情况1.NULL创建:一个新进程产生时,该进程处于创建状态2.创建活动就绪:在当前系统的性能和内存容量允许的情况下,完成对进程创建的必要操作后,相应的系统进程将进程的状态转换为活动就绪状态。3.创建静止就绪:考虑到系统当前资源状况和性能要求,并不分配给新建进程所需资源,主要是主存资源,相应的系统进程将进程状态转为静止就绪状态,对换到外存,不再参与调度,此时进程创建工作尚未完成。执行终止:当进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终止,或是被其他有终止权的进程所终结,进程即进入终止状态。Structuretask_struct:TASK_RUNNING:进程准备运行,不仅有一个进程TASK_INTERRUPTIBLE:进程等待特定事件TASK_UNINTERRUPTIBLE:进程等待硬件条件TASK_ZOMBIE:进程已经退出TASK_STOPPED:进程已经停止运行,但在内存仍有结构Linux进程状态停止就绪执行不可中断可中断僵死Linux进程状态(续)PCB1、进程控制块的作用2、进程控制块中的信息3、进程控制块的组织方式进程控制块的作用PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的、用于描述进程情况及控制进程运行所需的全部信息。PCB的作用:使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。PCB是进程存在唯一标志OS
本文标题:操作系统中的进程管理
链接地址:https://www.777doc.com/doc-3836440 .html