第二章 2 3 訊號量機制

2021-08-28 11:27:54 字數 1099 閱讀 5443

p 操作:

wait(s)

: while s<=

0 do no-op;

s:=s-1

;

v 操作:

整型訊號量符合「有限等待」原則,但不符合「讓權等待」原則

type  semaphore=record

value:integer;

l:list of pcb;

end;

p、v 操作:
p操作wait():

s.value = s.value -1;

if s.value <

0 then block(s,l)

v操作signal(

): s.value = s.value +1;

if s.value <=

0 then wakeup(s,l)

訊號量的基本應用:

互斥訊號量注意點:

控制同步順序的注意點:

swait(s1, s2, …, sn)

if (s1 >=

1and … and sn>=

1 )then

for i:

=1 to n do

si:= si -1;

endfor

else

將程序阻塞在第乙個不能滿足資源訊號量的佇列中。

endif

ssignal(s1, s2, …, sn)

for i:

=1 to n do

si:= si +1;

喚醒所以與si相關的阻塞程序

endfor

訊號量集:

優點:

訊號量題目做題一般方法:

第二章 訊號量機制

2.訊號量機制 1 整型訊號量 1.訊號量定義為乙個整型量 2.根據初始情況賦相應的值 3.僅能通過兩個原子操作來訪問。p操作 wait s while s 0 do no op s s 1 v操作 signal s 2 記錄型訊號量 1.整型訊號量符合 有限等待 原則 signal釋放資源後,當c...

第二章 訊號量

整形訊號量 記錄型訊號量 這些wait 都是 1 signal都是 1 不同的是 整型訊號量wait先判斷小於0然後再 1 signal沒有判斷直接 1 記錄型訊號量wait先 1 再判斷小於0 如果小於0 就從這個小於0的地方鎖上 block 然後signal的時候先 1 然後再從鎖住的地方解鎖。...

訊號量機制

1 訊號量的型別定義 訊號量 semaphore 的資料結構為乙個值和乙個 指標,指標指向等待該訊號量的下乙個程序。訊號量的值與相應資源的使用情況有關。當它的值大於0時,表示當前可用資源的數量 當它的值小於0時,其絕對值表示等待使用該資源的程序個數。注意,訊號量的值僅能由pv操作來改變。一般來說,訊...