知道哪個過程用哪個同步訊號量

2021-07-11 15:09:10 字數 1627 閱讀 9210

題目給出哪個過程用哪個同步訊號量的例子程序p1、p2、p3、p4和p5的前趨圖如下:

若用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 計數訊號量。它可以有更大的取值範圍。如果要用...