考前抱佛腳t-t這幾題感覺比那幾個典型的好理解多了。。看著課本上那幾道例題越看越懵。。是我有問題還是書上寫著有問題。。下面三個是偶自己寫的不懂對不對。。。假裝自己寫的都對吧xd來不及了
問題描述:假設某宿舍樓有一共用浴室,學校頒布規定:當有乙個女生正在使用浴室,則其他女生可以進入,但是男生不行,反之亦然。在每個浴室門上有乙個滑動指示符號,表示當前處於以下三種可能狀態之一:
(1)空 (2)有女生 (3)有男生
semaphore mutex = 1,mutex_man = 1,mutex_woman = 1;
int man_count = 0,woman_count = 0;
void boy()
v(mutex_man);
/* 跟其他男孩子搶著進浴室 */
洗白白ing
/* 2.洗完澡走人 */
p(mutex);
if(man_count==0)
v(mutex);
/* 洗完澡走人 */
}void girl()
v(mutex_woman);
/* 跟其他女孩子搶著進浴室 */
洗白白ing
/* 2.洗完澡走人 */
p(mutex);
if(woman_count==0)
v(mutex);
/* 洗完澡走人 */
}
問題描述:有乙隻鐵籠子,每次只能放入乙隻動物,獵手向籠子裡放入老虎,農民向籠子裡放入豬;動物園等待取籠子裡的老虎,飯店等待取籠子裡的豬。現請用wait和signal操作寫出能同步執行的程式。
有一閱覽室,共有100個座位。讀者進入時必須先在一種登記表上登記,該錶為每一座位列乙個表目,包括座號和讀者姓名。讀者離開時要登出掉登記內容。
semaphore mutex = 1;
semaphore s = 100;
void readers()
}
作業系統 PV操作
1.pv原語的含義 p操作和v操作是不可中斷的程式段,稱為原語。pv原語及訊號量的概念都是由荷蘭科學家e.w.dijkstra提出的,其基本思路是用一種新的變數型別 semaphore 來記錄當前可用資源的數量。訊號量sem是一整數,sem大於等於零時代表可供併發程序使用的資源實體數,但sem小於零...
作業系統 PV操作
分析 進入書店p sn 與離開書店v sn 操作對應題目中的 該書店最多允許n個購書者進入 因為假如進入書店的人數超過了最大的限制,p操作會被阻塞,知道v操作執行後釋放空間。接下來分析購書與收費的流程,現實生活中購書付款是顧客提出繳費的要求後,收銀員才能進行收費。所以收銀員預設是處於待機狀態即阻塞狀...
作業系統之PV操作
在計算機作業系統中,pv操作是程序管理中的難點。首先應弄清pv操作的含義 pv操作由p操作原語和v操作原語組成 原語是不可中斷的過程 對訊號量進行操作,具體定義如下 p s 將訊號量s的值減1,即s s 1 如果s 0,則該程序繼續執行 否則該程序置為等待狀態,排入等待佇列。v s 將訊號量s的值加...