作業系統之pv經典習題
1.有一閱覽室,共有100個座位。讀者進入時必須先在一種登記表上登記,該錶為每一座位列乙個表目,包括座號和讀者姓名。讀者離開時要登出掉登記內容。試用wait和signal原語描述讀者程序的同步問題。
semaphore empty =
100;
// 記錄空座位
semaphore mutex =1;
// 作為互斥的訪問登記和登出操作
void
reader()
}
2.有乙隻鐵籠子,每次只能放入乙隻動物,獵手向籠子裡放入老虎,農民向籠子裡放入豬;動物園等待取籠子裡的老虎,飯店等待取籠子裡的豬。現請用wait和signal操作寫出能同步執行的程式。
```c
semaphore box =1;
// 記錄籠子是否為空
semaphore tiger =
0,pig =0;
// 作為老虎和豬的同步訊號量
void
hunter()
}void
farmer()
}void
zoo()}
void
restaurant()
}
3.某車站售票廳,任何時刻最多可容納20名購票者進入,當售票廳中少於20名購票者時則廳外的購票者可立即進入,否則需在外面等待。若把乙個購票者看作乙個程序,請回答下列問題
(1)用pv操作管理這些併發程序時,應怎樣定義訊號量?寫出訊號量的初值以及訊號量各種取值的含義。
(2)若欲購票者最多為n個人,寫出訊號量可能的變化範圍(最大值和最小值)。
(1)定義一訊號量s,初始值為20。
s>0,s的值表示可繼續進入售票廳的人數;
s=0,表示售票廳中已有20名顧客(購票者);
s<0,|s|的值為等待進入售票廳的人數。
(2)由於s的值表示的是在售票廳有多少個座位,因此最大值為s(表示沒有人)最小值為s-n(根據n來決定)
4.在公共汽車上,司機負責開車、停車和駕駛,售票員負責門的開門、關門和售票。基本操作規則是只有停車後售票員才能開門只有售票員關門後司機才能開車。汽車初始狀態處於行駛之中。當只有1個司機、2個售票員、2個門、每個售票員負責乙個門時的協調操作。請使用p、v原語實現售票員與司機之間的協調操作說明每個訊號量的含義、初值和值的範圍。【燕山大學 2006複試】
semaphore full1 =
0,full2 =0;
// 作為司機和售票員的同步訊號量
semaphore door1 =
1,door2 =1;
//作為記錄門的同步訊號量
void
driver()
}void
seller1()
}void
seller2()
}
5.某銀行有人民幣儲蓄業務由n個櫃員負責有1台取號機。每個顧客進入銀行後先取乙個號若有人取號則需等他人取完後才能取,取到號後等待叫號當乙個櫃員人員空閒下來就叫下乙個號。試用p、v操作正確編寫櫃檯人員和顧客程序的程式。【昆明理工大學 2006】
semaphore mutex =1;
// 互斥訊號量 充當一台取號機的作用
semaphore empty =1;
// 叫號機的使用
semaphore full =0;
// 顧客和服務人員的同步訊號量
semaphore sell = n;
// 記錄是否有空閒的顧客
void
customer()
}void
seller()
}
6.在一間酒吧裡有三個**愛好者佇列,第乙個**愛好者只有隨身聽,第二個只有**磁帶,第三個只有電池,而要聽**就必須有隨身聽,**磁帶和電池這三種物品。酒吧老闆一次**這三種物品中的任意兩種,當一名**愛好者得到這三種物品並聽完樂曲後,酒吧老闆才能再一次**這三種物品中任意兩種,於是第二名**愛好者得到這三種物品。並開始聽樂曲,全部買賣就這樣進行下去。使用p,v操作正確解決這一買賣。(北京大學1999)
semaphore s =1;
// 作為是否有顧客來的標誌
bool flag1,flag2,flag3 = true;
// 標識是否有資源
semaphore s1 =
0,s2 =
0,s3 =0;
// 作為和愛好者進行同步的訊號量
void
boss()
}void
hobby1()
}void
hobby2()
}void
hobby3()
}
作業系統之PV操作
在計算機作業系統中,pv操作是程序管理中的難點。首先應弄清pv操作的含義 pv操作由p操作原語和v操作原語組成 原語是不可中斷的過程 對訊號量進行操作,具體定義如下 p s 將訊號量s的值減1,即s s 1 如果s 0,則該程序繼續執行 否則該程序置為等待狀態,排入等待佇列。v s 將訊號量s的值加...
作業系統 PV操作
1.pv原語的含義 p操作和v操作是不可中斷的程式段,稱為原語。pv原語及訊號量的概念都是由荷蘭科學家e.w.dijkstra提出的,其基本思路是用一種新的變數型別 semaphore 來記錄當前可用資源的數量。訊號量sem是一整數,sem大於等於零時代表可供併發程序使用的資源實體數,但sem小於零...
作業系統 PV操作
分析 進入書店p sn 與離開書店v sn 操作對應題目中的 該書店最多允許n個購書者進入 因為假如進入書店的人數超過了最大的限制,p操作會被阻塞,知道v操作執行後釋放空間。接下來分析購書與收費的流程,現實生活中購書付款是顧客提出繳費的要求後,收銀員才能進行收費。所以收銀員預設是處於待機狀態即阻塞狀...