导航菜单

操作系统/死锁与避免
课程进度 72% · 第8/10章8/10章 · 标签 1/5
1

死锁的定义与条件

死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉,它们都无法推进。

死锁的四个必要条件

死锁发生需同时满足以下四个条件:

  • 互斥(Mutual Exclusion):资源一次只能被一个进程占用
  • 占有且等待(Hold and Wait):进程已占有一些资源,同时等待其他资源
  • 不剥夺(No Preemption):进程已占有的资源不能被强行剥夺
  • 循环等待(Circular Wait):存在进程资源的循环等待链

📖四个条件缺一不可!只要破坏其中一个条件,就可以预防死锁的发生。

2

系统模型与死锁状态图

死锁的经典场景:进程A持有资源X等待资源Y,进程B持有资源Y等待资源X,形成循环等待。

进程A进程B资源X资源Y

上图:进程A持有资源X(←方向),进程B持有资源Y(←方向),同时进程A等待资源Y(→方向),进程B等待资源X(→方向),形成死锁。

死锁互斥持有等待不剥夺循环等待