計算機操作系統PV操作例題_第1頁
計算機操作系統PV操作例題_第2頁
計算機操作系統PV操作例題_第3頁
計算機操作系統PV操作例題_第4頁
計算機操作系統PV操作例題_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、問題 1 一個司機與售票員的例子在公共汽車上,為保證乘客的安全,司機和售票員應協調工作:停車后才能開門,關車門后才能行車。用 PV 操作來實現他們之間的協調。S1:是否允許司機啟動汽車的變量S2:是否允許售票員開門的變量driver。有三個進程R M P,它們共享一個緩沖區。R負責從輸入設備讀信息,每次讀出一個記錄并把它存放在緩沖區中: M 在緩沖區加工讀入的記錄; P 把加工后的記錄打印輸出。輸入的記錄經加工輸出后,緩沖區中又可存放下一個記錄。請用P、 V 操作為同步機構寫出他們并發執行時能正確工作的程序。答:三個進程共用一個緩沖區,他們必須同步工作,可定義三個信號量:S1:表示是否可把讀人

2、的記錄放到緩沖區,初始值為1.S2:表示是否可對緩沖區中的記錄加工,初始值為 0.S3:表示記錄是否加工好,可以輸出,初始值也為0.三個進程可如下設計:BeginS1, S2, S3: semaphore;51: = l ; S2: = S3: = 0;cobeginprocess RbeginL1:讀記錄;P( S1) ;記錄存入緩沖區;V ( S2) ;goto L1 ;end;process MbeginL2: P( S2) ;加工記錄;V ( S3) ;goto L2 ;end;process PbeginL3: P( S3) ;輸出加工后的記錄;V ( S1) ;goto L3 ;e

3、nd;coend; end.6.現有4個進程R1, R2, W1 W2它們共享可以存放一個數的緩沖器 B. 進程R1每次把從鍵盤上投入的一個數存放到緩沖器 B中,供進程 W1打印輸出;進程R2每次從磁盤上讀一個數放到緩沖器B中,供進程 W2打印輸出。當一個進程把數據存放到緩沖器后,在該數還沒有被打印輸出之前不準任何進程再向緩沖器中存數。在緩沖器中還沒有存入一個新的數之前不允許任何進程加快從緩沖區中取出打印是怎樣才能使這四個進程在并發執行是協調的工作?答:這四個進程實際上是兩個生產者R1, R2和兩個消費者 W1, W2各自生成不同的產品中各自的消費對象去消費,他們共享一個的緩沖器。由于緩沖器只

4、能存放一個數,所以, R1 和 R2 在存放數時必須互斥。而R1 和W1 R2和W2之間存在同步。為了協調它們的工作可定義三個信號量:S:表示能否把數存人緩沖器B,初始值為1.S1:表示R1是否已向緩沖器存入從鍵盤上讀入的一個數,初始值為0.S2:表示R2是否已向緩沖器存入從磁盤上讀入的一個數,初始值為0.BeginS, S1, S2: semaphore;S: = 1; S1: = S2: = 0;Cobeginprocess R1xl : integer beginL1:從鍵盤讀一個數;x1 : =讀入的數;P( S) ;P( S) ;8: =xlV( S1) ;goto L1 ;end;process R2x2: integer ;beginL2:從磁盤讀一數;x2 : =讀入的數;x2: =讀入的數;P( S) ;B: =x2;V( S2) ;goto L2 ;end;process W1y : integer ;beginL3: P( S1) ;y : =B;V( S) ;打印 y 中的數;goto L3 ;end;process W2z :

溫馨提示

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

評論

0/150

提交評論