計(jì)算機(jī)操作系統(tǒng)答案 郁紅英 李春強(qiáng)著
《計(jì)算機(jī)操作系統(tǒng)答案 郁紅英 李春強(qiáng)著》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)操作系統(tǒng)答案 郁紅英 李春強(qiáng)著(21頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1. 什么是操作系統(tǒng)?它的主要功能是什么? 答:操作系統(tǒng)是用來(lái)管理計(jì)算機(jī)系統(tǒng)的軟、硬件資源,合理地組織計(jì)算機(jī)的工作流程, 以方便用戶使用的程序集合; 其主要功能有進(jìn)程管理、存儲(chǔ)器管理、設(shè)備管理和文件管理功能。 2. 什么是多道程序設(shè)計(jì)技術(shù)?多道程序設(shè)計(jì)技術(shù)的主要特點(diǎn)是什么? 答:多道程序設(shè)計(jì)技術(shù)是把多個(gè)程序同時(shí)放入內(nèi)存,使它們共享系統(tǒng)中的資源; 特點(diǎn):(1)多道,即計(jì)算機(jī)內(nèi)存中同時(shí)存放多道相互獨(dú)立的程序; (2)宏觀上并行,是指同時(shí)進(jìn)入系統(tǒng)的多道程序都處于運(yùn)行過(guò)程中; (3)微觀上串行,是指在單處理機(jī)環(huán)境下,內(nèi)存中的多道程序輪流占有 CPU, 交替執(zhí)行。 3. 批處理系統(tǒng)是怎樣的一種
2、操作系統(tǒng)?它的特點(diǎn)是什么? 答:批處理操作系統(tǒng)是一種基本的操作系統(tǒng)類型。在該系統(tǒng)中,用戶的作業(yè)(包括程 序、數(shù)據(jù)及程序的處理步驟)被成批的輸入到計(jì)算機(jī)中,然后在操作系統(tǒng)的控制下, 用戶的作業(yè)自動(dòng)地執(zhí)行; 特點(diǎn)是:資源利用率高、系統(tǒng)吞吐量大、平均周轉(zhuǎn)時(shí)間長(zhǎng)、無(wú)交互能力。 4. 什么是分時(shí)系統(tǒng)?什么是實(shí)時(shí)系統(tǒng)?試從交互性、及時(shí)性、獨(dú)立性、多路性和可靠性 幾個(gè)方面比較分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)。 答:分時(shí)系統(tǒng):一個(gè)計(jì)算機(jī)和許多終端設(shè)備連接,每個(gè)用戶可以通過(guò)終端向計(jì)算機(jī)發(fā) 出指令,請(qǐng)求完成某項(xiàng)工作,在這樣的系統(tǒng)中,用戶感覺(jué)不到其他用戶的存在,好像 獨(dú)占計(jì)算機(jī)一樣。 實(shí)時(shí)系統(tǒng):對(duì)外部輸入的信息,實(shí)時(shí)系統(tǒng)能
3、夠在規(guī)定的時(shí)間內(nèi)處理完畢并作出反應(yīng)。 比較:(1)交互性:實(shí)時(shí)系統(tǒng)具有交互性,但人與系統(tǒng)的交互,僅限于訪問(wèn)系統(tǒng)中某 些特定的專用服務(wù)程序。它不像分時(shí)系統(tǒng)那樣向終端用戶提供數(shù)據(jù)處理、資源共享等 服務(wù)。實(shí)時(shí)系統(tǒng)的交互性要求系統(tǒng)具有連續(xù)人機(jī)對(duì)話的能力,也就是說(shuō),在交互的過(guò) 程中要對(duì)用戶得輸入有一定的記憶和進(jìn)一步的推斷的能力。 (2)及時(shí)性:實(shí)時(shí)系統(tǒng)對(duì)及時(shí)性的要求與分時(shí)系統(tǒng)類似,都以人們能夠接受的等待 時(shí)間來(lái)確定。而及時(shí)系統(tǒng)則對(duì)及時(shí)性要求更高。 (3)獨(dú)立性:實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)一樣具有獨(dú)立性。每個(gè)終端用戶提出請(qǐng)求時(shí),是 彼此獨(dú)立的工作、互不干擾。 (4)多路性:實(shí)時(shí)系統(tǒng)與分時(shí)一樣具有多路性。操作
4、系統(tǒng)按分時(shí)原則為多個(gè)終端用 戶提供服務(wù),而對(duì)于實(shí)時(shí)系統(tǒng),其多路性主要表現(xiàn)在經(jīng)常對(duì)多路的現(xiàn)場(chǎng)信息進(jìn)行采集 以及對(duì)多個(gè)對(duì)象或多個(gè)執(zhí)行機(jī)構(gòu)進(jìn)行控制。 (5)可靠性:分時(shí)系統(tǒng)雖然也要求可靠性,但相比之下,實(shí)時(shí)系統(tǒng)則要求系統(tǒng)高度 可靠。 5. 實(shí)時(shí)系統(tǒng)分為哪兩種類型? 答:實(shí)時(shí)控制系統(tǒng)、實(shí)時(shí)信息處理系統(tǒng)。 6. 操作系統(tǒng)的主要特征是什么? 答:并發(fā)性、共享性、虛擬性、不確定性。 7. 操作系統(tǒng)與用戶的接口有幾種?他們各自用在什么場(chǎng)合? 答:有兩種:命令接口、程序接口; 命令接口:分為聯(lián)機(jī)命令接口、脫機(jī)命令接口和圖形用戶界面接口,它是為方便用戶 控制自己的作業(yè)。 程序接口:又稱系統(tǒng)調(diào)用,是為用
5、戶在程序一級(jí)訪問(wèn)操作系統(tǒng)功能而設(shè)置的,是用戶 程序取得操作系統(tǒng)服務(wù)的唯一途徑,它由一組系統(tǒng)調(diào)用構(gòu)成,每個(gè)系統(tǒng)調(diào)用完成一個(gè) 特定的功能。 8. “操作系統(tǒng)是控制硬件的軟件”這一說(shuō)法確切嗎?為什么? 答:不正確,操作系統(tǒng)不僅僅在控制硬件,同時(shí)它還控制著計(jì)算機(jī)的軟件。所以說(shuō)操作 系統(tǒng)是控制硬件的軟件是不正確的。 9?設(shè)內(nèi)存中有三道程序,A, B, C,他們按A-B-C的先后次序執(zhí)行,它們進(jìn)行“計(jì)算” 和“1/0操作”的時(shí)間如表1-2所示,假設(shè)三道程序使用相同的I/O設(shè)備。 表 1-2 三道程序的操作時(shí)間 (1) 試畫出單道運(yùn)行時(shí)三道程序的時(shí)間關(guān)系圖,并計(jì)算完成三道程序要花多少時(shí)間。 A B
6、 B C C 計(jì)算 A B C :: I/O操作 ' 60 170 200 20 5^ 90 140 160 190 : 總時(shí)間=20+30+10+30+50+20+10+20+10=200 2) 試畫出多道運(yùn)行時(shí)三道程序的時(shí)間關(guān)系圖,并計(jì)算完成三道程序要花多長(zhǎng)時(shí)間。 程序A 程序B 程序C 總時(shí) 間=130 10. 將下列左右兩列詞連接起來(lái)形成意義最恰當(dāng)?shù)?5 對(duì)。 11. 選擇一個(gè)現(xiàn)代操作系統(tǒng),查找和閱讀相關(guān)的技術(shù)資料,寫一篇該操作系統(tǒng)如何運(yùn)行內(nèi) 存管理、存儲(chǔ)管理、設(shè)備管理和文件管理的文章。 習(xí)題二 1.操作系統(tǒng)中為什么要引入進(jìn)程的概念?為了實(shí)現(xiàn)并發(fā)進(jìn)
7、程之間的合作和協(xié)調(diào),以及 保證系統(tǒng)的安全,操作系統(tǒng)在進(jìn)程管理方面要做哪些工作? 答:(1)為了從變化的角度動(dòng)態(tài)地分析研究可以并發(fā)執(zhí)行的程序,真實(shí)地反應(yīng)系統(tǒng)的 獨(dú)立性、并發(fā)性、動(dòng)態(tài)性和相互制約,操作系統(tǒng)中就不得不引入“進(jìn)程”的概念; (2) 為了防止操作系統(tǒng)及其關(guān)鍵的數(shù)據(jù)結(jié)構(gòu),受到用戶程序有意或無(wú)意的破壞,通 常將處理機(jī)的執(zhí)行狀態(tài)分成核心態(tài)和用戶態(tài);對(duì)系統(tǒng)中的全部進(jìn)程實(shí)行有效地管理, 其主要表現(xiàn)是對(duì)一個(gè)進(jìn)程進(jìn)行創(chuàng)建、撤銷以及在某些進(jìn)程狀態(tài)之間的轉(zhuǎn)換控制, 2.試描述當(dāng)前正在運(yùn)行的進(jìn)程狀態(tài)改變時(shí),操作系統(tǒng)進(jìn)行進(jìn)程切換的步驟。 答:(1)就緒狀態(tài)f運(yùn)行狀態(tài)。處于就緒狀態(tài)的進(jìn)程,具備了運(yùn)行的條件,
8、但由于未 能獲得處理機(jī),故沒(méi)有運(yùn)行。 (2) 運(yùn)行狀態(tài)f就緒狀態(tài)。正在運(yùn)行的進(jìn)程,由于規(guī)定的時(shí)間片用完而被暫停執(zhí)行, 該進(jìn)程就會(huì)從運(yùn)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。 (3) 運(yùn)行狀態(tài)f阻塞狀態(tài)。處于運(yùn)行狀態(tài)的進(jìn)程,除了因?yàn)闀r(shí)間片用完而暫停執(zhí)行 外還有可能由于系統(tǒng)中的其他因素的影響而不能繼續(xù)執(zhí)行下去。 3.現(xiàn)代操作系統(tǒng)一般都提供多任務(wù)的環(huán)境,試回答以下問(wèn)題。 (1) 為支持多進(jìn)程的并發(fā)執(zhí)行,系統(tǒng)必須建立哪些關(guān)于進(jìn)程的數(shù)據(jù)結(jié)構(gòu)? 答:為支持進(jìn)程的并發(fā)執(zhí)行,系統(tǒng)必須建立“進(jìn)程控制塊PCB)”,PCB的組織 方式常用的是鏈接方式。 (2) 為支持進(jìn)程的狀態(tài)變遷,系統(tǒng)至少應(yīng)該供哪些進(jìn)程控制原語(yǔ)? 答:進(jìn)
9、程的阻塞與喚醒原語(yǔ)和進(jìn)程的掛起與激活原語(yǔ)。 (3) 當(dāng)進(jìn)程的狀態(tài)變遷時(shí),相應(yīng)的數(shù)據(jù)結(jié)構(gòu)發(fā)生變化嗎? 答:創(chuàng)建原語(yǔ):建立進(jìn)程的PCB,并將進(jìn)程投入就緒隊(duì)列。; 撤銷原語(yǔ):刪除進(jìn)程的PCB,并將進(jìn)程在其隊(duì)列中摘除; 阻塞原語(yǔ):將進(jìn)程PCB中進(jìn)程的狀態(tài)從運(yùn)行狀態(tài)改為阻塞狀態(tài),并將進(jìn)程投入 阻塞隊(duì)列; 喚醒原語(yǔ):將進(jìn)程PCB中進(jìn)程的狀態(tài)從阻塞狀態(tài)改為就緒狀態(tài),并將進(jìn)程從則 色隊(duì)列摘下,投入到就緒隊(duì)列中。 4. 什么是進(jìn)程控制塊?從進(jìn)程管理、中斷處理、進(jìn)程通信、文件管理、設(shè)備管理 及 存儲(chǔ)管理的角度設(shè)計(jì)進(jìn)程控制塊應(yīng)該包含的內(nèi)容。 答:(1)進(jìn)程控制塊是用來(lái)描述進(jìn)程本身的特性、進(jìn)程的狀態(tài)、進(jìn)
10、程的調(diào)度信息 及對(duì)資源的占有情況等的一個(gè)數(shù)據(jù)結(jié)構(gòu); (2)為了進(jìn)程管理,進(jìn)程控制塊包括以下幾方面。 a) 進(jìn)程的描述信息,包括進(jìn)程標(biāo)識(shí)符、進(jìn)程名等。 b) 進(jìn)程的當(dāng)前狀況。 c) 當(dāng)前隊(duì)列鏈接指針。 d) 進(jìn)程的家族關(guān)系。 為了中斷處理,進(jìn)程控制塊的內(nèi)容應(yīng)該包括處理機(jī)狀態(tài)信息和各種寄存器的內(nèi) 容。 為了內(nèi)存管理的需要,進(jìn)程控制塊的內(nèi)容應(yīng)該包括進(jìn)程使用的信號(hào)量、消息隊(duì) 列指針等。 為了設(shè)備管理,進(jìn)程控制塊的內(nèi)容應(yīng)該包括進(jìn)程占有資源的情況。 5?假設(shè)系統(tǒng)就緒隊(duì)列中有10個(gè)進(jìn)程,這10個(gè)進(jìn)程輪換執(zhí)行,每隔300ms輪換一次, CPU在進(jìn)程切換時(shí)所花費(fèi)的時(shí)間是10ms,試問(wèn)系統(tǒng)化在進(jìn)
11、程切換上的開銷占系統(tǒng)整個(gè) 時(shí)間的比例是多少? 答:因?yàn)槊扛?00ms換一次進(jìn)程,且每個(gè)進(jìn)程切換時(shí)所花費(fèi)的時(shí)間是10ms,則系統(tǒng)化 在進(jìn)程切換上的開銷占系統(tǒng)整個(gè)時(shí)間的比例是 10/(300+10)=% 6.試述線程的特點(diǎn)及其與進(jìn)程之間的關(guān)系。 答:(1)特點(diǎn):線程之間的通信要比進(jìn)程之間的通信方便的多;同一進(jìn)程內(nèi)的線程切 換也因?yàn)榫€程的輕裝而方便的多。同時(shí)線程也是被獨(dú)立調(diào)度的分配的; (2)線程與進(jìn)程的關(guān)系:線程和進(jìn)程是兩個(gè)密切相關(guān)的概念,一個(gè)進(jìn)程至少擁有一 個(gè)線程,進(jìn)程根據(jù)需要可以創(chuàng)建若干個(gè)線程。線程自己基本上不擁有資源,只擁有少 量必不可少的資源(線程控制塊和堆棧) 7.根據(jù)圖 2-1
12、8,回答以下問(wèn)題。 (1) 進(jìn)程發(fā)生狀態(tài)變遷 1、3、4、6、7的原因。 答:1表示操作系統(tǒng)把處于創(chuàng)建狀態(tài)的進(jìn)程移入就緒隊(duì)列;3表示進(jìn)程請(qǐng)求I/O 或等待某事件;4表示進(jìn)程用行的時(shí)間片用完;6表示I/O完成或事件完成;7 表示進(jìn)程完成。 (2) 系統(tǒng)中常常由于某一進(jìn)程的狀態(tài)變遷引起另一進(jìn)程也產(chǎn)生狀態(tài)變遷,這種變遷 稱為因果變遷。下述變遷是否為因果變遷:3~2,4~5,7~2,3~6,是說(shuō)明原因。 答:3-2是因果變遷,當(dāng)一個(gè)進(jìn)程從運(yùn)行態(tài)變?yōu)樽枞麘B(tài)時(shí),此時(shí)CPU空閑,系統(tǒng) 首先到高優(yōu)先級(jí)隊(duì)列中選擇一個(gè)進(jìn)程。 4-5是因果變遷,當(dāng)一個(gè)進(jìn)程運(yùn)行完畢時(shí),此時(shí)CPU空閑,系統(tǒng)首先到高優(yōu)先級(jí)隊(duì)
13、 列中選擇進(jìn)程,但如果高優(yōu)先級(jí)隊(duì)列為空,則從低優(yōu)先隊(duì)列中選擇一個(gè)進(jìn)程。 7-2是因果變遷,當(dāng)一個(gè)進(jìn)程運(yùn)行完畢時(shí),CPU空閑,系統(tǒng)首先到高優(yōu)先級(jí)隊(duì)列中 選擇一個(gè)進(jìn)程。 3-6不是因果變遷。一個(gè)進(jìn)程阻塞時(shí)由于自身的原因而發(fā)生的,和另一個(gè)進(jìn)程等待 的時(shí)間到達(dá)沒(méi)有因果關(guān)系。 (3)根據(jù)此進(jìn)程狀態(tài)轉(zhuǎn)換圖,說(shuō)明該系統(tǒng)CPU調(diào)度的策略和效果。 答:當(dāng)進(jìn)程調(diào)度時(shí),首先從高優(yōu)先級(jí)就緒隊(duì)列選擇一個(gè)進(jìn)程,賦予它的時(shí)間片為 100ms。如果高優(yōu)先級(jí)就緒隊(duì)列為空,則從低優(yōu)先級(jí)就緒隊(duì)列選擇進(jìn)程,并且賦予該進(jìn)程 的時(shí)間片為 500ms。 這種策略一方面照顧了短進(jìn)程,一個(gè)進(jìn)程如果在 100ms 運(yùn)行完畢它將退出系統(tǒng)
14、,更 主要的是照顧了 I/O量大的進(jìn)程,進(jìn)程因I/O進(jìn)入阻塞隊(duì)列,當(dāng)I/O完成后它就進(jìn)入了 高優(yōu)先級(jí)就緒隊(duì)列,在高優(yōu)先級(jí)就緒隊(duì)列等待的進(jìn)程總是優(yōu)于低優(yōu)先級(jí)就緒隊(duì)列的進(jìn)程。 而對(duì)于計(jì)算量較大的進(jìn)程,它的計(jì)算如果在100ms的時(shí)間內(nèi)不能完成,它將進(jìn)入低優(yōu)先 級(jí)就緒隊(duì)列,在這個(gè)隊(duì)列的進(jìn)程被選中的機(jī)會(huì)要少,只有當(dāng)高優(yōu)先級(jí)就緒隊(duì)列為空,才 從低優(yōu)先級(jí)就緒隊(duì)列選擇進(jìn)程,但對(duì)于計(jì)算量大的進(jìn)程,系統(tǒng)給予的適當(dāng)照顧時(shí)間片增 大為 500ms。 8.回答以下問(wèn)題。 (1) 若系統(tǒng)中沒(méi)有運(yùn)行進(jìn)程,是否一定沒(méi)有就緒進(jìn)程?為什么? 答:是,因?yàn)楫?dāng)CPU空閑時(shí),系統(tǒng)就會(huì)在就緒隊(duì)列里調(diào)度進(jìn)程,只有當(dāng)就緒隊(duì) 列為空時(shí),
15、系統(tǒng)中才沒(méi)有運(yùn)行程序。 (2) 若系統(tǒng)中既沒(méi)有運(yùn)行進(jìn)程,也沒(méi)有就緒進(jìn)程,系統(tǒng)中是否就沒(méi)有阻塞進(jìn)程?解 釋。 答:不一定,當(dāng)運(yùn)行的程序都因?yàn)檎?qǐng)求I /O或等待事件時(shí)而進(jìn)入阻塞,系統(tǒng)中 就沒(méi)有就緒進(jìn)程。 (3)如果系統(tǒng)采用優(yōu)先級(jí)調(diào)度策略,運(yùn)行的進(jìn)程是否一定是系統(tǒng)中優(yōu)先級(jí)最高的進(jìn) 程?為什么? 答:不一定,若優(yōu)先級(jí)高的進(jìn)程進(jìn)入阻塞狀態(tài)時(shí),而且優(yōu)先級(jí)高的就緒隊(duì)列里 沒(méi)有等待的進(jìn)程,這時(shí)就會(huì)調(diào)度優(yōu)先級(jí)低的就緒隊(duì)列的進(jìn)程。 9.假如有以下程序段,回答下面的問(wèn)題。 S1: a=3-x; S2: b=2*a; S3: c=5+a; (1) 并發(fā)程序執(zhí)行的Bernstein條件是什么? 答:若
16、 P1 與 P2R 并發(fā)執(zhí)行,當(dāng)且僅當(dāng) R(P1) GW(P2) U R(P2) n W(P1) U W(P1) G W(P2) = {}時(shí)才滿足。 (2) 試畫圖表示它們執(zhí)行時(shí)的先后次序。 (3) 利用Bernstein條件證明,S1、S2和S3哪兩個(gè)可以并發(fā)執(zhí)行,哪兩個(gè)不能。 答:R(s1) = {x},W(s1) = {a};R(s2) = {a},W(s2) = ;R(s3) = {a},W(s3) = {c}; (1) .R(s1) GW(s2) UR(s2) GW(s1) UW(s1) GW(s2) = {a},則 s1 與 s2 不能并發(fā)執(zhí)行; (2) . R(s
17、1) GW(s3) UR(s3) GW(s1) UW(s1) GW(s3) = {a},則 s1 與 s3 不能并發(fā)執(zhí)行; (3) . R(s2) GW(s3) UR(s3) GW(s2) UW(s2) GW(s3) = {},則 s2 與 s3 可以并發(fā)執(zhí)行。 習(xí)題三 1.一下進(jìn)程之間存在相互制約關(guān)系嗎?若存在,是什么制約關(guān)系?為什么? (1) 幾個(gè)同學(xué)去圖書館借同一本書。 答:互斥關(guān)系;因?yàn)樗麄円柰槐緯?,不可能同時(shí)借到,所以互斥。 (2) 籃球比賽中兩隊(duì)同學(xué)爭(zhēng)搶籃板球。 答:互斥關(guān)系;因?yàn)闋?zhēng)搶同一個(gè)籃板,存在互斥關(guān)系。 (3) 果汁流水線生產(chǎn)中搗碎、消毒、灌裝、裝箱等各
18、道工序。 答:同步關(guān)系;他們必須相互協(xié)作才能使進(jìn)程圓滿完成。 (4) 商品的入庫(kù)出庫(kù)。 答:同步關(guān)系;因?yàn)樯唐烦鰩?kù)可以為入庫(kù)提供空間。 (5) 工人做工與農(nóng)民種糧。 答:沒(méi)有制約關(guān)系。 2.在操作系統(tǒng)中引入管程的目的是什么?條件變量的作用是什么? 答:用信號(hào)量可以實(shí)現(xiàn)進(jìn)程的同步于互斥,但要設(shè)置許多信號(hào)量,使用大量的 P、V 操作,而且還要仔細(xì)安排P操作的排列次序,否則將會(huì)出現(xiàn)錯(cuò)誤的結(jié)果或是死鎖現(xiàn)象。 為了解決這些問(wèn)題引進(jìn)了管程; 條件變量的作用是使進(jìn)程不僅能被掛起,而且當(dāng)條件滿足且管程再次可用時(shí),可以恢 復(fù)該進(jìn)程并允許它在掛起點(diǎn)重新進(jìn)入管程。 3. 說(shuō)明P、V操作為什么要設(shè)計(jì)
19、成原語(yǔ)。 答:用信號(hào)量S表示共享資源,其初值為1表示有一個(gè)資源。設(shè)有兩個(gè)進(jìn)程申請(qǐng)?jiān)撡Y 源,若其中一個(gè)進(jìn)程先執(zhí)行P操作。P操作中的減1操作有3跳及其指令組成:去S 送寄存器R;R-1送S。若P操作不用原語(yǔ)實(shí)現(xiàn),在執(zhí)行了前述三條指令中的2條,即 還未執(zhí)行R送S時(shí)(此時(shí)S值仍為1),進(jìn)程被剝奪CPU,另一個(gè)進(jìn)程執(zhí)行也要執(zhí)行P 操作,執(zhí)行后S的值為0,導(dǎo)致信號(hào)量的值錯(cuò)誤。正確的結(jié)果是兩個(gè)進(jìn)程執(zhí)行完P(guān)操 作后,信號(hào)量S的值為-1,進(jìn)程阻塞。 4. 設(shè)有一個(gè)售票大廳,可容納200人購(gòu)票。如果廳內(nèi)不足200人則允許進(jìn)入,超過(guò)則 在廳外等候;售票員某時(shí)只能給一個(gè)購(gòu)票者服務(wù),購(gòu)票者買完票后就離開。試問(wèn):
20、 (1) 購(gòu)票者之間是同步關(guān)系還是互斥關(guān)系? 答:互斥關(guān)系。 (2) 用P、V操作描述購(gòu)票者的工作過(guò)程。 semaphore empty=200; semaphore mutex=1; semaphore waiting=0; void buy() { p(waiting); p(mutex); 亍亜 買票; v(mutex); v(empty); } void waiting() { p(empty); 等待; waiting++; } 5?進(jìn)程之間的關(guān)系如圖3-16所示,試用P、V操作描述它們之間的同步。 semaphore A,B,C,D,E,F
21、,G=0; {S1,V(A),V(B)}; {P(A),S2,V(C)}; {P(B),S3,V(D),V(E)}; {P(D),S4,V(F)}; {P(E),S5,V(G)}; {P(C),P(F),P(G),S6}; 6.有4個(gè)進(jìn)程P1、P2、P3、P4共享一個(gè)緩沖區(qū),進(jìn)程P1向緩沖區(qū)存入消息,進(jìn)程P2、 P3、P4從緩沖區(qū)中取消息,要求發(fā)送者必須等三個(gè)進(jìn)程都取過(guò)本消息后才能發(fā)送下 調(diào)消息。緩沖區(qū)內(nèi)每次只能容納一個(gè)消息,用P、V操作描述四個(gè)進(jìn)程存取消息的情 況。 答:semaphore pl=0; semaphore p2, p3,p4=l; semaphore cou
22、t=0;semaphore mutex=1; void main() {P(p2);P(p3);P(4); V(cout);} write p1() {P(p1);P(metux);P(cout); 存入消息; V(p1);V(metux);} Read p2() { P(mutex);P(p1); 讀消息; V(p1);V(p2);V(metux);} Read p3() { P(mutex);P(p1); 讀消息; V(p1);V(p3);V(metux);} Read p4() { P(mutex);P(p1); 讀消息; V(p1);V(p4); V
23、(metux);} 7?分析生產(chǎn)者一一消費(fèi)者問(wèn)題中多個(gè)P操作顛倒引起的后果。 答: semaphore mutex=1; semaphore empty=n; semaphore full=0; int i,j; ITEM buffer[n]; ITEM data_p,data_c; void producer。/ *生產(chǎn)者進(jìn)程*/ {while(true) { P(mutex); P(empty); buffer[i]=data_p; i=(i+1)%n; V(mutex); V(full);} } void consumer() /*消費(fèi)者進(jìn)程*/ {while(
24、true) { P(mutex) ; P(full); data_c=buffer[j]; j=(j+1)%n; V(mutex); V(empty); } } 若把生產(chǎn)者進(jìn)程的P操作顛倒,消費(fèi)者進(jìn)程的P操作顛倒(如圖),則生產(chǎn)者進(jìn)程執(zhí) 行到V(mutex)時(shí),消費(fèi)者就可以執(zhí)行P(mutex)但由于full=0,消費(fèi)者進(jìn)程不可執(zhí) 行P(full);當(dāng)生產(chǎn)者進(jìn)程執(zhí)行完V(full)后,full=l,但由于mutex=0,消費(fèi)者進(jìn)程 無(wú)法執(zhí)行,造成死鎖。 8.讀者——寫者問(wèn)題中寫者優(yōu)先的實(shí)現(xiàn)。 答: semaphore Wmutex,Rmutex=1; int Rcoun
25、t=0; semaphore mutex=1 void reader() /*讀者進(jìn)程*/ {while(true) {P(mutex); P(Rmutex); If(Rcount==0) P(wmutex); Rcount=Rcount+1 ; V(Rmutex); V(mutex); ? ? ? ■ 7 read;/ *執(zhí)行讀操作*/ ? ? ? ? P(Rmutex); Rcount=Rcount-1; if (Rcount==0) V(wmutex); V(Rmutex);} } void writer() /*寫者進(jìn)程*/ {while(true) {P(mutex)
26、; P(wmutex); ? ? ? ? write; /*執(zhí)行寫操作*/ ? ? ? ? V(Wmutex); V(mutex); }} 9.寫一個(gè)用信號(hào)量解決哲學(xué)家進(jìn)餐問(wèn)題不產(chǎn)生鎖死的算法 semaphore chopstick[5]={1,1,1,1,1}; semaphore mutex=1; void philosopher (){while(true) {P(mutex); P(chopstick[i]); P(chopstick[(i+1)%5]); V(mutex); ? ? ? ? 9 eat; ? ? ? ? V(chopstick[i]); V
27、(chopstick[(i+1)%5]); think; …;} } 10. 一個(gè)文件可有若干個(gè)不同的進(jìn)程所共享,每個(gè)進(jìn)程具有唯一的編號(hào)。假定文件可 由滿足下列限制的若干個(gè)不同的進(jìn)程同時(shí)訪問(wèn),并發(fā)訪問(wèn)該文件的哪些進(jìn)程的編號(hào)的 總和不得大于n設(shè)計(jì)一個(gè)協(xié)調(diào)對(duì)該文件訪問(wèn)的管程。 答: 11. 用管程解決讀者——寫者問(wèn)題,并采用公平原則。 答: 習(xí)題四 1. 某進(jìn)程被喚醒后立刻投入運(yùn)行,能說(shuō)明該系統(tǒng)采用的是可剝奪調(diào)度算 法嗎? 答:不能說(shuō)明,因?yàn)槿绻F(xiàn)在就緒隊(duì)列中沒(méi)有進(jìn)程,那么喚醒的進(jìn)程會(huì)立 刻投入運(yùn)行。 2. 在哲學(xué)家進(jìn)餐問(wèn)題中,如果將先拿起左邊筷子的哲學(xué)家稱為左撇子, 先
28、拿起右邊筷子的哲學(xué)家稱為右撇子。請(qǐng)說(shuō)明在同時(shí)存在左、右撇子的 情況下,任何的就坐安排都不能產(chǎn)生鎖死。 答:任何的就坐安排都不會(huì)構(gòu)成環(huán)路,這就符合避免死鎖的條件,所以不 會(huì)產(chǎn)生死鎖。 3. 系統(tǒng)中有5個(gè)資源被4 個(gè)進(jìn)程所共享,如果每個(gè)進(jìn)程最多需要 2個(gè)這 種資源,試問(wèn)系統(tǒng)是否會(huì)產(chǎn)生鎖死? 答:不會(huì)產(chǎn)生死鎖;因?yàn)橐驗(yàn)橘Y源數(shù)可以滿足進(jìn)程的需要,當(dāng)其中的一個(gè) 進(jìn)程爭(zhēng)取到剩下的一個(gè)資源可以執(zhí)行,當(dāng)執(zhí)行完成以后會(huì)釋放資源,供其 他進(jìn)程使用,所以不會(huì)產(chǎn)生死鎖。 4. 計(jì)算機(jī)系統(tǒng)有8臺(tái)磁帶機(jī),由N個(gè)進(jìn)程競(jìng)爭(zhēng)使用,每個(gè)進(jìn)程最多需要 3臺(tái)。問(wèn):N為多少時(shí),系統(tǒng)沒(méi)有死鎖的危險(xiǎn)? 答:當(dāng)n為1、2、3時(shí)
29、,沒(méi)有死鎖的危險(xiǎn);因?yàn)楫?dāng)n小于3時(shí),每個(gè)進(jìn)程 分配 2 臺(tái)磁帶機(jī),還有磁帶機(jī)剩余,那么當(dāng)其中的一個(gè)進(jìn)程得到剩余的磁 帶機(jī)則可運(yùn)行,運(yùn)行結(jié)束后會(huì)釋放磁帶機(jī),供其他進(jìn)程使用,系統(tǒng)不會(huì)有 死鎖的危險(xiǎn);當(dāng)n為4時(shí),每臺(tái)分配2臺(tái)時(shí)沒(méi)有剩余,則會(huì)產(chǎn)生死鎖,當(dāng) 大于 5 時(shí)同樣會(huì)死鎖。 5. 系統(tǒng)有 5個(gè)進(jìn)程,它們的到達(dá)時(shí)間和服務(wù)時(shí)間如表 4-8所示。新進(jìn)程 (沒(méi)有運(yùn)行過(guò))與老進(jìn)程(運(yùn)行過(guò)的進(jìn)程)的條件相同時(shí),假定系統(tǒng)選 新進(jìn)程運(yùn)行。 表 4-8 進(jìn)程情況 若按先來(lái)先服務(wù)(FCFS)、時(shí)間片輪法(時(shí)間片q=l)、短進(jìn)程優(yōu)先(SPN)、 最短剩余時(shí)間優(yōu)先(SRT,時(shí)間片q=l)、響應(yīng)比高者優(yōu)
30、先(HRRN)及多級(jí) 反饋隊(duì)列(MFQ,第一個(gè)隊(duì)列的時(shí)間片為1,第i (i>l)個(gè)隊(duì)列的時(shí)間片 q=2 (i-1))算法進(jìn)行CPU調(diào)度,請(qǐng)給出各個(gè)進(jìn)程的完成時(shí)間、周轉(zhuǎn)時(shí)間、 帶權(quán)周轉(zhuǎn)時(shí)間,及所有的進(jìn)程的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。 答: 6? 設(shè)系統(tǒng)中有5個(gè)進(jìn)程P1、P2、P3、P4、P5,有3種類型的資源A、B、 C,其中A資源的數(shù)量是17, B資源的數(shù)量是5, C資源的數(shù)量是20, T0 時(shí)刻系統(tǒng)狀態(tài)如表4-9所示。 表4-9 TO時(shí)刻系統(tǒng)狀態(tài) 進(jìn)程 已分配資源數(shù)量 最大資源需求量 仍然需求資源數(shù) A B C A B C A B C P1 2
31、1
2
5
5
9
3
4
7
P2
4
0
2
5
3
6
1
3
4
P3
4
0
5
4
0
11
0
0
6
P4
2
0
4
4
2
5
2
2
1
P5
3
1
4
4
2
4
1
1
0
(1) 計(jì)算每個(gè)進(jìn)程還可能需要的資源,并填入表的“仍然需要資源數(shù)”
的欄目。
(2) TO時(shí)刻系統(tǒng)是否處于安全狀態(tài)?為什么?
答:處于安全狀態(tài),因?yàn)樾虼鮨 32、什么?
答:不實(shí)施資源分配,因?yàn)閷⑺匈Y源都分配給p2時(shí),p2的C是5, 不能夠運(yùn)行,進(jìn)入死鎖。
⑷ 如果T0時(shí)刻,若進(jìn)程P4又有新的資源請(qǐng)求⑵0,1),是否實(shí)施 資源分配?為什么?
答:實(shí)施;因?yàn)閜4請(qǐng)求資源后,存在安全狀態(tài)。
⑸ 在(4)的基礎(chǔ)上,若進(jìn)程P1又有新的資源請(qǐng)求(0,2,0),是否
實(shí)施資源分配?為什么?
答:不實(shí)施;
習(xí)題五
1.存儲(chǔ)管理的基本任務(wù)是為多道程序的并發(fā)執(zhí)行提供良好的存儲(chǔ)環(huán)境,這包括哪些方 面?
答:存儲(chǔ)管理的基本任務(wù)是為多道程序的并發(fā)執(zhí)行提供良好的存儲(chǔ)器環(huán)境,它包括以下 幾個(gè)方面。
(1)能讓沒(méi)到程序“各得其所”,并在不受干擾的環(huán)境中運(yùn)行時(shí), 33、還可以使用戶從存 儲(chǔ)空間的分配、保護(hù)等事物中解脫出來(lái)。
(2)向用戶提供更大的存儲(chǔ)空間,使更多的程序同時(shí)投入運(yùn)行或是更大的程序能在小 的內(nèi)存中運(yùn)行。
(3)為用戶對(duì)信息的訪問(wèn)、保護(hù)、共享以及程序的動(dòng)態(tài)鏈接、動(dòng)態(tài)增長(zhǎng)提供方便。
(4)能使存儲(chǔ)器有較高的利用率。
2.頁(yè)式存儲(chǔ)管理系統(tǒng)是否產(chǎn)生碎片?如何應(yīng)對(duì)此現(xiàn)象? 答:頁(yè)式存儲(chǔ)管理系統(tǒng)產(chǎn)生的碎片,稱為內(nèi)碎片,它是指一個(gè)進(jìn)程的最后一頁(yè)沒(méi)有沾 滿一個(gè)存儲(chǔ)塊而被浪費(fèi)的存儲(chǔ)空間。減少內(nèi)碎片的辦法是減少頁(yè)的大小。
3.在頁(yè)式存儲(chǔ)管理系統(tǒng)中頁(yè)表的功能是什么?當(dāng)系統(tǒng)的地址空間很大時(shí)會(huì)給頁(yè)表的設(shè) 計(jì)帶來(lái)哪些新的問(wèn)題?
答:頁(yè)式存儲(chǔ)管理系統(tǒng)中,允許將進(jìn)程 34、的每一頁(yè)離散地存儲(chǔ)在內(nèi)出的任何一個(gè)物理頁(yè)面 上,為保證進(jìn)程的正常運(yùn)行,系統(tǒng)建立了頁(yè)表,記錄了進(jìn)程每一頁(yè)被分配在內(nèi)存的物 理號(hào)。頁(yè)表的功能是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊的地址映射;
當(dāng)系統(tǒng)地址很大時(shí),頁(yè)表也會(huì)變得非常大,它將占有相當(dāng)大的內(nèi)存空間。 4.什么是動(dòng)態(tài)鏈接?用哪種存儲(chǔ)管理方案可以實(shí)現(xiàn)動(dòng)態(tài)鏈接? 答:動(dòng)態(tài)鏈接是指進(jìn)程在運(yùn)行時(shí),只將進(jìn)程對(duì)應(yīng)的主程序段裝入內(nèi)存,并與主程序段鏈 接上。通常一個(gè)大的程序是由一個(gè)主程序和若干個(gè)子程序以及一些數(shù)據(jù)段組成。而段 式存儲(chǔ)管理方案中的段就是按用戶的邏輯段自然形成的,因此可實(shí)現(xiàn)動(dòng)態(tài)鏈接。
5?某進(jìn)程的大小為25F3H字節(jié),被分配到內(nèi)存的3A6BH字節(jié)開始的地址。但 35、進(jìn)程運(yùn)行 時(shí),若使用上、下界寄存器,寄存器的值是多少?如何進(jìn)行存儲(chǔ)保護(hù)?若使用地址、 限長(zhǎng)寄存器,寄存器的值是多少?如何進(jìn)行存儲(chǔ)保護(hù)?
答:(1 )若使 用上 下界寄存器,上界寄存器的值 是 3A6BH, 下界寄存器的值是 3A6BH+25F3H=605EH,當(dāng)訪問(wèn)內(nèi)存的地址大于605EH、小于3A6BH時(shí)產(chǎn)生越界中斷。
(2)若使用地址、限長(zhǎng)寄存器,地址寄存器的值是3A6BH,限長(zhǎng)寄存器的值是25F3H, 當(dāng)訪問(wèn)內(nèi)存的地址小于3A6BH,超過(guò)3A6BH+25F3H=605EH時(shí)產(chǎn)生越界中斷。
6.在系統(tǒng)中采用可變分區(qū)存儲(chǔ)管理,操作系統(tǒng)占用低地址部分的126KB,用戶區(qū)的大小 是386K 36、B,采用空閑分區(qū)表管理空閑分區(qū)。若分配時(shí)從高地址開始,對(duì)于下述的作業(yè) 申請(qǐng)序列:作業(yè)1申請(qǐng)80KB;作業(yè)2申請(qǐng)56KB;作業(yè)3申請(qǐng)120KB;作業(yè)1完成; 作業(yè)3完成;作業(yè)4申請(qǐng)156KB;作業(yè)5申請(qǐng)80KB。使用首次適應(yīng)法處理上述作業(yè), 并回答以下問(wèn)題。
(1) 畫出作業(yè)1、2、3進(jìn)入內(nèi)存后,內(nèi)存的分布情況。
空
3
2
1
511
126 125 0
130 KB 120KB 56KB80KB,
答:
2) 畫出作業(yè) 1、3 完成后,內(nèi)存的分布情況。
511 126 125 0
空
2
空
250KB56KB 80KB
答:
3) 畫出作業(yè) 37、 4、5 進(jìn)入內(nèi)存后,內(nèi)存的分布情況。
511 126 125 0
空
5
4
2
空
14KB 80kB56Kb 56KB 80KB
7?某系統(tǒng)采用頁(yè)式存儲(chǔ)管理策略,某進(jìn)程的邏輯地址空間為32頁(yè),頁(yè)的大小為2KB, 物理地址空間的大小是 4MB。
(1) 寫出邏輯地址的格式。
(2) 該進(jìn)程的頁(yè)表有多少項(xiàng)?每項(xiàng)至少占多少位? 答:因?yàn)檫M(jìn)程的邏輯地址空間為32頁(yè),因此該進(jìn)程的頁(yè)表項(xiàng)有32 項(xiàng)。頁(yè)表中應(yīng)存儲(chǔ) 每頁(yè)的塊號(hào)。因?yàn)槲锢淼刂房臻g大小是 4MB,4MB 的物理地址空間內(nèi)分成 4MB/2KB=2K 個(gè)塊,因此塊號(hào)部分需要 11位(二進(jìn)制),所以頁(yè)表中每項(xiàng)占 11位 38、。
(3) 如果物理地址空間減少一半,頁(yè)表的結(jié)構(gòu)有何變化? 答:當(dāng)減少一半時(shí),有 2MB/2KB=1K 個(gè)塊,因此塊號(hào)部分需要 10 位(二進(jìn)制),所以 頁(yè)表中每項(xiàng)占 10 位。
8?某頁(yè)式存儲(chǔ)管理系統(tǒng),內(nèi)存的大小為64KB,被分為16塊,塊號(hào)為0、1、2、……、 15。設(shè)某進(jìn)程有4頁(yè),其頁(yè)號(hào)為0、1、2、3,被分別裝入內(nèi)存的2、4、7、5,問(wèn):
(1) 該進(jìn)程的大小是多少字節(jié)?
答:總共64KB,16頁(yè),則每頁(yè)有4KB。該進(jìn)程有四頁(yè),則進(jìn)程的大小為16KB。
答:
頁(yè)號(hào)
塊號(hào)才
?始地址
0
2
8KB
1
4
16KB
2
7
28KB
3
5
35 39、KB
(2) 寫出該進(jìn)程每一頁(yè)在內(nèi)存的起始地址。
3) 邏輯地址4146對(duì)應(yīng)的物理地址是多少?
答:4146 除以 4096 得 1 余 50,這頁(yè)號(hào)為 1,頁(yè)內(nèi)位移為 50;1 對(duì)應(yīng)于 4,這
物理地址為 4*4096+50=16434b。
9.某段式存儲(chǔ)管理系統(tǒng)的段表如圖所示。
請(qǐng)將邏輯地址[0,137]、[1,9000]、[2,3600]、[3,230]轉(zhuǎn)換成物理地址。
答:[0,137]: 40* 1024+137=41097B [1,9000]:80*1024+9000=90920B [2,3600]:100*1024+3600=106000B [3,230 40、]不合法
習(xí)題七
1.?dāng)?shù)據(jù)傳輸控制方式有哪幾種?試比較它們的優(yōu)缺點(diǎn)。
答:數(shù)據(jù)轉(zhuǎn)送控制方式有程序直接控制方式、中斷控制方式、DMA控制方式和通道方 式四種。
程序直接控制方式:優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單,不需要硬件的支持;
缺點(diǎn):(1).CPU與外設(shè)只能串行工作;
(2) .CPU在一段時(shí)間內(nèi)只能與一臺(tái)外設(shè)交換數(shù)據(jù)信息;
(3) .由于程序直接控制方式是依靠測(cè)試設(shè)備的狀態(tài)來(lái)控制數(shù)據(jù)傳遞的,因此無(wú)法發(fā)現(xiàn)和 處理由于設(shè)備和其他硬件所產(chǎn)生的錯(cuò)誤。
中斷控制方式:優(yōu)點(diǎn):提高了 CPU的利用率;
缺點(diǎn):(1).在進(jìn)程傳送數(shù)據(jù)的過(guò)程中,發(fā)生中斷的次數(shù)可能很多,這將消耗CPU大量處 理時(shí)間; (2). 41、計(jì)算機(jī)中通常配置各種各樣的外設(shè),如果這些外設(shè)都通過(guò)中斷的方式進(jìn)行數(shù)據(jù)傳遞, 由于中斷次數(shù)過(guò)多將使CPU無(wú)法及時(shí)響應(yīng)中斷,造成數(shù)據(jù)丟失。
DMA控制方式:優(yōu)點(diǎn):(1).數(shù)據(jù)傳輸?shù)幕締挝粸閿?shù)據(jù)塊;
(2) .緊在開始和結(jié)束才需要CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制之下完成的;
(3) .所傳送的數(shù)據(jù)是從設(shè)備直接到內(nèi)存或者從內(nèi)存直接到設(shè)備。
通道方式:優(yōu)點(diǎn):把對(duì)一個(gè)數(shù)據(jù)塊的讀(寫)干預(yù)減少到對(duì)一組數(shù)據(jù)塊的讀(寫)干預(yù) 2.何為設(shè)備的獨(dú)立性?如何實(shí)現(xiàn)設(shè)備的獨(dú)立性?
答:設(shè)備獨(dú)立性是指用戶程序獨(dú)立于具體使用的物理設(shè)備;此時(shí),用戶使用邏輯設(shè) 備名申請(qǐng)使用某列物理設(shè)備。當(dāng)系統(tǒng)中有多臺(tái)該烈性 42、的設(shè)備是,系統(tǒng)可將其中的任意一 臺(tái)分配給請(qǐng)求進(jìn)程,而不局限于某一臺(tái)制定的設(shè)備。這樣,可顯著的改善資源的利用率 即可使用性。設(shè)備獨(dú)立使用用戶獨(dú)立于設(shè)備的烈性。如進(jìn)行輸出時(shí),亦可以使用現(xiàn)實(shí)終 端,也可以使用打印機(jī)。有了這種獨(dú)立性,就可以很方便的進(jìn)行輸入/輸出重定向。 3.什么是緩沖?為什么要引入緩沖?操作系統(tǒng)如何實(shí)現(xiàn)緩沖技術(shù)? 答:緩沖是在兩個(gè)不同速度設(shè)備之間傳輸信息時(shí),用于平滑傳輸過(guò)程的一種手段。
(1) 換屆CPU與I/O設(shè)備之間的速度不匹配的矛盾。
(2) 減少中斷CPU的次數(shù)。
(3)提高CPU與I/O設(shè)備之間的并行性。
4.設(shè)備分配中為什么可能出現(xiàn)死鎖?
答:安全分配方式:在某 43、些操作系統(tǒng)中,一個(gè)進(jìn)程只能提供一個(gè)I/O請(qǐng)求。也就是 說(shuō),執(zhí)行進(jìn)程向系統(tǒng)提出I/O請(qǐng)求后邊立即進(jìn)入等待狀態(tài),直到I/O請(qǐng)求完成后才被喚 醒。這樣系統(tǒng)對(duì)設(shè)備的分配比較安全,不會(huì)出現(xiàn)死鎖。但這種方式對(duì)進(jìn)程來(lái)說(shuō),因 CPU 與I/O設(shè)備是串行工作的,這使得該進(jìn)程的推進(jìn)速度緩慢; 不安全分配方式:當(dāng)進(jìn)程發(fā)出 I/O 請(qǐng)求后不阻塞,而是繼續(xù)運(yùn)行,當(dāng)需要時(shí)有可能接著 發(fā)出第二個(gè)、第三個(gè)I/O請(qǐng)求,僅當(dāng)進(jìn)程所請(qǐng)求的I/O設(shè)備已被另一個(gè)進(jìn)程占用時(shí),進(jìn) 程才進(jìn)入等待狀態(tài)。這種一個(gè)進(jìn)程同時(shí)可以使用多個(gè) I/O 設(shè)備的方式提高了系統(tǒng)的資源 利用率,但也帶來(lái)了一種危險(xiǎn),即如果兩個(gè)進(jìn)程都提出請(qǐng)求使用對(duì)方占有的I/O設(shè)備 44、時(shí), 就會(huì)出現(xiàn)死鎖。
5?以打印機(jī)為例說(shuō)明SPOOLing技術(shù)的工作原理。
答:當(dāng)用戶進(jìn)程請(qǐng)求打印輸出時(shí),操作系統(tǒng)接受用戶的打印請(qǐng)求,但并不真正把打 印機(jī)分配給該用戶進(jìn)程,而是為進(jìn)程再次在輸出井中分配一空閑塊區(qū),并將要打印的數(shù) 據(jù)送入其中,同時(shí)還為用戶進(jìn)程申請(qǐng)一張用戶請(qǐng)求打印表,將用戶的打印要求填入其中 再將該表掛在請(qǐng)求打印隊(duì)列上。如果還有進(jìn)程要求打印輸出,系統(tǒng)仍可以接受請(qǐng)求,也 可以完成上述操作。
6? 假設(shè)一個(gè)磁盤有200個(gè)柱面,編號(hào)為0~199,當(dāng)前存取臂的位置是在143號(hào)柱面上, 并剛剛完成了125號(hào)柱面的服務(wù)請(qǐng)求,如果存在下列請(qǐng)求序列:86、147、91、177、 94、150 45、、102、175、130,試問(wèn):為完成上述請(qǐng)求,采用下列算法時(shí)存取的移動(dòng)順序 是什么?移動(dòng)總量是多少?
(1) 先來(lái)先服務(wù)(FCFS)。
答:移動(dòng)順序:143、86、147、91、177、94、150、102、175、130; 移動(dòng)總量:(143-86)+(147-86)+(147-91)+(177-91)+(177-94)+(150-94) +(150-102)+(175-102)+(175-130)=565
(2) 最短尋道時(shí)間優(yōu)先(SSTF)。
答:移動(dòng)順序:143、147、150、130、102、94、91、86、175、177 移動(dòng)總量:(147-143)+(150-147) 46、+(150-130)+(130-102)+(102-94)+(94-91) +(91-86)+(175-86)+(177-175)=162
(3) 掃描算法(SCAN)。
答:移動(dòng)順序:143、147、150、175、177、130、102、94、91、86
移動(dòng)總量:(147-143)+(150-147)+(175-150)+(177-175)+(177-130)+(130-102) +(102-94)+(94-91)+(91-86)=125
(4) 循環(huán)掃描算法(C-SCAN)。
答:移動(dòng)順序是: 143、147、150、175、177、86、91、94、102、130
移動(dòng)總 47、量:(147-143)+(150-147)+(175-150)+(177-175)+(177-86)+(91-86) +(94-91)+(102-94)+(130-102)=169.
7? 磁盤的訪問(wèn)時(shí)間分成三部分:尋道時(shí)間、旋轉(zhuǎn)時(shí)間和數(shù)據(jù)傳輸時(shí)間。而優(yōu)化磁盤磁 道上的信息分布能減少輸入輸出服務(wù)的總時(shí)間。例如,有一個(gè)文件有 10 個(gè)記錄 A,B,C,……,J存放在磁盤的某一磁道上,假定該磁盤共有10個(gè)扇區(qū),每個(gè)扇區(qū)存放 一個(gè)記錄,安排如表7-4所示?,F(xiàn)在要從這個(gè)磁道上順序地將A~J這10個(gè)記錄讀出, 如果磁盤的旋轉(zhuǎn)速度為 20ms 轉(zhuǎn)一周,處理程序每讀出一個(gè)記錄要花 4ms 進(jìn)行處理。 試問(wèn) 48、:
(1) 處理完10個(gè)記錄的總時(shí)間為多少?
答:由題目所列條件可知,磁盤的旋轉(zhuǎn)速度為20ms轉(zhuǎn)一周,每個(gè)此道有10個(gè)記錄,因 此讀出 1 個(gè)記錄的時(shí)間為 20ms/10=2ms。
對(duì)于表中記錄的初始分布,讀出并處理記錄A需要20ms+4ms=60ms。6ms后 讀/寫頭急轉(zhuǎn)到了記錄 D 出,為了讀出記錄 B 必須再轉(zhuǎn) 8 個(gè)山區(qū),急需要 8*2ms=16ms,記錄B的讀取時(shí)間為2ms,處理時(shí)間為4ms,股處理記錄B共花 時(shí)間為:16ms+2ms+4ms=22ms。后續(xù)8個(gè)記錄的讀取時(shí)間與記錄B相同。所以 處理10記錄的總時(shí)間是:9*22ms+6ms=204ms。
(2) 為了優(yōu)化分布 49、縮短處理時(shí)間,如何安排這些記錄?并計(jì)算處理的總時(shí)間。
扇區(qū)號(hào) 1 2 3 4 5 6 7 8 9 10
記錄號(hào) A B C D E F G H I J
答:為了 縮短處理時(shí)間應(yīng)按圖瑣事安排這些記錄。
經(jīng)優(yōu)化處理后,讀出并處理記錄A后,讀/寫頭剛好轉(zhuǎn)到記錄B的開始出,因此立 即可讀取并處理記錄B,后續(xù)記錄的讀取與處理情況相同。股處理10個(gè)記錄的總時(shí)間為 10*(2ms+4ms)=60ms。
8.假設(shè)一個(gè)磁盤有100個(gè)柱面,每個(gè)柱面有 10個(gè)磁道,每個(gè)磁道有 15個(gè)扇區(qū)。當(dāng)進(jìn) 程的要訪問(wèn)磁盤有 12345 扇區(qū)時(shí),計(jì)算該扇區(qū)在磁盤的第幾柱面、第幾磁道、第幾扇 區(qū)?
答:由題目知,磁盤每 50、個(gè)柱面有10個(gè)磁頭,每個(gè)此道有15個(gè)15個(gè)山區(qū)。則每個(gè)柱 面的山區(qū)數(shù)位10*15=150=90余24,故13524所在煮面為15=1余9,故13524再次頭 號(hào)為1,山區(qū)為9。綜上所述,13524山區(qū)所在的磁盤地址為:第90號(hào)柱面,第1號(hào) 磁頭,第 9 號(hào)扇區(qū)。
9?一個(gè)文件記錄大小為32B,磁道輸入輸出以磁盤塊為單位,一個(gè)盤塊的大小為512B。 當(dāng)用戶進(jìn)程順序讀文件的各個(gè)記錄時(shí),計(jì)算實(shí)際啟動(dòng)磁盤I/O占用整個(gè)訪問(wèn)請(qǐng)求時(shí)間 的比例。
答:盤塊的大小為512B, 一個(gè)文件記錄大小為32B,故一個(gè)盤塊包含的記錄數(shù)為: 512/32=16。顯然在訪問(wèn) 16 個(gè)記錄中,只需要一次啟動(dòng)磁盤,故實(shí)際啟 51、動(dòng)磁盤 I/O 占用 整個(gè)訪問(wèn)請(qǐng)求的比例為1/16=%
10. 如果磁盤扇區(qū)的大小固定為512B,每個(gè)磁道有80個(gè)扇區(qū),一共有4個(gè)可用的盤面。 假設(shè)磁盤旋轉(zhuǎn)速度是360rpm。處理機(jī)使用中斷驅(qū)動(dòng)方式從磁盤讀取數(shù)據(jù),每字節(jié)產(chǎn)生一 次終端。如果處理中斷需要,試問(wèn):
(1)處理機(jī)花費(fèi)在處理I/O上的時(shí)間占整個(gè)磁盤訪問(wèn)時(shí)間的百分比是多少(忽略尋 道時(shí)間)?
答:(512*)/((1/12+1/480)+(512*)*100%=%
(2)釆用DMA方式,每個(gè)扇區(qū)產(chǎn)生一次中斷,處理機(jī)話費(fèi)在處理I/O上的時(shí)間占整 個(gè)磁盤訪問(wèn)時(shí)間的半分比是多少?
答:((1/12+1/480)+*100%=%
習(xí) 52、題八
1. 文件系統(tǒng)要解決的問(wèn)題有哪些? 答:文件系統(tǒng)的目標(biāo)是提高存儲(chǔ)空間的利用率,他要解決的主要問(wèn)題有:完成文件
存儲(chǔ)空間的管理,實(shí)現(xiàn)文件名到物理地址的轉(zhuǎn)換,實(shí)現(xiàn)文件的目錄操作,提高文件共享 能力和保護(hù)措施,提供友好的用戶接口。文件系統(tǒng)向用戶提供了有關(guān)文件的目錄操作的 各種功能接口和系統(tǒng)調(diào)用,如命令接口,成尋接口和圖形用戶接口。
2. 許多操作系統(tǒng)中提供了文件重命名功能,它能賦予文件一個(gè)新的名字。若進(jìn)行文件 復(fù)制,并給復(fù)制文件起一個(gè)新的名字,然后刪除舊文件,也能達(dá)到給文件重命名的目 的。是問(wèn)這個(gè)方法在實(shí)現(xiàn)上有何不同?
答:給文件重命名,用戶必須提供兩個(gè)參數(shù):舊文件名和新文件名。實(shí)現(xiàn)該 53、功能是 系統(tǒng)使用舊文件名查找文件目錄,若找到舊文件名所在的目錄表項(xiàng),則將目錄表箱中文 件名字段對(duì)應(yīng)的值改為新文件名值。從視線上看,文件重命名功能完成的工作室修改表 項(xiàng)中的文件名字段,出文件名外,文件的其他屬性都未改變。
3?使用文件系統(tǒng)時(shí),通常要顯式地進(jìn)行Open ()與Close ()操作。試問(wèn):
(1) 這樣做的目的是什么?
答:顯式操作完成文件的打開功能,它將訪問(wèn)文件的目錄信息讀入內(nèi)存活動(dòng)文件 表,建立起用戶進(jìn)程與文件的聯(lián)系。顯式操作完成文件關(guān)閉操作,該操作刪除內(nèi) 存中有關(guān)該文件的目錄信息,切斷用戶與該文件的聯(lián)系。若在文件打開期間,該 文件做過(guò)某些修改,還應(yīng)將其寫回磁盤。
(2) 54、 能夠取消顯式地Open ()與Close ()操作么?若能,怎樣做?
答:可以取消顯式的OPEN與CLOSE操作。如果取消了顯式地OPEN與CLOSE操作, 系統(tǒng)在進(jìn)行文件操作之前需要半段文件是否已經(jīng)打開,若文件為打開,則應(yīng)自動(dòng) 完成文件的打開功能,已建立用戶與文件之間的聯(lián)系。同時(shí),在系統(tǒng)結(jié)束時(shí),還 應(yīng)該自動(dòng)關(guān)閉所有打開的文件。
(3) 取消顯式地Open ()與Close ()操作有什么不利影響?
答:取消顯示的OPEN雨CLOSE操作是的文件低些的系統(tǒng)開銷增加。因?yàn)槊看巫x寫 文件之前都需要半段文件是否打開,若為打開,還要完成打開操作。系統(tǒng)在結(jié)束 時(shí)也要做一些額外的工作,已完成 CL 55、OSE 操作所完成的功能。當(dāng)用戶進(jìn)程已完成 對(duì)一個(gè)文件的訪問(wèn)單進(jìn)程本書呢尚未執(zhí)行完畢時(shí),因無(wú)顯式地CLOSE操作而無(wú)法 關(guān)閉文件,從而不利于系統(tǒng)資源回收。
4? 文件目錄的作用是什么?文件目錄項(xiàng)通常包含哪些內(nèi)容? 答:文件目錄是文件名與文件所在存儲(chǔ)位置的一張映射表。文件系統(tǒng)根據(jù)他實(shí)現(xiàn)用戶 安明存取文件。文件目錄由若干目錄項(xiàng)組成,每個(gè)目錄項(xiàng)紀(jì)錄一個(gè)文件的管理和控制 信息。其中包括文件名、文件類型、文件在存儲(chǔ)設(shè)備上的位置、文件的存取控制信息、 文件的常見、訪問(wèn)和修改信息等。
5? 文件物理結(jié)構(gòu)中的鏈接分配方式有幾種實(shí)現(xiàn)方法?各什么特點(diǎn)? 答:文件物理結(jié)構(gòu)中的鏈接分配方式有兩種:一種是隱式的,即 56、文件占用物理塊中除存 儲(chǔ)文件信息之外,還存儲(chǔ)有一個(gè)鏈接指針(即指向下一個(gè)物理塊的指針);另一種是顯式 地,即將鏈接指針從物理塊中提取出來(lái),單獨(dú)建立一個(gè)表,如MS-DOS操作系統(tǒng)采用這種 方式,該表乘坐文件分配表。
隱式鏈接結(jié)構(gòu)的文件只能采用順序存取方法,否則效率太低。 顯式鏈接結(jié)構(gòu)的文件,優(yōu)于指針單獨(dú)管理,通常將文件分配表放在貯存中,無(wú)論采 用順序存取還是隨機(jī)存取,其速度都差不多。
6?設(shè)某文件A由100個(gè)物理塊組成,現(xiàn)分別用連續(xù)文件,鏈接文件和索引文件來(lái)構(gòu)造。 針對(duì)3種不同的結(jié)構(gòu),執(zhí)行以下操作時(shí)各需要多少次從洗盤I/O?
(1) 將一物理塊加到文件頭部。
(2) 將一物理塊加到文件正 57、中間。
(3) 將一物理塊加到文件尾部。
7?文件系統(tǒng)用混合方式管理存儲(chǔ)文件的物理塊,設(shè)塊的大小為512B,每個(gè)塊號(hào)占3B, 如果不考慮邏輯塊號(hào)在物理塊中所占的位置,求二級(jí)索引和三級(jí)索引時(shí)可尋址的文件 最大長(zhǎng)度。
答:由題目知,塊大小為512B,每個(gè)塊號(hào)占3B,一個(gè)物理塊客房512/3=170個(gè)目錄項(xiàng)。
一級(jí)索引可尋址的文件最大長(zhǎng)度為:170*512=85KB;
二級(jí)索引可尋址的文件最大長(zhǎng)度為:170*170*512=14450KB
三級(jí)索引可尋址的文件最大長(zhǎng)度為:170*170*170*512=2456500KB
8?一個(gè)計(jì)算機(jī)系統(tǒng)中,文件控制塊占64B,磁盤塊的大小為1KB, 58、采用一級(jí)目錄,假定 目錄中有3200個(gè)目錄,問(wèn)查找一個(gè)文件平均需要訪問(wèn)磁盤多少次?
答:3200 個(gè)目錄項(xiàng)占用的磁盤塊數(shù)為:
3200*64/1024=200(塊) 一級(jí)目錄平均訪問(wèn)磁盤的次數(shù)為1/2盤塊數(shù),故平均訪問(wèn)磁盤100次。
9?假定磁盤塊的大小是1KB,對(duì)于1GB的磁盤,其文件分配表FAT需要占用多少存儲(chǔ)空 間?當(dāng)硬盤的容量為10GB時(shí),F(xiàn)AT需要占用多少空間?
答:由題目可知,磁盤的大小為1GB的磁盤,磁盤塊的大小為1KB,所以該磁盤共有盤塊 數(shù)為:1GB/1KB==1M(個(gè))
而1MB個(gè)盤塊號(hào)需要20位表示,及文件分配表的每個(gè)表畝大小為。FAT要占用的存儲(chǔ) 空間總數(shù)為: 59、*1M=
當(dāng)磁盤大小為10GB時(shí),硬盤共有盤塊:10GB/1KB=10M (個(gè))
又因 8M<10M<16M
故10M個(gè)盤號(hào)要用24位二進(jìn)制表示。及文件分配表的每個(gè)表畝大小為3B。FAT 要占用的存儲(chǔ)空間總數(shù)為:3B* 10M=30MB。
10. UNIX系統(tǒng)中采用索引節(jié)點(diǎn)表示文件的組織,在每個(gè)索引節(jié)點(diǎn)中,假定有12個(gè)直接 塊指針,分別有一個(gè)一級(jí)、二級(jí)和三級(jí)間接指針。此外,假定系統(tǒng)盤塊大小為8KB。如 果盤快指針用32位表示,其中8位用于標(biāo)識(shí)物理磁盤號(hào), 24位用于標(biāo)識(shí)磁盤塊號(hào)。問(wèn):
(1) 該系統(tǒng)支持的最大文件長(zhǎng)度是多少?
答:由題目一直,盤塊指針用32位表示,即盤塊指針占32/ 60、8=4B,一個(gè)索引盤塊可以存 放的盤快數(shù)為:8KB/(4B)=2K,假定文件有12個(gè)直接快。分別由一個(gè)一級(jí),二級(jí)和 三級(jí)間接指針。最大文件長(zhǎng)度是:
12*8KB+2K*8KB+2K*2K*8KB+2K*2K*2K*8KB=96KB+16MB+32GB+64TB
(2) 該系統(tǒng)支持的最大文件系統(tǒng)分別是多少?
答:因?yàn)?24 位用于標(biāo)識(shí)磁盤塊好,該系統(tǒng)支持的最大文件系統(tǒng)分區(qū)是: 2 2 4 個(gè)盤塊,共有8kb*224=128GB。
(3) 假定主存中除了文件索引節(jié)點(diǎn)外沒(méi)有其他信息,訪問(wèn)位置在字節(jié)時(shí),需要訪問(wèn) 磁盤多少次
答:假定主存中除了文件索引節(jié)點(diǎn)外沒(méi)有其他信息,訪問(wèn)文件的位置為,相當(dāng) 61、于訪問(wèn)文 件的相對(duì)塊號(hào)為:
余334.,即訪問(wèn)文件的第1507塊,塊內(nèi)位移為334.系統(tǒng)有12個(gè)直接快, 1507-12=1495,由于1507<2K,第1495號(hào)索引項(xiàng)應(yīng)在一級(jí)簡(jiǎn)介索引塊狀中,股 首先訪問(wèn)內(nèi)存,得到一級(jí)間接索引快好;然后訪問(wèn)該簡(jiǎn)介快,得到1495號(hào)索 引項(xiàng)對(duì)應(yīng)的物理塊好,最后得到塊內(nèi)位移為334的位置就是文件的字節(jié)。
11. 磁盤文件的物理結(jié)構(gòu)采用鏈接分配盤塊中放2個(gè)記錄,如表所示。若要訪問(wèn)該文件 的第1580字節(jié),問(wèn):方式,文件A有10個(gè)記錄,每個(gè)記錄的長(zhǎng)度為256B存放在5個(gè)磁 盤塊中,每個(gè)
(1) 應(yīng)訪問(wèn)那個(gè)盤塊才能將該字節(jié)的內(nèi)容讀出? 答:要訪問(wèn)該文件的第158 62、0字節(jié)所在的相對(duì)盤塊為: 1580/ (256*2) =3余44
(2) 要訪問(wèn)幾次幾盤才能將該字節(jié)的內(nèi)容讀出?
答:訪問(wèn)磁盤2次。
12. 有一個(gè)磁盤共有10個(gè)盤面,每個(gè)盤面上有100個(gè)此道,沒(méi)個(gè)此道有16個(gè)山區(qū),每 個(gè)扇區(qū)有512字節(jié)。假定文件分配以扇區(qū)為單位,若使用位示圖來(lái)管理磁盤空間,問(wèn):
(1) 磁盤的容量有多大?
答:磁盤的容量為:
10*100*16*512B=8000KB
(2) 位示圖需要占用多少空間? 答:位示圖用于描述山區(qū)的使用情況,每個(gè)扇區(qū)用1位表示,位示圖需要存儲(chǔ)空間為:
10*100*16=16000bit=2000B
(3)若空白文件目錄的每個(gè)表目占5字節(jié),什么時(shí)候空白文件目錄占用空間大于位 示圖?
答:由題目知,空白文件目錄的每個(gè)表目占5B,更具上訴計(jì)算位示圖需要2000B,
2000/5=400 所以當(dāng)空白區(qū)數(shù)目大于400時(shí),空白文件目錄占用空間大于位示圖。
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案