版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、肈第4章進程同步與通信蕆1選擇題莄1在操作系統中,p、V操作是一種_D_。蒃A.機器指令B.系統調用命令袇C.作業(yè)控制命令D.低級進程通信原語薆2假設信號量S的初值為2,當前值為-1,那么表示有_B_等待進程。螅A.0個B個羈C.2個D.3個袀3在直接通信方式中,系統提供兩條通信原語進行發(fā)送和接收,其中Send原語中參數應是_C_O蚆 A.sender, messageB.sende, mailbox羂 C.receiver, messageD.receiver, mailbox蚃4下述那個選項不是管程的組成局部A o蠆A.管程外過程調用管程內數據結構的說明螆B.管程內對數據結構進行操作的一組
2、過程莃C.局部于管程的共享數據說明肁D.對局部于管程的數據結構設置初值的語句莈5某通信方式通過共享存儲區(qū)來實現,其屬于_D_o螆A.消息通信B.低級通信螄C.管道通信D.高級通信袃6用P、V操作管理臨界區(qū)時,信號量的初值應定義為C o蒁 祎C.1D.任意值膅7臨界區(qū)是_B_。芀A. 一個緩沖區(qū)B. 一段程序腿C.一段共享數據區(qū) D. 一個互斥資源羆8信箱通信是一種_D_通信方式。薅A.直接通信B.信號量羂C.低級通信D.間接通信羈9對于兩個并發(fā)進程,設互斥信號量為mutex,假設mutex=O那么_A_。肆A.表示有一個進程進入臨界區(qū)螞B.表示沒有進程進入臨界區(qū)蒀C.表示有一個進程進入臨界區(qū),
3、另一個進程等待進入螇D.表示有兩個進程進入臨界區(qū)膆10對信號量S執(zhí)行V操作后,下述選項正確的選項是_。肅A.當S小于等于0時喚醒一個阻塞進程膂B.當S小于0時喚醒一個阻塞進程螀C.當S小于等于0時喚醒一個就緒進程芅D.當S小于0時喚醒一個就緒進程蒄11在消息緩沖通信中,消息隊列屬于資源。蝕A.臨界B.共享C.永久D.可剝奪蕿12在消息緩沖通信機制中,使用的臨界資源是_D_O蒞A.信箱B.消息隊列中的某個緩沖區(qū)裊C.管道D.整個消息隊列莂2 填空題羋1信號量的物理意義是:當信號量值大于0時表示可用資源的個數;當信號量值小于0時,其絕對值為等待該信號量的進程數。蒞2如果信號量的當前值為-4,那么表
4、示系統中在該信號量上有 _4_個等待進程。芆3對于信號量可以做 p操作和V操作,p操作用于阻塞進程,V操作用于釋放進程。程序中的 P和V操作 應謹慎使用,以保證其使用的正確性,否那么執(zhí)行時可能發(fā)生死鎖。螀4有m個進程共享同一臨界資源,假設使用信號量機制實現對臨界資源的互斥訪問,那么信號量值的變化范 圍是-m-1,1_。莁5管程由局部于管程資源對象的共享變量的說明、對管程對局部于管程的數據設置初始值的語句三局部組成蒅6訪問臨界資源的進程應該遵循的條件有:空閑讓進、忙那么等待、有限等待和讓權等待蒃7每個信箱可以包含信箱頭和信箱體兩局部。蒂8為了實現消息緩沖通信,在PCB中應增加的數據項有消息隊列中
5、消息資源的信號量、對消息隊列互斥操作的信號量和指向消息隊列的指針。肀3 解答題薅1什么是臨界資源?什么是臨界區(qū)?對臨界資源的訪問有哪些原那么?襖答:一次僅允許一個進程使用的共享資源被稱為臨界資源。芃每個進程中訪問臨界資源的那段程序稱為臨界區(qū)。袈對臨界資源的訪問原那么是:蚅空閑讓進,如果有假設干進程要求進入空閑的臨界區(qū),一次僅允許一個進程進入。芄忙那么等待,任何時候,處于臨界區(qū)內的進程不可多于一個。如已有進程進入自己的臨界區(qū),那么其它所有試 圖進入臨界區(qū)的進程必須等待。蟻有限等待,進入臨界區(qū)的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區(qū)。蚇讓權等待,如果進程不能進入自己的臨界區(qū),那
6、么應讓出CPU,防止進程出現“忙等現象。螅2請給出P、V操作的定義。如何用 P、V操作實現進程間的互斥?蚅解:P原語操作的動作是:莃 sem減1 ;蝕假設sem減1后仍大于或等于零,那么進程繼續(xù)執(zhí)行;裊假設sem減1后小于零,那么該進程被阻塞后進入與該信號相對應的隊列中,然后轉進程調度。螂 V 原語操作的動作是:袁sem加1;葿假設相加結果大于零,那么進程繼續(xù)執(zhí)行;羄假設相加結果小于或等于零,那么從該信號的等待隊列中喚醒一等待進程,然后再返回原進程繼續(xù)執(zhí)行或轉進 程調度。膃由于用于互斥的信號量 sem與所有的并發(fā)進程有關,所以稱之為公有信號量。公有信號量的值反映了公有資 源的數量。只要把臨界區(qū)
7、置于P(sem)和V(sem)之間,即可實現進程間的互斥,sem的初值通常設置成1。薃使用 P、V 操作實現進程互斥時應該注意的是:羋每個程序中用戶實現互斥的P、V 操作必須成對出現,先做 P 操作,進臨界區(qū),后做 V 操作,出臨界區(qū)。假設有多個分支,要認真檢查其成對性。羋P、V操作應分別緊靠臨界區(qū)的頭尾部,臨界區(qū)的代碼應盡可能短,不能有死循環(huán)。 薄互斥信號量的初值一般為1 。肁(3)請用 P、 V 操作寫出一個不會出現死鎖的哲學家進餐問題的解?芁解:至多只允許四個哲學家同時進餐,以保證至少有一個哲學家能夠進餐,最終總會釋放出他所使用過的兩 支筷子,從而可使更多的哲學家進餐。以下將 room
8、作為信號量,只允許 4 個哲學家同時進入餐廳就餐,這樣就 能保證至少有一個哲學家可以就餐,而申請進入餐廳的哲學家進入room 的等待隊列,根據 FIFO 的原那么,總會進入到餐廳就餐,因此不會出現餓死和死鎖的現象。莈 semap horechopstick 5=1 , 1, 1, 1, 1;羅 semaphoreroom=4;螃 voidphilosopher(inti)肀蒈 while(true)莆膀 think();蝿 wait(room);/ 請求進入房間進餐薈 wait(chopsticki);/ 請求左手邊的筷子薃wait(chopstick(i+1)%5);請求右手邊的筷子羂 ea
9、t();薇 signal(chopstick(i+1)%5); 釋放右手邊的筷子蚈signal(chopsticki);釋放左手邊的筷子羃signal(room);/退出房間釋放信號量room莀薀蚈(此題有多種解法。)膆(4)高級進程通信方式有哪幾類?各自如何實現進程間通信?襖答:高級進程通信方式可以分為三大類:共享存儲器系統、消息傳遞系統以及管道通信系統。賺在共享存儲區(qū)系統中,進程通過共享內存中的存儲區(qū)來實現通信。在消息傳遞系統中,進程間的數據交換以 消息為單位,程序員直接利用系統提供的一組通信命令(原語)來實現通信。管道是用于連接讀進程和寫進程以 實現它們之間通信的共享文件,向管道提供輸入
10、的發(fā)送進程(即寫進程)以字符流形式將大量的數據送入管道, 而接收管道輸出的接收進程(即讀進程)可以從管道中接收數據。薀(5)設有6個進程P1、P2、P3、P4、P5、P6,它們有如圖3.5所示的并發(fā)關系。試用P、V操作實現這些進程間的同步。莂圖3.5六個合作進程的并發(fā)關肄 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 有一個單向行駛的公路橋,每次只允
11、許一輛汽車通過。當汽車到達橋頭時,假設橋上無車,便可上橋;否那么需等待,直到橋上的汽車下橋為止。假設每一輛汽車為一個進程,請用P、V操作保證汽車按要求過橋。艿解:此題中使用一個信號量m 用于互斥過河,因為每次允許一輛汽車通過,所以 m 初值為 1。膆 semaphorem=1;芅 main蕿cobegi n荿 passi;薇 coend螃 passi螞P m;葿 Passtheriver;螄 Vm;蒅蒁 passi 表示第 i 輛汽車。薈7有3個并發(fā)進程R、M、P,它們共享了一個可循環(huán)使用的緩沖區(qū) B,緩沖區(qū)B共有n個單元。進程R 負責從輸入設備讀信息,每讀一個字符后,把它存入到緩沖區(qū)B 的一
12、個單元中;進程 M 負責處理讀入的字符;進程 P 負責把處理后的字符取出并打印輸出。只有當緩沖區(qū)單元中的字符被進程P 取出后,才又可用來存放下一次讀入的字符。請用 P、 V 操作為同步機制寫出它們能正確并發(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)在生產者-消費者問題中,如果對調生產者描述中的兩個P操作會發(fā)生什么情況?如果對調生產者描述中的兩個 V 操作的順序又會發(fā)生什么情況?袀答:在生產者-消費者問題中,如果將兩個P操作位置對調,都可能引起死鎖。考慮系統中緩沖區(qū)全滿前時,假設一生產者進程先執(zhí)行了P(mutex) 操作并獲得成功,當再執(zhí)行 P(empty) 操作時,它
14、將因失敗而進入阻塞狀態(tài), 它期待消費者執(zhí)行 V(empty) 來喚醒自己。在此之前,它不可能執(zhí)行 V(mutex) 操作,從而使企圖通過 P(mutex) 進入 自己的臨界區(qū)的其他生產者和所有的消費者進程全部進入阻塞狀態(tài),從而引起系統死鎖。 類似地, 消費者進程假設先執(zhí)行 P(mutex) ,后執(zhí)行 P(full) ,同樣可能造成死鎖。袆 V(full) 和 V(mutex) 互換位置, 或者 V(empty) 和 V(mutcx) 互換位置, 那么不會引起死鎖, 其影響只是使臨界資源 的釋放略為推遲一些。羃( 9) 一個快餐廳有4類職員:領班:接受顧客點菜;廚師:準備顧客的飯菜;打包工:將做
15、好的飯菜打包;出納員:收款并提交食品。每個職員可被看作一個進程,試用一種同步機制寫出能讓四類職員正確并 發(fā)運行的程序。襖解:莈semaphoreS1=1; S1表示是否可以開始點菜衿semaphoreS2=0; S2表示是否可以開始做菜肅semaphoreS3=0; S3表示是否可以開始打包羈semaphoreS4=0; S4表示是否可以提交食品肀 mai n()蚈cobegi n肅LB ();莂CS();螂DBG ();莇CNY();膃coend螃 LB()艿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);袃芃( 1 0)設公共汽車上,司機和售票員的活動分別如下:袈司機的活動:啟動車輛:正常行車;到站停車。羈售票員的活動:關車門;售票;開車門。P、V操作實現它們的同芄在汽車不斷地到站、停車、行駛過程中,這兩個活動有什么同步關系?用信號量和步。蟻解:羈sem aphores1=0;/s1表示是否允許司機啟動汽車,其初值為0肇semap hores2=0;/s2表示是否允許售票員開門,其
17、初值為0蚅 mai n()蒂蝕cobegi n膈 driver。;肆 busma n();袀coend蒈膈 driver()膂while(true)薂芇 P(s1);羋啟動車輛 ;薃正常行車 ;肀到站停車芀 V(s2);莈羄 busma n()螂while(true)聿蕆 關車門 ;蒞 V(s1);膀售票 ;螈 P(s2);薇 開車門 ;螆上下乘客 ;羂袁( 1 1 )有一只鐵籠子,每次只能放入一只動物,獵手向籠中放入老虎,農民向籠中放入豬,動物園等待取 籠中的老虎,飯店等待取籠中的豬,試用P、V操作實現獵手、農民、動物園和飯店的同步。蚇解:蠆semaphorecage=1;/cage表示可用的鐵籠子資源莀semaphorepig=0;/pig表示可用的豬資源莆semaphoretiger=0;/tiger表示可用的虎資源蒃 mai n()肀袇cobegi n肄 hun ter();薃
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中小學2025年校本課程開發(fā)計劃書
- 六年級下冊信息技術教學計劃
- 開餐飲店流程以及餐飲創(chuàng)業(yè)計劃書
- 2025銷售部門年度工作計劃
- 上汽大眾配件計劃員崗位職責
- 2025酒店采購部工作計劃2
- 創(chuàng)先爭優(yōu)活動單位工作計劃
- 2025年1月員工培訓工作計劃例文
- 《型半導體器》課件
- 2020版 滬教版 高中音樂 必修1 音樂鑒賞 上篇《第二單元 絲竹八音》大單元整體教學設計2020課標
- 北師版七年級數學上冊期末復習考點 清單04 基本平面圖形(12個考點梳理+題型解讀+提升訓練)
- 物流運輸雙氧水安全應急預案
- 2025年上半年中科院大連化學物理研究所金催化研究中心(2302組)招聘1人易考易錯模擬試題(共500題)試卷后附參考答案
- 【項目方案】合同能源托管模式下開展校園綜合能源建設方案-中教能研院
- 2024-2030年中國抗菌肽行業(yè)發(fā)展現狀及前景趨勢分析報告
- Pep小學英語六年級上冊教案-全冊
- 2024粵東西粵北地區(qū)教師全員輪訓培訓心得總結
- 服務類驗收單
- 教育信息化2.0時代教師新技能進階智慧樹知到期末考試答案2024年
- 國開2023年春《理工英語3》機考網考期末復習資料參考答案
- 建筑工程雜填土基坑邊坡支護方案及效果評價分析
評論
0/150
提交評論