死锁概念学习卡片

🔒

死锁基本概念

点击查看详情

定义
多个进程因竞争资源而互相等待,导致所有进程阻塞无法推进的现象
典型示例
  • 哲学家进餐问题:5位哲学家循环等待筷子
  • 四角关系模型:"我爱你→你爱他→他爱她→她爱我"的资源占有循环
本质特征
所有进程都持有部分资源并等待其他进程释放资源
⚠️

死锁必要条件

点击查看详情

1. 互斥条件
资源必须互斥使用(如筷子、打印机)
2. 不可剥夺条件
已获得的资源在未使用完前不能被强行夺走
3. 请求和保持条件
保持至少一个资源的同时请求新资源
4. 循环等待条件
存在进程-资源的循环等待链(注意:不一定是充分条件)
关键说明
当每类资源只有一个时,循环等待与死锁互为充要条件
🔄

死锁 vs 饥饿 vs 死循环

点击查看详情

死锁特征
  • 两个及以上进程同时发生
  • 进程处于阻塞态
  • 循环等待资源引起
饥饿特征
  • 可能只有一个进程发生
  • 进程可能处于阻塞态或就绪态
  • 资源分配策略不合理导致
死循环特征
  • 可能只有一个进程发生
  • 进程处于运行态
  • 代码逻辑错误导致
🛠️

死锁处理策略

点击查看详情

1. 预防死锁
破坏四个必要条件中的一个或多个
2. 避免死锁
使用算法(如银行家算法)防止系统进入不安全状态
3. 检测与解除
允许死锁发生,系统负责检测并解除(如强制终止进程
策略选择依据
需要在安全性系统效率之间权衡

4/4 张卡片