1.pv原語的含義
p操作和v操作是不可中斷的程式段,稱為原語。pv原語及訊號量的概念都是由荷蘭科學家e.w.dijkstra提出的, 其基本思路是用一種新的變數型別(semaphore)來記錄當前可用資源的數量。訊號量sem是一整數,sem大於等於零時代表可供併發程序使用的資源實體數,但sem小於零時則表示正在等待使用臨界區的程序數。
pv操作對於每乙個程序來說,都只能進行一次,而且必須成對使用。在pv原語執行期間不允許有中斷的發生。
訊號量是由作業系統來維護的,使用者程序只能通過初始化和兩個標準原語(p、v原語)來訪問。初始化可指定乙個非負整數,即空閒資源總數。
2.分類:
具體pv原語對訊號量的操作可以分為三種情況:
(1)把訊號量視為乙個加鎖標誌位,實現對乙個共享變數的互斥訪問。
實現過程:
p(mutex); // mutex的初始值為1
訪問該共享資料;
v(mutex);
非臨界區
(2)把訊號量視為是某種型別的共享資源的剩餘個數,實現對一類共享資源的訪問。
實現過程:
p(resource); // resource的初始值為該資源的個數n
使用該資源;
v(resource);
非臨界區
(3)把訊號量作為程序間的同步工具
實現過程:
臨界區c1; p(s);
v(s); 臨界區c2;
p,v操作對於每乙個程序來說,都只能進行一次。而且必須成對使用。且在p,v原語執行期間不允許有中斷的發生。
程序互斥和同步的區別:
程序之間互相競爭某乙個資源,這種關係就稱為程序的互斥,也就是說對於某個系統資源,如果乙個程序正在使用,其他的程序就必須等待其用完,不能同時使用。
併發程序使用共享資源時,除了競爭之外有協作,要利用互通訊息的辦法來控制執行速度,使相互協作的程序正確工作。程序之間的相互合作來完成某一任務,把這種關係稱為程序的同步。
作業系統 PV操作
分析 進入書店p sn 與離開書店v sn 操作對應題目中的 該書店最多允許n個購書者進入 因為假如進入書店的人數超過了最大的限制,p操作會被阻塞,知道v操作執行後釋放空間。接下來分析購書與收費的流程,現實生活中購書付款是顧客提出繳費的要求後,收銀員才能進行收費。所以收銀員預設是處於待機狀態即阻塞狀...
作業系統之PV操作
在計算機作業系統中,pv操作是程序管理中的難點。首先應弄清pv操作的含義 pv操作由p操作原語和v操作原語組成 原語是不可中斷的過程 對訊號量進行操作,具體定義如下 p s 將訊號量s的值減1,即s s 1 如果s 0,則該程序繼續執行 否則該程序置為等待狀態,排入等待佇列。v s 將訊號量s的值加...
作業系統 PV原理
pv 原理是用來解決作業系統程序之間的同步和互斥的.同步 一補環境下的一組程序因相互制約而傳送訊息 進行互相合作互相等待 使各個程序按照一定的速度執行.互斥 一組程序因為共享乙個公共資源 必需保證同一時刻只有乙個程序在使用臨界資源.舉乙個例子就是 互斥就是很多人過乙個獨木橋 同時只能有乙個人使用這個...