第4章死锁处理 本章知识点: 4.1死锁问题概述 4.2死锁处理 43哲学家用餐问题
1 第4章 死锁处理 本章知识点: • 4.1 死锁问题概述 • 4.2 死锁处理 • 4.3 哲学家用餐问题
41死锁问题概述 死锁是由于进程间相互竞争系统资源或 通信而引起的一种阻塞现象。如果操作 系统不采取特别的措施,这种阻塞将永 远存在,最终可能导致整个系统处于瘫 痪状态。因此,死锁问题是操作系统中 需要考虑的重要问题
2 4.1 死锁问题概述 死锁是由于进程间相互竞争系统资源或 通信而引起的一种阻塞现象。如果操作 系统不采取特别的措施,这种阻塞将永 远存在,最终可能导致整个系统处于瘫 痪状态。因此,死锁问题是操作系统中 需要考虑的重要问题
4.1.1可重用资源 下面是一个使用可重用资源而发生死锁的例子。两个 进程P1和P2竞争必须互斥访问的磁盘文件D和磁带机T, 程序重复地执行以下操作: repeat repeat Request (D) Request (t) Re Request (D) Release(t) Release(d) Release (d) Release (t) forever forever
3 4.1.1 可重用资源 下面是一个使用可重用资源而发生死锁的例子。两个 进程P1和P2竞争必须互斥访问的磁盘文件D和磁带机T, 程序重复地执行以下操作: P1 P2 repeat repeat … … Request(D); Request(T); … … Request(T); Request(D); … … Release(T); Release(D); … … Release(D); Release(T); … … forever forever
4.1.2消耗型资源 下面是使用消耗型瓷源而发生死锁的例子: P Receive(p2, M): Receive(P1,Q); Send( Po, n Send (P, r 如果 Receive阻塞就会发生死锁
4 4.1.2 消耗型资源 下面是使用消耗型资源而发生死锁的例子: P1 P2 … … Receive(P2 ,M); Receive(P1 ,Q); … … Send(P2 ,N); Send(P1 ,R); 如果Receive阻塞就会发生死锁
413产生死锁的条件 系统产生死锁有四个必要条件: 互斥 占用并等待 非强占 循环等待
5 4.1.3 产生死锁的条件 系统产生死锁有四个必要条件: • 互斥。 • 占用并等待 • 非强占 • 循环等待
4.2死锁处理 为了使系统不发生死锁,必须设法破坏 产生死锁的四个必要条件之一,或者允许 死锁产生,但当死锁发生时能检测出死 锁,并有能力实现恢复
6 4.2 死锁处理 为了使系统不发生死锁,必须设法破坏 产生死锁的四个必要条件之一,或者允许 死锁产生,但当死锁发生时能检测出死 锁,并有能力实现恢复
4.2.1死锁预防 死锁预防是设法至少破坏产生死锁的必 要条件之一(除互斥条件之外),从而 消除产生死锁的任何可能性,严格地防 止死锁的出现。但方法过于保守,对资 源限制严格,使资源利用率和进程执行 效率大大降低,它是以降低处理速度作 为代价的
7 4.2.1 死锁预防 死锁预防是设法至少破坏产生死锁的必 要条件之一(除互斥条件之外),从而 消除产生死锁的任何可能性,严格地防 止死锁的出现。但方法过于保守,对资 源限制严格,使资源利用率和进程执行 效率大大降低,它是以降低处理速度作 为代价的
42.1死锁预防 1.互斥 可用第3章介绍的解决互斥问题的思想和 技术来解决有关由于互斥条件不满足而 产生的死锁问题
8 4.2.1 死锁预防 1. 互斥 可用第3章介绍的解决互斥问题的思想和 技术来解决有关由于互斥条件不满足而 产生的死锁问题
421死锁预防 2.破坏“占用并等待”条件 采用资源的静态预分配策略,一次申请所有的资 原 优点: 简单安全,易于实施; 在进程的活动较单一时性能好: 无须抢占。 缺点: ●资源利用率低; 启动进程慢,效率低; 有“饥饿”现象存在
9 4.2.1 死锁预防 2. 破坏“占用并等待”条件 采用资源的静态预分配策略,一次申请所有的资 源。 优点: •简单安全,易于实施; •在进程的活动较单一时性能好; •无须抢占。 缺点: •资源利用率低; • 启动进程慢,效率低; • 有“饥饿”现象存在
42.1死锁预防 3.破坏“非抢占”条件 方法1:若拥有某种资源的进程在申请其他资源时遭到 拒绝,则它必须释放其占用的资源,以后若有必要可 再次申请上述资源。方法2:当一进程申请的资源正被 其他进程占用时,可通过操作系统抢占该资源,此方 法在两个进程优先级相同时,不能防止死锁。 优点: 对状态容易保留和恢复的资源较为方便 缺点: ·实现困难,恢复现场代价高: ·导致过多的不必要抢占 易导致循环重启
10 4.2.1 死锁预防 3. 破坏“非抢占”条件 方法1:若拥有某种资源的进程在申请其他资源时遭到 拒绝,则它必须释放其占用的资源,以后若有必要可 再次申请上述资源。方法2:当一进程申请的资源正被 其他进程占用时,可通过操作系统抢占该资源,此方 法在两个进程优先级相同时,不能防止死锁。 优点: •对状态容易保留和恢复的资源较为方便。 缺点: •实现困难,恢复现场代价高; • 导致过多的不必要抢占; • 易导致循环重启