这是问题所在。 我希望两个进程交替发生,完整的问题在这里。使用信号量进行同步
问:系统中有两个进程叫做A和B.当系统启动时,进程A执行两次,进程B执行一次。进程B不能执行,直到进程A执行两次。一旦进程A执行完成,在进程B执行之前它不能再次执行。上述限制允许过程A和B以下列方式执行。
AABAABAAB ...
写出伪代码用于过程A和B的使用计数信号量以实现所需的同步。
这是我的尝试。
解决方案:
进程A
var a=1,b=0,i;
begin
repeat
wait(a);
for(i=0;i<2;i++)
printf("A"); // conidering this is what process a does.
signal(b);
forever
end
进程B
begin
repeat
wait(b);
printf("B"); //considering this is what process B does.
signal(a);
forever
end
这是正确的吗?