Вот проблема.
Я хочу, чтобы два процесса происходили поочередно, полная проблема здесь.
Q. В системе есть два процесса с именами 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
Это правильно?