版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、習題3進程同步與通信一、選擇題題號12345678910答案ADDCBCABAA題號1112答案DC二、綜合題1、答:臨界資源也稱獨占資源、互斥資源,它是指某段時間內只充許一個進程使用的資源。比如打印機等硬件資源,以及只能互斥使用的變量、表格、隊列等軟件資源。各個進程中訪問臨界資源的、必須互斥執(zhí)行的程序代碼段稱為臨界區(qū),各進程中訪問同一臨界資源的程序代碼段必須互斥執(zhí)行。為防止兩個進程同時進入臨界區(qū),可采用軟件解決方法或同步機構來協(xié)調它們。但是,不論是軟件算法還是同步機構都應遵循下述準則:空閑讓進。忙則等待。有限等待。讓權等待。2、答:忙等待意味著一個進程正在等待滿足一個沒有閑置處理器的嚴格循環(huán)
2、的條件。因為只有一個CPU為多個進程服務,因此這種等待浪費了CPU的時鐘。其他類型的等待:與忙等待需要占用處理器不同,另外一種等待則允許放棄處理器。如進程阻塞自己并且等待在合適的時間被喚醒。忙等可以采用更為有效的辦法來避免。例如:執(zhí)行請求(類似于中斷)機制以及PV信號量機制,均可避免“忙等待”現象的發(fā)生。3、答:在生產者一消費者問題中,Producer進程中P(empty)和P(mutex)互換先后次序。先執(zhí)行P(mutex),假設成功,生產者進程獲得對緩沖區(qū)的訪問權,但如果此時緩沖池已滿,沒有空緩沖區(qū)可供其使用,后續(xù)的P(empty)原語沒有通過,Producer阻塞在信號量empty上,而
3、此時mutex已被改為0,沒有恢復成初值1。切換到消費者進程后Consumer進程執(zhí)行P(full)成功,但其執(zhí)行P(mutex)時由于Producer正在訪問緩沖區(qū),所以不成功,阻塞在信號量mutex上。生產者進程和消費者進程兩者均無法繼續(xù)執(zhí)行,相互等待對方釋放資源,會產生死鎖。在生產者和消費者進程中,V操作的次序無關緊要,不會出現死鎖現象。4、答:Pcp緩沖池1解答:設置四個信號量3nlptyl、empty2.fulll和full2,其同步關系描述如下:intemptyl=n;/*表示緩沖池1中的空緩沖區(qū)數*/intempty2=m;/*表示緩沖池2中的空緩沖區(qū)數*/intfulll-O;
4、/*表示緩沖池1中裝滿產品的緩沖區(qū)數*/main()cobeginPA()PB()PC()CoendintfulL2-0;/*表示緩沖池2中裝滿產品的緩沖區(qū)數*/PA()(while(1)生產一件產品;P(empty1);將一件產品放入緩沖池1;V(fulll);PB()(while(l)P(fulll);從緩沖池1中取出一件產品;pc()VSinptyD;爪加P(full2);P(empty2);從緩沖池2中取出一件產品1將一件產品放入緩沖池2;V(的口口2):V(full2);)5、答:設信號量sp用于控制對盤子的互斥操作,信號量sg1用于計數,表示盤子中的蘋果數目,信號量sg2用于計數,
5、表示盤子中的桔子數目。Semaphoresp=1,sg1=0,sg2=0dad()(while(1)prepareanapple;P(sp);putanappleontheplate;v(sg2);)mom()while(1)prepareanorange;p(sp);putanorangeontheplate;v(sg1);son()while(1)p(sg1);takeanorangefromtheplate;v(sp);eattheorange;daughter()while(1)p(sg2);takeanapplefromtheplate;v(sp);eattheapple;6、答:本
6、題是生產者-消費者問題的一個擴展,P1是生產者,生產的產品分為兩種,P2、P3是消費者,分別消費這兩種產品。(1)緩沖區(qū)是一互斥資源,每次只允許一個進程進入,所以設互斥信號量mutex,其初始值為1。(2)P1、P2因為奇數的放置與取用而同步,設該信號量為odd,初始值為0;P1、P3因為偶數的放置與取用而同步,設該信號量為even,初始值為0,P1、P2、P3因為共享緩沖區(qū),設同步信號量為empty,初始值為N。semaphoremutex=1,odd=0,even=0,empty=Nmain()cobeginProcessP1while(true)number=produce();P(em
7、pty);P(mutex);put();V(mutex);ifnumber%2=0V (even);elseV (odd);ProcessP2while(true)P(odd);P(mutex);getodd();V(mutex);V (empty);countodd();ProcessP3while(true)P(even);P(mutex);geteven();V(mutex);V (empty);counteven();coend7、答:Semaphoremax;初始n+1,表示理發(fā)店可以容納的總人數Semaphorechair;初始n,空閑的椅子Semaphorebarber;初始1,
8、表示理發(fā)椅空閑Semaphorefinished;初始0,表示一次理發(fā)結束Semaphoreready;初始0,表示客人準備就緒Customer:While(1)wait(max);wait(chair);wait(barber);signal(chair);signal(ready);barberedwait(finished);signal(max);)Barber:While(1)wait(ready);barberingsignal(finished);signal(barber);)8、答:本題是生產者-消費者問題的變形。兩個生產車間為生產者進程,分別生產A、B兩種配將;裝配車間為消
9、費者,把A、B兩種產品組裝成產品。F1和F2為容量是10的緩沖池,需互斥訪問。逐一分析本題中需要同步和互斥的地方,定義信號量及其初值:(1) mutex1用于貨架F1的互斥訪問,初值為1;(2) mutex2用于貨架F2的互斥訪問,初值為1;(3) empty1和full1用于生產A零件車間和裝配車間之間的同步制約關系。F1最多可以放10個A零件,所以empty1為10;開始時F1中沒有A零件,full1的初值為0。(4) empty2和full2用于生產B零件車間和裝配車間之間的同步制約關系。F2最多可以放10個A零件,所以empty2為10;開始時F2中沒有B零件,full2的初值為0。A
10、車間的工作過程的偽代碼描述為:while(1)生產一個產品A;P(empty1);P(mutex1);將產品A存放到貨架F1上;V (mutex1);V (full1);)B車間的工作過程的偽代碼描述為:while(1)生產一個產品B;P(empty2);P(mutex2);將產品B存放到貨架F2上;V (mutex2);V (full2);)裝配車間的工作過程偽代碼描述為:while(1)P(fulll);P(mutexl);從貨架F1上取一個A產品;V (mutexl);V (emptyl);P(full2);P(mutex2);從貨架F2上取一個B產品;V (mutex2);V (emp
11、ty2);將取得的A產品和B產品自組裝成產品;)9、答:本題中中共有三類進程,他相當于機房管理員進程guard,學生進程student和教師進程teacher。相應的信號量和各個進程描述如下:semaphorecomputer=2m;/*對應于計算機的資源信號量*/semaphorestudent=0;/*對應于欲進入機房的學生*/semaphoreenter=0;/*用來控制學生是否可進入機房*/semaphorefinish=test=0;/*用來同步學生和教師教師須檢查實習完畢的學生*/student_i()/*i=1,2,-2n*/V(student);/*激活管理員,有學生到達,要進
12、入機房實驗*/P(enter);/*等待管理員激活進入機房*/進入機房上機實習;V(finish);/*激活教師已經做完實驗*/P(test);/*等待教師檢查作業(yè)*/離開機房;V(computer);/*所占用的計算機變?yōu)榭臻e*/)guard()inti;for(i=0;i+;in)P(computer);/*等待有兩個空閑計算機*/P(computer);P(student);/*等待有兩個學生達到*/P(student);V(enter);/*激活兩個等待進入機房的學生*/V(enter);)teacher()inti;for(i=0;i+;in)P(finish);/*等待兩個學生完成
13、實驗*/P(finish);檢查兩個學生的實習結果;V(test);/*檢查完后,激活兩個學生檢查完畢,可以離開機房*/V(test);)10答:本題有兩個臨界資源:一個是出入口,另一個是博物館。本題需要定義兩個信號量semaphoreempty=500;semaphoremutex=1;cobegin參觀者進程i;P(empty);P(mutex);進門;V(mutex);參觀;P(mutex);出門;V(mutex);V(empty);)Coend;11、答:雖然信號量機制是一種有效的進程同步機制,但其存在以下缺點:信號量的P、V操作由用戶在各個進程中分散使用,使用不當容易造成死鎖,增加了
14、用戶編程負擔。信號量機制涉及多個程序的關聯內容,程序代碼可讀性差。使用信號量機制不利于代碼的修改和維護,程序模塊獨立性差,任一變量或一段代碼的修改都可能影響全局。信號量機制的正確性很難保證。管程由四部分組成:管程的名稱;局部于管程內部的共享數據結構說明;對該數據結構進行操作的一組過程;對管程內部共享數據設置初始值的語句。12、答:管程與進程不同,主要體現在以下方面: 定義的數據結構及其在數據結構上進行的操作不同。進程定義的是私有數據結構,主要對數據進行處理運算;管程定義的是公共數據結構,主要進行同步和初始化操作。 目的不同。進程在于實現系統(tǒng)的并發(fā)性,管程是為解決共享資源的互斥使用。 進程通過調
15、用管程中的過程實現對共享數據結構的操作,進程為主動工作方式,管程為被動工作方式。 進程之間能并發(fā)執(zhí)行,而管程則不能與調用進程并發(fā)執(zhí)行。 進程具有動態(tài)性,而管程則是操作系統(tǒng)中一個資源管理模塊,供進程調用。13、答:高級通信機制可分為三大類:1 .共享存儲器系統(tǒng)共享存儲器系統(tǒng)中相互通信的進程間共享某些數據結構或存儲區(qū),彼此能夠通過這些空間進行通信。2 .消息傳遞系統(tǒng)進程間的數據交換常以格式化的消息為單位。在計算機網絡中,又把消息稱為報文。程序員直接利用系統(tǒng)提供的一組通信命令進行通信。消息傳遞系統(tǒng)按實現方式分成兩種。3 .管道通信所謂管道”是指用于連接一個讀進程和一個寫進程以實現它們之間通信的一個共享文件。向管道(共享文件)提供輸入的發(fā)送進程(即寫進程)以字符流形式將大量的數據送入管道;接受管
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度重型卡車跨區(qū)域運輸租賃合作協(xié)議4篇
- 二零二五年電力施工設計及風險評估合同3篇
- 二零二五年度住宅小區(qū)車位租賃及充電樁安裝服務協(xié)議4篇
- 2025年度大型現代化煤場長期租賃合同4篇
- 二零二五版商場空調設備安裝與節(jié)能降耗總包合同3篇
- 二零二五年度大蒜電商銷售渠道建設與運營合同4篇
- 2025年度個人房產抵押貸款再融資合同模板3篇
- 2025年消防設施維護保養(yǎng)及應急預案制定合同協(xié)議3篇
- 二零二五年度影視制作合伙人合作協(xié)議4篇
- 二零二五版道路照明設施智能化改造與維護合同4篇
- 2023年上海英語高考卷及答案完整版
- 西北農林科技大學高等數學期末考試試卷(含答案)
- 金紅葉紙業(yè)簡介-2 -紙品及產品知識
- 《連鎖經營管理》課程教學大綱
- 《畢淑敏文集》電子書
- 頸椎JOA評分 表格
- 員工崗位能力評價標準
- 定量分析方法-課件
- 朱曦編著設計形態(tài)知識點
- 110kV變電站工程預算1
- 某系統(tǒng)安全安全保護設施設計實施方案
評論
0/150
提交評論