From 54d508bd43259d8853a5ad12d561438c73dd20ba Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Thu, 8 Mar 2018 22:48:09 +0800 Subject: [PATCH] auto commit --- notes/计算机操作系统.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md index e7a540da..4108d7a6 100644 --- a/notes/计算机操作系统.md +++ b/notes/计算机操作系统.md @@ -51,7 +51,7 @@ * [1. 鸵鸟策略](#1-鸵鸟策略) * [2. 死锁预防](#2-死锁预防) * [2.1 破坏互斥条件](#21-破坏互斥条件) - * [2.2 破坏请求与保持条件](#22-破坏请求与保持条件) + * [2.2 破坏占有和等待条件](#22-破坏占有和等待条件) * [2.3 破坏不可抢占条件](#23-破坏不可抢占条件) * [2.4 破坏环路等待](#24-破坏环路等待) * [3. 死锁避免](#3-死锁避免) @@ -540,7 +540,6 @@ void philosopher(int i) { 3. 不可抢占:已经分配给一个进程的资源不能强制性地被抢占,它只能被占有它的进程显示地释放。 4. 环路等待:有两个或者两个以上的进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源。 - ## 死锁的处理方法 ### 1. 鸵鸟策略 @@ -557,7 +556,7 @@ void philosopher(int i) { 例如假脱机打印机技术允许若干个进程同时输出,唯一真正请求物理打印机的进程是打印机守护进程。 -#### 2.2 破坏请求与保持条件 +#### 2.2 破坏占有和等待条件 一种实现方式是规定所有进程在开始执行前请求所需要的全部资源。 @@ -626,6 +625,8 @@ void philosopher(int i) { 2. 如果找到了这样一个进程,那么将 C 矩阵的第 i 行向量加到 A 中,标记该进程,并转回 1。 3. 如果有没有这样一个进程,算法终止。 +可以看到,死锁检测和银行家算法中判断是否为安全状态的方法类似。 + #### 4.2 死锁恢复 - 利用抢占恢复 @@ -687,7 +688,7 @@ void philosopher(int i) { 举例:一个系统为某进程分配了三个物理块,并有如下页面引用序列: -7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 +