OS筆記(程式同步)

weixin_34320159發表於2017-08-09

程式同步指的是程式之間存在一定的時序關係。比如A程式可能有B程式執行所需資源(該資源為A,B臨界區),那麼我們就要求A,B程式同歩(必須A先全部執行完,再開始執行B)。但是中斷機制可能打破這一同步(A未執行完就因中斷退出臨界區,B進入臨界區),同時造成程式互斥(在臨界區內的B因為在臨界區外的A而阻塞)。因此我們必須找到一種方法,能保證發生A,B同步。


訊號同步機制(P,V)

5923488-d0314434c1f20776.jpg
s為訊號量,程式想進臨界區,要先進行P操作;想出臨界區,要先進行V操作

PV機制例項

5923488-bbc7ba025c894052.jpg
圖片發自簡書App

記得,P()為訊號量--,訊號量<0時程式被阻塞。V()為訊號量++,訊號量<=0時程式被喚醒。

相關文章