死锁概念学习卡片
- 定义
- 多个进程因竞争资源而互相等待,导致所有进程阻塞无法推进的现象
- 典型示例
-
- 哲学家进餐问题:5位哲学家循环等待筷子
- 四角关系模型:"我爱你→你爱他→他爱她→她爱我"的资源占有循环
- 本质特征
- 所有进程都持有部分资源并等待其他进程释放资源
- 1. 互斥条件
- 资源必须互斥使用(如筷子、打印机)
- 2. 不可剥夺条件
- 已获得的资源在未使用完前不能被强行夺走
- 3. 请求和保持条件
- 保持至少一个资源的同时请求新资源
- 4. 循环等待条件
- 存在进程-资源的循环等待链(注意:不一定是充分条件)
- 关键说明
- 当每类资源只有一个时,循环等待与死锁互为充要条件
- 死锁特征
-
- 两个及以上进程同时发生
- 进程处于阻塞态
- 由循环等待资源引起
- 饥饿特征
-
- 可能只有一个进程发生
- 进程可能处于阻塞态或就绪态
- 由资源分配策略不合理导致
- 死循环特征
-
- 可能只有一个进程发生
- 进程处于运行态
- 由代码逻辑错误导致
- 1. 预防死锁
- 破坏四个必要条件中的一个或多个
- 2. 避免死锁
- 使用算法(如银行家算法)防止系统进入不安全状态
- 3. 检测与解除
- 允许死锁发生,系统负责检测并解除(如强制终止进程)
- 策略选择依据
- 需要在安全性和系统效率之间权衡
4/4 张卡片