PV操作


1.PV操作的相關概念

| 臨界資源

雖然多個進程可以共享系統中的各種資源,但其中許多資源一次只能為一個進程所使用,我們把一次僅允許一個進程使用的資源稱為臨界資源。許多物理設備都屬於臨界資源,如打印機等。此外,還有許多變量、數據等都可以被若干進程共享,也屬於臨界資源。

| 臨界區

對臨界資源的訪問,必須互斥地進行,在每個進程中,訪問臨界資源的那段代碼稱為臨界區。

| 信號量機制

信號量的數據結構為一個值和一個指針,指針指向等待該信號量的下一個進程。信號量的值與相應資源的使用情況有關。

| 信號量的物理含義

S>0 表示有S個資源可用

S=0 表示無資源可用

S<0 則 |S| 表示S等待隊列中的進程個數

| PV操作

用於處理進程互斥問題,協調資源的作用。

P操作,代表需要、申請、鎖定、占用資源。信號量 S - 1;

  如果減 1 后大於等於 0,即 S - 1 >= 0,即 S >= 1 ,則往下執行,

  有些題目里,如果進程需要開啟,那信號量往往就要滿足這個條件,起碼要 S = 1。

V操作,代表釋放資源,信號量 S + 1;

  如果加 1 后大於 0,即 S + 1 > 0 ,則往下執行

  V操作之后,信號量如果還是為零甚至為負,說明資源釋放得還不夠,程序還要繼續進行釋放,不能進行下一步。

例:進程P1、P2、P3、P4和P5的前趨圖如下圖所示:

 

 

 若用PV操作控制進程P1、P2、P3、P4和P5的並發執行過程,則需要設置5個信號量S1、S2、S3、S4和S5,且信號量S1~S5的初值都等於零。下圖中a和b處應分別填入___;c和d處應分別填入___;e和f處應分別填入___。

 

 

解答:

根據前趨圖,P1進程執行完需要通知P2和P3進程,所以需要利用V(S1)和V(S2)操作通知P2和P3進程,所以空a應該填V(S1)和V(S2),P2進程執行完要通知P4進程,所以空b應該填V(S3)。

P3進程運行前需要等待P1進程的結果,所以執行程序前要先利用1個P操作,所以空c應該填P(S2),而P3進程運行結束需要利用一個V操作通知P5進程,所以空d應該填V(S4)。

P4進程執行結束需要利用一個V操作通知P5進程,所以空e應該填V(S5),P5進程執行前需要等待P3和P4進程的結果,所以空f處需要兩個P操作,則f應該填P(S4)和P(S5)。

 

例:進程 P1、P2 、P3、P4 和 P5 的前趨圖如下所示

 

 

若用 PV 操作控制進程 P1、P2、P3、P4 和 P5 並發執行的過程,需要設置 5 個信號量 S1、S2、S3、S4 和 S5,且信號量 S1~S5 的初值都等於零。如下的進程執行圖中 a 和 b 處應分別填寫(26);c 和 d 處應分別填寫(27) ;e 和 f 處應分別填寫(28)。

 

 

(26)A.V (S1)和 P(S2)V(S3)     B.P(S1)和 V(S2)V(S3)  

  C.V(S1)和 V(S2)V(S3)     D.P(S1)和 P(S2)V(S3)

(27)A.P(S2)和 P(S4)   B.V(S2)和 P(S4)   C.P(S2)和 V(S4)   D.V(S2)和 V(S4)

(28)A.P(S4)和 V(S5)   B.V(S5)和 P(S4)   C.V(S4)和 P(S5)   D.V(S4)和 V(S5)

解:

26空中,ab,填的值根據p2來決定。執行p2之前需要吧p1的釋放掉,所以a天p(s1)。p2結束后要生成空間給p3和p4.所以b天v(s2)v(s3),選B。

27空中,cd,填的值根據p3來決定。執行p3之前需要把p2的值s2釋放掉,且生成空間給p4。所以c是p(s2),d填寫v(s4)。選C。

28孔中,ef,填的值根據p4來決定。執行p4之前需要把p4的值釋放掉,並且生成空間給p5。所以e是p(s4),f填寫v(s5)。選A

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM