第5章 死锁 练习题参考答案
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
互联网数据库网上作业第五章答案
2009-09-22 06:18
第五章数据库保护
原题:
1.假设存款余额x=1000元,甲事务取走存款300元,乙事务取走存款200元,其执行时间如下:
事务甲时间事务乙
读x t1
t2 读x
更新x=x-300 t3
t4 更新x=x-200
如何实现这两个事务的并非控制?
参考答案:
如果直接按时间顺序执行甲乙两个事务,则最后的x为800,而不是正确的500。
为此,采用封锁的方法,将甲事务修改为:
WHILE(x已建立排它锁)
{
等待
}
对x建立排它锁
读x
更新x=x-300
释放排它锁
将乙事务修改为:
WHILE(x已建立排它锁)
{
等待
参考答案:
数据库的被破坏主要有以下几个方面:
(1)系统的软、硬件故障,造成数据被破坏。
(2)数据库的并发操作引起数据的不一致性。
(3)自然的或认为的破坏。
(4)对数据库数据的更新操作有误。
针对上述问题,数据库管理系统提供相应的功能:
(1)数据库恢复:在系统失效后的数据库恢复,配合定时备份数据库,是数据库不丢失数据。
(2)并发控制:保证多用户能共享数据库,并维护数据的一致性。
(3)安全性保护:防止对数据库的非法使用,避免数据的泄漏、篡改或破坏。
(4)完整性保护:保证数据的正确性和一致性。
死鎖習題及答案一、填空題1.進程の“同步”和“互斥”反映了進程間①和②の關系。
【答案】①直接制約、②間接制約【解析】進程の同步是指在異步環境下の並發進程因直接制約而互相發送消息,進行相互合作、相互等待,使得各進程按一定の速度執行の過程;而進程の互斥是由並發進程同時共享公有資源而造成の對並發進程執行速度の間接制約。
2.死鎖產生の原因是①和②。
【答案】①系統資源不足、②進程推進路徑非法【解析】死鎖產生の根本原因是系統の資源不足而引發了並發進程之間の資源競爭。
由於資源總是有限の,我們不可能為所有要求資源の進程無限地提供資源。
而另一個原因是操作系統應用の動態分配系統各種資源の策略不當,造成並發進程聯合推進の路徑進入進程相互封鎖の危險區。
所以,采用適當の資源分配算法,來達到消除死鎖の目の是操作系統主要研究の課題之一。
3.產生死鎖の四個必要條件是①、②、③、④。
【答案】①互斥條件、②非搶占條件、③占有且等待資源條件、④循環等待條件【解析】互斥條件:進程對它所需の資源進行排它性控制,即在一段時間內,某資源為一進程所獨占。
非搶占條件:進程所獲得の資源在未使用完畢之前,不能被其它進程強行奪走,即只能由獲得資源の進程自己釋放。
占有且等待資源條件:進程每次申請它所需の一部分資源,在等待新資源の同時,繼續占有已分配到の資源,循環等待條件:存在一進程循環鏈,鏈中每一個進程已獲得の資源同時被下一個進程所請求。
4.在操作系統中,信號量是表示①の物理實體,它是一個與②有關の整型變量,其值僅能由③原語來改變。
【答案】①資源,②隊列,③P-V【解析】信號量の概念和P-V原語是荷蘭科學家E.W.Dijkstra提出來の。
信號量是一個特殊の整型量,它與一個初始狀態為空の隊列相聯系。
信號量代表了資源の實體,操作系統利用它の狀態對並發進程共享資源進行管理。
信號量の值只能由P-V原語來改變。
5.每執行一次P原語,信號量の數值S減1。
如果S>=0,該進程①;若S<0,則②該進程,並把它插入該③對應の④隊列中。
第五章死锁一、单项选择题1. 系统出现死锁的原因是()。
A. 计算机系统发生了重大故障B. 有多个封锁的进程同时存在C. 若干进程因竞争资源而无休止地等待着,不释放已占有的资源D. 资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数2. 两个进程争夺同一个资源()。
A.一定死锁B.不一定死锁C.不会死锁D.以上说法都不对3. 进程P1使用资源情况:申请资源S1,申请资源S2,释放资源S1;进程P2使用资源情况:申请资源S2,申请资源S1,释放资源S2,系统并发执行进程P1,P2,系统将()。
A. 必定产生死锁B. 可能产生死锁C. 会产生死锁D. 无法确定是否会产生死锁4.使用PV操作后,()系统死锁。
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.系统中有4个并发进程,都需要某类资源3个。
试问该类资源最少为()个时,不会因竞争该资源而发生死锁。
A. 9B. 10C. 11D. 12二、多项选择题死锁的发生与()有关。
A.若干个进程需求的资源数大于系统拥有的资源数B.系统采用的资源分配策略C.并发进程的执行速度D.不恰当的PV操作E.资源的互斥使用三、判断题(根据题意回答是或否)1.银行家算法是在保证至少有一个进程能得到所需的全部资源的前提下进行资源分配的。
计算机死锁练习题死锁,作为计算机系统中一种常见的并发问题,经常被用作计算机科学相关课程的训练题目。
通过解决死锁问题,我们可以更好地理解并发编程中的资源竞争和互斥等概念。
下面,我将通过几个实际的练习题,帮助读者更好地理解死锁问题。
首先,考虑一个简单的死锁场景:两个线程T1和T2分别需要获取资源A和资源B,并且都在等待对方释放资源。
这是典型的死锁现象。
为了解决这个问题,我们需要引入资源排序的概念。
即,定义每个资源所对应的排序规则,线程按照此规则获取资源。
例如,我们可以规定线程只能按照升序获取资源,这样就避免了循环等待的问题,从而解决了死锁。
其次,考虑一个稍微复杂一些的死锁场景:有三个线程T1、T2和T3,它们分别需要获取资源A、B和C。
同时,它们需要互斥地执行某个特定的操作,而这个操作依赖于这三个资源。
在某一时刻,T1获取了资源A,T2获取了资源B,T3获取了资源C。
接着,T1尝试获取资源B,T2尝试获取资源C,T3尝试获取资源A。
这时,它们都进入了等待状态,并且形成了死锁。
要解决这个问题,我们可以引入资源分级的概念。
即,将资源分为不同的级别,线程只能按照一定的顺序获取这些资源。
通过合理的资源分级,我们可以避免死锁的发生,保证线程能够正确地获取资源并执行操作。
除了资源排序和资源分级,死锁问题还可以通过资源分配策略来解决。
一个经典的例子是银行家算法。
该算法基于资源分配的安全性,通过判断系统在分配资源后是否会进入不安全状态来防止死锁的发生。
它定义了每个线程对资源的最大需求以及分配的资源数量,然后通过剩余资源的模拟推算来判断分配是否安全。
如果分配后不安全,则需要回滚到之前的状态,防止死锁的发生。
在实际的系统设计中,为了避免死锁的发生,还可以采用其他策略。
例如,可以通过超时机制来解决死锁问题。
如果一个线程在等待资源时超过一定时间还未获得,则可以进行一些回退操作,从而避免陷入死锁。
此外,还可以引入资源的动态分配和释放机制,通过及时地检测资源的使用情况,合理地分配和释放资源。
死锁问题分析与解决能力测试(答案见尾页)一、选择题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. 死锁预防不允许进程获取资源,而银行家算法允许进程在需要时获取资源。
(第5章操作系统的资源管理)习题五答案习题五参考答案(P132)5-1什么是虚拟资源?对主存储器⽽⾔,⽤户使⽤的虚拟资源是什么?答:虚拟资源是⽤户使⽤的逻辑资源,是操作系统将物理资源改造后,呈现给⽤户的可供使⽤的资源。
对主存储器⽽⾔,⽤户使⽤的虚拟资源是虚拟存储器。
提供给⽤户使⽤虚拟存储器的⼿段是逻辑地址空间,⽤户在编程时使⽤的是逻辑地址,空间⼤⼩不受限制(也就是说逻辑地址空间可以⽐物理地址空间⼩也可以⽐物理地址空间⼤)。
5-2常⽤的资源分配策略有哪两种?在每⼀种策略中,资源请求队列的排序原则是什么?答:常⽤的资源分配策略有先来先服务策略和优先调度策略。
在先来先服务策略中资源请求队列的排序原则是按照提出请求的先后次序排序;在优先调度策略中资源请求队列的排序原则是按照提出请求的紧迫程度(即优先级)从⾼到底排序。
5-3什么是移臂调度?什么是旋转调度?答:移臂调度是指在满⾜⼀个磁盘请求时,总是选取与当前移臂前进⽅向上最近的那个请求,使移臂距离最短。
旋转调度是指在满⾜⼀个磁盘请求时,总是选取与当前读写磁头旋转⽅向上最近的那个请求,使旋转圈数最少。
5-4什么是死锁?试举例说明。
答:⼀组进程中,每个进程都⽆限等待被该组进程中另⼀进程所占有的资源,因⽽永远⽆法得到资源,这种现象称为进程死锁,这⼀组进程就称为死锁进程。
设某系统拥有⼀台输⼊机和⼀台打印机,并为进程P1和P2所共享。
在t1时刻,进程P1和P2分别占⽤了输⼊机和打印机。
在t2(t2 > t1)时刻,进程P1请求打印机,P1将被阻塞,进⼊等待打印机的等待队列中,等待P2释放打印机。
在t3(t3 > t2)时刻,进程P2请求输⼊机,P2将被阻塞,进⼊等待输⼊机的等待队列中,等待P1释放输⼊机。
此时,P1和P2进⼊了永久的互等状态,即P1和P2成为死锁进程,出现了死锁现象。
5-5产⽣死锁的原因是什么?产⽣死锁的必要条件是什么?答:产⽣死锁的原因主要有:(1)竞争有限的系统资源。
《操作系统原理》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.死锁的防⽌、避免和检测的混合(⼆)填空题1.若系统中存在⼀种进程,它们中的每⼀个进程都占有了某种资源⽽⼜都在等待其中另⼀个进程所占⽤的资源。
这种等待永远不能结束,则说明出现了______。
2.如果操作系统对______或没有顾及进程______可能出现的情况,则就可能形成死锁。
3.系统出现死锁的四个必要条件是:互斥使⽤资源,______,不可抢夺资源和______。
4.如果进程申请⼀个某类资源时,可以把该类资源中的任意⼀个空闲资源分配给进程,则说该类资源中的所有资源是______。
操作系统第五次作业死锁1.什么是移臂调度?什么是旋转调度?移臂调度:在满足一个磁盘请求时,总是选取与当前移动臂前进方向上最近的那个请求,使移臂距离最短。
选装调度:在满足一个磁盘请求时,总是选取与当前读写头旋转方向上最近的那个请求,使旋转圈数最少。
各5分2.假设一个可移动磁头的磁盘具有 200个磁道,其编号为0~199,当它刚刚结束了 125道的存取后,现正在处理143道的服务请求,假设系统当前的请求序列以请求的先后次序排列如下: 86、147、91、177、150、102、175、130。
试问对以下几种磁盘IO请求调度算法而言,满足以上请求序列,磁头将分别如何移动?(1)先来先服务算法(FCFS)(2)最短寻道时间优先调度(SSTF)(3)扫描算法(SCAN)(4)循环扫描算法(CSCAN)先后顺序依次为:1)FCFS:143、86、147、91、177、150、102、175、130;(2)SSTF:143、147、150、130、102、94、91、86、175、177;(3)SCAN:143、147、150、175、177、130、102、94、91、86;(4)C-SCAN:143、147、150、175、177、86、91、94、102、130。
3.3个进程共享4个同类资源,这些资源的分配与释放只能一次一个,已知每一进程最多需要两个资源,试问该系统会发生死锁吗?为什么?该系统不会发生死锁。
因为最坏情况是每个进程都占有一个资源,申请第二个资源,而此时系统中还剩一个资源,不管这个资源分给哪个进程,都能满足它的资源要求,因此它能在有限时间内运行结束而释放它所占有的两个资源,这两个资源又可以分配给另外两个进程,使它们能够运行结束,所以系统不会发生死锁。
4.下图表示一带闸门的运河,其上有两架吊桥,吊桥坐落在一条公路上,为使该公路避开一块沼泽地而其横跨运河两次。
运河和公路的交通都是单方向的,运河的基本运输由驳船担负。
操作系统-----第5章复习题一、选择题1、Spooling技术提高了( A )利用率。
A 独占设备B 共享设备C 文件D 主存储器2、在下面的I/O控制方式中,需要CPU干预最少的方式是(D )。
A 程序中断方式B 中断驱动I/O控制方式C 直接存储器访问DMA控制方式D I/O通道控制方式3、利用通道实现了(C)之间数据的快速传输。
A CPU和外设B 内存和CPU C内存和外设D外设和外设4、设备驱动程序是系统提供的一种通道程序,它专门用于在请求I/O的进程与设备控制器之间传输信息。
下面的选项中不是设备驱动程序功能的是( C )。
A 检查用户I/O请求的合法性。
B 及时响应由控制器或由通道发来的中断请求。
C 控制I/O设备的I/O操作。
D了解I/O设备的状态,传送有关参数,设置设备的工作方式。
5、下表中列出的是一段简单的通道程序(内含6条指令),在下面的各个选项中叙述不正确B 这些指令涉及的数据内存地址有相邻接的地方。
C 该段通道程序共处理了5条记录。
D 单记录最大为230个字节。
6、基本的I/O设备处理进程一般处于( C )状态。
A 就绪B 执行C 阻塞D 死锁7、缓冲技术的缓冲池在( A )中。
A 内存B 外存C ROMD 寄存器8、通过硬件和软件的功能扩充,把原来独占的设备改造成能为若个用户共享的设备,这种设备称为( D )。
A 存储设备B 系统设备C 用户设备D 虚拟设备9、为了使多个进程能有效地同时处理输入和输出,最好使用( A )结构的缓冲技术。
A 缓冲池B 循环缓冲C 单缓冲D 双缓冲10、如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是(C )。
A 程序查询B 中断方式C DMA方式D 无条件存取方式11、在采用SPOOLING系统中,用户的打印结果首先被送到( A )。
A 磁盘固定区域B 内存固定区域C 终端D 打印机12、设备管理程序对设备的管理是借助于一些数据结构来进行的,下面的( A )不属于设备管理数据结构。
第五章作业解答(P170)P170:9. 在银行家算法中,出现如下资源分配情况:Allocation Need AvailableA B C D A B C D A B C D P0 0 3 2 0 0 1 2 1 6 2 31 0 0 0 1 7 5 0P11 3 5 423 5 6P20 3 3 2 0 6 5 2P30 0 1 4 0 6 5 6P4(1)解答:【安全状态检查--是否存在安全序列】,根据安全性检查算法:令work=available=(1,6,2,3),Finish=false.因为:Finish[0]=false,且 work>Need[0]=(0,0,1,2),因此,P0可以运行结束,Finish[0]=true, work=work+allocation[0]=(1,6,5,5).因为:Finish[3]=false,且 work>Need[3]=(0,6,5,2),因此,P3可以运行结束,Finish[3]=true, work=work+allocation[3]=(1,9,8,7).因为:Finish[1]=false,且 work>Need[1]=(1,7,5,0),因此,P1可以运行结束,Finish[1]=true, work=work+allocation[1]= (2,9,8,7).因为:Finish[2]=false,且 work>Need[2]=(2,3,5,6),因此,P2可以运行结束,Finish[2]=true, work=work+allocation[2]= (3,12,13,11).因为:Finish[4]=false,且 work>Need[4]=(0,6,5,6),因此,P4可以运行结束,Finish[4]=true, work=work+allocation[4]= (3,12,14,15).可见,可以找到一个安全序列<P0,P3,P1,P2,P4>,使得所有0≤i≤4,Finish[i]=true,因此当前系统是安全的。
第五章死锁练习题参考答案
(一)单项选择题
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和1,系统的资源剩余量为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,满足其全部请求。
所以说目前系统处于安全状态。
(2)若此时给进程D分配(2,5,0,0)个资源,进程D尚需(3,2,0,0),则系统剩余的资源量为(0,
1,2,1);若待进程B归还资源后,可分配资源能达到(1,1,4,1),根据各进程尚需资源量,只有先满足E的资源需求,待它归还资源后,可配资源只有(1,1,6,1),显然无法满足进程A,C,D中任何一个进程的资源要求,这样系统就会产生死锁。
所以此时系统不能为进程D分配(2,5,0,0)个资源。
3.证明:设n个进程请求的最大资源量分别为x i,i=1,2,…n。
根据条件∑x i<m+n, 从而∑x i-n<m, 则有∑(x i-1)<m,∴∑(x i-1)+1<=m.资源申请最坏的情况是每个进程已得到了(x i-1)个资源,现均要中请最后一个资源,由上式可知系统至少还有一个剩余资源可分配给某个进程,待它归还资源后就可供其他进程使用,因此该系统不会发生死锁。
4.(1)用列表法分析这个问题,下表中每一行表示这一次资源分配后的情况。
实际分配资源次序申请资源次序进程已占资源量尚需资源量剩余资源量(12)
1 1 B 4 6 8
2 2 C
3
4 5
3 3 A 3 2 2
等待 4 C
等待 5 B
4 6 A
5 0 0
归还 A 5
5 4 C 5 2 3
6 8 C
7 0 1
归还 C 8
7 5 B 6 4 6
8 7 B 10 0 2
在进程第1,2,3次申请时,剩余资源量都能分别满足进程B,C,A的最大需求量10,7,5,所以都能分配,第4次申请时进程C尚需4个资源,大于剩余量(2个),虽然本次仅申请2个,根据银行家算法不能分配,只能等待。
同理,第5次申请时进程B也只能等待,当第6次申请时,进程A的要求能得到满足,这实际上是第4次分配资源,待进程A归还资源后,可分配资源达到5个,此时它己超过进程c的尚需资源量(4),而小于B的尚需资源量(6),所以可完成第4次申请,即第5次实际分配。
由上表可以看出,完成第5次分配后,进程A己分配到全部资源(5个),且已归还给系统(或许该进程已完成)、进程B已占有资源4个,进程C巳占资源5个。
(2)用(1)中同样的方法完成全部进程的资源分配,具体分配过程列在上表的最后四行.。