日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PV操作实例分析

發布時間:2024/4/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PV操作实例分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//PV兩個字母是荷蘭文 Passeren(通過),Vrijgeven(釋放)的簡稱。

? ?

剛開始學習操作系統的時候,就聽說PV操作,簡單說說PV操作。


??P(S):?S=S-1?

? ? ? ? ? ?如果S≥0,則該進程繼續執行;

? ? ? ? ? ? ? S<0進程暫停執行,放入信號量的等待隊列

?

● ?V(S): S=S+1

? ? ? ? ? ? 如果S>0,則該進程繼續執行;

? ? ? ? ? ?? ? ?S≤0?喚醒等待隊列中的一個進程


? ? 到底怎么分析,下面看看一個具體的問題:


? ??

首先設信號量S1,S2,其中

S1,表示是否允許司機啟動汽車,其初值為0,

S2,表示是否允許售票員開車門,初值為O;


? ? ? ? ??


● 分析:

? ? 司機進程:

? ? ? ? ? ? P:S1=S1-1?得:S1=0-1=-1<0 司機進程暫停執行,放入信號量的等待隊列(售票員進程

?

? ?售票員進程:

? ? ? ? ? ?關車門;

? ? ? ? ? ?V:S1=S1+1得:S1=-1+1=0≤ 0 ?喚醒等待隊列中的一個進程


? ? (解釋:喚醒司機進程,使司機進程成為就緒狀態,司機可以啟動車輛,正常行駛,……,直到到V(S2),??S2=S2+1?得:S2=0+1=1>0?,司機進程在此時往下就沒有操作了;

在喚醒司機進程的同時,售票員可以售票,執行售票進程,到P(S2)。

如果之前司機進程到V(S2),這里P(S2):S2=S2-1得:S2=1-1=0 ≥?0,接著往下執行,到最后上下客;

如果之前司機進程未到V(S2),售票員的進程到P(S2),則如下進行


? ? ? ? ? ?售票;(同時司機可能,啟動車輛;正常行駛;……

? ? ? ? ? ?P:S2=S2-1得:S2=0-1=-1< 0 售票員進程暫停執行,放入信號量的等待隊列(運行司機進程

?

? ?司機進程:? ?

? ? ? ? ?接著上面未完成的繼續往下執行

? ? ? ? ? 啟動車輛;

? ? ? ? ? 正常行駛;

? ? ? ? ? 到站停車;

? ? ? ? ? ?S2=S2+1 得:S2=-1+1=0≤ 0?喚醒等待隊列中的一個進程(運行售票員進程

?

? ?售票員進程:

? ? ? ? 開車門;

? ? ? ? 上下客;


? ? 以上過程(可以是如下):

? ? ? ? ??

? ? ?在售票員進程進程到V(S1),往下售票的同時司機可以啟動車輛、……


● 使用PV操作實現進程同步時應該注意的是:

? ? (1)分析進程間的制約關系,確定信號量種類。在保持進程間有正確的同步關系情況下,哪個進程先執行,哪些進程后執行,彼此間通過什么資源(信號量)進行協調,從而明確要設置哪些信號量。

? ? (2)信號量的初值與相應資源的數量有關,也與P、V操作在程序代碼中出現的位置有關。

? ? (3)同一信號量的P、V操作要成對出現,但它們分別在不同的進程代碼中。


與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的PV操作实例分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。