1. 程式人生 > >作業系統學習筆記--AND型訊號量

作業系統學習筆記--AND型訊號量

    基本思想:將程序在整個執行中需要的所有資源,一次性全部分配給程序,待程序使用完後一起釋放。(避免死鎖狀態)在Wait中加入AND條件,又稱AND同步或同時wait操作:Swait

    Swait(S1,S2,...Sn) If S1 and Sn>= 1 //所需要的所有資源都滿足  

    then

    for i:=1 to n      do Si := Si -1;  endfor    else

    當發現第一個Si  < 1 就把該程序放入等待佇列,並將其程式計數器(存放下一個要執行語句的地址)置於Swait操作的開始位置endif

    Ssignal(S1,S2,...,Sn)//將所有佔有的資源挨個釋放

    for i:= 1 to n do Si := Si + 1;

    將所有等待Si的程序由等待佇列取出放入到就緒佇列 Endfor;

   )