程序管理PV操作

2021-10-23 20:44:21 字數 1369 閱讀 4449

含義:pv操作是一種實現程序互斥與同步的有效方法。pv操作與訊號量的處理相關,p表示通過的意思,v表示釋放。

具體定義:

p(s):

①將訊號量s的值減1,即s=s-1;

②如果s30,則該程序繼續執行;否則該程序置為等待狀態,排入等待佇列。

v(s):

①將訊號量s的值加1,即s=s+1;

②如果s>0,則該程序繼續執行;否則釋放佇列中第乙個等待訊號量的程序。

考點:釋放、等待

真題:

分析:首先,有顧客和收銀員兩程序,所以這個應該有同步的關係,要協作完成工作。顧客程序的主要工作是進入超市,在進超市之前看看自己能不能進,因為超市限制顧客的人數了。然後進去了,就開始買東西,買完了,就找收銀員付錢,付完錢就可以走了。而收銀員的工作應該是有顧客付錢來了,就要收錢了,收完錢了,再看看有沒有買完東西要付錢的顧客,沒有的話可以休息,有的話就繼續收錢。

單看顧客程序,從上往下看。顧客進入的前提是要看看是不是能進去。題中訊號量s1,s2,sn初值分別為0,0,n。sn表示超市可以放n個顧客進來,此時表示的是還有n個資源,也就是超市裡乙個顧客也沒有。s1和s2都等於0是表示顧客和收銀員都只有0個資源。

首先顧客進入,p(sn)一下,sn=sn-1=n-1,n-1>0,所以可以放人。然後在超市購物,購完物要付款了,得找收銀員了。是p一下,還是v一下,是p(s1)還是p(s2),是v(s1)還是v(s2)?

由於s1和s2都是0,雖然是先p,再v。而且一般同步是p自己,v別人。但是如果p一下,變-1<0,就要開始等待了,進行不下去了。所以應該是v一下,v誰呢,v收營員。哪個訊號量是收銀員? 不如假設乙個,s1好了。v(s1),釋放乙個收營員的資源,s1=s1+1=1>0,所以收銀員可以開始收費了。p(s2)一下,s2=s2-1=-1<0,其他顧客,就不要來付錢了,沒地。而收銀員要收費就看另一邊好了

收銀員先怎樣怎樣,然後收費,然後怎樣怎樣。還是照一般的理,一般是先p,再v。而且一般同步是p自己,v別人。所以看看c1應該是p,p(s1)=s1-1=1-1=0,表示收銀員的資源被占用了,其他要結賬的顧客我忙著呢等等啊。c2,是收完錢,v(s2),s2=s2+1=1>0,所以顧客又可以開始來付錢了。

最後顧客走了,釋放了他在超市裡佔的那個資源,v(sn)。 按照分析的結果,a、b1、b2、c1、c2分別是p(sn),v(s1),p(s2),p(s1),v(s2)。然後根據選項答案是cda

處理器管理(程序 作業 PV操作 銀行家演算法)

執行態 程序占有cpu,並在cpu上執行 就緒態 乙個程序已經具備執行條件,由於無cpu暫時不能執行 等待態 因等待某種事件的發生而暫時不能執行的狀態 通常包含如以下的資訊 程序識別符號 唯一 程序當前狀態,通常同一狀態的程序會被放到同乙個佇列 程序的程式和資料位址 程序資源清單。列出所擁有的除cp...

作業系統 程序管理 PV原語解決同步和互斥問題

作業系統 程序管理 pv原語解決同步和互斥問題 答 pv操作的含義 pv操作由p操作原語和v操作原語組成 原語是不可中斷的過程 對訊號量進行操作。pv操作的意義 我們用訊號量及pv操作來實現程序的同步和互斥。pv操作屬於程序的低階通訊。在多道程式環境下,併發執行的程序之間存在在不同的相互制約關係。同...

程序間通訊 訊號量(P V操作)

訊號量的基本介紹 訊號量的本質是 種資料操作鎖,它本 不具有資料交換的功能,是通過控制其他的通訊資源 件,外部裝置 來實現程序間通訊,它本只是 種外部資源的標識。訊號量在此過程中負責資料操作的互斥 同步等功能。當請求 個使 訊號量來表 的資源時,程序需要先讀取訊號量的值來判斷資源是否可 於0,資源可...