操作系統恐龍書第十版課後答案 ch08

本文讨论了操作系统中的死锁问题,包括不同类型的死锁示例、系统在不安全状态下的运行可能性、银行家算法的应用以及预防和检测死锁的方法。通过具体的例子展示了如何判断系统的安全状态,并提出了防止死锁的策略,如包含性锁定。还探讨了饥饿问题及其解决方案,并通过资源分配图分析了死锁的可能性。最后,针对单向桥梁场景设计了一个避免死锁的算法,强调了在实际系统中预防死锁的重要性。
摘要由CSDN通过智能技术生成

8.1 List three examples of deadlocks that are not related to a computersystem environment.

a.兩輛車從相反方向穿過一座單行道橋。

b.一個人從梯子上下來,而另一個人在爬梯子。

c.兩列列車在同一軌道上相互靠近。

8.2 Suppose that a system is in an unsafe state. Show that it is possible for the threads to complete their execution without entering a deadlocked state.

不安全狀態不一定會導致死鎖,它只是意味著我們不能保證死鎖不會發生。因此,處於不安全狀態的系統可能仍然允許完成所有process而不發生死鎖。考慮這樣一種情況,即系統在process P0、P1和P2之間分配了12個資源。資源按照以下策略分配

 目前有兩種可用資源。由於process P1可能完成,此系統處於不安全狀態,因此總共釋放了四個資源。但我們不能保證P0和P2 process 能夠完成。然而,流程可能會在請求任何進一步的資源之前釋放資源。例如,process P2可以釋放一個資源,從而將資源總數增加到五個。這允許process P0完成,這將釋放總共九個資源,從而允許process P2也完成.

8.3 Consider the following snapshot of a system:

Answer the following questions using the banker’s algorithm: 

a. What is the content of the matrix Need? 

b. Is the system in a safe state?

 c. If a request from thread T1 arrives for (0,4,2,0), can the request be granted immediately?

a、 過程P0到P4的需求值分別為(0、0、0、0)、(0、7、5、0)、(1、0、0、2)、(0、0、2、0)和(0、6、4、2)。

b、對當可用值等於(1、5、2、0)時,可以運行processP0或P3。一旦流程P3運行,它就會釋放其資源,從而允許所有其他現有流程運行。

c、這將導致可用的值為(1、1、0、0)。可以完成的process的一個順序是P0、P2、P3、P1和P4.

8.4 A possible method for preventing deadlocks is to have a single, higher-order resource that must be requested before any other resource. For example, if multiple threads attempt to access the synchronization objects A ··· E, deadlock is possible. (Such synchronization objects may include mutexes, semaphores, condition variables, and the like.) We can prevent deadlock by adding a sixth object F. Whenever a

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值