1. 程式人生 > >易學筆記-系統分析師考試-第3章 作業系統基本原理/3.2 程序管理/3.2.2 訊號量與PV操作

易學筆記-系統分析師考試-第3章 作業系統基本原理/3.2 程序管理/3.2.2 訊號量與PV操作

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