diff --git "a/docs/Notebook/Operating_System/2-\350\277\233\347\250\213\344\270\216\347\272\277\347\250\213.md" "b/docs/Notebook/Operating_System/2-\350\277\233\347\250\213\344\270\216\347\272\277\347\250\213.md" index 5ba8e36f..cb85ecdc 100644 --- "a/docs/Notebook/Operating_System/2-\350\277\233\347\250\213\344\270\216\347\272\277\347\250\213.md" +++ "b/docs/Notebook/Operating_System/2-\350\277\233\347\250\213\344\270\216\347\272\277\347\250\213.md" @@ -262,6 +262,67 @@ Swap指令![image_2024-03-09-13-31-48](img/image_2024-03-09-13-31-48.png) 实际上就是把对计算机的某种资源的描述,调用等等写成了一个类,其他进程想要对这种资源进行使用只能通过这个类 +# 死锁 + +表示进程竞争资源陷入的一种僵局(等待对方手中的资源),使得各个程序都被阻塞 + +![image_2024-03-17-12-20-45](img/image_2024-03-17-12-20-45.png) + +## 死锁产生的必要条件 + + 1.互斥条件:对互斥资源的争夺才会导致死锁 + 2.不剥夺:进程所获的资源没有使用完之前不能被其他进程剥夺, + 只能该进程自己主动释放 + 3.请求和保持条件:进程已经拥有了一个资源,同时还在请求其他资源, + 而请求的资源正在被其他进程占用,此时请求被阻塞但是自己已有的资源也不释放 + 4.循环等待条件:存在一个资源的循环等待链,每个进程已经获得的资源在被下一个进程请求 + +*发生循环不一定死锁,但是死锁一定有循环等待* + +对不可剥夺资源的不合理分配就有可能导致死锁 + +## 处理策略 + +1. 预防死锁。破坏死锁产生的四个必要条件中的一个或几个。 + +2. 避免死锁。用某种方法防止系统进入不安全状态,从而避免死锁(银行家算法) + +3. 死锁的检测和解除。允许死锁的发生,不过操作系统会负责检测出死锁的发生,然后采取某种措 施解除死锁。 + +--- + +### 死锁总结 +![image_2024-03-17-12-32-15](img/image_2024-03-17-12-32-15.png) + + +# 死锁处理 + +![image_2024-03-17-12-56-03](img/image_2024-03-17-12-56-03.png) + + +### 安全序列 +就是指如果系统按照这种序列分配资源,则每个进程都能顺利完成。 + +### 安全状态 +只要能找出一个安全序列,系统就是安全状态。当然,安全序列可能有多个。 + + 如果分配了资源之后,系统中找不出任何一个安全序列,系统就进入了不安全状态。 + 这就意味着之后 可能所有进程都无法顺利的执行下去。当然,如果有进程提前归还了一些资源, + 那系统也有可能重新 回到安全状态,不过我们在分配资源之前总是要考虑到最坏的情况。 + + +#### 和死锁的关系 + + 如果系统处于安全状态,就一定不会发生死锁。 + 如果系统进入不安全状态,就可能发生死锁 + 处于不 安全状态未必就是发生了死锁,但发生死锁时一定是在不安全状态) + + +# 银行家算法 + + + + diff --git a/docs/Notebook/Operating_System/img/image_2024-03-17-12-20-45.png b/docs/Notebook/Operating_System/img/image_2024-03-17-12-20-45.png new file mode 100644 index 00000000..51c204c4 Binary files /dev/null and b/docs/Notebook/Operating_System/img/image_2024-03-17-12-20-45.png differ diff --git a/docs/Notebook/Operating_System/img/image_2024-03-17-12-32-15.png b/docs/Notebook/Operating_System/img/image_2024-03-17-12-32-15.png new file mode 100644 index 00000000..4c6ea5fb Binary files /dev/null and b/docs/Notebook/Operating_System/img/image_2024-03-17-12-32-15.png differ diff --git a/docs/Notebook/Operating_System/img/image_2024-03-17-12-56-03.png b/docs/Notebook/Operating_System/img/image_2024-03-17-12-56-03.png new file mode 100644 index 00000000..15c498cc Binary files /dev/null and b/docs/Notebook/Operating_System/img/image_2024-03-17-12-56-03.png differ diff --git a/docs/_sidebar.md b/docs/_sidebar.md index d0bf5a88..174d60f9 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -3,12 +3,12 @@ - DataStructure - [表](./Notebook/DataStructure/表.md) - Operating_System + - [-核心态指令](./Notebook/Operating_System/-核心态指令.md) + - [-用户态指令](./Notebook/Operating_System/-用户态指令.md) + - [1-计算机系统概述](./Notebook/Operating_System/1-计算机系统概述.md) + - [2-进程与线程](./Notebook/Operating_System/2-进程与线程.md) - [note-chapter1](./Notebook/Operating_System/note-chapter1.md) - [note-chapter2](./Notebook/Operating_System/note-chapter2.md) - - [核心态指令合集](./Notebook/Operating_System/核心态指令合集.md) - - [用户态指令合集](./Notebook/Operating_System/用户态指令合集.md) - - [计算机系统概述](./Notebook/Operating_System/计算机系统概述.md) - - [进程与线程](./Notebook/Operating_System/进程与线程.md) - Random_process - [Poisson过程](./Notebook/Random_process/Poisson过程.md) - [初等概率论](./Notebook/Random_process/初等概率论.md)