作業系統 PV原理

2021-08-26 07:33:10 字數 1672 閱讀 4154

pv

原理是用來解決作業系統程序之間的同步和互斥的.

同步:一補環境下的一組程序因相互制約而傳送訊息

,進行互相合作互相等待

.使各個程序按照一定的速度執行.

互斥:一組程序因為共享乙個公共資源

,必需保證同一時刻只有乙個程序在使用臨界資源.

舉乙個例子就是:

互斥就是很多人過乙個獨木橋

,同時只能有乙個人使用這個橋

同步就是兩個人同時過乙個橋

,乙個人騎車

,乙個人步行

.但是兩個人必需同時到達

.這兩個人同時出發

,騎車的人的比較快

,必需到一段等一下步行的人

.保證他們相互制約著到達.

訊號量:

代表併發程序可用資源數

,小於零表示正在等待資源的程序數.

p操作:

將訊號量減一

,如何訊號量

(sem)

為負數,

則呼叫p

操作的程序停止

,直到另乙個程序對同一訊號量做v操作

. v操作

: 將訊號量加一

,如何訊號量

(sem)

大於等於

0則在與

sem有關的佇列中喚醒乙個程序

,讓他執行.

這裡通過乙個例子來講述pv

操作不容易理解的地方.

這裡的訊號量sn

代表允許顧客人數 s

1代表收銀員收費 s

2代表顧客付款

a:p(sn) b1:v(s1) b2:p(s2) c1:p(s1) c2:v(s2)

分析說明:

我們不明白的一般都是

c1 c2 b1 b2

這幾個代表什麼

其實可以這麼來判斷:

有這幾個原則:

1:互斥的訊號量的

pv操作在乙個程序中出現

這裡的s

n是互斥的,所以

p(sn)

v(sn

)都在顧客程序裡面

2:同步的訊號量的

pv操作在兩個程序之間交替出現,比如

s1,s2

在顧客和收營員直接交替出現.3:

個人觀點

:pv操作難點就是同步的程序之間的操作

,這裡同步的程序對同一訊號量的操作

,一定是先p,

後v.p

操作是使用資源

,v操作是釋放資源

,程序一定是先使用資源

,然後再釋放資源

.這裡就像是騎車的和步行的人

,一開始他們都要走

,只是走的過程中會出現彼此等待的情況

,這就是說開始為什麼是

p操作了,因為

p操作是使用資源

,他們要走

,所以使用資源

.4:p

操作使訊號量小於零以後

,則停止當前程序

,等另乙個程序喚醒他

,也就是給這個訊號量加一.5:

當乙個v

操作結束後

,一般認為

,這個程序接下去執行

,執行下乙個p操作

,這裡指的是

p(s2)操作,

然後停止

,等待收銀員的

v操作喚醒他.

這些是個人看法,

作業系統 PV操作

1.pv原語的含義 p操作和v操作是不可中斷的程式段,稱為原語。pv原語及訊號量的概念都是由荷蘭科學家e.w.dijkstra提出的,其基本思路是用一種新的變數型別 semaphore 來記錄當前可用資源的數量。訊號量sem是一整數,sem大於等於零時代表可供併發程序使用的資源實體數,但sem小於零...

作業系統 PV操作

分析 進入書店p sn 與離開書店v sn 操作對應題目中的 該書店最多允許n個購書者進入 因為假如進入書店的人數超過了最大的限制,p操作會被阻塞,知道v操作執行後釋放空間。接下來分析購書與收費的流程,現實生活中購書付款是顧客提出繳費的要求後,收銀員才能進行收費。所以收銀員預設是處於待機狀態即阻塞狀...

作業系統 pv之道

我們的生活每天都有很多的事情發生,大部分事情我們可以自行處理,有些事情我們就要和其他人合作,比如去飯館吃飯,飯館是我們的乙個經常光顧的地方,但是我們往往會碰到這樣的情況,附近只有這一家飯館,我很餓,不想去別的飯館,剛剛我來的時候沒有了位置,服務員讓我等,看到別人在那吃得滿嘴流油,恨啊 剛剛的場景,很...