← 返回操作系统目录
操作系统死锁#60

死锁

362
标签操作系统
目录 · 5 个章节

产生原因

  • 不可剥夺资源的竞争,以及进程推进顺序不当,都可能导致死锁。

定义

  • 多个进程因竞争资源而造成的一种僵局。如果没有外力,这些进程将无法继续推进。

死锁的必要条件

  1. 互斥条件:资源一次只能被一个进程使用。
  2. 不剥夺条件:进程已获得的资源不能被强行剥夺,只能由进程主动释放。
  3. 请求并保持条件:进程在保持已有资源的同时,又请求新的资源。
  4. 循环等待条件:存在一组进程循环等待资源。

处理方法

  1. 预防死锁
    • 破坏互斥条件通常不现实,因为有些资源天然需要互斥访问。
    • 破坏不剥夺条件。
    • 破坏请求并保持条件。
    • 破坏循环等待条件。
  2. 避免死锁:安全状态、银行家算法。
  3. 检测死锁:利用死锁定理。
  4. 解除死锁:资源剥夺法、撤销进程法、进程回退法。

解题公式

设某类资源共有 n 个,由 m 个进程共享,每个进程最多需要 p 个该类资源。若要保证系统不会因该类资源发生死锁,一个常用充分条件是:

nm×(p1)+1n \ge m \times (p - 1) + 1

等价地,已知 nm 时,可以保证不死锁的最大 p 满足:

pn1m+1p \le \left\lfloor \frac{n - 1}{m} \right\rfloor + 1

讨论

0 条评论

登录后参与讨论

登录后可以发布评论、回复和点赞。

暂无评论。

x1a0Y4NGren's Blog

一个计算机学生的学习记录、算法题解与个人知识管理。

RSS