作業系統之pv經典習題

2021-10-07 07:43:46 字數 2414 閱讀 4792

作業系統之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操作執行後釋放空間。接下來分析購書與收費的流程,現實生活中購書付款是顧客提出繳費的要求後,收銀員才能進行收費。所以收銀員預設是處於待機狀態即阻塞狀...