第三章处理机调度与死锁1、系统出现死锁是因为(若干进程因竞争资源而无休止的等待着其他进程释放已占有的资源)。
2、某系统中有5个并发进程,都需要同类资源3个,试问该系统不会发生死锁的最少资源数是(11 )。
3、发生死锁现象的原因有____竞争资源_________和____进程推进顺序非法________。
通常不采用( 从非死锁进程处抢夺资源)方法来解除死锁。
4、某系统中有4个并发进程,都需要同类资源3个,试问该系统不会发生死锁的最少资源数是( 9 )。
5、死锁产生的4个必要条件是:互斥、不可剥夺、_____________请求和保持_________ 和环路等待条件。
6、作业在系统中存在与否的唯一标志是作业控制块7、某计算机系统中有8台打印机,有K个进程竞争使用,每个进程最多需要3台打印机.该系统可能会发生死锁的K的最小值是( 4 )8、产生系统死锁的原因可能是由于(多个进程竞争资源出现了循环等待)9、系统中有3个进程,每个进程需2台打印机,如果系统配有4台打印机,则系统______不可能________出现死锁的情况(本题要判断出现死锁的可能性:可能或不可能)。
10、什么是死锁?产生死锁的必要条件是什么?处理死锁的基本方法有哪些?答:死锁是两个或两个以上进程由于竞争资源而处于的僵持状态,在这种僵持状态下若没有外力作用,所有进程都无法正常向前推进。
(必要条件:(1)互斥条件(2)请求和保持条件(3)不剥夺条件(4)环路等待条件处理方法:预防死锁、避免死锁、检测死锁、解除死锁。
11、死锁定理的含义是什么?试简化下图进程-资源图,并利用死锁定理给出相应的结论。
P1R1 R2P2答:死锁定理:当且仅当资源分配图是不可完全简化的。
R1资源有3个,R2资源有2个;P1进程:占有2个R1,申请1个R2;P2进程占有1个R1,1个R2,申请1个R1;目前系统只有一个R2空闲;P1是一个既不孤立又不阻塞的进程,消去P1的边,有2个R1,1个R2空闲,能满足P2申请,使P2成为既不孤立又不阻塞的进程,所以消去P2的边,由死锁定理知,不会产生死锁。
12、4个进程的提交、运行时间如下表所示。
若采用(1)先来先服务算法;(2)最高响应比优先调度算法,试求出进程的执行顺序,进程的开始时间、完成时间、周转时间及进程的平均周转时间。
进程的提交与运行时间表(十进制)进程提交时间运行时间P1 8.0 2.0P2 8.4 0.3P3 8.6 0.1P4 9.0 0.2答:(1)先来先服务算法进程提交时间运行时间开始时间完成时间周转时间P1 8.0 2.0 8.0 10.0 2.0 P2 8.4 0.3 10.0 10.3 1.9 P3 8.6 0.1 10.3 10.4 1.8 P4 9.0 0.2 10.4 10.6 1.6 平均周转时间=(2+1.9+1.8+1.6)/4=1.825(1分)(2)最高响应比优先调度算法进程提交时间运行时间开始时间完成时间周转时间P1 8.0 2.0 8.0 10.0 2.0 P2 8.4 0.3 10.1 10.4 2.0 P3 8.6 0.1 10.0 10.1 1.5P4 9.0 0.2 10.4 10.6 1.6 a. P2响应比=1+(10-8.4)/0.3=6.3 P3响应比=1+(10-8.6)/0.1=15P4响应比=1+(10-9)/0.2=6因为P3响应比最高,所以执行进程3;b.P2响应比=1+(10.1-8.4)/0.3=6.7 P4响应比=1+(10.1-9)/0.2=6.5因为P2响应比最高,所以执行进程2;(2分)平均周转时间=(2.0+2.0+1.5+1.6)/4=1.775 (1分)13、设系统中有3中类型的资源(A,B,C)和5个进程P1、P2、P3、P4、P5,A类资源的数目为17,B类资源的数目为5,C类资源的数目为20。
在T时刻系统状态如下表所示。
系统采用银行家算法实施死锁避免策略。
3分3分资源情况 进程MaxA B C Allocation A B C Available A B CP1 5 5 9 2 1 2 2 3 3P2 5 3 6 4 0 2 P3 4 0 11 4 0 5 P4 4 2 5 2 0 4 P54 2 43 0 4(1)T 0时刻是否为安全状态?若是,给出安全序列。
(2)若在T 0时刻进程P2请求资源(0,3,4),是否能实施资源分配?为什么?解答:1)由题目所给出的最大资源需求量和已分配的资源数量,可以计算出T0时刻各进程的资源需求量Need ,Need =Max-Allocation ,利用银行家算法对T0时刻的资源分配情况进行分析,可得此时的安全性分析情况,如下表:Work A B CNeed A B C Allocation A B C Work+AllocationA B C Fin ish P5 2 3 3 1 1 0 3 1 4 5 4 7 T P4 5 4 7 2 2 1 2 0 4 7 4 11 T P3 7 4 11 0 0 6 4 0 5 11 4 16 T P2 11 4 16 1 3 4 4 0 2 15 4 18 T P115 4 183 4 72 1 217 5 20T从T 0的安全性分析中可以看出,存在一个安全序列{ P5、P4、P3、P2、P1},故T 0时刻的状态是安全的。
(8分)(2)若在T 0时刻进程P2请求资源(0,3,4),因请求资源数(0,3,4)大于剩余资源数(2,3, 3),所以不能分配。
(2分)14、若系统运行中出现如下表所示的资源分配情况,该系统是否安全?若是,给出安全序列;如果进程P2此时提出资源申请(1,2,2,2),系统能否将资源分配给它?为什么?Allocation (已分配资源数)Need (还需要资源数) Available (系统可以分配资源数) P0 0 0 3 2 0 0 1 2 1 6 2 2P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6 P3 0 3 3 2 0 6 5 2 P40 0 1 40 6 5 6进程资源情况进程资源情况答:(1)利用安全性算法对此刻的资源分配情况进行如下表的安全性检:Work Need Allocation Work+AllocationP0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 P3 1 6 5 4 0 6 5 2 0 3 3 2 1 9 8 6 P4 1 9 8 6 0 6 5 6 0 0 1 4 1 9 9 10 P1 1 9 9 10 1 7 5 0 1 0 0 0 2 9 9 10 P22 9 9 102 3 5 61 3 5 43 12 14 14从表中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故系统是安全的。
(7分) (2) P2请求资源(1,2,2,2)<= P2需求资源(2,3,5,6)&<=剩余资源数(1,6, 2,2)Allocation Need A vailableP0 0 0 3 2 0 0 1 2 0 4 0 0P1 1 0 0 0 1 7 5 0 P2 2 5 7 6 1 1 3 4 P3 0 3 3 2 0 6 5 2 P40 0 1 40 6 5 6此时,可利用资源(0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,故不能将资源分配给P2。
15、系统中有四个进程{ P0 , P1 , P2 , P3 }和三类资源{A , B , C},各种资源的数量分别为10,5,5,在T0时刻的资源分配情况如图所示,且已知T0时刻处于安全状态。
在T1时刻,如果进程P1发出请求向量Request1(1,0,2),试用银行家算法说明系统能否将资源分配给它?答:进程P 1发出请求向量Request 1(1,0,2),系统按银行家算法进行检查: (1)Request 1(1,0,2)≤Need 1(1,2,2);(1分) (2)Request 1(1,0,2)≤Available(3,3,2);(1分)(3)系统先假定可为P 1分配资源,并修改Available 1,Allocation ,Need 1向量,由此形成的资源变化情况如表所示:资源情况 进程 Max Allocation Need A vailable A B C A B C A B C A B C P0 P1 P2 P37 5 3 3 2 2 9 0 2 2 2 20 1 0 2 0 0 3 0 2 2 1 17 4 3 1 2 2 6 0 0 0 1 13 3 2进程资源情况进程资源情况(3分)(4)再利用安全性算法检查此时系统是否安全,过程如下所示: 资源情况 进程Work Need Allocation Work+ Allocation FinishA B C A B C A B C A B C P 1 P 3 P 0 P 22 3 0 5 3 2 7 4 3 7 5 30 2 0 0 1 1 7 4 3 6 0 03 0 2 2 1 1 0 1 0 3 0 25 3 2 7 4 3 7 5 3 10 5 5`True True True True有所进行的安全性检查得知,可以找到一个安全序列{ P 1 , P 3 , P 0 , P 2 , }。
因此系统是安全的,可以立即将P 1所申请的资源分配给它。
资源情况 进程Max Allocation Need A vailable A B C A B C A B C A B C P 0 P 1 P 2 P 37 5 3 3 2 2 9 0 2 2 2 20 1 0 3 0 2 3 0 2 2 1 17 4 3 0 2 0 6 0 0 0 1 12 3 0。