Skip to content

Commit

Permalink
deadlock
Browse files Browse the repository at this point in the history
  • Loading branch information
wolverinn committed Dec 3, 2019
1 parent b9232e7 commit 1b9bb39
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions Operating Systems.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,27 @@ wait操作:执行wait操作的进程进入条件变量链末尾,唤醒紧急
- 实行资源预先分配策略(当一个进程开始运行之前,必须一次性向系统申请它所需要的全部资源,否则不运行);
- 或者只允许进程在没有占用资源的时候才能申请资源(申请资源前先释放占有的资源);
- 缺点:很多时候无法预知一个进程所需的全部资源;同时,会降低资源利用率,降低系统的并发性;
- 破坏非抢占条件:
- 破坏循环等待条件:
- 破坏非抢占条件:允许进程强行抢占被其它进程占有的资源。会降低系统性能;
- 破坏循环等待条件:对所有资源统一编号,所有进程对资源的请求必须按照序号递增的顺序提出,即只有占有了编号较小的资源才能申请编号较大的资源。这样避免了占有大号资源的进程去申请小号资源。
</details>

<details>
<summary>死锁避免</summary>

动态地检测资源分配状态,以确保系统处于安全状态,只有处于安全状态时才会进行资源的分配。所谓安全状态是指:即使所有进程突然请求需要的所有资源,也能存在某种对进程的资源分配顺序,使得每一个进程运行完毕。

> 银行家算法
</details>
<details>
<summary>死锁解除</summary>

> 如何检测死锁:检测有向图是否存在环;或者使用类似死锁避免的检测算法。
死锁解除的方法:
- 利用抢占:挂起某些进程,并抢占它的资源。但应防止某些进程被长时间挂起而处于饥饿状态;
- 利用回滚:让某些进程回退到足以解除死锁的地步,进程回退时自愿释放资源。要求系统保持进程的历史信息,设置还原点;
- 利用杀死进程:强制杀死某些进程直到死锁解除为止,可以按照优先级进行。
</details>

### 参考
Expand Down

0 comments on commit 1b9bb39

Please sign in to comment.