1.n個併發進程通過初值爲1的信號量s共享資源R,當n個進程都通過wait(s)申請訪問資源R時,信號量s的值爲( )。
編號 |
選項 |
A |
0 |
B |
n |
C |
-n |
D |
-(n-1) |
2.下列哪種方式不支持多處理器環境下的互斥( )。
編號 |
選項 |
A |
中斷禁用 |
B |
專用機器指令 |
C |
信號量 |
D |
管程 |
3.與資源R共享相關的信號量s初值爲4,經過多次wait和signal操作後s當前值爲-2,此時獲得R的進程數是( )。
4.設與某資源R關聯的信號量爲s,若這個資源最多允許3個進程同時訪問,當有5個進程申請訪問R時, 採用wait和signal操作來實現同步,則信號量s的取值範圍是( )。
編號 |
選項 |
A |
0≤s≤3 |
B |
0≤s≤5 |
C |
-2≤s≤3 |
D |
2≤s≤5 |
5.在讀者/寫者問題中,用R表示讀者,W表示寫者,下列每個序列從左到右表示進程到達的先後順序,當採用讀者優先方案時,序列( )可能存在寫者飢餓問題。
編號 |
選項 |
A |
RRRW |
B |
WRRR |
C |
RWRR |
D |
WRRW |
6.服務器進程爲多個客戶進程提供服務或資源時,採用( )的消息傳遞方式較爲常見。
編號 |
選項 |
A |
阻塞發送,阻塞接收 |
B |
不阻塞發送,阻塞接收 |
C |
不阻塞發送,不阻塞接收 |
D |
阻塞發送,不阻塞接收 |
7.當一個進程因在互斥信號量s上執行signal(s)操作而喚醒另一個進程時,則執行signal操作後s的取值範圍是( )。
編號 |
選項 |
A |
大於0 |
B |
大於等於0 |
C |
小於0 |
D |
小於等於0 |
8.下列關於管程的描述,正確的是( )。
編號 |
選項 |
A |
管程只能用於實現進程的互斥 |
B |
管程是由程序設計語言支持的進程互斥同步機制 |
C |
任何時候只能有一個進程在管程中執行 |
D |
管程中定義的變量只能被管程內的過程訪問 |
9.在生產者/消費者問題中,假設有5個生產者,5個消費者共享容量爲8的緩衝空間,則實施互斥訪問緩衝空間的信號量初始值爲( )。
10.在生產者/消費者問題中,用s表示實施互斥的信號量,e表示與緩衝區空閒空間數量相關的信號量,n表示與緩衝區中數據項個數相關的信號量,下列生產者和消費者的操作(生產者和消費者可併發執行),可能產生死鎖的是( )。
編號 |
選項 |
A |
生產者:wait(s);wait(e);append();signal(n);signal(s);消費者:wait(s);wait(n);take();signal(e);signal(s); |
B |
生產者:wait(s);wait(e);append();signal(n);signal(s);消費者:wait(n);wait(s);take();signal(s);signal(e); |
C |
生產者:wait(e);wait(s);append();signal(s);signal(n);消費者:wait(s);wait(n);take();signal(e);signal(s); |
D |
生產者:wait(e);wait(s);append();signal(s);signal(n);消費者:wait(n);wait(s);take();signal(s);signal(e); |
11.專用機器指令支持互斥會存在忙等問題。
12.wait和signal操作必須作爲原語來實現。
@Power By Exercises-Manager