操作系统习题4—进程死锁
操作系統(tǒng)習題4—進程死鎖
1、試解釋在十字路口產生的交通死鎖現象中包括了死鎖產生的 4 個必要條件,并給出避免產生交通死鎖的簡要規(guī)則。
四個必要條件:
- ① 互斥:同一時刻只能有一輛車占據道路上的同一個空間位置
- ② 占有等待:一輛車占據道路上的一個空間位置并等待著前進
- ③ 非剝奪:一輛車不能從道路上當前空間位置挪走
- ④ 循環(huán)等待:每輛車都等待著前面的車輛前進,形成一個循環(huán)
簡明規(guī)則:
在十字路口設立一組紅綠燈,前兩分鐘只允許南北方向的車輛同行,后兩分鐘只允許東西方向的車輛同行。每兩分鐘切換一次紅綠燈,可以避免這個交通死鎖。
2、設三個進程共享四個資源,每次資源分配與請求只能以一個單位進行。已知每一進程最多需要 2 個單位的資源,那么系統(tǒng)中會發(fā)生死鎖現象嗎?試說明原因。
系統(tǒng)中不會出現死鎖現象。
四個單位資源分配給三個進程,根據抽屜原理,至少會有一個進程分配到兩個單位資源。因為一個進程最多需要兩個單位資源,這個進程可以順利執(zhí)行完畢,然后此進程將資源釋放出去,其他進程得到了資源就能夠繼續(xù)執(zhí)行,所有的進程都能在有限時間內得到所需資源而執(zhí)行完畢。
3、系統(tǒng)在某一時刻的狀態(tài)如下表所示,使用銀行家算法回答下列問題。
(1)請給出 Need 矩陣。
Need=Max?Allocation=[00000750100200200642]Need = Max-Allocation =\begin{bmatrix} 0&0&0&0\\ 0&7&5&0\\ 1&0&0&2\\ 0&0&2&0\\ 0&6&4&2\\ \end{bmatrix}Need=Max?Allocation=???????00100?07006?05024?00202????????
(2)當前系統(tǒng)是否處于安全狀態(tài)?
初始化矢量 Work=Available(1,5,2,0)
系統(tǒng)安全性分析:
因為存在一個安全序列<P0、P3、P2、P1、P4>,所以系統(tǒng)處于安全狀態(tài)
(3)如果從進程 P1發(fā)來一個請求(0,4,2,0),這個請求能否立刻滿足?
Request1(0,4,2,0) < Need1(0,7,5,0)
Request1(0,4,2,0) < Available(1,5,2,0)
假設先試著滿足進程 P1 點這個請求,則 Available 變?yōu)?1,1,0,0)
系統(tǒng)狀態(tài)變化為:
再對系統(tǒng)進行安全性分析:
因為存在一個安全序列<P0、P2、P3、P1、P4>,所以系統(tǒng)仍然處于安全狀態(tài)
進程 P1 這個請求應該馬上被滿足
4.化簡下面的資源分配圖,并判斷系統(tǒng)中是否存在死鎖。
嘗試化簡的資源分配圖如下:
這個資源圖不可完全簡化,系統(tǒng)會發(fā)生死鎖
總結
以上是生活随笔為你收集整理的操作系统习题4—进程死锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统习题3—进程的互斥与同步
- 下一篇: 操作系统习题5—存储管理