操作系統(tǒng)課后答案詳解_第1頁
操作系統(tǒng)課后答案詳解_第2頁
操作系統(tǒng)課后答案詳解_第3頁
操作系統(tǒng)課后答案詳解_第4頁
操作系統(tǒng)課后答案詳解_第5頁
免費預覽已結(jié)束,剩余19頁可下載查看

下載本文檔

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

文檔簡介

1、第一章操作系統(tǒng)引論思考與練習題1 .什么是操作系統(tǒng)?它的主要功能是什么?2 .什么是多道程序設計技術?多道程序設計技術的主要特點是什么?3 .批處理系統(tǒng)是怎樣的一種操作系統(tǒng)?它的特點是什么?4 .什么是分時系統(tǒng)?什么是實時系統(tǒng)?試從交互性,及時性,獨立性,多路性,可靠性等幾個方面比較分時系統(tǒng)和實施系統(tǒng)。5 .實時系統(tǒng)分為哪倆種類型?6 .操作系統(tǒng)主要特征是什么?7 .操作系統(tǒng)也用戶的接口有幾種?它們各自用在什么場合?8 . “操作系統(tǒng)是控制硬件的軟件”這一說法確切嗎?為什么?9 .設內(nèi)存中有三道程序,A,B,C,它們按ABC的先后順序執(zhí)行,它們進行“計算”和“I/o操作”的時間如表1-2所示,

2、假設三道程序使用相同的I/O設備。表1-2三道程序的操作時間程序操作計算I/o操作計算A203010B305020C102010(1)試畫出單道運行時三道程序的時間關系圖,并計算完成三道程序要花多少時間。(2)試畫出多道運行時三道程序的時間關系圖,并計算完成三道程序要花多少時間。10 .將下列左右兩列詞連接起來形成意義最恰當?shù)?對。DOS網(wǎng)絡操作系統(tǒng)OS/2自由軟件UNIX多任務Linux單任務Windows NT為開發(fā)操作系統(tǒng)而設計 C語言11 .選擇一個現(xiàn)代操作系統(tǒng),查找和閱讀相關的技術資料,寫一篇關于操作系統(tǒng)如何進行 內(nèi)存管理、存儲管理、設備管理和文件管理的文章。答案1 答:操作系統(tǒng)是控

3、制和管理計算機的軟、硬件資源,合理地組織計算機的工作流程,以方便用戶使用的程序集合。2答:把多個獨立的程序同時放入內(nèi)存,使她們共享系統(tǒng)中的資源。1 )多道,即計算機內(nèi)存中同時放多道相互獨立的程序。2) 宏觀上并行,是指共識進入系統(tǒng)的多道程序都處于運行過程。3)微觀上串行,是指在單道處理機環(huán)境下,內(nèi)存中的多道程序輪流地占有CPU交替執(zhí)行。3答:批處理操作系統(tǒng)是一種基本的操作系統(tǒng)類型。在該系統(tǒng)中用戶的作業(yè)被成批地輸入到計算機中,然后在操作系統(tǒng)的控制下,用戶的作業(yè)自動的執(zhí)行。特點是:資源利用率高。系統(tǒng)吞吐量大。平均周轉(zhuǎn)時間長。無交互能力。4答:分時系統(tǒng):允許多個終端用戶同時使用計算機,在這樣的系統(tǒng)中

4、,用戶感覺不到其他用戶的存在,好像獨占計算機一樣。實時系統(tǒng):對外輸入出信息,實時系統(tǒng)能夠在規(guī)定的 時間內(nèi)處理完畢并作出反應。1 ) 多路性: 分時系統(tǒng)是為多個終端用戶提供服務, 實時系統(tǒng)的多路性主要表現(xiàn)在經(jīng)常對多路的現(xiàn)場信息進行采集以及多多個對象或多個執(zhí)行機構(gòu)進行控制。2 )獨立性:每個終端向?qū)崟r系統(tǒng)提出服務請求時,是彼此獨立的工作、互不干擾。3 ) 及時性:實時信息處理系統(tǒng)與分時系統(tǒng)對及時性的要求類似, 都以人們能夠接受的等待時間來確定。實時控制系統(tǒng)對一時性的要求更高,是以控制對象所要求的開始截止時間或完成截止時間來確定的。5答:( 1)實時控制系統(tǒng)(2)實時信息處理系統(tǒng)。6答:1 )并發(fā)性

5、 2 )共享性 3 )虛擬性 4 )不確定性。7答:兩種,命令接口,程序接口。命令接口:分為聯(lián)機命令接口,脫機命令接口,圖形用戶命令接口。 方便用戶直接控制自己的作業(yè)而提供的接口。程序接口:又稱系統(tǒng)調(diào)用,是為了用戶在程序一級訪問操作系統(tǒng)功能而設置的。8答:不正確,因為操作系統(tǒng)不僅僅是控制硬件,同時它還控制計算機的軟件。9(1)20ms+30ms+10ms+30ms+50ms+20ms+10ms+20ms+10ms=200ms2)10 DOSOS/2UNIXLinuxWindowsNT20ms+30ms+10ms+40ms+20ms+10ms=130ms網(wǎng)絡操作系統(tǒng)自由軟件多任務單任務為開發(fā)操作

6、系統(tǒng)而設計的C語言第二章 進程與線程思考與練習題1 操作系統(tǒng)中為什么要引入進程的概念?為了實現(xiàn)并發(fā)進程之間的合作和協(xié)調(diào), 以及保證系統(tǒng)的安全,操作系統(tǒng)在進程管理方面要做哪些工作?2 試描述當前正在運行的進程狀態(tài)改變時,操作系統(tǒng)進行進程切換的步驟。3 現(xiàn)代操作系統(tǒng)一般都提供多任務的環(huán)境,是回答以下問題。( 1 )為支持多進程的并發(fā)執(zhí)行,系統(tǒng)必須建立哪些關于進程的數(shù)據(jù)結(jié)構(gòu)?( 2 )為支持進程的狀態(tài)變遷,系統(tǒng)至少應該供哪些進程控制原語?( 3 )當進程的狀態(tài)變遷時,相應的數(shù)據(jù)結(jié)構(gòu)發(fā)生變化嗎?4 什么是進程控制塊?從進程管理、中斷處理、進程通信、文件管理、設備管理及存儲管理的角度設計進程控制塊應該包

7、含的內(nèi)容。5 .假設系統(tǒng)就緒隊列中有10個進程,這10個進程輪換執(zhí)行,每隔300ms輪換一次,CPU在進程切換時所花費的時間是10ms,試問系統(tǒng)化在進程切換上的開銷占系統(tǒng)整個時間的比例是多少?6 試述線程的特點及其與進程之間的關系。7 根據(jù)圖2-18 ,回答以下問題。( 1 ) 進程發(fā)生狀態(tài)變遷1、 3 、 4 、 6、 7 的原因。( 2 )系統(tǒng)中常常由于某一進程的狀態(tài)變遷引起另一進程也產(chǎn)生狀態(tài)變遷,這種變遷稱為因果變遷。下述變遷是否為因果變遷: 32,45,72,36 ,是說明原因。( 3)根據(jù)此進程狀態(tài)轉(zhuǎn)換圖,說明該系統(tǒng)CPU度的策略和效果。8 回答以下問題。( 1 )若系統(tǒng)中沒有運行進

8、程,是否一定沒有就緒進程?為什么?( 2 )若系統(tǒng)中既沒有運行進程,也沒有就緒進程,系統(tǒng)中是佛就沒有阻塞進程?解釋。( 3 )如果系統(tǒng)采用優(yōu)先級調(diào)度策略,運行的進程是否一定是系統(tǒng)中優(yōu)先級最高的進程?為什么?9 假如有以下程序段,回答下面的問題。51: a=3-x;52: b=2*a;53: c=5+a;(1) 并發(fā)程序執(zhí)行的 Bernstein 條件是什么?(2) 是畫圖表示它們執(zhí)行時的先后次序。(3)利用Bernstein條件證明,S1、S2和S3哪兩個可以并發(fā)執(zhí)行,哪兩個不能。答案1. 答: 為了從變化角度動態(tài)地分析研究可以并發(fā)執(zhí)行的程序, 真實的反應系統(tǒng)的獨立性、 并發(fā)性、動態(tài)性和相互制

9、約,操作系統(tǒng)中不得不引入進程的概念。為了防止操作系統(tǒng)及其關鍵的數(shù)據(jù)結(jié)構(gòu)受到用戶程序破壞, 將處理機分為核心態(tài)和用戶態(tài)。對進程進行創(chuàng)建、撤銷以及在某些進程狀態(tài)之間的轉(zhuǎn)換控制。2. 答:運行狀態(tài)-就緒狀態(tài):此進程根據(jù)自身的情況插入到就緒隊列的適當位置,系統(tǒng) 收回處理及轉(zhuǎn)入進程調(diào)度程序重新進行調(diào)度。運行狀態(tài)-阻塞狀態(tài):一個進程從運行狀態(tài)道阻塞狀態(tài)后。系統(tǒng)會調(diào)用進程調(diào)度程序重新選擇一個進程投入運行。3.(1) 答:為支持多進程的并發(fā)執(zhí)行,系統(tǒng)必須建立的數(shù)據(jù)結(jié)構(gòu)式PCB不同狀態(tài)進程的PCB用鏈表組織起來,形成就緒隊列、阻塞隊列。( 2 ) 答:阻塞原句、喚醒原句、掛起原句、激活原句(3) 答:創(chuàng)建原句:

10、建立進程的PCB并將進程投入就緒隊列。撤銷原句:刪除進程的PCB,并將進程在其隊列中摘除。阻塞原句:將京城 PCB中進程的狀態(tài)從運行狀態(tài)改為阻塞狀態(tài),并將進程投入阻塞 隊列。喚醒原句:將進程 PCB中進程的狀態(tài)從阻塞狀態(tài)改為就緒狀態(tài),并將進程從則色隊 列摘下,投入到就緒隊列中。4.答:進程控制塊(PCB是為了描述進程的動態(tài)變化而設置的一個與進程相聯(lián)系的數(shù)據(jù) 結(jié)構(gòu),用于記錄系統(tǒng)管理進程所需信息。PCB是進程存在的唯一標識,操作系統(tǒng)通過PCB得知進程的尋在。為了進程管理,進程控制塊包括以下幾方面。( 1 )進程的描述信息,包括進程標識符、進程名等。( 2 )進程的當前狀況。( 3 )當前隊列鏈接指

11、針。( 4 )進程的家族關系。為了中斷處理,進程控制塊的內(nèi)容應該包括處理機狀態(tài)信息和各種寄存器的內(nèi)容,如通用寄存器、指令計數(shù)器、程序狀態(tài)字(PSW寄存器及棧指針等。為了內(nèi)存管理的需要, 進程控制塊的內(nèi)容應該包括進程使用的信號量、 消息隊列指針等。為了設備管理,進程控制塊的內(nèi)容應該包括進程占有資源的情況。答:就緒隊列中有10個進程,這10個進程輪換執(zhí)行,每隔進程的運行時間是300ms,切換另一個進程所花費的總時間是10ms,隱刺系統(tǒng)化在進程切換上的時間開銷占系統(tǒng)整個時間的比例是: 105. 答:線程是進程內(nèi)的一個相對獨立的運行單元,是操作系統(tǒng)調(diào)度和分派的單位。線程只擁有一點必不可少的資源(一組寄

12、存器和棧) ,但可以和銅屬于一個進程的其他線程共享進程擁有的資源。線程是進程的一部分,是進程內(nèi)的一個實體;一個進程可以有多個線程,但至少必須有一個線程。6.( 1 ) 答: 1 表示新進程創(chuàng)建后, 進入高優(yōu)先級就緒隊列; 3 表示進程因請求I/O 活等待某件事兒阻塞; 4 表示進程運行的時間片到; 6 表示進程 I/O 完成或等待的時間到達; 7 表示進程運行頑皮而退出。(2) 答:3-2是因果變遷,當一個進程從運行態(tài)變?yōu)樽枞麘B(tài)時,此時CPU空閑,系統(tǒng)首先到高優(yōu)先級隊列中選擇一個進程投入運行。4-5是因果變遷,當一個進程運行完畢時,此時CPU空閑,系統(tǒng)首先到高優(yōu)先級隊列中選擇進程,但如果高優(yōu)先

13、級隊列為空,則從低優(yōu)先隊列中選擇一個進程投入運行。7-2是因果變遷,當一個進程運行完畢時,CPUgl閑,系統(tǒng)首先到高優(yōu)先級隊列中選擇一個進程投入運行。3-6不是因果變遷。一個進程阻塞時由于自身的原因而發(fā)生的,和另一個進程等待 的時間到達沒有因果關系。( 3 )答:當進程調(diào)度時,首先從高優(yōu)先級就緒隊列選擇一個進程,賦予它的時間片為100ms。 如果高優(yōu)先級就緒隊列為控, 則從低優(yōu)先級就緒隊列選擇進程, 但賦予該進程的時間片為500ms。這種策略一方面照顧了短進程,一個進程如果在100ms運行完畢它將退出系統(tǒng),更主要的是照顧了 I/O 量大的進程,進程因 I/O 進入阻塞隊列,當 I/O 完成后它

14、就進 入了高優(yōu)先級就緒隊列,在高優(yōu)先級就緒隊列等待的進程總是優(yōu)于低優(yōu)先級就緒隊 列的進程。而對于計算量較大的進程,它的計算如果在 100ms 的時間內(nèi)不能完成, 它將進入低優(yōu)先級就緒隊列,在這個隊列的進程被選中的機會要少,只有當高優(yōu)先 級就緒隊列為空,才從低優(yōu)先級就緒隊列選擇進程,但對于計算量大的進程,系統(tǒng) 給予的適當照顧時間片增大為500ms。7.( 1 ) 答:是。若系統(tǒng)中沒有運行進程,系統(tǒng)會馬上選擇一個就緒進程隊列中的進程投入運行。只有在就緒隊列為空時,CPU會空閑。( 2 )答:不一定。當系統(tǒng)中所有進程分別等待各自希望發(fā)生的事件時,它們都處于阻塞狀態(tài),此時系統(tǒng)中既沒有運行進程,也沒有就

15、緒進程。這種情況出現(xiàn)時,如果各個進程沒有相互等待關系,只要等待的時間發(fā)生了,進程就會從等待狀態(tài)轉(zhuǎn)化為就緒狀態(tài)。但如果處于阻塞狀態(tài)的進程相互等待彼此占有的資源,系統(tǒng)就有可能發(fā)生死 鎖。( 3 )答:不一定。因為高優(yōu)先級的進程有可能處于等待狀態(tài),進程調(diào)度程序只能從就緒隊列中挑選一個進程投入運行。被選中進程的優(yōu)先級在就緒隊列中是最高的,但在整個系統(tǒng)中它不一定是最發(fā)哦的,等待隊列中進程的優(yōu)先級有可能高于就緒隊列中所有進程的優(yōu)先級。8.(1) 答:P1和P2并發(fā)執(zhí)行的條件是,當且僅當r(pi) nw(P2)ur(p2)nw(pi)u w(pi)n w(P2)= (3)答:R(S1)=x,W(S2)=a

16、, R(S2)=a,W(S2)=b, R(S3)=a,W(S3)=c所以W(S1) n R(S2)=a, 因此S1和S2不能并發(fā)執(zhí)行。W(S1) n R(S2)=a, 因此S1和S3也不能并發(fā)執(zhí)行。而 R(S2) nW(S3) U R(S3) n W(S2) U W(S2) nW(S3)=, 因此 S2 和 S3 可以并發(fā) 執(zhí)行。第三章 進程同步與通信思考與練習題1. 一下進程之間存在相互制約關系嗎?若存在,是什么制約關系?為什么?(1) 幾個同學去圖書館借同一本書。(2) 籃球比賽中兩隊同學爭搶籃板球。(3) 果汁流水線生產(chǎn)中搗碎、消毒、灌裝、裝箱等各道工序。(4) 商品的入庫出庫。(5)

17、工人做工與農(nóng)民種糧。2 .在操作系統(tǒng)中引入管程的目的是什么?條件變量的作用是什么?3 .說明P、V操作為什么要設計成原語。4 .設有一個售票大廳,可容納 200人購票。如果廳內(nèi)不足 200人則允許進入,超過則在廳 外等候;售票員某時只能給一個購票者服務,購票者買完票后就離開。試問:(1) 購票者之間是同步關系還是互斥關系?(2) 用P、V操作描述購票者的工作過程。5 .進程之間的關系如圖 3-16所示,試用P、V操作描述它們之間的同步。6 有 4 個進程 P1、 P2、 P3、 P4 共享一個緩沖區(qū),進程P1 向緩沖區(qū)存入消息,進程P2、P3、 P4 從緩沖區(qū)中去消息,要求發(fā)送者必須等三個進程

18、都去過本消息后才能發(fā)送下調(diào)消息。緩沖區(qū)內(nèi)每次只能容納一個消息,用P、 V 操作描述四個進程存取消息的情況。7 分析生產(chǎn)者消費者問題中多個 P 操作顛倒引起的后果。8 讀者寫者問題中寫者優(yōu)先的實現(xiàn)。9 寫一個用信號量解決哲學家進餐問題不產(chǎn)生鎖死的算法。10 一個文件可有若干個不同的進程所共享,每個進程具有唯一的編號。假定文件可有滿足下列限制的若干個不同的進程同時訪問, 并發(fā)訪問該文件的哪些進程的編號的總和不得大于n ,設計一個協(xié)調(diào)對該文件訪問的管程。11 用管程解決讀者寫者問題,并采用公平原則。答案1.( 1 )答:存在互斥關系,因為同一本書只能借給一個同學。( 2 )答:存在互斥關系,因為籃球

19、只有一個,兩隊只能有一個隊搶到球( 3 )答:存在同步關系,因為最后一道工序的開始依賴于前一道工序的完成。( 4 )答:存在同步關系,因為商品若沒有入庫就無法出庫,若商品沒有出庫,裝滿了庫房,也就無法再入庫。( 5 )答:工人與農(nóng)民之間沒有相互制約關系。2. 答:引入管程的目的是為了實現(xiàn)進程之間的同步和互斥。優(yōu)于使用信號量在解決同步和互斥問題時要設置多個信號量,并使用大量的P、 V 操作,其中 P 操作的排列次序不當,還會引起系統(tǒng)死鎖,因此引入另外一種同步機制。3. 答:用信號量S表示共享資源,其初值為1表示有一個資源。設有兩個進程申請該資源,若其中一個進程先執(zhí)行P 操作。 P 操作中的減1

20、操作有 3 跳及其指令組成:去S 送寄存器R;R-1送S。若P操作不用原語實現(xiàn),在執(zhí)行了前述三條指令中的2條,即還未執(zhí)行R送S時(此時S值仍為1),進程被剝奪 CPU另一個進程執(zhí)行也要執(zhí)行P操作,執(zhí)行后 S 的值為 0 ,導致信號量的值錯誤。正確的結(jié)果是兩個進程執(zhí)行完 P 操作后,信號量S 的值為 -1 ,進程阻塞。4.( 1 ) 答:購票者之間是互斥關系。(2)答: semaphore empty=200;semaphore mutex=1;void buyer() P(empty);P(mutex);V(mutex);V(empty);5.答:semaphore a,b,c,d,e,f,g

21、=0,0,0,0,0,0,0;void P1()void P2() void P3()void P4()void P5()voidP6()S1;P(a);P(b);P(c); P(e)V(a);S2;S3;S4;S5;P(f)V(b);V(e);V(c);V(f);P(g)V(d);S6P(d);V(g);;6答:semaphore S1=1 ;semaphore S2,S3,S4=0,0,0;int count =0;semaphore mutex=1 ;void P1()/* 發(fā)送進程 */ void P2()/* 接收進程 */ void P3()/*接受進程 */ while(true

22、) while(true) while(true) P(S1);P(S2);P(S3);P(S4);發(fā)送消息; 接收消息; 接收消息;P(mutex); P(mutex); P(mutex); P(mutex);接受進程 */ void P4()/*while(true)接收消息;count=0;count=count+1;count=count+1;count=count+1;V(mutex); if (count=3) V(S1); if (count=3) V(S1); if (count=3)V(S1);V(S2); V(mutex) V(mutex) V(mutex)V(S3);V(

23、s4); 答: semaphore mutex=1 ;semaphore empty=nsemaphore full=0int i,jITEM buffern;ITEM data_p,data_c;void producer()/* 生產(chǎn)者進程*/ void consumer() /*while(true)while(true)produce an item in data_p; P(full);消費者進程*/P(mutex);P(empty);bufferi=data_p;i=(i+1)%n;V(mutex);V(full);P(mutex);data_c=bufferj;j=(j+1)%n

24、;V(mutex);V(empty);consume the item in data_c6.答: semaphore Wmutex , Rmutex=1;int Rcount=0 ;semaphore mutex=1void reader () /* 讀者進程 */ void writer() /* 寫者進程 */while(true)while(true)P(mutex);P(mutex);P(Rmutex);P(wmutex);If(Rcount=0) P(wmutex);;Rcount=Rcount+1 ;write; /* 執(zhí)行寫操作 */V(Rmutex);V(mutex);V(W

25、mutex);V(mutex);read;/* 執(zhí)行讀操作 */;P(Rmutex) ;Rcount=Rcount-1 ;if ( Rcount=0 ) V ( wmutex) ;V( Rmutex) ; 7.答: semaphore chopstick5=1,1,1,1,1;semaphore mutex=1;void philosopher ()/* 哲學家進餐*/while(true)P(mutex);P(chopsticki);P(chopstick(i+1)%5);V(mutex);;eat ; /* 進餐 */;V(chopsticki);V(chopstick(i+1)%5);;

26、think;/* 思考 */;第四章調(diào)度與死鎖思考與練習題1 .某進程被喚醒后立刻投入運行,能說明該系統(tǒng)采用的是可剝奪調(diào)度算法嗎?2 .在哲學家進餐問題中,如果將先拿起左邊筷子的哲學家稱為左撇子,先拿起右邊筷子的哲學家稱為右撇子。請說明在同時存在左、右撇子的情況下,任何的就坐安排都不能產(chǎn) 生鎖死。3 .系統(tǒng)中有5個資源被4個進程所共享,如果每個進程最多需要 2個這種資源,試問系統(tǒng) 是否會產(chǎn)生鎖死?4 .計算機系統(tǒng)有8臺磁帶機,由N個進程競爭使用,每個進程最多需要3臺。問:N為多少時,系統(tǒng)沒有死鎖的危險?5 .系統(tǒng)有5個進程,它們的到達時間和服務時間如表4-8所示。新進程(沒有運行過)與老進程(

27、運行過的進程)的條件相同時,假定系統(tǒng)選新進程運行。表4-8進程情況進程名到達時間服務時間A03B26C44D65E82若按先來先服務(FCFS)、時間片輪法(時間片 q=1)、短進程優(yōu)先(SPN、最短剩余時 間優(yōu)先(SRTT,時間片q=1)、響應比高者優(yōu)先(HRRN及多級反饋隊列(MFQ第一個 隊列的時間片為1,第i (i1 )個隊列的時間片 q=2 (i-1 )算法進行CPUM,請給 出各個進程的完成時間、周轉(zhuǎn)時間、帶權周轉(zhuǎn)時間,及所有的進程的平均周轉(zhuǎn)時間和平 均帶權周轉(zhuǎn)時間。6 .設系統(tǒng)中有5個進程P1、P2、P3、P4、P5,有3種類型白資源 A B、C,其中A資源的 數(shù)量是17, B資

28、源的數(shù)量是5, C資源的數(shù)量是20, T0時刻系統(tǒng)狀態(tài)如表 4-9所示。表4-9 T0時刻系統(tǒng)狀態(tài)進程已分配資源數(shù)量最大資源需求量仍然需求資源數(shù)ABCABCABCP1212559347P2402536134P34054011006P4204425221P5314424110(1)計算每個進程還可能需要的資源,并填入表的“仍然需要資源數(shù)”的欄目。(2) T0時刻系統(tǒng)是否處于安全狀態(tài)?為什么?(3)如果T0時刻進程P2又有新的資源請求(0,3,4 ),是否實施資源分配?為什么?(4)如果T0時刻,若進程 P4又有新的資源請求(2, 0,1 ),是否實施資源分配?為什 么?(5)在(4)的基礎上,若

29、進程 P1又有新的資源請求(0,2,0 ),是否實施資源分配?為 什么?答案1 .答:不能。如果當前就緒列隊為空,這樣被喚醒的進程就是就緒隊列中的唯一的一個進 程,于是調(diào)度程序自然選中它投入運行。2 .答:該題的關鍵是證明該情況不滿足產(chǎn)生死鎖的四個必要條件之一。在死鎖的四個必要條件中,本體對于互斥條件、請求與保持條件、不可剝奪條件肯定是成立的,因此必須 證明環(huán)路條件不成立。對于本體,如果存在環(huán)路條件必須是左、右的哲學家都拿起了左(或右)邊的筷子,而等待右(或左)邊的筷子,而這種情況只能出現(xiàn)在所有哲學家都是左(或右)撇子的 情況下,但由于本題有右(或左)撇子存在,因此不可能出現(xiàn)循環(huán)等待鏈,所以不

30、可能 產(chǎn)生死鎖。3 .答:由于資源數(shù)大于進程數(shù),所以系統(tǒng)中總會有一個進程獲得資源數(shù)大于等于2,該進程已經(jīng)滿足了它的最大需求,當它運行完畢后會把它占有的資源歸還給系統(tǒng),此時其余 3個進程也能滿足最大需求而順利運行完畢。因此系統(tǒng)不會產(chǎn)生死鎖。4 .答:當N4時,系統(tǒng)沒有死鎖的危險。因為當 N為1時,它最多需要 3臺磁帶機,系統(tǒng) 中共有8臺,其資源數(shù)已足夠一個進程使用,因此絕對不會產(chǎn)生死鎖,當N為2時,兩個進程最多需要6臺磁帶機,系統(tǒng)中共有 8臺,其資源數(shù)也足夠兩個進程使用,因此也 不會產(chǎn)生死鎖;當N為3時,無論如何分配,3個進程中必有進程得到 3臺磁帶機,該進 程已經(jīng)達到它的最大需求,當它運行完畢

31、后可是放這3臺磁帶機,這就保證了其他兩個進程也可順利執(zhí)行完畢。因此當N4時,也有產(chǎn)生死鎖的危險。5 .(1)先來先服務(FCFS)平均周轉(zhuǎn)時間 T= (3+7+9+12+12) /5=43/5= 平均帶全周轉(zhuǎn)時間 W=(1+6) /5=5= (2)采用時間片輪轉(zhuǎn)(時間片q=1)平均周轉(zhuǎn)時間 T= (4+16+13+14+7) /5=54/5= 平均帶權周轉(zhuǎn)時間 W= (+) /=5=(3)短進程優(yōu)先(SPN1 .平局周轉(zhuǎn)時間T= (3+7+11+14+3) /5=38頁式存儲管理系統(tǒng)是否產(chǎn)生碎片?如何應對此現(xiàn)象?2 .在頁式存儲管理系統(tǒng)中頁表的功能是什么?當系統(tǒng)的地址空間很大時會給頁表的設計

32、帶來哪些新的問題?3 .什么是動態(tài)鏈接?用哪種存儲管理方案可以實現(xiàn)動態(tài)鏈接?4 .某進程的大小為25F3H字節(jié),被分配到內(nèi)存的 3A6BH字節(jié)開始的地址。但進程運行時, 若使用上、下界寄存器,寄存器的值是多少?如何進行存儲保護?若使用地址、限長寄 存器,寄存器的值是多少?如何進行存儲保護?5 .在系統(tǒng)中采用可變分區(qū)存儲管理,操作系統(tǒng)占用低地址部分的126KB,用戶區(qū)的大小是386KB,采用空閑分區(qū)表管理空閑分區(qū)。若分配時從高地址開始,對于下述的作業(yè)申請 序列:作業(yè) 1申請80KB;作業(yè)2申請56KB;作業(yè)3申請120KB;作業(yè)1完成;作業(yè) 3 完成;作業(yè)4申請156KB;作業(yè)5申請80KR使用

33、首次適應法處理上述作業(yè),并回答以 下問題。(1) 畫出作業(yè)1、2、3進入內(nèi)存后,內(nèi)存的分布情況。(2) 畫出作業(yè)1、3完成后,內(nèi)存的分布情況。(3) 畫出作業(yè)4、5進入內(nèi)存后,內(nèi)存的分布情況。6 .某系統(tǒng)采用頁式存儲管理策略,某進程的邏輯地址空間為32頁,頁的大小為 2KB,物理地址空間的大小是 4MB7 .某頁式存儲管理系統(tǒng),內(nèi)存的大小為64KB,被分為16塊,塊號為0、1、2、15。設某進程有4頁,其頁號為0、1、2、3,被分別裝入內(nèi)存的 2、4、7、5,問:(1) 該進程的大小是多少字節(jié)?(2) 寫出該進程每一頁在內(nèi)存的起始地址。(3) 邏輯地址4146對應的物理地址是多少?8 .某段式

34、存儲管理系統(tǒng)的段表如圖所示。段號 段長段始址015KB40KB18 KB80KB210KB100KB請將邏輯地址0,137、1,9000、2,3600、3,230轉(zhuǎn)換成物理地址。答案1 .答:存儲管理的基本任務是為多道程序的并發(fā)執(zhí)行提供良好的存儲器環(huán)境,它包括以下幾個方面。(1)能讓沒到程序“各得其所”,并在不受干擾的環(huán)境中運行時,還可以使用戶從存儲空間的分配、保護等事物中解脫出來。(2)向用戶提供更大的存儲空間,使更多的程序同時投入運行或是更大的程序能在小的 內(nèi)存中運行。(3)為用戶對信息的訪問、保護、共享以及程序的動態(tài)鏈接、動態(tài)增長提供方便。(4)能使存儲器有較高的利用率。2 .答:頁式存

35、儲管理系統(tǒng)產(chǎn)生的碎片,稱為內(nèi)碎片,它是指一個進程的最后一頁沒有沾滿 一個存儲塊而被浪費的存儲空間。減少內(nèi)碎片的辦法是減少頁的大小。3 .答:頁式存儲管理系統(tǒng)中,允許將進程的每一頁離散地存儲在內(nèi)出的任何一個物理頁面 上,為保證進程的正常運行,系統(tǒng)建立了頁表,記錄了進城每一頁被分配在內(nèi)存的物理 號。也表的功能是實現(xiàn)從頁號到物理塊的地址映射。當系統(tǒng)地址很大時,頁表也會變得非常大,它將占有相當大的內(nèi)存空間。4 .答:動態(tài)鏈接是指進程在運行時,只將進程對應的主程序段裝入內(nèi)存,并與主程序段鏈 接上。通常一個大的程序是由一個主程序和若干個子陳旭以及一些數(shù)據(jù)段組成。而段式 存儲管理方案中的段就是按用戶的邏輯段

36、自然形成的,因此可實現(xiàn)動態(tài)鏈接。5 .答:(1)若使用上下界寄存器,上界寄存器的值是3A6BH,下界寄存器的值是 3A6BH+25F3H=605E哨訪問內(nèi)存的地址大于 605EH小于3A6BH時產(chǎn)生越界中斷。(2)若使用地址、限長寄存器,地址寄存器的值是3A6BH限長寄存器的值是 25F3H,當訪問內(nèi)存的地址小于 3A6BH超過3A6BH+25F3H=605E時產(chǎn)生越界中斷。7. (1)寫出邏輯地址的格式。答:進程的邏輯地址空間為 32頁,故邏輯地址中的頁號需要 5位(二進制),由于每 頁的大小為2KB,因此頁內(nèi)位移需用 11位(二進制)表示,這樣,邏輯地址格式 如圖所示。15 11 100頁

37、號頁內(nèi)位移(2)該進程的頁表有多少項?每項至少占多少位?答:因為進程的邏輯地址空間為 32頁,因此該進程的頁表項有 32項。頁表中應存儲每頁的塊號。因為物理地址空間大小是4MB 4MB的物理地址空間內(nèi)分成4MB/2KB=2K個塊,因此塊號部分需要 11位(二進制),所以頁表中每項占11位。8. ( 1 )該進程的大小是多少字節(jié)?答:內(nèi)存的大小為 64位,被分為16塊,所以塊白大小是64KB/16=4KBo因為塊的大小與頁面的大小相等,所以頁的大小是4KB。該進程的大小是 4X4KB=16KB.( 2 )寫出該進程每一頁在內(nèi)存的起始地址。答:因為進程頁號為 0、 1 、 2 、 3,被分別裝入內(nèi)

38、存的2 、 4、 7、 5 。第 0 頁在內(nèi)存的起始地址是:2X4KB=8KB第 1 頁在內(nèi)存的起始地址是:4X4KB=16KB第 2 頁在內(nèi)存的起始地址是:7X4KB=28KB第 3 頁在內(nèi)存的起始地址是:5X4KB=20KB(3)邏輯地址4146對應的物理地址是多少?答:邏輯地址 4146對應的物理地址:4146/4096=1,,50。邏輯地址4146對應的 頁號為 1, 頁內(nèi)位移為50。 查找頁表, 得知頁號為 1 的存儲塊號為 4, 所以邏輯地址4146對應的物理跨地址是:4X4096+50=16434。9.答: (1)對于邏輯地址 0,137 ,段號為 0,段內(nèi)位移為137。查段表的

39、0 項得到該段的段始址為40KB段長為15KR由于段號0小于進程的總段數(shù),故段號合法;段 內(nèi)位移137小于段長15KB,故段內(nèi)地址合法。因此可得到物理地址為:40KB+137B=40960B+137B=41097B。(2)對于邏輯地址1,9000,段號為1 ,段內(nèi)位移為9000。查段表的1 項得到該段的段始址為80KB段長為8KB。由于段號1小于進程的總數(shù)( 3)對于邏輯地址2,3600,段號為2 ,段內(nèi)位移為3600。差段表的2 項得到該段的段始址為100KB,段長為10KB,故段內(nèi)地址合法。因此可得到物理地址為: 100KB+3600B=102400B+3600B=106000B。第六章

40、虛擬存儲管理思考與練習題1 試說明缺頁與一般中段的主要區(qū)別。2 局布置換和全局置換有何區(qū)別?在多道程序系統(tǒng)中建議使用哪一種?3 虛擬存儲的特征是什么?虛擬存儲器的容量受到哪兩個方面的限制?4 已知頁面走向是1、 2、 1、 3、 1、 2、 4、 2、 1、 3、 4,且進程開始執(zhí)行時,內(nèi)存中沒有頁面,若給該進程分配2 個物理塊,當采用以下算法時的缺頁率是多少?( 1 )先進先出置換算法。( 2 )假如有一種頁面置換算法,它總是淘汰剛使用過的頁面。5 .在請求頁式存儲管理系統(tǒng)中,使用先進先出(FIFO)頁面置換算法,會產(chǎn)生一種奇怪的現(xiàn)象: 分配給進程的頁數(shù)越多, 進程執(zhí)行時的卻也次數(shù)反而越高。

41、 試舉例說明這一現(xiàn)象。6 某請求頁式系統(tǒng)中,頁的大小為 100 字,一個程序的大小為 1200 字,可能的訪問序列如下:10、205、 110、40、314、 432、320、 225、80、130、 272、420、128,若系統(tǒng)采用LRU置換算法,當分配給該進程的物理塊數(shù)為3時,給出進程駐留的各個頁面的變化情況、頁面淘汰情況及缺頁次數(shù)。7 在一個采用局部置換策略的請求頁式系統(tǒng)中,分配中給進程的物理塊數(shù)為 4 ,其中存放的4個頁面的情況如表。當發(fā)生缺頁時,分別采用下列頁面置換算法時,講置換哪一頁?并解釋原因。進程4個頁面的情況改位頁號存儲塊號加載時間訪問時間訪問位修0230160011116

42、0157002010162103322016511OPT(最佳)置換算法;FIFO (先進先出)置換算法;LRU (最近最少使用)置換算法;Clock置換算法。某虛擬存儲器的用戶空間有 32個頁面,每頁1KB,內(nèi)存大小為16KB,假設某時刻系統(tǒng) 為用戶的第0、1、2、3頁分配得物理塊號是 5、10、4、7,而該用戶進程的長度是 6頁。 試將以下16進制的虛擬地址轉(zhuǎn)換成物理地址。(1) 0X0A5c(2) 0X103C(3) 0X257B(4) 0X8A4C8.在請求頁式存儲管理系統(tǒng)中,頁面大小是100字節(jié),有一個50X50的數(shù)組按行連續(xù)存放,每個整數(shù)占2字節(jié)。將數(shù)組初始化的程序如下程序A:in

43、t i,j;int a5050;for (i=0;i50;i+)for (j=0;j50;j+) aij=0;程序B:int i,j;int a5050;for (j=0;j50;j+)for (i=0;i50;i+) aij=0;若在程序執(zhí)行過程中,內(nèi)存中只有一個頁面用來存放數(shù)組的信息,試問程序A和程序B執(zhí)行時產(chǎn)生的中斷次數(shù)分別是多少?答案1.答:缺頁中斷與一般中斷一樣,需要經(jīng)歷保護CPU香腸、分析中斷原因、轉(zhuǎn)中斷處理程序進行及恢復中斷現(xiàn)場等步驟。但缺頁中斷是一種特殊的中斷,他與一般中斷的區(qū)別:(1)在指令執(zhí)行期間產(chǎn)生和處理中斷,。通常cpu是在一條至六年個執(zhí)行之后去檢查是 否有中斷發(fā)生,若

44、有邊去處理中斷;否則繼續(xù)執(zhí)行下一跳指令。而缺頁中斷是在指令執(zhí) 行期間發(fā)現(xiàn)所要訪問的指令或數(shù)據(jù)不再內(nèi)存時產(chǎn)生和處理中斷。(2) 一條指令執(zhí)行期間可能產(chǎn)生多次中斷。對于一跳要求讀取多個字節(jié)數(shù)據(jù)的指令,指令中的數(shù)據(jù)可能跨越兩個頁面。1指令執(zhí)行時可能要發(fā)生3次中斷,一次是訪問指令,另外兩次訪問數(shù)據(jù)。2 .答:局部置換是指當前進程在執(zhí)行過程中發(fā)生缺頁時,旨在分配給該進程的物理塊中選擇一頁換出。全局置換是指在所有用戶使用的整個存儲空間中選擇一個頁面換出。在多道程序系統(tǒng)中建議使用局部置換策略。這樣即使某個進程出現(xiàn)了抖動現(xiàn)象,也不致引起其他程序產(chǎn)生抖動,從而將抖動局限在較小的范圍內(nèi)。3 .答:虛擬存儲器的特征

45、有以下幾個方面:(1)離散性:指進程不必裝入連續(xù)的內(nèi)存空間,二十“見縫插針”(2)多次性:只一個進程的程序和數(shù)據(jù)要分多次調(diào)入內(nèi)存。(3)對換性:指進程在運行過程中,允許將部分程序和數(shù)據(jù)換進、換出。(4)虛擬性:指能從邏輯上擴充內(nèi)存容量。虛擬存儲器的容量主要是受計算機的地址長度和外存容量的限制。4.(1)先進先出置換算法。頁面調(diào)度表貝囿走向1 213124213 4物理塊11 13322114物理塊222114433缺頁缺制三缺缺 缺 缺缺 缺 缺答:頁面引用11次,缺頁9次,缺頁率為9/11=%。(3) 假如有一種頁面置換算法,它總是淘汰剛使用過的頁面。頁面調(diào)度表貝囿走向121312 4213

46、 4物理塊1113 11 13 4物理塊22224222缺頁缺缺缺 缺缺 缺缺缺答:頁面引用11次,缺頁8次,缺頁率為8/11=%。5.答:如果一個進程的頁面走向為4、3、2、1、4、3、5、4、3、2、1、5,若給該進程非配3個物理塊,其頁面調(diào)度情況如表所示:貝囿走向4 3 2 1 4 3 5 4 3 2 1 5物理塊14 4 4 1 1 1 55 5物理塊23 3 3 4 4 42 2物理塊32 2 2 3 33 1缺頁缺 缺 缺 缺 缺 缺 缺缺 缺引用12次,缺頁9次。若給該進程分配4個物理塊,其頁面調(diào)度情況如下:貝囿走向4321435 43215物理塊14 444555511物理塊2

47、3333 4 4 4 45物理塊322223333物理塊41111222缺頁缺缺缺缺缺 缺缺 缺 缺 缺引用12次,缺頁10次6.答:由于頁的代謝奧為100字,因此訪問序列10、205、110、40、314、432、320、225、80、130、272、420、128 對應的頁號是0、2、1、0、3、4、3、2、0、1、2、4、1。給該進程分配3個物理塊,采用LRU置換算法,其頁面調(diào)度情況如表。貝面走向0 2103 432012 41物理塊1000002222物理塊222333311物理塊31144004缺頁缺缺 缺缺缺缺 缺 缺缺被淘汰的頁號分別是 2、1、0、4、3、0,共9次。7.進程4

48、個頁面的情況頁號存儲塊號加載時間訪問時間訪問位修改位02301600111160157002010162103322016511(2) OPT(最佳)置換算法;答:OPT(最佳)置換算法是選擇永久不用的也活長時間不用的也,將其患處,題目中沒有給出頁面的將來走向,所以無法判斷將置換哪一頁。(3) FIFO (先進先出)置換算法;答:FIFO (先進先出)置換算法是選擇最先裝入內(nèi)存的頁面,將其換出。從表中可知,應考察的是頁面的加載時間,加載時間最小的是10,因此最先裝入內(nèi)存的是第2頁。(4) LRU (最近最少使用)置換算法;答:LRU (最近最少使用)算法時選擇最近最久沒有被訪問的頁面,將其換出

49、。應考察的是頁面的訪問時間,訪問時間最小的是157,因此最近最久沒有被訪問的是第1頁。(5) Clock置換算法。答:CLOC幽換算法時LRU算法的變種,他首先選擇訪問位和修改位均為0的一頁,將其換出。滿足該條件的是第1頁。8. 0X0A5C物理地址是000(2) 0X103C產(chǎn)生缺頁中斷(3) 0X257B產(chǎn)生越界中斷(4) 0X8A4C地址錯誤9. 答:由題知,數(shù)組a 中有 50X50=2500 個整數(shù),每個整數(shù)占2 個字節(jié),數(shù)組共需要2X2500=5000 字節(jié)。兒頁面的大小是100 字節(jié),則數(shù)組占用的空間為 5000/100=50 頁。對于程序A: 由于數(shù)組是按行存放的,而初始化數(shù)組的

50、程序也是按行進行初始化的。因此當缺頁后調(diào)入的一頁, 位于該頁的所有數(shù)組元素全部進行初始化, 然后再調(diào)入另一頁。 所以缺頁的次數(shù)為 50 次。對于程序 B 由于數(shù)組是按行存放的,而初始化數(shù)組的程序卻是案例額進行初始化的。因此當缺頁后調(diào)入的一頁中,位于該頁撒謊能夠的數(shù)組元素只有一個,所以程序 B每訪問一個元素長生一次缺頁中斷,則整個數(shù)組將長生2500 次缺頁。第七章 設備管理思考與練習題1 數(shù)據(jù)傳輸控制方式有哪幾種?試比較它們的優(yōu)缺點。2 何為設備的獨立性?如何實現(xiàn)設備的獨立性?3 什么是緩沖?為什么要引入緩沖?操作系統(tǒng)如何實現(xiàn)緩沖技術?4 設備分配中為什么可能出現(xiàn)死鎖?5 .以打印機為例說明SP

51、OOLing技術的工作原理。6 假設一個磁盤有200 個柱面,編號為 0199,當前存取臂的位置是在 143號柱面上,并剛剛完成了 125 號柱面的服務請求,如果存在下列請求序列: 86、 147、 91、 177、 94、150、 102、 175、 130 , 試問: 為完成上述請求, 采用下列算法時存取的移動順序是什么?移動總量是多少?( 1 ) 先來先服務(FCFS) 。( 2 ) 最短尋道時間優(yōu)先(SSTF) 。( 3 ) 掃描算法(SCAN) 。( 4 ) 循環(huán)掃描算法(C-SCAN) 。7 磁盤的訪問時間分成三部分:尋道時間、旋轉(zhuǎn)時間和數(shù)據(jù)傳輸時間。而優(yōu)化磁盤磁道上的信息分布能減

52、少輸入輸出服務的總時間。例如,有一個文件有10個記錄A,B,C,,J存放在磁盤的某一磁道上,假定該磁盤共有10 個扇區(qū),每個扇區(qū)存放一個記錄,安排如表所示?,F(xiàn)在要從這個磁道上順序地將AJ 這 10 個記錄讀出,如果磁盤的旋轉(zhuǎn)速度為20ms轉(zhuǎn)一周,處理程序每讀出一個記錄要花4ms進行處理。試問:( 1 )處理完10 個記錄的總時間為多少?( 2 )為了優(yōu)化分布縮短處理時間,如何安排這些記錄?并計算處理的總時間。8 假設一個磁盤有100 個柱面,每個柱面有10 個磁道,每個磁道有15 個扇區(qū)。當進程的要訪問磁盤有12345 扇區(qū)時,計算該扇區(qū)在磁盤的第幾柱面、第幾磁道、第幾扇區(qū)?9 . 一個文件記錄大小為32B,磁道輸入輸出以磁盤塊為單位,一個盤塊的大小為512B。當用戶進程順序讀文件的各個記錄時, 計算實際啟動磁盤I/O 占用整個訪問請求時間的比例。10 .如果磁盤扇區(qū)的大小固定為512B,每個磁道有80個扇

溫馨提示

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

評論

0/150

提交評論