易學筆記-系統分析師考試-第3章 作業系統基本原理/3.2 程序管理/3.2.2 訊號量與PV操作
阿新 • • 發佈:2018-11-16
- 程序制約方式
- 間接相互制約:也稱為程序互斥;程序A與程序B都需要資源C(例如印表機),系統已將C分配給A使用,等待A使用完成後系統再將C分配給B使用
- 直接相互制約:也稱為程序同步;A通過緩衝區向B提供資料,當緩衝區為空時B不能獲取資料而阻塞;當A把資料放入緩衝區後B將被喚醒;當緩衝區是滿時,A阻塞,只有當B把資料取走時A才能被喚醒
- 訊號量
- 概念:進行同步和互斥的保證機制
- 表示式:二元組(S,Q),其中S為整型變數,初始化值非負數;Q為初始狀態為空的等待佇列
- 值大於0:某類資源的數目
- 值小於0:等待該資源的程序數目
- PV操作
- 進行訊號量操作的唯一過程
- P操作:訊號量減去1,也就是系統分配一個資源給程序,若無資源則程序進入等待狀態,記為:P(S)
- V操作:訊號量加上1,若它的值小於表示從佇列中喚醒一個程序 ,記為:V(S)
- 實現互斥模型
- 概念:實現對臨界資源使用
- 原則:
-
- 為臨界資源初始化訊號量S值為1
- 同一個程序成對使用P(S)、V(S)操作,而且必須先P(S)、後V(S)
- 臨界資原始碼位於P(S)、V(S)之間
- 實現同步模型
- 概念:實現對程序通訊
- 原則:
- 為需要同步操作的邏輯塊初始化訊號量S值為0
- 一個程序使用P(S)操作,另外一個程序使用V(S)操作,哪個要阻塞哪個就用P操作
- 需要同步操作的邏輯塊程式碼位於P(S)、V(S)之間
- 舉例1:
- 舉例2: