作業系統 2. 同步與死結 - Ian-Liu-1990/Computer-Arch-OS GitHub Wiki
行程同步
- 競爭(Race Condition): 多個Process同時存取共用資源
- 避免競爭 : 同一時間只能讓一個行程存取一個資源
臨界區間
- 定義: 一段不能讓多個Process同時執行的程式碼
死結
死結條件
I.-
互斥(mutual exclusion): 每次只能有一個process可以使用資源,其他Process必申請並等待直到資源被釋放為止
-
持有和等待(hold and wait): 存在一個Process持有一個以上的資源並且等待另一個資源是被其他Process所持有
-
禁止搶占(no preemption): 一個資源是只能被他所持有的Process工作完成後自願釋放,無法被其他Process所強奪
-
循環等待(circular waiting): 一系列Process互相持有其他行程所需要的資源。
死結處理方式:
-
預防 : (破壞4項死結任一項即可)[消耗一定系統資源, 效能降低]
-
避免 : 銀行家演算法(Banker's Algorithm)是一個避免死結(Deadlock)的著名演算法
-
偵測 : 定期執行迴圈偵測
活結(Livelock)
- 定義: 活結則是Process彼此釋放資源又同時占用對方釋放的資源