操作系統4

死鎖

死鎖概念

在這裏插入圖片描述
相鄰的哲學家不能同時喫飯,他們會徵用他們中間的筷子。
在這裏插入圖片描述
取筷子是P操作,放筷子是V操作。筷子是信號量。
在這裏插入圖片描述
如果所有哲學家都拿起左手邊的筷子,那麼就會全部阻塞在取右手邊的筷子。
在這裏插入圖片描述
這就發生了死鎖。
在這裏插入圖片描述
在這裏插入圖片描述

死鎖起因

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
生產者拿到了mutex,但是阻塞在empty。其它的生產者和消費者無法獲取mutex,全部阻塞。死鎖。
在這裏插入圖片描述

死鎖預防策略

死鎖的必要條件

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

解決死鎖的策略

  • 預防死鎖
  • 避免死鎖
  • 檢測死鎖
  • 恢復死鎖

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
有多個進程,其中一定存在這樣的進程,它擁有最大序號資源,這個最大序號資源是最後一個資源,運行完歸還系統。這個進程運行完這個資源後邊還需要資源,當前資源序號就不是最大序號。
在這裏插入圖片描述
在這裏插入圖片描述
操作系統認爲死鎖不會發生,即便發生也流感用戶處理。
問題複雜,處理的效益不高。

進程調度

進程調度概念

在這裏插入圖片描述
在這裏插入圖片描述
1,2矛盾;1,3矛盾;2,5矛盾;等等。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

典型調度算法

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
使用cpu超過一定時長時,可以認爲它偏計算,降低其優先數,讓他在後臺慢慢運行
進行I/O後,很可能還會I/O,可以認爲此進程偏I/O,用戶需要良好的交互性,提高其優先數
進程等待時間過長時提高優先數,避免飢餓
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

Linux進程調度

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章