假定某计算机系统有R1和R2两类可使用资源(其中R1有两个单位,R2有一个单位),它们被进程P1和P2所共享,且已知两个进程均以下列顺序使用两类资源: →申请R1→申请R2→申请R1→释放R1→释放R2→释放R1→ 试求出系统运行过程中可能到达的死锁点,并画出死锁点的资源分配图(或称进程资源图)。
时间: 2024-01-22 19:21:21 浏览: 94
根据进程的资源请求和释放顺序,我们可以得到以下两个进程的资源请求和释放状态转换图:
进程P1的资源状态转换图:
```
申请R1 申请R2 申请R1 释放R1 释放R2 释放R1
↓ ↓ ↓ ↓ ↓ ↓
R1(1) R1(1) R1(2) R1(1) R1(2) R1(1)
R2(0) R2(1) R2(1) R2(1) R2(0) R2(0)
```
进程P2的资源状态转换图:
```
申请R1 申请R2 申请R1 释放R1 释放R2 释放R1
↓ ↓ ↓ ↓ ↓ ↓
R1(1) R1(1) R1(2) R1(1) R1(2) R1(1)
R2(1) R2(0) R2(0) R2(0) R2(1) R2(1)
```
我们可以发现,当P1申请R1时,因为R1只有两个单位,所以P2无法获得R1,同时P2又持有R2,导致P1无法获得R2,从而形成死锁。因此,系统可能到达的死锁点为:
```
P1申请R1,P2持有R2,等待P1释放R1。
```
进程资源图如下:
```
+----+ +----+
| P1 | | P2 |
+----+ +----+
| |
v v
+----+ R1(1) +----+
| |------->| |
| | | |
+----+ +----+
| ^
v |
+----+ R2(1) +----+
| |<-------| |
| | | |
+----+ +----+
```
阅读全文