整型訊號量(integer semaphore):訊號量是整數
記錄型訊號量(record semaphore):每個訊號量s除一個整數值s.value(計數)外,還有一個程序等待佇列s.L,其中是阻塞在該訊號量的各個程序的標識
二進位制訊號量(binary semaphore):只允許訊號量取0或1值
每個訊號量至少須記錄兩個資訊:訊號量的值和等待該訊號量的程序佇列。它的型別定義如下:(用類PASCAL語言表述)
semaphore = record
value: integer;
queue: ^PCB;
end;
其中PCB是程序控制塊,是作業系統為每個程序建立的資料結構。
s.value>=0時,s.queue為空;
s.value<0時,s.value的絕對值為s.queue中等待程序的個數;
整型訊號量(integer semaphore):訊號量是整數
記錄型訊號量(record semaphore):每個訊號量s除一個整數值s.value(計數)外,還有一個程序等待佇列s.L,其中是阻塞在該訊號量的各個程序的標識
二進位制訊號量(binary semaphore):只允許訊號量取0或1值
每個訊號量至少須記錄兩個資訊:訊號量的值和等待該訊號量的程序佇列。它的型別定義如下:(用類PASCAL語言表述)
semaphore = record
value: integer;
queue: ^PCB;
end;
其中PCB是程序控制塊,是作業系統為每個程序建立的資料結構。
s.value>=0時,s.queue為空;
s.value<0時,s.value的絕對值為s.queue中等待程序的個數;