龙空技术网

操作系统习题解答5

重学IT的老猫 151

前言:

目前姐妹们对“最低松弛度优先调度算法”大致比较重视,姐妹们都需要剖析一些“最低松弛度优先调度算法”的相关文章。那么小编同时在网摘上汇集了一些关于“最低松弛度优先调度算法””的相关内容,希望大家能喜欢,我们一起来学习一下吧!

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

答:时间片应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对相应时间的要求、就绪队列中进程的数目和系统的处理能力。

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

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

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

答:(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。

(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。

(3)长批处理作业,它将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。所以,多级反馈队列调度算法能满足多用户需求。

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

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

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

保证调度算法是另外一种类型的调度算法,它向用户所做成的保证并不是优先运行,而是明确的性能保证,该算法可以做到调度的公平性。一种比较容易实现的性能保证是处理机分配的公平性。如果在系统中有n个相同类型的进程同时运行,为公平起见,须保证每个进程都获得相同的处理机时间1/n。

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

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

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

答:实时系统中中,不但包括周期任务、偶发任务、非周期任务,还包括非实时任务。实时任务要求要满足时限,而非实时任务要求其使其响应时间尽可能的短。多种类型任务的混合,使系统的可调度性分析更加困难。实际上有些实时系统CPU的处理能力并不强,比如一些嵌入式实时系统,这就要求系统尽可能少做一些并发计算任务,留出足够冗余处理实时任务。

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

答:可分为非抢占式和抢占式两种算法。而非抢占式算法又分为非抢占式轮转和优先调度算法;抢占式调度算法又分为基于时钟中断的抢占式优先权和立即抢占式优先权调度算法。

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

答:根据任务的开始截止时间确定的任务优先级调度算法。截止时间越早则优先级越高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的先后排序。

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

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

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

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

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

可重用资源:每一个可重用性资源中的单元只能分配给一个进程使用,不允许多个进程共享。进程在使用可重用性资源时,须按照这样的顺序:请求资源、使用资源、释放资源。系统中每一类可重用资源中的单位数目是相对固定的,进程在运行期间不能创建也不能删除它。

可消耗性资源:每一类可消耗性资源的单元数目在进程运行期间是可以不断变化的,有时它可以有许多,有时可能为0。进程在运行过程中,可以不断创造可消耗资源的单元,将它们放入该资源类的缓冲区中,以增加该资源类的单元数目。进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自己的消耗,不再将它们返回给该资源类中。

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

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

第二种协议是对第一种协议的改进,它允许一个进程只获得允许初期所需的资源后,便开始运行。进程运行过程中再逐步释放已分配给自己的,且已使用完毕的全部资源,然后再请求新的所需资源。如此便可提高设备的利用率,还可以减少进程发生饥饿的概率。

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

答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。

产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。

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

答:解决死锁的四种方法即预防、避免、检测和解除死锁中,预防死锁最容易实现避免死锁使资源的利用率最高。

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

答:(1)摈弃“请求和保持”条件,就是如果系统有足够资源,便一次性把进程需要的所有资源分配给它;

(2)摈弃“不剥夺”条件,就是已经拥有资源的进程,当它提出新资源请求而不能立即满足时,必须释放它已保持的所有资源,待以后需要时再重新申请;

(3)摈弃“环路等待”条件,就是将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增的次序提出。

标签: #最低松弛度优先调度算法