系統有同類資源10個,進程P1,P2,P3需要該類資源的最大數量分別爲8,6,7。他們使用資源的次序和數量如下圖所示。
次序 | 進程 | 申請量 | 次序 | 進程 | 申請量 |
1 | P1 | 3 | 5 | P2 | 2 |
2 | P2 | 2 | 6 | P1 | 3 |
3 | P3 | 4 | 7 | P3 | 3 |
4 | P1 | 2 | 8 | P2 | 2 |
⑴ 試給出採用銀行家算法分配資源時,進行第5次分配後各進程的狀態及各進程佔用資源情況。
⑵ 在以後的申請中,那次的申請可以得到最先滿足?給出一個進程完成序列。
解:
(1)計算第5次分配後進程的狀態和佔用資源情況
- P1申請3個,可以滿足,系統還剩7個;
- P2申請2個,可以滿足,(因爲系統的7個可以使P2運行完)系統還剩5個;
- P3申請4個,若滿足它的請求,可能使以後的任何進程都不能運行完,故P3等待;
- P1申請2個,滿足,(系統還剩5個可以滿足P1的最大請求),系統還剩3個;
- P2申請2個,不能滿足,等待。
此時系統的分配情況如下:
P1分配5個後正在運行;P2分配2個後等待分配2個;P3等待分配4個;系統還剩3個
(2)
- P1接着運行,P1申請3個,可以滿足,P1運行完成後釋放資源,使系統資源數量變爲8個;
- 首先將P3喚醒,滿足它的4個請求資源,系統還剩4個;
- 喚醒P2,滿足它的2個資源,系統還剩2個;
- P3申請3個,不能滿足,等待;
- P2申請2個,系統滿足它;
- P2接着運行,P2完成後釋放資源,使系統資源變爲6個;
- 系統喚醒P3,滿足它的3個資源請求,最終P3完成,釋放資源,使資源數量恢復爲10個
找到的進程完成序列爲{P1,P2,P3}