2013-08-04 119 views
0

這可能是一個微不足道的問題,但我找不到任何明確的答案。你怎樣才能讓兩個進程輪流使用信號量?我不想使用睡眠或其他IPC。結果應該是這樣的:輪流使用信號量

Process 1 did something 
Process 2 did something 
Process 1 did something 
Process 2 did something 
Process 1 did something 
Process 2 did something 
Process 1 did something 
Process 2 did something 

回答

1

您需要兩個信號燈,每個進程一個,可以說S1和S2。進程P1和P2之間的交互順序如下:

  1. P1等待S1,P2等待S2。
  2. 可以說,最初S1是開放的,S2關閉。
  3. P1做的工作 - 關閉S1,S2打開,並等待在S1
  4. P2做的工作 - 關閉S2,S1打開,並等待對S2
  5. 從3
從頭再來