操作系统的原理与应用答案 孔宪君 联系客服

发布时间 : 星期二 文章操作系统的原理与应用答案 孔宪君更新完毕开始阅读d5e24061a45177232f60a2d7

操作系统复习思考题答案

1.常用的调度算法有那些?在抢占调度方式中,抢占的原则是什么? 先来先服务调度算法、最高响应比优先算法、时间片轮转法、优先级算法、多级队列算法等。

优先级原则和时间片原则。

2.请解释什么是先来先服务算法、时间片轮转法和优先级算法?有什么用途?

(1)先来先服务调度算法,总是把处理机分配给最先进入就绪队列的进程或线程。该算法适合于进程调度、线程调度、任务调度、作业调度和其它资源调度等。 (2)时间片轮转法调度算法是专门为分时系统而设计的,时间片轮转算法主要用于微观调度。时间片轮转法属于抢占方式算法,该算法适合于线程调度、进程调度或任务调度。

(3)优先级算法(Highest Priority First---HPF)总是把处理机分配给就绪队列中具有最高优先级的进程,优先级算法即人们经常讲的“急事先办”,需要考虑,以下因素,如进程时间极限、内存要求、打开文件的数量等。该算法是常用调度算法,适合于进程调度、线程调度、任务调度、作用调度和资源调度等。

3.多级队列算法的基本思想是什么?

多级队列算法(Multiple—level Queue,MLQ)是先来先服务算法、时间片轮转算法和优先级算法的综合。其基本思想是将就绪队列分成多个独立队列,根据进程的某些属性确定进程的优先级,如系统进程、用户交互进程、I/O进程、计算进程等。相同优先级的进程按FIFO原则排成一个队列,按时间片轮转算法分派CPU。不同队列可有不同的优先级、不同的时间片长度。在多级队列算法中,优先调度优先级高的队列,当优先级高的队列为空时,才可以调度下一级队列,依次类推,同一队列按时间片轮转算法分派CPU。

4.在批处理系统、分时系统和实时系统中,各采用哪几种进程调度算法? 在批处理系统中,可采用先来先服务调度算法、短作业优先调度算法、非抢占式优先级调度算法、高响应比优先调度算法等作业调度算法;

对于分时系统和实时系统的进程调度,则可采用时间片轮转调度算法和优先级调度算法。

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

(1)静态优先级是指在创建进程时确定进程优先级,并一直保持到进程结束,即“终生”不变。影响进程的静态优先级的主要因素包括进程的资源需要和用户要求。

(2)动态优先级是指在创建进程时赋予进程的优先级,在进程的生命内优先级可以动态的变化,在进程运行过程中可以自动改变优先级,以便获得更好的调动性能,影响进程动态优先权变化的因素包括进程等待时间和占用处理机时间等,一

25

操作系统复习思考题答案

个进程在就绪队列中等待的时间越长,它的优先级会越高。

6.何谓死锁?产生死锁的原因是什么?

在多个进程并发执行中,某进程申请的资源被其他等待进程占有,如果该等待进程永远无法改变其等待状态,这种情况称之为死锁。

产生死锁的原因是:①资源不足,引起资源竞争;②进程推进顺序不合理。 7.什么是产生死锁的必要条件?

⑴互斥条件。进程要求对所分配的资源进行排他性使用,即在一段时间内某资源仅为一个进程所占用。

⑵不剥夺条件。进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放。

⑶请求和保持条件。进程每次申请所需要的一部分资源,在等待新资源的同时,进程继续占有已分配到的资源。

⑷循环等待条件。存在进程资源的循环等待链,链中的每一个进程已获得资源,同时被链中的下一个进程所请求。

8.预防死锁的有几种方法? (1)摒弃请求和保持条件 (2)摒弃不剥夺条件 (3)摒弃环路等待条件 (4)摒弃互斥条件

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

在解决死锁问题的四种方法中,死锁预防最容易实现,而死锁的检测和解除方法可使系统的资源利用率最高。

10.银行家算法主要思路是什么?它能够用来解决实际中的死锁问题吗?为什么?

银行家算法是指银行家在向顾客贷款时如何保证资金的安全。假设一个银行家把他的流动资金贷给若干顾客时,只要存在顾客使用资金的安全序列,银行家的资金就是安全的,银行家需要一个算法保证借出去的资金可在有限时间内收回。

银行家算法具有较好的理论意义,但在实际系统中难以实施,实施代价太大。其原因是难以预见获得进程申请的最大资源数,进程运行过程的个数是不断变化的。所以银行家算法难以用来解决实际中的死锁问题。

11.如何对资源分配图化简?

通过对进程请求的资源进行分析,若有可用资源时,可使其请求边改为分配边。当某一进程全部是分配边没有请求边时,可以认为该进程在一有限时间内完成并将释放所有资源,因而将所有指向该进程的分配边“抹去”,成为孤立结点。

26

操作系统复习思考题答案

这种将一个资源分配图上各个结点逐个化为孤立结点的过程称之为简化过程。

12.什么是鸵鸟算法?有实用价值吗?

(1)鸵鸟算法就是像鸵鸟一样对死锁视而你见的算法。

(2)从数学的角度看,不管花费多大的代价也要防止死锁,从工程角度看,需要考虑其它因素一起决策,如死锁的频率,死锁的后果和危害,如果平均一年发生一次死锁,不管花费多大的代价也要防止死锁的决策就是错误的,如果平均5min发生一次死锁,不管花费多大代价也要防止死锁的决策就是正确的。

13.为什么说多级反馈队列调度算法能较好地满足各种类型用户的需要? 多级反馈队列调度算法适合于该算法适合于线程调度、进程调度或任务调度。多级反馈队列调度算法是自适应算法,能交好地满足各类型用户的需要。对终端型用户而言,由于他们所提到的大多属于交互型进程,进程通常比较短小;对于短进程用户而言,在第一个队列中执行一个时间片即可完成;对于稍长的进程,通常也只需要在前第几个队列中各执行几个时间片即可完成,其周转时间仍然较短;对于长进程而言,长进程将依次在第1,2,??,直到第n个队列中运行,然后再按轮转方式运行,用户不必担心其进程长期得不到处理。

14.将一组进程按优先级分为4类,如图4-11所示,各类进程之间采用优先级调度,而同类进程采用时间片轮转法调度。请简述P1、P2、P3、P4、P5、P6、P7、P8进程的调度过程。

图4-11优先级示意图

按优先级原则,调度优先级为4的P1和P2,进程P1和P2按时间片轮转法分派CPU,待进程P1和P2执行完毕;再调度优先级为3的P3、P4、P5,进程P3、P4、P5按时间片轮转法分派CPU,待进程 P3、P4、P5执行完毕;再调度优先级为2的P6、P7、P8,进程P6、P7、P8按时间片轮转法分派CPU,待进程P6、P7、P8执行完毕,调度完毕。

15.若系统运行中出现如表4-8所示的资源分配情况,该系统是否安全?如果进程P2此时提出资源申请(1,2,2,2),系统能否将资源分配给它?为什么?

27

操作系统复习思考题答案

资源情况 进程 P0 P1 P2 P3 P4 0 0 3 2 1 0 0 0 1 3 5 4(2576) 0 3 3 2 0 0 1 4 0 0 1 2 1 7 5 0 2 3 5 6(1134) 0 6 5 2 0 6 5 6 1 6 2 2(0400) Allocation Need Available 表4-8资源分配情况

找到一个安全序列{ P0, P3,P4,P1,P2 },系统是安全的。

进程P2此时提出资源申请(1,2,2,2),不能找到安全序列,所以系统进入不安全状态,P2的请求不能分配。

16.一台计算机有8台磁带机,他们由N个进程竞争使用,每个进程可能需要3台磁带机。请问N为多少时,系统没有死锁危险,并说明原因。

N=3、N=2、N=1时,系统没有死锁危险。

原因:当N=4时,如果每个进程已经分配2台磁带机时,不能找到安全序列,系统有死锁危险。

17.试化简资源分配图,并利用死锁定理给出相应的结论。

图4-12资源分配图

①资源分配图不能化简,死锁。 ②资源分配图可以化简,没有死锁险。

18.如何理解进程共享资源的三个层次(互斥、死锁和饥饿)?

多个进程共享资源的程度可以分成以下三个层次:互斥、死锁和饥饿。互斥是指多个相关进程中只允许一个进程访问临界资源,这是正确使用资源的最基本要求。防止死锁是指避免多个进程互不相让,都得不到足够的资源的情况出现,从而保证系统功能的正常运行。避免饥饿是指避免某些进程一直得不到资源或得到资源的概率很小,从而保障系统内资源使用的公平性。

28