waiting=waiting+1;
signal(customers);
signal(mutex);
wait(barbers);
} else {
signal(mutex);
} }
23、根据如下的前趋图写出可并发执行的程序:(10分)
解:(10)
评分:变量、进程、程序主体每项一分。
var a,b,c,d,e,f,g,h,i:semaphore := 0,0,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(c); S3; signal(e);signal(f); end
begin wait(b); S4; signal(g); end
begin wait(d);wait(e) S5; signal(h); end
begin wait(f); wait(g); S6 ; signal(i); end
begin wait(h); wait(i); S7; end
parend
end
24、在公共汽车上,乘客上完后,售票员关门,驾驶员开车,售票员售票,到站汽车停稳后,售票员开门,乘客上下车,售票员和驾驶员之间密切配合,直到下班。请用信号量描述公共汽车上售票员与驾驶员的工作过程。(10分)
解:建立驾驶员和售票员两进程,驾驶员进程执行过程如下: