第5章 死锁 练习题参考答案

合集下载

互联网数据库网上作业第五章答案

互联网数据库网上作业第五章答案

互联网数据库网上作业第五章答案
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.银行家算法是在保证至少有一个进程能得到所需的全部资源的前提下进行资源分配的。

操作系统第五章课后习题讲解

操作系统第五章课后习题讲解

图5.10
图5.11
第五章课后习题讲解
LOGO
这个状态是安全的。 解:这个状态是安全的。 因为C={3 C={3, }而Allocation={2, 因为C={3,7,2,3 }而Allocation={2,5,1, 2}则Available={1, 1}。 2}则Available={1,2,1,1}。 NEED 进程 P0 P1 P2 P3 P4 R0 1 2 3 3 0 R1 3 3 1 1 2 R2 1 1 2 0 1 R3 1 1 3 3 1
每个进程均只允许申请1 答:4个。每个进程均只允许申请1台,每个进程 Allocation均为 均为1 因为max max为 Available为 Allocation均为1,因为max为2,则Available为1。 此时,总共的Allocation Allocation为 所以,最多允许4 此时,总共的Allocation为4,所以,最多允许4 个进程参与竞争。 个进程参与竞争。
第五章课后习题讲解
LOGO
5.11 考虑图5.9所示的资源分配图,哪个进 程会发生死锁?
图5.9
P3、P4会发生死锁 因为P3 R3、P4、R4形成 会发生死锁。 P3、 答:P3、P4会发生死锁。因为P3、R3、P4、R4形成 环路。 环路。
第五章课后习题讲解
LOGO
5.13 假定一个系统具有四个系统类型,C={3,7, 2,3},最大资源需求数表如图5.10所示。资源分 配器根据图5.11中的表来分配资源,这个状态安 全吗?为什么?
1 3 1 1 3 4 1 2 1 2 1 1 2 3 1 1 3 6 1 3 3 1 2 3 3 7 2 3 3 1 0 3 3 6 2 3 0 2 1 1 1 3 1 2

计算机死锁练习题

计算机死锁练习题

计算机死锁练习题死锁,作为计算机系统中一种常见的并发问题,经常被用作计算机科学相关课程的训练题目。

通过解决死锁问题,我们可以更好地理解并发编程中的资源竞争和互斥等概念。

下面,我将通过几个实际的练习题,帮助读者更好地理解死锁问题。

首先,考虑一个简单的死锁场景:两个线程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. 死锁预防不允许进程获取资源,而银行家算法允许进程在需要时获取资源。

操作系统——精髓与设计原理(第五章答案)

操作系统——精髓与设计原理(第五章答案)
hut(); • signal(returnreindeer)//释放驯鹿返回互斥信号量} • } • Kids i:{making toys; • wait(needhelp);//获得需要帮助信号量 • Kidscount++; • if elvescount==3 • signal(wakesanta);//释放唤醒圣诞 //老人信号量 • else signal(needhelp);//释放需要帮助互 //斥信号量 • }
• 5.9 • 错误情形:假设有2个进程都调用Wait且s的 初值为0。在第一个进程执行完 SignalB(mutex)且尚未执行WaitB(delay)时, 第二个进程开始调用Wait,也停在同一点 (即SignalB(mutex)和WaitB(delay)之间)。 这时,s的值为-2,而mutex是打开的。假如 有另外2个进程在这时相继调用了Signal, 那么他们每个都会做SignalB(delay)操作, 但程序中后一个SignalB将没有意义。
总述: • 当一个进程希望进入其临界区,它将得到 一张票,票的号码将是所有等待进入临界 区或已在临界区的进程所得到票的号码中 最大者加1。拥有最小票号的进程将率先进 入临界区。如果有多个进程得到的票具有 相同的号码,则进程号更小的进程将更占 优势。当一个进程离开其临界区,它将重 置其中票号为0。
• b.解释此算法如何避免死锁 • 死锁时的情形:每个人都拿到了顺序号,但 都拿不到面包。 • 在本算法中即使顺序号相同,但数组下标是 不同的。所以进程总可推进不会发生死锁。 • c.解释此算法如何加强互斥; • (1)对临界资源面包是按照顺序号互斥的使用 • (2)对number数组的操作通过写操作前置true 保证其它进程此时不能对其读,从而保证读 写互斥。

(第5章操作系统的资源管理)习题五答案

(第5章操作系统的资源管理)习题五答案

(第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)竞争有限的系统资源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章死锁练习题参考答案
(一)单项选择题
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)中同样的方法完成全部进程的资源分配,具体分配过程列在上表的最后四行.。

相关文档
最新文档