計算機操作系統(tǒng)習習題及答案(4)_第1頁
計算機操作系統(tǒng)習習題及答案(4)_第2頁
計算機操作系統(tǒng)習習題及答案(4)_第3頁
計算機操作系統(tǒng)習習題及答案(4)_第4頁
計算機操作系統(tǒng)習習題及答案(4)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第4章 進程同步與通信1)選擇題(1)在操作系統(tǒng)中,P、V操作是一種_D_。A. 機器指令 B. 系統(tǒng)調用命令C. 作業(yè)控制命令 D. 低級進程通信原語(2)若信號量S的初值為2,當前值為-1,則表示有_B_等待進程。A. 0個 B. l個C. 2個 D. 3個(3)在直接通信方式中,系統(tǒng)提供兩條通信原語進行發(fā)送和接收,其中Send原語中參數(shù)應是_C_。A. sender,message B. sender,mailboxC. receiver,message D. receiver,mailbox(4)下述那個選項不是管程的組成部分_A_。A. 管程外過程調用管程內數(shù)據(jù)結構的說明B. 管程內

2、對數(shù)據(jù)結構進行操作的一組過程C. 局部于管程的共享數(shù)據(jù)說明D. 對局部于管程的數(shù)據(jù)結構設置初值的語句(5)某通信方式通過共享存儲區(qū)來實現(xiàn),其屬于_D_。A. 消息通信 B. 低級通信C. 管道通信 D. 高級通信(6)用P、V操作管理臨界區(qū)時,信號量的初值應定義為_C_。A. -1 B. 0C. 1 D. 任意值(7)臨界區(qū)是_B_。A. 一個緩沖區(qū) B. 一段程序C. 一段共享數(shù)據(jù)區(qū) D. 一個互斥資源(8)信箱通信是一種_D_通信方式。A. 直接通信 B. 信號量C. 低級通信 D. 間接通信(9)對于兩個并發(fā)進程,設互斥信號量為mutex,若mutex=0則_A_。A. 表示有一個進程進

3、入臨界區(qū)B. 表示沒有進程進入臨界區(qū)C. 表示有一個進程進入臨界區(qū),另一個進程等待進入D. 表示有兩個進程進入臨界區(qū)(10)對信號量S執(zhí)行V操作后,下述選項正確的是_C_。A. 當S小于等于0時喚醒一個阻塞進程B. 當S小于0時喚醒一個阻塞進程C. 當S小于等于0時喚醒一個就緒進程D. 當S小于0時喚醒一個就緒進程 (11)在消息緩沖通信中,消息隊列屬于_A_資源。A. 臨界 B. 共享 C. 永久 D. 可剝奪 (12)在消息緩沖通信機制中,使用的臨界資源是_D_。A. 信箱 B. 消息隊列中的某個緩沖區(qū)C. 管道 D. 整個消息隊列2)填空題(1)信號量的物理意義是:當信號量值大于0時表示

4、 可用資源的個數(shù) ;當信號量值小于0時,其絕對值為 等待該信號量的進程數(shù) 。(2)如果信號量的當前值為-4,則表示系統(tǒng)中在該信號量上有 _4_ 個等待進程。(3)對于信號量可以做 P 操作和 V 操作, P 操作用于阻塞進程, V 操作用于釋放進程。程序中的 P 和 V 操作應謹慎使用,以保證其使用的正確性,否則執(zhí)行時可能發(fā)生死鎖。(4)有m個進程共享同一臨界資源,若使用信號量機制實現(xiàn)對臨界資源的互斥訪問,則信號量值的變化范圍是 _-(m-1),1_ 。(5)管程由 局部于管程(資源對象)的共享變量的說明 、 對管程(資源對象)數(shù)據(jù)進行操作的一組過程 和 對局部于管程的數(shù)據(jù)設置初始值的語句 三

5、部分組成。(6)訪問臨界資源的進程應該遵循的條件有: 空閑讓進 、 忙則等待 、 有限等待 和 讓權等待 。(7)每個信箱可以包含 信箱頭 和 信箱體 兩部分。(8)為了實現(xiàn)消息緩沖通信,在PCB中應增加的數(shù)據(jù)項有 消息隊列中消息資源的信號量 、 對消息隊列互斥操作的信號量 和 指向消息隊列的指針 。3)解答題(1)什么是臨界資源什么是臨界區(qū)對臨界資源的訪問有哪些原則 答:一次僅允許一個進程使用的共享資源被稱為臨界資源。 每個進程中訪問臨界資源的那段程序稱為臨界區(qū)。對臨界資源的訪問原則是:空閑讓進,如果有若干進程要求進入空閑的臨界區(qū),一次僅允許一個進程進入。忙則等待,任何時候,處于臨界區(qū)內的進

6、程不可多于一個。如已有進程進入自己的臨界區(qū),則其它所有試圖進入臨界區(qū)的進程必須等待。有限等待,進入臨界區(qū)的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區(qū)。讓權等待,如果進程不能進入自己的臨界區(qū),則應讓出CPU,避免進程出現(xiàn)“忙等”現(xiàn)象。(2)請給出P、V操作的定義。如何用P、V操作實現(xiàn)進程間的互斥解:P原語操作的動作是:sem減1; 若sem減1后仍大于或等于零,則進程繼續(xù)執(zhí)行; 若sem減1后小于零,則該進程被阻塞后進入與該信號相對應的隊列中,然后轉進程調度。V原語操作的動作是: sem加1; 若相加結果大于零,則進程繼續(xù)執(zhí)行; 若相加結果小于或等于零,則從該信號的等待隊列中喚醒

7、一等待進程,然后再返回原進程繼續(xù)執(zhí)行或轉進程調度。由于用于互斥的信號量sem與所有的并發(fā)進程有關,所以稱之為公有信號量。公有信號量的值反映了公有資源的數(shù)量。只要把臨界區(qū)置于P(sem)和V(sem)之間,即可實現(xiàn)進程間的互斥,sem的初值通常設置成1。使用P、V操作實現(xiàn)進程互斥時應該注意的是:每個程序中用戶實現(xiàn)互斥的P、V操作必須成對出現(xiàn),先做P操作,進臨界區(qū),后做V操作,出臨界區(qū)。若有多個分支,要認真檢查其成對性。P、V操作應分別緊靠臨界區(qū)的頭尾部,臨界區(qū)的代碼應盡可能短,不能有死循環(huán)?;コ庑盘柫康某踔狄话銥?。(3)請用P、V操作寫出一個不會出現(xiàn)死鎖的哲學家進餐問題的解解:至多只允許四個哲

8、學家同時進餐,以保證至少有一個哲學家能夠進餐,最終總會釋放出他所使用過的兩支筷子,從而可使更多的哲學家進餐。以下將room 作為信號量,只允許4個哲學家同時進入餐廳就餐,這樣就能保證至少有一個哲學家可以就餐,而申請進入餐廳的哲學家進入room 的等待隊列,根據(jù)FIFO 的原則,總會進入到餐廳就餐,因此不會出現(xiàn)餓死和死鎖的現(xiàn)象。 semaphore chopstick5=1,1,1,1,1; semaphore room=4; void philosopher(int i) while(true) think(); wait(room); /請求進入房間進餐 wait(chopsticki);

9、/請求左手邊的筷子 wait(chopstick(i+1)%5); /請求右手邊的筷子 eat(); signal(chopstick(i+1)%5); /釋放右手邊的筷子 signal(chopsticki); /釋放左手邊的筷子 signal(room); /退出房間釋放信號量room (此題有多種解法。)(4)高級進程通信方式有哪幾類各自如何實現(xiàn)進程間通信答:高級進程通信方式可以分為三大類:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。在共享存儲區(qū)系統(tǒng)中,進程通過共享內存中的存儲區(qū)來實現(xiàn)通信。在消息傳遞系統(tǒng)中,進程間的數(shù)據(jù)交換以消息為單位,程序員直接利用系統(tǒng)提供的一組通信命令(原語)來實

10、現(xiàn)通信。管道是用于連接讀進程和寫進程以實現(xiàn)它們之間通信的共享文件,向管道提供輸入的發(fā)送進程(即寫進程)以字符流形式將大量的數(shù)據(jù)送入管道,而接收管道輸出的接收進程(即讀進程)可以從管道中接收數(shù)據(jù)。(5)設有6個進程P1、P2、P3、P4、P5、P6,它們有如圖所示的并發(fā)關系。試用P、V操作實現(xiàn)這些進程間的同步。 圖 六個合作進程的并發(fā)關系解:semaphore a,b,c,d,e,f=0,0,0,0,0,0; cobegin P1;P2;P3;P4;P5;P6; coend P1() P1; V(a); V(b); P2() P(a); P2; V(c); P3() P(b); P3; V(d)

11、; P4() P(c); P4; V(e); P5() P(d); P5; V(f); P6() P(e); P(f); P6; (6)有一個單向行駛的公路橋,每次只允許一輛汽車通過。當汽車到達橋頭時,若橋上無車,便可上橋;否則需等待,直到橋上的汽車下橋為止。若每一輛汽車為一個進程,請用P、V操作保證汽車按要求過橋。解:本題中使用一個信號量m用于互斥過河,因為每次允許一輛汽車通過,所以m初值為1。semaphore m=1;main() cobegin passi(); coendpassi() P(m); Pass the river; V(m);passi表示第i 輛汽車。(7)有3個并發(fā)

12、進程R、M、P,它們共享了一個可循環(huán)使用的緩沖區(qū)B,緩沖區(qū)B共有n個單元。進程R負責從輸入設備讀信息,每讀一個字符后,把它存入到緩沖區(qū)B的一個單元中;進程M負責處理讀入的字符;進程P負責把處理后的字符取出并打印輸出。只有當緩沖區(qū)單元中的字符被進程P取出后,才又可用來存放下一次讀入的字符。請用P、V操作為同步機制寫出它們能正確并發(fā)執(zhí)行的程序。解:semaphore buffer_number=n; semaphore char_number=0;semaphore man_number=0;main() cobegin R;M;P; coend R() while (true)P(buffer_

13、number); read a char to buffer; V(char_number);M() while (true)P(char_number); manipulate a char; V(man_number);P() while (true)P(man_number); print a char; V(buffer_number);(8)在生產者-消費者問題中,如果對調生產者描述中的兩個P操作會發(fā)生什么情況如果對調生產者描述中的兩個V操作的順序又會發(fā)生什么情況答:在生產者-消費者問題中,如果將兩個P操作位置對調,都可能引起死鎖。考慮系統(tǒng)中緩沖區(qū)全滿前時,若一生產者進程先執(zhí)行了P(

14、mutex)操作并獲得成功,當再執(zhí)行P(empty)操作時,它將因失敗而進入阻塞狀態(tài),它期待消費者執(zhí)行V(empty)來喚醒自己。在此之前,它不可能執(zhí)行V(mutex)操作,從而使企圖通過P(mutex)進入自己的臨界區(qū)的其他生產者和所有的消費者進程全部進入阻塞狀態(tài),從而引起系統(tǒng)死鎖。類似地,消費者進程若先執(zhí)行P(mutex),后執(zhí)行P(full),同樣可能造成死鎖。V(full)和V(mutex)互換位置,或者V(empty)和V(mutcx)互換位置,則不會引起死鎖,其影響只是使臨界資源的釋放略為推遲一些。(9)一個快餐廳有4 類職員:領班:接受顧客點菜;廚師:準備顧客的飯菜;打包工:將做

15、好的飯菜打包;出納員:收款并提交食品。每個職員可被看作一個進程,試用一種同步機制寫出能讓四類職員正確并發(fā)運行的程序。解:semaphore S1=1;/ S1表示是否可以開始點菜semaphore S2=0;/ S2表示是否可以開始做菜semaphore S3=0;/ S3表示是否可以開始打包semaphore S4=0;/ S4表示是否可以提交食品main() cobegin LB(); CS(); DBG(); CNY(); coendLB() while(true) 顧客到達; P(S1); 接受顧客點菜; V(S2); CS() while(true) P(S2); 準備顧客的飯菜;

16、V(S3); DBG() while(true) P(S3); 打包顧客的飯菜; V(S4); CNY() while(true) P(S4); 收款并提交食品; V(S1); (10)設公共汽車上,司機和售票員的活動分別如下:司機的活動:啟動車輛:正常行車;到站停車。售票員的活動:關車門;售票;開車門。在汽車不斷地到站、停車、行駛過程中,這兩個活動有什么同步關系用信號量和P、V 操作實現(xiàn)它們的同步。解:semaphore s1=0; /s1表示是否允許司機啟動汽車,其初值為0semaphore s2=0; /s2表示是否允許售票員開門,其初值為0main( ) cobegin driver(

17、 ); busman( ); coenddriver( ) while (true) P(s1); 啟動車輛; 正常行車; 到站停車; V(s2); busman( ) while(true) 關車門; V(s1); 售票; P(s2); 開車門; 上下乘客; (11)有一只鐵籠子,每次只能放入一只動物,獵手向籠中放入老虎,農民向籠中放入豬,動物園等待取籠中的老虎,飯店等待取籠中的豬,試用P、V操作實現(xiàn)獵手、農民、動物園和飯店的同步。解:semaphore cage=1; /cage表示可用的鐵籠子資源semaphore pig=0; /pig表示可用的豬資源semaphore tiger=0; /tiger表示可用的虎資源main( ) cobegin hun

溫馨提示

  • 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

提交評論