Паралелно работещи копия на всеки от процесите
Осигурете чрез семафори синхронизация на работещите копия така, че да се изпълнят едновременно следните изисквания:
• в произволен момент от времето да работи най-много едно от копията;
• работещите копия да се редуват във времето – след изпълнение на две копия на
• първоначално е разрешено да се изпълни копие на
Упътване: Освен семафори, ползвайте и брояч(и).
Initialize |
---|
Semaphore s,t |
s.init(1) |
t.init(0) |
int cnt = 0 |
s.wait() | |
cnt=cnt+1 | |
if cnt == 2: | |
cnt = 0 | |
t.signal() | |
else | |
s.signal() |
t.wait() | |
cnt=cnt+1 | |
if cnt == 3: | |
cnt = 0 | |
s.signal() | |
else | |
t.signal() |