網(wǎng)絡規(guī)劃設計師知識點——網(wǎng)絡基礎篇?操作系統(tǒng)——PV操作

PV操作分為P操作和V操作,是為了解決進程的同步與互斥問題。

P操作:使信號量S=S- 1,若S>=0,則該進程繼續(xù)執(zhí)行,否則進程進入等待隊列。

V操作:使信號量S=S+1,若S小于等于0,則喚醒等待隊列中的一個進程。

例如:

有甲,乙兩個資源;A,B,C三個進程。有甲乙兩資源,所以信號量S=2。

第一步:當A進程請求使用甲資源,系統(tǒng)進行P操作使S-1,S=2-1=1>=0,甲資源給A使用。

第二布:又當B進程請求使用乙資源,系統(tǒng)進行P操作使S-1,S=1-1=0>=0,乙資源給B使用。

第三步:又當C進程請求使用資源,系統(tǒng)由于甲乙資源還被占用,這時進行P操作使S-1,S=0-1=-1,C進入等待隊列。

第四步:當A使用甲資源完畢,系統(tǒng)進行V操作使S+1,S=-1+1=0>=0,則喚醒C使用資源。

1.互斥模型:多個進程(互斥)共享一臺打印機。

? ? ? PV編碼為

? ? ? ? P(S);

? ? ? ? 使用打印機;

? ? ? ? V(S);

? ? ? 這里由于只有一臺打印機 所以S=1。這里的S在一個進程中成對出現(xiàn)就是互斥信號量。

2.同步模型:單倉庫、生產(chǎn)者與消費者問題。

生產(chǎn)者生產(chǎn)出商品,放商品進入倉庫,消費者進入倉庫取商品并消費。這里生存者與消費者并不能同時對倉庫進行存取,倉庫中有商品消費者才能取,沒有商品只能等待,他們之間是間接的制約關(guān)系,是同步模型。

設S1為倉庫空位,初始S1=1;S2為商品數(shù)量,初始無商品S2=0。

PV編碼為

生存者:

生產(chǎn)一個產(chǎn)品;

P(S1);

送產(chǎn)品到倉庫;

V(S2);

消費者:

P(S2);

從倉庫取產(chǎn)品;

V(S1);

消費商品;

在這里S1,S2在兩個進程中成對出現(xiàn),所以它們是同步信號量。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容