影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

操作系統(tǒng) 作業(yè)答案

上傳人:xt****7 文檔編號:90083045 上傳時間:2022-05-14 格式:DOC 頁數(shù):7 大小:68KB
收藏 版權申訴 舉報 下載
操作系統(tǒng) 作業(yè)答案_第1頁
第1頁 / 共7頁
操作系統(tǒng) 作業(yè)答案_第2頁
第2頁 / 共7頁
操作系統(tǒng) 作業(yè)答案_第3頁
第3頁 / 共7頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《操作系統(tǒng) 作業(yè)答案》由會員分享,可在線閱讀,更多相關《操作系統(tǒng) 作業(yè)答案(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第九題 設有兩個生產(chǎn)者進程A、B和一個銷售者進程C,他們共享一個無限大的倉庫,生產(chǎn)者每次循環(huán)生產(chǎn)一個產(chǎn)品,然后入庫供銷售;銷售者每次循環(huán)從倉庫中取出一個產(chǎn)品進行銷售。如果不允許同時入庫,也不允許邊入庫邊出庫;而且要求生產(chǎn)和消費A產(chǎn)品和B產(chǎn)品的件數(shù)都滿足以下關系:-n≤A的件數(shù)-B的件數(shù)≤m,其中n、m是正整數(shù)。 分析:生產(chǎn)者A、B和消費者之間不能同時將產(chǎn)品入庫和出庫,故倉庫是一個臨界資源。 生產(chǎn)的A、B產(chǎn)品必須滿足:-n≤A的件數(shù)-B的件數(shù)≤m,如練習5中,同樣的方法管理,分別使用了信號量SAB和SBA; 倉庫的管理只要求出入庫互斥,由于倉庫無限大入庫只需操作互斥就可以完成,出庫要

2、考慮有無產(chǎn)品,SA對應于倉庫中的A產(chǎn)品量,SB對應于倉庫中的B產(chǎn)品量; 銷售要滿足:-n≤A的件數(shù)-B的件數(shù)≤m,用difference表示A的件數(shù)-B的件數(shù),即difference= A的件數(shù)-B的件數(shù);difference==-n的時候,不能取產(chǎn)品B,只能取A;difference==m的時候,不能取產(chǎn)品A,只能取B;-n

3、BA表示當前允許B生產(chǎn)的產(chǎn)品數(shù)量,其初值為n;另外,還需設置一個整數(shù)difference表示所銷售的A、B產(chǎn)品數(shù)量之差,而為了同步生產(chǎn)者和銷售者并使銷售的A、B產(chǎn)品的件數(shù)-n≤A的件數(shù)-B的件數(shù)≤m,還需要設置三個資源信號量,其中S對應于倉庫中的總的產(chǎn)品量,SA對應于倉庫中的A產(chǎn)品量,SB對應于倉庫中的B產(chǎn)品量,它們的初值都為0. Semaphore SAB=m,SBA=n,S=0,SA=0,SB=0,mutex=1; process A( ) { while(1) {//生產(chǎn)產(chǎn)品,-n≤A的件數(shù)-B的件數(shù)≤m,方法同第4題 wait(SAB); Produce a produ

4、ct A; signal(SBA); //入庫操作,滿足出入庫操作互斥即可 wait(mutex); add the product A to the storehouse; signal(mutex); signal(SA); //入庫產(chǎn)品A一件,所以給SA增值 signal((S); //入庫產(chǎn)品一件,所以給S增值,S是倉庫中全部產(chǎn)品的數(shù)量 } } process B( ) { while(1) {//生產(chǎn)產(chǎn)品,-n≤A的件數(shù)-B的件數(shù)≤m,方法同第4題 wait(SBA); Produce a product B; signal(SAB);

5、 //入庫操作,滿足出入庫操作互斥即可 wait(mutex); add the product A to the storehouse; signal(mutex); signal(SB); //入庫產(chǎn)品A一件,所以給SA增值 signal((S); //入庫產(chǎn)品一件,所以給S增值,S是倉庫中全部產(chǎn)品的數(shù)量 } } process C( ) { while(1) { wait(S); //首先檢查有無產(chǎn)品,無產(chǎn)品阻塞,有產(chǎn)品,下面操作將會取走一件產(chǎn)品,所以S減1 if(difference<=-n) {wait(SA); // diffe

6、rence<=-n時只能取A產(chǎn)品一件,無A產(chǎn)品則需阻塞 //出庫操作,滿足出入庫操作互斥 wait(mutex); take a product A from storehouse; signal(mutex); difference++; //取A產(chǎn)品一件,difference++ } else if(difference>=m) { wait(SB); // difference>=m時只能取B產(chǎn)品一件,無B產(chǎn)品則需阻塞 //出庫操作,滿足出入庫操作互斥 wait(mutex); take a product B

7、 from storehouse; signal(mutex); difference--; //取B產(chǎn)品一件,difference-- } else { //-n

8、SA減1,這里不可能發(fā)生沒有A產(chǎn)品,進程C需要阻塞的情況 wait(SA); difference++;//取A產(chǎn)品一件,difference++ } else {//取的是產(chǎn)品B,則信號量SB減1,這里不可能發(fā)生沒有B產(chǎn)品,進程C需要阻塞的情況 wait(SB); difference--;//取B產(chǎn)品一件,difference-- } } Sell the product; } } main() { cobegin{ A(); B(); C(); } }

9、 例題20解答   本題是一個有限緩沖區(qū)的生產(chǎn)者消費者問題,關鍵是找到緩沖區(qū)資源,以及誰是生產(chǎn)者、誰是消費者。   本題中煙草、紙和火柴應該看作是產(chǎn)品,桌子是緩沖區(qū)。問題是有幾種產(chǎn)品。煙草、紙和火柴三種原料又不能簡單地看成是三種產(chǎn)品,因為它們并不是以單獨的形式被三個吸煙者進程所競爭的,而是以固定的組合被三個進程所申請的。因此可以考慮:設置三個信號量r、s和t,分別代表三種原料組合,即r表示煙草和紙,s表示紙和火柴,t表示煙草和火柴,初值均為0;桌面上一次只能放一種組合,可以看作是放一個產(chǎn)品的緩沖區(qū),設置信號量empty初值為1,控制經(jīng)銷商往桌子上放原料;對于三個吸煙者的申請動作也要加以

10、判斷,用三個變量smoker1、smoker2、smoker3,初值為false,當為true時,表示申請資源,得到資源后置為false。四個進程循環(huán)往復,并發(fā)執(zhí)行。      經(jīng)銷商進程:      吸煙者1進程:?      吸煙者2進程:?      吸煙者3進程:    第一題44. a、b兩點之間是一段東西向的單行車道,現(xiàn)要設計一個自動管理系統(tǒng),管理規(guī)則如下:當a、b之間有車輛在行駛時同方向的車可以同時駛入ab段,但另一方向的車必須在ab段外等待;當ab之間無車輛在行駛時,到達a點(或b點)的車輛可以進入ab段,但不能從a點和b點同時駛入;當某方向在ab段駛出

11、了ab段且暫無車輛進入ab段時,應讓另一方向等待的車輛進入ab段行駛。 現(xiàn)定義兩個計數(shù)器CountE和CountW分別記錄東行和西行車輛進程數(shù)。用PV操作進行管理時的三個信號量為S、SE、SW,程序結構如下: begin S, SE, SW: semaphore; CountE, CountW: Integer; CountE := ____(1)_0___; CountW := ____(2)_0___; S := ____(3)_1___; SE := ____(4)_1___; SW := ____(5)1____; cobegin P

12、rocess EASTi (i=1, 2, 3, …) begin ____(6)_P(SE)___; if CountE = 0 then____(7)P(S)____; CountE := CountE+1; ____(8)_V(SE)___; pass(ab); ____(9)_P(SE)___; CountE := CountE-1; if CountE = 0 then ____(10)_V(S)___; ____(11)_V(SE)___; end; Process WEST

13、j(j=1, 2, 3, …) Begin ____(12)_P(SW)___; if CountW = 0 then ____(13)_P(S)___; CountW := CountW+1; ____(14)_V(SW)___; pass(ba); ____(15)_P(SW)___; CountW := CountW-1; if CountW = 0 then ____(16)_V(S)___; ____(17)_V(SW)___; end; coend; end; 44.

14、 (1) 0 (2) 0 (3) 1 (4) 1 (5) 1 (6) P(SE) (7) P(S) (8) V(SE) (9) P(SE) (10) V(S) (11) V(SE) (12) P(SW) (13) P(S) (14) V(SW) (15) P(SW) (16) V(S) (17) V(SW) 3、如果有三個進程R、W1、W2共享一個緩沖器B,而B中每次只能存放一個數(shù)。當緩沖器中無數(shù)時,進程R可以將從輸入設備上讀入的數(shù)存放到緩沖器中。若存放到緩沖器中的是奇數(shù),則允許進程W1將其取出打印;若存放到緩沖器中的是偶數(shù),則允許進程W2將其取出

15、打印。同時規(guī)定:進程R必須等緩沖區(qū)中的數(shù)被取出打印后才能再存放一個數(shù);進程W1或W2對每次存入緩沖器的數(shù)只能打印一次;W1和W2都不能從空緩沖中取數(shù)。寫出這三個并發(fā)進程能正確工作的程序。 答:S為互斥信號量,用來對緩沖器的互斥使用; SO和SE為資源信號量,SO表示是否允許進程W1打?。籗E表示是否允許進程W2打印。 semaphore S=1,SO=SE=0; buffer B; process R() { int x; while(1) {從輸入設備上讀一個數(shù); x=接收的數(shù); wait(S); B=x; if B=奇數(shù) then signal(SO); else signal(SE); } } process W1() { int y; while(1) { wait(SO); y=B; signal(S); 打印y中數(shù);} } process W2() { int z; while(1) { wait(SE); z=B; signal(S); 打印z中數(shù) ;} } main() {cobegin { R(); W1(); W2();} }

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!