操作系统死锁练习及答案
死锁习题及答案

死鎖習題及答案一、填空題1.進程の“同步”和“互斥”反映了進程間①和②の關系。
【答案】①直接制約、②間接制約【解析】進程の同步是指在異步環境下の並發進程因直接制約而互相發送消息,進行相互合作、相互等待,使得各進程按一定の速度執行の過程;而進程の互斥是由並發進程同時共享公有資源而造成の對並發進程執行速度の間接制約。
2.死鎖產生の原因是①和②。
【答案】①系統資源不足、②進程推進路徑非法【解析】死鎖產生の根本原因是系統の資源不足而引發了並發進程之間の資源競爭。
由於資源總是有限の,我們不可能為所有要求資源の進程無限地提供資源。
而另一個原因是操作系統應用の動態分配系統各種資源の策略不當,造成並發進程聯合推進の路徑進入進程相互封鎖の危險區。
所以,采用適當の資源分配算法,來達到消除死鎖の目の是操作系統主要研究の課題之一。
3.產生死鎖の四個必要條件是①、②、③、④。
【答案】①互斥條件、②非搶占條件、③占有且等待資源條件、④循環等待條件【解析】互斥條件:進程對它所需の資源進行排它性控制,即在一段時間內,某資源為一進程所獨占。
非搶占條件:進程所獲得の資源在未使用完畢之前,不能被其它進程強行奪走,即只能由獲得資源の進程自己釋放。
占有且等待資源條件:進程每次申請它所需の一部分資源,在等待新資源の同時,繼續占有已分配到の資源,循環等待條件:存在一進程循環鏈,鏈中每一個進程已獲得の資源同時被下一個進程所請求。
4.在操作系統中,信號量是表示①の物理實體,它是一個與②有關の整型變量,其值僅能由③原語來改變。
【答案】①資源,②隊列,③P-V【解析】信號量の概念和P-V原語是荷蘭科學家E.W.Dijkstra提出來の。
信號量是一個特殊の整型量,它與一個初始狀態為空の隊列相聯系。
信號量代表了資源の實體,操作系統利用它の狀態對並發進程共享資源進行管理。
信號量の值只能由P-V原語來改變。
5.每執行一次P原語,信號量の數值S減1。
如果S>=0,該進程①;若S<0,則②該進程,並把它插入該③對應の④隊列中。
操作系统死锁练习及答案

死锁练习题(一)单项选择题l系统出现死锁的根本原因是( )。
A.作业调度不当B.系统中进程太多C.资源的独占性D.资源管理和进程推进顺序都不得当2.死锁的防止是根据( )采取措施实现的。
A.配置足够的系统资源B.使进程的推进顺序合理C.破坏产生死锁的四个必要条件之一D.防止系统进入不安全状态3.采用按序分配资源的策略可以防止死锁.这是利用了使( )条件不成立。
A.互斥使用资源B循环等待资源c.不可抢夺资源D.占有并等待资源4.可抢夺的资源分配策略可预防死锁,但它只适用于( )。
A.打印机B.磁带机c.绘图仪D.主存空间和处理器5.进程调度算法中的( )属于抢夺式的分配处理器的策略。
A.时间片轮转算法B.非抢占式优先数算法c.先来先服务算法D.分级调度算法6.用银行家算法避免死锁时,检测到( )时才分配资源。
A.进程首次申请资源时对资源的最大需求量超过系统现存的资源量B.进程己占用的资源数与本次申请资源数之和超过对资源的最大需求量c.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需的最大资源量D进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需的最大资源量7.实际的操作系统要兼顾资源的使用效率和安全可靠,对资源的分配策略,往往采用( )策略。
A死锁的防止B.死锁的避免c.死锁的检测D.死锁的防止、避免和检测的混合(二)填空题l若系统中存在一种进程,它们中的每一个进程都占有了某种资源而又都在等待其中另一个进程所占用的资源。
这种等待永远不能结束,则说明出现了______。
2.如果操作系统对______或没有顾及进程______可能出现的情况,则就可能形成死锁。
3.系统出现死锁的四个必要条件是:互斥使用资源,______,不可抢夺资源和______。
4.如果进程申请一个某类资源时,可以把该类资源中的任意一个空闲资源分配给进程,则说该类资源中的所有资源是______。
第5章 死锁 练习题参考答案

第五章死锁练习题参考答案(一)单项选择题1.D 2.C 3.B 4.D 5.A 6.C 7.D(二)填空题1.死锁2.资源管理不得当,并发执行时3.占有并等待资源,循环等待资源4.等价的5.没有死锁6.一个条件不成立7.静态分配资源,释放已占资源8.预分配资源.开始执行前9.没有占用资源10.抢夺11.主存空间,处理器12.按序分配13安全状态14.避免死锁15.银行家算法16.死锁的避免17.n(x- 1)+l<=m 18.死锁检测方法19判断系统,解除死锁20.占用表,等待表21.尚需量,剩余量22终止,抢夺资源23.校验点24.防止,检测(三)简答题1.若系统中存在一组进程、它们中的每—个进程都占用了某种资源而又都在等待其中另一个进程所占的资源,这种等待永远不能结束,则说明系统出现了死锁。
产生死锁的原因有两个:一是操作系统对资源的管理不当,二是没有顾及进程并发执行时可能出现的情况。
2.采用某些资源分配策略使死锁的四个必要条件之一不成立,就能防止死锁。
除第一个条件互斥使用资源没有对应策略外,对占有并等待资源、不可抢夺资源和循环等待资源这三个条件可采用静态分配资源,释放已占资源,抢夺式分配资源和按序分配资源等资源分配策略。
3.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于安全状态。
常用银行家算法动态地检测系统中的资源分配情况和进程对资源的需求情况进行资源分配,确保系统处于安全状态。
4解决死锁问题有以下三种方法:(1)死锁的防止。
系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。
(2)死锁的避免。
系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。
(3)死锁的检测。
对资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。
5.用抢夺资源的方式解除死锁时要注意三点:(1)抢夺进程资源时希望付出的代价最小。
操作系统(死锁)试题

第五章死锁一.选择题1.为多道程序提供的可共享资源不足时,可能出现死锁。
但是,不适当的 C 也可能产生死锁。
(A)进程优先权(B)资源的线性分配(C)进程推进顺序(D)分配队列优先权2.采用资源剥夺法可以解除死锁,还可以采用 B 方法解除死锁。
(A)执行并行操作(B)撤销进程(C)拒绝分配新资源(D)修改信号量3.产生死锁的四个必要条件是:互斥、 B 循环等待和不剥夺。
(A)请求与阻塞(B)请求与保持(C)请求与释放(D)释放与阻塞4.在分时操作系统中,进程调度经常采用算法。
(A)先来先服务(B)最高优先权(C)时间片轮转(D)随机5.资源的按序分配策略可以破坏条件。
(A)互斥使用资源(B)占有且等待资源(C)非抢夺资源(D)循环等待资源6.在 C 情况下,系统出现死锁。
(A)计算机系统发生了重大故障(B)有多个封锁的进程同时存在(C)若干进程因竞争而无休止地相互等待他方释放已占有的资源(D)资源数远远小于进程数或进程同时申请的资源数量远远超过资源总数7。
银行家算法在解决死锁问题中是用于 B 的。
(A)预防死锁(B)避免死锁(C)检测死锁(D)解除死锁8.支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中不是引起操作系统选择新进程的直接原因。
(A)运行进程的时间片用完(B)运行进程出错(C)运行进程要等待某一事件发生(D)有新进程进入就绪队列9. 在下列解决死锁的方法中,属于死锁预防策略的是 B 。
(A)银行家算法(B)有序资源分配法(C)死锁检测法(D)资源分配图化简法二、综合题1.若系统运行中出现如表所示的资源分配情况,改系统是否安全?如果进程P2此时提出资源申请(1,2,2,2),系统能否将资源分配给它?为什么?资源情况进程Allocation Need AvailableP0 0 0 3 2 0 0 1 2 1 6 2 2P1 1 0 0 0 1 7 5 0P2 1 3 5 4 2 3 5 6P3 0 3 3 2 0 6 5 2P4 0 0 1 4 0 6 5 6(2)资源情况进程Allocation Need AvailableP0 0 0 3 2 0 0 1 2 0 4 0 0P1 1 0 0 0 1 7 5 0P2 2 5 7 6 1 1 3 4P3 0 3 3 2 0 6 5 2P4 0 0 1 4 0 6 5 61.有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕,试问该系统是否会由于对这种资源的竞争而产生死锁。
《操作系统》习题集:第6章 死锁

第6章死锁-习题集一、选择题1.在操作系统中,死锁出现是指()。
【*,★,联考】A. 计算机系统发生重大故障B. 资源个数远远小于进程数C. 若干进程因竞争资源而无限等待其他进程释放已占有的资源D. 进程同时申请的资源数超过资源总数2.在()的情况下,系统出现死锁。
【*,联考】A. 计算机系统发生了重大故障B. 有多个封锁的进程同时存在C. 若干进程因竞争资源而无休止地相互等待他方释放已占有的资源D. 资源数远远小于进程数或进程同时申请的资源数远远超过资源总数3.当出现()情况下,系统可能出现死锁。
【*,联考】A. 进程释放资源B. 一个进程进入死循环C. 多个进程竞争资源出现了循环等待D. 多个进程竞争共享型设备4.为多道程序提供的可共享资源不足时,可能出现死锁。
但是,不适当的()也可能产生死锁。
【**,联考】A. 进程优先级B. 资源线性分配C. 进程推进顺序D. 分配队列优先权5.采用资源剥夺法可以解除死锁,还可以采用()方法解除死锁。
【*,★,联考】A. 执行并行操作B. 撤销进程C. 拒绝分配新资源D. 修改信号量6.死锁产生的原因之一是()。
【*,联考】A. 系统中没有采用SPOOLing技术B. 使用的P、V操作过多C. 有共享资源存在D. 资源分配不当7.产生死锁的4个必要条件是:互斥、()、循环等待和不剥夺。
【*,联考,?】A. 请求与阻塞B. 请求与保持C. 请求与释放D. 释放与阻塞8.一个进程在获得资源后,只能在使用完资源后由自己释放,这属于死锁必要条件的()。
【*,联考】A. 互斥条件B. 请求和释放条件C. 不剥夺条件D. 环路等待条件9.死锁的预防是根据()而采取措施实现的。
【*,★,联考】A. 配置足够的系统资源B. 使进程的推进顺序合理C. 破坏死锁的四个必要条件之一D. 防止系统进入不安全状态10.资源的有序分配策略可以破坏死锁的()条件。
【**,★,联考】A. 互斥B. 请求和保持C. 不剥夺D. 循环等待11.发生死锁的必要条件有4个,要防止死锁的发生,可以通过破坏这4个必要条件之一来实现,但破坏()条件是不太实际的。
第5章操作系统习题(死锁)

一、选择题1、在为多道程序所提供的可共享的系统资源不足时,可能出现死锁。
但是,不适当的也可能产生死锁。
A、进程优先权B、资源的线性分配C、进程推进顺序D、分配队列优先权2、采用资源剥夺法可解除死锁,还可以采用方法解除死锁。
A、执行并行操作B、撤消进程C、拒绝分配资源D、修改信号量3、产生死锁的四个必要条件是:互斥、、环路条件与不剥夺。
A、请求与阻塞B、请求与保持C、请求与释放D、释放与阻塞4、在分时操作系统中,进程调度经常采用算法。
A、先来先服务B、最高优先权C、时间片轮转D、随机5、资源的按序分配策略可以破坏条件。
A、互斥使用资源B、占有且等待资源C、非抢夺资源D、循环等待资源6、在的情况下,系统出现死锁。
A、计算机系统发生了重大故障。
B、有多个封锁的进程同进存在。
C、若干进程因竞争资源而无休止地相互等待他方释放已占有的资源。
D、资源数目大大小于进程数或进程同时申请的资源数大大超过资源总数。
7、优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。
A、先来先服务B、静态C、动态D、短作业8、当进程数大于资源数时,进程竞争资源会产生死锁。
A、一定B、不一定9、检测出发生死锁时,可以通过撤消一个进程解除死锁。
上述描述是。
A、正确的B、错误的10、在下列解决死锁的方法中,属于死锁预防策略的是。
A、银行家算法B、资源有序分配方法C、死锁检测法D、资源分配图化简法12、以下叙述中正确的是。
A、调度原语主要是按照一定的算法,从阻塞队列中选择一个进程,将处理机分配给它。
B、预防死锁的发生可以通过破坏产生死锁的四个必要条件之一来实现,但破坏互斥条件的可能性不大。
C、进程进入临界区时要执行开锁原语。
D、既考虑作业等待时间,又考虑作业执行时间的调度算法是先来先服务算法。
二、填空题1、进程的调度方式有两种,一种是,另一种是。
2、死锁是指在系统中的多个无限期地等待永远不会发生的条件。
3、一种最常用的进程调度算法是把处理机分配给具有最高优先权的进程。
计算机操作系统死锁习题

【例】一台计算机有6台磁带机,由n个进程竞争使 用,每个进程可能需要两台磁带机,那么n是多少 时,系统才没有死锁的危险? 【解答】对于三个进程,每个进程能够有两个驱动 器。对于4个进程,驱动器可以按照(2,2,1, 1)的方法进行分配,使前面两个进程先结束。对 于5个进程,可以按照(2,1,1,1,1)的方法 进行分发,使一个进程先结束。对于六个进程, 每个进程都拥有一个磁带驱动器同时需要另外一 个驱动器,产生了死锁。因此,对于n<6的系统 来说是无锁的。
【例】_____是指多个进程因竞争资源而造成 的一种僵局,若无外力作用,这些进程都 将永远不能再向前推进 【答案】死锁
【例】死锁是指系统的全部进程都处于阻塞 状态 【解答】错 死锁是指系统中涉及死锁的进程全部处于阻 塞状态,而不处于死锁状态的进程则不一 定。
【例】操作系统处理死锁,只要采用预防, 解除,检测,避免等方法中的一种就足够 了 【解答】错误 因为操作系统要兼顾资源的使用效率和安全 性两方面,常见的是将预防,解除,检测, 避免等四种处理方法混合使用。例如,只 有检测死锁而无解除死锁的方法,检测出 死锁又有什么用?
【例】系统死锁可利用( )来描述。 A 进程 B 程序 C 系统流程图 D 资源分配图 【答案】D
【例】按序分配资源是为了( ) A 死锁的检测 B 死锁的防止 C 死锁的避免 D 死锁的解除 【答案】B
【例】死锁的预防是根据()而采取措施实 现的 A 配置足够的系统资源 B 使进程的推进顺序合理 C 破坏死锁的四个必要条件之一 D 防止系统进入不安全状态 【解答】C
【例】当由于为进程分配资源而使系统处于 不安全状态时,系统一定会导致死锁 【解答】错。 当由于进程分配资源而使系统处于不安全状 态使,系统不一定会死锁。因为可能有些 进程的资源没有达到最大需求时,就已经 完成或故障终止
死锁问题分析与解决能力测试

死锁问题分析与解决能力测试(答案见尾页)一、选择题1. 死锁产生的四个必要条件中,哪个不是?A. 互斥B. 请求与保持C. 不剥夺D. 循环等待2. 在银行家算法中,为了避免死锁,需要确保分配资源后系统中哪些资源是可用的?A. 短期内一直可用B. 长期内一直可用C. 在分配后立即不可用D. 在分配后根据需要可用3. 死锁避免策略包括哪两种?A. 预防策略和检测策略B. 预防策略和解除策略C. 检测策略和解除策略D. 预防策略和解除策略4. 在银行家算法中,如何判断系统是否处于安全状态?A. 所有资源都可以分配给进程B. 如果所有请求都在等待资源,则系统处于安全状态C. 系统中没有死锁D. 所有进程都已开始执行5. 死锁预防和死锁避免有何不同?A. 死锁预防是在分配资源时就确保不会产生死锁B. 死锁避免是在分配资源时只分配所需的最小资源C. 死锁预防要求资源必须完全分配D. 死锁避免允许部分分配资源6. 在处理死锁问题时,哪种方法通常不考虑释放已分配的资源?A. 银行家算法B. 资源分配图简化C. 资源强制回收D. 避免优先级倒置7. 死锁处理的四种策略中,哪种策略可能导致低效率?A. 银行家算法B. 资源分配图简化C. 资源强制回收D. 避免优先级倒置8. 在资源分配图中,如果存在一条从资源到其可用状态的路径,那么这个资源就处于什么状态?A. 可分配状态B. 不可分配状态C. 就绪状态D. 阻塞状态9. 死锁处理的五种方法中,哪种方法不使用资源分配图?A. 银行家算法B. 资源分配图简化C. 资源强制回收D. 避免优先级倒置10. 在死锁处理的讨论中,为什么说银行家算法是安全的?A. 它总是能预测并防止死锁的发生B. 它通过确保资源在分配后仍然可用来避免死锁C. 它只使用了一种资源分配策略D. 它总是能及时释放资源以避免死锁11. 死锁产生的四个必要条件中,哪个不是必要的?A. 互斥条件B. 请求与保持条件C. 不剥夺条件D. 资源分配图12. 在银行家算法中,为了避免死锁,需要确保提前多少天进行资源分配?A. 1天B. 2天C. 3天D. 4天13. 解决死锁问题的四种策略中,哪种策略是用于避免死锁的?A. 预防策略B. 避免策略C. 检测与解除策略D. 限制策略14. 在银行家算法中,如果当前所有进程都在执行,则系统处于什么状态?A. 病态B. 死锁态C. 处于安全状态D. 无法确定15. 死锁的四个必要条件中,哪个条件表示一个进程已经持有了其他进程所需的资源,并且该资源不再需要?A. 互斥条件B. 请求与保持条件C. 不剥夺条件D. 资源分配图16. 解决死锁问题的方法中,哪种方法是在系统运行过程中动态地分配资源?B. 避免策略C. 检测与解除策略D. 限制策略17. 如果系统中有五个进程,每个进程请求三个资源,那么系统中至少有多少资源才可能发生死锁?A. 12B. 13C. 14D. 1518. 死锁的预防策略中,哪种策略可以破坏“请求与保持条件”?A. 顺序分配法B. 原始分配法C. 有限等待法D. 银行家算法19. 死锁产生的四个必要条件中,哪个不是导致死锁发生的必要条件?A. 互斥B. 请求与保持C. 不剥夺D. 长时间等待E. 循环等待20. 在银行家算法中,为了确保系统不会进入不安全状态,系统应至少剩余的资源数量是:A. 死锁资源数 + 1B. 死锁资源数C. 死锁资源数 + 1D. 死锁资源数 × 2E. 死锁资源数 × 321. 解决死锁问题的四种策略中,哪种策略是用于避免提前释放资源以避免其他进程饥饿的?B. 避免策略C. 检测与解除策略D. 重新分配策略E. 进展式策略22. 死锁预防和银行家算法在资源分配策略上有什么不同?A. 死锁预防不允许进程获取资源,而银行家算法允许进程在需要时获取资源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
死锁练习题(一)单项选择题l系统出现死锁的根本原因是( )。
A.作业调度不当B.系统中进程太多C.资源的独占性D.资源管理和进程推进顺序都不得当2.死锁的防止是根据( )采取措施实现的。
A.配置足够的系统资源B.使进程的推进顺序合理C.破坏产生死锁的四个必要条件之一D.防止系统进入不安全状态3.采用按序分配资源的策略可以防止死锁.这是利用了使( )条件不成立。
A.互斥使用资源B循环等待资源c.不可抢夺资源D.占有并等待资源4.可抢夺的资源分配策略可预防死锁,但它只适用于( )。
A.打印机B.磁带机c.绘图仪D.主存空间和处理器5.进程调度算法中的( )属于抢夺式的分配处理器的策略。
A.时间片轮转算法B.非抢占式优先数算法c.先来先服务算法D.分级调度算法6.用银行家算法避免死锁时,检测到( )时才分配资源。
A.进程首次申请资源时对资源的最大需求量超过系统现存的资源量B.进程己占用的资源数与本次申请资源数之和超过对资源的最大需求量c.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需的最大资源量D进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需的最大资源量7.实际的操作系统要兼顾资源的使用效率和安全可靠,对资源的分配策略,往往采用( )策略。
A死锁的防止B.死锁的避免c.死锁的检测D.死锁的防止、避免和检测的混合(二)填空题l若系统中存在一种进程,它们中的每一个进程都占有了某种资源而又都在等待其中另一个进程所占用的资源。
这种等待永远不能结束,则说明出现了______。
2.如果操作系统对______或没有顾及进程______可能出现的情况,则就可能形成死锁。
3.系统出现死锁的四个必要条件是:互斥使用资源,______,不可抢夺资源和______。
4.如果进程申请一个某类资源时,可以把该类资源中的任意一个空闲资源分配给进程,则说该类资源中的所有资源是______。
5.如果资源分配图中无环路,则系统中______发生。
6.为了防止死锁的发生,只要采用分配策略使四个必要条件中的______。
7.使占有并等待资源的条件不成立而防止死锁常用两种方法:______和______. 8静态分配资源也称______,要求每—个进程在______就申请它需要的全部资源。
9.释放已占资源的分配策略是仅当进程______时才允许它去申请资源。
10抢夺式分配资源约定,如果一个进程已经占有了某些资源又要申请新资源,而新资源不能满足必须等待时、系统可以______该进程已占有的资源。
11.目前抢夺式的分配策略只适用于______和______。
12.对资源采用______的策略可以使循环等待资源的条件不成立。
13.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于______。
14.只要能保持系统处于安全状态就可______的发生。
15.______是一种古典的安全状态测试方法。
16.要实现______,只要当进程提出资源申请时,系统动态测试资源分配情况,仅当能确保系统安全时才把资源分配给进程。
17.可以证明,M个同类资源被n个进程共享时,只要不等式______成立,则系统一定不会发生死锁,其中x为每个进程申请该类资源的最大量。
18.______对资源的分配不加限制,只要有剩余的资源,就可把资源分配给申请者。
19.死锁检测方法要解决两个问题,一是______是否出现了死锁,二是当有死锁发生时怎样去______。
20.对每个资源类中只有一个资源的死锁检测程序根据______和______两张表中记录的资源情况,把进程等待资源的关系在矩阵中表示出来,以判别是否出现死锁。
21.如果资源类中含有若干个资源,应根据进程对各类资源的占有量、______和各类资源的______来考虑是否有死锁存在。
22.解除死锁的方法有两种,一种是______一个或几个进程的执行以破坏循环等待,另一种是从涉及死锁的进程中______ 23.中断某个进程并解除死锁后,此进程可从头开始执行,有的系统允许进程退到发生死锁之前的那个______开始执行。
24.操作系统中要兼顾资源的使用效率和安全可靠,对不同的资源采用不同的分配策略,往往采用死锁的______、避免和______的混合策略。
(三)简答题1.何谓死锁?产生死锁的原因是有哪些? 2.可以通过哪些途径防止死锁的产生? 3.什么叫系统处于安全状态?常用什么方法保持系统处于安全状态? 4.简述解决死锁问题的三种方法。
5.用抢夺资源的方法解除死锁时要注意什么问题?(四)应用题1若有10个同类资源供三个进程共享,下表列出了这三个进程目前己占资源和最大需求量的情况,现在这三个进程P1,P2,P3又分别申请1个、2个、1个资源,请问1)能否先满足进程P2的要求?为什么?(2)如何为这三个进程分配资源比较合适?进程已占资源数最大需求量P1 3 7P2 3 8P3 2 32.现有五个进程A,B,c,d,E共享Rl,R2,R3,R4这四类资源,进程对资源的需求量和目前分配情况如下表。
若系统还有剩余资源数分别为R1类2个,R2类6个,R3类2个和R4类1个,请按银行家算法回答下列问题:(1)目前系统是否处于安全状态? (2)现在如果进程D提出申请(2,5,0,0)个资源,系统是否能为它分配资源?进程已占资源数最大需求量R1 R2 R3 R4 R1 R2 R3 R4A 3 6 2 0 5 6 2 0B 1 0 2 0 1 0 2 0C 1 0 4 0 5 6 6 0D 0 0 0 1 5 7 0 1E 5 3 4 1 5 3 6 23.假设系统配有相同类型的m个资源,系统中有n个进程,每个进程至少请求一个资源(最多不超过m)。
请证明,当n个进程最多需要的资源数之和小于(m+n)时,该系统不会发生死锁。
4.若某一系统有同类资源12个,进程A,B,c所需的资源总数分别为5,10,7。
下表中列出了这些进程向系统申请资源的次序和数量,请回答:(1)如采用银行家算法分配资源.请写出完成第5次分配后各进程的状态及所占资源量. (2)请继续完成以后的资源分配,直到全部进程满足资源分配的要求。
次序进程申请量次序进程申请量1 B 4 5 B 22 C3 6 A 23 A 3 7 B 44 C 2 8 C 25.如果在某个系统中有四个资源类,每个资源类中只有一个资源,这四个资源分别为Rl,R2,R 3和R4。
现有三个进程Pl,P2.P3各自已申请到了部分资源,又在等待其他资源。
表1和表2分别为资源占用表和等待表。
表1资源占用进程P3R2 P1R1 P2R4 P3表2进程等待资源P1 R4P2 R2P3 R3请根据占用表和等待表形成一张“等待占用”关系矩阵,设矩阵中的元素为bij,i=1,2,3, j =l,2,3,死锁检测程序为:for k:=1 to 3 do for i:=1 to 3 do for j:=1 to 3 do bij:=bij ∨(bik ∧bkj)试算:k=1,2,3时,矩阵中哪些元素会变成l,从而判断是否会出现死锁。
第九章死锁练习题参考答案(一)单项选择题1.D 2.C 3.B 4.D 5.A 6 C 7 D(二)填空题1.死锁2.资源管理不得当,并发执行时3.占有并等待资源,循环等待资源4.等价的5.没有死锁6.一个条件不成立7.静态分配资源,释放已占资源8.预分配资源.开始执行前9.没有占用资源10.抢夺11.主存空间,处理器12.按序分配13安全状态14.避免死锁15.银行家算法16.死锁的避免17.n(x- 1)+l<=m 18.死锁检测方法19判断系统,解除死锁20.占用表,等待表21.尚需量,剩余量22终止,抢夺资源23.校验点24.防止,检测(三)简答题1.若系统中存在一组进程、它们中的每—个进程都占用了某种资源而又都在等待其中另一个进程所占的资源,这种等待永远不能结束,则说明系统出现了死锁。
产生死锁的原因有两个:一是操作系统对资源的管理不当,二是没有顾及进程并发执行时可能出现的情况。
2.采用某些资源分配策略使死锁的四个必要条件之一不成立,就能防止死锁。
除第一个条件互斥使用资源没有对应策略外,对占有并等待资源、不可抢夺资源和循环等待资源这三个条件可采用静态分配资源,释放已占资源,抢夺式分配资源和按序分配资源等资源分配策略。
3.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于安全状态。
常用银行家算法动态地检测系统中的资源分配情况和进程对资源的需求情况进行资源分配,确保系统处于安全状态。
4解决死锁问题有以下三种方法:(1)死锁的防止。
系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。
(2)死锁的避免。
系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。
(3)死锁的检测。
对资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。
5.用抢夺资源的方式解除死锁时要注意三点:(1)抢夺进程资源时希望付出的代价最小。
(2)为被抢夺者的恢复准备好条件,如返回某个安全状态,并记录有关信息。
(3)防止被抢夺资源的进程“饿死”,一般总是从执行时间短的进程中抢夺资源。
(四)应用题1.(1)根据表,P1,P2和P3三个进程尚需资源数分别是4,5和l,系统的资源剩余量为2,若把剩余的资源量全部分配给P2,系统产已无资源可分配,使三个进程都等待资源而无法完成,形成死锁。
所以不能先满足进程P2的要求。
(2)可先为进程P3分配1个资源,当它归还3个资源后,这样共有4个可分配资源,可满足P1申请1个资源的要求,再分配3个资源给进程P1,待P1归还7个资源后,先满足P2申请2个资源的请求,分配给进程P2,再分配3个资源给P2,使它完成。
2.(1)系统目前尚余有的资源数为(2,6,2,1),五个进程尚需的资源数分别是A:(2,0,0,0) ; B:(0,0,0,0); C:(4,6,2,0) ; D:(5,7,0,0); E:(0,0,2,1);由于进程B己满足了全部资源需求,它在有限时间内会归还这些资源,因此可分配资源达到(3,6,4,1),这样就可分配给进程A;等A归还资源后,可分配资源达到(6,12,6,1),再分配给进程c;之后可分配资源会达到(7,12,10,1),分配给进程D并等待一段时间后,可分配资源将达到(7,12,10,2),最后,可分配给进程E,满足其全部请求。
所以说目前系统处于安全状态。