信号量在长期的应用中得到发展,从整型信号量发展为记录型信号量,进而推广到AND 信号量。
(1)整型信号量。 即一个整型值。
int s;信号量上一共有两种操作:一种是P 操作,写为Wait(s) 或P(s); 另一种是 V 操作,写为Signal(s) 或 V(s).
P(s): while s <= 0 do no_op
s := s-1;
V(s): s:= s+1;
(2) 利用信号量描述前趋
Var a,b,c,d,e,f:semaphore:=0,0,0,0,0,0;
begin
parbegin
begin s1; signal(a); signal(b); end;
begin wait(a); s2; signal(c); signal(d); end;
begin wait(b); s3; signal(e); signal(f); end;
begin wait(c); s4; end;
begin wait(d); s5; end;
begin wait(e); s6; end;
begin wait(f); s7; end;
parend;
end