[关闭]
@740340735 2016-04-19T05:20:31.000000Z 字数 971 阅读 894

操作系统 作业七

操作系统

陆一洲 5140309557 of F1403020


7.2
考虑如下的死锁可能发生在哲学家进餐中,哲学家在同个时间获得筷子。讨论此种情况下死锁的四个必要条件的设置。讨论如何在消除其中任一条件来避免死锁的发生。

死锁是可能的,因为哲学家进餐问题是以以下的方式满足四个必要条件:

  • 相斥所需的筷子
  • 哲学家守住的筷子在手,而他们等待其他筷子
  • 没有非抢占的筷子,一个筷子分配给一个哲学家不能被强行拿走
  • 有可能循环等待

死锁可避免克服的条件方式如下:

  • 允许同时分享筷子
  • 有哲学家放弃第一双筷子如果他们无法获得其他筷子
  • 允许筷子被强行拿走如果筷子已经被一位哲学家了占有了很长一段时间
  • 实施编号筷子,总是获得较低编号的筷子,之后才能获得较高的编号的筷子

7.3
一种可能以防止死锁的解决办法是要有一个单一的,优先于任何其他资源的资象 源。例如,如果多个线程试图访问同步对象 A……E ,那么就可能发生死锁。(这种同步对象可能包括互斥体,信号量,条件变量等),我们可以通过增加第六个象 对象来防止死锁。每当一个线程希望获得同步锁定给对象 A……E ,它必须首先获得对象 F 的锁。该解决方案被称为遏制:对象 A……E 的锁内载对象 F 的锁。对比此方案的循环等待和 Section7.4.4 的循环等待。
这很有可能不是一个好的解决办法,由于它产生的范围过大。
尽可能在狭隘的范围内定义死锁政策会更好。

7.5
在一个真实的计算机 系统中,可用的资源和进程命令对资源的要求都不会持续很久是一致的长期(几个月)。资源会损坏或被替换,新的进程会进入和离开系统,新的资源会被购买和添加到系统中。如果用银行家算法控制死锁,下面哪些变化是安全的(不会导致可能的死锁) ,并且在什么情况下发生?
  • 增加可用资源(新的资源被添加到系统)
    这个可以在没有任何问题的情况下安全地改变
  • 减少可用资源(资源被从系统中永久性地移出)
    这可能会影响到系统,并导致可能性死锁因为系统的安全性假定其拥有一定数量的可用资源
  • 增加一个进程的 Max(进程需要更多的资源,超过所允许给予的资源)
    这可能会影响到系统,并可能导致死锁
  • 减少一个进程的 Max(进程不再需要那么多资源)
    这个可以在没有任何问题的情况下安全地改变
  • 增加进程的数量
    如果允许分配资源给新进程,那么该系统并没有进入一个不安全的状态。
  • 减少进程的数量
    这个可以在没有任何问题的情况下安全地改变。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注