若用pv操作控制程序p1~p5併發執行過程,則需要設定5個訊號量s1、s2、s3、s4和s5,程序間同步所使用的訊號量標註在上圖中的邊上,且訊號量s1~s5的初始值都等於零,初始狀態下從程序p1開始執行。下圖中a、b和c處應分別填寫(1);d和e處應分別填寫(2),f和g處應分別填寫(3)。
(1)a. v(s1)v(s2)、p(s1)和v(s3) v(s4)
b. p(s1)v(s2)、p(s1)和p(s2) v(s1)
c. v(s1)v(s2)、p(s1)和p(s3) p(s4)
d. p(s1)p(s2)、v(s1)和p(s3) v(s2)
(2)a. p(s1) 和v(s5)
b. v(s1) 和p(s5)
c. p(s2) 和v(s5)
d. v(s2) 和p(s5)
(3)a. p(s3)和v(s4) v(s5)
b. p(s3)和p(s4) p(s5)
c. v(s3)和v(s4) v(s5)
d. v(s3)和p(s4) p(s5)
答案:a、c、b
由圖可知
解析:p1執行完後v(s1),v(s2)
p2執行前p(s1), p2執行完後v(s3),v(s4)
p3執行前v(s2), p3執行完後v(s5)
p4執行前p(s3),p(s4)
p5執行前p(4),p(s5)
題目只給出哪個過程用哪個同步訊號量的文字資訊的例子
試題:程序p1、p2、p3、p4和p5的前趨圖如下所示:
b.p(s1) 、v(s1)和v(s2) v(s3)
c.v(s1) 、v(s2)和p(s1) v(s3)
d.p(s1) 、v(s2)和v(s1) v(s3)
a.v(s2)和p(s4)
b.p(s2)和v(s4)
c.p(s2)和p(s4 )
d.v(s2)和v(s4)
a.p(s3)和v(s4 ) v(s5 )
b.v(s3)和p(s4)和p(s5)
c.p(s3)和p (s4 ) p (s5 )
d.v(s3)和v(s4)和v(s5)
答案:a、b、c
給該題的每個過程標註同步訊號量的圖例如下:
其實這類題非常簡單只要掌握以下知識點:
1、各個過程使用的是哪個同步訊號量
2、先執行的程序使用v操作,後執行的程序用p操作。
同步 訊號量
include stdafx.h include includeusing namespace std int number 1 定義全域性變數 handle hsemaphore 定義訊號量控制代碼 unsigned long stdcall threadproc1 void lp long co...
執行緒訊號量同步
thread sem.c include include include include define thread number 3 define repeat number 3 define delay time levels 10.0 sem t sem thread number void ...
同步和訊號量
下面介紹用訊號量進行同步。訊號量概念由荷蘭科學家dijkstra首先提出。訊號量是乙個特殊型別的變數,它可以被增加或者減少。但對其的關鍵訪問被保證是原子操作,即使在乙個多執行緒程式中也是如此。訊號量有兩種型別 1 二進位制訊號量。它只有0和1兩種取值。2 計數訊號量。它可以有更大的取值範圍。如果要用...