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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

PV操作(操作系统)

發布時間:2023/12/16 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PV操作(操作系统) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在操作系統中,進程之間經常會存在互斥(都需要共享獨占性資源時) 和同步(完成異步的兩個進程的協作)兩種關系.為了有效的處理這兩種情況,狄克斯特拉(W.Dijkstra)在1965年提出信號量 (semaphore)和PV操作.

PV操作是一種實現進程互斥與同步的有效方法。PV操作與信號量的處理相關,P表示通過的意思,V表示釋放的意思。

PV操作是典型的同步機制之一。用一個信號量與一個消息聯系起來,當信號量的值為0時,表示期望的消息尚未產生;當信號量的值非0時,表示期望的消息已經存在。用PV操作實現進程同步時,調用P操作測試消息是否到達,調用V操作發送消息。

原理

用PV操作來管理共享資源時,首先要確保PV操作自身執行的正確性。由于P(S)和V(S)都是在同一個信號量S上操作,為了使得它們在執行時不發生因交叉訪問信號量S而可能出現的錯誤,約定P(S)和V(S)必須是兩個不可被中斷的過程,即讓它們在屏蔽中斷下執行。把不可被中斷的過程稱為原語。于是,P操作和V操作實際上應該是P操作原語和V操作原語。

P操作的主要動作是:
①S減1;
②若S減1后仍大于或等于0,則進程繼續執行;
③若S減1后小于0,則該進程被阻塞后放入等待該信號量的等待隊列中,然后轉進程調度。

V操作的主要動作是:
①S加1;
②若相加后結果大于0,則進程繼續執行;
③若相加后結果小于或等于0,則從該信號的等待隊列中釋放一個等待進程,然后再返回原進程繼續執行或轉進程調度。

PV操作對于每一個進程來說,都只能進行一次,而且必須成對使用。在PV原語執行期間不允許有中斷發生。原語不能被中斷執行,因為原語對變量的操作過程如果被打斷,可能會去運行另一個對同一變量的操作過程,從而出現臨界段問題。如果能夠找到一種解決臨界段問題的元方法,就可以實現對共享變量操作的原子性。

應用

實現進程的同步

要實現進程的同步就必須提供一種機制,該機制能把其他進程需要的消息發送出去,也能測試自己需要的消息是否到達。把能實現進程同步的機制稱為同步機制。不同的同步機制實現同步的方法也不同。PV操作和管程是兩種典型的同步機制。在這里,只介紹怎樣用PV操作實現進程間的同步。

我們已經知道怎樣用PV操作來實現進程的互斥。事實上,PV操作不僅是實現進程互斥的有效工具,而且還是一個簡單而方便的同步工具。用一個信號量與一個消息聯系起來,信號量的值為0表示期望的消息尚未產生;信號量的值為非0表示期望的消息已經存在。假定用信號量S表示某個消息,現在來看看怎樣用PV操作達到進程同步的目的。
(1)調用P操作測試消息是否到達
任何進程調用P操作可測試到自己所期望的消息是否已經到達。若消息尚未產生,則S=0,調用P(s)后,P(S)一定讓調用者成為等待信號量S的狀態,即調用者此時必定等待直到消息到達;若消息已經存在,則S≠0,調用P(S)后,進程不會成為等待狀態而可繼續執行,即進程測試到自己期望的消息已經存在。
(2)調用V操作發送消息
任何進程要向其他進程發送消息時可調用V操作。若調用V操作之前S=0,表示消息尚未產生且無等待消息的進程,則調用V(S)后,V(s)執行S:=S+1使S≠0,即意味著消息已存在;若調用V操作之前S<0,表示消息未產生前已有進程在等待消息,則調用V(S)后將釋放一個等待消息者,即表示該進程等待的消息已經到達,可以繼續執行。
在用PV操作實現同步時,一定要根據具體的問題來定義信號量和調用P操作或V操作。一個信號量與一個消息聯系在一起,當有多個消息時必須定義多個信號量;測試不同的消息是否到達或發送不同的消息時,應對不同的信號量調用P操作或V操作。

實現進程互斥

用PV操作可實現并發進程的互斥,其步驟如下。
(1)設立一個互斥信號量S,表示臨界區,其取值為1,0,-1,…其中,S=1表示無并發進程進入S臨界區;S=0表示已有一個并發進程進入了S臨界區;S等于負數表示已有一個并發進程進入S臨界區,且有|S|個進程等待進入S臨界區,S的初值為1。 [1]
(2)用PV操作表示對S臨界區的申請和釋放。在進入臨界區之前,通過P操作進行申請,在退出臨界區之后,通過V操作釋放。

進程通常分為就緒、運行和阻塞三種工作狀態。

三種狀態在某些條件下可以轉換,具體轉換關系如下:

進程三個狀態之間的轉換是通過PV操作和信號量來控制的,其中信號量起到了很重要的作用。

備注

中國讀者常常不明白這一同步機制為什么叫PV操作,原來這是狄克斯特拉用荷蘭文定義的,因為在荷蘭文中,通過叫passeren,釋放叫vrijgeven,PV操作因此得名。這是在計算機術語中不是用英語表達的極少數的例子之一。

這篇文章也很好:

https://blog.csdn.net/wuxy720/article/details/78936912

總結

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

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