北航操作系统课程-20200402课堂小测-调度算法

2020-04-02-课堂小测-调度算法


北京航空航天大学计算机学院-2020春操作系统课程
以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限,如有错误敬请批评指正。


1 以下关于时间片轮转算法说法不正确的是:(单选)

A. 如果时间片设置过长,则退化为FCFS算法

B. 如果时间片设置过短,则退化为SJF算法

C. 为了控制系统响应时间,需要根据系统中进程数量选择时间片大小

D. 用户可以在一个时间片没有用完的情况下主动让出CPU

答:B

时间片设置过长,则几乎每一个作业都在一个时间片内完整执行,其效果相当于FCFS,A正确。时间片设置过短不会退化为SJF,SJF是短作业优先,在过短的时间片下短作业也会被切分得太碎,上下文切换得开销过大,B错误。为了控制响应时间,响应时间 = 进程数 * 时间片,因此需要根据进程数选择时间片的大小,C正确。用户进程可以在时间片没有用完得情况下主动让出CPU,例如IO类型进程等待IO的时间会转为阻塞状态让出CPU,D正确。


2 以下关于多级反馈队列说法正确的是:(多选)

A. 根据进程优先级设置多个就绪队列

B. 优先级越低时间片越长

C. 仅当高优先级队列为空时才会调度低优先级队列中的进程

D. 一个进程在高优先级队列中没能在一个时间片中完成执行,则会被降低到低优先级队列末尾

答:A、B、C、D

多级反馈队列的设置是根据进程优先级设置多个就绪队列,A正确。为了避免出现饿死的现象,将低优先级的进程设置较长的时间片,保证长作业或IO不密集的作业能够尽可能减少上下文切换带来的损失,B正确。仅当高优先级队列为空时才调度低优先级队列中的进程,C正确。高优先级队列中的进程没有在时间片内执行完,则说明改作业无法适应当前优先级的较短的时间片,会被降低优先级,排在低优先级队列的末尾,D正确。


3 以下关于多级反馈队列算法说法不正确的是:(单选)

A. 新到的高优先级进程会抢夺正在执行的低优先级进程的CPU

B. IO型进程通常应该被赋予更高的优先级,以便提高系统的响应速度

C. 一个进程等待IO时,会被放到低优先级的就绪队列中

D. CPU处理为主的进程,在IO完成后,放回原先IO请求时离开的队列

答:C

在多级反馈队列算法中,高优先级进程会抢夺正在执行的低优先级进程的CPU,被抢占的进程会被排在原队列的末尾,A正确。IO型进程通常应该被赋予更高的优先级,减少等待时间尽快执行,提高系统响应速度,B正确。在一个进程等待IO时,该进程会变为阻塞状态而非就绪状态,因此不会加进就绪队列,待IO结束后会重新加入原来的队列,C错误。计算型进程在IO完成后都会放回原来的队列末尾,以避免每次放回高优先级队列再降回低优先级队列中间的上下文切换开销,D正确。


4 发生优先级倒置现象时:(单选)

A. 高优先级进程会抢夺低优先级进程所持有的资源

B. 高优先级进程会被低优先级进程延迟或阻塞

C. 采用优先级置顶方法,就是将高优先级进程的优先级调整到最高

D. 采用优先级继承方法,就是让高优先级进程继承原先低优先级进程的优先级,以便低优先级进程尽快推进

答:B

优先级倒置的情况指的是低优先级进程占用了资源,但让出了处理机,高优先级进程想访问资源但被低优先级进程占用,遭到了阻塞或延迟,B正确。此时高优先级进程不能直接抢夺资源,这样会造成资源访问顺序出错,影响执行结果,A错误。采用优先级置顶的方法,是将低优先级进程的优先级调高,让它尽快释放被占用的资源,而非调整高优先级进程的优先级,C错误。采用优先级继承的方法,是让占用资源的低优先级进程继承高优先级进程的优先级,也是为了让其尽快释放资源,反之让高优先级进程继承低优先级进程的优先级对于低优先级进程的推进没有帮助,D错误。


5 以下说法正确的是:(单选)

A. 实时系统是指进程调度和执行非常快的系统

B. 实时系统对系统响应有确定的时间约束

C. 实时系统中不允许关闭中断

D. 硬实时系统可以偶尔不满足系统响应的时间约束

答:B

实时系统不是单纯指进程调度和执行非常快的系统,很多非实时系统也可以做到进程调度和执行非常快,实时系统指的是时间起主导作用,任务必须在确定的时间内给予响应的系统,A错误。实时系统对系统响应有确定的时间要求,B正确。实时系统是允许关闭中断的,只不过要求关中断时间尽可能地短,C错误。硬实时系统要求系统绝对满足截止时间,否则会产生灾难性后果,软实时系统可以有偶尔不满足截止时间,D错误。


6 以下关于单调速率调度算法说法正确的是:(单选)

A. 当进程数较多的时候,会导致CPU利用率下降到70%左右

B. 当所有进程请求的CPU利用率之和大于70%时,不存在满足所有进程实时性约束的调度方案

C. 当所有进程请求的CPU利用率之和小于69%时,一定存在满足所有进程实时性约束的调度方案

D. CPU利用率越高的进程越被优先调度

答:C

单调速率调度算法是一种实时系统静态优先级调度算法,是单处理机下的最优静态调度算法。其核心在于给出了,当 ∑ i = 1 n C i / T i ≤ n ( 2 n − 1 ) , ( n 为 进 程 数 ) \sum_{i=1}^{n} C_i/T_i \leq n(\sqrt[n]2 - 1), (n为进程数) i=1nCi/Tin(n2 1),(n) 时,该任务集合一定可被调度。虽然说利用率和进程数存在正相关的关系,但并不意味着任务数多之后CPU利用率下降,在静态调度中任务是固定的,CPU利用率也是固定的,不会因为进程数的改变而改变,A错误。CPU利用率大于70%时也可以存在满足实时性约束的调度方案,一来任务数没有给定,二来上文公式的约束是充分条件而不必要,不满足该条件也有可能存在满足实时性约束的调度方案,B错误。由于上文公式右侧n的函数,当n趋于无穷大时该值趋于69%,该函数的下界是69%,因此当所有进程CPU利用率之和小于69%时,无论进程数是多少,必然存在满足实时性约束的的调度方案,C正确。单个进程CPU利用率和其被调度的优先级没有直接关系,D错误。


7 以下说法正确的是:(单选)

A. EDF算法比RMS算法更优,因为EDF算法有更宽松的可调度条件

B. EDF算法是动态优先级调度算法,进程的优先级会随着时间推移发生变化

C. RMS是静态优先级调度算法,优先级由用户事先指定

D. RMS是静态优先级调度算法,所以不进行抢占式调度

答:B

EDF是动态优先级调度算法,由于其动态特性确实相较RMS有着更宽松的可调度条件,但是并不能说因此EDF就比RMS更优,算法的优劣要放在实际情况中去比较,几乎没有哪个算法永远比另一个算法更优,评判算法优劣的标准也有很多重,A错误。EDF是动态优先级调度算法,其特点就在于进程的优先级会随着时间推移发生变化,B正确。RMS是静态优先级算法,指的是任务集到来之后系统事先计算好各个进程的优先级和抢占关系,并不是说优先级由用户指定,也并非不抢占,C、D错误。


8 一个单处理机实时系统中有两个作业J1、J2,如下表所示,采用EDF算法调度,在第109时刻,运行在CPU上的进程是:(单选)
作业 Ji起始时间 Si执行时间 Ci周期 Pi截止时间 Di
J1051010
J20122525

A. 进程J1

B. 进程J2

C. 无进程执行

答:B

在这里插入图片描述

两个作业在EDF下动态调整优先级的执行和抢占关系如上图,可以看出两个作业执行特点共同的周期是50,在下一个50时间内重复上图的执行。第109时刻在第三个50时间周期内的第9时刻,在图中可以看出是J2在执行。


9 以下说法不正确的是:(单选)

A. 多处理机调度更加注重系统整体运行效率,而不是个别处理器的利用率

B. ASMP系统中各个处理器地位不同,可以给各个处理器划分固定的任务

C. 自调度就是每个处理器分别维护就绪队列,各自执行调度算法

D. 组成调度有利于减少相互合作的线程由于未被同时调度而引起的阻塞

答:C

多处理机调度更加注重系统整体运行效率,而不是个别处理器的利用率,A正确。ASMP,非对称式多处理机系统,系统中各个处理器地位不同,每个处理器访问的资源、时延都有差别,可以给各个处理器划分相对固定的任务,B正确。自调度指的是整个系统采用一个公共就绪队列,每个处理机都可以从队列中选择适当进程来执行,并不是每个处理器分别维护自己的就绪队列,C错误。组成调度是将一个进程中的一组线程,每次同时分派到一组处理机上执行,在剥夺处理机时也同时对这一组线程进行相同剥夺操作。通常这样的一组线程在应用逻辑上相互合作,成组调度提高了这些线程的执行并行度,有利于减少阻塞和加快推进速度,最终提高系统吞吐量,D正确。


10 以下关于Linux下CFS调度器说法正确的是:(多选)

A. 采用虚拟运行时间跟踪进程已经使用的CPU时间

B. 虚拟运行时间与进程权重成反比,与进程实际执行时间成正比

C. 采用红黑树组织就绪进程

D. 每次调度时选择虚拟运行时间最小的进程开始运行

E. CFS不再区分交互式进程,而将所有的进程统一对待,在既定的时间内每个进程都可获得公平的CPU占用时间

F. CFS调度器是由Con Kolivas实现的

答:A、B、C、D、E

从内核版本2.6.23开始,Linux一直使用CFS调度器。CFS采用虚拟运行时间vt,进程的 vt 与其实际的运行时间成正比,与其权重成反比,A、B正确。CFS使用红黑树数据结构维护就绪的进程,进程按照虚拟运行时间Vt排序,每次选择最左侧(vt最小)的进程执行,C、D正确。CFS使用完全公平的思想,不再跟踪进程的休眠时间,也不再区分交互式进程,其将所有的进程统一对待,在既定的时间内每个进程都可获得公平的CPU占用时间,E正确。CFS并不是由Con Kolivas实现的,F错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值