1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Update 操作系统常见面试题 & 知识点总结.md

This commit is contained in:
luo 2022-03-01 16:38:17 +08:00 committed by GitHub
parent 1628e600ee
commit 9e04950eed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -213,6 +213,7 @@ tag:
图中2-21是**进程-资源分配图**的一个例子,其中公有三个资源类,每个进程的资源占有和申请情况已清楚地表示在图中。在这个例子中,由于存在**占有和等待资源的环路**,导致一组进程永远处于等待资源的状态,**发生了死锁**。
<img src="https://github.com/zhengjianda/JavaGuide/blob/main/docs/cs-basics/operating-system/images/%E8%BF%9B%E7%A8%8B-%E8%B5%84%E6%BA%90%E5%88%86%E9%85%8D%E5%9B%BE.jpg" height="300"></img>
进程-资源分配图中存在环路**并不一定是**发生了死锁。因为循环等待资源仅仅是死锁发生的必要条件而不是充分条件。图2-22便是一个有环路而无死锁的例子。虽然进程P1和进程P3分别占用了一个资源R1和一个资源R2并且因为等待另一个资源R2和另一个资源R1形成了环路但进程P2和进程P4分别占有了一个资源R1和一个资源R2它们申请的资源得到了满足在有限的时间里会归还资源于是进程P1或P3都能获得另一个所需的资源环路自动解除系统也就不存在死锁状态了。