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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、肈第4章進(jìn)程同步與通信蕆1選擇題莄1在操作系統(tǒng)中,p、V操作是一種_D_。蒃A.機(jī)器指令B.系統(tǒng)調(diào)用命令袇C.作業(yè)控制命令D.低級(jí)進(jìn)程通信原語(yǔ)薆2假設(shè)信號(hào)量S的初值為2,當(dāng)前值為-1,那么表示有_B_等待進(jìn)程。螅A.0個(gè)B個(gè)羈C.2個(gè)D.3個(gè)袀3在直接通信方式中,系統(tǒng)提供兩條通信原語(yǔ)進(jìn)行發(fā)送和接收,其中Send原語(yǔ)中參數(shù)應(yīng)是_C_O蚆 A.sender, messageB.sende, mailbox羂 C.receiver, messageD.receiver, mailbox蚃4下述那個(gè)選項(xiàng)不是管程的組成局部A o蠆A.管程外過(guò)程調(diào)用管程內(nèi)數(shù)據(jù)結(jié)構(gòu)的說(shuō)明螆B.管程內(nèi)對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組

2、過(guò)程莃C.局部于管程的共享數(shù)據(jù)說(shuō)明肁D.對(duì)局部于管程的數(shù)據(jù)結(jié)構(gòu)設(shè)置初值的語(yǔ)句莈5某通信方式通過(guò)共享存儲(chǔ)區(qū)來(lái)實(shí)現(xiàn),其屬于_D_o螆A.消息通信B.低級(jí)通信螄C.管道通信D.高級(jí)通信袃6用P、V操作管理臨界區(qū)時(shí),信號(hào)量的初值應(yīng)定義為C o蒁 祎C.1D.任意值膅7臨界區(qū)是_B_。芀A. 一個(gè)緩沖區(qū)B. 一段程序腿C.一段共享數(shù)據(jù)區(qū) D. 一個(gè)互斥資源羆8信箱通信是一種_D_通信方式。薅A.直接通信B.信號(hào)量羂C.低級(jí)通信D.間接通信羈9對(duì)于兩個(gè)并發(fā)進(jìn)程,設(shè)互斥信號(hào)量為mutex,假設(shè)mutex=O那么_A_。肆A.表示有一個(gè)進(jìn)程進(jìn)入臨界區(qū)螞B.表示沒(méi)有進(jìn)程進(jìn)入臨界區(qū)蒀C.表示有一個(gè)進(jìn)程進(jìn)入臨界區(qū),

3、另一個(gè)進(jìn)程等待進(jìn)入螇D.表示有兩個(gè)進(jìn)程進(jìn)入臨界區(qū)膆10對(duì)信號(hào)量S執(zhí)行V操作后,下述選項(xiàng)正確的選項(xiàng)是_。肅A.當(dāng)S小于等于0時(shí)喚醒一個(gè)阻塞進(jìn)程膂B.當(dāng)S小于0時(shí)喚醒一個(gè)阻塞進(jìn)程螀C.當(dāng)S小于等于0時(shí)喚醒一個(gè)就緒進(jìn)程芅D.當(dāng)S小于0時(shí)喚醒一個(gè)就緒進(jìn)程蒄11在消息緩沖通信中,消息隊(duì)列屬于資源。蝕A.臨界B.共享C.永久D.可剝奪蕿12在消息緩沖通信機(jī)制中,使用的臨界資源是_D_O蒞A.信箱B.消息隊(duì)列中的某個(gè)緩沖區(qū)裊C.管道D.整個(gè)消息隊(duì)列莂2 填空題羋1信號(hào)量的物理意義是:當(dāng)信號(hào)量值大于0時(shí)表示可用資源的個(gè)數(shù);當(dāng)信號(hào)量值小于0時(shí),其絕對(duì)值為等待該信號(hào)量的進(jìn)程數(shù)。蒞2如果信號(hào)量的當(dāng)前值為-4,那么表

4、示系統(tǒng)中在該信號(hào)量上有 _4_個(gè)等待進(jìn)程。芆3對(duì)于信號(hào)量可以做 p操作和V操作,p操作用于阻塞進(jìn)程,V操作用于釋放進(jìn)程。程序中的 P和V操作 應(yīng)謹(jǐn)慎使用,以保證其使用的正確性,否那么執(zhí)行時(shí)可能發(fā)生死鎖。螀4有m個(gè)進(jìn)程共享同一臨界資源,假設(shè)使用信號(hào)量機(jī)制實(shí)現(xiàn)對(duì)臨界資源的互斥訪問(wèn),那么信號(hào)量值的變化范 圍是-m-1,1_。莁5管程由局部于管程資源對(duì)象的共享變量的說(shuō)明、對(duì)管程對(duì)局部于管程的數(shù)據(jù)設(shè)置初始值的語(yǔ)句三局部組成蒅6訪問(wèn)臨界資源的進(jìn)程應(yīng)該遵循的條件有:空閑讓進(jìn)、忙那么等待、有限等待和讓權(quán)等待蒃7每個(gè)信箱可以包含信箱頭和信箱體兩局部。蒂8為了實(shí)現(xiàn)消息緩沖通信,在PCB中應(yīng)增加的數(shù)據(jù)項(xiàng)有消息隊(duì)列中

5、消息資源的信號(hào)量、對(duì)消息隊(duì)列互斥操作的信號(hào)量和指向消息隊(duì)列的指針。肀3 解答題薅1什么是臨界資源?什么是臨界區(qū)?對(duì)臨界資源的訪問(wèn)有哪些原那么?襖答:一次僅允許一個(gè)進(jìn)程使用的共享資源被稱為臨界資源。芃每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段程序稱為臨界區(qū)。袈對(duì)臨界資源的訪問(wèn)原那么是:蚅空閑讓進(jìn),如果有假設(shè)干進(jìn)程要求進(jìn)入空閑的臨界區(qū),一次僅允許一個(gè)進(jìn)程進(jìn)入。芄忙那么等待,任何時(shí)候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個(gè)。如已有進(jìn)程進(jìn)入自己的臨界區(qū),那么其它所有試 圖進(jìn)入臨界區(qū)的進(jìn)程必須等待。蟻有限等待,進(jìn)入臨界區(qū)的進(jìn)程要在有限時(shí)間內(nèi)退出,以便其它進(jìn)程能及時(shí)進(jìn)入自己的臨界區(qū)。蚇讓權(quán)等待,如果進(jìn)程不能進(jìn)入自己的臨界區(qū),那

6、么應(yīng)讓出CPU,防止進(jìn)程出現(xiàn)“忙等現(xiàn)象。螅2請(qǐng)給出P、V操作的定義。如何用 P、V操作實(shí)現(xiàn)進(jìn)程間的互斥?蚅解:P原語(yǔ)操作的動(dòng)作是:莃 sem減1 ;蝕假設(shè)sem減1后仍大于或等于零,那么進(jìn)程繼續(xù)執(zhí)行;裊假設(shè)sem減1后小于零,那么該進(jìn)程被阻塞后進(jìn)入與該信號(hào)相對(duì)應(yīng)的隊(duì)列中,然后轉(zhuǎn)進(jìn)程調(diào)度。螂 V 原語(yǔ)操作的動(dòng)作是:袁sem加1;葿假設(shè)相加結(jié)果大于零,那么進(jìn)程繼續(xù)執(zhí)行;羄假設(shè)相加結(jié)果小于或等于零,那么從該信號(hào)的等待隊(duì)列中喚醒一等待進(jìn)程,然后再返回原進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn) 程調(diào)度。膃由于用于互斥的信號(hào)量 sem與所有的并發(fā)進(jìn)程有關(guān),所以稱之為公有信號(hào)量。公有信號(hào)量的值反映了公有資 源的數(shù)量。只要把臨界區(qū)

7、置于P(sem)和V(sem)之間,即可實(shí)現(xiàn)進(jìn)程間的互斥,sem的初值通常設(shè)置成1。薃使用 P、V 操作實(shí)現(xiàn)進(jìn)程互斥時(shí)應(yīng)該注意的是:羋每個(gè)程序中用戶實(shí)現(xiàn)互斥的P、V 操作必須成對(duì)出現(xiàn),先做 P 操作,進(jìn)臨界區(qū),后做 V 操作,出臨界區(qū)。假設(shè)有多個(gè)分支,要認(rèn)真檢查其成對(duì)性。羋P、V操作應(yīng)分別緊靠臨界區(qū)的頭尾部,臨界區(qū)的代碼應(yīng)盡可能短,不能有死循環(huán)。 薄互斥信號(hào)量的初值一般為1 。肁(3)請(qǐng)用 P、 V 操作寫出一個(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問(wèn)題的解?芁解:至多只允許四個(gè)哲學(xué)家同時(shí)進(jìn)餐,以保證至少有一個(gè)哲學(xué)家能夠進(jìn)餐,最終總會(huì)釋放出他所使用過(guò)的兩 支筷子,從而可使更多的哲學(xué)家進(jìn)餐。以下將 room

8、作為信號(hào)量,只允許 4 個(gè)哲學(xué)家同時(shí)進(jìn)入餐廳就餐,這樣就 能保證至少有一個(gè)哲學(xué)家可以就餐,而申請(qǐng)進(jìn)入餐廳的哲學(xué)家進(jìn)入room 的等待隊(duì)列,根據(jù) FIFO 的原那么,總會(huì)進(jìn)入到餐廳就餐,因此不會(huì)出現(xiàn)餓死和死鎖的現(xiàn)象。莈 semap horechopstick 5=1 , 1, 1, 1, 1;羅 semaphoreroom=4;螃 voidphilosopher(inti)肀蒈 while(true)莆膀 think();蝿 wait(room);/ 請(qǐng)求進(jìn)入房間進(jìn)餐薈 wait(chopsticki);/ 請(qǐng)求左手邊的筷子薃wait(chopstick(i+1)%5);請(qǐng)求右手邊的筷子羂 ea

9、t();薇 signal(chopstick(i+1)%5); 釋放右手邊的筷子蚈signal(chopsticki);釋放左手邊的筷子羃signal(room);/退出房間釋放信號(hào)量room莀薀蚈(此題有多種解法。)膆(4)高級(jí)進(jìn)程通信方式有哪幾類?各自如何實(shí)現(xiàn)進(jìn)程間通信?襖答:高級(jí)進(jìn)程通信方式可以分為三大類:共享存儲(chǔ)器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。賺在共享存儲(chǔ)區(qū)系統(tǒng)中,進(jìn)程通過(guò)共享內(nèi)存中的存儲(chǔ)區(qū)來(lái)實(shí)現(xiàn)通信。在消息傳遞系統(tǒng)中,進(jìn)程間的數(shù)據(jù)交換以 消息為單位,程序員直接利用系統(tǒng)提供的一組通信命令(原語(yǔ))來(lái)實(shí)現(xiàn)通信。管道是用于連接讀進(jìn)程和寫進(jìn)程以 實(shí)現(xiàn)它們之間通信的共享文件,向管道提供輸入

10、的發(fā)送進(jìn)程(即寫進(jìn)程)以字符流形式將大量的數(shù)據(jù)送入管道, 而接收管道輸出的接收進(jìn)程(即讀進(jìn)程)可以從管道中接收數(shù)據(jù)。薀(5)設(shè)有6個(gè)進(jìn)程P1、P2、P3、P4、P5、P6,它們有如圖3.5所示的并發(fā)關(guān)系。試用P、V操作實(shí)現(xiàn)這些進(jìn)程間的同步。莂圖3.5六個(gè)合作進(jìn)程的并發(fā)關(guān)肄 cnd蠆 P1()螀P1;肅 V(a);蒂 V(b);螂 P2()衿P(a);蒆P2;芄 V(c);蒁 P3()罿P(b);袇P3;螞 V(d);芀 P4()罿P(c);羋P4;莄 V(e);芃 P5()聿P(d);蒞P5;膅 V(f);肂 P6()腿P(e);螅 P(f);薃 P6;袀 6 有一個(gè)單向行駛的公路橋,每次只允

11、許一輛汽車通過(guò)。當(dāng)汽車到達(dá)橋頭時(shí),假設(shè)橋上無(wú)車,便可上橋;否那么需等待,直到橋上的汽車下橋?yàn)橹?。假設(shè)每一輛汽車為一個(gè)進(jìn)程,請(qǐng)用P、V操作保證汽車按要求過(guò)橋。艿解:此題中使用一個(gè)信號(hào)量m 用于互斥過(guò)河,因?yàn)槊看卧试S一輛汽車通過(guò),所以 m 初值為 1。膆 semaphorem=1;芅 main蕿cobegi n荿 passi;薇 coend螃 passi螞P m;葿 Passtheriver;螄 Vm;蒅蒁 passi 表示第 i 輛汽車。薈7有3個(gè)并發(fā)進(jìn)程R、M、P,它們共享了一個(gè)可循環(huán)使用的緩沖區(qū) B,緩沖區(qū)B共有n個(gè)單元。進(jìn)程R 負(fù)責(zé)從輸入設(shè)備讀信息,每讀一個(gè)字符后,把它存入到緩沖區(qū)B 的一

12、個(gè)單元中;進(jìn)程 M 負(fù)責(zé)處理讀入的字符;進(jìn)程 P 負(fù)責(zé)把處理后的字符取出并打印輸出。只有當(dāng)緩沖區(qū)單元中的字符被進(jìn)程P 取出后,才又可用來(lái)存放下一次讀入的字符。請(qǐng)用 P、 V 操作為同步機(jī)制寫出它們能正確并發(fā)執(zhí)行的程序。膅解: semaphorebuffer_number=n;袃 semaphorechar_number=0;膀 semaphoreman_number=0;薈 main()薆cobeg in蚅 R;M;P;芃 coend蚈 R()羇while(true)肅P(buffer_ nu mber);羂 readachartobuffer;螈 V(char_number);莈螄螁 M()

13、薄while(true)芀P(char_ nu mber);羈 manipulateachar;芅 V(man_number);蚄蟻蝕P()羋while(true)螄P(ma n_nu mber);肂 printachar;膈 V(buffer_number);肇袃蒃(8)在生產(chǎn)者-消費(fèi)者問(wèn)題中,如果對(duì)調(diào)生產(chǎn)者描述中的兩個(gè)P操作會(huì)發(fā)生什么情況?如果對(duì)調(diào)生產(chǎn)者描述中的兩個(gè) V 操作的順序又會(huì)發(fā)生什么情況?袀答:在生產(chǎn)者-消費(fèi)者問(wèn)題中,如果將兩個(gè)P操作位置對(duì)調(diào),都可能引起死鎖??紤]系統(tǒng)中緩沖區(qū)全滿前時(shí),假設(shè)一生產(chǎn)者進(jìn)程先執(zhí)行了P(mutex) 操作并獲得成功,當(dāng)再執(zhí)行 P(empty) 操作時(shí),它

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

15、好的飯菜打包;出納員:收款并提交食品。每個(gè)職員可被看作一個(gè)進(jìn)程,試用一種同步機(jī)制寫出能讓四類職員正確并 發(fā)運(yùn)行的程序。襖解:莈semaphoreS1=1; S1表示是否可以開(kāi)始點(diǎn)菜衿semaphoreS2=0; S2表示是否可以開(kāi)始做菜肅semaphoreS3=0; S3表示是否可以開(kāi)始打包羈semaphoreS4=0; S4表示是否可以提交食品肀 mai n()蚈cobegi n肅LB ();莂CS();螂DBG ();莇CNY();膃coend螃 LB()艿while(true)膅芃顧客到達(dá);膃 P(S1);羈接受顧客點(diǎn)菜;膈V(S2);莃芀 CS()荿while(true)羇蒃 P(S2

16、);蟻準(zhǔn)備顧客的飯菜;肁V(S3);螆螆 DBG()肂while(true)蕿蝿 P(S3);袆打包顧客的飯菜;芅V(S4);肅莀 CNY()螈while(true)蚆薁 P(S4);腿收款并提交食品;袈V(S1);袃芃( 1 0)設(shè)公共汽車上,司機(jī)和售票員的活動(dòng)分別如下:袈司機(jī)的活動(dòng):?jiǎn)?dòng)車輛:正常行車;到站停車。羈售票員的活動(dòng):關(guān)車門;售票;開(kāi)車門。P、V操作實(shí)現(xiàn)它們的同芄在汽車不斷地到站、停車、行駛過(guò)程中,這兩個(gè)活動(dòng)有什么同步關(guān)系?用信號(hào)量和步。蟻解:羈sem aphores1=0;/s1表示是否允許司機(jī)啟動(dòng)汽車,其初值為0肇semap hores2=0;/s2表示是否允許售票員開(kāi)門,其

17、初值為0蚅 mai n()蒂蝕cobegi n膈 driver。;肆 busma n();袀coend蒈膈 driver()膂while(true)薂芇 P(s1);羋啟動(dòng)車輛 ;薃正常行車 ;肀到站停車芀 V(s2);莈羄 busma n()螂while(true)聿蕆 關(guān)車門 ;蒞 V(s1);膀售票 ;螈 P(s2);薇 開(kāi)車門 ;螆上下乘客 ;羂袁( 1 1 )有一只鐵籠子,每次只能放入一只動(dòng)物,獵手向籠中放入老虎,農(nóng)民向籠中放入豬,動(dòng)物園等待取 籠中的老虎,飯店等待取籠中的豬,試用P、V操作實(shí)現(xiàn)獵手、農(nóng)民、動(dòng)物園和飯店的同步。蚇解:蠆semaphorecage=1;/cage表示可用的鐵籠子資源莀semaphorepig=0;/pig表示可用的豬資源莆semaphoretiger=0;/tiger表示可用的虎資源蒃 mai n()肀袇cobegi n肄 hun ter();薃

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論