我从前最怕旁人火眼金睛,如今,倒是盼着有人能够洞幽烛远。如此,就能赠我一点欢喜。
题目:
题解:
解:Need[i,j]=Max[i,j]-Allocation[i,j]
(1)①初始化,令 Work=Available, Finish 列全为 False。
②因为Need0 ≤Work,将资源分配给P0进程,同时标记 Finish[0]为True。P0进程使用完后将它所占用的全部资源释放。此时系统资源分配情况如下表所示。
③因为Need3 ≤Work,将资源分配给P3进程,同时标记Finish[3]为True。P3进程使用完后将它所占用的全部资源释放,此时系统资源分配情况如下表所示。
④因为Need4 ≤Work,将资源分配给P4进程,同时标记Finish[4]为True。P4进程使用完后将它所占用的全部资源释放,此时系统资源分配情况如下表所示。
⑤因为Need1≤Work,将资源分配给P1进程,同时标记Finish[1]为True。P1进程使用完后将它所占用的全部资源释放,此时系统资源分配情况如下表所示。
⑥因为Need2≤Work,将资源分配给P2进程,同时标记Finish[2]为True。P2进程使用完后将它所占用的全部资源释放,此时系统资源分配情况如下表所示。
⑦此时Finish列的所有项均为True,故系统没有死锁,处于安全状态。
存在安全序列为:0 3 4 1 2
(2)此时,p2进程发出请求向量Request2 [1,2,2,2],假定系统先将资源分配给P2进程。此时 Available=(0,4,0,0)。初始化,令 Work=Available, Finish 列全为 false。故系统处于不安全状态。因此不能将资源分配给p2。