




免費預(yù)覽已結(jié)束,剩余27頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章操 作系統(tǒng)引論思考與練習(xí)題1. 什么是操作系統(tǒng)?它的主要功能是什么?2. 什么是多道程序設(shè)計技術(shù)?多道程序設(shè)計技術(shù)的主要特點是什么?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. 設(shè)內(nèi)存中有三道程序,A,B,C,它們按ABC的先后順序執(zhí)行,它們進(jìn)行“計算”和“I/o操作”的時間如表1-2所示,假設(shè)三道程序使用相同的I/O設(shè)備。表1-2 三道程序的操作時間操作程序計算I/o操作計算A203010B305020C102010(1) 試畫出單道運行時三道程序的時間關(guān)系圖,并計算完成三道程序要花多少時間。(2) 試畫出多道運行時三道程序的時間關(guān)系圖,并計算完成三道程序要花多少時間。10將下列左右兩列詞連接起來形成意義最恰當(dāng)?shù)?對。DOS 網(wǎng)絡(luò)操作系統(tǒng)OS/2 自由軟件UNIX 多任務(wù)Linux 單任務(wù)Windows NT 為開發(fā)操作系統(tǒng)而設(shè)計 C語言11選擇一個現(xiàn)代操作系統(tǒng),查找和閱讀相關(guān)的技術(shù)資料,寫一篇關(guān)于操作系統(tǒng)如何進(jìn)行內(nèi)存管理、存儲管理、設(shè)備管理和文件管理的文章。答案1 答:操作系統(tǒng)是控制和管理計算機的軟、硬件資源,合理地組織計算機的工作流程,以方便用戶使用的程序集合。2答:把多個獨立的程序同時放入內(nèi)存,使她們共享系統(tǒng)中的資源。 1)多道,即計算機內(nèi)存中同時放多道相互獨立的程序。2) 宏觀上并行,是指共識進(jìn)入系統(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)中,用戶感覺不到其他用戶的存在,好像獨占計算機一樣。實時系統(tǒng):對外輸入出信息,實時系統(tǒng)能夠在規(guī)定的 時間內(nèi)處理完畢并作出反應(yīng)。 1)多路性:分時系統(tǒng)是為多個終端用戶提供服務(wù),實時系統(tǒng)的多路性主要表現(xiàn)在經(jīng)常對多路的現(xiàn)場信息進(jìn)行采集以及多多個對象或多個執(zhí)行機構(gòu)進(jìn)行控制。 2)獨立性:每個終端向?qū)崟r系統(tǒng)提出服務(wù)請求時,是彼此獨立的工作、互不干擾。 3)及時性:實時信息處理系統(tǒng)與分時系統(tǒng)對及時性的要求類似,都以人們能夠接受的等待時間來確定。實時控制系統(tǒng)對一時性的要求更高,是以控制對象所要求的開始截止時間或完成截止時間來確定的。5答:(1)實時控制系統(tǒng) (2)實時信息處理系統(tǒng)。6答:1)并發(fā)性 2)共享性 3)虛擬性 4)不確定性。7答:兩種,命令接口 ,程序接口。 命令接口:分為聯(lián)機命令接口,脫機命令接口,圖形用戶命令接口。方便用戶直接控制自己的作業(yè)而提供的接口。 程序接口:又稱系統(tǒng)調(diào)用,是為了用戶在程序一級訪問操作系統(tǒng)功能而設(shè)置的。8答:不正確,因為操作系統(tǒng)不僅僅是控制硬件,同時它還控制計算機的軟件。9(1)20ms+30ms+10ms+30ms+50ms+20ms+10ms+20ms+10ms=200ms (2) 20ms+30ms+10ms+40ms+20ms+10ms=130ms10DOS 網(wǎng)絡(luò)操作系統(tǒng) OS/2 自由軟件 UNIX 多任務(wù) Linux 單任務(wù) WindowsNT 為開發(fā)操作系統(tǒng)而設(shè)計的C語言第二章 進(jìn)程與線程思考與練習(xí)題1 操作系統(tǒng)中為什么要引入進(jìn)程的概念?為了實現(xiàn)并發(fā)進(jìn)程之間的合作和協(xié)調(diào),以及保證系統(tǒng)的安全,操作系統(tǒng)在進(jìn)程管理方面要做哪些工作?2 試描述當(dāng)前正在運行的進(jìn)程狀態(tài)改變時,操作系統(tǒng)進(jìn)行進(jìn)程切換的步驟。3 現(xiàn)代操作系統(tǒng)一般都提供多任務(wù)的環(huán)境,是回答以下問題。(1) 為支持多進(jìn)程的并發(fā)執(zhí)行,系統(tǒng)必須建立哪些關(guān)于進(jìn)程的數(shù)據(jù)結(jié)構(gòu)?(2) 為支持進(jìn)程的狀態(tài)變遷,系統(tǒng)至少應(yīng)該供哪些進(jìn)程控制原語?(3) 當(dāng)進(jìn)程的狀態(tài)變遷時,相應(yīng)的數(shù)據(jù)結(jié)構(gòu)發(fā)生變化嗎?4 什么是進(jìn)程控制塊?從進(jìn)程管理、中斷處理、進(jìn)程通信、文件管理、設(shè)備管理及存儲管理的角度設(shè)計進(jìn)程控制塊應(yīng)該包含的內(nèi)容。5 假設(shè)系統(tǒng)就緒隊列中有10個進(jìn)程,這10個進(jìn)程輪換執(zhí)行,每隔300ms輪換一次,CPU在進(jìn)程切換時所花費的時間是10ms,試問系統(tǒng)化在進(jìn)程切換上的開銷占系統(tǒng)整個時間的比例是多少?6 試述線程的特點及其與進(jìn)程之間的關(guān)系。7 根據(jù)圖2-18,回答以下問題。(1) 進(jìn)程發(fā)生狀態(tài)變遷1、3、4、6、7的原因。(2) 系統(tǒng)中常常由于某一進(jìn)程的狀態(tài)變遷引起另一進(jìn)程也產(chǎn)生狀態(tài)變遷,這種變遷稱為因果變遷。下述變遷是否為因果變遷:32,45,72,36,是說明原因。(3) 根據(jù)此進(jìn)程狀態(tài)轉(zhuǎn)換圖,說明該系統(tǒng)CPU調(diào)度的策略和效果。8 回答以下問題。(1) 若系統(tǒng)中沒有運行進(jìn)程,是否一定沒有就緒進(jìn)程?為什么?(2) 若系統(tǒng)中既沒有運行進(jìn)程,也沒有就緒進(jìn)程,系統(tǒng)中是佛就沒有阻塞進(jìn)程?解釋。(3) 如果系統(tǒng)采用優(yōu)先級調(diào)度策略,運行的進(jìn)程是否一定是系統(tǒng)中優(yōu)先級最高的進(jìn)程?為什么?9 假如有以下程序段,回答下面的問題。S1: a=3-x;S2: b=2*a;S3: c=5+a;(1) 并發(fā)程序執(zhí)行的Bernstein 條件是什么?(2) 是畫圖表示它們執(zhí)行時的先后次序。(3) 利用Bernstein 條件證明,S1、S2和S3哪兩個可以并發(fā)執(zhí)行,哪兩個不能。答案1. 答:為了從變化角度動態(tài)地分析研究可以并發(fā)執(zhí)行的程序,真實的反應(yīng)系統(tǒng)的獨立性、并發(fā)性、動態(tài)性和相互制約,操作系統(tǒng)中不得不引入進(jìn)程的概念。 為了防止操作系統(tǒng)及其關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)受到用戶程序破壞,將處理機分為核心態(tài)和用戶態(tài)。對進(jìn)程進(jìn)行創(chuàng)建、撤銷以及在某些進(jìn)程狀態(tài)之間的轉(zhuǎn)換控制。2. 答:運行狀態(tài)就緒狀態(tài):此進(jìn)程根據(jù)自身的情況插入到就緒隊列的適當(dāng)位置,系統(tǒng)收回處理及轉(zhuǎn)入進(jìn)程調(diào)度程序重新進(jìn)行調(diào)度。 運行狀態(tài)阻塞狀態(tài):一個進(jìn)程從運行狀態(tài)道阻塞狀態(tài)后。系統(tǒng)會調(diào)用進(jìn)程調(diào)度程序重新選擇一個進(jìn)程投入運行。3.(1) 答:為支持多進(jìn)程的并發(fā)執(zhí)行,系統(tǒng)必須建立的數(shù)據(jù)結(jié)構(gòu)式PCB,不同狀態(tài)進(jìn)程的PCB用鏈表組織起來,形成就緒隊列、阻塞隊列。(2) 答:阻塞原句、喚醒原句、掛起原句、激活原句(3) 答:創(chuàng)建原句:建立進(jìn)程的PCB,并將進(jìn)程投入就緒隊列。 撤銷原句:刪除進(jìn)程的PCB,并將進(jìn)程在其隊列中摘除。 阻塞原句:將京城PCB中進(jìn)程的狀態(tài)從運行狀態(tài)改為阻塞狀態(tài),并將進(jìn)程投入阻塞隊列。 喚醒原句:將進(jìn)程PCB中進(jìn)程的狀態(tài)從阻塞狀態(tài)改為就緒狀態(tài),并將進(jìn)程從則色隊列摘下,投入到就緒隊列中。4. 答:進(jìn)程控制塊(PCB)是為了描述進(jìn)程的動態(tài)變化而設(shè)置的一個與進(jìn)程相聯(lián)系的數(shù)據(jù)結(jié)構(gòu),用于記錄系統(tǒng)管理進(jìn)程所需信息。PCB是進(jìn)程存在的唯一標(biāo)識,操作系統(tǒng)通過PCB得知進(jìn)程的尋在。為了進(jìn)程管理,進(jìn)程控制塊包括以下幾方面。(1) 進(jìn)程的描述信息,包括進(jìn)程標(biāo)識符、進(jìn)程名等。(2) 進(jìn)程的當(dāng)前狀況。(3) 當(dāng)前隊列鏈接指針。(4) 進(jìn)程的家族關(guān)系。為了中斷處理,進(jìn)程控制塊的內(nèi)容應(yīng)該包括處理機狀態(tài)信息和各種寄存器的內(nèi)容,如通用寄存器、指令計數(shù)器、程序狀態(tài)字(PSW)寄存器及棧指針等。為了內(nèi)存管理的需要,進(jìn)程控制塊的內(nèi)容應(yīng)該包括進(jìn)程使用的信號量、消息隊列指針等。為了設(shè)備管理,進(jìn)程控制塊的內(nèi)容應(yīng)該包括進(jìn)程占有資源的情況。5. 答:就緒隊列中有10個進(jìn)程,這10個進(jìn)程輪換執(zhí)行,每隔進(jìn)程的運行時間是300ms,切換另一個進(jìn)程所花費的總時間是10ms,隱刺系統(tǒng)化在進(jìn)程切換上的時間開銷占系統(tǒng)整個時間的比例是:10/(300+10)=3.2%.6. 答:線程是進(jìn)程內(nèi)的一個相對獨立的運行單元,是操作系統(tǒng)調(diào)度和分派的單位。線程只擁有一點必不可少的資源(一組寄存器和棧),但可以和銅屬于一個進(jìn)程的其他線程共享進(jìn)程擁有的資源。 線程是進(jìn)程的一部分,是進(jìn)程內(nèi)的一個實體;一個進(jìn)程可以有多個線程,但至少必須有一個線程。7.(1) 答:1表示新進(jìn)程創(chuàng)建后,進(jìn)入高優(yōu)先級就緒隊列;3表示進(jìn)程因請求I/O活等待某件事兒阻塞;4表示進(jìn)程運行的時間片到;6表示進(jìn)程I/O完成或等待的時間到達(dá);7表示進(jìn)程運行頑皮而退出。(2) 答:32是因果變遷,當(dāng)一個進(jìn)程從運行態(tài)變?yōu)樽枞麘B(tài)時,此時CPU空閑,系統(tǒng)首先到高優(yōu)先級隊列中選擇一個進(jìn)程投入運行。45是因果變遷,當(dāng)一個進(jìn)程運行完畢時,此時CPU空閑,系統(tǒng)首先到高優(yōu)先級隊列中選擇進(jìn)程,但如果高優(yōu)先級隊列為空,則從低優(yōu)先隊列中選擇一個進(jìn)程投入運行。72 是因果變遷,當(dāng)一個進(jìn)程運行完畢時,CPU空閑,系統(tǒng)首先到高優(yōu)先級隊列中選擇一個進(jìn)程投入運行。36不是因果變遷。一個進(jìn)程阻塞時由于自身的原因而發(fā)生的,和另一個進(jìn)程等待的時間到達(dá)沒有因果關(guān)系。(3) 答:當(dāng)進(jìn)程調(diào)度時,首先從高優(yōu)先級就緒隊列選擇一個進(jìn)程,賦予它的時間片為100ms。如果高優(yōu)先級就緒隊列為控,則從低優(yōu)先級就緒隊列選擇進(jìn)程,但賦予該進(jìn)程的時間片為500ms。這種策略一方面照顧了短進(jìn)程,一個進(jìn)程如果在100ms運行完畢它將退出系統(tǒng),更主要的是照顧了I/O量大的進(jìn)程,進(jìn)程因I/O進(jìn)入阻塞隊列,當(dāng)I/O完成后它就進(jìn)入了高優(yōu)先級就緒隊列,在高優(yōu)先級就緒隊列等待的進(jìn)程總是優(yōu)于低優(yōu)先級就緒隊列的進(jìn)程。而對于計算量較大的進(jìn)程,它的計算如果在100ms的時間內(nèi)不能完成,它將進(jìn)入低優(yōu)先級就緒隊列,在這個隊列的進(jìn)程被選中的機會要少,只有當(dāng)高優(yōu)先級就緒隊列為空,才從低優(yōu)先級就緒隊列選擇進(jìn)程,但對于計算量大的進(jìn)程,系統(tǒng)給予的適當(dāng)照顧時間片增大為500ms。 8.(1) 答:是。若系統(tǒng)中沒有運行進(jìn)程,系統(tǒng)會馬上選擇一個就緒進(jìn)程隊列中的進(jìn)程投入運行。只有在就緒隊列為空時,CPU才會空閑。(2) 答:不一定。當(dāng)系統(tǒng)中所有進(jìn)程分別等待各自希望發(fā)生的事件時,它們都處于阻塞狀態(tài),此時系統(tǒng)中既沒有運行進(jìn)程,也沒有就緒進(jìn)程。這種情況出現(xiàn)時,如果各個進(jìn)程沒有相互等待關(guān)系,只要等待的時間發(fā)生了,進(jìn)程就會從等待狀態(tài)轉(zhuǎn)化為就緒狀態(tài)。但如果處于阻塞狀態(tài)的進(jìn)程相互等待彼此占有的資源,系統(tǒng)就有可能發(fā)生死鎖。(3) 答:不一定。因為高優(yōu)先級的進(jìn)程有可能處于等待狀態(tài),進(jìn)程調(diào)度程序只能從就緒隊列中挑選一個進(jìn)程投入運行。被選中進(jìn)程的優(yōu)先級在就緒隊列中是最高的,但在整個系統(tǒng)中它不一定是最發(fā)哦的,等待隊列中進(jìn)程的優(yōu)先級有可能高于就緒隊列中所有進(jìn)程的優(yōu)先級。9.(1) 答: P1和P2并發(fā)執(zhí)行的條件是,當(dāng)且僅當(dāng) R(P1)W(P2) R(P2) W(P1) W(P1)W(P2)=(2)S1S2S3 (3) 答:R(S1)=x,W(S2)=a,R(S2)=a,W(S2)=b,R(S3)=a,W(S3)=c所以W(S1) R(S2)=a, 因此S1和S2不能并發(fā)執(zhí)行。 W(S1)R(S2)=a, 因此S1和S3也不能并發(fā)執(zhí)行。而R(S2) W(S3) R(S3) W(S2) W(S2) W(S3)=, 因此S2和S3可以并發(fā)執(zhí)行。第三章 進(jìn)程同步與通信思考與練習(xí)題1 一下進(jìn)程之間存在相互制約關(guān)系嗎?若存在,是什么制約關(guān)系?為什么?(1) 幾個同學(xué)去圖書館借同一本書。(2) 籃球比賽中兩隊同學(xué)爭搶籃板球。(3) 果汁流水線生產(chǎn)中搗碎、消毒、灌裝、裝箱等各道工序。(4) 商品的入庫出庫。(5) 工人做工與農(nóng)民種糧。2 在操作系統(tǒng)中引入管程的目的是什么?條件變量的作用是什么?3 說明P、V操作為什么要設(shè)計成原語。4 設(shè)有一個售票大廳,可容納200人購票。如果廳內(nèi)不足200人則允許進(jìn)入,超過則在廳外等候;售票員某時只能給一個購票者服務(wù),購票者買完票后就離開。試問:(1) 購票者之間是同步關(guān)系還是互斥關(guān)系?(2) 用P、V操作描述購票者的工作過程。5 進(jìn)程之間的關(guān)系如圖3-16所示,試用P、V操作描述它們之間的同步。6 有4個進(jìn)程P1、P2、P3、P4共享一個緩沖區(qū),進(jìn)程P1向緩沖區(qū)存入消息,進(jìn)程P2、P3、P4從緩沖區(qū)中去消息,要求發(fā)送者必須等三個進(jìn)程都去過本消息后才能發(fā)送下調(diào)消息。緩沖區(qū)內(nèi)每次只能容納一個消息,用P、V操作描述四個進(jìn)程存取消息的情況。7 分析生產(chǎn)者消費者問題中多個P操作顛倒引起的后果。8 讀者寫者問題中寫者優(yōu)先的實現(xiàn)。9 寫一個用信號量解決哲學(xué)家進(jìn)餐問題不產(chǎn)生鎖死的算法。10 一個文件可有若干個不同的進(jìn)程所共享,每個進(jìn)程具有唯一的編號。假定文件可有滿足下列限制的若干個不同的進(jìn)程同時訪問,并發(fā)訪問該文件的哪些進(jìn)程的編號的總和不得大于n,設(shè)計一個協(xié)調(diào)對該文件訪問的管程。11 用管程解決讀者寫者問題,并采用公平原則。答案1.(1) 答:存在互斥關(guān)系,因為同一本書只能借給一個同學(xué)。(2) 答:存在互斥關(guān)系,因為籃球只有一個,兩隊只能有一個隊搶到球(3) 答:存在同步關(guān)系,因為最后一道工序的開始依賴于前一道工序的完成。(4) 答:存在同步關(guān)系,因為商品若沒有入庫就無法出庫,若商品沒有出庫,裝滿了庫房,也就無法再入庫。(5) 答:工人與農(nóng)民之間沒有相互制約關(guān)系。2. 答:引入管程的目的是為了實現(xiàn)進(jìn)程之間的同步和互斥。優(yōu)于使用信號量在解決同步和互斥問題時要設(shè)置多個信號量,并使用大量的P、V操作,其中P操作的排列次序不當(dāng),還會引起系統(tǒng)死鎖,因此引入另外一種同步機制。3. 答:用信號量S表示共享資源,其初值為1表示有一個資源。設(shè)有兩個進(jìn)程申請該資源,若其中一個進(jìn)程先執(zhí)行P操作。P操作中的減1操作有3跳及其指令組成:去S送寄存器R;R-1送S。若P操作不用原語實現(xiàn),在執(zhí)行了前述三條指令中的2條,即還未執(zhí)行R送S時(此時S值仍為1),進(jìn)程被剝奪CPU,另一個進(jìn)程執(zhí)行也要執(zhí)行P操作,執(zhí)行后S的值為0,導(dǎo)致信號量的值錯誤。正確的結(jié)果是兩個進(jìn)程執(zhí)行完P(guān)操作后,信號量S的值為-1,進(jìn)程阻塞。4.(1) 答:購票者之間是互斥關(guān)系。(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=0,0,0,0,0,0,0; void P1() void P2() void P3() void P4() void P5() void P6() S1; P(a); P(b); P(c); P(d); P(e) V(a); S2; S3; S4; S5; P(f) V(b); V(e); V(c); V(f); V(g); P(g) V(d); S6; 6 答:semaphore S1=1;semaphore S2,S3,S4=0,0,0;int count =0;semaphore mutex=1;void P1()/*發(fā)送進(jìn)程*/ void P2()/*接收進(jìn)程*/ void P3()/*接受進(jìn)程*/ void P4()/*接受進(jìn)程*/ while(true) while(true) while(true) while(true) P(S1); P(S2); P(S3); P(S4);發(fā)送消息; 接收消息; 接收消息; 接收消息;P(mutex); P(mutex); P(mutex); P(mutex);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(s4); 7 答: semaphore mutex=1; semaphore empty=n; semaphore full=0; int i,j;ITEM buffern;ITEM data_p,data_c;void producer()/*生產(chǎn)者進(jìn)程*/ void consumer() /*消費者進(jìn)程*/while(true) while(true)produce an item in data_p; P(full); P(mutex); P(mutex); P(empty); data_c=bufferj; bufferi=data_p; j=(j+1)%n; i=(i+1)%n; V(mutex); V(mutex); V(empty); V(full); consume the item in data_c 6.答:semaphore Wmutex,Rmutex=1;int Rcount=0;semaphore mutex=1void reader() /*讀者進(jìn)程*/ void writer() /*寫者進(jìn)程*/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(Wmutex); 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 ()/*哲學(xué)家進(jìn)餐*/while(true)P(mutex); P(chopsticki); P(chopstick(i+1)%5); V(mutex); ; eat;/*進(jìn)餐*/ ; V(chopsticki); V(chopstick(i+1)%5);think;/*思考*/; 第四章 調(diào)度與死鎖思考與練習(xí)題1 某進(jìn)程被喚醒后立刻投入運行,能說明該系統(tǒng)采用的是可剝奪調(diào)度算法嗎?2 在哲學(xué)家進(jìn)餐問題中,如果將先拿起左邊筷子的哲學(xué)家稱為左撇子,先拿起右邊筷子的哲學(xué)家稱為右撇子。請說明在同時存在左、右撇子的情況下,任何的就坐安排都不能產(chǎn)生鎖死。3 系統(tǒng)中有5個資源被4個進(jìn)程所共享,如果每個進(jìn)程最多需要2個這種資源,試問系統(tǒng)是否會產(chǎn)生鎖死?4 計算機系統(tǒng)有8臺磁帶機,由N個進(jìn)程競爭使用,每個進(jìn)程最多需要3臺。問:N為多少時,系統(tǒng)沒有死鎖的危險?5 系統(tǒng)有5個進(jìn)程,它們的到達(dá)時間和服務(wù)時間如表4-8所示。新進(jìn)程(沒有運行過)與老進(jìn)程(運行過的進(jìn)程)的條件相同時,假定系統(tǒng)選新進(jìn)程運行。 表4-8 進(jìn)程情況進(jìn)程名到達(dá)時間服務(wù)時間A03B26C44D65E82若按先來先服務(wù)(FCFS)、時間片輪法(時間片q=1)、短進(jìn)程優(yōu)先(SPN)、最短剩余時間優(yōu)先(SRT,時間片q=1)、響應(yīng)比高者優(yōu)先(HRRN)及多級反饋隊列(MFQ,第一個隊列的時間片為1,第i(i1)個隊列的時間片q=2(i-1)算法進(jìn)行CPU調(diào)度,請給出各個進(jìn)程的完成時間、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,及所有的進(jìn)程的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間。6 設(shè)系統(tǒng)中有5個進(jìn)程P1、P2、P3、P4、P5,有3種類型的資源A、B、C,其中A資源的數(shù)量是17,B資源的數(shù)量是5,C資源的數(shù)量是20,T0時刻系統(tǒng)狀態(tài)如表4-9所示。 表4-9 T0時刻系統(tǒng)狀態(tài)進(jìn)程已分配資源數(shù)量最大資源需求量仍然需求資源數(shù)ABCABCABCP1212559347P2402536134P34054011006P4204425221P5314424110(1) 計算每個進(jìn)程還可能需要的資源,并填入表的“仍然需要資源數(shù)”的欄目。(2) T0時刻系統(tǒng)是否處于安全狀態(tài)?為什么?(3) 如果T0時刻進(jìn)程P2又有新的資源請求(0,3,4),是否實施資源分配?為什么?(4) 如果T0時刻,若進(jìn)程P4又有新的資源請求(2,0,1),是否實施資源分配?為什么?(5) 在(4)的基礎(chǔ)上,若進(jìn)程P1又有新的資源請求(0,2,0),是否實施資源分配?為什么?答案1. 答:不能。如果當(dāng)前就緒列隊為空,這樣被喚醒的進(jìn)程就是就緒隊列中的唯一的一個進(jìn)程,于是調(diào)度程序自然選中它投入運行。2. 答:該題的關(guān)鍵是證明該情況不滿足產(chǎn)生死鎖的四個必要條件之一。在死鎖的四個必要條件中,本體對于互斥條件、請求與保持條件、不可剝奪條件肯定是成立的,因此必須證明環(huán)路條件不成立。 對于本體,如果存在環(huán)路條件必須是左、右的哲學(xué)家都拿起了左(或右)邊的筷子,而等待右(或左)邊的筷子,而這種情況只能出現(xiàn)在所有哲學(xué)家都是左(或右)撇子的情況下,但由于本題有右(或左)撇子存在,因此不可能出現(xiàn)循環(huán)等待鏈,所以不可能產(chǎn)生死鎖。3. 答:由于資源數(shù)大于進(jìn)程數(shù),所以系統(tǒng)中總會有一個進(jìn)程獲得資源數(shù)大于等于2,該進(jìn)程已經(jīng)滿足了它的最大需求,當(dāng)它運行完畢后會把它占有的資源歸還給系統(tǒng),此時其余3個進(jìn)程也能滿足最大需求而順利運行完畢。因此系統(tǒng)不會產(chǎn)生死鎖。4. 答:當(dāng)N4時,系統(tǒng)沒有死鎖的危險。因為當(dāng)N為1時,它最多需要3臺磁帶機,系統(tǒng)中共有8臺,其資源數(shù)已足夠一個進(jìn)程使用,因此絕對不會產(chǎn)生死鎖,當(dāng)N為2時,兩個進(jìn)程最多需要6臺磁帶機,系統(tǒng)中共有8臺,其資源數(shù)也足夠兩個進(jìn)程使用,因此也不會產(chǎn)生死鎖;當(dāng)N為3時,無論如何分配,3個進(jìn)程中必有進(jìn)程得到3臺磁帶機,該進(jìn)程已經(jīng)達(dá)到它的最大需求,當(dāng)它運行完畢后可是放這3臺磁帶機,這就保證了其他兩個進(jìn)程也可順利執(zhí)行完畢。因此當(dāng)N4時,也有產(chǎn)生死鎖的危險。5. (1)先來先服務(wù)(FCFS)平均周轉(zhuǎn)時間 T=(3+7+9+12+12)/5=43/5=8.6 平均帶全周轉(zhuǎn)時間 W=(1+1.17+2.25+2.4+6)/5=12.82/5=2.56 (2)采用時間片輪轉(zhuǎn)(時間片q=1) 平均周轉(zhuǎn)時間 T=(4+16+13+14+7)/5=54/5=10.8 平均帶權(quán)周轉(zhuǎn)時間 W=(1.33+2.67+3.25+2.8+3.5)/=13.55/5=2.71 (3)短進(jìn)程優(yōu)先(SPN) 平局周轉(zhuǎn)時間 T=(3+7+11+14+3)/5=38/5=7.6 平均帶權(quán)周轉(zhuǎn)時間 W=(1+1.17+2.75+2.8+1.5)/5=38/5=7.6 (4)采用最短剩余時間(SRT,時間片q=1) 平局周轉(zhuǎn)時間 T=(3+18+4+9+2)/5=36/5=7.2 平均帶權(quán)周轉(zhuǎn)時間 W(1+3+1+1.8+1)/5=7.8/5=1.56 (5)采用響應(yīng)比高者優(yōu)先(HRRN) 平均周轉(zhuǎn)時間 T=(3+7+9+14+7)/5=40/5=8 平均帶全周轉(zhuǎn)時間 W=(1+1.17+2.25+2.8+3.5)/5=10.72/5=2.14 (6)采用多級反饋隊列(MFQ,第1個隊列的時間片為1 ,第i(i1)個隊列的時間片 q=2(i-1) 平均周轉(zhuǎn)時間 T=(3+15+14+14+6)/5=52/5=10.4 平均帶權(quán)周轉(zhuǎn)時間 W=(1+2.5+3.5+2.8+3)/5=12.8/5=2.56第五章 存儲管理思考與練習(xí)題1 存儲管理的基本任務(wù)是為多道程序的并發(fā)執(zhí)行提供良好的存儲環(huán)境,這包括哪些方面?.2 頁式存儲管理系統(tǒng)是否產(chǎn)生碎片?如何應(yīng)對此現(xiàn)象?3 在頁式存儲管理系統(tǒng)中頁表的功能是什么?當(dāng)系統(tǒng)的地址空間很大時會給頁表的設(shè)計帶來哪些新的問題?4 什么是動態(tài)鏈接?用哪種存儲管理方案可以實現(xiàn)動態(tài)鏈接?5 某進(jìn)程的大小為25F3H字節(jié),被分配到內(nèi)存的3A6BH字節(jié)開始的地址。但進(jìn)程運行時,若使用上、下界寄存器,寄存器的值是多少?如何進(jìn)行存儲保護(hù)?若使用地址、限長寄存器,寄存器的值是多少?如何進(jìn)行存儲保護(hù)?6 在系統(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申請80KB。使用首次適應(yīng)法處理上述作業(yè),并回答以下問題。(1) 畫出作業(yè)1、2、3進(jìn)入內(nèi)存后,內(nèi)存的分布情況。(2) 畫出作業(yè)1、3完成后,內(nèi)存的分布情況。(3) 畫出作業(yè)4、5進(jìn)入內(nèi)存后,內(nèi)存的分布情況。7 某系統(tǒng)采用頁式存儲管理策略,某進(jìn)程的邏輯地址空間為32頁,頁的大小為2KB,物理地址空間的大小是4MB。8 某頁式存儲管理系統(tǒng),內(nèi)存的大小為64KB,被分為16塊,塊號為0、1、2、15。設(shè)某進(jìn)程有4頁,其頁號為0、1、2、3,被分別裝入內(nèi)存的2、4、7、5,問:(1) 該進(jìn)程的大小是多少字節(jié)?(2) 寫出該進(jìn)程每一頁在內(nèi)存的起始地址。(3) 邏輯地址4146對應(yīng)的物理地址是多少?9 某段式存儲管理系統(tǒng)的段表如圖所示。 段號 段長 段始址015KB40KB18KB80KB210KB100KB請將邏輯地址0,137、1,9000、2,3600、3,230轉(zhuǎn)換成物理地址。答案1.答:存儲管理的基本任務(wù)是為多道程序的并發(fā)執(zhí)行提供良好的存儲器環(huán)境,它包括以下幾個方面。 (1)能讓沒到程序“各得其所”,并在不受干擾的環(huán)境中運行時,還可以使用戶從存儲空間的分配、保護(hù)等事物中解脫出來。 (2)向用戶提供更大的存儲空間,使更多的程序同時投入運行或是更大的程序能在小的內(nèi)存中運行。 (3)為用戶對信息的訪問、保護(hù)、共享以及程序的動態(tài)鏈接、動態(tài)增長提供方便。 (4)能使存儲器有較高的利用率。2. 答:頁式存儲管理系統(tǒng)產(chǎn)生的碎片,稱為內(nèi)碎片,它是指一個進(jìn)程的最后一頁沒有沾滿一個存儲塊而被浪費的存儲空間。減少內(nèi)碎片的辦法是減少頁的大小。3. 答:頁式存儲管理系統(tǒng)中,允許將進(jìn)程的每一頁離散地存儲在內(nèi)出的任何一個物理頁面上,為保證進(jìn)程的正常運行,系統(tǒng)建立了頁表,記錄了進(jìn)城每一頁被分配在內(nèi)存的物理號。也表的功能是實現(xiàn)從頁號到物理塊的地址映射。 當(dāng)系統(tǒng)地址很大時,頁表也會變得非常大,它將占有相當(dāng)大的內(nèi)存空間。4. 答:動態(tài)鏈接是指進(jìn)程在運行時,只將進(jìn)程對應(yīng)的主程序段裝入內(nèi)存,并與主程序段鏈接上。通常一個大的程序是由一個主程序和若干個子陳旭以及一些數(shù)據(jù)段組成。而段式存儲管理方案中的段就是按用戶的邏輯段自然形成的,因此可實現(xiàn)動態(tài)鏈接。5. 答:(1)若使用上下界寄存器,上界寄存器的值是3A6BH,下界寄存器的值是3A6BH+25F3H=605EH,當(dāng)訪問內(nèi)存的地址大于605EH、小于3A6BH時產(chǎn)生越界中斷。 (2) 若使用地址、限長寄存器,地址寄存器的值是3A6BH,限長寄存器的值是25F3H,當(dāng)訪問內(nèi)存的地址小于3A6BH,超過3A6BH+25F3H=605EH時產(chǎn)生越界中斷。 7. (1)寫出邏輯地址的格式。 答:進(jìn)程的邏輯地址空間為32頁,故邏輯地址中的頁號需要5位(二進(jìn)制),由于每頁的大小為2KB,因此頁內(nèi)位移需用11位(二進(jìn)制)表示,這樣,邏輯地址格式如圖所示。 15 11 10 0頁號 頁內(nèi)位移 (2)該進(jìn)程的頁表有多少項?每項至少占多少位? 答:因為進(jìn)程的邏輯地址空間為32頁,因此該進(jìn)程的頁表項有32項。頁表中應(yīng)存儲每頁的塊號。因為物理地址空間大小是4MB,4MB的物理地址空間內(nèi)分成4MB/2KB=2K個塊,因此塊號部分需要11位(二進(jìn)制),所以頁表中每項占11位。8. (1)該進(jìn)程的大小是多少字節(jié)? 答:內(nèi)存的大小為64位,被分為16塊,所以塊的大小是64KB/16=4KB。因為塊的大小與頁面的大小相等,所以頁的大小是4KB。該進(jìn)程的大小是4X4KB=16KB. (2)寫出該進(jìn)程每一頁在內(nèi)存的起始地址。 答:因為進(jìn)程頁號為0、1、2、3,被分別裝入內(nèi)存的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對應(yīng)的物理地址是多少? 答:邏輯地址4146對應(yīng)的物理地址:4146/4096=1,50。邏輯地址4146對應(yīng)的頁號為1,頁內(nèi)位移為50。查找頁表,得知頁號為1的存儲塊號為4,所以邏輯地址4146對應(yīng)的物理跨地址是:4X4096+50=16434。9. 答:(1)對于邏輯地址0,137,段號為0,段內(nèi)位移為137。查段表的0項得到該段的段始址為40KB段長為15KB。由于段號0小于進(jìn)程的總段數(shù),故段號合法;段內(nèi)位移137小于段長15KB,故段內(nèi)地址合法。因此可得到物理地址為:40KB+137B=40960B+137B=41097B。 (2)對于邏輯地址1,9000,段號為1,段內(nèi)位移為9000。查段表的1項得到該段的段始址為80KB,段長為8KB。由于段號1小于進(jìn)程的總數(shù) (3)對于邏輯地址2,3600,段號為2,段內(nèi)位移為3600。差段表的2項得到該段的段始址為100KB,段長為10KB,故段內(nèi)地址合法。因此可得到物理地址為:100KB+3600B=102400B+3600B=106000B。第六章 虛擬存儲管理思考與練習(xí)題1 試說明缺頁與一般中段的主要區(qū)別。2 局布置換和全局置換有何區(qū)別?在多道程序系統(tǒng)中建議使用哪一種?3 虛擬存儲的特征是什么?虛擬存儲器的容量受到哪兩個方面的限制?4 已知頁面走向是1、2、1、3、1、2、4、2、1、3、4,且進(jìn)程開始執(zhí)行時,內(nèi)存中沒有頁面,若給該進(jìn)程分配2個物理塊,當(dāng)采用以下算法時的缺頁率是多少?(1) 先進(jìn)先出置換算法。(2) 假如有一種頁面置換算法,它總是淘汰剛使用過的頁面。5 在請求頁式存儲管理系統(tǒng)中,使用先進(jìn)先出(FIFO)頁面置換算法,會產(chǎn)生一種奇怪的現(xiàn)象:分配給進(jìn)程的頁數(shù)越多,進(jìn)程執(zhí)行時的卻也次數(shù)反而越高。試舉例說明這一現(xiàn)象。6 某請求頁式系統(tǒng)中,頁的大小為100字,一個程序的大小為1200字,可能的訪問序列如下:10、205、110、40、314、432、320、225、80、130、272、420、128,若系統(tǒng)采用LRU置換算法,當(dāng)分配給該進(jìn)程的物理塊數(shù)為3時,給出進(jìn)程駐留的各個頁面的變化情況、頁面淘汰情況及缺頁次數(shù)。7 在一個采用局部置換策略的請求頁式系統(tǒng)中,分配中給進(jìn)程的物理塊數(shù)為4,其中存放的4個頁面的情況如表。當(dāng)發(fā)生缺頁時,分別采用下列頁面置換算法時,講置換哪一頁?并解釋原因。 進(jìn)程4個頁面的情況頁號 存儲塊號 加載時間 訪問時間 訪問位 修改位0 2 30 160 0 1 1 1 160 157 0 0 2 0 10 162 1 0 3 3 220 165 1 1OPT(最佳)置換算法;FIFO(先進(jìn)先出)置換算法;LRU(最近最少使用)置換算法;Clock置換算法。某虛擬存儲器的用戶空間有32個頁面,每頁1KB,內(nèi)存大小為16KB,假設(shè)某時刻系統(tǒng)為用戶的第0、1、2、3頁分配得物理塊號是5、10、4、7,而該用戶進(jìn)程的長度是6頁。試將以下16進(jìn)制的虛擬地址轉(zhuǎn)換成物理地址。(1)0X0A5C(2)0X103C(3)0X257B(4)0X8A4C8 在請求頁式存儲管理系統(tǒng)中,頁面大小是100字節(jié),有一個50X50的數(shù)組按行連續(xù)存放,每個整數(shù)占2字節(jié)。將數(shù)組初始化的程序如下 程序A: int 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)生的中斷次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國鍍鋅波形梁護(hù)欄市場分析及競爭策略研究報告
- 2025至2030年中國金剛石產(chǎn)品市場分析及競爭策略研究報告
- 2025至2030年中國西服外包裝袋市場分析及競爭策略研究報告
- 2025至2030年中國肝絡(luò)欣丸市場分析及競爭策略研究報告
- 2025至2030年中國竹編果盤市場分析及競爭策略研究報告
- 2025至2030年中國電腦繡花機齒輪市場分析及競爭策略研究報告
- 2025至2030年中國爽足軟膏市場分析及競爭策略研究報告
- 2025至2030年中國活動腳手市場分析及競爭策略研究報告
- 2025至2030年中國槽型支架市場分析及競爭策略研究報告
- 2025至2030年中國無線紅外現(xiàn)場報警探測器市場分析及競爭策略研究報告
- 中國凈菜行業(yè)市場深度研究及發(fā)展趨勢預(yù)測報告
- 糖尿病飲食治療講課件
- 輸液反應(yīng)急救護(hù)理流程講課件
- 鋼結(jié)構(gòu)倉庫施工組織設(shè)計
- 變電站電氣設(shè)備管理制度
- 50篇短文搞定高考英語3500單詞
- 物業(yè)消防檢查培訓(xùn)課件
- 專題 完形填空 七年級英語下冊期末復(fù)習(xí)考點培優(yōu)專項北師大版(2024版)(含答案解析)
- 2025至2030年中國彩涂鋁材行業(yè)市場動態(tài)分析及發(fā)展趨向研判報告
- 2025年四川省內(nèi)江市中考數(shù)學(xué)試題【含答案解析】
- 拉薩市墨竹工卡縣思金拉措小學(xué)-2025年春季英語教研組工作總結(jié)-一路求索不停歇【課件】
評論
0/150
提交評論