admin 管理员组

文章数量: 887191

操作系统之死锁

    • 一、 死锁的概念
      • 1. 什么是死锁
      • 2. 进程死锁、饥饿、死循环的区别
      • 3. 死锁产生的必要条件
      • 4. 什么时候会发生死锁
      • 5. 死锁的处理策略
      • 6. 总结
    • 二、死锁的处理策略—预防死锁
      • 1. 破坏互斥条件
      • 2. 破坏不可剥夺条件
      • 3. 破坏请求和保持条件
      • 4. 破坏循环等待条件
      • 5. 总结
    • 三、死锁的处理策略—避免死锁
      • 1. 什么是安全序列
      • 2. 什么是系统的不安全状态,与死锁有何联系
      • 3. 如何避免系统进入不安全状态—银行家算法
      • 4. 总结
    • 四、死锁的处理策略—检测和解除
      • 1. 死锁的检测
      • 2. 死锁的解除
      • 3. 总结

一、 死锁的概念

1. 什么是死锁

2. 进程死锁、饥饿、死循环的区别

3. 死锁产生的必要条件

4. 什么时候会发生死锁

5. 死锁的处理策略

6. 总结

二、死锁的处理策略—预防死锁

1. 破坏互斥条件

2. 破坏不可剥夺条件

3. 破坏请求和保持条件

4. 破坏循环等待条件

5. 总结

三、死锁的处理策略—避免死锁

1. 什么是安全序列

简而言之,能够保证程序正常运行下去的一种资源分配策略(顺序)就是安全序列

  • 不安全的策略

  • 安全的策略


2. 什么是系统的不安全状态,与死锁有何联系

3. 如何避免系统进入不安全状态—银行家算法

  • 可以得到安全序列的情况




  • 不可以得到安全序列的情况

  • 银行家算法代码实现

4. 总结

四、死锁的处理策略—检测和解除

1. 死锁的检测

  • 不会发生死锁的案例
    1.R1分配给P1进程2个资源,分配给P2进程1个资源,目前R1没有空闲资源;R2分配给P2进程1个资源,R1剩余1个空闲资源;此时P1向R1申请1个资源,成功!执行完成,释放所有资源。但是P2向R1申请资源失败!因为R1没有空闲资源了。

    2.目前R1向P2进程分配1个资源,剩余2个空闲资源;R2向P2进程分配1个资源,剩余1个空闲资源;此时,P2向R1申请1个资源,成功!进程P2执行完成释放所有资源。


  • 会发生死锁的案例
    1.P3进程正常执行完成!

    2.P3释放所有资源后,仍然不能满足P1和P2的所需资源

  • 总结死锁检查方法

2. 死锁的解除

3. 总结

本文标签: 死锁 操作系统