四、综合题每题15分共30分 1进程资源的使用情况和可用情况如下表所示:四个进程和三类资源 当前已分配资源数 最大需求量 进程 量 系统可用资源数量 R1 R2 R3 R1 R2 R3 R1 R2 R3 P1 2 3 O 0 0 心 3 1 3 0 P3 3 o 1 3 1 P4 0 1 1o 1请画出资源分配图。 2分析目前系统中是否会发生死锁。
(1)资源分配图如下:
| | R1 | R2 | R3 | |---|---|---|---| | P1 | 2 | 3 | 0 | | P2 | 0 | 0 | 0 | | P3 | 3 | 1 | 1 | | P4 | 0 | 1 | 0 | | Available | 2 | 0 | 2 |
(2)根据资源分配图,可以使用安全性算法判断系统是否会发生死锁。首先需要求出每个进程的需求量和已分配量的差值,即:
| | R1 | R2 | R3 | |---|---|---|---| | P1 | 1 | 0 | 3 | | P2 | 2 | 2 | 2 | | P3 | 0 | 0 | 0 | | P4 | 1 | 0 | 1 |
然后假设每个进程都能够顺利执行完毕,将已分配的资源全部释放回系统,再从系统可用资源中分配资源给进程,直到所有进程都能够顺利执行完毕或者没有足够的资源可以分配。在这个过程中,如果系统能够找到一个安全的序列,即每个进程都有足够的资源可以执行完毕,那么系统就不会发生死锁。
根据安全性算法,首先需要找到一个进程能够满足当前可用资源的需求量,将该进程标记为已完成,然后将它已分配的资源全部释放回系统,并将释放的资源分配给其他进程。重复这个过程直到所有进程都被标记为已完成或者没有足够的资源可以分配。在这个过程中,如果所有进程都被标记为已完成,那么系统就是安全的。
对于当前的资源分配图,可以使用安全性算法求出一个安全序列:
- 当前可用资源数量为 (2, 0, 2)。
- 可以选择 P3,因为它的需求量 (0, 0, 0) 小于等于当前可用资源数量。
- 将 P3 标记为已完成,并将它已分配的资源全部释放回系统,此时系统可用资源数量为 (3, 1, 3)。
- 可以选择 P1,因为它的需求量 (1, 0, 3) 小于等于当前可用资源数量。
- 将 P1 标记为已完成,并将它已分配的资源全部释放回系统,此时系统可用资源数量为 (5, 3, 3)。
- 可以选择 P4,因为它的需求量 (1, 0, 1) 小于等于当前可用资源数量。
- 将 P4 标记为已完成,并将它已分配的资源全部释放回系统,此时系统可用资源数量为 (5, 4, 4)。
- 可以选择 P2,因为它的需求量 (2, 2, 2) 小于等于当前可用资源数量。
- 将 P2 标记为已完成,并将它已分配的资源全部释放回系统,此时系统可用资源数量为 (7, 6, 6)。
- 所有进程都被标记为已完成,因此系统是安全的。
因此,当前系统不会发生死锁
原文地址: http://www.cveoy.top/t/topic/cHKe 著作权归作者所有。请勿转载和采集!