【教学课件】第三章进程管理.ppt
《【教学课件】第三章进程管理.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三章进程管理.ppt(130页珍藏版)》请在三一办公上搜索。
1、,第三章 进程管理,3.1 为什么要引入进程的概念 3.2 进程的表示和调度状态 3.3 进程的控制 3.4 进程调度 3.5 线程及其管理 3.6 进程通讯 3.7 死锁,3.1 为什么要引入进程的概念,3.1.1 从顺序程序设计谈起,图 3.1 程序的顺序执行,程序的顺序执行具有如下特性:(1)当顺序程序在处理机上执行时,处理机严格地顺序执行程序规定的动作。每个动作都必须在前一动作结束后才能开始。除了人为的干预造成机器暂时停顿外,前一动作的结束就意味着后一动作的开始。程序和机器执行程序的活动严格一一对应。(2)一个程序在机器中执行时,它独占全机资源,除了初始状态外,只有程序本身规定的动作才
2、能改变这些资源的状态。(3)程序的执行结果与其执行速度无关。,3.1.2 程序的并发执行和资源共享,1.程序的并发执行,图 3.2 程序段并发执行的有向图,在该例中I1先于C1和I2;C1先于P1和C2;P1先于P2;I2先于C2和I3。说明了某些程序段必须在其它程序段之前完成,此外从图中可以看出:I2和C1;I3和C2和P1;I4和C3和P2;是重叠的。,2.资源共享 资源共享是现代操作系统另一基本特性。所谓资源共享是指系统中的硬件资源和软件资源不再为单个用户程序所独占,而由几道用户程序共同使用。于是,这些资源的状态不再取决于一道程序,而是由多道程序的活动所决定。这就从根本上打破了一道程序封
3、闭于一个系统中执行的局面。程序并发执行和资源共享之间互为依存条件。一方面,资源共享是以程序并发执行为条件的,因为若系统不允许程序并发,也就不存在资源共享问题;另一方面,若系统不能对共享资源进行有效的管理,也就降低了程序并发执行的效果。,3.1.3 程序并发执行的特性,1.失去了程序的封闭性,设有观察者和报告者并行工作。在一条单向行驶的公路上经常有卡车通过。观察者不断观察并对通过的卡车计数。报告者定时地将观察者的计数值打印出来,然后将计数器重新清“0”。此时我们可以写出如下程序,其中Cobegin和Coend表示它们之间的程序可以并发执行。,begin countinteger;count=0;
4、cobegin,observer begin L1;observe next car;count=count+1;go to L1 end reporter begin L2:print count;count=0 go to l2 end coendend,由于观察者和报告者各自独立地并行工作,count=count+1 的操作,既可以在报告者的print count和count=0 操作之前,也可以在其后,还可以在print count和count=0 之间。即可能出现以下三种执行序列:(1)count=count+1;print count;count=0;(2)print count;
5、count=0;count=count+1;(3)print count;count=count+1,count=0。,假设在开始某个循环之前,count的值为n,则在完成一个循环后,对上述三个执行序列打印机打印的count值和执行后的count值如下表所示:,2.程序和机器执行程序的活动不再一一对应 程序和机器执行程序的活动是两个概念。程序是指令的有序集合,是静态的概念;而机器执行程序的活动是指指令序列在处理机上的执行过程,或处理机按照程序执行指令序列的过程。通常把机器执行程序的活动,称为“计算”。3.并发程序间的相互制约 资源共享和程序的并发执行(或称并发活动)使得系统的工作情况变得相当错
6、综复杂,尤其表现在系统中并发程序间的相互依赖和制约方面。,3.1.4 进程概念的引入,(1)行为的一个规则叫做程序,程序在处理机上执行时所发生的活动称为进程(Dijkstra)。(2)一个进程是一系列逐一执行的操作,而操作的确切含义则有赖于我们以何种详尽程度来描述进程(Brinch.Hansen)。(3)进程是这样的计算部分,它可以与别的进程并发执行(Madnick and Donovan)。(4)顺序进程(有时称为任务)是一个程序与其数据集一道顺序通过处理机的执行所发生的活动(Alan C.Shaw)。(5)一个进程是由伪处理机执行的一个程序(J.H.Saltzer)。,3.2 进程的表示和
7、调度状态,3.2.1 进程的表示,1.进程的组成,图 3.3 进程的表示,2.进程控制块,为描述进程的动态变化,便于系统对进程进行有效的控制和管理,系统中为每一进程设置一个进程控制块。进程控制块是进程存在的一个惟一标志。当系统创建一个进程时,系统为其建立一个PCB,当进程被撤消时,系统收回它的PCB,随之该进程也就消亡了。,在通常的操作系统中,PCB应包含如下一些信息:进程标识名或标识数。(2)位置信息。(3)状态信息。(4)进程的优先级。(5)进程现场保护区。(6)资源清单。(7)队列指针或链接字。(8)其它。,3.2.2 进程的调度状态,1.进程的基本调度状态,运行状态。(2)就绪状态。(
8、3)阻塞状态。,图 3.4 进程的基本调度状态及其转换,2.细分的进程调度状态,图 3.5 细分的进程状态转换图,图 3.6 具有挂起操作的进程状态转换图,3.3 进 程 的 控 制,3.3.1 进程的控制机构,1.原语的定义 所谓“原语”,是指由若干条机器指令构成的并用以完成特定功能的一段程序,这段程序在执行期间是不可分割的。,2.进程控制原语 操作系统的内核是操作系统中最接近裸机的部分。通常内核只占整个操作系统代码中的一小部分。内核的各项功能是通过执行原语来实现的。内核中所包含的原语主要有进程控制原语、进程通信原语、资源管理原语以及其它方面的原语。属于进程控制方面的原语有进程创建原语、进程
9、撤消原语、进程挂起原语、进程激活原语、进程阻塞原语以及进程唤醒原语等。,3.3.2 进程控制原语,1.进程的建立,图 3.7 进程的树型结构,树型结构系统的主要优点是:资源分配严格。(2)进程控制灵活。(3)进程层次清晰,关系明确。,创建原语的功能是用来创建子进程。其具体作法是:先向PCB集合索取一张空白PCB,并获得PCB的内部标识数。若该进程的程序不在内存,应将其调入内存。然后,把创建者提供的PCB参数(如进程外部标识名,初始CPU状态,优先数及资源清单等)以及父进程的内部标识数填入PCB中,并设置记帐信息,再置该进程状态为“静止就绪”,最后把它插入进程家族和就绪队列中。这样,子进程就建立
10、起来了。,2.状态转换原语(1)挂起原语。当需要把某个进程挂起时可调用挂起原语。挂起原语的具体作法是:以被挂起的进程标识名为索引,到PCB集合中查找该进程的PCB,得到该进程的内部标识数,并检查该进程的状态。若状态为“运行”,则中断处理机,把CPU状态保存在PCB中,停止运行该进程;若状态为活跃阻塞,则改为静止阻塞;若状态为活跃就绪,则改为静止就绪;若状态为运行,则从活跃就绪队列中按某种算法选一进程投入运行。,(2)激活原语。在挂起原语的作用下,进程的状态由活跃转为静止。激活原语则使处于静止状态的进程变成活跃,即把“静止就绪”变成“活跃就绪”,把“静止阻塞”变成“活跃阻塞”。一旦被激活的进程处
11、于“活跃就绪”时,便引起处理机的重新调度。激活原语只能激活某进程自己的子孙。同样,激活原语也可以有多种激活方式:如激活一个具有指定标识名的进程,或者激活某进程及其所有的子孙进程。由创建原语所创建的子进程处于“静止就绪”,若希望该进程尽快获得处理机,应在创建原语后紧跟一个激活原语,使之变成活跃就绪,从而引起调度程序的重新调度。,(3)阻塞原语和唤醒原语。由运行到活跃阻塞,由活跃阻塞到活跃就绪通常是在资源管理原语“请求”和“释放”的作用下完成的。但在有的系统中,使用了阻塞原语和唤醒原语完成上述状态的转换。当一进程所期待的某一事件尚未出现时,该进程调用阻塞原语把自己阻塞起来,阻塞原语的操作过程如下:
12、由于进程正处于运行状态,故应中断处理机,把CPU状态保护到PCB中,停止运行该进程。然后把“活跃阻塞”赋予该进程,并把它插入到该事件的等待队列中,再从活跃就绪队列中按一定算法选取一进程投入运行。,3.进程的撤消 当一个进程在完成其规定的任务后,应予以撤消。撤消也有两种方式:仅撤消一个具有指定标识名的进程,或撤消该进程及其所有子孙。前者可能导致被撤消的进程子孙与进程家族隔离,成为不可控的。因此,撤消原语应采用第二种方式。撤消原语的操作过程如下:以调用者提供的进程标识名为索引,到PCB集合中寻找相应的PCB,获得该进程的内部标识数和状态。若该进程处于运行状态,则中断处理机,保护CPU现场,停止执行
13、该进程,并设置重新调度标志。根据状态指出的该进程所在队列,将其从队列中消去。而且凡属于该进程的所有子孙也一律撤消。对于被撤消者所占有的资源,若它们是属于撤消者或其祖先的,都应归还。凡是属于被撤消者自己的,则消去它的资源描述块,最后消去被撤消者的PCB,若重新调度标志已置位,则重新调度。,3.4 进程调度,3.4.1 交通控制程序和进程调度程序1.交通控制程序,交通控制程序(Traffic Controller)是J.H.Saltzer于 1966 年起的名字。他把操作系统中指挥各个进程的工作比作一个交通警察,而把各个进程比作车辆。它们之间有时要竞争,有时要合作,交通警察就要保证它们协调一致,互
14、不冲突。在操作系统中,交通控制程序的主要职能是管理进程状态之间的转变和协调进程间的通讯。,2.进程调度程序 在进程状态的变化中,从就绪到运行的转变是由一个专门的程序来完成的,该程序称为进程调度程序。进程调度称为“低级”调度,是相对作业调度而言的。进程调度程序所要完成的是把一台物理的CPU转变为多台虚拟的CPU或者多台逻辑的CPU。,3.进程调度程序的功能(1)记住系统中所有进程的状态、优先数和资源需求情况。对于动态优先数,还须按一定算法定期地对它进行计算。(2)确定调度算法,决定把处理机分配给哪个进程和分配多长时间。某个进程正在运行时,如果有优先级更高的进程进入就绪队列,是继续运行原进程还是分
15、配处理机给优先级更高的进程,由调度方式确定。(3)分配处理机给进程。,3.4.2 进程调度算法的设计,1.引进进程调度的时机 当发现下述情况时,现运行进程使用的处理机被收回。(1)现运行进程运行结束或者因任务完成而正常结束,或者因出现错误而异常结束。(2)现运行进程因某种原因,比如I/O请求,从运行进入阻塞状态。(3)现运行进程执行某种原语操作,如P操作、阻塞原语等,进入阻塞状态。(4)一个具有更高优先级的进程要求使用处理机,即进入就绪队列。(5)分配给该进程运行的时间片已用完。,2.进程调度方式 所谓进程调度方式,是指当一个进程正在处理机上运行时,若有某个更为紧迫或更为重要的进程需要进行处理
16、,或者说,如果有更高优先级的进程进入就绪队列时,如何分配处理机。通常有两种进程调度方式:(1)非剥夺方式。(2)剥夺方式。,3.进程调度算法的选择,进程调度的主要任务就是按照一定的调度算法从就绪队列中选出一个进程,把CPU分配给它。调度算法的选择与系统的设计目标和系统工作效率密切相关。例如,有的算法有利于系统资源的充分作用,有的算法有利于系统处理能力的充分发挥,有的算法有利于公平地响应用户的服务请求,如此等等。与作业调度算法的选择类似,进程调度算法的选择也要综合各方面的因素,从中选择一种切合实际、行之有效的算法。进程调度算法基本分为两大类:优先数法和时间片轮转法,,4.进程队列的组织,图 3.
17、8 PCB的组织方式,3.4.3 常用的进程调度算法,1.静态优先级法,按进程类型确定。(2)按作业的资源要求确定。(3)按作业到达时间确定。(4)按用户类型和要求确定。,2.动态优先级法,3.时间片轮转法,在时间片轮转法中,时间片是一个重要的参数。系统的响应时间和时间片的关系,可以表示为:T=Nq,其中T为系统的响应时间,q为时间片的大小,N为就绪队列中的进程数。显然,时间片的大小对进程调度有很大影响。如果q取得足够大,以致所有进程都能在分得的一个时间片内执行完毕,则此时的轮转法就变成了FCFS法。这对于短作业,对于I/O操作多的作业都很不利。q的减小,可使调度效果得到改善,但是,q值很小时
18、,则从一个进程到另一个进程的转换时间就不可忽略。换言之,过小的q值会导致系统开销的增加。因此,时间片的选择必须适当,通常为 100 ms。,时间片的长短通常由以下因素确定:(1)系统的响应时间;(2)就绪队列中的进程数;(3)进程的转换时间;(4)计算机的处理能力,计算机的速度越高,时间片就可越短。简单轮转法的优点是方法简单,但由于采用固定时间片和仅有一个就绪队列,故服务质量不够理想。为进一步改变轮转法的调度性能应作两方面改进:将固定时间片改为可变时间片;将单就绪队列改变为多就绪队列。,可变时间片轮转法,可采用如下措施:(1)系统的响应时间固定,每次计算就绪队列中的进程数,记为Nmax,则时间
19、片为q=T/Nmax。在这种方式中,每一轮开始时,系统便根据就绪队列中已有的进程数,计算一次q值,然后进行轮转。在此期间所到达的进程都暂不进入就绪队列,等此次轮转完毕再一并进入。系统根据此时就绪队列中的进程数重新计算q值,然后开始下一轮循环。这种方法称为固定周期轮转法。,(2)时间片的长短取决于优先级的高低。优先级高的进程分得的时间片长,优先级低的进程分得的时间片短。(3)短作业的时间片短,长作业的时间片长。,3.4.4 作业、进程和程序之间的区别和联系,1.用户作业、进程和程序之间的联系 所谓一个作业,就是用户在一次算题过程或一个事务处理中要求计算机系统所做工作的总和。在一个多道程序并发执行
20、的系统中,一个作业就是独立于其它作业的工作单位。一个用户作业通常包括程序、数据和操作说明书三部分。,2.进程和程序的区别,(1)进程是程序的一次执行,属于一种动态概念,而程序是一组有序的指令,是一种静态概念。(2)一个进程可以执行一个或几个程序;反之,同一程序可能由几个进程同时执行。(3)程序可以作为一种软件资源长期保留,而进程是程序的一次执行过程,是暂时的。(4)进程具有并发性,它能与其它进程并发运行。(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。,3.5 线程及其管理,3.5.1 线程概念的引入 3.5.2 什么是线程,线程可定义为“进程内的一个执行单位”,或者
21、定义为“进程内的一个可调度的实体”。在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。负责处理机调度的程序称为线程调度程序,它是操作系统内核的重要组成部分,线程调度也是内核的主要功能之一。,1.线程的定义,2.进程和线程的关系(1)线程是进程的一个组成部分。每个进程在创建时通常只有一个线程,需要时这个线程可以创建其它线程。(2)进程的多线程都在进程的地址空间活动。(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源配额中扣除并分配给它。(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。(5)线程在执行过程中,需要同
22、步。,3.5.3 Windows-NT中的进程和线程,1.Windows NT中的进程,(1)一个可执行的程序,它定义了初始代码和数据。(2)一个私用地址空间,即进程的虚拟地址空间。(3)系统资源,例如信号量、通信端口、文件等。它们是在程序执行时,由操作系统分配给它的。(4)至少有一个执行进程。,2.Windows NT中的线程 Windows NT中,线程和进程一样,也用对象来实现。线程由对象管理程序创建或删除。一个线程的基本组成是:(1)一个惟一的标识符,称之为客户ID。(2)描述处理机状态的一组寄存器内容。(3)两个栈,分别用于用户态和核心态下执行。(4)一个私用的存储区。,图 3.9
23、线程的调度状态及其转换,3.Windows NT中的线程调度,3.6 进 程 通 讯,3.6.1 进程间的同步和互斥,1.进程间的同步 一般来说,一个进程相对另一进程的运行速度是不确定的。也就是说,进程之间是在异步环境下运行的,每个进程都以各自独立的、不可预知的速度向运行的终点推进。但是相互合作的几个进程需要在某些确定点上协调它们的工作。一个进程到达了这些点后,除非另一进程已完成了某些操作,否则就不得不停下来等待这些操作的结束。这就是进程间的同步。,图 3.10 司机和售票员的同步,又如,有用户作业程序,其形式是:Z=func 1(x)*func 2(y)其中func 1(x),func 2(
24、y)均是一个复杂函数,为了加快本题的计算速度,可用两个进程P1、P2 各计算一个函数。进程P2 计算func 2(y),进程P1 在计算完func 1(x)之后,与进程P2 的计算结果相乘,以获得最终结果Z。,图 3.11 进程P1 和P2 间的同步,2.进程间的互斥,图 3.12 资源互斥使用例,又如,设有两个进程P1、P2,它们共享同一变量count,P1、P2 的主要操作如下:P1:R1=count;P2:R2=count;R1=R1+1;R2=R2+1;count=R1;count=R2;其中,R1 和R2 是处理机的两个通用寄存器。,它们可以按各自独立的速度前进,所以运行的顺序也可能
25、是:P1:R1=count;P2:R2=count;P1:R1=R1+1;count=R1;P2:R2=R2+1;count=R2;,3.实现临界区互斥的锁操作法(1)当有若干进程要求进入它们的临界区时,应在有限时间内使一进程进入临界区。换句话说,它们不应相互等待而致使谁都不能进入。(2)每次最多有一个进程处于临界区内。(3)进程在临界区内逗留应在有限时间范围内。,下面给出实现临界区互斥的锁操作法:这种方法使用了一个物理实体,称为锁,用W来表示。锁有两种状态:W=0 表示锁已打开;W=1 表示锁被关闭。加锁原语用LOCK(W)表示,其操作为:测试W,若W=1,表示资源正在使用,继续反复测试;若
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第三 进程 管理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5661067.html