三类互斥资源
假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为9、8和5。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示。如果进程按(6)序列执行,那么系统状态是安全的。

- P1、P2、P3、P4、P5的执行顺序:
- 思路:首先需要系统有资源数,才能够分配需要的进程
- R1、R2、R3 已分配的资源数:
- R1:1+2+2+1+1 = 7
- R1:2+1+1+2+1 = 7
- R1:1+1+0+0+3 = 5
- R1、R2、R3 已使用的资源数(根据题意):
- R1:9
- R2:8
- R3:5
- R1、R2、R3 剩余的资源数:
- R1:9 - 7 = 2
- R2:8 - 7 = 1
- R3:5 - 5 = 0
- R1、R2、R3 已分配的资源数:
- 因为只有满足最大资源数才能够运行进程
- 所以:最大资源数 - 已分配资源数 = 尚需资源数
- 思路:首先需要系统有资源数,才能够分配需要的进程
-
剩余进程数:R1:2 R2:1 R3:0(第一步)
- 能够满足尚需进程数的只有 P2
- 执行完 P2 之后便可以释放资源
- 释放的资源 = 已分配给 P2 的资源(图表中) + 剩余进程数
- P2 释放的资源 = R1:2 R2:1 R3:1 + R1:2 R2:1 R3:0
- P2释放的资源:R1:4 R2:2 R3:1
-
剩余进程数:R1:4 R2:2 R3:1 (第二步)
- 能够满足尚需进程数的只有 P4
- 执行完 P4 之后便可以释放资源
- 释放的资源 = 已分配给 P4 的资源(图表中) + 剩余进程数
- P4 释放的资源 = R1:1 R2:2 R3:0 + R1:4 R2:2 R3:1
- P2释放的资源:R1:5 R2:4 R3:1
-
剩余进程数:R1:5 R2:4 R3:1 (第三步)
- 能够满足尚需进程数的有 P1 和 P5(这里一般是运行时间短的优先运行)
- 第一种情况(执行P1或者说P1执行的时间短)
- 如果是执行完 P1 之后便可以释放资源
- 释放的资源 = 已分配给 P1 的资源(图表中) + 剩余进程数
- P1 释放的资源 = R1:1 R2:2 R3:1 + R1:5 R2:4 R3:1
- P1释放的资源:R1:6 R2:6 R3:2
- 第一种情况(执行P5或者说P5执行的时间短)
- 如果是执行完 P5 之后便可以释放资源
- 释放的资源 = 已分配给 P5 的资源(图表中) + 剩余进程数
- P5 释放的资源 = R1:1 R2:1 R3:3 + R1:5 R2:4 R3:1
- P5 释放的资源:R1:6 R2:5 R3:4

顺序总结:P2 - P4 - P1 - P5 - P3
P2 - P4 - P5 - P1 - P3
文章讨论了一个操作系统中的资源分配问题,涉及三类互斥资源R1、R2和R3。系统中有五个进程,每个进程有不同的资源需求和已分配资源。通过计算剩余资源和进程需求,确定了两种可能的安全执行顺序:P2-P4-P1-P5-P3和P2-P4-P5-P1-P3,保证所有进程都能完成并释放资源。
633

被折叠的 条评论
为什么被折叠?



