操作系统复习题 联系客服

发布时间 : 星期一 文章操作系统复习题更新完毕开始阅读9ee0f7270066f5335a812145

B.抢占式调度中采用动态优先权算法 C.分时处理中的时间片轮转调度算法 D.非抢占式调度中采用FIFO算法

9.在采用动态优先权的调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和_A___调度算法相同。 A.先来先服务 B.短作业优先 C.时间片轮转 D.长作业优先

10.设在内存中有P1,P2两道程序,并按照P1,P2的次序运行,其内部计算和I/O操作的时间分别如下:

P1:先计算60ms,然后I/O80ms,最后再计算20ms P2:先计算120ms,然后I/O40ms,最后再计算40ms 调度程序的执行时间不计,在多道批处理系统中,完成这两道程序比单道批处理系统节约的时间是_A____.

A. 100ms B. 120ms C.160ms D. 200ms 银行家算法之例

设系统中有5个进程{P0,P1,P2,P3,P4}和3类资源{A,B,C},各类资源总数分别为10、5、7,在T0时刻的资源分配情况如下表所示: P0 P1 P2 P3 P4 Max A B C 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 Need A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1 Available A B C 3 3 2

(1)T0时刻系统是否安全,为什么?

(2)P1发出请求向量Request1(1,0,2),分析系统是否可同意请求。 (3)P4发出请求向量Request4(3,3,0),分析系统是否可同意请求。 (4)P0发出请求向量Request0(0,2,0),分析系统是否可同意请求。 (5)在(4)中,若P0发出请求向量Request0(0,1,0),系统是否可同意请求。

回答问题

T0时刻系统是否安全,为什么? P0 P1 P2 P3 P4

Max A B C 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 Need A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1 Available A B C 3 3 2 P1 P3 P4 P0 P2 Work Work+Allocation Finish A B C A B C 3 3 2 5 3 2 7 4 3 7 4 5 7 5 5 5 3 2 7 4 3 7 4 5 7 5 5 10 5 7 true true true true true

(2)P1发出请求向量Request1(1,0,2),按银行家算法,系统是否同意请求? Request1(1,0,2)≤Need1(1,2,2) Request1(1,0,2)≤Available(3,3,2)

系统先假定可为P1分配资源,并修改Available, Allocation1和Need1向量,由此形成资源变化情况如图 P0 P1 P2 P3 P4 Max A B C 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C Need A B C Available A B C 0 1 0 7 4 3 3 3 2 2 0 0 1 2 2 (2 3 0) (3 0 2) (0 2 0) 3 0 2 6 0 0 2 1 1 0 1 1 0 0 2 4 3 1

再利用安全性算法检查此时系统是否安全。

即存在安全序列{P1,P3,P4,P0,P2},故系统是安全的,可以立即将P1所申请的资源分配给它。

实际上,(1)中的安全序列中的第一个进程就是P1,当然对P1的请求可以满足。

(3)P4发出请求向量Request4(3,3,0),按银行家算法,分析系统是否可同意请求。 Request4(3,3,0)≤Need4(4,3,1)

Request4(3,3,0)≤Available(2,3,0),让P4等待。 (4)P0发出请求向量Request0(0,2,0),按银行家算法,分析系统是否可同意请求。 Request0(0,2,0)≤Need0(7,4,3) Request0(0,2,0)≤Available(2,3,0)

系统暂时先假定可为P0分配资源,并修改有关数据 Max A B C Allocation A B C Need A B C Available A B C P0 P1 P2 P3 P4 5 3 3 2 2 9 0 2 2 2 2 4 3 3 0 1 0 (0 3 0) 3 0 2 3 0 2 2 1 1 0 0 2 7 4 3 2 3 0 (7 2 3) (2 1 0) 0 2 0 6 0 0 0 1 1 4 3 1

进行安全性检查 P0 P1 P2 P3 P4 Max A B C 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 3 0 3 0 2 3 0 2 2 1 1 0 0 2 Need A B C 7 2 3 0 2 0 6 0 0 0 1 1 4 3 1 Available A B C 2 1 0

可用资源Available(2,1,0)已不能满足任何进程的需要,系统进入不安全状态,故系统不能同意P0的请求,让其阻塞。

练习1:(1)3个进程共享4个同种类型的资源,每个进程最大需要2个资源,请问该系统是否会因为竞争该资源而死锁?

解:该系统不会因为竞争该资源而死锁。因为必有1个进程可获得2个资源,顺利完成其任务,其后可释放出占用的2个资源给其他进程使用,使他们顺利完成。

练习1:(2)n个进程共享m个同类资源,若每个进程都需要用该类资源,而且各进程对该类资源的最大需求量之和小于m+n,说明该系统不会因竞争该类资源而阻塞。

解:用Maxi、Needi和Allocationi分别表示第i个进程对该类资源的最大需求量,需求量以及已分配的量,根据题意它们满足下述条件: >0i n

若系统已因竞争该资源而进入死锁状态,则意味着已有一个以上的进程因申请不到该类资源而无限阻塞,而m个资源肯定已全部分配出去,即: n =mii=1

nnn因此: =-

Need?Max?Allocation?Need?Max?Allocation?Need

这样,至少必须存在1个进程,其Needi≤0,这与题意不符,所以该系统不会因竞争该类资源而进入死锁状态。

(3)在(2)中,如果没有“每个进程都需要用该类资源”的限制,情况又如何?

解:此时系统可能会发生死锁。假设n=4,m=3,P1的Max为0,而其余3个进程的Max都为2,则仍然满足最大需求量之和小于m+n的要求,当除了P1以外的其余3个进程各得到1个资源时,这3个进程就可能进入死锁状态。

练习2:在银行家算法中,若出现下面的资源分配情况: P0 P1 P2 P3 P4 Allocation Need Available A B C D A B C D A B C D 0 0 3 2 1 0 0 0 1 3 5 4 0 0 3 2 0 0 1 4 0 0 1 2 1 6 2 2 1 6 5 0 2 3 5 6 0 6 5 2 0 6 5 6

试问:(1)该状态是否安全?

(2)当进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它? (3)如果系统立即满足P2的上述请求,则系统是否立即进入死锁状态? 解:(1)利用安全性检查算法对上面的状态进行分析,可找到一个安全序列{P0, P1,P3,P4,P2},故系统是安全的。

(2)P2发出请求向量后,系统按银行家算法进行检查,在进行试分配后,进行安全性检查时发现:此时对于所有进程,Available不能满足任何进程的请求,故系统不进行资源分配。 (3)系统立即满足进程P2的请求后,并没有马上进入死锁状态。因为:此时其他进程并没有申请新的资源,并因得不到资源而进入阻塞状态;只有当上述的其他进程提出新的请求,并导致所有没有执行完的多个进程因得不到资源而阻塞并形成循环等待链时,系统才进入死锁状态。

第四章

例:在某系统中,采用固定分区分配管理方式,内存分区(单位字节)情况如图所示,

现有大小为1K、9K、33K、121K的多个作业要求进入内存,试画出它们进入内存后的空间分配情况,并说明主存浪费多大?