Skip to content

Commit

Permalink
_sidebar
Browse files Browse the repository at this point in the history
  • Loading branch information
TyrannosaurusLjx committed Mar 17, 2024
1 parent 0a2d008 commit a010292
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 4 deletions.
61 changes: 61 additions & 0 deletions docs/Notebook/Operating_System/2-进程与线程.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)


### 安全序列
就是指如果系统按照这种序列分配资源,则每个进程都能顺利完成。

### 安全状态
只要能找出一个安全序列,系统就是安全状态。当然,安全序列可能有多个。

如果分配了资源之后,系统中找不出任何一个安全序列,系统就进入了不安全状态。
这就意味着之后 可能所有进程都无法顺利的执行下去。当然,如果有进程提前归还了一些资源,
那系统也有可能重新 回到安全状态,不过我们在分配资源之前总是要考虑到最坏的情况。


#### 和死锁的关系

如果系统处于安全状态,就一定不会发生死锁。
如果系统进入不安全状态,就可能发生死锁
处于不 安全状态未必就是发生了死锁,但发生死锁时一定是在不安全状态)


# 银行家算法







Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit a010292

Please sign in to comment.