【中级软考】PV操作是什么?(passeren【通过、申请资源、减量】、vrijgeven【释放、释放资源、增量】【荷兰文】)(用于进程间同步)
PV操作是一種實現(xiàn)進程互斥與同步的有效方法。PV操作與信號量的處理相關,P表示通過的意思,V表示釋放的意思。
PV操作是典型的同步機制之一。用一個信號量與一個消息聯(lián)系起來,當信號量的值為0時,表示期望的消息尚未產生;當信號量的值非0時,表示期望的消息已經存在。用PV操作實現(xiàn)進程同步時,調用P操作測試消息是否到達,調用V操作發(fā)送消息。
信號量
信號量的概念和PV操作是荷蘭科學家E.W.Dijkstra提出來的。信號是鐵路交通管理中的一種常用設備,交通管理人員利用信號顏色的變化來實現(xiàn)交通管理。在操作系統(tǒng)中,信號量S是一整數。S大于或等于零,代表可供并發(fā)進程使用的資源實體數;在S小于零時,|S|表示正在等待使用資源實體的進程數。 建立一個信號量必須說明此信號量所代表的意義并且賦初值。除賦初值外,信號量僅能通過PV操作來訪問。
信號量按其用途可分為兩種。
①公用信號量。聯(lián)系一組并發(fā)進程,相關的進程均可在此信號量上執(zhí)行P操作和V操作,初值常常為1,用于實現(xiàn)進程互斥。
②私有信號量。聯(lián)系一組并發(fā)進程,僅允許擁有此信號量的進程執(zhí)行P操作,而其他相關進程可在其上施行V操作。初值常常為0或正整數,多用于實現(xiàn)進程同步。
PV操作是由兩個操作,即P操作和V操作組成的。P操作和V操作是兩個在信號量上進行操作的過程,假定用S表示信號量,則把這兩個過程記作P(S)和V(S)。
原理
用PV操作來管理共享資源時,首先要確保PV操作自身執(zhí)行的正確性。由于P(S)和V(S)都是在同一個信號量S上操作,為了使得它們在執(zhí)行時不發(fā)生因交叉訪問信號量S而可能出現(xiàn)的錯誤,約定P(S)和V(S)必須是兩個不可被中斷的過程,即讓它們在屏蔽中斷下執(zhí)行。把不可被中斷的過程稱為原語。于是,P操作和V操作實際上應該是P操作原語和V操作原語。
P操作的主要動作是:
①S減1;
②若S減1后仍大于或等于0,則進程繼續(xù)執(zhí)行;
③若S減1后小于0,則該進程被阻塞后放入等待該信號量的等待隊列中,然后轉進程調度。
V操作的主要動作是:
①S加1;
②若相加后結果大于0,則進程繼續(xù)執(zhí)行;
③若相加后結果小于或等于0,則從該信號的等待隊列中 釋放一個 等待進程,然后再返回原進程繼續(xù)執(zhí)行或轉進程調度。
PV操作對于每一個進程來說,都只能進行一次,而且必須成對使用。在PV原語執(zhí)行期間不允許有中斷發(fā)生。原語不能被中斷執(zhí)行,因為原語對變量的操作過程如果被打斷,可能會去運行另一個對同一變量的操作過程,從而出現(xiàn)臨界段問題。如果能夠找到一種解決臨界段問題的元方法,就可以實現(xiàn)對共享變量操作的原子性。
其余
見參考
參考文章:PV操作
總結
以上是生活随笔為你收集整理的【中级软考】PV操作是什么?(passeren【通过、申请资源、减量】、vrijgeven【释放、释放资源、增量】【荷兰文】)(用于进程间同步)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【中级软考】段页式存储是什么?
- 下一篇: VISIO初探