進程同步與通信習題.ppt_第1頁
進程同步與通信習題.ppt_第2頁
進程同步與通信習題.ppt_第3頁
進程同步與通信習題.ppt_第4頁
進程同步與通信習題.ppt_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

進程同步習題,1、有3個進程PA,PB和PC合作解決文件打印問題: PA將文件記錄從磁盤讀入主存的緩沖區(qū)1,每執(zhí)行一次讀一個記錄; PB將緩沖區(qū)1的內容復制到緩沖區(qū)2,每執(zhí)行一次復制一個記錄; PC將緩沖區(qū)2的內容打印出來,每執(zhí)行一次打印一個記錄。緩沖區(qū)的大小等于一個記錄大小。 請用P,V操作來保證文件的正確打印。,設置4個信號量:empty1, empty2,full1,full2. Empty1及Empty2分別表示緩沖區(qū)1及緩沖區(qū)2是否為空,初值為1。 Full1,full2分別表示緩沖區(qū)1及緩沖區(qū)2是否有記錄可供處理,其初值為0。,PC( ) While (1) P(full2); 從緩沖區(qū)2取一個記錄; V(empty2); 打印記錄;,PA( ) While (1) 從磁盤讀一個記錄; P(empty1); 將記錄存入緩沖區(qū)1; V(full1); PB( ) While (1) P(full1); 從緩沖區(qū)1中取出記錄; v(empty1); P(empty2); 將記錄存入緩沖區(qū)2; V(full2);,Int empty1=1,empty2=1,full1=0,full2=0; main( ) Cobegin PA( ); PB( ); PC( ); Coend,2、公共汽車上,司機和售票員的活動分別為:,司機的活動: 啟動車輛; 正常行駛, 到站停車,售票員的活動: 關車門; 售票; 開車門;,例: 司機 P1 售票員 P2 REPEAT REPEAT 啟動 關門 正常運行 售票 到站停 開門 UNTIL FALSE UNTIL FALSE,司機啟動車輛的動作必須與售票員關車門的動作取得同步,售票員開車門的動作也必須與司機停車取得同步。,解:設信號量S1:是否允許司機啟動汽車,初值為0 信號量S2:是否允許售票員開門,初值為0,Driver( ) While (1) P(s1); 啟動汽車 正常行車; 到站停車; V(S2); ,Busman( ) While (1) 關車門; V(S1); 售票 P(S2); 開車門; 上下乘客;,int s1=0; int s2=0; main( ) Cobegin Driver(); Busman(); Coend ,3、桌上有一空盤,允許存放一只水果。爸爸可向 盤中放蘋果,也可向盤中放桔子,兒子專等吃盤中 的桔子,女兒專等吃盤中的蘋果。規(guī)定當盤空時一 次只能放一只水果供吃者取用,請用P,V原語實 現(xiàn)爸爸,兒子女兒三個進程的同步。,解:設三個信號量, S:表示盤子是否為空,初值為1 So:表示盤中是否有桔子,初值為0 Sa:表示盤中是否有蘋果,初值為0;,int s=1; int sa=0; int so=0; main() Cobegin father( ); son( ); daughter( ); Coend ,father( ) While (1) P(S); 將水果放入盤中; If (放入的是桔子) v(So); Else v(Sa); ,son( ) While (1) P(So); 從盤中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論