操作系统习题集
操作系統(tǒng)習(xí)題集
- 第一章 操作系統(tǒng)引論
- 第二章 進(jìn)程的描述與控制
- 第三章 進(jìn)程的調(diào)度與死鎖
- 第四章 進(jìn)程同步
- 第五章 存儲(chǔ)器管理
- 第六章 虛擬存儲(chǔ)器管理
- 第七章 輸入輸出系統(tǒng)
- 第八章 文件管理
- 第一次階段測試
- 一.填空題(共9題,100.0分)
- 1.(填空題11.1分)
- 2.(填空題,11.1分)
- 3.(填空題,11.1分)
- 4.(填空題,11.1分)
- 5.(填空題,11.1分)
- 6.(填空題,11.1分)
- 7.(填空題,11.2分)
- 8.(填空題,11.1分)
- 9.(填空題,11.1分)
第一章 操作系統(tǒng)引論
1.多道批處理系統(tǒng)中引入了多道程序設(shè)計(jì)技術(shù)。 為充分提高各種資源的利用率,作業(yè)的類型最好是(D)。
A、短作業(yè)型
B、計(jì)算型,即其計(jì)算的工作量重于I/O的工作量
C、I/O型,即其I/O的工作量重于計(jì)算的工作量
D、計(jì)算型和I/O型均衡
解析:為充分利用各種資源,運(yùn)行的程序應(yīng)具備的條件應(yīng)該是計(jì)算和輸入/輸出均衡的類型,這樣資源利用更加充分。
2.批處理系統(tǒng)中最重要的程序是(C)。
A、數(shù)據(jù)庫程序
B、文件操作程序
C、監(jiān)督程序
D、計(jì)時(shí)程序
解析:為實(shí)現(xiàn)對(duì)作業(yè)的連續(xù)處理,需要先把一批作業(yè)以脫機(jī)方式輸入到磁帶上,并在系統(tǒng)中配上監(jiān)督程序(Monitor),在它的控制下,使這批作業(yè)能一個(gè)接一個(gè)地連續(xù)處理。
其處理過程是:首先由監(jiān)督程序?qū)⒋艓系牡谝粋€(gè)作業(yè)裝入內(nèi)存,并把運(yùn)行控制權(quán)交給該作業(yè);當(dāng)該作業(yè)處理完成時(shí),又把控制權(quán)交還給監(jiān)督程序,再由監(jiān)督程序把磁帶上的第二個(gè)作業(yè)調(diào)入內(nèi)存。計(jì)算機(jī)系統(tǒng)就這樣自動(dòng)地一個(gè)作業(yè)緊接一個(gè)作業(yè)地進(jìn)行處理,直至磁帶上的所有作業(yè)全部完成,這樣便形成了早期的批處理系統(tǒng)。
雖然系統(tǒng)對(duì)作業(yè)的處理是成批進(jìn)行的,但在內(nèi)存中始終只保持一道作業(yè),故稱為單道批處理系統(tǒng) 。
監(jiān)督程序:相當(dāng)于早期操作系統(tǒng),負(fù)責(zé)將磁盤中程序調(diào)入內(nèi)存,以及將內(nèi)存中的程序交給CPU處理。
3.在下面的選項(xiàng)中,(A)不屬于操作系統(tǒng)提供給用戶的可用資源。
A、中斷機(jī)制
B、處理機(jī)
C、存儲(chǔ)器
D、I/O設(shè)備
解析:中斷(Interruption)也稱外中斷,指來自CPU執(zhí)行指令以外的事件的發(fā)生,如設(shè)備發(fā)出的I/O結(jié)束中斷,表示設(shè)備輸入/輸出處理已經(jīng)完成,希望處理機(jī)能夠向設(shè)備發(fā)下一個(gè)輸入輸出請(qǐng)求,同時(shí)讓完成輸入/輸出后的程序繼續(xù)運(yùn)行。時(shí)鐘中斷,表示一個(gè)固定的時(shí)間片已到,讓處理機(jī)處理計(jì)時(shí)、啟動(dòng)定時(shí)運(yùn)行的任務(wù)等。這一類中斷通常是與當(dāng)前指令執(zhí)行無關(guān)的事件,即它們與當(dāng)前處理機(jī)運(yùn)行的程序無關(guān)。也就是說中斷是處于核心態(tài)下發(fā)生的,而非用戶態(tài)。
處理機(jī):處理機(jī)是最重要的資源,現(xiàn)代操作系統(tǒng)允許多個(gè)程序共享處理機(jī),按照某種算法(分時(shí)、優(yōu)先級(jí))交替地使用處理機(jī)。
處理機(jī)管理包括以下幾方面:
⑴ 進(jìn)程控制
當(dāng)用戶作業(yè)要運(yùn)行時(shí),應(yīng)為之建立一個(gè)或多個(gè)進(jìn)程,并為它分配除處理機(jī)以外的所有資源,將它放入進(jìn)程就緒隊(duì)列。當(dāng)進(jìn)程運(yùn)行完成時(shí),立即撤消該進(jìn)程,以便及時(shí)釋放其所占有的資源。
⑵ 進(jìn)程同步
所謂進(jìn)程同步是指系統(tǒng)對(duì)并發(fā)執(zhí)行的進(jìn)程進(jìn)行協(xié)調(diào)。有兩種協(xié)調(diào)方式:
進(jìn)程互斥方式 進(jìn)程同步方式
方式1.是最基本的進(jìn)程同步方式,是使諸進(jìn)程以互斥方式訪問臨界資源。
方式2.對(duì)彼此相互合作去完成共同任務(wù)的諸進(jìn)程,由同步機(jī)制對(duì)它們的執(zhí)行次序加以協(xié)調(diào)。
⑶ 進(jìn)程通信
對(duì)于相互合作的進(jìn)程,在它們運(yùn)行時(shí),相互之間往往要交換一定的信息,這種進(jìn)程間所進(jìn)行的信息交換稱為進(jìn)程通信。
⑷ 調(diào)度
包括作業(yè)調(diào)度、進(jìn)程調(diào)度兩步。作業(yè)調(diào)度是按一定算法從后備隊(duì)列中選出若干個(gè)作業(yè),為它們分配資源,建立進(jìn)程,使之成為就緒進(jìn)程,并把它們按一定算法插入就緒隊(duì)列。進(jìn)程調(diào)度是指按一定算法,如最高優(yōu)先算法,從進(jìn)程就緒隊(duì)列中選出一進(jìn)程,把處理機(jī)分配給它,為該進(jìn)程設(shè)置運(yùn)行現(xiàn)場,并使之投入運(yùn)行
存儲(chǔ)器主要任務(wù):
⑴ 為多道程序的并發(fā)運(yùn)行提供良好環(huán)境。
⑵ 便于用戶使用存儲(chǔ)器。
⑶ 提高存儲(chǔ)器的利用率。
⑷ 能從邏輯上來擴(kuò)充內(nèi)存。
存儲(chǔ)器管理應(yīng)具有以下功能:
⑴ 內(nèi)存分配
多道程序能并發(fā)執(zhí)行的首要條件是,各道程序都有自己的內(nèi)存空間,因此,為每道程序分配內(nèi)存空間是存儲(chǔ)器管理的最基本功能。OS實(shí)現(xiàn)內(nèi)存分配可采取以下兩種方式:
靜態(tài)分配方式 動(dòng)態(tài)分配方式
⑵ 內(nèi)存保護(hù)
為保證各道程序都能在自己的內(nèi)存空間運(yùn)行而互不干擾,要求每道程序在執(zhí)行時(shí)能隨時(shí)檢查對(duì)內(nèi)存的所有訪問是否合法。
⑶ 地址映射
在多道程序的系統(tǒng)中,操作系統(tǒng)必須提供把程序地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間對(duì)應(yīng)的物理地址的功能。
⑷ 內(nèi)存擴(kuò)充
由于物理內(nèi)存的大小可能限制了大型作業(yè)或多個(gè)作業(yè)的并發(fā)執(zhí)行,為了滿足用戶的要求并改善系統(tǒng)性能,必須對(duì)內(nèi)存加以擴(kuò)充。
設(shè)備管理(I/O)
主要任務(wù)有以下五個(gè):
⑴ 完成用戶提出的I/O請(qǐng)求。
⑵ 為用戶分配I/O設(shè)備。
⑶ 提高CPU和I/O設(shè)備的利用率。
⑷ 提高I/O速度。
⑸ 方便用戶使用I/O設(shè)備
為實(shí)現(xiàn)上述任務(wù),設(shè)備管理應(yīng)具有下述四種功能:
⑴ 緩沖管理
基本任務(wù)是管理好各種類型的緩沖區(qū)。幾乎所有的外圍設(shè)備與處理機(jī)交換信息時(shí),都要利用緩沖區(qū)來緩和CPU與I/O設(shè)備間速度不匹配的矛盾,提高CPU與I/O設(shè)備、設(shè)備與設(shè)備間操作的并行程度,以提高CPU和I/O設(shè)備的利用率。
⑵ 設(shè)備分配
基本任務(wù)是根據(jù)用戶的I/O請(qǐng)求和所采用的分配算法對(duì)設(shè)備進(jìn)行分配,并將未獲得所需設(shè)備的進(jìn)程放進(jìn)相應(yīng)設(shè)備的等待隊(duì)列。
⑶ 設(shè)備處理
基本任務(wù)是實(shí)現(xiàn)CPU和設(shè)備控制器之間的通信,即啟動(dòng)指定的I/O設(shè)備,完成用戶規(guī)定的I/O操作,并對(duì)由設(shè)備發(fā)來的中斷請(qǐng)求進(jìn)行及時(shí)響應(yīng),根據(jù)中斷類型進(jìn)行相應(yīng)的處理。
⑷ 虛擬設(shè)備
系統(tǒng)可通過某種技術(shù)使該設(shè)備成為能被多個(gè)用戶共享的設(shè)備,以提高設(shè)備利用率及加速程序的執(zhí)行過程??墒姑總€(gè)用戶都感覺到自己在獨(dú)占該設(shè)備。
4.分時(shí)系統(tǒng)響應(yīng)時(shí)間與(D)有關(guān)。
A、每個(gè)應(yīng)用進(jìn)程分配的時(shí)間片長度
B、進(jìn)程大小
C、等待隊(duì)列中的就緒進(jìn)程數(shù)目
D、等待隊(duì)列中的就緒進(jìn)程數(shù)目和時(shí)間片長度
解析:分時(shí)系統(tǒng)的相應(yīng)時(shí)間是指用戶從終端發(fā)出一個(gè)命令到系統(tǒng)處理完這個(gè)命令并做出回答所需要的時(shí)間。這個(gè)時(shí)間受時(shí)間片長度、終端用戶個(gè)數(shù)、命令本身功能、硬件特性、主存與輔存的交換速度等影響。
5.操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中處于( B)的位置。
A、計(jì)算機(jī)硬件和軟件之間
B、計(jì)算機(jī)硬件和用戶之間
C、處理機(jī)和用戶程序之間
D、外部設(shè)備與處理機(jī)之間
解析:
由圖可見操作系統(tǒng)連接著用戶和硬件。
6.為使操作系統(tǒng)具有很好的可擴(kuò)充性,(B)是一種可執(zhí)行的方法。
A、簡化設(shè)計(jì)
B、模塊化設(shè)計(jì)
C、采用虛擬技術(shù)
D、采用分布式技術(shù)
解析:模塊化結(jié)構(gòu)OS:基于20世紀(jì)60年代出現(xiàn)的一種結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)開發(fā)的。
模塊由眾多服務(wù)過程(模塊接口)組成,可以隨意調(diào)用其他模塊中的服務(wù)過程。實(shí)現(xiàn)了可擴(kuò)充性
優(yōu)點(diǎn):具有一定靈活性,在運(yùn)行中的高效率。
缺點(diǎn):
功能劃分和模塊接口難保正確和合理。
模塊之間的依賴關(guān)系(功能調(diào)用關(guān)系)復(fù)雜(調(diào)用深度和方向),降低了模塊之間的相對(duì)獨(dú)立性--不利于修改。
7.通常在分時(shí)系統(tǒng)中運(yùn)行的作業(yè)稱為(D)。
A、前臺(tái)作業(yè)
B、后臺(tái)作業(yè)
C、終端型作業(yè)
D、批量型作業(yè)
解析:終端型作業(yè)是在 多道程序系統(tǒng) 中,一個(gè)作業(yè)被提交后,必須經(jīng)過 處理機(jī)調(diào)度 后方能獲得處理機(jī)。
通常在分時(shí)系統(tǒng)中運(yùn)行的作業(yè)稱為終端型作業(yè)。
8.在操作系統(tǒng)中,(D)部分屬于微內(nèi)核。
A、輸入輸出井的管理程序,及作業(yè)調(diào)度軟件
B、用戶命令解釋程序
C、磁盤文件目錄管理軟件
D、進(jìn)程通信服務(wù)例程
解析:把操作系統(tǒng)分成若干分別完成一組特定功能的服務(wù)進(jìn)程,等待客戶提出請(qǐng)求;而系統(tǒng)內(nèi)核只實(shí)現(xiàn)操作系統(tǒng)的基本功能(如:虛擬存儲(chǔ)、消息傳遞),微內(nèi)核所提供的功能,通常都是一些最基本的功能,如進(jìn)程管理、存儲(chǔ)器管理、進(jìn)程間通信、 低級(jí)I/O功能。
9.實(shí)時(shí)操作系統(tǒng)必須在(B)的時(shí)間內(nèi)響應(yīng)一個(gè)新任務(wù)。
A、一個(gè)機(jī)器時(shí)間
B、被控對(duì)象規(guī)定
C、任意周期
D、時(shí)間片
解析:實(shí)時(shí)系統(tǒng)要求能實(shí)時(shí)處理外部事件,即在規(guī)定的時(shí)間內(nèi)完成對(duì)外部事件的處理。
10.批處理系統(tǒng)的主要缺點(diǎn)是(C)。
A、CPU利用率低
B、不能并發(fā)執(zhí)行
C、缺少交互性
D、以上都不是
解析:批處理系統(tǒng)中,作業(yè)執(zhí)行時(shí)用戶無法干預(yù)其運(yùn)行,只能通過事先編制作業(yè)控制說明書來間接干預(yù),缺少交互能力,也因此才有了分時(shí)系統(tǒng)的出現(xiàn)。
11.操作系統(tǒng)提供給程序員的接口是(B )。
A、進(jìn)程
B、系統(tǒng)調(diào)用
C、庫函數(shù)
D、B和C
解析:操作系統(tǒng)接口主要有命令接口和程序接口(也稱系統(tǒng)調(diào)用)。庫函數(shù)是高級(jí)語言中提供的與系統(tǒng)調(diào)用對(duì)應(yīng)的函數(shù)(也有些庫函數(shù)與系統(tǒng)調(diào)用無關(guān)),目的是隱藏“訪管”指令的細(xì)節(jié),使系統(tǒng)調(diào)用更為方便、抽象。但是,庫函數(shù)屬于用戶程序而非系統(tǒng)調(diào)用,是系統(tǒng)調(diào)用的上層。為了讓用戶方便、快捷、可靠地操縱計(jì)算機(jī)硬件并運(yùn)行自己的程序,操作系統(tǒng)還提供了用戶接口。操作系統(tǒng)提供的接口主要分為兩類:一類是命令接口,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行;另一類是程序接口,編程人員可以使用它們來請(qǐng)求操作系統(tǒng)服務(wù)。操作系統(tǒng)為編程人員提供的接口是程序接口,即系統(tǒng)調(diào)用。
12.對(duì)于普通用戶而言,OS的(B )是最重要。
A、開放性
B、方便性
C、有效性
D、可擴(kuò)充性
解析:操作系統(tǒng)的目標(biāo) :方便性(用戶的觀點(diǎn)):提供良好的、一致的用戶接口,彌補(bǔ)硬件系統(tǒng)的類型和數(shù)量差別,使計(jì)算機(jī)更容易使用。
有效性(系統(tǒng)管理人員的觀點(diǎn)):提高資源的利用率:使CPU、I/O設(shè)備和存儲(chǔ)空間得到有效利用;提高系統(tǒng)的吞吐量:管理和分配硬件、軟件資源,合理地組織計(jì)算機(jī)的工作流程。
可擴(kuò)充性:OS應(yīng)采用層次化結(jié)構(gòu),以便于增加新的功能層次和模塊,并能修改老的功能層次和模塊。
開放性:遵循標(biāo)準(zhǔn)規(guī)范,方便地實(shí)現(xiàn)互連,實(shí)現(xiàn)應(yīng)用的可移植性和互操作性。
但是對(duì)用戶而言方便是最重要的。
13.與計(jì)算機(jī)硬件關(guān)系最密切的軟件是(D )。
A、編譯程序
B、數(shù)據(jù)庫管理系統(tǒng)
C、游戲程序
D、OS
解析:
由此可見。硬件之上即是OS(操作系統(tǒng))
14.系統(tǒng)調(diào)用是由操作系統(tǒng)提供的內(nèi)部調(diào)用,它(B)。
A、直接通過鍵盤交互方式使用
B、只能通過用戶程序間接使用
C、是命令接口中的命令
D、與系統(tǒng)的命令一樣
解析:系統(tǒng)調(diào)用是操作系統(tǒng)為應(yīng)用程序使用內(nèi)核功能所提供的接口。程序接口由一組系統(tǒng)調(diào)用(也稱廣義指令)組成。用戶通過在程序中使用這些系統(tǒng)調(diào)用來請(qǐng)求操作系統(tǒng)為其提供服務(wù),如使用各種外部設(shè)備、申請(qǐng)分配和回收內(nèi)存及其他各種要求。
當(dāng)前最為流行的是圖形用戶界面(GUI),即圖形接口。GUI最終是通過調(diào)用程序接口實(shí)現(xiàn)的,用戶通過鼠標(biāo)和鍵盤在圖形界面上單擊或使用快捷鍵,就能很方便地使用操作系統(tǒng)。嚴(yán)格來說,圖形接口不是操作系統(tǒng)的一部分,但圖形接口所調(diào)用的系統(tǒng)調(diào)用命令是操作系統(tǒng)的一部分。
命令接口:使用命令接口進(jìn)行作業(yè)控制的主要方式有兩種,即聯(lián)機(jī)控制方式和脫機(jī)控制方式。按作業(yè)控制方式的不同,可將命令接口分為聯(lián)機(jī)命令接口和脫機(jī)命令接口。
聯(lián)機(jī)命令接口又稱交互式命令接口,適用于分時(shí)或?qū)崟r(shí)系統(tǒng)的接口。它由一組鍵盤操作命令組成。用戶通過控制臺(tái)或終端輸入操作命令,向系統(tǒng)提出各種服務(wù)要求。用戶每輸入一條命令,控制權(quán)就轉(zhuǎn)給操作系統(tǒng)的命令解釋程序,然后由命令解釋程序解釋并執(zhí)行輸入的命令,完成指定的功能。之后,控制權(quán)轉(zhuǎn)回控制臺(tái)或終端,此時(shí)用戶又可輸入下一條命令。聯(lián)機(jī)命令接口可以這
樣理解:“雇主”說一句話,“工人”做一件事,并做出反饋,這就強(qiáng)調(diào)了交互性。
脫機(jī)命令接口又稱批處理命令接口,適用于批處理系統(tǒng),它由一組作業(yè)控制命令組成。脫機(jī)用戶不能直接干預(yù)作業(yè)的運(yùn)行,而應(yīng)事先用相應(yīng)的作業(yè)控制命令寫成一份作業(yè)操作說明書,連同作業(yè)一起提交給系統(tǒng)。系統(tǒng)調(diào)度到該作業(yè)時(shí),由系統(tǒng)中的命令解釋程序逐條解釋執(zhí)行作業(yè)說明書上的命令,從而間接地控制作業(yè)的運(yùn)行。脫機(jī)命令接口可以這樣理解:“雇主”把要“工人”做的事寫在清單上,“工人”按照清單命令逐條完成這些事,這就是批處理。
15.在下列性質(zhì)中,(B)不是分時(shí)系統(tǒng)的特征。待定
A、交互性
B、同時(shí)性
C、及時(shí)性
D、獨(dú)立性
解析:同時(shí)性:同時(shí)性也稱多路性,指允許多個(gè)終端用戶同時(shí)使用一臺(tái)計(jì)算機(jī),即一臺(tái)計(jì)算機(jī)與若干臺(tái)終端相連接,終端上的這些用戶可以同時(shí)或基本同時(shí)使用計(jì)算機(jī)。
交互性:用戶能夠方便地與系統(tǒng)進(jìn)行人機(jī)對(duì)話,即用戶通過終端采用人機(jī)對(duì)話的方式直接控制程序運(yùn)行,與同程序進(jìn)行交互。
獨(dú)立性:系統(tǒng)中多個(gè)用戶可以彼此獨(dú)立地進(jìn)行操作,互不干擾,單個(gè)用戶感覺不到別人也在使用這臺(tái)計(jì)算機(jī),好像只有自己單獨(dú)使用這臺(tái)計(jì)算機(jī)一樣。
及時(shí)性:用戶請(qǐng)求能在很短時(shí)間內(nèi)獲得響應(yīng)。分時(shí)系統(tǒng)采用時(shí)間片輪轉(zhuǎn)方式使一臺(tái)計(jì)算機(jī)同時(shí)為多個(gè)終端服務(wù),使用戶能夠?qū)ο到y(tǒng)的及時(shí)響應(yīng)感到滿意。
16.下列選項(xiàng)中,(A)不屬于操作系統(tǒng)提供給用戶的可用資源。
A、中斷機(jī)制
B、處理機(jī)
C、存儲(chǔ)器
D、I/O設(shè)備
解析:3題
17.批處理操作系統(tǒng)的目的是(B)
A、提高系統(tǒng)與用戶的交互性
B、提高系統(tǒng)資源的利用率
C、降低用戶作業(yè)的周轉(zhuǎn)時(shí)間
D、提高系統(tǒng)的可靠性
解析:為了解決人機(jī)矛盾及CPU和I/O設(shè)備之間速度不匹配的矛盾,出現(xiàn)了批處理系統(tǒng)。它按發(fā)展歷程又分為單道批處理系統(tǒng)、多道批處理系統(tǒng)(多道程序設(shè)計(jì)技術(shù)出現(xiàn)以后)。
批處理操作系統(tǒng)的目的是為了提高CPU的利用率。
批處理操作系統(tǒng)由操作系統(tǒng)控制它們自動(dòng)運(yùn)行。這種采用批量處理作業(yè)技術(shù)的操作系統(tǒng)稱為批處理操作系統(tǒng)。
批處理操作系統(tǒng)分為單道批處理系統(tǒng)和多道批處理系統(tǒng)。批處理操作系統(tǒng)不具有交互性,它是為了提高CPU的利用率而提出的一種操作系統(tǒng)。
18.下列選項(xiàng)中,(D)不是操作系統(tǒng)關(guān)心的主要問題。
A、管理計(jì)算機(jī)裸機(jī)
B、設(shè)計(jì)、提供用戶程序與計(jì)算機(jī)硬件系統(tǒng)的界面
C、管理計(jì)算機(jī)系統(tǒng)資源
D、高級(jí)程序設(shè)計(jì)語言的編譯器
解析:操作系統(tǒng)有兩個(gè)重要的功能:一是通過資源管理,提高計(jì)算機(jī)系統(tǒng)的效率;二是改善人機(jī)界面向用戶提供友好的工作環(huán)境。
19.實(shí)時(shí)操作系統(tǒng)追求的目標(biāo)是(C)。
A、高吞吐率
B、充分利用內(nèi)存
C、快速響應(yīng)
D、減少系統(tǒng)開銷
解析:實(shí)時(shí)系統(tǒng)(Real-Time System)是指系統(tǒng)能及時(shí)(或即時(shí))響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。為了能在某個(gè)時(shí)間限制內(nèi)完成某些緊急任務(wù)而不需要時(shí)間片排隊(duì),誕生了實(shí)時(shí)操作系統(tǒng)。這里的時(shí)間限制可以分為兩種情況:若某個(gè)動(dòng)作必須絕對(duì)地在規(guī)定的時(shí)刻(或規(guī)定的時(shí)間范圍)發(fā)生,則稱為硬實(shí)時(shí)系統(tǒng),如飛行器的飛行自動(dòng)控制系統(tǒng),這類系統(tǒng)必須提供絕對(duì)保證,讓某個(gè)特定的動(dòng)作在規(guī)定的時(shí)間內(nèi)完成。若能夠接受偶爾違反時(shí)間規(guī)定且不會(huì)引起任何永久性的損害,則
稱為軟實(shí)時(shí)系統(tǒng),如飛機(jī)訂票系統(tǒng)、銀行管理系統(tǒng)。
在實(shí)時(shí)操作系統(tǒng)的控制下,計(jì)算機(jī)系統(tǒng)接收到外部信號(hào)后及時(shí)進(jìn)行處理,并在嚴(yán)格的時(shí)限內(nèi)處理完接收的事件。實(shí)時(shí)操作系統(tǒng)的主要特點(diǎn)是及時(shí)性和可靠性。
20.如用戶要利用計(jì)算機(jī)系統(tǒng)直接調(diào)試和控制程序的執(zhí)行,則應(yīng)在其上配置(C)操作系統(tǒng)。
A、批處理
B、實(shí)時(shí)
C、分時(shí)
D、單用戶
解析:分時(shí)系統(tǒng)是指在一臺(tái)主機(jī)上連接多個(gè)帶有顯示器和鍵盤的終端,同時(shí)允許多個(gè)用戶通過自己的鍵盤,以交互的方式使用計(jì)算機(jī),共享主機(jī)中的資源。 "分時(shí)"的含義分時(shí)是指多個(gè)用戶分享使用同一臺(tái)計(jì)算機(jī);多個(gè)程序分時(shí)共享硬件和軟件資源,推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的動(dòng)力是提高資源利用率和系統(tǒng)吞吐量,推動(dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ怯脩舻男枰?#xff1a;
21.實(shí)時(shí)操作系統(tǒng)必須在(B)的時(shí)間內(nèi)響應(yīng)一個(gè)新任務(wù)。
A、一個(gè)機(jī)器周期
B、被控對(duì)象規(guī)定
C、任一周期
D、時(shí)間片
解析:9題
22.(C)操作系統(tǒng)允許在一臺(tái)主機(jī)上同時(shí)連接多臺(tái)終端,多個(gè)用戶可以通過各自的終端同時(shí)交互地使用計(jì)算機(jī)。
A、網(wǎng)絡(luò)
B、分布式
C、分時(shí)
D、實(shí)時(shí)
解析:20題
23.如果分時(shí)操作系統(tǒng)的時(shí)間片一定,那么(B),則響應(yīng)時(shí)間越長。
A、用戶數(shù)越少
B、用戶數(shù)越多
C、內(nèi)存越少
D、內(nèi)存越多
解析:分時(shí)系統(tǒng)中,當(dāng)時(shí)間片固定時(shí),用戶數(shù)越多,每個(gè)用戶分到的時(shí)間片就越少,響應(yīng)時(shí)間自然就變長,注意,分時(shí)系統(tǒng)的響應(yīng)時(shí)間T的比例關(guān)系可表達(dá)為T≈QN,其中Q是時(shí)間片,而N是用戶數(shù)。
24.操作系統(tǒng)的基本類型主要有(B)。
A、批處理系統(tǒng)、分時(shí)系統(tǒng)及多任務(wù)系統(tǒng)
B、實(shí)時(shí)操作系統(tǒng)、批處理操作系統(tǒng)及分時(shí)操作系統(tǒng)
C、單用戶系統(tǒng)、多用戶系統(tǒng)及批處理系統(tǒng)
D、實(shí)時(shí)系統(tǒng)、分時(shí)系統(tǒng)和多用戶系統(tǒng)
解析:操作系統(tǒng)的基本類型主要有批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)。
25.(C)操作系統(tǒng)允許在一臺(tái)主機(jī)上同時(shí)連接多臺(tái)終端,多個(gè)用戶可以通過各自的終端同時(shí)交互地使用計(jì)算機(jī)。
A、網(wǎng)絡(luò)
B、分布式
C、分時(shí)
D、實(shí)時(shí)
解析:22題
分布式具有各個(gè)計(jì)算機(jī)間相互通訊,無主從關(guān)系;
分布式系統(tǒng)資源為所有用戶共享;
分布式系統(tǒng)中若干個(gè)計(jì)算機(jī)可相互協(xié)作共同完成一項(xiàng)任務(wù)。
26.操作系統(tǒng)的基本功能包括( 全選)。
A、處理機(jī)管理功能
B、存儲(chǔ)器管理功能
C、I/O設(shè)備管理功能
D、文件管理功能
解析:操作系統(tǒng)的主要功能 :處理機(jī)管理功能 、存儲(chǔ)器管理功能、設(shè)備管理功能、文件系統(tǒng)管理、用戶接口等
27.操作系統(tǒng)的基本特性是指(全選)。
A、并發(fā)
B、共享
C、虛擬
D、異步性
解析:操作系統(tǒng)的基本特性 :并發(fā)、共享、虛擬、異步性其中最基本特性是并發(fā)與共享。
28.各種類型的操作系統(tǒng)各有所長,它們追求的設(shè)計(jì)目標(biāo)也不同,下述說法正確的是(全選)。
A、多道批處理系統(tǒng)是為了提高系統(tǒng)的資源利用率
B、分時(shí)系統(tǒng)允許用戶直接與計(jì)算機(jī)系統(tǒng)交互
C、實(shí)時(shí)系統(tǒng)首先要考慮實(shí)時(shí)性和可靠性
D、網(wǎng)絡(luò)操作系統(tǒng)必須實(shí)現(xiàn)計(jì)算機(jī)之間的通信及資源共享
E、分布式操作系統(tǒng)要讓多臺(tái)計(jì)算機(jī)協(xié)作完成一個(gè)共同的任務(wù)
29.數(shù)據(jù)庫管理程序需要調(diào)用操作系統(tǒng)程序,操作系統(tǒng)程序的實(shí)現(xiàn)也需要數(shù)據(jù)庫系統(tǒng)的支持。錯(cuò)誤
解析:數(shù)據(jù)庫管理程序需要調(diào)用操作系統(tǒng)程序,但是操作系統(tǒng)程序的實(shí)現(xiàn)不需要數(shù)據(jù)庫系統(tǒng)的支持
30.批處理系統(tǒng)提高了系統(tǒng)各種資源的利用率和系統(tǒng)吞吐率,因而縮短了作業(yè)的周轉(zhuǎn)時(shí)間。這種描述對(duì)嗎?錯(cuò)誤
第二章 進(jìn)程的描述與控制
1.由于等待某些事件發(fā)生,進(jìn)程主動(dòng)進(jìn)入阻塞狀態(tài)。 正確
2.設(shè)與某資源關(guān)聯(lián)的信號(hào)量初值為3,當(dāng)前值為-1。若M表示該資源的可用個(gè)數(shù),N表示等待該資源的進(jìn)程數(shù),則M、N分別是( D)。
A、0、1
B、1、2
C、2、0
D、1、0
解析:信號(hào)量的初值為3,說明有3個(gè)這樣的資源可供使用。但其當(dāng)前值為1,說明當(dāng)前只有1個(gè)這樣的資源可用,而另外2個(gè)已經(jīng)分配。由于還有1個(gè)資源可用,所以此時(shí)沒有等待該資源的進(jìn)程。
根據(jù)信號(hào)量的物理含義:S.value>0時(shí)表示有S.value個(gè)資源可用;S.value==0表示無資源可用;S.value<0則|S.value|表示等待隊(duì)列中的進(jìn)程個(gè)數(shù)。信號(hào)量的當(dāng)前值為1,則表示該資源的可用個(gè)數(shù)為1,沒有等待該資源的進(jìn)程。
3.當(dāng)已有進(jìn)程進(jìn)入自己對(duì)應(yīng)于某臨界資源的臨界區(qū)時(shí),所有企圖進(jìn)入該臨界資源所對(duì)應(yīng)臨界區(qū)的進(jìn)程必須等待,這稱之為( C)。
A、空閑讓進(jìn)
B、讓權(quán)等待
C、忙則等待
D、有限等待
解析:空閑讓進(jìn):當(dāng)沒有進(jìn)程處于臨界區(qū)時(shí),可以允許一個(gè)請(qǐng)求進(jìn)入臨界區(qū)的進(jìn)程立即進(jìn)入自己的臨界區(qū)。
忙則等待:當(dāng)已有進(jìn)程進(jìn)入其臨界區(qū)時(shí),其他試圖進(jìn)入臨界區(qū)的進(jìn)程必須等待。
有限等待:對(duì)要求訪問臨界資源的進(jìn)程,應(yīng)該保證能在有限時(shí)間內(nèi)進(jìn)入自己的臨界區(qū)。
讓權(quán)等待:當(dāng)進(jìn)程不能進(jìn)入自己的臨界區(qū)時(shí),應(yīng)釋放處理機(jī)。
4.下列關(guān)于線程的敘述中,正確的是( B)。
A、每個(gè)線程有自己獨(dú)立的地址空間
B、線程可以獨(dú)立執(zhí)行
C、進(jìn)程只能包含一個(gè)線程
D、線程之間的通信必須使用系統(tǒng)調(diào)用函數(shù)
解析:每個(gè)進(jìn)程都有自己的地址空間,但線程沒有自己獨(dú)立的地址空間,而是運(yùn)行在一個(gè)進(jìn)程里的所有線程共享該進(jìn)程的整個(gè)虛擬地址空間。
線程可以包含CPU現(xiàn)場,并且可以獨(dú)立執(zhí)行程序。
線程之間通信方式:
1.是通過共享變量,線程之間通過該變量進(jìn)行協(xié)作通信;
2.通過隊(duì)列(本質(zhì)上也是線程間共享同一塊內(nèi)存)來實(shí)現(xiàn)消費(fèi)者和生產(chǎn)者的模式來進(jìn)行通信;
5.進(jìn)程之間的同步,主要源于進(jìn)程之間的資源競爭,是指對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上的協(xié)調(diào)。錯(cuò)誤
解析:進(jìn)程同步是指對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào)。主要源于進(jìn)程合作
6.用戶級(jí)線程執(zhí)行時(shí),同一進(jìn)程不同線程的切換不需要內(nèi)核支持。正確
7.在引入線程的系統(tǒng)中,進(jìn)程仍是資源分配和調(diào)度的基本單位。正確
解析:進(jìn)程表示單個(gè)運(yùn)行活動(dòng)集的計(jì)算機(jī)程序,是系統(tǒng)的資源分配和調(diào)度的基本單元,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。
8.下列選項(xiàng)中不屬于進(jìn)程高級(jí)通信的是(D )。
A、管道通信
B、共享存儲(chǔ)器系統(tǒng)
C、消息傳遞系統(tǒng)
D、信號(hào)量機(jī)制
解析:進(jìn)程通信是指在進(jìn)程間傳輸數(shù)據(jù)(交換信息)。 進(jìn)程通信根據(jù)交換信息量的多少和效率的高低,分為低級(jí)通信(只能傳遞狀態(tài)和整數(shù)值)和高級(jí)通信(提高信號(hào)通信的效率,傳遞大量數(shù)據(jù),減輕程序編制的復(fù)雜度)。其中高級(jí)進(jìn)程通信分為三種方式:共享內(nèi)存模式、消息傳遞模式、共享文件模式
進(jìn)程間通信的方式很多,包括:
其中前兩種通信方式由于交換的信息量少且效率低下,故稱為低級(jí)通信機(jī)制,相應(yīng)地可把發(fā)信號(hào)/ 收信號(hào)及PV之類操作稱為低級(jí)通信原語,僅適用于集中式操作系統(tǒng)。消息傳遞機(jī)制屬于高級(jí)通信機(jī)制,共享文件通信機(jī)制是消息傳遞機(jī)制的變種,這兩種通信機(jī)制,既適用于集中式操作系統(tǒng),又適用于分布式操作系統(tǒng)。
共享存儲(chǔ)系統(tǒng)(有的地方稱作共享內(nèi)存區(qū))、消息傳遞系統(tǒng)(有的地方稱作消息隊(duì)列)、管道。
進(jìn)程通信博客:https://www.cnblogs.com/youngforever/p/3250270.html
9.進(jìn)程的運(yùn)行具有異步性,因此進(jìn)程執(zhí)行的速度不能由進(jìn)程自己控制。正確
10.在多個(gè)用戶級(jí)線程對(duì)應(yīng)一個(gè)內(nèi)核支持線程的模型中,當(dāng)一個(gè)多線程進(jìn)程中的某個(gè)線程被阻塞后,( B)。
A、該進(jìn)程的其他線程仍可繼續(xù)運(yùn)行
B、整個(gè)進(jìn)程都將阻塞
C、該阻塞線程將被撤銷
D、該阻塞線程將永遠(yuǎn)不可能再執(zhí)行
解析:在同時(shí)支持用戶級(jí)線程和內(nèi)核級(jí)線程的系統(tǒng)中,由幾個(gè)用戶級(jí)線程映射到幾個(gè)內(nèi)核級(jí)線程的問題引出了“多線程模型”問題。
多線程模型分為:多對(duì)一模型、一對(duì)一模型和多對(duì)多模型。
多對(duì)一模型
多個(gè)用戶級(jí)線程映射到一個(gè)內(nèi)核級(jí)線程。每個(gè)用戶進(jìn)程只對(duì)應(yīng)一個(gè)內(nèi)核級(jí)線程。
優(yōu)點(diǎn):用戶級(jí)線程的切換在用戶空間即可完成,不需要切換到核心態(tài),線程管理的系統(tǒng)開銷小,效率高。
缺點(diǎn):當(dāng)一個(gè)用戶級(jí)線程被阻塞后,整個(gè)進(jìn)程都會(huì)被阻塞,并發(fā)度不高。多個(gè)線程不可在多核處理機(jī)上并行運(yùn)行(因?yàn)榇藭r(shí)只有一個(gè)內(nèi)核級(jí)線程)。
一對(duì)一模型
一個(gè)用戶級(jí)線程映射到一個(gè)內(nèi)核級(jí)線程。每個(gè)用戶進(jìn)程有著與用戶級(jí)線程同數(shù)量的內(nèi)核級(jí)線程。
優(yōu)點(diǎn):當(dāng)一個(gè)用戶級(jí)線程被阻塞后,別的用戶級(jí)線程還可以繼續(xù)執(zhí)行,并發(fā)能力強(qiáng)。多線程可在多核處理機(jī)上并行執(zhí)行。
缺點(diǎn):一個(gè)用戶進(jìn)程會(huì)占用多個(gè)內(nèi)核級(jí)線程,而內(nèi)核級(jí)線程的切換由操作系統(tǒng)內(nèi)核完成,需要切換到核心態(tài),因此線程管理成本高、開銷大。
多對(duì)多模型
n個(gè)用戶級(jí)線程映射到m個(gè)內(nèi)核級(jí)線程 ( n >= m )。每個(gè)用戶進(jìn)程對(duì)應(yīng)m個(gè)內(nèi)核級(jí)線程。
這種模型克服了多對(duì)一模型并發(fā)度不高的缺點(diǎn),又克服了一對(duì)一模型中一個(gè)用戶進(jìn)程占用太多內(nèi)核級(jí)線程,開銷太大的缺點(diǎn),是上述兩種模型的折中方案。
11.信號(hào)量是解決進(jìn)程同步與互斥問題的唯一手段。錯(cuò)誤
解析:信號(hào)量機(jī)制是一種可以實(shí)現(xiàn)進(jìn)程互斥、同步的有效方法。非唯一
12.(D )不是在創(chuàng)建進(jìn)程中所完成的工作。
A、為被創(chuàng)建進(jìn)程建立一個(gè)PCB
B、獲取初始狀態(tài)參數(shù)填入PCB
C、把PCB分別插入就緒隊(duì)列和進(jìn)程家族中
D、為進(jìn)程調(diào)度CPU使用權(quán)
解析:創(chuàng)建進(jìn)程:
13.進(jìn)程和程序最根本的區(qū)別是( B)
A、對(duì)資源的占有類型和數(shù)量
B、進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的
C、是否能夠并發(fā)地在處理機(jī)上運(yùn)行
D、進(jìn)程規(guī)模小,程序規(guī)模較大
14.(A )操作不是wait操作可完成的。
A、為進(jìn)程分配處理機(jī)
B、使信號(hào)量的值變小
C、可用于進(jìn)程的同步
D、使進(jìn)程進(jìn)入阻塞狀態(tài)
解析:P操作分配的是我們申請(qǐng)的資源,并不是處理機(jī)
PV 操作改變信號(hào)量的值,信號(hào)量是實(shí)現(xiàn)進(jìn)程同步與互斥的機(jī)制,所以PV操作可以實(shí)現(xiàn)進(jìn)程同步與互斥。
信號(hào)量是最早出現(xiàn)的用來解決進(jìn)程同步與互斥問題的機(jī)制。
信號(hào)量(Saphore)值表示相應(yīng)資源的使用情況。信號(hào)量S>=0時(shí),S表示可用資源的數(shù)量。**執(zhí)行一次P操作意味著請(qǐng)求分配一個(gè)資源,因此S的值減1;當(dāng)S<0時(shí),表示已經(jīng)沒有可用資源,S的絕對(duì)值表示當(dāng)前等待該資源的進(jìn)程數(shù)。請(qǐng)求者必須等待其他進(jìn)程釋放該類資源,才能繼續(xù)運(yùn)行。**而執(zhí)行一個(gè)V操作意味著釋放一個(gè)資源,因此S的值加1;若S<0,表示有某些進(jìn)程正在等待該資源,因此要喚醒一個(gè)等待狀態(tài)的進(jìn)程,使之運(yùn)行下去。
注意,信號(hào)量的值只能由PV操作來改變。
15.關(guān)于記錄型信號(hào)量機(jī)制,如下說法不準(zhǔn)確的是(D )。
A、記錄型信號(hào)量的隊(duì)列分量用來表示因申請(qǐng)對(duì)應(yīng)資源失敗而受阻的進(jìn)程阻塞隊(duì)列
B、記錄型信號(hào)量的signal操作不僅執(zhí)行資源的釋放,還會(huì)喚醒相應(yīng)進(jìn)程阻塞隊(duì)列的隊(duì)首進(jìn)程
C、記錄型信號(hào)量的wait操作在進(jìn)程申請(qǐng)對(duì)應(yīng)資源未果的情況下,將把當(dāng)前進(jìn)程插入到相應(yīng)的進(jìn)程阻塞隊(duì)列
D、記錄型信號(hào)量的整型分量用來表示系統(tǒng)當(dāng)前可用對(duì)應(yīng)資源的數(shù)量
解析:整型信號(hào)量被定義為一個(gè)用于表示資源數(shù)目的整型量S
16.一段時(shí)間內(nèi)僅允許一個(gè)進(jìn)程訪問的空間稱為臨界區(qū)。錯(cuò)誤
解析:進(jìn)程中訪問臨界資源的那段代碼稱為臨界區(qū)。
在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問的資源,稱為是臨界資源
17.中斷是OS內(nèi)核最基本的功能。正確
18.下面關(guān)于PCB的說法中,錯(cuò)誤的是( D)
A、每個(gè)進(jìn)程只有1個(gè)PCB
B、1個(gè)PCB只對(duì)應(yīng)1個(gè)進(jìn)程
C、PCB位于內(nèi)存中
D、PCB的索引組織方式比鏈?zhǔn)浇M織方式好
解析:進(jìn)程與PCB是一一對(duì)應(yīng)的。 PCB應(yīng)常駐內(nèi)存。
1)線性表方式:不論進(jìn)程的狀態(tài)如何,將所有的PCB連續(xù)地存放在內(nèi)存的系統(tǒng)區(qū)。這種方式適用于系統(tǒng)中進(jìn)程數(shù)目不多的情況,不適合頻繁的進(jìn)程調(diào)度
2)索引表方式:該方式是線性表方式的改進(jìn),系統(tǒng)按照進(jìn)程的狀態(tài)分別建立就緒索引表、阻塞索引表等。其中進(jìn)程阻塞可能由于I/O請(qǐng)求、申請(qǐng)緩沖區(qū)失敗、等待解鎖、獲取數(shù)據(jù)失敗等原因造成,將其組成一張表忽略了進(jìn)程的優(yōu)先級(jí),不利于進(jìn)程的喚醒。
不存在誰好誰壞
19.關(guān)于整型信號(hào)量機(jī)制,下列說法不正確的是(B )。
A、整型信號(hào)量用來表示系統(tǒng)當(dāng)前可用對(duì)應(yīng)資源的數(shù)量
B、整型信號(hào)量機(jī)制無法滿足空閑讓進(jìn)的準(zhǔn)則
C、整型信號(hào)量機(jī)制無法滿足讓權(quán)等待的準(zhǔn)則
D、整型信號(hào)量機(jī)制提供有資源申請(qǐng)操作和資源釋放操作,也即PV操作
解析:整型信號(hào)量機(jī)制無法滿足讓權(quán)等待的準(zhǔn)則wait過程中,如果不滿足則一直在詢問,直到滿足了才跳出循環(huán),執(zhí)行后續(xù)操作。執(zhí)行過程中不可中斷。
20.下列特性中,哪一個(gè)不是進(jìn)程的特性( C)
A、異步性
B、并發(fā)性
C、靜態(tài)性
D、動(dòng)態(tài)性
解析:進(jìn)程的特征:
結(jié)構(gòu)特征:由程序段、數(shù)據(jù)段、進(jìn)程控制塊三部分組成(進(jìn)程實(shí)體);
動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程;
并發(fā)性:多個(gè)進(jìn)程可同存于內(nèi)存中,能在一段時(shí)間內(nèi)同時(shí)運(yùn)行;
獨(dú)立性:獨(dú)立運(yùn)行的基本單位,獨(dú)立獲得資源和調(diào)度的基本單位;異步性:各進(jìn)程按各自獨(dú)立的不可預(yù)知的速度向前推進(jìn)。
21.為使進(jìn)程由靜止就緒變?yōu)榛顒?dòng)就緒,應(yīng)利用( B)原語。
A、wakeup
B、suspend
C、active
D、block
解析:
活動(dòng)就緒------suspend------>靜止就緒
活動(dòng)就緒<------active------靜止就緒
活動(dòng)阻塞------suspend------>靜止阻塞
活動(dòng)阻塞<------active------靜止阻塞
22.PV操作是對(duì)信號(hào)量執(zhí)行減1操作,意味著釋放一個(gè)單位資源,加1后如果信號(hào)量的值小于等于零,則從等待隊(duì)列中喚醒一個(gè)進(jìn)程。 正確
V操作是對(duì)信號(hào)量執(zhí)行加1操作,意味著釋放一個(gè)單位資源,加1后如果信號(hào)量的值小于等于零,則從等待隊(duì)列中喚醒一個(gè)進(jìn)程,并將它變?yōu)?strong>就緒狀態(tài),而現(xiàn)進(jìn)程繼續(xù)進(jìn)行。
23.對(duì)于管程而言,為區(qū)別不同的等待原因而引入了( C)的概念,并分別為之設(shè)立相應(yīng)的進(jìn)程等待隊(duì)列。
A、信號(hào)量
B、互斥鎖
C、條件變量
D、線程
24.下列進(jìn)程狀態(tài)的轉(zhuǎn)換中,哪一個(gè)是不正確的( C)
A、就緒->運(yùn)行
B、運(yùn)行->就緒
C、就緒->阻塞
D、阻塞->就緒
解析:活動(dòng)就緒?靜止就緒 活動(dòng)阻塞?靜止阻塞 靜止就緒?活動(dòng)就緒 靜止阻塞?活動(dòng)阻塞
阻塞—>運(yùn)行 就緒—>阻塞是不存在的
25.某個(gè)運(yùn)行中的進(jìn)程要申請(qǐng)打印機(jī),它將變?yōu)?B )
A、就緒態(tài)
B、阻塞態(tài)
C、創(chuàng)建態(tài)
D、撤銷態(tài)
解析:
其實(shí)處理機(jī)同一時(shí)刻只能執(zhí)行一個(gè)進(jìn)程。而要讓處理機(jī)同時(shí)去執(zhí)行多個(gè)進(jìn)程,怎么辦?
進(jìn)程調(diào)度程序會(huì)把處理機(jī)劃分成長短相同且很小的時(shí)間塊,每個(gè)時(shí)間塊執(zhí)行一個(gè)進(jìn)程,某個(gè)進(jìn)程時(shí)間塊用完后,回到就緒狀態(tài),換到下一個(gè)進(jìn)程執(zhí)行。這樣輪流來執(zhí)行,實(shí)現(xiàn)了處理機(jī)能一起一起執(zhí)行多個(gè)進(jìn)程。
當(dāng)某個(gè)進(jìn)程申請(qǐng)資源被占用或者啟動(dòng)I/O傳輸未完成,就處于等待狀態(tài)。(此時(shí)它和其它進(jìn)程不一樣,它不再去爭奪時(shí)間塊,就相當(dāng)于睡著了一樣)當(dāng)它所請(qǐng)求的資源被釋放,或者啟動(dòng)I/O傳輸完成,那么就會(huì)由繼續(xù)進(jìn)行就緒狀態(tài),(這就好比它被喚醒了,回到就緒狀態(tài)里,同其它里程爭奪處理機(jī)的時(shí)間塊。你的問題就是這個(gè)進(jìn)程從睡著了,然后又被喚醒了。被喚醒后你不能馬上就要求執(zhí)行啊,因?yàn)樘幚頇C(jī)還要執(zhí)行其它進(jìn)程,而這個(gè)進(jìn)程就要回到就緒狀態(tài),和其它進(jìn)程一樣卻爭奪處理機(jī)的執(zhí)行時(shí)間塊)
當(dāng)前正在執(zhí)行的進(jìn)程由于時(shí)間片用完而暫停執(zhí)行時(shí),該進(jìn)程應(yīng)轉(zhuǎn)變?yōu)榫途w狀態(tài);若因發(fā)生某種事件而不能繼續(xù)執(zhí)行時(shí),應(yīng)轉(zhuǎn)為阻塞狀態(tài);若終端用戶的請(qǐng)求而暫停執(zhí)行時(shí),它應(yīng)轉(zhuǎn)變?yōu)殪o止就緒狀態(tài)。
26.并發(fā)進(jìn)程是指(D )
A、不可中斷的進(jìn)程
B、可并發(fā)執(zhí)行的進(jìn)程
C、可同一時(shí)刻執(zhí)行的進(jìn)程
D、可同時(shí)執(zhí)行的進(jìn)程
27.如果某一進(jìn)程在運(yùn)行時(shí),因等待數(shù)據(jù)輸入,此時(shí)將脫離運(yùn)行狀態(tài),進(jìn)入(B )
A、就緒狀態(tài)
B、阻塞狀態(tài)
C、掛起狀態(tài)
D、終止?fàn)顟B(tài)
解析:
當(dāng)前正在執(zhí)行的進(jìn)程由于時(shí)間片用完而暫停執(zhí)行時(shí),該進(jìn)程應(yīng)轉(zhuǎn)變?yōu)榫途w狀態(tài);若因發(fā)生某種事件而不能繼續(xù)執(zhí)行時(shí),應(yīng)轉(zhuǎn)為阻塞狀態(tài);若終端用戶的請(qǐng)求而暫停執(zhí)行時(shí),它應(yīng)轉(zhuǎn)變?yōu)殪o止就緒狀態(tài)。
28.進(jìn)程同步機(jī)制應(yīng)遵循讓權(quán)等待準(zhǔn)則,故當(dāng)一個(gè)進(jìn)程不能進(jìn)入自己的臨界區(qū)時(shí),應(yīng)當(dāng)釋放( B)。
A、內(nèi)存空間
B、處理器
C、I/O設(shè)備
D、外存空間
29.操作系統(tǒng)中有一組常稱為特殊系統(tǒng)調(diào)用的程序(B ),它不能被系統(tǒng)中斷。
A、初始化程序
B、原語
C、信號(hào)量
D、控制模塊
30.一個(gè)程序?qū)?yīng)一個(gè)進(jìn)程。錯(cuò)誤
解析:一個(gè)程序可以對(duì)應(yīng)多個(gè)進(jìn)程
第三章 進(jìn)程的調(diào)度與死鎖
1.既考慮作業(yè)等待時(shí)間,又考慮作業(yè)執(zhí)行時(shí)間的調(diào)度算法是( D)。
A、先來先服務(wù)
B、短作業(yè)優(yōu)先
C、優(yōu)先級(jí)調(diào)度
D、高響應(yīng)比優(yōu)先
解析:
2.作業(yè)從進(jìn)入后備隊(duì)列到被調(diào)度程序選中的時(shí)間間隔稱為( C)。
A、周轉(zhuǎn)時(shí)間
B、響應(yīng)時(shí)間
C、等待時(shí)間
D、觸發(fā)時(shí)間
3.時(shí)間片輪轉(zhuǎn)調(diào)度算法是為了(A )。
A、多個(gè)終端能夠得到系統(tǒng)及時(shí)響應(yīng)
B、使系統(tǒng)更高效
C、優(yōu)先級(jí)較高的進(jìn)程得到及時(shí)響應(yīng)
D、需要CPU時(shí)間最少的進(jìn)程最先運(yùn)行
解析:時(shí)間片輪轉(zhuǎn)的主要目的是使得多個(gè)交互的用戶能夠得到及時(shí)響應(yīng),使得用戶以為“獨(dú)占”計(jì)算機(jī)的使用。因此它并沒有偏好,也不會(huì)對(duì)特殊進(jìn)程做特殊服務(wù)。時(shí)間片輪轉(zhuǎn)增加了系統(tǒng)開銷,所以不會(huì)使得系統(tǒng)高效運(yùn)轉(zhuǎn),吞吐量和周轉(zhuǎn)時(shí)間均不如批處理。但是其較快速的響應(yīng)時(shí)間使得用戶能夠與計(jì)算機(jī)進(jìn)行交互,改善了人機(jī)環(huán)境,滿足用戶需求。
4.下面有關(guān)選擇進(jìn)程調(diào)度算法的準(zhǔn)則中不正確的是(D )。
A、盡快響應(yīng)交互式用戶的請(qǐng)求
B、盡量提高處理機(jī)利用率
C、盡可能提高系統(tǒng)吞吐量
D、適當(dāng)增長進(jìn)程就緒隊(duì)列的等待時(shí)間
解析:減少進(jìn)程就緒隊(duì)列的等待時(shí)間
① 處理器利用率;② 吞吐量;③ 等待時(shí)間;④ 響應(yīng)時(shí)間。
5.進(jìn)程調(diào)度算法采用時(shí)間片輪轉(zhuǎn)調(diào)度算法,當(dāng)時(shí)間片過大時(shí),就會(huì)使時(shí)間片輪轉(zhuǎn)算法轉(zhuǎn)化為(A )調(diào)度算法。
A、先來先服務(wù)
B、短進(jìn)程優(yōu)先
C、高響應(yīng)比優(yōu)先
D、以上選項(xiàng)都不對(duì)
解析:時(shí)間片輪轉(zhuǎn)調(diào)度算法在實(shí)際運(yùn)行中也是按先后順序使用時(shí)間片,當(dāng)時(shí)間片過大時(shí),我們可以認(rèn)為其大于進(jìn)程需要的運(yùn)行時(shí)間,即轉(zhuǎn)變?yōu)橄葋硐确?wù)調(diào)度算法
6.下列選項(xiàng)中,滿足短作業(yè)優(yōu)先且不會(huì)發(fā)生饑餓現(xiàn)象的是(D )調(diào)度算法。
A、先來先服務(wù)
B、非搶占式短作業(yè)優(yōu)先
C、時(shí)間片輪轉(zhuǎn)
D、高響應(yīng)比優(yōu)先
解析:
高響應(yīng)比優(yōu)先算法:
響應(yīng)比 =(等待時(shí)間+要求服務(wù)時(shí)間)/ 要求服務(wù)時(shí)間,即RR=(w+s)/s=1+w/s。因此響應(yīng)比一定是大于1的。
這種算法的思想是綜合了 短作業(yè)優(yōu)先調(diào)度算法 + 動(dòng)態(tài)優(yōu)先權(quán)機(jī)制 的優(yōu)點(diǎn),既考慮作業(yè)的執(zhí)行時(shí)間也考慮作業(yè)的等待時(shí)間,綜合了先來先服務(wù)和最短作業(yè)優(yōu)先兩種算法的特點(diǎn)。
當(dāng)一個(gè)作業(yè)的要求服務(wù)時(shí)間很短,那么響應(yīng)比就會(huì)很大,有短作業(yè)優(yōu)先的特點(diǎn);但是當(dāng)一個(gè)作業(yè)等待時(shí)間太長了,它的響應(yīng)比又提升了,解決了短作業(yè)優(yōu)先算法容易發(fā)生 饑餓 的毛病,
7.進(jìn)程調(diào)度又稱低級(jí)調(diào)度,其主要功能是(D )。
A、選擇一個(gè)作業(yè)調(diào)入內(nèi)存
B、選擇一個(gè)內(nèi)存中的進(jìn)程調(diào)出到外存
C、選擇一個(gè)外存中的進(jìn)程調(diào)入內(nèi)存
D、將一個(gè)就緒的進(jìn)程投入運(yùn)行
解析:
低級(jí)調(diào)度用于決定就緒隊(duì)列中的哪個(gè)進(jìn)程應(yīng)獲得處理機(jī),然后再由分派程序執(zhí)行把處理機(jī)分配給該進(jìn)程的具體操作。
低級(jí)調(diào)度的主要功能如下:
-
保存處理機(jī)的現(xiàn)場信息
在進(jìn)程調(diào)度進(jìn)行調(diào)度時(shí),首先需要保存當(dāng)前進(jìn)程的處理機(jī)的現(xiàn)場信息,如程序計(jì)數(shù)器、多個(gè)通用寄存器中的內(nèi)容等,將它們送入該進(jìn)程的進(jìn)程控制塊(PCB)中的相應(yīng)單元。
-
按某種算法選取進(jìn)程
低級(jí)調(diào)度程序按某種算法如優(yōu)先數(shù)算法、輪轉(zhuǎn)法等,從就緒隊(duì)列中選取一個(gè)進(jìn)程,把它的狀態(tài)改為運(yùn)行狀態(tài),并準(zhǔn)備把處理機(jī)分配給它。
-
把處理器分配給進(jìn)程
由分派程序(Dispatcher)把處理器分配給進(jìn)程。
此時(shí)需為選中的進(jìn)程恢復(fù)處理機(jī)現(xiàn)場,即把選中進(jìn)程的進(jìn)程控制塊內(nèi)有關(guān)處理機(jī)現(xiàn)場的信息裝入處理器相應(yīng)的各個(gè)寄存器中,把處理器的控制權(quán)交給該進(jìn)程,讓它從取出的斷點(diǎn)處開始繼續(xù)運(yùn)行
8.分時(shí)系統(tǒng)中,若當(dāng)前運(yùn)行的進(jìn)程連續(xù)獲得兩個(gè)時(shí)間片,原因可能是(B )。
A、該進(jìn)程的優(yōu)先級(jí)最高
B、就緒隊(duì)列為空
C、該進(jìn)程最早進(jìn)入就緒隊(duì)列
D、該進(jìn)程是一個(gè)短進(jìn)程
9.三種主要類型的OS中都必須配置的調(diào)度是( C)。
A、作業(yè)調(diào)度
B、中級(jí)調(diào)度
C、低級(jí)調(diào)度
D、高級(jí)調(diào)度
10.死鎖問題的討論是針對(duì)(D )進(jìn)行。
A、某個(gè)進(jìn)程申請(qǐng)系統(tǒng)中不存在的資源
B、某個(gè)進(jìn)程申請(qǐng)資源數(shù)超過了系統(tǒng)擁有的最大資源數(shù)
C、硬件故障
D、多個(gè)并發(fā)進(jìn)程競爭獨(dú)占型資源
11.有關(guān)資源分配圖中存在環(huán)路和死鎖關(guān)系,正確的說法是( D)。
A、圖中無環(huán)路則系統(tǒng)可能存在死鎖
B、圖中無環(huán)路則系統(tǒng)肯定存在死鎖
C、圖中有環(huán)路則系統(tǒng)肯定存在死鎖
D、圖中有環(huán)路則系統(tǒng)可能不存在死鎖
解析:圖中無環(huán)路系統(tǒng)無死鎖,圖中有環(huán)路則系統(tǒng)可能存在死鎖
12.死鎖的預(yù)防方法中,不太可能的一種方法是( A)。
A、破環(huán)互斥條件
B、破壞請(qǐng)求和保持條件
C、破壞不剝奪條件
D、破壞循環(huán)等待條件
解析:產(chǎn)生死鎖必須同時(shí)具備下面四個(gè)必要條件,只要其中任一個(gè)條件不成立,死鎖就不會(huì)發(fā)生: (1) 互斥條件 (2) 請(qǐng)求和保持條件 (3) 不可搶占條件 (4) 循環(huán)等待條件
互斥:互斥條件是共享資源必須的,不僅不能改變,還應(yīng)加以保證請(qǐng)求和保持:必須保證進(jìn)程申請(qǐng)資源的時(shí)候沒有占有其他資源要求進(jìn)程在執(zhí)行前一次性申請(qǐng)全部的資源,只有沒有占有資源時(shí)才可以分配資源資源利用率低,可能出現(xiàn)饑餓改進(jìn):進(jìn)程只獲得運(yùn)行初期所需的資源后,便開始運(yùn)行;其后在運(yùn)行過程中逐步釋放已分配的且用畢的全部資源,然后再請(qǐng)求新資源
非搶占:如果一個(gè)進(jìn)程的申請(qǐng)沒有實(shí)現(xiàn),它要釋放所有占有的資源;先占的資源放入進(jìn)程等待資源列表中;進(jìn)程在重新得到舊的資源的時(shí)候可以重新開始。循環(huán)等待:對(duì)所有的資源類型排序進(jìn)行線性排序,并賦予不同的序號(hào),要求進(jìn)程按照遞增順序申請(qǐng)資源。如何規(guī)定每種資源的序號(hào)是十分重要的;限制新類型設(shè)備的增加;作業(yè)使用資源的順序與系統(tǒng)規(guī)定的順序不同;限制用戶簡單、自主的編程。
13.產(chǎn)生死鎖的原因可能是因?yàn)?C )。
A、進(jìn)程釋放資源
B、一個(gè)進(jìn)程進(jìn)入死循環(huán)
C、多個(gè)進(jìn)程競爭資源出現(xiàn)了循環(huán)等待
D、多個(gè)進(jìn)程競爭共享型設(shè)備
解析:競爭不可搶占性資源引起死鎖;競爭可消耗資源引起死鎖;進(jìn)程推進(jìn)順序不當(dāng)引起死鎖;
14.對(duì)資源采用按序分配策略能達(dá)到( A)的目的。
A、預(yù)防死鎖
B、避免死鎖
C、檢測死鎖
D、解除死鎖
15.多個(gè)進(jìn)程共享的系統(tǒng)資源不足時(shí)可能產(chǎn)生死鎖,但是不適當(dāng)?shù)?C )也可能產(chǎn)生死鎖。
A、進(jìn)程優(yōu)先權(quán)
B、資源的靜態(tài)分配
C、進(jìn)程的推進(jìn)順序
D、分配隊(duì)列優(yōu)先權(quán)
16.通常不采用( D)方法來解除死鎖。
A、終止一個(gè)死鎖進(jìn)程
B、終止所有的死鎖進(jìn)程
C、從死鎖進(jìn)程處搶奪資源
D、從非死鎖進(jìn)程處搶奪資源
17.下列進(jìn)程調(diào)度算法中,( A)可能會(huì)出現(xiàn)饑餓現(xiàn)象。
A、靜態(tài)優(yōu)先權(quán)算法
B、搶占式調(diào)度中采用動(dòng)態(tài)優(yōu)先權(quán)算法
C、分時(shí)處理中的時(shí)間片論戰(zhàn)調(diào)度算法
D、非搶占式調(diào)度中采用FIFO算法
解析:因?yàn)殪o態(tài)優(yōu)先算法,不管是可搶占的還是不可搶占的,都會(huì)發(fā)生饑餓的現(xiàn)象,因?yàn)?strong>優(yōu)先級(jí)低得進(jìn)程會(huì)長時(shí)間得不到運(yùn)行。
18.兩個(gè)進(jìn)程爭奪同一個(gè)資源(B )。
A、一定死鎖
B、不一定死鎖
C、只要互斥就不會(huì)死鎖
D、以上說法都不對(duì)
19.在處理死鎖的方法中,屬于“避免死鎖”的策略是(B )。
A、資源的有序分配
B、銀行家算法
C、優(yōu)先級(jí)調(diào)度
D、高響應(yīng)比優(yōu)先
解析:資源有序分配策略在于打破死鎖條件中的循環(huán)等待條件。
優(yōu)先級(jí)調(diào)度:就緒態(tài)的實(shí)時(shí)任務(wù)立即搶占非實(shí)時(shí)任務(wù)
20.當(dāng)進(jìn)程調(diào)度采用優(yōu)先級(jí)調(diào)度算法時(shí),從保證系統(tǒng)效率的角度來看,應(yīng)提高(B )進(jìn)程的優(yōu)先級(jí)。
A、連續(xù)占用處理器時(shí)間長的
B、在就緒隊(duì)列中等待時(shí)間長的
C、以計(jì)算為主的
D、用戶
21.一個(gè)作業(yè)8:00到達(dá)系統(tǒng),估計(jì)運(yùn)行時(shí)間為1h.若10:00開始執(zhí)行該作業(yè),其響應(yīng)比是(C )。
A、2
B、1
C、3
D、0.5
解析:
等待時(shí)長2h,要求服務(wù)時(shí)間1h,那么1+2/1=3
22.假設(shè)有5個(gè)批處理作業(yè)幾乎同時(shí)到達(dá)系統(tǒng),它們估計(jì)運(yùn)行時(shí)間為10,6,2,4,8分鐘,優(yōu)先級(jí)分別為3,5,2,1,4(5為最高優(yōu)先級(jí))。若采用優(yōu)先級(jí)調(diào)度算法,則平均周轉(zhuǎn)時(shí)間為( C)分鐘。
A、6
B、10
C、20
D、24
在題目中指出5個(gè)作業(yè)幾乎同時(shí)到達(dá)一個(gè)計(jì)算中心,其含義是任何調(diào)度算法(除了FCFS算法外)都可以認(rèn)為這5個(gè)作業(yè)是同時(shí)到達(dá)的,在調(diào)度過程中不需考慮其到達(dá)的順序。
| 作業(yè)B優(yōu)先級(jí)最高,被調(diào)入系統(tǒng)運(yùn)行 | |
| 作業(yè)A,C,D,E等待系統(tǒng)調(diào)度 | |
| 6(分鐘) | 作業(yè)B運(yùn)行完成 |
| 作業(yè)E優(yōu)先級(jí)最高,被調(diào)入系統(tǒng)運(yùn)行 | |
| 作業(yè)A,C,D等待系統(tǒng)調(diào)度 | |
| 14(分鐘) | 作業(yè)E運(yùn)行完成 |
| 作業(yè)A優(yōu)先級(jí)最高,被調(diào)入系統(tǒng)運(yùn)行 | |
| 作業(yè)C,D等待系統(tǒng)調(diào)度 | |
| 24(分鐘) | 作業(yè)A運(yùn)行完成 |
| 作業(yè)C優(yōu)先級(jí)最高,被調(diào)入系統(tǒng)運(yùn)行 | |
| 作業(yè)D等待系統(tǒng)調(diào)度 | |
| 26(分鐘) | 作業(yè)C運(yùn)行完成 |
| 作業(yè)D優(yōu)先級(jí)最高,被調(diào)入系統(tǒng)運(yùn)行 | |
| 30(分鐘) | 作業(yè)D運(yùn)行完成 |
最高優(yōu)先級(jí)優(yōu)先:各作業(yè)的執(zhí)行結(jié)束時(shí)間分別為:24,6,26,30,14
作業(yè)的平均周轉(zhuǎn)時(shí)間為:
T=∑Ti/n=(24+6+26+30+14)/5=20T=\sum_{}^{}T_i/n=(24+6+26+30+14)/5=20 T=∑?Ti?/n=(24+6+26+30+14)/5=20
23.設(shè)系統(tǒng)中有n個(gè)并發(fā)進(jìn)程,共同競爭資源X,且每個(gè)進(jìn)程都需要m個(gè)X資源,為使該系統(tǒng)不會(huì)發(fā)生死鎖,資源X最少要有( C)個(gè)。
A、n*m+1
B、n*m+n
C、n*m+1-n
D、無法預(yù)計(jì)
解析:
最極端的情況是每個(gè)進(jìn)城有m-1個(gè)資源,而總資源一共就有n*(m-1)個(gè),那么這個(gè)時(shí)候也會(huì)發(fā)生死鎖,這個(gè)時(shí)候只需要再多出一個(gè)資源,就可以保證某一個(gè)進(jìn)城執(zhí)行成功,然后執(zhí)行成功以后,就會(huì)有更多的資源釋放,后面的進(jìn)城也可以執(zhí)行。所以最終的結(jié)果就是n*(m-1)+1
24.若進(jìn)程P一旦被喚醒就能夠投入運(yùn)行,系統(tǒng)可能為( D)。
A、分時(shí)系統(tǒng),進(jìn)程P的優(yōu)先級(jí)最高
B、搶占調(diào)度方式,就緒隊(duì)列上的所有進(jìn)程的優(yōu)先級(jí)都比進(jìn)程P低
C、就緒隊(duì)列為空隊(duì)列
D、搶占調(diào)度方式,進(jìn)程P的優(yōu)先級(jí)高于當(dāng)前運(yùn)行的進(jìn)程
25.某系統(tǒng)采用銀行家算法,則下列敘述正確的是(B )。
A、系統(tǒng)處于不安全狀態(tài)時(shí)一定會(huì)發(fā)生死鎖
B、系統(tǒng)處于不安全狀態(tài)時(shí)可能會(huì)發(fā)生死鎖
C、系統(tǒng)處于安全狀態(tài)時(shí)一定會(huì)發(fā)生死鎖
D、系統(tǒng)處于安全狀態(tài)時(shí)可能會(huì)發(fā)生死鎖
解析:系統(tǒng)處于安全狀態(tài)時(shí),一定不會(huì)發(fā)生死鎖;系統(tǒng)處于不安全狀態(tài)時(shí),不一定會(huì)發(fā)生死鎖;
26.系統(tǒng)中有四個(gè)進(jìn)程P1、P2、P3、P4,有四種類型的資源:A、B、C、D。系統(tǒng)最初四類資源總數(shù)為(5,7,7,2)。P1、P2、P3、P4的對(duì)各類資源的最大需求分別為(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 ,4, 1)(1 ,2, 2,1)。在T0時(shí)刻P1、P2、P3、P4已經(jīng)分配到的資源分別為:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。問TO時(shí)刻系統(tǒng)的可用資源向量是( C)。
A、(1,1,2,2)
B、(1,2,2,1)
C、(1,0,2,0)
D、(2,1,2,1)
解析:
| R1 | R2 | R3 | R4 | R1 | R2 | R3 | R4 | R1 | R2 | R3 | R4 | |
| P1 | 3 | 2 | 1 | 2 | 0 | 2 | 0 | 1 | 1 | 0 | 2 | 0 |
| P2 | 4 | 5 | 3 | 2 | 2 | 2 | 3 | 0 | ||||
| P3 | 2 | 3 | 4 | 1 | 1 | 1 | 2 | 0 | ||||
| P4 | 1 | 2 | 2 | 1 | 1 | 2 | 0 | 1 |
系統(tǒng)中資源總量為某時(shí)刻系統(tǒng)中可用資源量與各進(jìn)程已分配資源量之和,各進(jìn)程對(duì)資源的需求量為各進(jìn)程對(duì)資源的最大需求量與進(jìn)程已分配資源量之差
(5,7,7,2)-(0,2,0,1)-(2,2,3,0)-(1,1,2,0)-(1,2,0,1)=(1,0,2,0)
27.系統(tǒng)中有四個(gè)進(jìn)程P1、P2、P3、P4,有四種類型的資源:A、B、C、D。系統(tǒng)最初四類資源總數(shù)為(5,7,7,2)。P1、P2、P3、P4的對(duì)各類資源的最大需求分別為(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 .4, 1)(1 ,2, 2,1)。在T0時(shí)刻P1、P2、P3、P4已經(jīng)分配到的資源分別為:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。問TO時(shí)刻P3的需求矩陣是(B )。
A、(1,2,3,1)
B、(1,2,2,1)
C、(1,2,3,2)
D、(2,2,3,1)
解析:P3的需求矩陣=(2,3,4,1)-(1,1,2,0)=(1,2,2,1)
P1=(3,2,1,2)-(0,2,0,1)=(3,0,1,1)
P2=(4,5,3,2)-(2,2,3,0)=(2,3,0,2)
P4=(1,2,2,1)-(1,2,0,1)=(0,0,2,0)
28.系統(tǒng)中有四個(gè)進(jìn)程P1、P2、P3、P4,有四種類型的資源:A、B、C、D。系統(tǒng)最初四類資源總數(shù)為(5,7,7,2)。P1、P2、P3、P4的對(duì)各類資源的最大需求分別為(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 .4, 1)(1 ,2, 2,1)。在T0時(shí)刻P1、P2、P3、P4已經(jīng)分配到的資源分別為:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。問TO時(shí)刻的安全序列是(D )。
A、{P3,P4,P1,P2}
B、{P1,P4,P3,P2}
C、{P2,P4,P3,P1}
D、{P4,P3,P1,P2}
解析:available(1,0,2,0)NEED矩陣見上題
P4夠先釋放
29.系統(tǒng)中有四個(gè)進(jìn)程P1、P2、P3、P4,有四種類型的資源:A、B、C、D。系統(tǒng)最初四類資源總數(shù)為(5,7,7,2)。P1、P2、P3、P4的對(duì)各類資源的最大需求分別為(3 ,2, 1 ,2)(4, 5 ,3, 2)(2 ,3 .4, 1)(1 ,2, 2,1)。在T0時(shí)刻P1、P2、P3、P4已經(jīng)分配到的資源分別為:(0, 2, 0, 1)(2 ,2, 3, 0)(1, 1, 2, 0)(1 ,2 ,0, 1)。問TO時(shí)刻P1請(qǐng)求資源(0,0,2,0),是否能實(shí)施資源分配?( B )。
A、是
B、否
解析:(0,0,2,0)>(3,0,1,1)不滿足Request?i[j]≤Need[i, j],出錯(cuò)
30.在系統(tǒng)中有5個(gè)作業(yè)A,B,C,D,E,他們的到達(dá)時(shí)間分別為0,2,4,6,8。運(yùn)行時(shí)間分別為3,6,4,5,2。系統(tǒng)采用FCFS調(diào)度算法的平均帶權(quán)周轉(zhuǎn)時(shí)間是(A)
A、2.56
B、3.4
C、6
D、8.6
解析:先來先服務(wù)(first-come first-served,FCFS)調(diào)度算法
| A | 0 | 3 | 0 | 0 | 3 | 3 | 1 |
| B | 2 | 6 | 3 | 1 | 9 | 7 | 1.167 |
| C | 4 | 4 | 9 | 5 | 13 | 9 | 2.25 |
| D | 6 | 5 | 13 | 7 | 18 | 12 | 2.4 |
| E | 8 | 2 | 18 | 10 | 20 | 12 | 6 |
平均帶權(quán)周轉(zhuǎn)時(shí)間 W=(1+1.167+2.25+2.4+6)/5=2.56
31.在系統(tǒng)中有5個(gè)作業(yè)A,B,C,D,E,他們的到達(dá)時(shí)間分別為0,2,4,6,8。運(yùn)行時(shí)間分別為3,6,4,5,2。系統(tǒng)采用SJF調(diào)度算法的平均帶權(quán)周轉(zhuǎn)時(shí)間是(D)
A、7.6
B、4
C、3.5
D、1.84
解析:搶占式
| A | 0 | 3 | 0 | 0 | 3 | 3 | 1 |
| B | 2 | 6 | 9 | 7 | 15 | 13 | 2.17 |
| C | 4 | 4 | 4 | 0 | 8 | 4 | 1 |
| D | 6 | 5 | 15 | 9 | 20 | 14 | 2.8 |
| E | 8 | 2 | 8 | 6 | 10 | 2 | 1 |
平均帶權(quán)周轉(zhuǎn)時(shí)間W=(1+2.17+1+2.8+1)/5=1.594
表格解釋:A 結(jié)束之后,B 要開始,執(zhí)行到第四個(gè)時(shí)間點(diǎn)的時(shí)候,C 到達(dá),那么B 這個(gè)時(shí)候已經(jīng)執(zhí)行了1個(gè)時(shí)間,還剩下5個(gè)服務(wù)時(shí)間,C 需要4個(gè)服務(wù)時(shí)間,所以C 搶占B ,C 結(jié)束以后,E 開始執(zhí)行,結(jié)束以后,發(fā)現(xiàn)B 和D 需要服務(wù)時(shí)間一樣,那么應(yīng)該讓先到的進(jìn)程B 繼續(xù)執(zhí)行,最后進(jìn)行E 的執(zhí)行
| A | 0 | 3 | 0 | 0 | 3 | 3 | 1 |
| B | 2 | 6 | 3 | 1 | 9 | 7 | 1.17 |
| C | 4 | 4 | 11 | 7 | 15 | 11 | 2.75 |
| D | 6 | 5 | 15 | 9 | 20 | 14 | 2.8 |
| E | 8 | 2 | 9 | 1 | 11 | 3 | 1.5 |
簡單說一下,A 完成的時(shí)候,B 已經(jīng)到達(dá),這個(gè)時(shí)候顯然需要B 開始,由于不是非搶占式,每個(gè)進(jìn)程如果開始就必須持續(xù)做直到做完,所以B 結(jié)束的時(shí)候也就是第9 個(gè)時(shí)間點(diǎn),這時(shí),C D E 都已經(jīng)到達(dá),那么應(yīng)該開始誰的服務(wù)呢?因?yàn)镋 的服務(wù)時(shí)間最短,所以應(yīng)該讓E 繼續(xù),剩下同理
平均帶權(quán)周轉(zhuǎn)時(shí)間W=(1+1.17+2.75+2.8+1.5)/5=1.844
32.在系統(tǒng)中有5個(gè)作業(yè)A,B,C,D,E,他們的到達(dá)時(shí)間分別為0,2,4,6,8。運(yùn)行時(shí)間分別為3,6,4,5,2。系統(tǒng)采用高響應(yīng)比調(diào)度算法的平均帶權(quán)周轉(zhuǎn)時(shí)間是(C)
A、3
B、8
C、2.14
D、5
解析:
| A | 0 | 3 | 0 | 0 | 3 | 3 | 1 |
| B | 2 | 6 | 3 | 1 | 9 | 7 | 1.17 |
| C | 4 | 4 | 9 | 5 | 13 | 9 | 2.25 |
| D | 6 | 5 | 15 | 9 | 20 | 14 | 2.8 |
| E | 8 | 2 | 13 | 5 | 15 | 7 | 3.5 |
高響應(yīng)比調(diào)度算法的平均帶權(quán)周轉(zhuǎn)時(shí)間W=(1+1.17+2.25+2.8+3.5)/5=2.144
響應(yīng)比:A:1 B:(1+6)/6=1.167 C:(5+4)/4=2.25 D:(9+5)/5=2.8 E:(5+2)/2=3.5
A:1 B:2 C:3 D:5 E:4
注意一點(diǎn),此算法并非搶占,只要不是搶占調(diào)度,就必須一個(gè)一個(gè)的來,這個(gè)執(zhí)行完畢才能執(zhí)行下一個(gè)
第四章 進(jìn)程同步
1.某頁式存儲(chǔ)管理系統(tǒng)中,地址寄存器長度為24位,其中頁號(hào)占14位, 則主存的分塊大小應(yīng)該是( A )字節(jié)。
A、 2^10
B、2^14
C、2^24
D、14
解析:在分頁存儲(chǔ)管理系統(tǒng)中,其地址結(jié)構(gòu)如下:頁號(hào)P位移量W其中,頁號(hào)P占了14位,地址總長度為24位,那么位移量W的長度就應(yīng)如下計(jì)算:位移量W的長度=地址總長度-頁號(hào)P長度=24-14=10位所以,在每個(gè)主存分塊的大小是2^10字節(jié)。
2.在固定分區(qū)分配中,每個(gè)分區(qū)的大小是(C)。
A、相同
B、隨作業(yè)長度變化
C、可以不同但預(yù)先固定
D、可以不同但根據(jù)作業(yè)長度固定
解析:固定分區(qū)分配,是滿足多道程序設(shè)計(jì)的存儲(chǔ)技術(shù),可以將內(nèi)存劃分成多個(gè)區(qū),每個(gè)區(qū)運(yùn)行一個(gè)作業(yè),從而達(dá)到多道程序設(shè)計(jì)的多個(gè)作業(yè)同時(shí)在內(nèi)存中的設(shè)計(jì)。 但是固定分區(qū)分配是提前將內(nèi)存劃分成多個(gè)區(qū),區(qū)的大小可以不同,但是劃分好后,個(gè)數(shù)和大小都不能發(fā)生改變。 作業(yè)到來,選擇一個(gè)合適大小的區(qū)放置,但是作業(yè)長度不一,不會(huì)有太合適的區(qū)恰好滿足其大小,從而會(huì)造成區(qū)空間的浪費(fèi),并且此浪費(fèi)非常嚴(yán)重。
3.在可變式分區(qū)分配方案中,某一作業(yè)完成后系統(tǒng)收回其主存空間,并與相鄰空閑區(qū)合并,造成空閑數(shù)減1的情況是(D )。
A、無上鄰空閑區(qū),也無下鄰空閑區(qū)
B、有上鄰空閑區(qū),但無下鄰空閑區(qū)
C、有下鄰空閑區(qū),但無上鄰空閑區(qū)
D、有上鄰空閑區(qū),也有下鄰空閑區(qū)
解析:選項(xiàng)A的情況,回收區(qū)作為單獨(dú)的空閑分區(qū)記入空閑區(qū)說明表;選項(xiàng)B和選項(xiàng)C類似,回收區(qū)與相鄰的一個(gè)空閑分區(qū)合并后,修改相應(yīng)的空閑區(qū)說明表項(xiàng),空閑分區(qū)數(shù)不會(huì)改變;只有當(dāng)上、下都要鄰接空閑分區(qū)時(shí),系統(tǒng)將它們與回收區(qū)合并成一個(gè)空閑分區(qū),從而空閑分區(qū)數(shù)會(huì)減少。因此本題選擇D。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-v5PAa98p-1652544427119)(/…/…/…/…/…/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B9%A0%E9%A2%98%E9%9B%86.assets/image-20220430165216054.png)]
4.動(dòng)態(tài)重定位技術(shù)依賴于(B)。
A、重定位裝入程序
B、重定位寄存器
C、地址機(jī)構(gòu)
D、目標(biāo)程序
解析:重定位即地址變換,動(dòng)態(tài)重定位依賴硬件,也就是基址寄存器,也就是重定位寄存器
5.很好地解決了“零頭”問題的存儲(chǔ)管理方法是(A)。
A、頁式存儲(chǔ)管理
B、段式存儲(chǔ)管理
C、多重分區(qū)管理
D、可變式分區(qū)管理
解析:。內(nèi)零頭是指分配給作業(yè)的存儲(chǔ)空間中未被利用的部分,外零頭是指系統(tǒng)中無法利用的小存儲(chǔ)塊。在各種存儲(chǔ)器管理方法中固定分區(qū)的分配方式會(huì)產(chǎn)生內(nèi)零頭,因?yàn)槭钦页鲆粋€(gè)滿足作業(yè)要求的空閑分區(qū)分配給作業(yè),大小不一定剛好合適,分區(qū)中有一部分存儲(chǔ)空間會(huì)被浪費(fèi)。在可變式分區(qū)分配中,是按照作業(yè)的大小找出一個(gè)分區(qū)來分配如果大于作業(yè)申請(qǐng)的空間,則一分為二,剩下的一分部作為系統(tǒng)的空閑分區(qū).有可能很小無法利用而成為外零頭。為了解決外零頭的問題,提出了離散的分配方式,在分頁式存儲(chǔ)管理中,存儲(chǔ)空間被分面與頁大小相等的物理塊,作業(yè)的大小不可能都是物理塊的整數(shù)倍,因此在作業(yè)的最后一頁中有可能有部分空間未被利用,屬于內(nèi)零頭。分段式存儲(chǔ)管理中,其內(nèi)存分配方式類似于動(dòng)態(tài)分區(qū)的分配,因此會(huì)產(chǎn)生外零頭。段頁式存儲(chǔ)管理中,其內(nèi)存分配方式類似于頁式的分配.因此會(huì)產(chǎn)生內(nèi)零頭。
6.某系統(tǒng)采用固定分區(qū)分配存儲(chǔ)管理,內(nèi)存空間為640K,其中地址0到40K被系統(tǒng)占用,其他空間按分區(qū)大小相等的方法劃分為4個(gè)分區(qū),則當(dāng)有大小分別為7KB、90KB、30KB、20KB的作業(yè)進(jìn)入內(nèi)存時(shí),浪費(fèi)的內(nèi)存為( C )。
A、3KB
B、450KB
C、453KB
D、147KB
解析:固定分區(qū):用戶程序需要裝入時(shí),內(nèi)存分配程序檢索該表,找出一個(gè)能滿足要求尚未分配的分區(qū),分配給該程序,并將其表項(xiàng)中的狀態(tài)置為“已分配”。若未找到大小足夠的分區(qū),則拒絕為用戶程序分配內(nèi)存。
| 1 | 150 | 190 | A | 7 | |
| 2 | 150 | 340 | B | 90 | |
| 3 | 150 | 490 | C | 30 | |
| 4 | 150 | 640 | D | 20 |
7+90+30+20=147
600-147=453
7.作業(yè)在執(zhí)行中發(fā)生了缺頁中斷,經(jīng)操作系統(tǒng)處理后,應(yīng)讓其執(zhí)行(B )指令。
A、被中斷的前一條
B、被中斷的
C、被中斷的后一條
D、啟動(dòng)時(shí)的第一條
解析:缺頁中斷是因?yàn)橐L問的指令所在的頁面不在內(nèi)存中,需要先將相關(guān)頁面帶入內(nèi)存才能執(zhí)行。因此,在帶入相關(guān)頁面后,需要執(zhí)行剛才被中斷的指令。
8.某基于動(dòng)態(tài)分區(qū)存儲(chǔ)管理的計(jì)算機(jī),其主存容量為55MB(初始為空),采用最佳適配(Best Fit)算法,分配和釋放的順序?yàn)?分配15MB,分配30MB,釋放15MB,分配8MB,分配6MB,此時(shí)主存中最大空閑分區(qū)的大小是(B ).
A、7MB
B、9MB
C、10MB
D、15MB
解析:最佳適應(yīng)(best fit,BF)算法
算法思想:由于動(dòng)態(tài)分配是一種連續(xù)分配方式,為各進(jìn)程分配的空間必須是連續(xù)的一整片區(qū)域。一次為保證當(dāng)“大進(jìn)程”到來時(shí)能有連續(xù)的大片空間,可以盡可能多地留下大片的空閑區(qū),即優(yōu)先使用更小的空閑區(qū)。
如何實(shí)現(xiàn):要求按空閑區(qū)大小從小到大的次序組成空閑區(qū)表(隊(duì)列)。當(dāng)進(jìn)程申請(qǐng)一個(gè)存儲(chǔ)區(qū)時(shí),系統(tǒng)從表頭開始查找,當(dāng)找到第一個(gè)滿足要求的空閑區(qū)時(shí),停止查找,并且這個(gè)空閑區(qū)是最佳的空閑區(qū)。所謂最佳即選中的空閑區(qū)是滿足要求的最小空閑區(qū)。
其主存容量為55mb(初試為空間),第一步分配15MB以后還有55MB-15MB=40MB,第二步分配30MB以后還有 40MB-30MB=10MB,第三步釋放15MB以后有兩個(gè)空閑區(qū)15MB,和10MB,第四步分配8MB,則空閑區(qū)為15MB,2MB,第五步分配 6MB,則空閑區(qū)為9MB,2MB
9.在頁式存儲(chǔ)管理中選擇頁面的大小,需要考慮下列(C)因素。 I.頁面大的好處是頁表比較少 II.頁面小的好處是可以減少由內(nèi)碎片引起的內(nèi)存浪費(fèi) Ⅲ.影響磁盤訪問時(shí)間的主要因素通常不是頁面大小,所以使用時(shí)優(yōu)先考慮較大的頁面
A、I和Ⅲ
B、II和Ⅲ
C、Ⅰ和Ⅱ
D、I、Ⅱ和Ⅲ
解析:頁面大,用于管理頁面的頁表就少,但是頁內(nèi)碎片會(huì)比較大;頁面小,用于管理頁面的頁表就大,但是頁內(nèi)碎片少。通過適當(dāng)?shù)挠?jì)算可以獲得較佳的頁面大小和較小的系統(tǒng)開銷。
10.在分頁系統(tǒng)環(huán)境下,程序員編制的程序,其地址空間是連續(xù)的,分頁是由(D)完成的。
A、程序員
B、編譯地址
C、用戶
D、系統(tǒng)
11.把邏輯地址轉(zhuǎn)換成物理地址的工作稱為重定位。 正確
12.采用動(dòng)態(tài)重定位技術(shù)的系統(tǒng),可執(zhí)行程序可以不經(jīng)任何改動(dòng),而裝入物理內(nèi)存 正確
13.在現(xiàn)代操作系統(tǒng)中,不允許用戶干預(yù)內(nèi)存的分配。 正確
14.存儲(chǔ)保護(hù)的目的是限制內(nèi)存的分配。 錯(cuò)誤
解析:是為了保護(hù)進(jìn)程之間相互不受影響
15.存儲(chǔ)管理的主要目的是擴(kuò)大內(nèi)存空間。 錯(cuò)誤
解析:儲(chǔ)存管理的目的是實(shí)現(xiàn)擴(kuò)充主存容量,并提高主存利用效率。
第五章 存儲(chǔ)器管理
1.虛擬存儲(chǔ)器的最大容量是(C )。
A、由作業(yè)的地址空間決定
B、是任意的
C、由計(jì)算機(jī)的地址結(jié)構(gòu)決定
D、為內(nèi)外存容量之和
解析:虛存的最大容量由CPU的地址長度決定。
虛存的實(shí)際容量為內(nèi)存和外存容量之和;
2.實(shí)現(xiàn)虛擬存儲(chǔ)器的目的是( D ) 。
A、實(shí)現(xiàn)存儲(chǔ)保護(hù)
B、實(shí)現(xiàn)程序浮動(dòng)
C、擴(kuò)充輔存容量
D、擴(kuò)充主存容量
3.下列諸項(xiàng)中,( A )不是影響缺頁中斷率的主要因素。
A、缺頁中斷服務(wù)速度
B、分配給作業(yè)(進(jìn)程)的物理塊數(shù)
C、系統(tǒng)規(guī)定頁面的大小
D、頁面調(diào)度算法
解析:影響因素 :
(1)頁面大小。 頁面劃分比較大,則缺頁率較低;反之,缺頁率較高。 (2)進(jìn)程分配的物理塊數(shù)。 所分配的物理塊越多,缺頁率越低;反之,越高。 (3)頁面置換算法。 算法的優(yōu)劣決定了進(jìn)程執(zhí)行過程中缺頁中斷的次數(shù),因此缺頁率是衡量頁面置換算法的重要指標(biāo)。 (4)程序固有特性。 程序本身的編制方法對(duì)缺頁中斷次數(shù)有影響,根據(jù)程序執(zhí)行的 局部性原理 ,程序編制的局部化程度越高相應(yīng)執(zhí)行時(shí)的缺頁程度越低。
4.下面選項(xiàng)中哪一個(gè)不是請(qǐng)求分段存儲(chǔ)管理方式所需要的硬件支持( B ) 。
A、段表機(jī)制
B、缺段中斷機(jī)構(gòu)
C、缺頁中斷機(jī)構(gòu)
D、動(dòng)態(tài)地址變換機(jī)制
解析:請(qǐng)求分段中的硬件支持
- 請(qǐng)求段表機(jī)制
- 字段說明
- 缺頁中斷機(jī)構(gòu)
- 地址變換機(jī)構(gòu)
5.下面關(guān)于存儲(chǔ)管理的敘述中,正確的是(D).
A、存儲(chǔ)保護(hù)的目的是限制內(nèi)存的分配
B、在內(nèi)存為M、有N個(gè)用戶的分時(shí)系統(tǒng)中,每個(gè)用戶占用M/N的內(nèi)存空間
C、在虛擬內(nèi)存系統(tǒng)中,只要磁盤空間無限大,作業(yè)就能擁有任意大的編址空間
D、實(shí)現(xiàn)虛擬內(nèi)存管理必須有相應(yīng)硬件的支持
解析:A:是為了保護(hù)進(jìn)程之間相互不受影響
B:內(nèi)存可以共同調(diào)用
C:虛擬內(nèi)存大小=主存+輔存,地址總線寬度) 所以,64位系統(tǒng),最多2^64的地址空間。不是無上限
D:實(shí)現(xiàn)虛擬存儲(chǔ)器需要三方面的硬件支持:
1、請(qǐng)求分頁/段的頁表或段表機(jī)制;
請(qǐng)求分頁存儲(chǔ)管理是建立在分頁存儲(chǔ)管埋的基礎(chǔ)上,并結(jié)合虛擬存儲(chǔ)系統(tǒng)原理實(shí)現(xiàn)的,是目前常用的一種實(shí)現(xiàn)虛擬存儲(chǔ)器的方式
2、缺頁/段中斷機(jī)構(gòu);
作用就是就是要訪問的頁不在主存,需要操作系統(tǒng)將其調(diào)入主存后再進(jìn)行訪問。在這個(gè)時(shí)候,被內(nèi)存映射的文件實(shí)際上成了一個(gè)分頁交換文件。
3、地址變換機(jī)構(gòu)。
當(dāng)進(jìn)程要訪問某個(gè)邏輯地址中的數(shù)據(jù)時(shí),分頁地址變換機(jī)構(gòu)會(huì)自動(dòng)地將有效地址(相對(duì)地址)分為頁號(hào)頁內(nèi)地址兩部分,再以頁號(hào)為索引去檢索頁表。查找操作由硬件執(zhí)行。在執(zhí)行檢索之前,先將頁號(hào)與頁表長度進(jìn)行比較,如果頁號(hào)大于或等于頁表長度,則表示本次所訪問的地址已超越進(jìn)程的地址空間。于是,這一錯(cuò)誤將被系統(tǒng)發(fā)現(xiàn)并產(chǎn)生一地址越界中斷。若未出現(xiàn)越界錯(cuò)誤,則將頁表始址與頁號(hào)和頁表項(xiàng)長度的乘積相加,便得到該表項(xiàng)在頁表中的位置,于是可從中得到該頁的物理塊號(hào),將之裝入物理地址寄存器中。與此同時(shí),再將有效地址寄存器中的頁內(nèi)地址送入物理地址寄存器的塊內(nèi)地址字段中。這樣便完成了從邏輯地址到物理地址的變換。
6.下列關(guān)于虛擬存儲(chǔ)器的敘述中,正確的是(B)
A、虛擬存儲(chǔ)只能基于連續(xù)分配技術(shù)
B、虛擬存儲(chǔ)只能基于非連續(xù)分配技術(shù)
C、虛擬存儲(chǔ)容量只受外存容量的限制
D、虛擬存儲(chǔ)容量只受內(nèi)存容量的限制
解析:虛擬內(nèi)存的容量是受到內(nèi)外存容量和計(jì)算機(jī)地址位數(shù)限制的。
虛擬內(nèi)存技術(shù)的核心就是建立虛擬地址和物理地址的映射關(guān)系, 其能夠表現(xiàn)出比實(shí)際內(nèi)存更大的內(nèi)存的原因是因?yàn)榇嬖陧撁嬷脫Q, 通過置換,可以把一部分磁盤空間當(dāng)作內(nèi)存使用。 可見,虛擬內(nèi)存包括兩大部分,一部分磁盤空間和實(shí)際內(nèi)存 這兩者顯然只能是不連續(xù)分配的。 另外如果連續(xù)分配的話,也沒必要用虛擬內(nèi)存了,都不用邏輯地址,直接用物理地址就好了, 當(dāng)然也就沒法建立一個(gè)映射去自由分配內(nèi)存了。
7.進(jìn)程在執(zhí)行中發(fā)生了缺頁中斷,經(jīng)操作系統(tǒng)處理后,應(yīng)讓其執(zhí)行(B)指令。
A、被中斷的前一條
B、被中斷的那一條
C、被中斷的后一條
D、啟動(dòng)時(shí)的第一條
8.若用戶進(jìn)程訪問內(nèi)存時(shí)產(chǎn)生缺頁,則下列選項(xiàng)中,操作系統(tǒng)可能執(zhí)行的操作是(B). I.處理越界錯(cuò) II.置換頁 Ⅲ.分配內(nèi)存
A、僅I、Ⅱ
B、僅Ⅱ、Ⅲ
C、僅I、Ⅲ
D、I、II和IⅢ
解析:當(dāng)CPU發(fā)現(xiàn)所請(qǐng)求的內(nèi)存地址中沒有指令,就會(huì)發(fā)出缺頁中斷。
1:處理越界,很顯然只有已經(jīng)加載到內(nèi)存的數(shù)組或其他單元才可能出現(xiàn)訪問越界的情況,而發(fā)生缺頁中斷,說明還沒有把數(shù)據(jù)裝載到內(nèi)存
2:發(fā)生缺頁后,首先檢查內(nèi)存單元是否有空閑頁,如果沒有,操作系統(tǒng)會(huì)根據(jù)頁面置換算法將一部分頁面置換出去,然后將缺頁數(shù)據(jù)置換進(jìn)來。
如果有,就會(huì)發(fā)生答案3的情況,直接將數(shù)據(jù)置換到內(nèi)存
但是如果調(diào)頁時(shí)邏輯地址中的頁號(hào)超過頁表的范圍會(huì)產(chǎn)生越界中斷,改過程由硬件完成。并不是操作系統(tǒng)的任務(wù)。在判斷缺頁前首先就會(huì)判斷是否越界
在處理邏輯地址,先對(duì)邏輯地址求頁號(hào),若頁號(hào)大于用戶空間的最大頁號(hào),則發(fā)生越界中斷,就此結(jié)束不會(huì)判斷是否缺頁。若頁號(hào)合理,則會(huì)進(jìn)行對(duì)是否缺頁按照相應(yīng)的調(diào)度算法,置換頁面或者分配內(nèi)存。綜上,發(fā)生缺頁時(shí),說明地址合法,不存在越界,當(dāng)然就不會(huì)了去越界處理了
9.為使虛存系統(tǒng)有效地發(fā)揮其預(yù)期的作用,所運(yùn)行的程序應(yīng)具有的特性是?.
A、該程序不應(yīng)含有過多的I/O操作
B、該程序的大小不應(yīng)超過實(shí)際的內(nèi)存容量
C、該程序應(yīng)具有較好的局部性
D、該程序的指令相關(guān)性不應(yīng)過多
解析:虛擬存儲(chǔ)技術(shù)是基于程序的局部性原理。局部性越好虛擬存儲(chǔ)系統(tǒng)越能更好地發(fā)揮其作用。
10.下面關(guān)于請(qǐng)求頁式系統(tǒng)的頁面調(diào)度算法中,說法錯(cuò)誤的是(C)
A、一個(gè)好的頁面調(diào)度算法應(yīng)減少和避免抖動(dòng)現(xiàn)象
B、FIFO算法實(shí)現(xiàn)簡單,選擇最先進(jìn)入主存儲(chǔ)器的頁面調(diào)出
C、LRU算法基于局部性原理,首先調(diào)出最近一段時(shí)間內(nèi)最長時(shí)間未被訪問過的頁面
D、CLOCK算法首先調(diào)出一段時(shí)間內(nèi)被訪問次數(shù)多的頁面
解析:先進(jìn)先出(FIFO)頁面置換算法:
基本思想:總是先淘汰那些駐留在內(nèi)存時(shí)間最長的頁面,即先進(jìn)入內(nèi)存的頁面先被置換掉。理由是:最先進(jìn)入內(nèi)存的頁面不再被訪問的可能性最大。引入指針將進(jìn)入內(nèi)存的頁面按時(shí)間的先后次序鏈成隊(duì)列,新進(jìn)入的頁面從隊(duì)尾入隊(duì),淘汰總是從隊(duì)列頭進(jìn)行。
最近最久未使用和最少使用置換算法(LRU):
LRU(Least Recently Used)置換算法的描述:選擇內(nèi)存中最近一段時(shí)間里較久未被訪問的頁面予以淘汰。性能接近最佳置換算法。根據(jù)程序局部性原理,那些剛被使用過的頁面,可能馬上還要被使用,而在較長時(shí)間里未被使用的頁面,可能不會(huì)馬上使用到。由于需要記錄頁面使用時(shí)間的先后關(guān)系,硬件開銷太大。
最近最少使用,簡單來說就是將數(shù)據(jù)塊中,每次使用過的數(shù)據(jù)放在數(shù)據(jù)塊的最前端,然后將存在的時(shí)間最長的,也就是數(shù)據(jù)塊的末端的數(shù)據(jù)剔除掉這就是LRU算法
Clock置換算法:
簡單的Clock置換算法 :每頁有一個(gè)使用訪問位,將內(nèi)存中的所有頁面通過鏈接指針鏈接成一個(gè)循環(huán)隊(duì)列。 當(dāng)頁面被裝入內(nèi)存,或被訪問,則置訪問位=1。 尋找訪問位=0的頁面作為被置換頁。指針經(jīng)過的訪問位=1的頁都修改為0。當(dāng)淘汰一個(gè)頁面時(shí),只需檢查頁的訪問位。如果是0,就選擇該頁換出;如果是1,則將它置為0,暫不換出,繼續(xù)掃描下一個(gè)頁面。若第一輪掃描中所有頁面都是1,則將這些頁面的訪問位依次置為0后,再進(jìn)行第二輪掃描。(第二輪掃描中一定會(huì)有訪問位為0的頁面,因此簡單的CLOCK算法選擇一個(gè)淘汰頁面最多會(huì)經(jīng)過兩次掃描)
11.在頁面置換策略中,(A)策略可能引起抖動(dòng)。
A、FIFO
B、LRU
C、沒有一種
D、所有
解析:堆棧型頁面置換策略不會(huì)引起抖動(dòng),LRU屬于堆棧型頁面置換策略。而FIFO基于隊(duì)列實(shí)現(xiàn),不屬于堆棧型頁面置換策略。
12.在虛擬分頁存儲(chǔ)管理系統(tǒng)中,若進(jìn)程訪問的頁面不在主存中,且主存中沒有可用的空閑幀時(shí),系統(tǒng)正確的處理順序?yàn)?#xff08;C).
A、決定淘汰頁→頁面調(diào)出→缺頁中斷→頁面調(diào)入
B、決定淘汰頁→頁面調(diào)入→缺頁中斷→頁面調(diào)出
C、缺頁中斷→決定淘汰頁→頁面調(diào)出→頁面調(diào)入
D、缺頁中斷→決定淘汰頁→頁面調(diào)入→頁面調(diào)出
解析:缺頁中斷→決定淘汰頁→頁面調(diào)出→頁面調(diào)入
13.下列措施中,能加快虛實(shí)地址轉(zhuǎn)換的是(C). Ⅰ.增大快表( TLB)容量 Ⅱ.讓頁表常駐內(nèi)存 Ⅲ.增大交換區(qū)( swap )
A、僅Ⅰ
B、僅Ⅱ
C、僅I、Ⅱ
D、僅Ⅱ、Ⅲ
解析:快表存放在高速緩存中,增大快表相當(dāng)于增大了高速緩存。會(huì)增速
頁表從硬盤搬到內(nèi)存中,內(nèi)存的訪問速度高于硬盤。也會(huì)增速
14.虛地址就是程序執(zhí)行時(shí)所要訪問的內(nèi)存物理地址。該說法對(duì)還是錯(cuò)(A)
A、錯(cuò)
B、對(duì)
解析:虛地址通常指的是邏輯地址,而程序執(zhí)行所要訪問的內(nèi)存地址指的是物理地址。
15.采用虛擬存儲(chǔ)器的前提是程序的兩個(gè)特點(diǎn),—是程序執(zhí)行時(shí)某些部分是互斥的、二是程序的執(zhí)行往往具有( C )。
A、順序性
B、并發(fā)性
C、局部性
D、并行性
16.系統(tǒng)“抖動(dòng)”現(xiàn)象的發(fā)生是由(A )引起的。
A、置換算法選擇不當(dāng)
B、交換的信息量過大
C、內(nèi)存容量充足
D、請(qǐng)求頁式管理方案
17.虛擬存儲(chǔ)技術(shù)不能以(A )為基礎(chǔ)。
A、分區(qū)存儲(chǔ)管理
B、段式存儲(chǔ)管理
C、頁式存儲(chǔ)管理
D、段頁式存儲(chǔ)管理
解析:虛擬存儲(chǔ)技術(shù)的出現(xiàn),是建立在程序具有局部性的原理上的,虛擬內(nèi)存只有在非連續(xù)存儲(chǔ)管理中才存在:頁式存儲(chǔ)、段式存儲(chǔ)、段頁式存儲(chǔ)。而分區(qū)管理,是一種連續(xù)存儲(chǔ)管理的方案。
18.當(dāng)系統(tǒng)發(fā)生抖動(dòng)時(shí),可以采取的有效措施是(A)。Ⅰ.撤銷部分進(jìn)程 Ⅱ.增加磁盤交換區(qū)的容量 Ⅲ.提高用戶進(jìn)程的優(yōu)先級(jí)
A、僅Ⅰ
B、僅Ⅱ
C、僅I、Ⅱ
D、僅Ⅲ
解析:發(fā)生“抖動(dòng)”的根本原因是:同時(shí)在系統(tǒng)中運(yùn)行的進(jìn)程太多 ,由此分配給每一個(gè)進(jìn)程的物理塊太少,不能滿足進(jìn)程正常運(yùn)行的基本要求,致使每個(gè)進(jìn)程在運(yùn)行時(shí),頻繁地出現(xiàn)缺頁,必須請(qǐng)求系統(tǒng)將所缺之頁調(diào)入內(nèi) 存。太多的話, 最直接有效的方法當(dāng)然是撤銷部分進(jìn)程
19.在虛擬內(nèi)存管理中,地址變換機(jī)構(gòu)將邏輯地址轉(zhuǎn)換為物理地址,形成邏輯地址的階段是(B)。
A、編輯
B、編譯
C、鏈接
D、裝載
20.考慮頁面置換算法,系統(tǒng)有m個(gè)物理塊供調(diào)度,初始時(shí)全空,頁面引用串長度為p,包 含了n個(gè)不同的頁號(hào),無論用什么算法,缺頁次數(shù)不會(huì)少于(C).
A、m
B、p
C、n
D、min(m,n)
解析:無論采用什么頁面置換算法,每種頁面第一次訪問時(shí)不可能再內(nèi)存中,必然發(fā)生缺頁,所以缺頁次數(shù)大于等于n
21.設(shè)主存容量為1MB,外存容量為400MB,計(jì)算機(jī)系統(tǒng)的地址寄存器有32位,那么虛擬存儲(chǔ)器的最大容量是(D).
A、1MB
B、401MB
C、1MB+4GB
D、4GB
解析:虛擬存儲(chǔ)器的最大容量是由計(jì)算機(jī)的地址結(jié)構(gòu)決定的,與主存容量和外存容量沒有必然的聯(lián)系,其虛擬地址空間為2^32B
22.在虛擬存儲(chǔ)系統(tǒng)中,若進(jìn)程在內(nèi)存中占4塊(開始時(shí)為空),采用最佳頁面淘汰算法,當(dāng)執(zhí)行訪問頁號(hào)序列為1、2、3、4、5、3、4、1、6、7、8、7、8、9、7、8、9、5、4、5、4、2,時(shí),將產(chǎn)生(A )次缺頁中斷。
A、11
B、8
C、9
D、10
解析:最佳置換算法(OPT)(理想置換算法):從主存中移出永遠(yuǎn)不再需要的頁面;如無這樣的頁面存在,則選擇最長時(shí)間不需要訪問的頁面。于所選擇的被淘汰頁面將是以后永不使用的,或者是在最長時(shí)間內(nèi)不再被訪問的頁面,這樣可以保證獲得最低的缺頁率。
最佳(Optimal)置換算法Belady于1966年提出的一種理論上的算法。選擇“未來不再使用的”或“在最長時(shí)間內(nèi)不再被訪問的”頁面被置換。通??梢垣@得最低的缺頁率。這是一種理想情況,是實(shí)際執(zhí)行中無法預(yù)知的,因而不能實(shí)現(xiàn)??捎米餍阅茉u(píng)價(jià)的依據(jù)。
| 1 2 |
| 1 2 3 |
| 1 2 3 4 |
| 1 5 3 4//2最長時(shí)間內(nèi)不使用(下一次在末尾)||5 |
| 1 5 3 4//3 4 1存在不缺 |
| 6 5 3 4//1使用完畢 |||6 |
| 7 5 3 4//6使用完畢 ||7 |
| 7 5 8 4//3使用完畢 ||8 |
| 7 5 8 9//4最長時(shí)間內(nèi)不使用 || 9 || 7 8不缺 ||7 8 9 5不缺 |
| 4 5 8 9//7使用完畢 ||4 || 5 4 不缺 |
| 2 5 8 9//完成||2 |
| 11次 |
23.在虛擬存儲(chǔ)系統(tǒng)中,若進(jìn)程在內(nèi)存中占3塊(開始時(shí)為空),采用最佳頁面淘汰算法,當(dāng)執(zhí)行訪問頁號(hào)序列為1、2、3、4、1、2、5、1、2、3、4、5、6時(shí),將產(chǎn)生(B )次缺頁中斷。
A、7
B、8
C、9
D、10
解析:
| 1 2 |
| 1 2 3 |
| 1 2 4//3最長時(shí)間內(nèi)不使用 ||4 || 1 2不缺 |
| 1 2 5//4最長時(shí)間內(nèi)不使用|| 5 ||1 2不缺 |
| 3 2 5//1使用完畢||3 |
| 4 2 5//3使用完畢||4||5不缺 |
| 6 2 5//4使用完畢||6 |
| 8次 |
24.在虛擬存儲(chǔ)系統(tǒng)中,若進(jìn)程在內(nèi)存中占3塊(開始時(shí)為空),采用最近最久未使用頁面淘汰算法,當(dāng)執(zhí)行訪問頁號(hào)序列為1、2、3、4、1、2、5、1、2、3、4、5、6時(shí),將產(chǎn)生(A )次缺頁中斷。
A、11
B、8
C、9
D、10
解析:最近最久未使用頁面淘汰算法(LRU)選擇內(nèi)存中最近一段時(shí)間里較久未被訪問的頁面予以淘汰
| 1 2 |
| 1 2 3 |
| 4 2 3//1最近一段時(shí)間里較久未被訪問||4 |
| 4 1 3//2最近一段時(shí)間里較久未被訪問||1 |
| 4 1 2//3最近一段時(shí)間里較久未被訪問||2 |
| 5 1 2//4最近一段時(shí)間里較久未被訪問||5||1 2不缺 |
| 3 1 2//5最近一段時(shí)間里較久未被訪問,1 2上面剛剛訪問過||3 |
| 3 4 2//1最近一段時(shí)間里較久未被訪問||4 |
| 3 4 5//2最近一段時(shí)間里較久未被訪問||5 |
| 6 4 5//3最近一段時(shí)間里較久未被訪問||6 |
| 11次 |
25.在虛擬存儲(chǔ)系統(tǒng)中,若進(jìn)程在內(nèi)存中占4塊(開始時(shí)為空),采用LRU頁面淘汰算法,當(dāng)執(zhí)行訪問頁號(hào)序列為1、2、3、4、5、3、4、1、6、7、8、7、8、9、7、8、9、5、4、5、4、2,時(shí),將產(chǎn)生(D )次缺頁中斷。
A、10
B、11
C、12
D、13
解析:
| 1 2 |
| 1 2 3 |
| 1 2 3 4 |
| 5 2 3 4//1最近一段時(shí)間里較久未被訪問||5||3 4不缺 |
| 5 1 3 4//2最近一段時(shí)間里較久未被訪問||1 |
| 6 1 3 4//3 4 1上面訪問的||5最近一段時(shí)間里較久未被訪問||6 |
| 6 1 7 4//4在3后訪問的,1在4后訪問的||4最近一段時(shí)間里較久未被訪問||7 |
| 6 1 7 8//4最近一段時(shí)間里較久未被訪問||8||7 8不缺 |
| 6 9 7 8//6與1相比先1后6||1最近一段時(shí)間里較久未被訪問||9||7 8 9不缺 |
| 5 9 7 8//6最近一段時(shí)間里較久未被訪問||7 8 9上面剛剛訪問的||5 |
| 5 9 4 8//7最近一段時(shí)間里較久未被訪問||7先被訪問的||4||5 4不缺 |
| 5 9 4 2//8最近一段時(shí)間里較久未被訪問||8與9,8先訪問的||2 |
| 13次缺頁 |
26.在請(qǐng)求分頁存儲(chǔ)管理中,若采用FIFO頁面淘汰算法,則當(dāng)分配的頁面數(shù)增加時(shí),缺頁中斷的次數(shù)( D ) 。
A、減少
B、增加
C、無影響
D、可能增加也可能減少
解析:隨著內(nèi)存的增大:缺頁次數(shù)增加的現(xiàn)象:稱之為 Belady 現(xiàn)象(異?,F(xiàn)象);我們都知道常用的頁面淘汰算法有五種:
| 2: | LRU | 最近最久未用置換算法 |
| 3: | LFU | 最近訪問頻率最低的 |
| 4: | NUR | 最近沒有使用頁面淘汰算法(NUR) |
| 5: | OPT | 理想的淘汰算法 |
這五種算法可見簡單的將其分為兩類,堆棧型算法和非堆棧型算法;
注意:堆棧型算法:最新壓入到堆棧中的永遠(yuǎn)在棧頂;棧頂是剛剛訪問過的,棧底是最久沒有訪問過的;
LRU和LFU都是堆棧型算法, OPT 也是堆棧算法; 但是FIFO非堆棧型算法 ;非堆棧式算法可能出現(xiàn) Belady問題,是棧式算法不會(huì)出現(xiàn)類似問題;
27.虛擬存儲(chǔ)管理系統(tǒng)的基礎(chǔ)是程序的( A )原理。
A、局部性
B、全局性
C、動(dòng)態(tài)性
D、虛擬性
28.請(qǐng)求分頁存儲(chǔ)管理中,若把頁面尺寸增大一倍而且可容納的最大頁數(shù)不變,則在程序順序執(zhí)行時(shí)缺頁中斷次數(shù)會(huì)(D).
A、增加
B、減少
C、不變
D、可能增加也可能減少
解析:缺頁中斷的次數(shù)取決于操作系統(tǒng)內(nèi)核的相關(guān)結(jié)構(gòu)以及實(shí)際運(yùn)行情況。因?yàn)橄到y(tǒng)中,缺頁中斷次數(shù)和頁面大小有些關(guān)系,但并不只取決于頁面大小,還跟系統(tǒng)總內(nèi)存總量等很多因素有關(guān),當(dāng)系統(tǒng)內(nèi)存不足時(shí),會(huì)發(fā)生頁面交換,此時(shí)也會(huì)產(chǎn)生很多次缺頁中斷,但與頁面大小就沒有太大關(guān)系了。
29.測得某個(gè)采用按需調(diào)頁策略的計(jì)算機(jī)系統(tǒng)的部分狀態(tài)數(shù)據(jù)為:CPU利用率為20%,用于交換空間的磁盤利用率為97.7%,其他設(shè)備的利用率為5%。由此判斷系統(tǒng)出現(xiàn)異常,這種情況下(D)能提高系統(tǒng)性能。
A、安裝一個(gè)更快的硬盤
B、通過擴(kuò)大硬盤容量增加交換空間
C、增加運(yùn)行進(jìn)程數(shù)
D、加內(nèi)存條來增加物理空間容量
解析:用于交換空間的磁盤利用率為97.7%,其他設(shè)備的利用率為5%
CPU利用率低,對(duì)換空間的磁盤利用率高,說明程序進(jìn)出內(nèi)存頻率高,很可能是內(nèi)存抖動(dòng),此時(shí)需要增大物理內(nèi)存空間,或者降低運(yùn)行進(jìn)程數(shù)。
大部分的運(yùn)行時(shí)間都耗費(fèi)在交換操作上,也就是說物理內(nèi)存太小導(dǎo)致數(shù)據(jù)經(jīng)常需要換入換出,因此需要提高內(nèi)存大小,此外CPU和IO的的占用率都很低表示CPU一次讀取的太多的程序放入內(nèi)存中,因此需要降低多道程序的度數(shù)(個(gè)數(shù))
CPU利用率:運(yùn)行的程序占用的CPU資源,表示機(jī)器在某個(gè)時(shí)間點(diǎn)的運(yùn)行程序的情況。使用率越高,說明機(jī)器在這個(gè)時(shí)間上運(yùn)行了很多程序,反之較少。
CPU是負(fù)責(zé)運(yùn)算和處理的,內(nèi)存是交換數(shù)據(jù)的。
1.可以看出CPU利用率低;3.I/O設(shè)備利用率低(減少多道程序的度數(shù))
CPU一次讀取的太多的程序放入內(nèi)存中,因此需要降低多道程序的度數(shù)
2.交換空間的磁盤利用率高(增大內(nèi)存的容量)
交換空間利用率高,因此需要擴(kuò)大數(shù)據(jù)交換空間(增大內(nèi)存的容量)
30.在頁面調(diào)度中,有一種調(diào)度算法采用堆棧方法選擇(B )
A、最先裝入主頁的頁
B、最近最少用的頁
C、最近最不常用的頁
D、最晚裝入的頁
解析: LRU和LFU都是堆棧型算法, OPT 也是堆棧算法;最近最久未用置換算法 , 最近訪問頻率最低的 , 最近沒有使用頁面淘汰算法
第六章 虛擬存儲(chǔ)器管理
1.通常I/O軟件的層次結(jié)構(gòu)的模型是什么?A
A、用戶層軟件,設(shè)備獨(dú)立性軟件,設(shè)備驅(qū)動(dòng)程序,中斷處理程序
B、用戶層軟件,設(shè)備驅(qū)動(dòng)程序,硬件,操作系統(tǒng)
C、應(yīng)用層,網(wǎng)絡(luò)層,傳輸層,數(shù)據(jù)鏈路層
D、以上答案都不對(duì)
解析:I/O軟件的層次可分為用戶層軟件、設(shè)備獨(dú)立性軟件、設(shè)備驅(qū)動(dòng)程序、中斷處理程序和硬件。其中設(shè)備獨(dú)立性軟件、設(shè)備驅(qū)動(dòng)程序、中斷處理程序?qū)儆诓僮飨到y(tǒng)的內(nèi)核部分,即“I/O系統(tǒng)”或“I/O核心子系統(tǒng)”。
2.關(guān)于SPOOLing技術(shù)說法錯(cuò)誤的是?D
A、SPOOLing技術(shù)是Simutaneaus Periphernal operations On-line 或假脫機(jī)操作
B、SPOOLing技術(shù)是對(duì)脫機(jī)輸入、輸出操作的模擬
C、將獨(dú)享設(shè)備轉(zhuǎn)變?yōu)榫哂泄蚕硖卣鞯奶摂M設(shè)備
D、以上答案均不對(duì)
解析;ABC都對(duì)
3.I/O控制方式中哪種傳輸效率最高?B
A、輪詢的可編程I/O控制方式
B、中斷驅(qū)動(dòng)的I/O控制方式
C、DMA的I/O控制方式
D、其他
解析:CPU的I/O傳送控制方式中,效率高、實(shí)時(shí)性強(qiáng)的方式是 中斷傳送
CPU的I/O傳送控制方式中,傳送速度最快的方式為 DMA傳送
4.在下列磁性材料組成的存儲(chǔ)器件中,(D)不屬于輔助存儲(chǔ)器
A、磁盤
B、磁帶
C、光盤
D、磁芯
解析:計(jì)算機(jī)的存儲(chǔ)系統(tǒng)可以分為:
輔存: 輔助存儲(chǔ)器,也叫外存儲(chǔ)器,讀取速度最慢,容量最大,價(jià)格最低。其實(shí)輔存可以被看作外設(shè)。
主存: 也叫內(nèi)存,位于主板上,CPU可以直接從內(nèi)存中讀取數(shù)據(jù)。(實(shí)際操作中其實(shí)是CPU先去緩存cache中找數(shù)據(jù),找不到再去內(nèi)存讀,一般找到的概率高于90%,但這一過程對(duì)于用戶是透明的。)主存的讀寫速度高于輔存(能達(dá)到1000倍),但容量小于輔存。
緩存: cache,位于CPU內(nèi)部,速度很快,是主存讀取速度的10倍,但容量很小,價(jià)格貴。
CPU內(nèi)部寄存器: CPU包括運(yùn)算器和控制器,其中的寄存器有數(shù)據(jù)寄存器DR,地址寄存器AR,程序計(jì)數(shù)器PC,指令寄存器IR等。
輔存可分為以下三類:磁表面存儲(chǔ)器、光存儲(chǔ)器、半導(dǎo)體存儲(chǔ)器輔助儲(chǔ)存器提供一個(gè)更大的空間來儲(chǔ)存數(shù)據(jù), 如硬盤,磁盤、光盤等.
5.下列說法不正確的是(A)。
A、語音合成器作為輸入/輸出設(shè)備可將人的語言聲音轉(zhuǎn)成計(jì)算機(jī)能夠識(shí)別的信息
B、點(diǎn)陣式打印機(jī)點(diǎn)陣的點(diǎn)越多,印字質(zhì)量越高
C、非擊打式打印設(shè)備速度快、噪聲低、印字質(zhì)量高,但價(jià)格較高
D、行式打印機(jī)的速度比串行打印機(jī)快
解析:語音合成器并不是將語言聲音轉(zhuǎn)成計(jì)算機(jī)識(shí)別的信息。
6.若磁盤的轉(zhuǎn)速提高一倍,則(D)
A、平均存儲(chǔ)時(shí)間減半
B、平均等待時(shí)間減半
C、存儲(chǔ)密度可以提高一倍
D、平均定位時(shí)間不變
解析:首先要明白,磁盤的盤面被分成多各同心圓,這些圓稱為磁道,磁道之間留有空隙。磁道被分成一段一段,稱為扇區(qū),大小相當(dāng)于一個(gè)盤塊。 磁盤啟動(dòng)時(shí),磁頭首先處于0磁道,磁盤從接到命令到向目標(biāo)扇區(qū)讀取或?qū)懭霐?shù)據(jù)完畢共經(jīng)歷三個(gè)階段: 第一階段,磁頭沿徑向移動(dòng),移到目標(biāo)扇區(qū)所在磁道的上方(注意,不是目標(biāo)扇區(qū),而是目標(biāo)扇區(qū)所在的磁道),這段時(shí)間稱為尋道時(shí)間,目標(biāo)扇區(qū)所在磁道跟0磁道的遠(yuǎn)近不同尋道時(shí)間也不一樣。這個(gè)時(shí)間是隨機(jī)變化的,因此用平均值來表示。最大尋道時(shí)間和最小尋道時(shí)間的平均值稱為平均尋道時(shí)間,有的書上稱為平均定位時(shí)間,約為10毫秒。 第二階段,找到目標(biāo)磁道后通過盤片的旋轉(zhuǎn),使得要目標(biāo)扇區(qū)轉(zhuǎn)到磁頭的下方,這段時(shí)間稱為旋轉(zhuǎn)延遲時(shí)間,取最大最小的平均值即旋轉(zhuǎn)半周的時(shí)間作為平均旋轉(zhuǎn)延遲時(shí)間,有的書上稱為平均等待時(shí)間。比如,一個(gè)7200(轉(zhuǎn)/每分鐘)的硬盤,每旋轉(zhuǎn)一周所需時(shí)間為60×1000÷7200=8.33毫秒,則平均旋轉(zhuǎn)延遲時(shí)間為8.33÷2=4.17毫秒。 第三階段,向目標(biāo)扇區(qū)讀取或?qū)懭霐?shù)據(jù),時(shí)間約為零點(diǎn)幾個(gè)毫秒。 由此可見,第三階段所耗時(shí)間相對(duì)第一、二階段可以忽略不記。于是將平均尋道時(shí)間與平均旋轉(zhuǎn)延遲時(shí)間之和稱為平均存取時(shí)間。決定一個(gè)磁盤讀寫速度的是它的平均存取時(shí)間。 可見,當(dāng)磁盤的轉(zhuǎn)速改變時(shí),由于平均尋道時(shí)間與磁盤轉(zhuǎn)速無關(guān),所以它不變。磁盤的轉(zhuǎn)速提高一倍,只是平均旋轉(zhuǎn)延遲時(shí)間減半。尋道速度和讀寫(數(shù)據(jù)傳輸)速度不是一個(gè)概念,尋道是指磁頭從一個(gè)磁道到另一個(gè)磁道,相當(dāng)于磁頭做圓的徑向運(yùn)動(dòng),而讀寫磁道是沿圓周運(yùn)動(dòng)。 因此磁盤轉(zhuǎn)速提高只是提高了讀寫(數(shù)據(jù)傳輸)速度,而磁頭的擺動(dòng)速度并沒有提高。
7.活動(dòng)頭磁盤存儲(chǔ)器的找道時(shí)間通常是指(C)
A、最大找道時(shí)間
B、最小找道時(shí)間
C、最大找道時(shí)間和最小找道時(shí)間的平均值
D、最大找道時(shí)間和最小找道時(shí)間的和
8.軟盤驅(qū)動(dòng)器采用的磁頭是(B)
A、浮動(dòng)式磁頭
B、接觸式磁頭
C、固定式磁頭
D、以上都不對(duì)
9.在存儲(chǔ)單元和I/O設(shè)備統(tǒng)一編址的方式下,存儲(chǔ)單元和I/O設(shè)備是依據(jù)(A)來區(qū)分的。
A、不同的地址碼
B、不同的地址線
C、不同的數(shù)據(jù)線
D、不同的控制線
10.中斷系統(tǒng)是由(C)實(shí)現(xiàn)的
A、硬件
B、軟件
C、硬件和軟件結(jié)合
D、以上都不對(duì)
解析:中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。中斷系統(tǒng)是計(jì)算機(jī)的重要組成部分,由硬件與軟件結(jié)合實(shí)現(xiàn)的。中斷分為硬件中斷與軟件中斷。
11.為實(shí)現(xiàn)多重中斷,保護(hù)斷點(diǎn)和現(xiàn)場使用(D)
A、ROM
B、中斷向量表
C、設(shè)備內(nèi)的存儲(chǔ)器
D、堆棧
解析;斷點(diǎn)可以保存在堆棧中,由于堆棧先進(jìn)后出的特點(diǎn),依次將程序的斷點(diǎn)壓入堆棧中。出棧時(shí),按相反順序便可準(zhǔn)確返回到程序間斷處。
12.中斷允許觸發(fā)器用來(D)
A、表示外設(shè)是否提出了中斷請(qǐng)求
B、CPU是否響應(yīng)了中斷請(qǐng)求
C、CPU是否正在進(jìn)行中斷處理
D、開放或關(guān)閉可屏蔽中斷
解析:允許中斷觸發(fā)器是系統(tǒng)內(nèi)部的一個(gè)自動(dòng)化的器件,用于更改狀態(tài)量,即開中斷表示當(dāng)前可以中斷,關(guān)中斷表示當(dāng)前正在中斷中。
13.外圍設(shè)備提出中斷請(qǐng)求的條件是(C)
A、一個(gè)CPU周期結(jié)束
B、總線空閑
C、外圍準(zhǔn)備就緒且系統(tǒng)允許中斷
D、CPU開放中斷系統(tǒng)
14.中斷向量可提供(D)
A、被選中的設(shè)備的地址
B、傳送數(shù)據(jù)的起始地址
C、主程序的斷點(diǎn)地址
D、中斷服務(wù)程序入口地址
解析:中斷向量就是中斷服務(wù)子程序的入口地址
15.帶有處理機(jī)的終端一般稱為(C)
A、交互式終端
B、遠(yuǎn)程終端
C、智能終端
D、以上都不是
16.通道程序是由(B)組成
A、I/O指令
B、通道控制字
C、通道狀態(tài)字
D、以上都不對(duì)
解析:通道的功能是 通過解釋并執(zhí)行 由它特有的 通道指令 組成的通道程序 實(shí)現(xiàn)對(duì)外部設(shè)備的控制。
17.若一個(gè)8位組成的字符至少需要10位來傳送,這是(B)傳送方式
A、同步
B、異步
C、并聯(lián)
D、混合
解析:異步:在異步傳輸方式中,每傳送一個(gè)字符(7或8位)都要在每個(gè)字符碼前加1個(gè)起始位,以表示字符代碼的開始;在字符代碼和效驗(yàn)碼后面加1或2個(gè)停止位,表示字符結(jié)束。接收方根據(jù)起始位和停止位來判斷一個(gè)新字符的開始和結(jié)束,從而起到通信雙方的同步作用。
同步:同步傳輸方式是以數(shù)據(jù)塊為傳輸單位。每個(gè)數(shù)據(jù)塊的頭部和尾部都要附加一個(gè)特殊的字符或比特序列,標(biāo)記一個(gè)數(shù)據(jù)塊的開始和結(jié)束,一般還要附加一個(gè)校驗(yàn)序列(如16位或32位CRC校驗(yàn)碼),以便對(duì)數(shù)據(jù)塊進(jìn)行差錯(cuò)控制。所謂同步傳輸是指數(shù)據(jù)塊與數(shù)據(jù)塊之間的時(shí)間間隔是固定的,必須嚴(yán)格地規(guī)定它們的時(shí)間關(guān)系。
18.計(jì)算機(jī)的外圍設(shè)備是指(D)
A、輸入/輸出設(shè)備
B、外存儲(chǔ)器
C、輸入/輸出設(shè)備及外存儲(chǔ)器
D、除了CPU和內(nèi)存以外的其他設(shè)備
19.磁盤設(shè)備的I/O控制主要是采取( D )方式。
A、位
B、幀
C、字節(jié)
D、DMA
解析:磁盤是高速外設(shè),以塊為單位傳送數(shù)據(jù),需要DMA控制傳輸
DMA方式是一種完全由硬件執(zhí)行I/O數(shù)據(jù)交換的工作方式。
20.為了便于上層軟件的編制,設(shè)備控制器通常需要提供(A )。
A、控制寄存器、狀態(tài)寄存器和控制命令
B、I/O地址寄存器、工作方式狀態(tài)寄存器和控制命令
C、中斷寄存器、控制寄存器和控制命令
D、控制寄存器、編程空間和控制邏輯寄存器
21.在設(shè)備控制器中用于實(shí)現(xiàn)設(shè)備控制功能的是(C)
A、CPU
B、設(shè)備控制器與處理器的接口
C、I/O邏輯
D、設(shè)備控制器與設(shè)備的接口
22.在設(shè)備管理中,設(shè)備映射表的作用是(D)
A、管理物理設(shè)備
B、管理邏輯設(shè)備
C、實(shí)現(xiàn)輸入/輸出
D、建立邏輯設(shè)備與物理設(shè)備的對(duì)應(yīng)關(guān)系
23.DMA方式是在(C)之間建立一條直接數(shù)據(jù)通路
A、CPU與外設(shè)
B、CPU與主存
C、主存與外設(shè)
D、外設(shè)與外設(shè)
24.通道又稱I/O處理機(jī),它用于實(shí)現(xiàn)(A)之前的信息傳輸。
A、內(nèi)存與外設(shè)
B、CPU與外設(shè)
C、內(nèi)存與外存
D、CPU與外存
解析:通道是為了繞過CPU,讓主存和I/O設(shè)備直接經(jīng)行信息傳輸。
25.在操作系統(tǒng)中,(A)是指的一種硬件機(jī)制
A、通道技術(shù)
B、緩沖區(qū)
C、Spooling技術(shù)
D、內(nèi)存覆蓋技術(shù)
解析:通道相當(dāng)于I/O處理機(jī),是由通道處理機(jī)執(zhí)行通道程序?qū)崿F(xiàn)的
緩沖池是操作系統(tǒng)劃分出來的用于數(shù)據(jù)緩沖的存儲(chǔ)器,是由軟件實(shí)現(xiàn)的
同樣SPOOLING技術(shù)也是由操作系統(tǒng)軟件實(shí)現(xiàn)的機(jī)制,當(dāng)中最主要的是模擬輸入/輸出進(jìn)程
內(nèi)存覆蓋也由操作系統(tǒng)實(shí)現(xiàn)
26.若I/O設(shè)備與存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)交換不經(jīng)過CPU來完成,則這種數(shù)據(jù)交換方式是(C)
A、中斷控制方式
B、程序I/O方式
C、DMA控制方式
D、無條件存取方式
解析:DMA不同于中斷,不經(jīng)過CPU
27.在下列問題中,(A)不是設(shè)備分配中應(yīng)考慮的問題
A、及時(shí)性
B、設(shè)備的固有屬性
C、設(shè)備的無關(guān)性
D、安全性
28.I/O系統(tǒng)與高層之間的接口中,根據(jù)設(shè)備類型的不同,可分為哪些接口?BCD
A、用戶接口
B、塊設(shè)備接口
C、流設(shè)備接口
D、網(wǎng)絡(luò)通信接口
解析:在I/O系統(tǒng)與高層之間的接口中,根據(jù)設(shè)備類型的不同,又進(jìn)一步分為若干個(gè)接口。比如塊設(shè)備接口、流設(shè)備接口和網(wǎng)絡(luò)接口。
29.I/O接口訪問控制的方式有哪些?ABCD
A、輪詢的編程I/O控制方式
B、基于中斷的I/O控制方式
C、DMAI/O控制方式
D、I/O通道的控制方式
30.I/O傳輸中引入緩沖區(qū)的目的是:ABC
A、提高CPU和I/O設(shè)備之間的并行性
B、減少對(duì)CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制
C、緩和CPU和I/O設(shè)備速度不匹配的的矛盾
D、為了提高CPU的速度
解析:引入緩沖技術(shù)的主要目的是為了緩和CPU和I/O設(shè)備的不匹配,減少對(duì)CPU的中斷頻率,提高CPU和I/O設(shè)備的并行性。
為了緩和CPU和I/O設(shè)備速度不匹配的矛盾,提高CPU和I/O設(shè)備的并行性,在現(xiàn)代操作系統(tǒng)中,幾乎所有的I/O設(shè)備在與處理機(jī)交換數(shù)據(jù)時(shí)都用了緩沖區(qū),并提供獲得和釋放緩沖區(qū)的手段。
1、改善CPU與I/O設(shè)備間速度不匹配的矛盾
例如一個(gè)程序,它時(shí)而進(jìn)行長時(shí)間的計(jì)算而沒有輸出,時(shí)而又陣發(fā)性把輸出送到打印機(jī)。由于打印機(jī)的速度跟不上CPU,而使得CPU長時(shí)間的等待。如果設(shè)置了緩沖區(qū),程序輸出的數(shù)據(jù)先送到緩沖區(qū)暫存,然后由打印機(jī)慢慢地輸出。
這時(shí),CPU不必等待,可以繼續(xù)執(zhí)行程序。實(shí)現(xiàn)了CPU與I/O設(shè)備之間的并行工作。事實(shí)上,凡在數(shù)據(jù)的到達(dá)速率與其離去速率不同的地方,都可設(shè)置緩沖,以緩和它們之間速度不匹配的矛盾。眾所周知,通常的程序都是時(shí)而計(jì)算,時(shí)而輸出的。
2、 可以減少對(duì) CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的限制
如果I/O操作每傳送一個(gè)字節(jié)就要產(chǎn)生一次中斷,那么設(shè)置了n個(gè)字節(jié)的緩沖區(qū)后,則可以等到緩沖區(qū)滿才產(chǎn)生中斷,這樣中斷次數(shù)就減少到1/n,而且中斷響應(yīng)的時(shí)間也可以相應(yīng)的放寬。
第七章 輸入輸出系統(tǒng)
1.文件系統(tǒng)是指( D )。
A、文件的集合
B、文件的目錄集合
C、實(shí)現(xiàn)文件管理的一組軟件
D、文件、管理文件的軟件及數(shù)據(jù)結(jié)構(gòu)的總體
2.文件系統(tǒng)的主要目的是( D )。
A、用于存儲(chǔ)系統(tǒng)文件
B、實(shí)現(xiàn)虛擬存儲(chǔ)
C、實(shí)現(xiàn)對(duì)文件的隨機(jī)存取
D、實(shí)現(xiàn)對(duì)文件的按名存取
3.文件管理實(shí)際上是對(duì)( D )的管理。
A、主存空間
B、輔存空間
C、邏輯地址空間
D、物理地址空間
4.下列文件的物理結(jié)構(gòu)中,不利于文件長度動(dòng)態(tài)增長的文件物理結(jié)構(gòu)是( A )。
A、順序文件
B、鏈接文件
C、索引文件
D、系統(tǒng)文件
解析;順序結(jié)構(gòu)的優(yōu)點(diǎn)是訪問速度快,缺點(diǎn)是文件長度增加困難。
鏈?zhǔn)浇Y(jié)構(gòu)的優(yōu)點(diǎn)是文件長度容易動(dòng)態(tài)變化,其缺點(diǎn)是不適合隨機(jī)存取訪問。
索引結(jié)構(gòu)的優(yōu)點(diǎn)是訪問速度快,文件長度可以動(dòng)態(tài)變化。缺點(diǎn)是存儲(chǔ)開銷大,限制了文件的最大長度。
Hash結(jié)構(gòu):只適用于定長記錄文件和按記錄鍵隨機(jī)查找的訪問方式
Hash結(jié)構(gòu)的思想是:通過計(jì)算來確定一個(gè)記錄在存儲(chǔ)設(shè)備上的存儲(chǔ)位置,依次先后存入的兩個(gè)記錄在物理設(shè)備上不一定相鄰。
5.面向用戶的文件組織機(jī)構(gòu)屬于( C)。
A、虛擬結(jié)構(gòu)
B、實(shí)際結(jié)構(gòu)
C、邏輯結(jié)構(gòu)
D、物理結(jié)構(gòu)
6.文件目錄的主要作用是(A )。
A、實(shí)現(xiàn)文件按名存取
B、提高查找文件速度
C、節(jié)省文件存儲(chǔ)空間
D、提高外存利用率
7.文件系統(tǒng)采用樹型目錄結(jié)構(gòu)后,對(duì)于不同用戶的文件,其文件名(C )。
A、應(yīng)該相同
B、應(yīng)該不同
C、可以不同,也可以相同
D、受系統(tǒng)約束
解析:樹形目錄的引入提高了檢索的效率,解決了文件的重名問題,即允許不同的用戶使用相同的文件名。因此,對(duì)于不同用戶文件而言其文件名既可以相同也可以不同。
8.下列描述不是文件系統(tǒng)功能的是( C )。
A、建立文件目錄
B、提供一組文件操作
C、實(shí)現(xiàn)對(duì)磁盤的驅(qū)動(dòng)調(diào)度
D、實(shí)現(xiàn)從邏輯文件到物理文件間的轉(zhuǎn)換
解析:文件系統(tǒng)是操作系統(tǒng)中負(fù)責(zé)管理和存取文件信息的軟件機(jī)構(gòu)。它負(fù)責(zé)文件操作和管理的程序模塊、所需的數(shù)據(jù)結(jié)構(gòu)(如目錄表、文件控制塊、存儲(chǔ)分配表)以及訪問文件的一組操作所組成。
主要功能:
從用戶角度來看
1、 用戶可以執(zhí)行創(chuàng)建、修改、刪除、讀寫文件命令。
2、 用戶能以合適的方式構(gòu)造自己的文件。
3、 用戶能在系統(tǒng)的控制下,共享其他用戶的文件。
4、 允許用戶用符號(hào)名訪問文件。
從系統(tǒng)角度看
1、 系統(tǒng)轉(zhuǎn)存和恢復(fù)文件的能力,以防止意外事故的發(fā)生。
2、 提供可靠的保護(hù)以及保密措施。
3、 負(fù)責(zé)文件的存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)、檢索
4、 負(fù)責(zé)對(duì)文件存儲(chǔ)空間的組織和分配。
文件系統(tǒng)的功能包括:管理和調(diào)度文件的存儲(chǔ)空間,提供文件的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和存儲(chǔ)方法;實(shí)現(xiàn)文件從標(biāo)識(shí)到實(shí)際地址的映射,實(shí)現(xiàn)文件的控制操作和存取操作,實(shí)現(xiàn)文件信息的共享并提供可靠的文件保密和保護(hù)措施,提供文件的安全措施。
9.按文件用途來分,編譯程序?qū)儆?#xff08; C )。
A、用戶文件
B、檔案文件
C、系統(tǒng)文件
D、庫文件
10.文件代表了計(jì)算機(jī)系統(tǒng)中的(C )。
A、硬件
B、軟件
C、軟件資源
D、硬件資源
11.文件系統(tǒng)采用二級(jí)文件目錄可以(D )。
A、縮短訪問存儲(chǔ)器的時(shí)間
B、實(shí)現(xiàn)文件共享
C、節(jié)省內(nèi)存空間
D、解決不同用戶間的文件命名沖突
解析:在二級(jí)文件目錄中,各文件的說明信息被組織成目錄文件,且以用戶為單位把各自的文件說明劃分為不同的組。這樣,不同的用戶可以使用相同的文件名,從而解決了文件的重名問題。
12.在UNIX系統(tǒng)中,用戶程序經(jīng)過編譯之后得到的可執(zhí)行文件屬于(B )。
A、ASCII文件
B、普通文件
C、目錄文件
D、特別文件
13.特殊文件是與( D)有關(guān)的文件。
A、文本
B、圖像
C、硬件設(shè)備
D、二進(jìn)制數(shù)據(jù)
14.文件的存儲(chǔ)方法依賴于( C )。
A、文件的物理結(jié)構(gòu)
B、存放文件的存儲(chǔ)設(shè)備的特性
C、A和B
D、文件的邏輯結(jié)構(gòu)
解析:文件的結(jié)構(gòu)就是文件的組織形式,從用戶觀點(diǎn)所看到的文件組織形式成為文件的 邏輯結(jié)構(gòu),從實(shí)現(xiàn)觀點(diǎn)看到的的文件在外存上的存放形式稱為文件的物理結(jié)構(gòu),文件的邏輯結(jié)構(gòu)與存儲(chǔ)設(shè)備特性無關(guān),但文件的物理結(jié)構(gòu)與存儲(chǔ)設(shè)備的特性有很大關(guān)系。
15.多級(jí)目錄結(jié)構(gòu)形式為(D )。
A、線形結(jié)構(gòu)
B、散列結(jié)構(gòu)
C、網(wǎng)狀結(jié)構(gòu)
D、樹型結(jié)構(gòu)
16.樹型目錄結(jié)構(gòu)的主文件目錄稱為(B )。
A、父目錄
B、根目錄
C、子目錄
D、用戶文件目錄
17.使用絕對(duì)路徑名訪問文件是從( C )開始按目錄結(jié)構(gòu)訪問某個(gè)文件。
A、當(dāng)前目錄
B、用戶主目錄
C、根目錄
D、父目錄
18.由字符序列組成,文件內(nèi)的信息不再劃分結(jié)構(gòu),這是指( A )。
A、流式文件
B、記錄式文件
C、順序文件
D、有序文件
解析:根據(jù)文件的邏輯結(jié)構(gòu)可分為記錄式文件和流式文件。流式文件的記錄是以字節(jié)或字符為單位,其輸入輸出的數(shù)據(jù)流的開始和結(jié)束僅受程序控制而不受物理符號(hào)(如回車換行符等)控制,簡單來說,流文件就是沒有結(jié)構(gòu)的文件;記錄式文件由若干邏輯記錄組成,每條邏輯記錄又有相同的數(shù)據(jù)項(xiàng)組成。
19.數(shù)據(jù)庫文件的邏輯結(jié)構(gòu)形式是( C )。
A、字符流式文件
B、檔案文件
C、記錄式文件
D、只讀文件
20.邏輯文件是(B)文件的組織形式。
A、在外部設(shè)備上
B、從用戶觀點(diǎn)看
C、虛擬存儲(chǔ)
D、目錄
21.可順序存取的文件不一定能隨機(jī)存取。 正確
解析:可順序存取的文件不一定能隨機(jī)存取,但是,凡可隨機(jī)存取的文件都可以順序存取。
22.在文件系統(tǒng)管理中,可以用串聯(lián)文件存儲(chǔ)結(jié)構(gòu)來實(shí)現(xiàn)直接存取。 正確
23.采用樹形目錄結(jié)構(gòu)的文件系統(tǒng)中,各用戶的文件名必須互不相同。錯(cuò)誤
解析;樹形目錄結(jié)構(gòu)已解決重名問題
24.順序文件適合于建立在順序存儲(chǔ)設(shè)備上,而不適合建立在磁盤上。 錯(cuò)誤
解析:題干中磁盤也屬于順序存儲(chǔ)設(shè)備
順序文件和隨機(jī)文件是說的文件的讀取方式,不是說文件的類型。 比如按行存入的文本文件可以按行進(jìn)行順序文件讀寫,也可以進(jìn)行隨機(jī)文件讀寫 但是隨機(jī)文件讀寫會(huì)出問題,你解析出來的字符串是錯(cuò)的。 和順序存儲(chǔ)設(shè)備相對(duì)的是隨機(jī)存儲(chǔ)設(shè)備,順序存儲(chǔ)設(shè)備比如說磁帶,你只能把前面的存滿了再存后面的,而常用的硬盤你可以這個(gè)扇區(qū)存一點(diǎn)那個(gè)扇區(qū)存一點(diǎn),這叫做隨機(jī)存儲(chǔ)設(shè)備。順序文件也可以存儲(chǔ)在隨機(jī)存儲(chǔ)設(shè)備上,因?yàn)槲募到y(tǒng)會(huì)屏蔽掉你訪問時(shí)的差異
1.文件按邏輯結(jié)構(gòu)分為,無結(jié)構(gòu)文件(流式文件即二進(jìn)制文件)和有結(jié)構(gòu)文件(記錄式文件) 2.有結(jié)構(gòu)文件又可分為,①順序文件(順序文件可分為串結(jié)構(gòu)和順序結(jié)構(gòu)),②索引文件(原來的記錄可以無序),③索引順序文件(原來的記錄必須有序),④直接文件或者叫hash文件,與索引文件的區(qū)別是,索引文件需要建立索引表,hash文件直接使用hash函數(shù)計(jì)算出存儲(chǔ)位置 3.文件按物理結(jié)構(gòu)分為,①連續(xù)文件結(jié)構(gòu)(連續(xù)分配方式),②串聯(lián)文件結(jié)構(gòu)(鏈接分配方式)③索引文件結(jié)構(gòu)(索引分配方式) 4.可以看到邏輯結(jié)構(gòu)講究怎么使用,物理結(jié)構(gòu)講究怎么存儲(chǔ),怎么分配
25.在文件系統(tǒng)的支持下,用戶操作文件不需要知道文件存放的物理地址。 正確
26.在磁盤上的順序文件中插入新的記錄時(shí),必須復(fù)制整個(gè)文件。 正確
27.文件的具體實(shí)現(xiàn)是操作系統(tǒng)考慮的范疇,因而用戶不必關(guān)心。 錯(cuò)誤
28.隨機(jī)訪問文件也能順序訪問,但一般效率較差。 正確
29.UNIX的i節(jié)點(diǎn)是文件內(nèi)容的一部分。 錯(cuò)誤
解析;每個(gè) 文件系統(tǒng) 分為3部分:超級(jí)塊,i-節(jié)點(diǎn)表,數(shù)據(jù)區(qū) 。
超級(jí)塊 :存放文件系統(tǒng)本身的信息,比如記錄了每個(gè)區(qū)域的大小,或未被使用的磁盤塊的信息。(不同版本稍有差別)
i-節(jié)點(diǎn)表 :每個(gè)文件都有其屬性,大小,最近修改時(shí)間等等,這些被存儲(chǔ)在ino_t 的結(jié)構(gòu)體中,所有的i-節(jié)點(diǎn)都有一樣的大小,i-節(jié)點(diǎn)表就是這樣一些節(jié)點(diǎn)的列表。
(表中的每個(gè)i-節(jié)點(diǎn)都通過位置來標(biāo)志,例如標(biāo)志為2的i-節(jié)點(diǎn)位于文件系統(tǒng)i-節(jié)點(diǎn)表中的第3個(gè)位置 )
數(shù)據(jù)塊 :存放文件內(nèi)容,因?yàn)閴K的大小一定,所以有時(shí)一個(gè)文件會(huì)分布在多個(gè)磁盤上。
30.在Windows系統(tǒng)中,是采用單空閑塊鏈接法實(shí)施存儲(chǔ)空間的分配與回收。
31.目前操作系統(tǒng)常采用的文件的物理結(jié)構(gòu)有()、()和()。ABC
A、順序結(jié)構(gòu)
B、鏈接結(jié)構(gòu)
C、索引結(jié)構(gòu)
D、索引順序結(jié)構(gòu)
32.一級(jí)文件目錄結(jié)構(gòu)不能解決(B )的問題。多用戶系統(tǒng)所用的文件目錄結(jié)構(gòu)至少應(yīng)是(C )。
A、文件存取
B、文件重名
C、二級(jí)目錄文件
D、樹形目錄結(jié)構(gòu)
33.文件的結(jié)構(gòu)就是文件的組織形式。從用戶觀點(diǎn)出發(fā)所看到的文件組織形式稱為文件的( B),從實(shí)現(xiàn)觀點(diǎn)出發(fā),文件在外存上存放的組織形式稱為文件的(D )。
A、邏輯文件
B、邏輯結(jié)構(gòu)
C、物理文件
D、物理結(jié)構(gòu)
34.按文件的邏輯存儲(chǔ)結(jié)構(gòu)分,文件分為(A )文件和(B )文件,又稱為(C )文件和(D )文件。
A、有結(jié)構(gòu)文件
B、無結(jié)構(gòu)文件
C、記錄式文件
D、流式文件
35.按保護(hù)級(jí)別分類,文件可分為(A)、(B)和(C)三種。
A、可執(zhí)行文件
B、讀寫文件
C、只讀文件
D、只寫文件
第八章 文件管理
1.在下列磁盤調(diào)度算法中,只有(D ) 考慮I/O請(qǐng)求到達(dá)的先后次序。
A、最短查找時(shí)間優(yōu)先調(diào)度算法
B、電梯調(diào)度算法
C、單向掃描調(diào)度算法
D、先來先服務(wù)調(diào)度算法
2.管理空閑磁盤空間可以用(C ),它利用二進(jìn)制的一位來表示一個(gè)磁盤塊的使用情況。
A、空閑塊表
B、空閑快鏈
C、位示圖
D、分組鏈接
3.位示圖用于( D )。
A、文件目錄的查找
B、文件的保護(hù)和保密
C、主存空間的共享
D、磁盤空間的管理
解析:位示圖主要用于磁盤空間的管理,用二進(jìn)制表示磁盤的使用的使用情況,0 表示對(duì)應(yīng)的磁盤塊空閑,1表示對(duì)應(yīng)的磁盤塊已經(jīng)分配!
4.在對(duì)磁盤進(jìn)行讀/寫操作時(shí),下面給出的地址參數(shù)中,(C ) 是不正確的。
A、柱面號(hào)
B、磁頭號(hào)
C、設(shè)備號(hào)
D、扇區(qū)號(hào)
5.Windows系統(tǒng)的FAT文件系統(tǒng)支持(B )結(jié)構(gòu)。
A、順序文件
B、鏈接文件
C、索引文件
D、散列文件
6.下面的( A)不是文件的存儲(chǔ)結(jié)構(gòu)。
A、記錄式文件
B、連續(xù)文件
C、串聯(lián)文件
D、索引文件
解析:文件的物理結(jié)構(gòu)(又稱文件的存儲(chǔ)結(jié)構(gòu))
1)順序結(jié)構(gòu)文件
2)鏈接結(jié)構(gòu)文件
3)鏈接結(jié)構(gòu)文件
\4) Hash文件
7.在UNIX系統(tǒng)中,磁盤存儲(chǔ)空間空閑塊的鏈接方式是(D )。
A、單塊鏈接
B、位示圖法
C、順序結(jié)構(gòu)
D、成組鏈接
解析:成組鏈接法是Unix系統(tǒng)中常見的管理空閑盤區(qū)的方法。
在UNIX系統(tǒng)中,將空閑塊分成若干組,每100個(gè)空閑塊為一組,每組的第一空閑塊登記了下一組空閑塊的物理盤塊號(hào)和空閑塊總數(shù)。如果一個(gè)組的第二個(gè)空閑塊號(hào)等于0,則有特殊的含義,意味著該組是最后一組,即無下一個(gè)空閑塊。
1.分配空閑塊的時(shí)候,從前往后分配,先從第一組開始分配,第一組空閑的100塊分完了,才進(jìn)入第二組。
2.釋放空閑塊的時(shí)候正好相反,從后往前分配,先將釋放的空閑塊放到第一組,第一組滿了,在第一組前再開辟一組,之前的第一組變成第二組。
8.設(shè)磁盤的每塊可以存放512個(gè)字節(jié)?,F(xiàn)有一長度為3000個(gè)字節(jié)的流式文件要存儲(chǔ)在磁盤上,該文件至少用(C)塊。
A、4
B、5
C、6
D、8
解析:3000/512=5.8
9.在文件管理中,采用位示圖主要是實(shí)現(xiàn)(B )。
A、磁盤的驅(qū)動(dòng)調(diào)度
B、磁盤空間的分配和回收
C、文件目錄的查找
D、頁面置換
10.EXT2文件系統(tǒng)支持(C)結(jié)構(gòu)
A、順序文件
B、鏈接文件
C、索引文件
D、目錄文件
解析;https://blog.51cto.com/u_15346415/3671742
11.最適合順序存取的文件是(B)
A、索引文件
B、順序文件
C、鏈接文件
D、記錄式文件
解析:順序文件 (Sequential File)是記錄按其在文件中的邏輯順序依次進(jìn)入存儲(chǔ)介質(zhì)而建立的,即順序文件中物理記錄的順序和邏輯記錄的順序是一致的。
12.最適合隨機(jī)存取的文件是(A)。
A、索引文件
B、 順序文件
C、鏈接文件
D、記錄式文件
解析:索引文件由數(shù)據(jù)文件組成,它是帶索引的順序文件。索引本身非常小,只占兩個(gè)字段;順序文件的鍵和在磁盤上相應(yīng)記錄的地址。
13.(C )的物理結(jié)構(gòu)對(duì)文件隨機(jī)存取時(shí)必須按指針進(jìn)行,但效率較低。
A、索引文件
B、連續(xù)文件
C、鏈接文件
D、多級(jí)索引文件
解析:順序不需要指針,索引和多級(jí)索引雖然需要指針,但是速度要比鏈?zhǔn)娇煲恍?/p>
14.設(shè)某系統(tǒng)磁盤共有500塊,塊編號(hào)為0-499,若用位示圖法管理這500塊的盤空間,則當(dāng)字長為32位時(shí),位示圖需要多少個(gè)字? A
A、16
B、32
C、64
D、8
解析:一個(gè)字有32位,可以管理32個(gè)物理塊。500除以32=15.625,向上取整,所以是16個(gè)字;
15.在以下文件的物理結(jié)構(gòu)中,不利于文件長度動(dòng)態(tài)增長的是(A)。
A、連續(xù)結(jié)構(gòu)
B、鏈接結(jié)構(gòu)
C、索引結(jié)構(gòu)
D、散列結(jié)構(gòu)
解析:順序(連續(xù))結(jié)構(gòu)的優(yōu)點(diǎn)是訪問速度快,缺點(diǎn)是文件長度增加困難。
鏈?zhǔn)浇Y(jié)構(gòu)的優(yōu)點(diǎn)是文件長度容易動(dòng)態(tài)變化,其缺點(diǎn)是不適合隨機(jī)存取訪問。
索引結(jié)構(gòu)的優(yōu)點(diǎn)是訪問速度快,文件長度可以動(dòng)態(tài)變化。缺點(diǎn)是存儲(chǔ)開銷大,限制了文件的最大長度。
Hash結(jié)構(gòu):只適用于定長記錄文件和按記錄鍵隨機(jī)查找的訪問方式
Hash結(jié)構(gòu)的思想是:通過計(jì)算來確定一個(gè)記錄在存儲(chǔ)設(shè)備上的存儲(chǔ)位置,依次先后存入的兩個(gè)記錄在物理設(shè)備上不一定相鄰。
16.文件系統(tǒng)中若文件的物理結(jié)構(gòu)采用連續(xù)結(jié)構(gòu),則FCB中有關(guān)文件的物理位置的信息應(yīng)包括(B)。 I.首塊地址 II.文件長度 III.索引表地址
A、I
B、I和II
C、II和III
D、I和III
解析:文件的順序結(jié)構(gòu)是一種最簡單的物理結(jié)構(gòu),只要知道文件在存儲(chǔ)設(shè)備上的起始地址(首塊號(hào))和文件長度(總塊數(shù))就能很快地進(jìn)行存取。
17.位示圖可用于(B)。
A、文件目錄的查找
B、磁盤空間的管理
C、主存空間的管理
D、文件的保密
18.物理文件的組織方式是由(D)確定的。
A、應(yīng)用程序
B、主存容量
C、外存容量
D、操作系統(tǒng)
19.假定磁盤的旋轉(zhuǎn)速度是10ms/周,每個(gè)磁道被劃分成大小相等的4塊,那么,傳送一個(gè)信息塊的所需時(shí)間為(D)
A、4ms
B、5ms
C、10ms
D、2.5ms
解析:存取時(shí)間 = 尋道時(shí)間 + 等待時(shí)間(平均定位時(shí)間+旋轉(zhuǎn)延遲時(shí)間,又稱為旋轉(zhuǎn)延遲時(shí)間)
磁盤旋轉(zhuǎn)是一個(gè)不會(huì)停下來的勻速旋轉(zhuǎn)的過程,所以周期為 10ms時(shí),平均每個(gè)物理塊的讀取時(shí)間為10/4=2.5ms. 這 2.5ms 即為平均定位時(shí)間。
20.有4個(gè)按時(shí)間次序排列的磁道請(qǐng)求,序列如下:
(1)95,185,5,25,50,10,82,70,90,15
(2)35,65,70,185,100,125,130,95,20,15
(3)5,15,35,125,50,130,60,70,80,20
(4)90,15,25,125,10,130,82,70,100,20
如果磁頭的初始位置在85號(hào)磁道上,最短尋道優(yōu)先算法和電梯調(diào)度算法得到的服務(wù)序列完全一致的是(B)。
解析:最短尋道優(yōu)先算法
根據(jù)最短尋道時(shí)間優(yōu)先磁盤調(diào)度算法,每次在尋找下一個(gè)磁道時(shí),都要選擇離自己最近的,所以當(dāng)前磁頭位于85號(hào),下一道選擇與85絕對(duì)值最小的
即
| 82 | 3 |
| 90 | 8 |
| 95 | 5 |
| 70 | 75 |
| 50 | 20 |
| 25 | 25 |
| 15 | 10 |
| 10 | 5 |
| 5 | 5 |
| 185 | 180 |
電梯調(diào)度算法
優(yōu)先考慮磁頭的當(dāng)前移動(dòng)方向,并且考慮當(dāng)前磁道與下一磁道之間的距離。例如,當(dāng)磁頭正在自里向外移動(dòng)時(shí),掃描算法所選擇的下一個(gè)訪問對(duì)象應(yīng)該是,即在當(dāng)前磁道之外,又距離最近。這樣自里向外的訪問,直到再無更外的磁道需要訪問才將磁臂換向,自外向里移動(dòng)。移動(dòng)原則同前一致。下面貼出這一段的來源淺談磁盤調(diào)度算法
由于這種算法中磁頭移動(dòng)的規(guī)律與電梯的運(yùn)行相似,因此又稱為電梯調(diào)度算法。
| 90 | 82 |
| 95 | 70 |
| 185 | 50 |
| 25 | |
| 15 | |
| 10 | |
| 5 |
2)
| 100 | |
| 125 | |
| 130 | |
| 185 | |
| 70 | |
| 65 | |
| 35 | |
| 20 | |
| 15 |
| 95 | 70 |
| 100 | 65 |
| 125 | 35 |
| 130 | 20 |
| 185 | 15 |
3)
| 70 | |
| 60 | |
| 50 | |
| 35 | |
| 20 | |
| 15 | |
| 5 | |
| 125 | |
| 130 |
| 125 | 80 |
| 130 | 70 |
| 60 | |
| 50 | |
| 35 | |
| 20 | |
| 15 | |
| 5 |
4)
| 90 | |
| 100 | |
| 125 | |
| 130 | |
| 70 | |
| 25 | |
| 20 | |
| 15 | |
| 10 |
| 90 | 82 |
| 100 | 70 |
| 125 | 25 |
| 130 | 20 |
| 15 | |
| 10 | |
21.某系統(tǒng)中,一個(gè)FCB占用64B,盤塊大小1KB,文件目錄中有3200個(gè)FCB,故查找一個(gè)文件平均啟動(dòng)磁盤次數(shù)為(C )
A、50
B、64
C、100
D、200
解析:3200個(gè)目錄項(xiàng)需要占用的盤塊數(shù)=3200×64B/1KB=200個(gè)。采用一級(jí)目錄,平均訪問盤塊次數(shù)=(0+200)/2=100,
22.操作系統(tǒng)為每一個(gè)文件開辟一個(gè)存儲(chǔ)區(qū),在它的里面記錄著該文件的有關(guān)信息。這就是( B )。
A、進(jìn)程控制塊
B、文件控制塊
C、設(shè)備控制塊
D、作業(yè)控制塊
23.一個(gè)文件的絕對(duì)路徑名總是以(A )打頭。
A、磁盤名
B、字符串
C、分隔符
D、文件名
24.一個(gè)文件的絕對(duì)路徑名是從( B )開始,逐步沿著每一級(jí)子目錄向下,最后到達(dá)指定文件的整個(gè)通路上所有子目錄名組成的一個(gè)字符串。
A、當(dāng)前目錄
B、根目錄
C、多級(jí)目錄
D、二級(jí)目錄
25.設(shè)某系統(tǒng)磁盤共有1600塊,塊號(hào)從0到1599,若用位示圖管理此磁盤空間當(dāng)字長為32位時(shí),位示圖需要(50)個(gè)字,第20個(gè)字的第10位對(duì)應(yīng)的塊號(hào)是(B)。
A、16i+j
B、32i+j
C、i+32j
D、i+16j
解析:字:1600/32=50
塊號(hào)b=32i+j
26.假設(shè)磁頭當(dāng)前位于第105道,正在向磁道序號(hào)增加的方向移動(dòng)?,F(xiàn)有一個(gè)磁道訪問請(qǐng)求序列為35,45,12,68,110,180,170,195,采用SCAN調(diào)度(電梯調(diào)度)算法得到的磁道訪問序列是 (B )。
A、68 45 35 12 110 170 180 195
B、110 170 180 195 68 45 35 12
C、110 170 180 195 12 35 45 68
D、12 35 45 68 110 170 180 195
解析:
| 170 | 45 |
| 180 | 35 |
| 195 | 12 |
27.在驅(qū)動(dòng)調(diào)度算法中,(BD )算法可能會(huì)隨時(shí)改變移動(dòng)臂的移動(dòng)方向。
A、電梯調(diào)度
B、先來先服務(wù)
C、單向掃描
D、最短尋道時(shí)間優(yōu)先
解析:
帶有“SCAN”的都屬于掃描類算法,從一頭掃到另一頭,然后返回,再循環(huán)這個(gè)過程。 SSTF最最短尋道優(yōu)先,隨時(shí)可能改變移動(dòng)臂的運(yùn)動(dòng)方向。先來先服務(wù),是按到達(dá)時(shí)間順序,一個(gè)服務(wù)完了,磁頭回去去找第二個(gè),找到馬上執(zhí)行,類推,不知道下一個(gè)什么時(shí)候到,不能確定回到哪個(gè)點(diǎn)
最短尋道,是一個(gè)服務(wù)完,找離磁頭最近的那個(gè)進(jìn)程,也不固定
電梯調(diào)度,磁頭固定的在兩個(gè)點(diǎn)之間運(yùn)動(dòng),哪個(gè)進(jìn)程能搭上就運(yùn)行掉
單項(xiàng)掃描,磁頭從一邊掃到另一邊,完了立刻跳回到開頭,回來過程中不處理進(jìn)程
28.磁盤訪問時(shí)間由哪幾部分組成 (ABC )
A、尋道時(shí)間 Ts
B、旋轉(zhuǎn)延遲時(shí)間 Tr
C、傳輸時(shí)間 Tt
D、數(shù)據(jù)訪問時(shí)間 Td
解析:磁盤訪問時(shí)間由尋道時(shí)間 Ts、旋轉(zhuǎn)延遲時(shí)間 Tr、傳輸時(shí)間 Tt 三部分組成。 (1)Ts 是啟動(dòng)磁臂時(shí)間 s 與磁頭移動(dòng) n 條磁道的時(shí)間和,即 Ts = m × n + s。 (2) Tr 是指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間。 硬盤 15000r/min 時(shí) Tr 為 2ms;軟盤 300 或 600r/min 時(shí) Tr 為 50~100ms。 (3)Tt 是指數(shù)據(jù)從磁盤讀出或向磁盤寫入經(jīng)歷的時(shí)間。Tt 的大小與每次讀/寫的字節(jié) 數(shù) b 和旋轉(zhuǎn)速度有關(guān):Tt = b/rN。
29.提高磁盤可靠性的技術(shù)有(ABCD)
A、第一級(jí)容錯(cuò)技術(shù)SFT-Ⅰ
B、第二級(jí)容錯(cuò)技術(shù)SFT- Ⅱ
C、基于集群技術(shù)的容錯(cuò)功能
D、后備系統(tǒng)
30.關(guān)于RAID技術(shù),下面表述正確的有(ABCD )。
A、RAID在剛被推出時(shí),是分成6級(jí)的,后來又增加了RAID 6級(jí)和RAID 7級(jí)。
B、可靠性高,除了RAID 0級(jí)外,其余各級(jí)都采用了容錯(cuò)技術(shù)。當(dāng)陣列中某一磁盤損壞時(shí),并不會(huì)造成數(shù)據(jù)的丟失。此時(shí)可根據(jù)其它未損壞磁盤中的信息來恢復(fù)已損壞的盤中的信息。其可靠性比單臺(tái)磁盤機(jī)高出一個(gè)數(shù)量級(jí)。
C、磁盤I/O速度高,由于采取了并行交叉存取方式,可使磁盤I/O速度提高N-1倍。
D、性能/價(jià)格比高,RAID的體積與具有相同容量和速度的大型磁盤系統(tǒng)相比,只是后者的1/3,價(jià)格也只是后者的1/3,且可靠性高。換言之,它僅以犧牲1/N的容量為代價(jià),換取了高可靠性。
第一次階段測試
一.填空題(共9題,100.0分)
1.(填空題11.1分)
在一個(gè)使用交換技術(shù)的系統(tǒng)中,按地址從低到高排列的內(nèi)存空間長度是:10KB、4KB、20KB、18KB、7KB、9KB、12KB、15KB。
對(duì)于下列順序的段請(qǐng)求
(1)12KB(2)10KB(3)15KB(4)18KB(5)12KB
使用首次適應(yīng)算法能否滿足以上所有請(qǐng)求:不能
(填“能”或“不能”)
使用最佳適應(yīng)算法能否滿足以上所有請(qǐng)求:能
(填“能”或“不能”);
使用循環(huán)首次適應(yīng)算法能否滿足以上所有請(qǐng)求:不能
(填“能或不能)
解析:首次適應(yīng)算法(FF):將所有空閑分區(qū)按照地址遞增的次序鏈接,在申請(qǐng)內(nèi)存分配時(shí),從鏈?zhǔn)组_始查找,將滿足需求的第一個(gè)空閑分區(qū)分配給作業(yè)。
| 分區(qū)大小 | 10 | 4 | 20 | 18 | 7 | 9 | 12 | 15 |
| 剩余大小 | 10 | 4 | 8(A) | 8(B) | 7 | 9 | 12 | 0? |
未完成
最佳適應(yīng)算法(BF): 將所有空閑分區(qū)按照從小到大的順序形成空閑分區(qū)鏈,在申請(qǐng)內(nèi)存分配時(shí),總是把滿足需求的、最小的空閑分區(qū)分配給作業(yè)。
| 分區(qū)大小 | 4 | 7 | 9 | 10 | 12 | 15 | 18 | 20 |
| 剩余大小 | 4 | 7 | 9 | 0(B) | 0(A) | 3(E) | 3? | 2(D) |
循環(huán)首次適應(yīng)算法(NF):將所有空閑分區(qū)按照地址遞增的次序鏈接,在申請(qǐng)內(nèi)存分配時(shí),總是從上次找到的空閑分區(qū)的下一個(gè)空閑分區(qū)開始查找,將滿足需求的第一個(gè)空閑分區(qū)分配給作業(yè)
| 分區(qū)大小 | 10 | 4 | 20 | 18 | 7 | 9 | 12 | 15 |
| 剩余大小 | 10 | 4 | 8(A) | 8(B) | 7 | 9 | 12 | 0? |
明顯找不到了
#include <iostream> #include <fstream> #include <iomanip> using namespace std;#define MAXNUMBER 100 static int PartitionNum; //內(nèi)存中空閑分區(qū)的個(gè)數(shù) static int ProcessNum; //需要分配的進(jìn)程個(gè)數(shù) static int FreePartition[MAXNUMBER]; //空閑分區(qū)對(duì)應(yīng)的內(nèi)存 static int ProcessNeed[MAXNUMBER]; //需要分配的進(jìn)程大小static int LeftFreePartition[MAXNUMBER]; static int LeftProcessNeed[MAXNUMBER];static char ProcessName[MAXNUMBER]; static char NameProcessToPartition[MAXNUMBER][MAXNUMBER];typedef struct {int partitionSize;int id; }sortNeed;void readDataFunction(); void input(); void display(); void FirstFit(); void NextFit(); void BestFit(); void WorstFit(); void selectAlgorithm(int chooceAlgorithm); void display();void readDataFunction() {cout<<"請(qǐng)輸入空閑分區(qū)數(shù)"<<endl;cin >> PartitionNum;cout << "請(qǐng)輸入空閑分區(qū)大小" << endl;for (int i = 0; i<PartitionNum; i++){cin >> FreePartition[i];}cout<<"請(qǐng)輸入進(jìn)程個(gè)數(shù)"<<endl;cin >> ProcessNum;cout<<"請(qǐng)輸入進(jìn)程名稱"<<endl;for (int i = 0; i<ProcessNum; i++){cin >> ProcessName[i];}cout<<"請(qǐng)輸入進(jìn)程需要分配大小"<<endl;for (int i = 0; i<ProcessNum; i++){cin >> ProcessNeed[i];} }void input() {int chooseAlgorithm = 5;do{//readDataFunction();cout << "請(qǐng)選擇實(shí)現(xiàn)的算法:" << endl;cout << "***** 1 - 首次適應(yīng)算法 *****" << endl;cout << "***** 2 - 循環(huán)首次適應(yīng)算法 *****" << endl;cout << "***** 3 - 最佳適應(yīng)算法 *****" << endl;cout << "***** 4 - 最壞適應(yīng)算法 *****" << endl;cout << "***** 0 - 結(jié)束 *****" << endl;cout << "chooseAlgorithm = ";cin >> chooseAlgorithm;selectAlgorithm(chooseAlgorithm);//display();} while (chooseAlgorithm); }void initial() {readDataFunction(); //讀取原始數(shù)據(jù)for (int i = 0; i<PartitionNum; i++){LeftFreePartition[i] = FreePartition[i];for (int j = 0; j<ProcessNum; j++){NameProcessToPartition[i][j] = NULL;}}for (int i = 0; i<ProcessNum; i++){LeftProcessNeed[i] = ProcessNeed[i];} }void FirstFit() {cout << "***********首次適應(yīng)算法***********" << endl;initial();int i, j;for (i = 0; i<ProcessNum; i++) //逐個(gè)遍歷每個(gè)進(jìn)程{for (j = 0; j<PartitionNum; j++){if (LeftProcessNeed[i] <= LeftFreePartition[j] && LeftFreePartition != 0) //當(dāng)系統(tǒng)內(nèi)存分區(qū)足夠大的時(shí)候,即分配給進(jìn)程資源{LeftFreePartition[j] -= LeftProcessNeed[i]; //扣除分配給進(jìn)程的資源LeftProcessNeed[i] = 0; //當(dāng)且僅當(dāng)系統(tǒng)內(nèi)存分區(qū)足夠時(shí)才執(zhí)行,即當(dāng)前進(jìn)程大小置0NameProcessToPartition[i][j] = ProcessName[i]; //存儲(chǔ)各個(gè)進(jìn)程所在的分區(qū)位置break; //!!!很重要,一個(gè)進(jìn)程分區(qū)完后,應(yīng)該立即break,進(jìn)行下一個(gè)進(jìn)程的判斷}}}display();}void NextFit() {cout << "***********循環(huán)首次適應(yīng)算法***********" << endl;initial();int i, nextPoint = 0;bool isWhile;for (i = 0; i<ProcessNum; i++){isWhile = true;while (isWhile){if (LeftFreePartition[nextPoint] >= LeftProcessNeed[i]){LeftFreePartition[nextPoint] -= LeftProcessNeed[i];LeftProcessNeed[i] = 0;NameProcessToPartition[i][nextPoint] = ProcessName[i];nextPoint++;if (nextPoint > PartitionNum - 1){nextPoint = 0; //當(dāng)j遍歷到分區(qū)末尾的時(shí)候,返回首位置}isWhile = false;}elsenextPoint++;}}display(); }void BestFit() {//思想:利用冒泡排序?qū)Ψ謪^(qū)大小進(jìn)行排序,但不改變?cè)謪^(qū)的位置//創(chuàng)建一個(gè)結(jié)構(gòu)體,包括分區(qū)大小和所對(duì)應(yīng)的id,排序過程中,每改變順序一次,id隨著改變//關(guān)鍵:每次分配完一個(gè)進(jìn)程的內(nèi)存大小后,都要重新排序cout << "***********最佳適應(yīng)算法***********" << endl;initial();int i, j, temp, tempID;sortNeed best[MAXNUMBER];for (i = 0; i<PartitionNum; i++){//初始化結(jié)構(gòu)體best[i].partitionSize = FreePartition[i];best[i].id = i;}for (i = 0; i<ProcessNum; i++){for (int s = PartitionNum - 1; s > 0; s--) //冒泡排序(每次分配完一個(gè)進(jìn)程后,都需要重新排序){for (int t = 0; t < s; t++){if (best[s].partitionSize < best[t].partitionSize){temp = best[s].partitionSize;best[s].partitionSize = best[t].partitionSize;best[t].partitionSize = temp;tempID = best[s].id;best[s].id = best[t].id;best[t].id = tempID;}}}for (j = 0; j<PartitionNum; j++){if (LeftProcessNeed[i] <= best[j].partitionSize){best[j].partitionSize -= LeftProcessNeed[i];LeftProcessNeed[i] = 0;NameProcessToPartition[i][best[j].id] = ProcessName[i];break;}}LeftFreePartition[best[j].id] = best[j].partitionSize;}display(); }void WorstFit() {cout << "***********最壞適應(yīng)算法***********" << endl;initial();int i, j, s, t, tempSize, tempID;sortNeed Worst[MAXNUMBER];for (i = 0; i<PartitionNum; i++){Worst[i].partitionSize = FreePartition[i];Worst[i].id = i;}for (i = 0; i<ProcessNum; i++){for (s = PartitionNum - 1; s>0; s--){for (t = 0; t<s; t++){if (Worst[s].partitionSize > Worst[t].partitionSize){tempSize = Worst[s].partitionSize;Worst[s].partitionSize = Worst[t].partitionSize;Worst[t].partitionSize = tempSize;tempID = Worst[s].id;Worst[s].id = Worst[t].id;Worst[t].id = tempID;}}}for (j = 0; j<PartitionNum; j++){if (LeftProcessNeed[i] <= Worst[j].partitionSize){Worst[j].partitionSize -= LeftProcessNeed[i];LeftProcessNeed[j] = 0;NameProcessToPartition[i][Worst[j].id] = ProcessName[i];break;}}LeftFreePartition[Worst[j].id] = Worst[j].partitionSize;}display();}void selectAlgorithm(int chooseAlgorithm) {switch (chooseAlgorithm){case 0:break;case 1:FirstFit(); break;case 2:NextFit(); break;case 3:BestFit(); break;case 4:WorstFit(); break;default:cout << "請(qǐng)輸入正確的序號(hào):" << endl;} }void display() {int i;cout << "需要分配內(nèi)存的進(jìn)程名:" << setw(10);for (i = 0; i<ProcessNum; i++){cout << ProcessName[i] << setw(6);}cout << endl;cout << "需要分配內(nèi)存的進(jìn)程分區(qū)大小:" << setw(4);for (i = 0; i<ProcessNum; i++){cout << ProcessNeed[i] << setw(6);}cout << endl;cout << "分配結(jié)果:" << endl;cout << "分區(qū)序號(hào):";for (i = 0; i<PartitionNum; i++){cout << "分區(qū)" << i + 1 << " ";}cout << endl << "分區(qū)大小:";for (i = 0; i<PartitionNum; i++){cout << FreePartition[i] << " ";}cout << endl << "剩余大小: ";for (i = 0; i<PartitionNum; i++){cout << LeftFreePartition[i] << " ";}cout << endl << "分配進(jìn)程情況:" << endl;for (i = 0; i<PartitionNum; i++){for (int j = 0; j<ProcessNum; j++){if (NameProcessToPartition[j][i] != NULL){cout << NameProcessToPartition[j][i] << ": (分區(qū)" << i + 1 << ")" << endl;}}//cout<<" ";}cout << endl << "********結(jié)束**********" << endl; }int main() {input();return 0; }2.(填空題,11.1分)
假設(shè)某虛存的用戶空間為1024KB,頁面大小為4KB,內(nèi)存空間為1MB。已知用戶的虛頁10、11、12、13頁分得內(nèi)存物理塊號(hào)為62、12、25、36,求出虛地址0BEBC(16進(jìn)制)的實(shí)地址(16進(jìn)制)是 0CEBC(只填寫16進(jìn)制數(shù),中間不能有空格)。
解析:0BEBC(16進(jìn)制)轉(zhuǎn)換為二進(jìn)制為0000 1011 1110 1011 1100,由于頁面大小為4kb,頁面大小 = 2^(頁內(nèi)地址位數(shù)),所以頁面大小為4KB,有12位,所以后12位是位移,低位部分是位移量,?位部分是頁號(hào)。虛地址頁號(hào):0000 1011轉(zhuǎn)成10進(jìn)制即為11,所以查頁表分得內(nèi)存對(duì)應(yīng)頁框號(hào)為:12.已知內(nèi)存空間為1024KB,頁的大小=頁框大小(進(jìn)程中的塊和內(nèi)存中的塊大小相同),故內(nèi)存共有1024kb/4kb=256個(gè)頁框,12是合法物理塊。把12化為16進(jìn)制是0c,虛地址0BEBC(16進(jìn)制)的實(shí)地址(16進(jìn)制)是:0cEBC。
3.(填空題,11.1分)
有n個(gè)進(jìn)程A1,…An將字符讀入到一個(gè)容量為80字節(jié)的緩沖區(qū)中(n>1),當(dāng)緩沖區(qū)滿后,由另一個(gè)進(jìn)程B負(fù)責(zé)一次性取走這80個(gè)字符,這種過程循環(huán)往復(fù)。試用信號(hào)量及wait()、signal()操作寫出n個(gè)讀入進(jìn)程和取數(shù)進(jìn)程同步操作的程序。
定義信號(hào)量mutex表示對(duì)緩沖區(qū)的互斥訪問;empty表示空緩沖區(qū)數(shù)目,ful表示滿緩沖區(qū)數(shù)目。
代碼如下,請(qǐng)補(bǔ)全:
(1)P(empty);
(2)P(mutex);
(3)V(mutex);
(4)V(full);
(5)V(mutex);
(6)P(full);
(7)P(mutex);
(8)V(mutex);
(9)V(empty);
4.(填空題,11.1分)
在銀行家算法中,若出現(xiàn)下述4類資源的分配情況。
| P0 | 0032 | 0012 | 1622 |
| P1 | 1000 | 1750 | |
| P2 | 1354 | 2356 | |
| P3 | 0332 | 0652 | |
| P4 | 0014 | 0656 |
試問:該狀態(tài)是否安全?【1】填“安全”或“不安全”安全
安全序列是_【2】若無安全序列填“無”
(2){P0,P3,P1,P4,P2};{P0,P3,P4,P1,P2}
如果進(jìn)程P2提出請(qǐng)求Request2(1,2,2,2)后,系統(tǒng)是否能將資源分配給它?【3】填“分配”或“不分配”
不分配
原因是【4】若“分配”填安全序列;若“不分配”填原因序號(hào)(只寫字母):a.需求錯(cuò)誤。b.剩余資源不夠任何進(jìn)
程執(zhí)行。C.剩余資源只夠部分進(jìn)程執(zhí)行。
b
解析:
| A B C D | A B C D | A B C D | A B C D | ||
| P0 | 1 6 2 2 | 0 0 1 2 | 0 0 3 2 | 1 6 5 4 | TRUE |
| P3 | 1 6 5 4 | 0 6 5 2 | 0 3 3 2 | 1 9 8 6 | TRUE |
| P1 | 1 9 8 6 | 1 7 5 0 | 1 0 0 0 | 2 9 8 6 | TRUE |
| P4 | 2 9 8 6 | 0 6 5 6 | 0 0 1 4 | 2 9 9 10 | TRUE |
| P2 | 2 9 9 10 | 2 3 5 6 | 1 3 5 4 | 3 12 14 14 | TRUE |
由安全性檢查得知,可以找到一個(gè)安全序列{P0、P3、P1、P4、P2},因此系統(tǒng)是安全的。
(2)P2提出Request(1,2,2,2),系統(tǒng)按銀行家算法進(jìn)行檢查:Request(1,2,2,2) ≤ Need(2,3,5,6),P2請(qǐng)求是合理的;Request(1,2,2,2)≤Available(1,6,2,2),P2請(qǐng)求是可以滿足的;
所以先假定分配這個(gè)P2請(qǐng)求的資源,資源變化情況如下所示
| Process | Allocation | Need | Available |
| P0 | 0032 | 0012 | 0400 |
| P1 | 1000 | 1750 | |
| P2 | 2576 | 1134 | |
| P3 | 0332 | 0652 | |
| P4 | 0014 | 0656 |
Available=Available-Request=(0,4,0,0)
Need=Need-Request=(1,1,3,4)
Allocation=Allocation+Request=(2,5,7,6)
此時(shí)不存在一個(gè)安全序列,所以不能將P2請(qǐng)求的資源分配給它,讓P2等待。
#include <iostream> using namespace std; #define MAXPROCESS 50 //最大進(jìn)程數(shù) #define MAXRESOURCE 100 //最大資源數(shù) int AVAILABLE[MAXRESOURCE]; //可用資源數(shù)組 int MAX[MAXPROCESS][MAXRESOURCE]; //最大需求矩陣 int ALLOCATION[MAXPROCESS][MAXRESOURCE]; //分配矩陣 int NEED[MAXPROCESS][MAXRESOURCE]; //需求矩陣 int REQUEST[MAXPROCESS][MAXRESOURCE]; //進(jìn)程需要資源數(shù) bool FINISH[MAXPROCESS]; //系統(tǒng)是否有足夠的資源分配 int p[MAXPROCESS]; //記錄序列 int m,n; //m個(gè)進(jìn)程,n個(gè)資源 void Init(); //初始化變量 bool Safe(); //安全檢測 void Bank(); //銀行家算法 void showdata(int,int); //顯示輸出系統(tǒng)信息 int main() {Init();Safe();Bank(); }/*初始化變量*/ void Init() {int i,j;//輸入進(jìn)程 cout << "請(qǐng)輸入進(jìn)程的數(shù)目:";cin >> m;//m為進(jìn)程數(shù)目 cout << "請(qǐng)輸入資源的種類:";cin >> n;//有n中資源 cout << "請(qǐng)輸入每個(gè)進(jìn)程最多所需的各資源數(shù),按照" << m << "x" << n << "矩陣輸入" << endl;for(i=0;i<m;i++)//通過循環(huán),輸入了每個(gè)進(jìn)程的各類資源最大需求量MAX for(j=0;j<n;j++)cin >> MAX[i][j];cout << "請(qǐng)輸入每個(gè)進(jìn)程已分配的各資源數(shù),也按照" << m << "x" << n << "矩陣輸入" << endl;for(i = 0; i < m; i++)//輸入每個(gè)進(jìn)程的各類資源已分配量 for(j = 0; j < n; j++){cin >> ALLOCATION[i][j];NEED[i][j] = MAX[i][j] - ALLOCATION[i][j];//還需要的各類資源數(shù)目=最大需求-已經(jīng)獲得的 if(NEED[i][j] < 0)//若已經(jīng)獲得的>最大需求量,則需要重新輸入,Allocation {cout << "您輸入的第" << i+1 << "個(gè)進(jìn)程所擁有的第" << j+1 << "個(gè)資源數(shù)錯(cuò)誤,請(qǐng)重新輸入:" << endl;j--;continue;}}cout << "請(qǐng)輸入各個(gè)資源現(xiàn)有的數(shù)目:" << endl; for(i = 0; i < n; i++)//現(xiàn)有的各類資源數(shù)目 cin >> AVAILABLE[i]; }/*銀行家算法*/ void Bank() {int i,cusneed,flag = 0; //cousneed資源進(jìn)程號(hào)char again; //鍵盤錄入一個(gè)字符用于判斷是否繼續(xù)請(qǐng)求資源while(1){showdata(n,m);//得到n和m cout << endl;/*請(qǐng)求資源*/while(true){cout << "請(qǐng)輸入要申請(qǐng)資源的進(jìn)程號(hào)(注:第1個(gè)進(jìn)程號(hào)為0,依次類推)" << endl;cin >> cusneed;//輸入哪個(gè)進(jìn)程需要請(qǐng)求資源 if (cusneed > m)//如果編程號(hào)>現(xiàn)有的進(jìn)程數(shù) ,則是輸入的進(jìn)程編號(hào)錯(cuò)誤 {cout << "沒有該進(jìn)程,請(qǐng)重新輸入" << endl;continue;}cout << "請(qǐng)輸入進(jìn)程所請(qǐng)求的各資源的數(shù)量" << endl;for(i = 0; i < n; i++)//輸入請(qǐng)求的各類資源數(shù) cin >> REQUEST[cusneed][i];for(i = 0; i < n; i++){if(REQUEST[cusneed][i] > NEED[cusneed][i]) //如果用戶選擇的線程的第i個(gè)資源請(qǐng)求數(shù)>該線程該資源所需的數(shù)量{cout << "您輸入的請(qǐng)求數(shù)超過進(jìn)程的需求量!請(qǐng)重新輸入!" << endl;continue;}if(REQUEST[cusneed][i] > AVAILABLE[i]) //如果用戶選擇的線程的第i個(gè)資源請(qǐng)求數(shù)>系統(tǒng)現(xiàn)有的第i個(gè)資源的數(shù)量{cout << "您輸入的請(qǐng)求數(shù)超過系統(tǒng)有的資源數(shù)!請(qǐng)重新輸入!" << endl;continue;}}break;}/*如果請(qǐng)求合理,那么開始銀行家算法計(jì)算*//*先將申請(qǐng)的資源進(jìn)行分配*/for(i = 0; i < n; i++){AVAILABLE[i] -= REQUEST[cusneed][i]; //系統(tǒng)可用資源減去申請(qǐng)了的ALLOCATION[cusneed][i] += REQUEST[cusneed][i]; //線程被分配的資源加上已申請(qǐng)了的NEED[cusneed][i] -= REQUEST[cusneed][i]; //線程還需要的資源減去已申請(qǐng)得到的}/*判斷分配申請(qǐng)資源后的系統(tǒng)是否安全;如果不安全則將分配的申請(qǐng)資源還回系統(tǒng)*/if(Safe()) //AVAILABLE ALLOCATION NEED變動(dòng)之后,是否會(huì)導(dǎo)致不安全cout << "同意分配請(qǐng)求!" << endl;else{cout << "您的請(qǐng)求被拒絕!" << endl;/*資源還回系統(tǒng)*/for(i = 0; i < n; i++)//拒絕后,已獲得資源,需求和現(xiàn)有各類資源情況變化 {AVAILABLE[i] += REQUEST[cusneed][i];ALLOCATION[cusneed][i] -= REQUEST[cusneed][i];NEED[cusneed][i] += REQUEST[cusneed][i];}}/*對(duì)進(jìn)程的需求資源進(jìn)行判斷;是否還需要資源;即NEED數(shù)組是否為0*/for (i = 0; i < n; i++)//計(jì)算已經(jīng)不需要資源的進(jìn)程有多少個(gè) if (NEED[cusneed][i] <= 0)flag++;if (flag == n) //如果該進(jìn)程各資源都已滿足條件,則釋放資源{for (i = 0; i < n; i++)//釋放資源 {AVAILABLE[i] += ALLOCATION[cusneed][i];ALLOCATION[cusneed][i] = 0;NEED[cusneed][i] = 0;}cout << "線程" << cusneed << " 占有的資源被釋放!" << endl;flag = 0;}for(i = 0; i < m; i++) //分配好了以后將進(jìn)程的標(biāo)識(shí)FINISH改成falseFINISH[i] = false;/*判斷是否繼續(xù)申請(qǐng)*/cout << "您還想再次請(qǐng)求分配嗎?是請(qǐng)按y/Y,否請(qǐng)按其它鍵" << endl;cin >> again;if(again == 'y' || again == 'Y')continue;break;} }/*安全性算法*/ //要找到一個(gè)安全序列 bool Safe() {int i, j, k, l = 0;int Work[MAXRESOURCE]; //工作數(shù)組/*工作數(shù)組賦值,與AVAILABLE數(shù)組相同*/for (i = 0; i < n; i++)//將Available的值賦給work Work[i] = AVAILABLE[i];/*FINISH數(shù)組賦值,初始為全部false*/for (i = 0; i < m; i++)FINISH[i] = false; //FINISH記錄每個(gè)進(jìn)程是否安全while (l < m) //正常的話,共執(zhí)行m次{int init_index = l;for (i = 0; i < m; i++){if (FINISH[i] == true) //如果這個(gè)進(jìn)程安全則繼續(xù)下一個(gè)循環(huán)continue;for (j = 0; j < n; j++)if (NEED[i][j] > Work[j])//若需求>work,則現(xiàn)在不能是這個(gè)進(jìn)程 break;if (j == n){FINISH[i] = true;for (k = 0; k < n; k++)Work[k] += ALLOCATION[i][k];p[l++] = i;//記錄進(jìn)程號(hào) }else //如果超過繼續(xù)循環(huán)下一個(gè)進(jìn)程continue;}if (l==init_index){cout << "系統(tǒng)是不安全的" << endl;return false;}}cout << "系統(tǒng)是安全的" << endl;cout << "安全序列:" << endl;for (i = 0; i < l; i++){cout << p[i];if (i != l - 1)cout << "-->";}cout << endl;return true; }/*顯示*/ void showdata(int n,int m) {int i,j;cout << endl << "-------------------------------------------------------------" << endl; cout << "系統(tǒng)可用的資源數(shù)為: ";for (j = 0; j < n; j++)cout << " " << AVAILABLE[j]; cout << endl << "各進(jìn)程還需要的資源量:" << endl; for(i = 0; i < m; i++) {cout << " 進(jìn)程" << i << ":"; for(j = 0; j < n; j++)cout << " " << NEED[i][j]; cout << endl; } cout << endl << "各進(jìn)程已經(jīng)得到的資源量: " << endl << endl;for (i = 0; i < m; i++) {cout << " 進(jìn)程" << i << ":"; for (j = 0; j < n; j++)cout << " " << ALLOCATION[i][j];cout << endl; } cout << endl; }5.(填空題,11.1分)
假定磁盤有200個(gè)柱面,編號(hào)0~199,當(dāng)前存取臂的位置在100號(hào)柱面上,并剛剛完成了80號(hào)柱面的服務(wù)請(qǐng)求,如果請(qǐng)求隊(duì)列的先后順序是:
88、58、93、18、90、160、110、48、146
如果采用SCAN算法完成上述請(qǐng)求,其存取臂移動(dòng)的總量是【1】(只填寫最終結(jié)果,數(shù)字)。
磁頭臂移動(dòng)的序列_【2】(參考格式:88-58-93-18-90-160-110-48-146,中間無空格,間隔符為減號(hào))。
如果采用FCFS算法完成上述請(qǐng)求,其存取臂移動(dòng)的總量是【3】(只填寫最終結(jié)果,數(shù)字)
磁頭臂移動(dòng)的序列【4】(參考格式:88-58-93-18-90-160-110-48-146,中間無空格,間隔符為減號(hào))。
如果采用SSTF算法完成上述請(qǐng)求,其存取臂移動(dòng)的總量是【5】(只填寫最終結(jié)果,數(shù)字)
磁頭臂移動(dòng)的序列_【6】(參考格式:88-58-93-18-90-160-110-48-146,中間無空格,間隔符為減號(hào))。
正確答案:
(1)202
(2)110-146-160-93-90-88-58-48-18
(3)504
(4)88-58-93-18-90-160-110-48-146
(5)226
(6)93-90-88-110-146-160-58-48-18
解析:SCAN算法
電梯調(diào)度算法
優(yōu)先考慮磁頭的當(dāng)前移動(dòng)方向,并且考慮當(dāng)前磁道與下一磁道之間的距離。例如,當(dāng)磁頭正在自里向外移動(dòng)時(shí),掃描算法所選擇的下一個(gè)訪問對(duì)象應(yīng)該是,即在當(dāng)前磁道之外,又距離最近。這樣自里向外的訪問,直到再無更外的磁道需要訪問才將磁臂換向,自外向里移動(dòng)。移動(dòng)原則同前一致。下面貼出這一段的來源淺談磁盤調(diào)度算法
由于這種算法中磁頭移動(dòng)的規(guī)律與電梯的運(yùn)行相似,因此又稱為電梯調(diào)度算法。
| 110 | 93 | 10 |
| 146 | 90 | 36 |
| 160 | 88 | 14 |
| 58 | 67 | |
| 48 | 3 | |
| 18 | 2 | |
| 30 | ||
| 10 | ||
| 30 |
10+36+14+67+3+2+30+10+30=202
FCFS算法
按順序訪問
| 88 | 12 |
| 58 | 30 |
| 93 | 35 |
| 18 | 75 |
| 90 | 72 |
| 160 | 70 |
| 110 | 50 |
| 48 | 62 |
| 146 | 98 |
12+30+35+75+72+70+50+62+98=504
SSTF算法
最短尋道優(yōu)先算法
根據(jù)最短尋道時(shí)間優(yōu)先磁盤調(diào)度算法,每次在尋找下一個(gè)磁道時(shí),都要選擇離自己最近的,所以當(dāng)前磁頭位于85號(hào),下一道選擇與85絕對(duì)值最小的
| 93 | 7 |
| 90 | 3 |
| 88 | 2 |
| 110 | 22 |
| 146 | 36 |
| 160 | 14 |
| 58 | 102 |
| 48 | 10 |
| 18 | 30 |
7+3+2+22+36+14+102+10+30=226
6.(填空題,11.1分)
對(duì)應(yīng)如下所示的段表:
| 0 | 50k | 10k |
| 1 | 60k | 3k |
| 2 | 70k | 5k |
| 3 | 120k | 8k |
| 4 | 150k | 4k |
邏輯地址(0,137)對(duì)應(yīng)的物理地址是【_1】(填寫十進(jìn)制數(shù),或段長越界”,或段號(hào)越界”);
邏輯地址(1,4000)對(duì)應(yīng)的物理地址是【2】(填寫十進(jìn)制數(shù),或“段長越界”,或“段號(hào)越界”);
邏輯地址(2,3600)對(duì)應(yīng)的物理地址是【3】(填寫十進(jìn)制數(shù),或“段長越界”,或“段號(hào)越界”);
邏輯地址(5,230)對(duì)應(yīng)的物理地址是【4】(填寫十進(jìn)制數(shù),或段長越界”,或“段號(hào)越界”)。
正確答案:
(1)51337
(2)段長越界
(3)75280
(4)段號(hào)越界
解析:先找到段號(hào)0處,物理地址=起始地址+位移量,即物理地址=50K+137=50X1024+137=51337.(說明1K=1024)
對(duì)于(1,4000),由于位移量4000>3X1024,所以越界,產(chǎn)生中斷信號(hào)
對(duì)于(2,3600),找到段號(hào)2處,物理地址=70K+3600=70X1024+3600=75280
對(duì)于(5,230),邏輯地址的段號(hào)5>段表長度4,發(fā)生越界,產(chǎn)生中斷信號(hào)。
7.(填空題,11.2分)
某博物館允許500人同時(shí)參觀,有一個(gè)出入口。該出入口一次僅允許一個(gè)人通過,完成下面的進(jìn)程同步問題。
請(qǐng)對(duì)信號(hào)量賦初值,并將選項(xiàng)A~D填入恰當(dāng)?shù)奈恢谩?br /> 選項(xiàng):
A:wait(empty);
B:signal(empty);
C:wait(mutex);
D:signal(mutex);
正確答案:
(1)500
(2)1
(3)A;a
(4)C;C
(5)D;d
(6)C;C
(7)D;d
(8)B;b
8.(填空題,11.1分)
設(shè)有四個(gè)進(jìn)程PI,P2,P3,P4,它們到達(dá)就緒隊(duì)列的時(shí)間,運(yùn)行時(shí)間及優(yōu)先級(jí)如下所示(數(shù)值越大優(yōu)先級(jí)越高)。
| P1 | 0 | 9 | 1 |
| P2 | 1 | 4 | 3 |
| P3 | 2 | 8 | 2 |
| P4 | 3 | 10 | 4 |
問:(1)若采用可搶占的優(yōu)先級(jí)調(diào)度算法,各個(gè)進(jìn)程的調(diào)度次序?yàn)椤?】參考格式:P1>P2>P3>P4>P1>P2、進(jìn)程的平均周轉(zhuǎn)時(shí)間為2]只寫數(shù)字、平均等待時(shí)間為3]只寫數(shù)字
(2)若采用不可搶占的短作業(yè)優(yōu)先調(diào)度算法,各個(gè)進(jìn)程的調(diào)度次序?yàn)椤?】參考格式:P1>P2>P3>P4>P1>P2、進(jìn)程的平均周轉(zhuǎn)時(shí)間_【5】只寫數(shù)字、平均等待時(shí)間_【6】只寫數(shù)字。
正確答案:
(1)P1>P2>P4>P2>P3>P1
(2)19
(3)11.25
(4)P1>P2>P3>P4
(5)17
(6)9.25
若采用不可搶占的短作業(yè)優(yōu)先調(diào)度算法
| A | 0 | 9 | 0 | 0 | 9 | 9 |
| B | 1 | 4 | 9 | 8 | 13 | 12 |
| C | 2 | 8 | 13 | 11 | 21 | 19 |
| D | 3 | 10 | 21 | 18 | 31 | 29 |
9+12+19+29/4=17.25
8+11+18/4=9.25
若采用可搶占的優(yōu)先級(jí)調(diào)度算法
| A1 | 0 | 9(8) | 0 | 0 | 1 | 31 | 1 |
| B1 | 1 | 4(2) | 1 | 0 | 3 | 14 | 3 |
| C | 2 | 8 | 15 | 13 | 23 | 21 | 2 |
| D | 3 | 10 | 3 | 0 | 13 | 10 | 4 |
| B2 | 13 | 2 | 13 | 0 | 15 | ||
| A2 | 23 | 8 | 23 | 0 | 31 |
A先執(zhí)行1后,D的優(yōu)先級(jí)高于B,B執(zhí)行2后執(zhí)行D,然后執(zhí)行B,B完成后,執(zhí)行C,最后再來A
31+14+21+10/4=19
22+10+13/4=11.25
9.(填空題,11.1分)
一個(gè)進(jìn)程在磁盤上包含8個(gè)虛擬頁(0號(hào)~7號(hào)),在主存中固定分配給3個(gè)物理塊,發(fā)生如下順序的頁訪問:
4,3,2,1,4,3,5,4,3,2,1,5
假設(shè)這些物理塊最初是空的。
如果使用LRU算法,缺頁次數(shù)為1](只填數(shù)字)次。
如果使用FIFO算法,缺頁次數(shù)為【2】_(只填數(shù)字)次。
如果使用OPT算法,缺頁次數(shù)為_3](只填數(shù)字)_次。**
正確答案:
(1)10
(2)9
(3)7
解析:LRU算法
| 4 3 | |
| 4 3 2 | |
| 1 3 2//4最近一段時(shí)間里較久未被訪問||1 | |
| 1 4 2//3最近一段時(shí)間里較久未被訪問||4 | |
| 1 4 3//2最近一段時(shí)間里較久未被訪問||3 | |
| 5 4 3//1最近一段時(shí)間里較久未被訪問||5||4不缺||3不缺 | |
| 2 4 3//5最近一段時(shí)間里較久未被訪問||2 | |
| 2 1 3//4最近一段時(shí)間里較久未被訪問||1 | |
| 2 1 5//3最近一段時(shí)間里較久未被訪問||5 |
10次
FIFO算法
| 4 3 | |
| 4 3 2 | |
| 1 3 2//4先進(jìn)先出||1 | |
| 1 4 2//3先進(jìn)先出||4 | |
| 1 4 3//2先進(jìn)先出||3 | |
| 5 4 3//1先進(jìn)先出||5||4不缺||3不缺 | |
| 5 2 3//4先進(jìn)先出5,3剛被訪問過||2|| | |
| 5 2 1//3先進(jìn)先出3,2訪問||1||5不缺 |
9次
OPT算法
| 4 3 | |
| 4 3 2 | |
| 4 3 1//2最長時(shí)間內(nèi)不使用(倒三)||1||4,3不缺 | |
| 4 3 5//1最長時(shí)間內(nèi)不使用(倒二)||5||4,3不缺 | |
| 2 3 5 //4最長時(shí)間內(nèi)不使用(使用完畢)||2 | |
| 1 3 5//2最長時(shí)間內(nèi)不使用(使用完畢)||1||5不缺 |
7次
總結(jié)
- 上一篇: “约见”面试官系列之常见面试题之第六十八
- 下一篇: 前端学习(2242)以组件方式创建UI