操作系统第三章练习题

第一部分 教材习题(P118)

高级调度与低级调度的主要任务是什么?为什么要引入中级调度?

(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。

(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。

(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。

处理机调度算法的共同目标是什么?批处理系统的调度目标又是什么?

共同目标:资源利用率,公平性,平衡性,策略强制执行。 

批处理系统的调度目标:平均周转时间短,系统吞吐量高,处理机利用率高

何谓作业、作业步和作业流?

作业包含通常的程序和数据,还配有作业说明书。系统根据该说明书对程序的运行进行控制。批处理系统中是以作业为基本单位从外存调入内存。

作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。

作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。

根据该说明书对程序的运行进行控制。批处理系统中是以作业为基本单位从外存调入内存。作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。

在什么情况下需要使用作业控制块JCB?其中包含了哪些内容?

为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块。在JCB中所包含的内容因系统而异,通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU繁忙型、I/O繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。

在作业调度中应如何确定接纳多少个作业和接纳哪些作业?

作业调度每次接纳进入内存的作业数,取决于多道程序度。应将哪些作业从外存调入内
存,取决于采用的调度算法。最简单的是先来服务调度算法,较常用的是短作业优先调度算
法和基于作业优先级的调度算法。
 

为什么要引入高响应比优先调度算法?它有何优点?

高响应比优先调度算法的基本思想是把CPU分配给就绪队列中响应比最高的进程。既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。

该算法中的响应比是指作业等待时间与运行比值,响应比公式定义如下:

响应比 =(等待时间+要求服务时间)/ 要求服务时间,即RR=(w+s)/s=1+w/s,因此响应比一定是大于1的。

短作业与先后次序的兼顾,且不会使长作业长期得不到服务

响应比计算系统开销,增加系统开销,适用于批处理系统

试说明低级调度的主要功能。

(1)保存处理机的现场信息(2)按某种算法选取进程(3)把处理机分配给进程。

在抢占调度方式中,抢占的原则是什么?

【解】剥夺原则有:

(1)时间片原则  各进程按时间片运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。这种原则适用于分时系统、大多数实时系统,以及要求较高的批处理系统。

(2)优先权原则  通常是对一些重要的和紧急的作业赋予较高的优先权。当这种作业到达时,如果其优先权比正在执行进程的优先权高,便停止正在执行的进程,将处理机分配给优先权高的进程,使之执行。

(3)短作业(进程)优先原则  当新到达的作业(进程)比正在执行的作业(进程)明显地短时,将剥夺长作业(进程)的执行,将处理机分配给短作业(进程),使之优先执行。

选择调度方式和调度算法时,应遵循的准则是什么?

应遵循的准则有

(1)面向用户的准则:周转时间短,响应时间快,截止时间的保证,优先权准则。

(2)面向系统的准则:系统吞吐量高,处理机利用率好,各类资源的平衡利用。

在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?

【解】

(1)批处理系统:FCFS算法、最小优先数优先算法、抢占式最小优先数优先算法

(2)分时系统:可剥夺调度、轮转调度

(3)实时系统:时间片轮转调度算法、非抢占优先权调度算法、基于时钟中断抢占的优先权调度算法、立即抢占的优先权调度。

在选择调度方式和调度算法时,应遵循的准则是什么?

面向用户应遵循的准则是:(1) 周转时间短。(2) 响应时间快。(3) 截止时间的保证。(4) 优先权准则。

面向系统应遵循的准则是:(1) 系统吞吐量高。(2) 处置机利用率好。(3) 各类资源的平衡利用。

在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?

批处理系统常用调度算法:①、先来先服务:FCFS②、最短作业优先③、最短剩余时间优先④、响应比最高者优先分时系统调度算法:①、轮转调度②、优先级调度③、多级队列调度④、彩票调度实时系统调度算法:①、单比率调度②、限期调度③、最少裕度法

何谓静态和动态优先权?确定静态优先权的依据是什么?

【解】

静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。动态优先权是指,在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。

确定静态优先权的依据是:

(1)进程类型,通常系统进程的优先权高于一般用户进程的优先权。

(2)进程对资源的需要。

(3)用户要求,用户进程的紧迫程度及用户所付费用的多少来确定优先权的。

试比较FCFS和SPF两种进程调度算法。

【解】

FCFS算法按照作业提交或进程变为就绪状态的先后次序,分派CPU。当前作业或进程占有CPU,直到执行完或阻塞,才让出CPU。在作业或进程唤醒后,并不立即恢复执行,通常等到当前作业或进程让出CPU。FCFS比较有利于长作业,而不利于短作业;有利于CPU繁忙的作业,而不利于I/O繁忙的作业。

SPF有利于短进程调度,是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度。比FCFS改善了平均周转时间和平均带权周转时间,缩短了作业的等待时间,提高了系统的吞吐量。但SPF有其不容忽视的缺点:该算法对长作业不利;完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理;用户可能会有意无意地干扰作业的运行时间,致使该算法不一定能真正做到短作业优先调度。

在时间片轮转法中,应如何确定时间片的大小?

答:在时间片轮转算法中,时间片的大小对系统性能有很大的影响,如选择很小的时间片将有利于短作业,因为它能较快地完成,但会频繁地发生中断、进程上下文的切换,从而增加系统的开销;反之,如选择太长的时间片,使得每个进程都能在一个时间片内完成, 时间片轮转算法便退化为FCFS算法,无法满足交互式用户的需求。一个较为可取的大小是,时间片略大于一-次典型的交互所需要的时间,这样可使大多数进程在一个时间片内完成而又不至于使时间片轮转算法退化为FCFS算法。
选择时间片大小时, -般应考虑三个因素:系统对响应时间的要求.就绪队列中进程的数目和系统的处理能力。

通过一个例子来说明通常的优先级调度算法不能适用于实时系统?

实时系统的调度算法很多,主要是基于任务的开始截止时间和任务紧急/松弛程度的任务优先级调度算法,通常的优先级调度算法不能满足实时系统的调度实时性要求而不适用。

为什么说多级反馈队列调度算法能较好地满足各方面用户的需要?

【解】

(1)对于终端型用户来说,他们提交的大多属于较小的交互型作业,系统只要能使这些作业(进程)在第一队列所规定的时间片内完成,便可使终端型作业用户都感到满意。

(2)对短批处理作业用户来说,在第一队列中执行一个时间片或至多只需在第二队列和第三队列中各执行一个时间片即可完成。

(3)对长批处理作业用户来说,只要将作业依次在第1,2,……,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。

为什么说传统的几种调度算法都不能算是公平调度算法?

以上介绍的几种调度算法所保证的只是优先运行,如优先级算法是优先级最高的作业优先运行,但并不保证作业占用了多少处理机时间。另外也未考虑到调度的公平性。

保证调度算法是如何做到调度的公平性的?

保证调度算法是另外一种类型的调度算法,它向用户所做出的保证并不是优先运行,而是明确的性能保证,该算法可以做到调度的公平性。

一种比较容易实现的性能保证是处理机分配的公平性。如果在系统中有n个相同类型的进程同时运行,为公平起见,须保证每个进程都获得相同的处理机时间1/n。

公平分享调度算法又是如何做到调度的公平性的?

在公平分享调度算法中,调度的公平性主要是针对用户而言,使所有用户能获得相同的处理机时间,或所要求的时间比例。

为什么在实时系统中,要求系统(尤其是CPU)具有较强的处理能力?

【解】

在实时系统中都存在着若干个实时进程或任务,它们用来反应或控制某个(些)外部事件,往往带有某种程度的紧迫性,因而对实时系统中的调度提出了某些特殊要求。

若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理,从而导致发生难以预料的后果。

按调度方式可将实时调度算法分为哪几种?

【解】

按调度方式可将实时调度算法分为两大类四小类:

(1)非抢占式调度算法:①非抢占式轮转调度算法;②非抢占式优先调度算法;

(2)抢占式调度算法:①基于时钟中断的抢占式优先权调度算法;②立即抢占的优先权调度算法。

什么是最早截止时间优先调度算法?举例说明之。

【解】

在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的早晚排序,截止时间愈早的优先级愈高,在队列中排列愈靠前,调度程序在选择任务时,总是选择就绪队列中的第一个任务,为之分配处理机,使之投入运行。

例:四个非周期任务,它们先后到达。系统首先调度任务1执行,在任务1执行期间,任务2、3又先后到达。由于任务3的开始截止时间早于任务2,系统在任务1后将调度任务3执行。在此期间又到达作业4,其开始截止时间仍是早于任务2的,在任务3执行完后,系统又调度任务4的执行,最后才调度任务2执行。

什么是最低松弛度优先调度算法?举例说明之。

该算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度愈高,为该任务所赋予的优先级就愈高,以使之优先执行。例如,一个任务在200ms时必须完成,而它本身所需的运行时间就有100ms,因此,调度程序必须在100ms之前调度执行,该任务的紧急程度(松弛程度)为100ms。又如,另一任务在400ms时必须完成,它本身需要运行150ms,则其松弛程度为250ms。

何谓“优先级倒置”现象,可采取什么方法来解决?

当前0S广泛采用优先级调度算法和抢占方式,然而在系统中存在着影响进程运行的资源而可能产生“优先级倒置”的现象,即高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞。

试分别说明可重用性资源和可消耗性资源的性质。

可重用性资源是一种可供用户重复使用多次的资源,它具有如下性质:

(1) 每一个可重用性资源中的单元只能分配给一个进程使用,不允许多个进程共享。

(2) 进程在使用可重用性资源时,须按照这样的顺序:① 请求资源。如果请求资源失败,请求进程将会被阻塞或循环等待。② 使用资源。进程对资源进行操作,如用打印机进行打印;③ 释放资源。当进程使用完后自己释放资源。

(3) 系统中每一类可重用性资源中的单元数目是相对固定的,进程在运行期间既不能创建也不能删除它。

可消耗性资源又称为临时性资源,它是在进程运行期间,由进程动态地创建和消耗的,它具有如下性质:

(1)每一类可消耗性资源的单元数目在进程运行期间是可以不断变化的,有时它可以有许多,有时可能为0。

(2) 进程在运行过程中,可以不断地创造可消耗性资源的单元,将它们放入该资源类的缓冲区中,以增加该资源类的单元数目。③ 进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自己的消耗,不再将它们返回给该资源类中。

试举例说明竞争不可抢占资源所引起的死锁。

例如,系统中有两个进程P1和P2,它们都准备写两个文件F1和F2,而这两者都属于可重用和不可抢占性资源。进程P1先打开F1,然后再打开文件F2;进程P2先打开文件F2,后打开F1,下面示出了这段代码。  P1  

P2

...       

  ... 

  Open(f1,w);    Open(f2,w);

  Open(f2,w); Open(f1,w); 

两个进程P1和P2在并发执行时,如果P1先打开F1和F2,然后P2才

去打开F1(或F2),由于文件F1(F2)已被P1打开,故P2会被阻塞。当P1写完文件F1(或F2)而关闭F1(F2)时,P2会由阻塞状态转为就绪状态,被调度执行后重新打开文件F1(或F2)。在这种情况下,P1和P2都能正常运行下去。若P2先打开F1和F2,然后P1才去打开F1(或F2),P1和P2同样也可以正常运行下去。  

但如果在P1打开F1的同时,P2去打开F2,每个进程都占有一个打开

的文件,此时就可能出现问题。因为当P1试图去打开F2,而P2试图去打开F1时,这两个进程都会因文件已被打开而阻塞,它们希望对方关闭自己所需要的文件,但谁也无法运行,因此这两个进程将会无限期地等待下去,而形成死锁。

为了破坏“请求和保持”条件而提出了两种协议,试比较这两种协议。

第一种协议在所有进程开始运行之前,必须一次性地申请其在整个运行过程中所需的全部资源,并且在分配资源时,只要有一种资源不能满足进程的要求,即使其它所需的各种资源都空闲也不分配给该进程,而让该进程等待。因此有资源被严重浪费、进程经常会发生饥饿现象等缺点。  

第二种协议是对第一种协议的改进,它允许一个进程只获得运行初期所

需的资源后,便开始运行。进程运行过程中再逐步释放已分配给自己的,且已用毕的全部资源,然后再请求新的所需资源。如此便可提高设备的利用率,还可减少进程发生饥饿的概率。

何谓死锁?产生死锁的原因和必要条件是什么?

【解】

所谓死锁,是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。

产生死锁的原因:

(1)竞争资源,当系统中供多个进程所共享的资源,不足以同时满足它们的需要时,引起它们对资源的竞争而产生死锁;

(2)进程推进顺序非法,进程在运行过程中,请求和释放资源的顺序不当,导致进程死锁。

产生死锁的必要条件:

(2)互斥条件

进程对所分配到的资源进行排他性使用。如果此时还有其他进程请求该资源,请求者只能阻塞,直到占有该资源的进程释放该资源。

(2)请求和保持条件

进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其他进程占有,此时请求进程阻塞,但请求进程又对已经获得的其他资源保持不放。

(3)不剥夺条件

进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完后由自己释放。

(4)环路等待条件

在发生死锁时,必然存在一个进程——资源的环形链。

在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高?

【解】

(1)预防死锁的方法最容易实现;

(2)检测死锁和解除死锁的方法使资源利用率最高。

请详细说明可通过哪些途径预防死锁?

【解】

可以通过:

(1)摒弃“请求和保持”条件,系统要求所有进程要一次性地申请在整个运行过程所需的全部资源。如系统有足够的资源分配给进程,便一次性的把其所需要的所有资源分配给该进程。这样,该进程在整个运行期间,便不会再提出资源要求,从而摒弃了请求条件。但在分配时,只要有一种资源要求得不到满足,则即使是已有的其他资源,也全部不分配给该进程,而让该进程等待。这样,由于等待期间的进程未占有任何资源,因而也摒弃了保持条件,从而可以避免发生死锁。

(2)摒弃“不剥夺”条件,进程是在需要资源时才提出请求,这样,一个已经保持了某些资源的进程,当它在提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请。这意味着进程已经占有的资源,在运行过程中可能会暂时释放,也可认为是被剥夺了,从而摒弃了“不剥夺条件”。

(3)摒弃“环路等待”条件,系统将所有资源按类型进行线性排队,并赋予不同的序号。所有进程对资源的请求必须严格按资源序号递增的次序提出,这样,在所形成的资源分配图中,不可能再出现环路,从而摒弃了“环路等待”条件。

在银行家算法的例子中,如果P0发出的请求向量由Request(0,2,0)(P111(4))改为Request(0,1,0),问系统可否将资源分配给它?

答:

能。

request0(0,1,0)≤need0(7,4,3);request0(0,1,0)≤available(2,3,0);

系统暂时先假定可为P0分配资源,并修改有关数据,如下所示:

            allocation     need         available

             A  B  C       A  B  C        A  B  C

      P0   0  2  0       7  3  3        2  2  0

      P1   3  0  2       0  2  0

      P2   3  0  2       6  0  0

      P3   2  1  1       0  1  1

      P4   0  0  2       4  3  1

存在一个安全序列{P1,P3,P0,P2,P4},故系统是安全的,可以分配资源。

试说明对称MPS中的进程分配方式。

【解】

对称MPS中所有的处理器都是相同的,把它们作为一个处理器池使用,任何一个进程分配给池中的任何一个处理器处理,可使用两种进程分配方式:

(1)静态分配方式,指一个进程从开始执行直至其完成,都被固定地分配到一个处理器上去执行。

(2)动态分配方式,在系统中仅设置一个公共的就绪队列,所有就绪进程都被放在该队列中,一个进程在每次被调度执行时,都是随机地被分配到在当时是空闲的某一处理器上去执行。

何谓自调度方式?其主要优缺点是什么?

【解】

由单处理机环境下的调度方式演变而来,在系统中设置有一个公共的进程或线程就绪队列,所有的处理器在空闲时,都可自己到该队列中取得一进程(或线程)来运行。

其优点是:(1)容易将单处理机环境下的调度机制移植到多处理机系统中;(2)只要公共就绪队列不空,就不会出现处理机空闲的情况,也不会发生处理器忙闲不均的现象。

缺点是:(1)瓶颈问题:多个处理器互斥地共享访问一个就绪队列,易造成系统瓶颈。

(2)低效性:由于一个线程在其整个生命期中,可能要多次更换处理器,因而使高速缓存的使用效率很低。

(3)线程切换频繁:合作线程因未获得处理器运行而阻塞,进而被切换下来。

何谓成组调度方式?其主要优点是什么?

【解】

所谓成组调度方式,是指将一个进程中的一组线程,分配到一组处理器上去执行。

主要优点:如果一组相互合作的进程或线程,能并行执行,则可有效地减少线(进)程阻塞情况的发生,从而可以减少线程的切换,使系统性能得到改善;此外,由于显著地减少了调度频率,从而减少调度开销。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执沐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值