有4个进程的三个基本状态如图P1、P2、P3、P4,如图 请用可抢占式优先权调度算法,分别计算平均周转时间和平均带权周转时间?


学习总结目录:
计算机操作系统-学习总结(操作系统引论)计算机操作系统-学习总结(进程的描述与控制)计算机操作系统-学习总结(处理机调度与死锁)计算机操作系统-学习总结(存储器管理)计算机操作系统-学习总结(输入输出系统)计算机操作系统-学习总结(文件管理)计算机操作系统-学习总结(磁盘存储器)处理机调度的层次和调度算法的目标在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理杋资源进行分配。处理机调度算法是指根据计算处理机分配策略所规定的处理机分配算法。1.1 处理机调度的层次:高级调度( High Level Scheduling): 又叫做长调度或作业调度,调度对象是作业(主要用于多道批处理系统,分时系统、实时系统中不设置高级调度)低级调度( Low Leve
Scheduling): 又叫做进程调度或短进程调度,调度的对象是进程,通过相关算法决定就绪队列中的哪个进程应该获得处理机,在多道批处理,分时、实时系统中都必须配置这级调度中级调度( Intermediate Scheduling): 又叫做内存调度,主要目的是提高内存利用率和系统吞吐量。1.2 处理机调度算法的目标1. 处理机调度算法的共同目标资源利用率,为提高系统的资源利用率,应使系统中的处理机和其它所有资源都尽可能地保持忙碌状态(其中CPU是最重要的资源)公平性,公平性是指应使诸进程都获得合理的CPU时间,不会发生进程饥饿现象。平衡性,使系统中的CPU和各种外部设备都能经常处于忙碌状态,调度算法应尽可能保持系统资源使用的平衡性策略强制执行,对所制订的策略其中包括安全策略,只要需要,就必须予以准确地执行2. 批处理系统的目标 平均周转时间短所谓周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。包括四部分时间:作业在外存后备队列上等待调度的时间,进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间,进程等待I/O操作完成的时间。 平均周转时间:平均带权周期时间:
系统吞吐量高。由于吞吐量是指在单位时间内系统所完成的作业数,因而它与批处理作业的平均长度有关。事实上,如果单纯是为了获得高的系统吞吐量,就应尽量多地选择短作业运行。
处理机利用率高。对于大、中型计算机,CPU价格十分昂贵,致使处理机的利用率成为衡量系统性能的十分重要的指标;而调度方式和算法又对处理机的利用率起着十分重要的作用。如果单纯是为使处理机利用率高,应尽量多地选择计算量大的作业运行。 3. 分时系统的目标响应时间快(响应时间:用户通过键盘提交一个请求开始,直到屏幕上显示出处理结果为之的一段时间间隔包括三部分:请求信息从键盘输入开始直到传送到处理机的时间、处理机对请求信息处理的时间、将形成的响应信息送到终端显示器的时间)均衡性4. 实时系统的目标截止时间的保证(截止时间:某任务必须开始执行的最迟时间,或必须完成的最迟时间)可预测性作业与作业调度在多道批处理系统中,作业是用户提交给系统的一项相对独立的工作。操作员把用户提交的作业通过相应的输入设备输入到磁盘存储器,并保存在一个后备作业队列中。再由作业调度程序将其从外存调入内存。先来先服务(FCFS)FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度。短作业优先(SJF)由于在实际情况中,短作业(进程)占有很大比例,为了能使它们能比长作业优先执行,而产生了短作业优先调度算法)短作业优先算法,SJF算法是以作业的长短来计算优先级,作业越短,其优先级越高。短作业优先算法的缺点:必须预知作业的运行时间对长作业非常不利,长作业的周转时间会明显地增长。更严重的是,该算法完全忽视作业的等待时间,可能使作业等待时间过长,出现饥饿现象在采用FCFS算法时,人—机无法实现交互。该调度算法完全未考虑作业的紧迫程度,故不能保证紧迫性作业能得到及时处理。优先级调度算法(PSA)对于先来先服务调度算法,作业的等待时间就是作业的优先级,等待时间越长,其优先级越高。(1)分为抢占式和非抢占式的(2)优先级的类型有静态优先级和动态优先级①静态优先级是在创建进程时确定的,在进程的整个运行期间保持不变。确定进程优先级大小的依据有:进程类型(系统进程高于用户进程),进程对资源的要求(要求少的优先级高),用户要求(根据进程紧迫程度和用户所付费用的多少来确定)②动态优先级:等待时间越长优先级越高,运行时间越长优先级越低高响应比优先调度算法 (HRRN)在批处理系统中,FCFS算法所考虑的只是作业的等待时间,而忽视了作业的运行时间。而SJF算法正好与之相反,只考虑作业的运行时间,而忽视了作业的等待时间。高响应比优先调度算法则是既考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。每个作业都有一个动态优先级,它随等待时间延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。该优先级的变化规律可描述为:由于等待时间与服务时间之和就是系统对该作业的响应时间,优先级可表示为:转轮调度算法(RR)分时系统中,最简单和比较常用的基于时间片的转轮调度算法,将进程排成一个就绪队列,每过一个时间段进行一次中断,激活系统中的程序并完成一次调度,依次执行进程。这样保证了就绪中的队列所有进程在一个确定的时间内能够获得一次CPU执行。(1)只适应于进程调度(2)时间片太小,意味着会频繁的执行进程调度和进程上下文的切换,会增加系统开销(3)时间片太大,RR算法会退化为先来先服务算法,无法满足短作业和交互式用户的需求。多级反馈队列调度算法:调度机制:设置多个就绪队列,第一个队列优先级最高,第二个次之,执行时间片的大小也不相同,优先级越高的队列,时间片越小。每个队列都采用FCFS算法。按队列优先级进行调度特点:结合了FCFS,时间片轮转,优先级来实现的,不考虑运行时间,平均周转时间没有变小。能较好地满足各种类型用户的需求。进程调度进程调度的任务:(1)保存处理机的现场信息(2)按某种算法选取进程(3)把处理机分配给进程进程调度方式:非抢占方式( Nonpreemptive Mode):一旦把处理机分配给某进程后就一直让它运行下去,直至该进程完成,或发生某事件而被阻塞时,才把处理机分配给其它进程。(不适合严格的实时系统,实现简单,系统开销小,适用于大多数批处理系统,但是不能立即执行)抢占方式( Preemptive Mode)这种调度方式允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另进程。(适用于要求严格的实时系统,可防止一个长进程长时间占用处理机,但是系统开销较大)抢占不是任意性行为,必须遵循一定的原则,主要原则有:优先权原则短进程优先原则时间片原则死锁资源问题:1. 可重用性资源和消耗性资源可重用性资源是一种可供用户重复使用多次的资源,它具有如下性质:每一个可重用性资源中的单元只能分配给一个进程使用,不允许多个进程共享。进程在使用可重用性资源时,须按照这样的顺序:①请求资源、②使用资源、③释放资源系统中每一类可重用性资源中的单元数目是相对固定的,进程在运行期间既不能创建也不能删除它。可消耗性资源又称为临时性资源,它是在进程运行期间,由进程动态地创建和消耗的2.可抢占性资源和不可抢占性资源可把系统中的资源分成两类,一类是可抢占性资源,是指某进程在获得这类资源后,该资源可以再被其它进程或系统抢占。另一类资源是不可抢占性资源,即一旦系统把某资源分配给该进程后,就不能将它强行收回,只能在进程用完后自行释放。计算机系统中的死锁:1. 竞争不可抢占性资源引起死锁通常系统中所拥有的不可抢占性资源其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。2. 竞争可消耗资源引起死锁现在进一步介绍竞争可消耗资源所引起的死锁。如图:三个进程之间,在利用消息通信机制进行通信时所形成的死锁情况3. 进程推进顺序不当引起死锁除了系统中多个进程对资源的竞争会引发死锁外,进程在运行过程中,对资源进行申请和释放的顺序是否合法,也是在系统中是否会产生死锁的一个重要因素死锁的定义、必要条件和处理方法1. 死锁的定义在一组进程发生死锁的情况下,这组死锁进程中的每个进程,都在等待另一个死锁进程所占有的资源。2. 产生死锁的必要条件虽然进程在运行过程中可能会发生死锁,但产生进程死锁是必须具备一定条件的。综上所述不难看出,产生死锁必须同时具备下面四个必要条件,只要其中任一个条件不成立,死锁就不会发生互斥条件:某段时间一个资源只能被一个进程占用请求和保持条件:进程中至少保持一个资源不可抢占条件:进程获得的资源在未使用完之前不能被抢占循环等待条件:发生死锁时,必然存在一个进程/资源的循环链3. 处理死锁的方法预防死锁:预防死锁的方法是通过破坏产生死锁的四个必要条件中的一个或几个,以避免发生死锁。由于互斥条件是非共享设备所必须的,不仅不能改变,还应加以保证,因此主要是破坏产生死锁的后三个条件。避免死锁:在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁。这种方法所施加的限制条件较弱,可能获得较好的系统性能,目前常用此方法来避免发生死锁。(银行家算法)检测死锁:为了能对系统中是否已发生了死锁进行检测,在系统中必须:①保存有关资源的请求和分配信息;②提供一种算法,它利用这些信息来检测系统是否已进入死锁状态。解除死锁:两个方法:终止所有死锁进程、逐个终止进程当系统有可能发生死锁时,系统应当提供两个算法:①死锁检测算法。该方法用于检测系统状态,以确定系统中是否发生了死锁。②死锁解除算法。当认定系统中已发生了死锁,利用该算法可将系统从死锁状态中解脱出来。利用银行家算法避免死锁最有代表性的避免死锁的算法是 Dijkstra的银行家算法。该算法原本是为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。在OS中也可用它来实现避免死锁银行家算法中的数据结构:为了实现银行家算法,在系统中必须设置这样四个数据结构,分别用来描述系统中可利用的资源、所有进程对资源的最大需求、系统中的资源分配,以及所有进程还需要多少资源的情况。可利用资源向量 Available最大需求矩阵Max分配矩阵 Allocation需求矩阵Need
练习题一、选择题:1、在单处理器的多进程系统中,进程什么时候占有处理器以及决定占用时间的长短是由( )决定的。A、进程运行时间 B、进程的特点和进程调度策略C、进程执行的代码 D、进程完成什么功能2、时间片轮转算法是为了( )A、多个用户能及时干预系统 B、优先级较高的进程能得到及时响应C、是系统变得更为高效 D、需要CPU时间最少的进程最先执行3、( )有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。A、时间片轮转算法 B、先来先服务调度算法C、短作业优先算法 D、优先级调度算法4、为了照顾短作业用户应采用( )调度算法;为了能实现人机交互应采用( )调度算法;既能使短作业用户满意又能使长作业用户满意应采用( )调度算法。A、FCFS B、SJF C、HRRN D、RR5、有三个作业分别为J1、J2、J3,其运行时间分别为2h、5h、3h,假定它们能同时达到,并在同一台处理器上以单刀方式运行,则平均周转时间最小的执行顺序为( )6、关于优先权大小的论述中,正确的是( )。A、资源要求多的作业优先权应高于资源要求少的作业优先权B、用户进程的优先权,应高于系统进程的优先权C、在动态优先权中,随着作业等待时间的增加,其优先权将随之下降D、在动态优先权中,随着作业执行时间的增加,其优先权将随之下降7、进程调度算法采用固定时间片轮转调度算法,当时间片过大时,就会使时间片轮转算法转化为( )调度算法。A、HRRN B、FCFS C、SPF D、优先级8、在调度算法中,对短进程不利的是( )调度算法。A、SPF B、FCFS C、HRRN D、多级反馈队列9、下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( ),最有利于提高系统吞吐量的调度算法是( )。A、FCFS B、 HRRN C、 RR D、SJ§F10、下列调度算法中,不可能导致饥饿现象的调度算法是( )。A、RR B、静态优先数调度C、非抢占式短作业优先 D、抢占式短作业优先11、一个进程的读磁盘操作完成后,操作系统针对该进程必做的是( )。A、修改进程状态为就绪态 B、降低进程优先级C、给进程分配用户内存空间 D、增加进程时间片大小12、采用时间片轮转调度算法分配CPU时,当处于运行状态的进程用完一个时间片后,它的状态是( )状态。A、阻塞 B、运行 C、就绪 D、消亡13、下列情况会导致系统发生死锁的是( )。A、进程释放资源 B、一个进程进入死循环C、多个进程竞争资源出现了循环等待 D、多个进程竞争使用共享型的设备14、对资源采用按序分配策略能达到( )的目的。A、预防死锁 B、避免死锁 C、检测死锁 D、解除死锁15、死锁预防是保证系统不进入死锁状态的静态策略,其解决办法是破坏产生死锁的4个必要条件之一,下列办法中破坏了“循环等待”条件的是( )。A、银行家算法 B、一次性分配策略 C、剥夺资源法 D、资源有序分配策略16、银行家算法是一种( )算法。A、预防死锁 B、避免死锁 C、检测死锁 D、解除死锁17、在下列解决死锁的方法中,属于死锁预防策略的是( )。A、银行家算法 B、一次性分配策略C、资源分配图简化 D、死锁检测18、某系统有n台互斥使用的同类设备,三个并发进程分别需要 3、4、5 台设备,可确保系统不发生死锁的设备数 n 最小为( )。A.9 B.10 C.11 D.1219、某计算机系统中有 8 台打印机,由 K 个进程竞争使用,每个进程最多需要 3 台打印机。该系统可能会发生死锁的 K 的最小值是( )。A.2 B.3 C.4 D.520、死锁与安全状态的关系是( )。A.死锁状态有可能是安全状态 B.安全状态有可能成为死锁状态C.不安全状态就是死锁状态 D.死锁状态一定是不安全状态21、下列关于死锁的说法正确的是( )。I.死锁状态一定是不安全状态II.系统资源分配不足和进程推进顺序非法是产生死锁的原因III.资源的有序分配策略可以破坏死锁的循环等待条件IV.采用资源剥夺方法可以解除死锁,还可以采用撤销进程方法解除死锁A.Ⅰ B.Ⅰ、Ⅱ C.Ⅰ、Ⅲ D.Ⅰ、Ⅱ、Ⅲ、Ⅳ
1-3 BAB 4. B D C 5. J1、J3、J26-8 DBB 9. B D 10. A11-15 ACCAD 16-21 BBBCDD
二、综合应用题1、假设在一个处理机上执行5个作业,作业的到达时间和运行时间分别如表所示:分别采用FCFS、SJF和HRRN算法,作业的执行顺序和平均周转时间是多少?
FCFS:先来先服务调度算法执行顺序:A B C D E平均周转时间=(3+6+7+13+16)/5=9SJF:短作业优先算法执行顺序:A C E B D平均周转时间=(3+12+2+17+4)/5=7.6HRRN:高响应比优先调度算法执行顺序:A B C E D平均周转时间=(3+6+7+17+9)/5=8.4
2、设系统中有三类资源A、B和C,5个进程P1,P2,P3,P4和P5,在T0时刻系统状态如下:(1)给出T0时刻各进程的资源需求量NEED。(2)系统是否处于安全状态?如是,则给出进程安全序列。(3)在T1时刻如果进程P2申请1个A类资源、1个B类资源,能否实施分配?为什么?
1.2. 存在安全序列:{P4,P2,P1,P3,P5}3.Request(1,1,0)<=Need(2,2,2)Request(1,1,0)<=Available(2,2,1)系统试着把资源分配给进程P2,并修改数据结构中的数据:存在安全序列:{P4,P2,P1,P3,P5}
}
进程调度的概念  无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
[
编辑本段] 进程有四个基本属性  1.多态性 从诞生、运行,直至消灭。  2.多个不同的进程可以包括相同的程序  3.三种基本状态 它们之间可进行转换  4.并发性 并发执行的进程轮流占用处理器
[
编辑本段] 进程的三种基本状态:  1.等待态:等待某个事件的完成;  2.就绪态:等待系统分配处理器以便运行;  3.运行态:占有处理器正在运行。  运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。  等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。  运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。  就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态
[
编辑本段] 进程调度的分级  高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:  高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行;  低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;  中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
[
编辑本段] 进程调度的方式  进程调度有以下两种基本方式:  非剥夺方式  分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。  剥夺方式  当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。  例如,有三个进程P1、P2、P3先后到达,它们分别需要20、4和2个单位时间运行完毕。  假如它们就按P1、P2、P3的顺序执行,且不可剥夺,则三进程各自的周转时间分别为20、24、  26个单位时间,平均周转时间是23.33个时间单位。  假如用时间片原则的剥夺调度方式,可得到:  可见:P1、P2、P3的周转时间分别为26、10、6个单位时间,平均周转时间为14个单位时间。  衡量进程调度性能的指标有:周转时间、响应时间、CPU-I/O执行期。
[
}

我要回帖

更多关于 进程的三个基本状态如图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信