diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md index 873545cb..6c1488bb 100644 --- a/notes/计算机操作系统.md +++ b/notes/计算机操作系统.md @@ -898,7 +898,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 不试图阻止死锁,而是当检测到死锁发生时,采取措施进行恢复。 -**(一)每种类型一个资源的死锁检测** +(一)每种类型一个资源的死锁检测 <div align="center"> <img src="../pics//b1fa0453-a4b0-4eae-a352-48acca8fff74.png"/> </div><br> @@ -908,7 +908,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 每种类型一个资源的死锁检测算法是通过检测有向图是否存在环来实现,从一个节点出发进行深度优先搜索,对访问过的节点进行标记,如果访问了已经标记的节点,就表示有向图存在环,也就是检测到死锁的发生。 -**(二)每种类型多个资源的死锁检测** +(二)每种类型多个资源的死锁检测 <div align="center"> <img src="../pics//e1eda3d5-5ec8-4708-8e25-1a04c5e11f48.png"/> </div><br> @@ -929,7 +929,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 2. 如果找到了这样一个进程,那么将 C 矩阵的第 i 行向量加到 A 中,标记该进程,并转回 1。 3. 如果没有这样一个进程,算法终止。 -**(三)死锁恢复** +(三)死锁恢复 - 利用抢占恢复 - 利用回滚恢复 @@ -939,17 +939,17 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 在程序运行之前预防发生死锁。 -**(一)破坏互斥条件** +(一)破坏互斥条件 例如假脱机打印机技术允许若干个进程同时输出,唯一真正请求物理打印机的进程是打印机守护进程。 -**(二)破坏占有和等待条件** +(二)破坏占有和等待条件 一种实现方式是规定所有进程在开始执行前请求所需要的全部资源。 -**(三)破坏不可抢占条件** +(三)破坏不可抢占条件 -**(四)破坏环路等待** +(四)破坏环路等待 给资源统一编号,进程只能按编号顺序来请求资源。 @@ -957,7 +957,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 在程序运行时避免发生死锁。 -**(一)安全状态** +(一)安全状态 <div align="center"> <img src="../pics//ed523051-608f-4c3f-b343-383e2d194470.png"/> </div><br> @@ -967,7 +967,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 安全状态的检测与死锁的检测类似,因为安全状态必须要求不能发生死锁。下面的银行家算法与死锁检测算法非常类似,可以结合着做参考对比。 -**(二)单个资源的银行家算法** +(二)单个资源的银行家算法 一个小城镇的银行家,他向一群客户分别承诺了一定的贷款额度,算法要做的是判断对请求的满足是否会进入不安全状态,如果是,就拒绝请求;否则予以分配。 @@ -975,7 +975,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 上图 c 为不安全状态,因此算法会拒绝之前的请求,从而避免进入图 c 中的状态。 -**(三)多个资源的银行家算法** +(三)多个资源的银行家算法 <div align="center"> <img src="../pics//62e0dd4f-44c3-43ee-bb6e-fedb9e068519.png"/> </div><br>