操作系统 第三章 4 死锁

1、死锁(Deadlock):

指多个进程在运行过程中,因争夺资源而造成的一种僵局。当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。

死锁 : 指进程之间无休止地互相等待!

饥饿 :指一个进程无休止地等待!

2、产生死锁的原因

  1. 竞争资源
  2. 进程间推进顺序非法

3、产生死锁的必要条件  (四个条件都具备就会死锁,缺一就不会死锁)

  1. 互斥条件
  2. 请求和保持条件
  3. 不剥夺条件
  4. 环路等待条件

4、处理死锁的基本方法:

1)事先预防:预防死锁、避免死锁

2)事后处理: 检测死锁、解除死锁

5、预防死锁的方法:

  • 摒弃“请求和保持”条件
  • 摒弃“不剥夺”条件: 允许进程先运行,但当提出的新要求不被满足时必须释放它已保持的所有资源,待以后需要时再重新申请。
  • 摒弃“环路等待”条件

6、避免死锁:

只要使系统始终处于安全状态,便可避免发生死锁。

 安全状态:系统能按某种进程顺序为每个进程分配所需资源,直至满足每个进程对资源的最大需求,并能顺利完成。

不安全状态:系统无法找到一种使多个进程能够顺利分配资源执行完的安全序列

不是所有的不安全状态都是死锁状态

7、死锁处理方法比较:

猜你喜欢

转载自blog.csdn.net/weixin_43214005/article/details/83903954