計(jì)算機(jī)操作系統(tǒng)(第三版-湯小丹等)課后習(xí)題答案(1-6章)整理后_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第三版-湯小丹等)課后習(xí)題答案(1-6章)整理后_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第三版-湯小丹等)課后習(xí)題答案(1-6章)整理后_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第三版-湯小丹等)課后習(xí)題答案(1-6章)整理后_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第三版-湯小丹等)課后習(xí)題答案(1-6章)整理后_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

./第一章操作系統(tǒng)引論1.設(shè)計(jì)現(xiàn)代OS的主要目標(biāo)是什么?答:<1>有效性<2>方便性<3>可擴(kuò)充性<4>開(kāi)放性2.OS的作用可表現(xiàn)在哪幾個(gè)方面?答:<1>OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口;<2>OS作為計(jì)算機(jī)系統(tǒng)資源的管理者;<3>OS實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象.3.為什么說(shuō)OS實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象?答:OS首先在裸機(jī)上覆蓋一層I/O設(shè)備管理軟件,實(shí)現(xiàn)了對(duì)計(jì)算機(jī)硬件操作的第一層次抽象;在第一層軟件上再覆蓋文件管理軟件,實(shí)現(xiàn)了對(duì)硬件資源操作的第二層次抽象.OS通過(guò)在計(jì)算機(jī)硬件上安裝多層系統(tǒng)軟件,增強(qiáng)了系統(tǒng)功能,隱藏了對(duì)硬件操作的細(xì)節(jié),由它們共同實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象.4.試說(shuō)明推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁矗看穑褐饕獎(jiǎng)恿?lái)源于四個(gè)方面的社會(huì)需求與技術(shù)發(fā)展:<1>不斷提高計(jì)算機(jī)資源的利用率;<2>方便用戶;<3>器件的不斷更新?lián)Q代;<4>計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展.5.何謂脫機(jī)I/O和聯(lián)機(jī)I/O?答:脫機(jī)I/O是指事先將裝有用戶程序和數(shù)據(jù)的紙帶或卡片裝入紙帶輸入機(jī)或卡片機(jī),在外圍機(jī)的控制下,把紙帶或卡片上的數(shù)據(jù)或程序輸入到磁帶上.該方式下的輸入輸出由外圍機(jī)控制完成,是在脫離主機(jī)的情況下進(jìn)行的.而聯(lián)機(jī)I/O方式是指程序和數(shù)據(jù)的輸入輸出都是在主機(jī)的直接控制下進(jìn)行的.7.實(shí)現(xiàn)分時(shí)系統(tǒng)的關(guān)鍵問(wèn)題是什么?應(yīng)如何解決?答:關(guān)鍵問(wèn)題是當(dāng)用戶在自己的終端上鍵入命令時(shí),系統(tǒng)應(yīng)能及時(shí)接收并及時(shí)處理該命令,在用戶能接受的時(shí)延內(nèi)將結(jié)果返回給用戶.解決方法:針對(duì)及時(shí)接收問(wèn)題,可以在系統(tǒng)中設(shè)置多路卡,使主機(jī)能同時(shí)接收用戶從各個(gè)終端上輸入的數(shù)據(jù);為每個(gè)終端配置緩沖區(qū),暫存用戶鍵入的命令或數(shù)據(jù).針對(duì)及時(shí)處理問(wèn)題,應(yīng)使所有的用戶作業(yè)都直接進(jìn)入內(nèi)存,并且為每個(gè)作業(yè)分配一個(gè)時(shí)間片,允許作業(yè)只在自己的時(shí)間片內(nèi)運(yùn)行,這樣在不長(zhǎng)的時(shí)間內(nèi),能使每個(gè)作業(yè)都運(yùn)行一次.8.為什么要引入實(shí)時(shí)OS?答:實(shí)時(shí)操作系統(tǒng)是指系統(tǒng)能及時(shí)響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行.引入實(shí)時(shí)OS是為了滿足應(yīng)用的需求,更好地滿足實(shí)時(shí)控制領(lǐng)域和實(shí)時(shí)信息處理領(lǐng)域的需要.9.什么是硬實(shí)時(shí)任務(wù)和軟實(shí)時(shí)任務(wù)?試舉例說(shuō)明.答:硬實(shí)時(shí)任務(wù)是指系統(tǒng)必須滿足任務(wù)對(duì)截止時(shí)間的要求,否則可能出現(xiàn)難以預(yù)測(cè)的結(jié)果.舉例來(lái)說(shuō),運(yùn)載火箭的控制等.軟實(shí)時(shí)任務(wù)是指它的截止時(shí)間并不嚴(yán)格,偶爾錯(cuò)過(guò)了任務(wù)的截止時(shí)間,對(duì)系統(tǒng)產(chǎn)生的影響不大.舉例:網(wǎng)頁(yè)內(nèi)容的更新、火車(chē)售票系統(tǒng).12.試從交互性、及時(shí)性以及可靠性方面,將分時(shí)系統(tǒng)與實(shí)時(shí)系統(tǒng)進(jìn)行比較.答:<1>及時(shí)性:實(shí)時(shí)信息處理系統(tǒng)對(duì)實(shí)時(shí)性的要求與分時(shí)系統(tǒng)類似,都是以人所能接受的等待時(shí)間來(lái)確定;而實(shí)時(shí)控制系統(tǒng)的及時(shí)性,是以控制對(duì)象所要求的開(kāi)始截止時(shí)間或完成截止時(shí)間來(lái)確定的,一般為秒級(jí)到毫秒級(jí),甚至有的要低于100微妙.<2>交互性:實(shí)時(shí)信息處理系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪問(wèn)系統(tǒng)中某些特定的專用服務(wù)程序.不像分時(shí)系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)和資源共享等服務(wù).<3>可靠性:分時(shí)系統(tǒng)也要求系統(tǒng)可靠,但相比之下,實(shí)時(shí)系統(tǒng)則要求系統(tǒng)具有高度的可靠性.因?yàn)槿魏尾铄e(cuò)都可能帶來(lái)巨大的經(jīng)濟(jì)損失,甚至是災(zāi)難性后果,所以在實(shí)時(shí)系統(tǒng)中,往往都采取了多級(jí)容錯(cuò)措施保障系統(tǒng)的安全性及數(shù)據(jù)的安全性.13.OS有哪幾大特征?其最基本的特征是什么?答:并發(fā)性、共享性、虛擬性和異步性四個(gè)基本特征;最基本的特征是并發(fā)性.14.處理機(jī)管理有哪些主要功能?它們的主要任務(wù)是什么?答:處理機(jī)管理的主要功能是:進(jìn)程管理、進(jìn)程同步、進(jìn)程通信和處理機(jī)調(diào)度;進(jìn)程管理:為作業(yè)創(chuàng)建進(jìn)程,撤銷(xiāo)已結(jié)束進(jìn)程,控制進(jìn)程在運(yùn)行過(guò)程中的狀態(tài)轉(zhuǎn)換.進(jìn)程同步:為多個(gè)進(jìn)程<含線程>的運(yùn)行進(jìn)行協(xié)調(diào).通信:用來(lái)實(shí)現(xiàn)在相互合作的進(jìn)程之間的信息交換.處理機(jī)調(diào)度:<1>作業(yè)調(diào)度.從后備隊(duì)里按照一定的算法,選出若干個(gè)作業(yè),為他們分配運(yùn)行所需的資源<首選是分配內(nèi)存>.<2>進(jìn)程調(diào)度:從進(jìn)程的就緒隊(duì)列中,按照一定算法選出一個(gè)進(jìn)程,把處理機(jī)分配給它,并設(shè)置運(yùn)行現(xiàn)場(chǎng),使進(jìn)程投入執(zhí)行.15.內(nèi)存管理有哪些主要功能?他們的主要任務(wù)是什么?答:內(nèi)存管理的主要功能有:內(nèi)存分配、內(nèi)存保護(hù)、地址映射和內(nèi)存擴(kuò)充.內(nèi)存分配:為每道程序分配內(nèi)存.內(nèi)存保護(hù):確保每道用戶程序都只在自己的內(nèi)存空間運(yùn)行,彼此互不干擾.地址映射:將地址空間的邏輯地址轉(zhuǎn)換為內(nèi)存空間與對(duì)應(yīng)的物理地址.內(nèi)存擴(kuò)充:用于實(shí)現(xiàn)請(qǐng)求調(diào)用功能,置換功能等.16.設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?答:主要功能有:緩沖管理、設(shè)備分配和設(shè)備處理以及虛擬設(shè)備等.主要任務(wù):完成用戶提出的I/O請(qǐng)求,為用戶分配I/O設(shè)備;提高CPU和I/O設(shè)備的利用率;提高I/O速度;以及方便用戶使用I/O設(shè)備.17.文件管理有哪些主要功能?其主要任務(wù)是什么?答:文件管理主要功能:文件存儲(chǔ)空間的管理、目錄管理、文件的讀/寫(xiě)管理和保護(hù).文件管理的主要任務(wù):管理用戶文件和系統(tǒng)文件,方便用戶使用,保證文件安全性.18.是什么原因使操作系統(tǒng)具有異步性特征?答:操作系統(tǒng)的異步性體現(xiàn)在三個(gè)方面:一是進(jìn)程的異步性,進(jìn)程以人們不可預(yù)知的速度向前推進(jìn),二是程序的不可再現(xiàn)性,即程序執(zhí)行的結(jié)果有時(shí)是不確定的,三是程序執(zhí)行時(shí)間的不可預(yù)知性,即每個(gè)程序何時(shí)執(zhí)行,執(zhí)行順序以及完成時(shí)間是不確定的.20.在微內(nèi)核OS中,為什么要采用客戶/服務(wù)器模式?答:C/S模式具有獨(dú)特的優(yōu)點(diǎn):⑴數(shù)據(jù)的分布處理和存儲(chǔ).⑵便于集中管理.⑶靈活性和可擴(kuò)充性.⑷易于改編應(yīng)用軟件.21.試描述什么是微內(nèi)核OS.答:<1>足夠小的內(nèi)核;<2>基于客戶/服務(wù)器模式;<3>應(yīng)用機(jī)制與策略分離原理;<4>采用面向?qū)ο蠹夹g(shù).23.何謂微內(nèi)核技術(shù)?在微內(nèi)核中通常提供了哪些功能?答:把操作系統(tǒng)中更多的成分和功能放到更高的層次<即用戶模式>中去運(yùn)行,而留下一個(gè)盡量小的內(nèi)核,用它來(lái)完成操作系統(tǒng)最基本的核心功能,稱這種技術(shù)為微內(nèi)核技術(shù).在微內(nèi)核中通常提供了進(jìn)程<線程>管理、低級(jí)存儲(chǔ)器管理、中斷和陷入處理等功能.24.微內(nèi)核操作系統(tǒng)具有哪些優(yōu)點(diǎn)?它為何能有這些優(yōu)點(diǎn)?答:<1>提高了系統(tǒng)的可擴(kuò)展性;<2>增強(qiáng)了系統(tǒng)的可靠性;<3>可移植性;<4>提供了對(duì)分布式系統(tǒng)的支持<5>融入了面向?qū)ο蠹夹g(shù)第二章進(jìn)程管理1.什么是前趨圖?為什么要引入前趨圖?答:前趨圖<PrecedenceGraph>是一個(gè)有向無(wú)循環(huán)圖,記為DAG<DirectedAcyclicGraph>,用于描述進(jìn)程之間執(zhí)行的前后關(guān)系.2.畫(huà)出下面四條語(yǔ)句的前趨圖:S1=a:=x+y;S2=b:=z+1;S3=c:=a–b;S4=w:=c+1;答:其前趨圖為:3.什么程序并發(fā)執(zhí)行會(huì)產(chǎn)生間斷性特征?答:程序在并發(fā)執(zhí)行時(shí),由于它們共享系統(tǒng)資源,為完成同一項(xiàng)任務(wù)需要相互合作,致使這些并發(fā)執(zhí)行的進(jìn)程之間,形成了相互制約關(guān)系,從而使得進(jìn)程在執(zhí)行期間出現(xiàn)間斷性.4.程序并發(fā)執(zhí)行時(shí)為什么會(huì)失去封閉性和可再現(xiàn)性?答:程序并發(fā)執(zhí)行時(shí),多個(gè)程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)由多個(gè)程序改變,致使程序運(yùn)行失去了封閉性,也會(huì)導(dǎo)致其失去可再現(xiàn)性.5.在操作系統(tǒng)中為什么要引入進(jìn)程概念?它會(huì)產(chǎn)生什么樣的影響?答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對(duì)并發(fā)執(zhí)行的程序加以控制和描述,在操作系統(tǒng)中引入了進(jìn)程概念.影響:使程序的并發(fā)執(zhí)行得以實(shí)行.6.試從動(dòng)態(tài)性,并發(fā)性和獨(dú)立性上比較進(jìn)程和程序?答:<1>動(dòng)態(tài)性是進(jìn)程最基本的特性,表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源而暫停執(zhí)行,由撤銷(xiāo)而消亡.進(jìn)程有一定的生命期,而程序只是一組有序的指令集合,是靜態(tài)實(shí)體.<2>并發(fā)性是進(jìn)程的重要特征,同時(shí)也是OS的重要特征.引入進(jìn)程的目的正是為了使其程序能和其它進(jìn)程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的.<3>獨(dú)立性是指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位.對(duì)于未建立任何進(jìn)程的程序,不能作為獨(dú)立單位參加運(yùn)行.7.試說(shuō)明PCB的作用,為什么說(shuō)PCB是進(jìn)程存在的惟一標(biāo)志?答:PCB是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu).作用是使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序,成為一個(gè)能獨(dú)立運(yùn)行的基本單位,成為能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程.OS是根據(jù)PCB對(duì)并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的.8.試說(shuō)明進(jìn)程在三個(gè)基本狀態(tài)之間轉(zhuǎn)換的典型原因.答:<1>就緒狀態(tài)→執(zhí)行狀態(tài):進(jìn)程分配到CPU資源;<2>執(zhí)行狀態(tài)→就緒狀態(tài):時(shí)間片用完;<3>執(zhí)行狀態(tài)→阻塞狀態(tài):I/O請(qǐng)求;<4>阻塞狀態(tài)→就緒狀態(tài):I/O完成.9.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?答:引入掛起狀態(tài)處于五種不同的需要:終端用戶需要,父進(jìn)程需要,操作系統(tǒng)需要,對(duì)換需要和負(fù)荷調(diào)節(jié)需要.處于掛起狀態(tài)的進(jìn)程不能接收處理機(jī)調(diào)度.10.在進(jìn)行進(jìn)程切換時(shí),所要保存的處理機(jī)狀態(tài)信息有哪些?答:進(jìn)行進(jìn)程切換時(shí),所要保存的處理機(jī)狀態(tài)信息有:<1>進(jìn)程當(dāng)前暫存信息;<2>下一指令地址信息;<3>進(jìn)程狀態(tài)信息;<4>過(guò)程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息.11.試說(shuō)明引起進(jìn)程創(chuàng)建的主要事件.答:引起進(jìn)程創(chuàng)建的主要事件有:用戶登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用請(qǐng)求.12.試說(shuō)明引起進(jìn)程被撤銷(xiāo)的主要事件.答:引起進(jìn)程被撤銷(xiāo)的主要事件有:正常結(jié)束、異常結(jié)束<越界錯(cuò)誤、保護(hù)錯(cuò)、非法指令、特權(quán)指令錯(cuò)、運(yùn)行超時(shí)、等待超時(shí)、算術(shù)運(yùn)算錯(cuò)、I/O故障>、外界干預(yù)<操作員或操作系統(tǒng)干預(yù)、父進(jìn)程請(qǐng)求、父進(jìn)程終止>.13.在創(chuàng)建一個(gè)進(jìn)程時(shí)所要完成的主要工作是什么?答:<1>OS發(fā)現(xiàn)請(qǐng)求創(chuàng)建新進(jìn)程事件后,調(diào)用進(jìn)程創(chuàng)建原語(yǔ)Creat<>;<2>申請(qǐng)空白PCB;<3>為新進(jìn)程分配資源;<4>初始化進(jìn)程控制塊;<5>將新進(jìn)程插入就緒隊(duì)列.14.在撤銷(xiāo)一個(gè)進(jìn)程時(shí)所要完成的主要工作是什么?答:<1>根據(jù)被終止進(jìn)程標(biāo)識(shí)符,從PCB集中檢索出進(jìn)程PCB,讀出該進(jìn)程狀態(tài).<2>若被終止進(jìn)程處于執(zhí)行狀態(tài),立即終止該進(jìn)程的執(zhí)行,置調(diào)度標(biāo)志真,指示該進(jìn)程被終止后重新調(diào)度.<3>若該進(jìn)程還有子進(jìn)程,應(yīng)將所有子孫進(jìn)程終止,以防它們成為不可控進(jìn)程.<4>將被終止進(jìn)程擁有的全部資源,歸還給父進(jìn)程,或歸還給系統(tǒng).<5>將被終止進(jìn)程PCB從所在隊(duì)列或列表中移出,等待其它程序搜集信息.15.試說(shuō)明引起進(jìn)程阻塞或被喚醒的主要事件是什么?答:a.請(qǐng)求系統(tǒng)服務(wù);b.啟動(dòng)某種操作;c.新數(shù)據(jù)尚未到達(dá);d.無(wú)新工作可做.17.為什么進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)先執(zhí)行"進(jìn)入?yún)^(qū)"代碼?而在退出前又要執(zhí)行"退出區(qū)"代碼?答:為了實(shí)現(xiàn)多個(gè)進(jìn)程對(duì)臨界資源的互斥訪問(wèn),必須在臨界區(qū)前面增加一段用于檢查欲訪問(wèn)的臨界資源是否正被訪問(wèn)的代碼,如果未被訪問(wèn),該進(jìn)程便可進(jìn)入臨界區(qū)對(duì)資源進(jìn)行訪問(wèn),并設(shè)置正被訪問(wèn)標(biāo)志,如果正被訪問(wèn),則本進(jìn)程不能進(jìn)入臨界區(qū),實(shí)現(xiàn)這一功能的代碼為"進(jìn)入?yún)^(qū)"代碼;在退出臨界區(qū)后,必須執(zhí)行"退出區(qū)"代碼,用于恢復(fù)未被訪問(wèn)標(biāo)志,使其它進(jìn)程能再訪問(wèn)此臨界資源.18.同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?為什么?答:同步機(jī)構(gòu)應(yīng)遵循的基本準(zhǔn)則是:空閑讓進(jìn)、忙則等待、有限等待、讓權(quán)等待原因:為實(shí)現(xiàn)進(jìn)程互斥進(jìn)入自己的臨界區(qū).19.試從物理概念上說(shuō)明記錄型信號(hào)量wait和signal.答:wait<S>:當(dāng)S.value>0時(shí),表示目前系統(tǒng)中這類資源還有可用的.執(zhí)行一次wait操作,意味著進(jìn)程請(qǐng)求一個(gè)單位的該類資源,使系統(tǒng)中可供分配的該類資源減少一個(gè),因此描述為S.value:=S.value-1;當(dāng)S.value<0時(shí),表示該類資源已分配完畢,進(jìn)程應(yīng)調(diào)用block原語(yǔ)自我阻塞,放棄處理機(jī),并插入到信號(hào)量鏈表S.L中.signal<S>:執(zhí)行一次signal操作,意味著釋放一個(gè)單位的可用資源,使系統(tǒng)中可供分配的該類資源數(shù)增加一個(gè),故執(zhí)行S.value:=S.value+1操作.若加1后S.value≤0,則表示在該信號(hào)量鏈表中,仍有等待該資源的進(jìn)程被阻塞,因此應(yīng)調(diào)用wakeup原語(yǔ),將S.L鏈表中的第一個(gè)等待進(jìn)程喚醒.20.你認(rèn)為整型信號(hào)量機(jī)制是否完全遵循了同步機(jī)構(gòu)的四條準(zhǔn)則?答:整型信號(hào)量機(jī)制不完全遵循同步機(jī)制的四條準(zhǔn)則,它不滿足"讓權(quán)等待"準(zhǔn)則.21.如何利用信號(hào)量機(jī)制來(lái)實(shí)現(xiàn)多個(gè)進(jìn)程對(duì)臨界資源的互斥訪問(wèn)?并舉例說(shuō)明之.答:為使多個(gè)進(jìn)程互斥訪問(wèn)某臨界資源,只需為該資源設(shè)置一互斥信號(hào)量mutex,并設(shè)其初值為1,然后將各進(jìn)程訪問(wèn)該資源的臨界區(qū)CS置于wait<mutex>和signal<mutex>操作之間即可.這樣,每個(gè)欲訪問(wèn)該臨界資源的進(jìn)程在進(jìn)入臨界區(qū)之前,都要先對(duì)mutex執(zhí)行wait操作,若該資源此刻未被訪問(wèn),本次wait操作必然成功,進(jìn)程便可進(jìn)入自己的臨界區(qū),這時(shí)若再有其他進(jìn)程也欲進(jìn)入自己的臨界區(qū),此時(shí)由于對(duì)mutex執(zhí)行wait操作定會(huì)失敗,因而該進(jìn)程阻塞,從而保證了該臨界資源能被互斥訪問(wèn).當(dāng)訪問(wèn)臨界資源的進(jìn)程退出臨界區(qū)后,應(yīng)對(duì)mutex執(zhí)行signal操作,釋放該臨界資源.利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥的進(jìn)程描述如下:Varmutex:semaphore:=1;beginparbeginprocess1:beginrepeatwait<mutex>;criticalsectionsignal<mutex>;remaindersectionuntilfalse;endprocess2:beginrepeatwait<mutex>;criticalsectionsignal<mutex>;remaindersectionuntilfalse;endparend22.試寫(xiě)出相應(yīng)的程序來(lái)描述圖2-17所示的前驅(qū)圖.答:<a>Vara,b,c,d,e,f,g,h;semaphore:=0,0,0,0,0,0,0,0;beginparbeginbeginS1;signal<a>;signal<b>;end;beginwait<a>;S2;signal<c>;signal<d>;end;beginwait<b>;S3;signal<e>;end;beginwait<c>;S4;signal<f>;end;beginwait<d>;S5;signal<g>;end;beginwait<e>;S6;signal<h>;end;beginwait<f>;wait<g>;wait<h>;S7;end;parendend<b>Vara,b,c,d,e,f,g,h,i,j;semaphore:=0,0,0,0,0,0,0,0,0,0;beginparbeginbeginS1;signal<a>;signal<b>;end;beginwait<a>;S2;signal<c>;signal<d>;end;beginwait<b>;S3;signal<e>;signal<f>;end;beginwait<c>;S4;signal<g>;end;beginwait<d>;S5;signal<h>;end;beginwait<e>;S6;signal<i>;end;beginwait<f>;S7;signal<j>;end;beginwait<g>;wait<h>;wait<i>;wait<j>;S8;end;parendend23.在生產(chǎn)者消費(fèi)者問(wèn)題中,如果缺少了signal<full>或signal<empty>,對(duì)執(zhí)行結(jié)果有何影響?答:如果缺少signal<full>,那么表明從第一個(gè)生產(chǎn)者進(jìn)程開(kāi)始就沒(méi)有改變信號(hào)量full值,即使緩沖池產(chǎn)品已滿,但full值還是0,這樣消費(fèi)者進(jìn)程執(zhí)行wait<full>時(shí)認(rèn)為緩沖池是空而取不到產(chǎn)品,消費(fèi)者進(jìn)程一直處于等待狀態(tài).如果缺少signal<empty>,在生產(chǎn)者進(jìn)程向n個(gè)緩沖區(qū)投滿產(chǎn)品后消費(fèi)者進(jìn)程才開(kāi)始從中取產(chǎn)品,這時(shí)empty=0,full=n,那么每當(dāng)消費(fèi)者進(jìn)程取走一個(gè)產(chǎn)品empty值并不改變,直到緩沖池取空了,empty值也是0,即使目前緩沖池有n個(gè)空緩沖區(qū),生產(chǎn)者進(jìn)程要想再往緩沖池中投放產(chǎn)品也會(huì)因?yàn)樯暾?qǐng)不到空緩沖區(qū)被阻塞.24.在生產(chǎn)消費(fèi)者問(wèn)題中,如果將兩個(gè)wait操作即wait<full>和wait<mutex>互換位置,或者將signal<mutex>與signal<full>互換位置,結(jié)果如何?答:將wait<full>和wait<mutex>互換位置后,可能引起死鎖.考慮系統(tǒng)中緩沖區(qū)全滿時(shí),若一生產(chǎn)者進(jìn)程先執(zhí)行了wait<mutex>操作并獲得成功,則當(dāng)再執(zhí)行wait<empty>操作時(shí),它將因失敗而進(jìn)入阻塞狀態(tài),它期待消費(fèi)者進(jìn)程執(zhí)行signal<empty>來(lái)喚醒自己,在此之前,它不可能執(zhí)行signal<mutex>操作,從而使試圖通過(guò)執(zhí)行wait<mutex>操作而進(jìn)入自己的臨界區(qū)的其他生產(chǎn)者和所有消費(fèi)者進(jìn)程全部進(jìn)入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖.若signal<mutex>和signal<full>互換位置后只是影響進(jìn)程對(duì)臨界資源的釋放次序,而不會(huì)引起系統(tǒng)死鎖,因此可以互換位置.25.我們?cè)跒槟骋慌R界資源設(shè)置一把鎖W,當(dāng)W=1時(shí)表示關(guān)鎖,當(dāng)W=0時(shí)表示鎖已打開(kāi).試寫(xiě)出開(kāi)鎖和關(guān)鎖的原語(yǔ),并利用他們實(shí)現(xiàn)互斥.答:整型信號(hào)量:lock<W>:whileW=1dono-opW:=1;unlock<W>:W:=0;記錄型信號(hào)量:lock<W>:W:=W+1;if<W>1>thenblock<W,L>unlock<W>:W:=W-1;if<W>0>thenwakeup<W,L>例子:VarW:semaphore:=0;beginrepeatlock<W>;criticalsectionunlock<W>;remaindersectionuntilfalse;end27.試?yán)糜涗浶托盘?hào)量寫(xiě)出一個(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問(wèn)題的算法.答:Varchopstick:array[0,…,4]ofsemaphore;所有信號(hào)量均被初始化為1,第i位哲學(xué)家的活動(dòng)可描述為:RepeatWait<chopstick[i]>;Wait<.chopstick[<i+1>mod5]>;…Ea.t;…Signal<chopstick[i]>;Signal<chopstick[<i+1>mod5]>Ea.t;…Think;Untilfalse;28.在測(cè)量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù),把所采集的數(shù)據(jù)送一單緩沖區(qū);計(jì)算任務(wù)從該單緩沖中取出數(shù)據(jù)進(jìn)行計(jì)算.試寫(xiě)出利用信號(hào)量機(jī)制實(shí)現(xiàn)兩者共享單緩沖的同步算法.答:a.Varmutex,empty,full:semaphore:=1,1,0;gather:beginrepeat……gatherdatainnextp;wait<empty>;wait<mutex>;buffer:=nextp;signal<mutex>;signal<full>;untilfalse;endcompute:beginrepeat……wait<full>;wait<mutex>;nextc:=buffer;signal<mutex>;signal<empty>;computedatainnextc;untilfalse;endb.Varempty,full:semaphore:=1,0;gather:beginrepeat……gatherdatainnextp;wait<empty>;buffer:=nextp;signal<full>;untilfalse;endcompute:beginrepeat……wait<full>;nextc:=buffer;signal<empty>;computedatainnextc;untilfalse;end29.畫(huà)圖說(shuō)明管程由哪幾部分組成,為什么要引入條件變量?答:管程由四部分組成:①管程的名稱;②局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說(shuō)明;③對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過(guò)程;④對(duì)局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語(yǔ)句;當(dāng)一個(gè)進(jìn)程調(diào)用了管程,在管程中時(shí)被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期間,如果該進(jìn)程不釋放管程,則其它進(jìn)程無(wú)法進(jìn)入管程,被迫長(zhǎng)時(shí)間地等待.為了解決這個(gè)問(wèn)題,引入了條件變量condition.30.如何利用管程來(lái)解決生產(chǎn)者與消費(fèi)者問(wèn)題?答:首先建立一個(gè)管程,命名為ProclucerConsumer,包括兩個(gè)過(guò)程:<1>Put<item>過(guò)程.生產(chǎn)者利用該過(guò)程將自己生產(chǎn)的產(chǎn)品放到緩沖池,用整型變量count表示在緩沖池中已有的產(chǎn)品數(shù)目,當(dāng)count≥n時(shí),表示緩沖池已滿,生產(chǎn)者須等待.<2>get<item>過(guò)程.消費(fèi)者利用該過(guò)程從緩沖池中取出一個(gè)產(chǎn)品,當(dāng)count≤0時(shí),表示緩沖池中已無(wú)可取的產(chǎn)品,消費(fèi)者應(yīng)等待.PC管程可描述如下:typeproducer-consumer=monitorVarin,out,count:integer;buffer:array[0,…,n-1]ofitem;notfull,notempty:condition;procedureentrydot<item>beginifcount>=nthennotfull.wait;buffer<in>:=nextp;in:=<in+1>modn;count:=count+1;ifnotempty.queuethennotempty.signal;endprocedureentryget<item>beginifcount<=0thennotfull.wait;nextc:=buffer<out>;out:=<out+1>modn;count:=count-1;ifnotfull.quenethennotfull.signal;endbeginin:=out:=0;count:=0end在利用管程解決生產(chǎn)者一消費(fèi)者問(wèn)題時(shí),其中的生產(chǎn)者和消費(fèi)者可描述為:producer:beginpepeatproduceanineminnestpPC.put<item>;untilfalse;endconsumer:beginrepeatPC.get<item>;consumetheiteminenxtc;untilfalse;end31.什么是AND信號(hào)量?試?yán)肁ND信號(hào)量寫(xiě)出生產(chǎn)者一消費(fèi)者問(wèn)題的解法.答:為解決并行帶來(lái)的死鎖問(wèn)題,在wait操作中引入AND條件,其基本思想是將進(jìn)程在整個(gè)運(yùn)行過(guò)程中所需要的所有臨界資源,一次性地全部分配給進(jìn)程,用完后一次性釋放.解決生產(chǎn)者-消費(fèi)者問(wèn)題可描述如下:varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,...,n-1]ofitem;in,out:integer:=0,0;beginparbeginproducer:beginrepeat…produceaniteminnextp;…wait<empty>;wait<s1,s2,s3,...,sn>;//s1,s2,...,sn為執(zhí)行生產(chǎn)者進(jìn)程除empty外其余的條件wait<mutex>;buffer<in>:=nextp;in:=<in+1>modn;signal<mutex>;signal<full>;signal<s1,s2,s3,...,sn>;untilfalse;endconsumer:beginrepeatwait<full>;wait<k1,k2,k3,...,kn>;//k1,k2,...,kn為執(zhí)行消費(fèi)者進(jìn)程除full外其余的條件wait<mutex>;nextc:=buffer<out>;out:=<out+1>modn;signal<mutex>;signal<empty>;signal<k1,k2,k3,...,kn>;consumetheiteminnextc;untilfalse;endparendend32.什么是信號(hào)量集?試?yán)眯盘?hào)量集寫(xiě)出讀者一寫(xiě)者問(wèn)題的解法.答:對(duì)AND信號(hào)量加以擴(kuò)充,形成的信號(hào)量集合的讀寫(xiě)機(jī)制.解法:VarRNinteger;L,mx:semaphore:=RN,1;beginparbeginreader:beginrepeatSwait<L,1,1>;Swait<mx,1,1>;…performreadoperation;…Ssignal<L,1>;untilfalseendwriter:beginrepeatSwait<mx,1,1;L,RN,0>;performwriteoperation;Ssignal<mx,1>;untilfalseendparendend33.試比較進(jìn)程間的低級(jí)與高級(jí)通信工具.答:用戶用低級(jí)通信工具實(shí)現(xiàn)進(jìn)程通信很不方便,效率低,通信對(duì)用戶不透明,所有操作都必須由程序員來(lái)實(shí)現(xiàn),而高級(jí)通信工具彌補(bǔ)了這些缺陷,用戶直接利用操作系統(tǒng)提供的一組通信命令,高效地傳送大量的數(shù)據(jù).34.當(dāng)前有哪幾種高級(jí)通信機(jī)制?答:共享存儲(chǔ)器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng).35.消息隊(duì)列通信機(jī)制有哪幾方面的功能?答:<1>構(gòu)成消息<2>發(fā)送消息<3>接收梢息<4>互斥與同步.36.為什么要在OS中引入線程?答:在操作系統(tǒng)中引入線程,則是為了減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開(kāi)銷(xiāo),使OS具有更好的并發(fā)性,提高CPU的利用率.進(jìn)程是分配資源的基本單位,而線程則是系統(tǒng)調(diào)度的基本單位.37.試說(shuō)明線程具有哪些屬性?答:<1>輕型實(shí)體<2>獨(dú)立調(diào)度和分派的基本單位<3>可并發(fā)執(zhí)行<4>共享進(jìn)程資源.38.試從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開(kāi)銷(xiāo)方面對(duì)進(jìn)程和線程進(jìn)行比較.答:<1>調(diào)度性.線程在OS中作為調(diào)度和分派的基本單位,進(jìn)程只作為資源擁有的基本單位.<2>并發(fā)性.進(jìn)程可以并發(fā)執(zhí)行,一個(gè)進(jìn)程的多個(gè)線程也可并發(fā)執(zhí)行.<3>擁有資源.進(jìn)程始終是擁有資源的基本單位,線程只擁有運(yùn)行時(shí)必不可少的資源,本身基本不擁有系統(tǒng)資源,但可以訪問(wèn)隸屬進(jìn)程的資源.<4>系統(tǒng)開(kāi)銷(xiāo).操作系統(tǒng)在創(chuàng)建、撤消和切換進(jìn)程時(shí)付出的開(kāi)銷(xiāo)顯著大于線程.39.為了在多線程O(píng)S中實(shí)現(xiàn)進(jìn)程之間的同步與通信,通常提供了哪幾種同步機(jī)制?答:同步功能可以控制程序流并訪問(wèn)共享數(shù)據(jù),從而并發(fā)執(zhí)行多個(gè)線程.共有四種同步模型:互斥鎖、讀寫(xiě)鎖、條件變量和信號(hào).40.用于實(shí)現(xiàn)線程同步的私用信號(hào)量和公用信號(hào)量之間有何差別?答:<1>私用信號(hào)量.當(dāng)某線程需利用信號(hào)量實(shí)現(xiàn)同一進(jìn)程中各線程之間的同步時(shí),可調(diào)用創(chuàng)建信號(hào)量的命令來(lái)創(chuàng)建一個(gè)私用信號(hào)量,其數(shù)據(jù)結(jié)構(gòu)存放在應(yīng)用程序的地址空間中.<2>公用信號(hào)量.公用信號(hào)量是為實(shí)現(xiàn)不同進(jìn)程間或不同進(jìn)程中各線程之間的同步而設(shè)置的.其數(shù)據(jù)結(jié)構(gòu)是存放在受保護(hù)的系統(tǒng)存儲(chǔ)區(qū)中,由OS為它分配空間并進(jìn)行管理.41.何謂用戶級(jí)線程和內(nèi)核支持線程?答:<1>用戶級(jí)線程:僅存在于用戶空間中的線程,無(wú)須內(nèi)核支持.這種線程的創(chuàng)建、撤銷(xiāo)、線程間的同步與通信等功能,都無(wú)需利用系統(tǒng)調(diào)用實(shí)現(xiàn).用戶級(jí)線程的切換通常發(fā)生在一個(gè)應(yīng)用進(jìn)程的諸多線程之間,同樣無(wú)需內(nèi)核支持.<2>內(nèi)核支持線程:在內(nèi)核支持下運(yùn)行的線程.無(wú)論是用戶進(jìn)程中的線程,還是系統(tǒng)線程中的線程,其創(chuàng)建、撤銷(xiāo)和切換等都是依靠?jī)?nèi)核,在內(nèi)核空間中實(shí)現(xiàn)的.在內(nèi)核空間里還為每個(gè)內(nèi)核支持線程設(shè)置了線程控制塊,內(nèi)核根據(jù)該控制塊感知某線程的存在并實(shí)施控制.42.試說(shuō)明用戶級(jí)線程的實(shí)現(xiàn)方法.答:用戶級(jí)線程是在用戶空間中的實(shí)現(xiàn)的,運(yùn)行在"運(yùn)行時(shí)系統(tǒng)"與"內(nèi)核控制線程"的中間系統(tǒng)上.運(yùn)行時(shí)系統(tǒng)用于管理和控制線程的函數(shù)的集合.內(nèi)核控制線程或輕型進(jìn)程LWP可通過(guò)系統(tǒng)調(diào)用獲得內(nèi)核提供服務(wù),利用LWP進(jìn)程作為中間系統(tǒng).43.試說(shuō)明內(nèi)核支持線程的實(shí)現(xiàn)方法.答:系統(tǒng)在創(chuàng)建新進(jìn)程時(shí),分配一個(gè)任務(wù)數(shù)據(jù)區(qū)PTDA,其中包括若干個(gè)線程控制塊TCB空間.創(chuàng)建一個(gè)線程分配一個(gè)TCB,有關(guān)信息寫(xiě)入TCB,為之分配必要的資源.當(dāng)PTDA中的TCB用完,而進(jìn)程又有新線程時(shí),只要所創(chuàng)建的線程數(shù)目未超過(guò)系統(tǒng)允許值,系統(tǒng)可在為之分配新的TCB;在撤銷(xiāo)一個(gè)線程時(shí),也應(yīng)回收線程的所有資源和TCB.第三章處理機(jī)調(diào)度與死鎖1.高級(jí)調(diào)度與低級(jí)調(diào)度的主要任務(wù)是什么?為什么要引入中級(jí)調(diào)度?答:高級(jí)調(diào)度的主要任務(wù)是根據(jù)某種算法,把外存上處于后備隊(duì)列中的那些作業(yè)調(diào)入內(nèi)存.低級(jí)調(diào)度是保存處理機(jī)的現(xiàn)場(chǎng)信息,按某種算法先取進(jìn)程,再把處理器分配給進(jìn)程.引入中級(jí)調(diào)度的主要目的是為了提高內(nèi)存利用率和系統(tǒng)吞吐量.使那些暫時(shí)不能運(yùn)行的進(jìn)程不再占用內(nèi)存資源,將它們調(diào)至外存等待,把進(jìn)程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài).2.何謂作業(yè)、作業(yè)步和作業(yè)流?答:作業(yè)包含通常的程序和數(shù)據(jù),還配有作業(yè)說(shuō)明書(shū).系統(tǒng)根據(jù)該說(shuō)明書(shū)對(duì)程序的運(yùn)行進(jìn)行控制.批處理系統(tǒng)中是以作業(yè)為基本單位從外存調(diào)入內(nèi)存.作業(yè)步是指每個(gè)作業(yè)運(yùn)行期間都必須經(jīng)過(guò)若干個(gè)相對(duì)獨(dú)立相互關(guān)聯(lián)的順序加工的步驟.作業(yè)流是指若干個(gè)作業(yè)進(jìn)入系統(tǒng)后依次存放在外存上形成的輸入作業(yè)流;在操作系統(tǒng)的控制下,逐個(gè)作業(yè)進(jìn)程處理,于是形成了處理作業(yè)流.3.在什么情況下需要使用作業(yè)控制塊JCB?其中包含了哪些內(nèi)容?答:每當(dāng)作業(yè)進(jìn)入系統(tǒng)時(shí),系統(tǒng)便為每個(gè)作業(yè)建立一個(gè)作業(yè)控制塊JCB,根據(jù)作業(yè)類型將它插入到相應(yīng)的后備隊(duì)列中.JCB包含的內(nèi)容通常有:1>作業(yè)標(biāo)識(shí)2>用戶名稱3>用戶賬戶4>作業(yè)類型<CPU繁忙型、I/O芳名型、批量型、終端型>5>作業(yè)狀態(tài)6>調(diào)度信息<優(yōu)先級(jí)、作業(yè)已運(yùn)行>7>資源要求8>進(jìn)入系統(tǒng)時(shí)間9>開(kāi)始處理時(shí)間10>作業(yè)完成時(shí)間11>作業(yè)退出時(shí)間12>資源使用情況等4.在作業(yè)調(diào)度中應(yīng)如何確定接納多少個(gè)作業(yè)和接納哪些作業(yè)?答:作業(yè)調(diào)度每次接納進(jìn)入內(nèi)存的作業(yè)數(shù),取決于多道程序度.應(yīng)將哪些作業(yè)從外存調(diào)入內(nèi)存,取決于采用的調(diào)度算法.最簡(jiǎn)單的是先來(lái)服務(wù)調(diào)度算法,較常用的是短作業(yè)優(yōu)先調(diào)度算法和基于作業(yè)優(yōu)先級(jí)的調(diào)度算法.5.試說(shuō)明低級(jí)調(diào)度的主要功能.答:<1>保存處理機(jī)的現(xiàn)場(chǎng)信息<2>按某種算法選取進(jìn)程<3>把處理機(jī)分配給進(jìn)程.6.在搶占調(diào)度方式中,搶占的原則是什么?答:搶占的原則有:時(shí)間片原則、優(yōu)先權(quán)原則、短作業(yè)優(yōu)先權(quán)原則等.7.在選擇調(diào)度方式和調(diào)度算法時(shí),應(yīng)遵循的準(zhǔn)則是什么?答:<1>面向用戶的準(zhǔn)則:周轉(zhuǎn)時(shí)間短、響應(yīng)時(shí)間快、截止時(shí)間的保證、優(yōu)先權(quán)準(zhǔn)則.<2>面向系統(tǒng)的準(zhǔn)則:系統(tǒng)吞吐量高、處理機(jī)利用率好、各類資源的平衡利用.8.在批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)中,各采用哪幾種進(jìn)程<作業(yè)>調(diào)度算法?答:批處理系統(tǒng)的調(diào)度算法:短作業(yè)優(yōu)先、優(yōu)先權(quán)、高響應(yīng)比優(yōu)先、多級(jí)反饋隊(duì)列調(diào)度算法.分時(shí)系統(tǒng)的調(diào)度算法:時(shí)間片輪轉(zhuǎn)法.實(shí)時(shí)系統(tǒng)的調(diào)度算法:最早截止時(shí)間優(yōu)先即EDF、最低松弛度優(yōu)先即LLF算法.9.何謂靜態(tài)和動(dòng)態(tài)優(yōu)先級(jí)?確定靜態(tài)優(yōu)先級(jí)的依據(jù)是什么?答:靜態(tài)優(yōu)先級(jí)是指在創(chuàng)建進(jìn)程時(shí)確定且在進(jìn)程的整個(gè)運(yùn)行期間保持不變的優(yōu)先級(jí).動(dòng)態(tài)優(yōu)先級(jí)是指在創(chuàng)建進(jìn)程時(shí)賦予的優(yōu)先權(quán),可以隨進(jìn)程推進(jìn)或隨其等待時(shí)間增加而改變的優(yōu)先級(jí),可以獲得更好的調(diào)度性能.確定進(jìn)程優(yōu)先級(jí)的依據(jù):進(jìn)程類型、進(jìn)程對(duì)資源的需求和用戶要求.10.試比較FCFS和SPF兩種進(jìn)程調(diào)度算法.答:相同點(diǎn):兩種調(diào)度算法都可以用于作業(yè)調(diào)度和進(jìn)程調(diào)度.不同點(diǎn):FCFS調(diào)度算法每次都從后備隊(duì)列中選擇一個(gè)或多個(gè)最先進(jìn)入該隊(duì)列的作業(yè),將它們調(diào)入內(nèi)存、分配資源、創(chuàng)建進(jìn)程、插入到就緒隊(duì)列.該算法有利于長(zhǎng)作業(yè)/進(jìn)程,不利于短作業(yè)/進(jìn)程.SPF算法每次調(diào)度都從后備隊(duì)列中選擇一個(gè)或若干個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),調(diào)入內(nèi)存中運(yùn)行.該算法有利于短作業(yè)/進(jìn)程,不利于長(zhǎng)作業(yè)/進(jìn)程.11.在時(shí)間片輪轉(zhuǎn)法中,應(yīng)如何確定時(shí)間片的大小?答:時(shí)間片應(yīng)略大于一次典型的交互需要的時(shí)間.一般應(yīng)考慮三個(gè)因素:系統(tǒng)對(duì)相應(yīng)時(shí)間的要求、就緒隊(duì)列中進(jìn)程的數(shù)目和系統(tǒng)的處理能力.12.通過(guò)一個(gè)例子來(lái)說(shuō)明通常的優(yōu)先級(jí)調(diào)度算法不能適用于實(shí)時(shí)系統(tǒng)?答:實(shí)時(shí)系統(tǒng)的調(diào)度算法很多,主要是基于任務(wù)的開(kāi)始截止時(shí)間和任務(wù)緊急/松弛程度的任務(wù)優(yōu)先級(jí)調(diào)度算法,通常的優(yōu)先級(jí)調(diào)度算法不能滿足實(shí)時(shí)系統(tǒng)的調(diào)度實(shí)時(shí)性要求而不適用.13.為什么說(shuō)多級(jí)反饋隊(duì)列調(diào)度算法能較好地滿足各方面用戶的需求?答:<1>終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在第一隊(duì)列規(guī)定的時(shí)間片內(nèi)完成,終端作業(yè)用戶就會(huì)感到滿足.<2>短批處理作業(yè)用戶,開(kāi)始時(shí)像終端型作業(yè)一樣,如果在第一隊(duì)列中執(zhí)行一個(gè)時(shí)間片段即可完成,便可獲得與終端作業(yè)一樣的響應(yīng)時(shí)間.對(duì)于稍長(zhǎng)作業(yè),通常只需在第二和第三隊(duì)列各執(zhí)行一時(shí)間片即可完成,其周轉(zhuǎn)時(shí)間仍然較短.<3>長(zhǎng)批處理作業(yè),它將依次在第1,2,…,n個(gè)隊(duì)列中運(yùn)行,然后再按輪轉(zhuǎn)方式運(yùn)行,用戶不必?fù)?dān)心其作業(yè)長(zhǎng)期得不到處理.所以,多級(jí)反饋隊(duì)列調(diào)度算法能滿足多用戶需求.14.為什么在實(shí)時(shí)系統(tǒng)中,要求系統(tǒng)<尤其是CPU>具有較強(qiáng)的處理能力?答:實(shí)時(shí)系統(tǒng)中通常有著多個(gè)實(shí)時(shí)任務(wù).若處理機(jī)的處理能力不夠強(qiáng),有可能因?yàn)樘幚頇C(jī)忙不過(guò)來(lái)而使某些實(shí)時(shí)任務(wù)得不到及時(shí)處理,導(dǎo)致發(fā)生難以預(yù)料的后果.15.按照調(diào)度方式可將實(shí)時(shí)調(diào)度算法分為哪幾種?答:可分為非搶占式和搶占式兩種算法.而非搶占式算法又分為非搶占式輪轉(zhuǎn)和優(yōu)先調(diào)度算法;搶占式調(diào)度算法又分為基于時(shí)鐘中斷的搶占式優(yōu)先權(quán)和立即搶占式優(yōu)先權(quán)調(diào)度算法.16.什么是最早截止時(shí)間優(yōu)先調(diào)度算法?舉例說(shuō)明.答:根據(jù)任務(wù)的開(kāi)始截止時(shí)間確定的任務(wù)優(yōu)先級(jí)調(diào)度算法.截止時(shí)間越早則優(yōu)先級(jí)越高.該算法要求在系統(tǒng)中保持一個(gè)實(shí)時(shí)任務(wù)就緒隊(duì)列,該隊(duì)列按各任務(wù)截止時(shí)間的先后排序.舉例:非搶占式調(diào)度方式用于非周期實(shí)時(shí)任務(wù).圖3-9是將該算法用于非搶占調(diào)度方式之例.該例中具有四個(gè)非周期任務(wù),它們先后到達(dá).系統(tǒng)首先調(diào)度任務(wù)1執(zhí)行,在任務(wù)1執(zhí)行期間,任務(wù)2、3又先后到達(dá).由于任務(wù)3的開(kāi)始截止時(shí)間早于任務(wù)2,故系統(tǒng)在任務(wù)1后將調(diào)度任務(wù)3執(zhí)行.在此期間又到達(dá)作業(yè)4,其開(kāi)始截止時(shí)間仍是早于任務(wù)2的,故在任務(wù)3執(zhí)行完后,系統(tǒng)又調(diào)度任務(wù)4執(zhí)行,最后才調(diào)度任務(wù)2執(zhí)行.圖3-9EDF算法用于非搶占調(diào)度的調(diào)度方式17.什么是最低松弛度優(yōu)先調(diào)度算法?舉例說(shuō)明之.答:該算法是根據(jù)任務(wù)緊急<或松弛>的程度,來(lái)確定任務(wù)的優(yōu)先級(jí).任務(wù)的緊急程度愈高,為該任務(wù)所賦予的優(yōu)先級(jí)就愈高,以使之優(yōu)先執(zhí)行.例如,一個(gè)任務(wù)在200ms時(shí)必須完成,而它本身所需的運(yùn)行時(shí)間就有100ms,因此,調(diào)度程序必須在100ms之前調(diào)度執(zhí)行,該任務(wù)的緊急程度<松弛程度>為100ms.又如,另一任務(wù)在400ms時(shí)必須完成,它本身需要運(yùn)行150ms,則其松弛程度為250ms.18.何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?答:死鎖是指多個(gè)進(jìn)程在運(yùn)行過(guò)程中因爭(zhēng)奪資源而造成的一種僵局,當(dāng)進(jìn)程處于這種僵持狀態(tài)時(shí),若無(wú)外力作用,它們都將無(wú)法再向前推進(jìn).產(chǎn)生死鎖的原因?yàn)楦?jìng)爭(zhēng)資源和進(jìn)程間推進(jìn)順序非法.其必要條件是:互斥條件、請(qǐng)求和保持條件、不剝奪條件、環(huán)路等待條件.19.在解決死鎖問(wèn)題的幾個(gè)方法中,哪種方法最易于實(shí)現(xiàn)?哪種方法使資源利用率最高?答:解決死鎖的四種方法即預(yù)防、避免、檢測(cè)和解除死鎖中,預(yù)防死鎖最容易實(shí)現(xiàn);避免死鎖使資源的利用率最高.20.請(qǐng)?jiān)敿?xì)說(shuō)明可通過(guò)哪些途徑預(yù)防死鎖.答:<1>擯棄"請(qǐng)求和保持"條件,就是如果系統(tǒng)有足夠資源,便一次性把進(jìn)程需要的所有資源分配給它;<2>擯棄"不剝奪"條件,就是已經(jīng)擁有資源的進(jìn)程,當(dāng)它提出新資源請(qǐng)求而不能立即滿足時(shí),必須釋放它已保持的所有資源,待以后需要時(shí)再重新申請(qǐng);<3>擯棄"環(huán)路等待"條件,就是將所有資源按類型排序標(biāo)號(hào),所有進(jìn)程對(duì)資源的請(qǐng)求必須嚴(yán)格按序號(hào)遞增的次序提出.21.在銀行家算法的例子中,如果P0發(fā)出請(qǐng)求向量由Request<0,2,0>改為Request<0,1,0>,問(wèn)系統(tǒng)可否將資源分配給它?<此答案有點(diǎn)問(wèn)題,需重新考慮>答:<1>可以.銀行家算法各種資源數(shù)量分別為10、5、7,在T0時(shí)刻的資源分配如圖所示:<2>具體分析如下:①Requst0<0,1,0><=Need0<7,4,3>;②Requst0<0,1,0><=Available<2,3,0>;系統(tǒng)先假定可為P0分配資源,并修改Available0,Allocation0和Need0向量,由此形成的資源變化情況如下圖所示:<3>P0請(qǐng)求資源:P0發(fā)出請(qǐng)求向量Requst0<0,1,0>,系統(tǒng)按銀行家算法進(jìn)行檢查:①Requst0<0,1,0><=Need0<7,4,3>;②Requst0<0,1,0><=Available<2,3,0>;③系統(tǒng)暫時(shí)先假定可為P0分配資源,并修改有關(guān)數(shù)據(jù),如下圖所示綜上所述系統(tǒng)可以將資源分配給它.22.銀行家算法中出現(xiàn)以下資源分配,試問(wèn)<1>該狀態(tài)是否安全?<2>若進(jìn)程P2提出Request<1,2,2,2>后,系統(tǒng)能否將資源分配給它?試問(wèn):<1>該狀態(tài)是否安全?<2>若進(jìn)程P2提出請(qǐng)求Request<1,2,2,2>后,系統(tǒng)能否將資源分配給它?<參考答案有錯(cuò)>答:<1>安全,因?yàn)榇嬖诎踩蛄衶P0,P3,P4,P1,P2}<2>系統(tǒng)能分配資源,分析如下.①Request<1,2,2,2><=Need2<2,3,5,6>;②Request<1,2,2,2><=Available2<1,3,5,4>改成Available2<1,6,2,2>;③系統(tǒng)先假定可為P2分配資源,并修改Available2,Allocation2和Need2向量,由此形成的資源變化情況如下圖所示:④再利用安全性算法檢查此時(shí)系統(tǒng)是否安全.如下圖由此進(jìn)行的安全性檢查得知,可以找到一個(gè)安全序列{P2,P0,P1,P3,P4}.第四章存儲(chǔ)器管理1.為什么要配置層次式存儲(chǔ)器?答:設(shè)置多個(gè)存儲(chǔ)器可以使存儲(chǔ)器兩端的硬件能并行工作;采用多級(jí)存儲(chǔ)系統(tǒng),特別是Cache技術(shù),是減輕存儲(chǔ)器帶寬對(duì)系統(tǒng)性能影響的最佳結(jié)構(gòu)方案;在微處理機(jī)內(nèi)部設(shè)置各種緩沖存儲(chǔ)器,減輕對(duì)存儲(chǔ)器存取的壓力.增加CPU中寄存器數(shù)量大大緩解對(duì)存儲(chǔ)器壓力.2.可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場(chǎng)合?答:<1>絕對(duì)裝入方式,只適用于單道程序環(huán)境.<2>可重定位裝入方式,適用于多道程序環(huán)境.<3>動(dòng)態(tài)運(yùn)行時(shí)裝入方式,用于多道程序環(huán)境;不允許程序運(yùn)行時(shí)在內(nèi)存中移位置.3.何謂靜態(tài)鏈接?何謂裝入時(shí)動(dòng)態(tài)鏈接和運(yùn)行時(shí)的動(dòng)態(tài)鏈接?P120答:靜態(tài)鏈接是指在程序運(yùn)行前,先將各目標(biāo)模塊及它們所需的庫(kù)函數(shù),鏈接成一個(gè)完整的裝配模塊,以后不再拆開(kāi)的鏈接方式.裝入時(shí)動(dòng)態(tài)鏈接是指將用戶源程序編譯后得到的一組目標(biāo)模塊,在裝入內(nèi)存時(shí)采用邊裝入邊鏈接的鏈接方式.運(yùn)行時(shí)動(dòng)態(tài)鏈接是指對(duì)某些目標(biāo)模塊的鏈接,是在程序執(zhí)行中需要該目標(biāo)模塊時(shí),才對(duì)它進(jìn)行的鏈接.4.在進(jìn)行程序鏈接時(shí),應(yīng)完成哪些工作?答:由鏈接程序Linker將編譯后形成的一組目標(biāo)模塊,以及它們需要的庫(kù)函數(shù)鏈接在一起,形成一個(gè)完整的裝入模塊LoadModule.主要工作是修改程序內(nèi)的相對(duì)地址和修改目標(biāo)程序中的外部調(diào)用標(biāo)號(hào).5.在動(dòng)態(tài)分區(qū)分配方式中,應(yīng)如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?答:在每個(gè)分區(qū)的起始部分,設(shè)置一些控制分區(qū)分配的信息,以及用于鏈接各分區(qū)所用的前向指針;在分區(qū)尾部設(shè)置一個(gè)后向指針,通過(guò)前后向鏈接指針,將所有空閑分區(qū)鏈成一個(gè)雙向鏈.當(dāng)分區(qū)分配出去后,把狀態(tài)位由"0"改為"1".6.為什么要引入動(dòng)態(tài)重定位?如何實(shí)現(xiàn)?答:在程序執(zhí)行過(guò)程中,每當(dāng)訪問(wèn)指令或數(shù)據(jù)時(shí),將要訪問(wèn)的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地址,引入了動(dòng)態(tài)重定位;具體實(shí)現(xiàn)方法是在系統(tǒng)中增加一個(gè)重定位寄存器,用來(lái)裝入程序在內(nèi)存中的起始地址,程序執(zhí)行時(shí),真正訪問(wèn)的內(nèi)存地址是相對(duì)地址與重定位寄存器中的地址相加之和,從而實(shí)現(xiàn)動(dòng)態(tài)重定位.7.在采用首次適應(yīng)算法回收內(nèi)存時(shí),可能出現(xiàn)哪幾種情況?應(yīng)怎樣處理這些情況?答:在采用首次適應(yīng)算法回收內(nèi)存時(shí)可能出現(xiàn)4種情況:<1>回收區(qū)前鄰空閑區(qū).將回收區(qū)與前鄰空閑區(qū)合并,將前鄰空閑區(qū)大小修改為兩者之和.<2>回收區(qū)后鄰空閑區(qū).將兩區(qū)合并,改后鄰空閑區(qū)始址為回收區(qū)始址,大小為兩者之和.<3>回收區(qū)前后均鄰空閑區(qū).將三個(gè)分區(qū)合并,修改前鄰空閑區(qū)大小為三者之和.<4>回收區(qū)前后均不鄰空閑區(qū).為回收區(qū)設(shè)置空閑區(qū)表項(xiàng),填入回收區(qū)始址和大小并插入空閑區(qū)隊(duì)列.9.分區(qū)存儲(chǔ)管理中常用那些分配策略?比較它們的優(yōu)缺點(diǎn).答:分區(qū)存儲(chǔ)管理中的常用分配策略:首次適應(yīng)算法、循環(huán)首次適應(yīng)算法、最佳適應(yīng)算法、最壞適應(yīng)算法.首次適應(yīng)算法優(yōu)缺點(diǎn):保留了高址部分的大空閑區(qū),有利于后來(lái)的大型作業(yè)分配;低址部分不斷被劃分,留下許多難以利用的小空閑區(qū),每次查找都從低址開(kāi)始增加了系統(tǒng)開(kāi)銷(xiāo).循環(huán)首次適應(yīng)算法優(yōu)缺點(diǎn):內(nèi)存空閑分區(qū)分布均勻,減少了查找系統(tǒng)開(kāi)銷(xiāo);缺乏大空閑分區(qū),導(dǎo)致不能裝入大型作業(yè).最佳適應(yīng)算法優(yōu)缺點(diǎn):每次分配給文件的都是最適合該文件大小的分區(qū),內(nèi)存中留下許多難以利用的小空閑區(qū).最壞適應(yīng)算法優(yōu)缺點(diǎn):剩下空閑區(qū)不太小,產(chǎn)生碎片幾率小,對(duì)中小型文件分配分區(qū)操作有利;存儲(chǔ)器中缺乏大空閑區(qū),對(duì)大型文件分區(qū)分配不利.10.在系統(tǒng)中引入對(duì)換后可帶來(lái)哪些好處?答:交換技術(shù)將暫不需要的作業(yè)移到外存,讓出內(nèi)存空間以調(diào)入其它作業(yè),交換到外存的作業(yè)也可以被再次調(diào)入.目的是解決內(nèi)存緊張問(wèn)題,帶來(lái)的好處是進(jìn)一步提高了內(nèi)存利用率和系統(tǒng)吞吐量.11.為實(shí)現(xiàn)對(duì)換,系統(tǒng)應(yīng)具備哪幾方面的功能?答:系統(tǒng)應(yīng)具備三方面功能:對(duì)換空間管理,進(jìn)程換出,進(jìn)程換入.12.在以進(jìn)程為單位進(jìn)行對(duì)換時(shí),每次是否都將整個(gè)進(jìn)程換出?為什么?答:在以進(jìn)程為單位進(jìn)行對(duì)換時(shí),并非每次都將整個(gè)進(jìn)程換出.這是因?yàn)椋?lt;1>從結(jié)構(gòu)上講,進(jìn)程由程序段、數(shù)據(jù)段和進(jìn)程控制塊組成的,其中進(jìn)程控制塊總有部分或全部常駐內(nèi)存,不被換出.<2>程序段和數(shù)據(jù)段可能正被若干進(jìn)程共享,此時(shí)它們也不能換出.13.為實(shí)現(xiàn)分頁(yè)存儲(chǔ)管理,需要哪些硬件的支持?答:動(dòng)態(tài)重定位技術(shù)、虛擬存儲(chǔ)技術(shù)、多道程序設(shè)計(jì)技術(shù).14.較詳細(xì)的說(shuō)明引入分段存儲(chǔ)管理是為了滿足用戶哪幾方面的需要.答:1>方便編程.用戶通常把自己的作業(yè)按照邏輯關(guān)系劃分為若干段,每段都從0編址,并有自己名字和長(zhǎng)度.因此,希望要訪問(wèn)的邏輯地址是由段名和段內(nèi)偏移量決定.2>信息共享.在實(shí)現(xiàn)對(duì)程序和數(shù)據(jù)的共享時(shí),是以信息邏輯單位為基礎(chǔ).分頁(yè)系統(tǒng)中的頁(yè)是存放信息的物理單位,無(wú)完整意義,不便于共享;段是信息的邏輯單位.為了實(shí)現(xiàn)段的共享,希望存儲(chǔ)管理能與用戶程序分段的組織方式相適應(yīng).3>信息保護(hù).對(duì)信息的邏輯單位進(jìn)行保護(hù),分段能更有效方便地實(shí)現(xiàn)信息保護(hù)功能.4>動(dòng)態(tài)增長(zhǎng).在實(shí)際應(yīng)用中,有些段特別是數(shù)據(jù)段,在使用過(guò)程中會(huì)不斷增長(zhǎng),事先又無(wú)法確切知道增長(zhǎng)多少.分段存儲(chǔ)管理方式能較好解決這個(gè)問(wèn)題.5>動(dòng)態(tài)鏈接.運(yùn)行時(shí)先將主程序?qū)?yīng)的目標(biāo)程序裝入內(nèi)存并啟動(dòng)運(yùn)行,運(yùn)行過(guò)程中又需要調(diào)用某段時(shí),才將該段調(diào)入內(nèi)存鏈接.所以動(dòng)態(tài)鏈接也要求以段作為管理單位.15.在具有快表的段頁(yè)式存儲(chǔ)管理方式中,如何實(shí)現(xiàn)地址變換?答:在CPU給出有效地址后,由地址變換機(jī)構(gòu)自動(dòng)將頁(yè)號(hào)P送入高速緩沖寄存器,并將此頁(yè)號(hào)與高速緩存中的所有頁(yè)號(hào)比較,若找到匹配頁(yè)號(hào),表示要訪問(wèn)的頁(yè)表項(xiàng)在快表中.可直接從快表讀出該頁(yè)對(duì)應(yīng)物理塊號(hào),送到物理地址寄存器中.如快表中沒(méi)有對(duì)應(yīng)頁(yè)表項(xiàng),則再訪問(wèn)內(nèi)存頁(yè)表,找到后,把從頁(yè)表項(xiàng)中讀出物理塊號(hào)送地址寄存器;同時(shí)修改快表,將此頁(yè)表項(xiàng)存入快表.但若寄存器已滿,則OS必須找到合適的頁(yè)表項(xiàng)換出.16.為什么說(shuō)為什么說(shuō)分段系統(tǒng)比分頁(yè)系統(tǒng)更易于實(shí)現(xiàn)信息的共享和保護(hù)?答:分頁(yè)系統(tǒng)的每個(gè)頁(yè)面是分散存儲(chǔ)的,為了實(shí)現(xiàn)信息共享和保護(hù),頁(yè)面之間需要一一對(duì)應(yīng),為此需要建立大量的頁(yè)表項(xiàng);而分段系統(tǒng)的每個(gè)段都從0編址,并采用一段連續(xù)的地址空間,在實(shí)現(xiàn)共享和保護(hù)時(shí),只需為要共享和保護(hù)的程序設(shè)置一個(gè)段表項(xiàng),將其中的基址與內(nèi)存地址一一對(duì)應(yīng)就能夠?qū)崿F(xiàn).17.分段和分頁(yè)存儲(chǔ)管理有何區(qū)別?答:<1>頁(yè)是信息的物理單位,分頁(yè)是為了實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外部零頭,提高內(nèi)存利用率.段則是信息的邏輯單位,它含有一組相對(duì)完整的信息.<2>頁(yè)的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,是由機(jī)械硬件實(shí)現(xiàn)的,因而在系統(tǒng)中只能有一種大小的的頁(yè)面;而段的長(zhǎng)度卻不固定,決定于用戶所編寫(xiě)的程序,通常由編譯程序在對(duì)原程序進(jìn)行編譯時(shí),根據(jù)信息的性質(zhì)來(lái)劃分.<3>分頁(yè)的作業(yè)地址空間是一維的,而分段作業(yè)地址空間則是二維的.18.試全面比較連續(xù)分配和離散分配方式.答:<1>連續(xù)分配是指為一個(gè)用戶程序分配一個(gè)連續(xù)的地址空間,包括單一和分區(qū)兩種分配方式.單一方式將內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū),最簡(jiǎn)單,只用于單用戶單任務(wù)操作系統(tǒng);分區(qū)方式分固定和動(dòng)態(tài)分區(qū).<2>離散分配方式分為分頁(yè)、分段和段頁(yè)式存儲(chǔ)管理.分頁(yè)式存儲(chǔ)管理旨在提高內(nèi)存利用率,分段式存儲(chǔ)管理旨在滿足用戶<程序員>的需要,段頁(yè)式存儲(chǔ)管理則將兩者結(jié)合起來(lái),具有分段系統(tǒng)便于實(shí)現(xiàn)、可共享、易于保護(hù)和動(dòng)態(tài)鏈接等優(yōu)點(diǎn),又能像分頁(yè)系統(tǒng)很好解決外部碎片及為各段可離散分配內(nèi)存等問(wèn)題,是比較有效的存儲(chǔ)管理方式;19.虛擬存儲(chǔ)器有哪些特征?其中最本質(zhì)的特征是什么?答:虛擬存儲(chǔ)器有多次性、對(duì)換性、虛擬性三大特征.最本質(zhì)的特征是虛擬性.20.實(shí)現(xiàn)虛擬存儲(chǔ)器需要哪些硬件支持?答:<1>請(qǐng)求分頁(yè)<段>的頁(yè)<段>表機(jī)制<2>缺頁(yè)<段>中斷機(jī)構(gòu)<3>地址變換機(jī)構(gòu)21.實(shí)現(xiàn)虛擬存儲(chǔ)器需要哪幾個(gè)關(guān)鍵技術(shù)?答:<1>在分頁(yè)請(qǐng)求系統(tǒng)中是在分頁(yè)的基礎(chǔ)上,增加了請(qǐng)求調(diào)頁(yè)功能和頁(yè)面置換功能所形成的頁(yè)式虛擬存儲(chǔ)系統(tǒng).允許只裝入少數(shù)頁(yè)面的程序<及數(shù)據(jù)>,便啟動(dòng)運(yùn)行.<2>在請(qǐng)求分段系統(tǒng)中是在分段系統(tǒng)的基礎(chǔ)上,增加了請(qǐng)求調(diào)段及分段置換功能后形成的段式虛擬存儲(chǔ)系統(tǒng).允許只裝入少數(shù)段<而非所有段>的用戶程序和數(shù)據(jù),即可啟動(dòng)運(yùn)行.22.在請(qǐng)求分頁(yè)系統(tǒng)中,頁(yè)表應(yīng)包括哪些數(shù)據(jù)項(xiàng)?每項(xiàng)的作用是什么?答:頁(yè)表應(yīng)包括:頁(yè)號(hào)、物理塊號(hào)、狀態(tài)位P、訪問(wèn)字段A、修改位M和外存地址.其中狀態(tài)位P指示該頁(yè)是否調(diào)入內(nèi)存,供程序訪問(wèn)時(shí)參考;訪問(wèn)字段A用于記錄本頁(yè)在一段時(shí)間內(nèi)被訪問(wèn)的次數(shù),或最近已有多長(zhǎng)時(shí)間未被訪問(wèn),提供給置換算法選擇換出頁(yè)面時(shí)參考;修改位M表示該頁(yè)在調(diào)入內(nèi)存后是否被修改過(guò);外存地址用于指出該頁(yè)在外存上的地址,通常是物理塊號(hào),供調(diào)入該頁(yè)時(shí)使用.23.在請(qǐng)求分頁(yè)系統(tǒng)中,應(yīng)從何處將所需頁(yè)面調(diào)入內(nèi)存?答:請(qǐng)求分頁(yè)系統(tǒng)中的缺頁(yè)從何處調(diào)入內(nèi)存分三種情況:<1>系統(tǒng)擁有足夠?qū)Q區(qū)空間時(shí),可以全部從對(duì)換區(qū)調(diào)入所需頁(yè)面,提高調(diào)頁(yè)速度.在進(jìn)程運(yùn)行前將與該進(jìn)程有關(guān)的文件從文件區(qū)拷貝到對(duì)換區(qū).<2>系統(tǒng)缺少足夠?qū)Q區(qū)空間時(shí),不被修改的文件直接從文件區(qū)調(diào)入;當(dāng)換出這些頁(yè)面時(shí),未被修改的不必?fù)Q出,再調(diào)入時(shí),仍從文件區(qū)直接調(diào)入.對(duì)于可能修改的,在換出時(shí)便調(diào)到對(duì)換區(qū),以后需要時(shí)再?gòu)膶?duì)換區(qū)調(diào)入.<3>UNIX方式.未運(yùn)行頁(yè)面從文件區(qū)調(diào)入.曾經(jīng)運(yùn)行過(guò)但被換出頁(yè)面,下次從對(duì)換區(qū)調(diào)入.UNIX系統(tǒng)允許頁(yè)面共享,某進(jìn)程請(qǐng)求的頁(yè)面有可能已調(diào)入內(nèi)存,直接使用不再調(diào)入.24.在請(qǐng)求分頁(yè)系統(tǒng)中,常采用哪幾種頁(yè)面置換算法?答:采用的頁(yè)面置換算法有:最佳置換算法和先進(jìn)先出置換算法,最近最久未使用<LRU>置換算法,Clock置換算法,最少使用置換算法,頁(yè)面緩沖算法等.25.在請(qǐng)求分頁(yè)系統(tǒng)中,通常采用哪種頁(yè)面分配方式?為什么?答:固定分配方式是基于進(jìn)程的類型<交互型>或根據(jù)程序員、系統(tǒng)管理員的建議,為每個(gè)進(jìn)程分配固定頁(yè)數(shù)的內(nèi)存空間,整個(gè)運(yùn)行期間不再改變;采用可變分配方式有全局置換和局部置換兩種,前者易于實(shí)現(xiàn),后者效率高.26.在一個(gè)請(qǐng)求分頁(yè)系統(tǒng)中,采用LRU頁(yè)面置換算法時(shí),假如一個(gè)作業(yè)的頁(yè)面走向?yàn)?,3,2,1,4,3,5,4,3,2,1,5,當(dāng)分配給該作業(yè)的物理塊數(shù)M分別為3和4時(shí),試計(jì)算訪問(wèn)過(guò)程中所發(fā)生的缺頁(yè)次數(shù)和缺頁(yè)率?比較所得結(jié)果?<參考答案有錯(cuò)>答:當(dāng)分配給該作業(yè)的物理塊數(shù)M為3時(shí),缺頁(yè)7次,缺頁(yè)率:7/12=0.583;當(dāng)分配給該作業(yè)的物理塊數(shù)M為4時(shí),缺頁(yè)4次,缺頁(yè)率:4/12=0.333.以上解答出錯(cuò).正確解法見(jiàn)下面:答:當(dāng)分配給該作業(yè)的物理塊數(shù)M為3時(shí),缺頁(yè)9次,缺頁(yè)率:9/12=3/4;當(dāng)分配給該作業(yè)的物理塊數(shù)M為4時(shí),缺頁(yè)10次,缺頁(yè)率:10/12=5/6.27.實(shí)現(xiàn)LRU算法所需的硬件支持是什么?答:需要寄存器和棧等硬件支持.寄存器用于記錄某進(jìn)程在內(nèi)存中各頁(yè)的使用情況,棧用于保存當(dāng)前使用的各個(gè)頁(yè)面的頁(yè)面號(hào).28.試說(shuō)明改進(jìn)型Clock置換算法的基本原理.答:因?yàn)樾薷倪^(guò)的頁(yè)面在換出時(shí)付出的開(kāi)銷(xiāo)比未被修改過(guò)的頁(yè)面大,在改進(jìn)型Clock算法中,既考慮頁(yè)面的使用情況,還要增加置換代價(jià)的因素;在選擇頁(yè)面作為淘汰頁(yè)面時(shí),把同時(shí)滿足未使用過(guò)和未被修改作為首選淘汰頁(yè)面.29.說(shuō)明請(qǐng)求分段系統(tǒng)中的缺頁(yè)中斷處理過(guò)程.答:請(qǐng)求分段系統(tǒng)中的缺頁(yè)中斷處理過(guò)程描述如下:<1>根據(jù)當(dāng)前執(zhí)行指令中的邏輯地址查頁(yè)表,判斷該頁(yè)是否在主存儲(chǔ)器中<2>該頁(yè)標(biāo)志為"0"形成缺頁(yè)中斷,中斷裝置通過(guò)交換PSW讓操作系統(tǒng)的中斷處理程序占用處理器.<3>操作系統(tǒng)處理缺頁(yè)中斷處理的辦法是查主存分配表找一個(gè)空閑的主存塊,查頁(yè)表找出該頁(yè)在磁盤(pán)上位置,啟動(dòng)磁盤(pán)讀出該頁(yè)信息.<4>把從磁盤(pán)上讀出的信息裝入找到的主存塊中.<5>當(dāng)頁(yè)面住處被裝入主存后,應(yīng)修改頁(yè)表中對(duì)應(yīng)的表目,填上該頁(yè)所占用的主存塊把標(biāo)志置為"1",表示該頁(yè)已在主存儲(chǔ)器中<6>由于產(chǎn)生缺頁(yè)中斷時(shí)的那條指令并沒(méi)執(zhí)行完,所以在把頁(yè)面裝入之后應(yīng)重新執(zhí)行被中斷指令.請(qǐng)求分段系統(tǒng)中的缺頁(yè)中斷處理過(guò)程如下圖所示:30.如何實(shí)現(xiàn)分段共享?答:在每個(gè)進(jìn)程的段表中,用相應(yīng)的表項(xiàng)指向共享段在內(nèi)存中起始地址;配置相應(yīng)的數(shù)據(jù)結(jié)構(gòu)作為共享段表,在段表項(xiàng)中設(shè)置共享進(jìn)程計(jì)數(shù)Count,每調(diào)用一次該共享段,Count值增1,每當(dāng)進(jìn)程釋放一個(gè)共享段時(shí),Count減1,若減為0,則系統(tǒng)回收該共享段的物理內(nèi)存,取消在共享段表中該段對(duì)應(yīng)的表項(xiàng);共享段應(yīng)給不同的進(jìn)程以不同的存取權(quán)限;不同的進(jìn)程可以使用不同的段號(hào)去共享該段.第五章設(shè)備管理1.試說(shuō)明設(shè)備控制器的組成.答:由設(shè)備控制器與處理機(jī)的接口,設(shè)備控制器與設(shè)備的接口與I/O邏輯組成.2.為了實(shí)現(xiàn)CPU與設(shè)備控制器間的通信,設(shè)備控制器應(yīng)具備哪些功能?答:接收和識(shí)別命令;數(shù)據(jù)交換;標(biāo)識(shí)和報(bào)告設(shè)備狀態(tài);地址識(shí)別;數(shù)據(jù)緩沖;差錯(cuò)控制.3.什么是字節(jié)多路通道?什么是數(shù)組選擇通道和數(shù)組多路通道?答:<1>字節(jié)多路通道.按字節(jié)交叉方式工作的通道.通常含有許多非分配型子通道,數(shù)量從幾十到數(shù)百個(gè),每個(gè)子通道連接一臺(tái)I/O設(shè)備,控制其I/O操作.子通道按時(shí)間片輪轉(zhuǎn)方式共享主通道.<2>數(shù)組選擇通道.按數(shù)組方式傳送數(shù)據(jù),傳輸速率很高,每次只允許一個(gè)設(shè)備數(shù)據(jù).<3>數(shù)組多路通道.將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道的各子通道分時(shí)并行操作的優(yōu)點(diǎn)結(jié)合而成.含有多個(gè)非分配型子通道,具有很高的數(shù)據(jù)傳輸率和通道利用率.4.如何解決因通道不足而產(chǎn)生的瓶頸問(wèn)題?答:解決問(wèn)題的有效方法是增加設(shè)備到主機(jī)間的通路而不增加通道,把一個(gè)設(shè)備連到多個(gè)控制器上,控制器又連到多個(gè)通道上,這種多通路方式解決了"瓶頸"問(wèn)題,提高了系統(tǒng)可靠性,個(gè)別通道或控制器的故障不會(huì)使設(shè)備和存儲(chǔ)器之間沒(méi)有通路.5.試對(duì)VESA及PCI兩種總線進(jìn)行比較.答:VESA總線的設(shè)計(jì)思想是以低價(jià)占領(lǐng)市場(chǎng).總線帶寬32位,最高傳輸速率132Mb/s.廣泛用于486微機(jī).缺點(diǎn)是能連接的設(shè)備數(shù)僅為2~4臺(tái),控制器中無(wú)緩沖,難于適應(yīng)處理器速度的提高,不支持Pentium機(jī).PCI總線在CPU和外設(shè)間插入了復(fù)雜的管理層,協(xié)調(diào)數(shù)據(jù)傳輸和提供一致接口.管理層中配有數(shù)據(jù)緩沖,放大了線路的驅(qū)動(dòng)能力,最多支持10種外設(shè),支持高時(shí)鐘頻率的CPU運(yùn)行,最大傳輸速率132Mb/s.可連接ISA、EISA等傳統(tǒng)總線,又支持Pentium的64位系統(tǒng),是基于奔騰等新一代微處理器而發(fā)展的總線.6.試說(shuō)明推動(dòng)I/O控制發(fā)展的主要因素是什么?答:推動(dòng)I/O控制發(fā)展的主要?jiǎng)恿υ谟诒M量減少主機(jī)對(duì)I/O控制的干預(yù),把主機(jī)從繁雜的I/O控制事務(wù)中解脫出來(lái),用更多的時(shí)間和精力去完成其數(shù)據(jù)處理任務(wù).同時(shí),中斷機(jī)制在計(jì)算機(jī)系統(tǒng)中的引入、DMA控制器的出現(xiàn)和通道研制的成功使I/O控制的發(fā)展具備了技術(shù)支持和成為可能.7.有哪幾種I/O控制方式?各適用于何種場(chǎng)合?答:共有四種I/O控制方式.<1>程序I/O方式:早期計(jì)算機(jī)無(wú)中斷機(jī)構(gòu),處理機(jī)對(duì)I/O設(shè)備的控制采用程序I/O方式或稱忙等的方式.<2>中斷驅(qū)動(dòng)I/O控制方式:適用于有中斷機(jī)構(gòu)的計(jì)算機(jī)系統(tǒng)中.<3>直接存儲(chǔ)器訪問(wèn)<DMA>I/O控制方式:適用于具有DMA控制器的計(jì)算機(jī)系統(tǒng)中.<4>I/O通道控制方式:具有通道程序的計(jì)算機(jī)系統(tǒng)中.8.試說(shuō)明DMA的工作流程.答:以從磁盤(pán)讀入數(shù)據(jù)為例,說(shuō)明DMA的工作流程.當(dāng)CPU要從磁盤(pán)讀入數(shù)據(jù)塊時(shí),先向磁盤(pán)控制器發(fā)送一條讀命令.該命令被送到命令寄存器CR中.同時(shí)還發(fā)送本次要讀入數(shù)據(jù)的內(nèi)存起始目標(biāo)地址,送入內(nèi)存地址寄存器MAR;本次要讀數(shù)據(jù)的字節(jié)數(shù)送入數(shù)據(jù)計(jì)數(shù)器DC,將磁盤(pán)中的源地址直接送DMA控制器的I/O控制邏輯上.然后啟動(dòng)DMA控制器傳送數(shù)據(jù),以后CPU便處理其它任務(wù).整個(gè)數(shù)據(jù)傳送過(guò)程由DMA控制器控制.下圖為DMA方式的工作流程圖.9.引入緩沖的主要原因是什么?答:引入緩沖的主要原因是:<1>緩和CPU與I/O設(shè)備間速度不匹配的矛盾;<2>減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的限制;<3>提高CPU與I/O設(shè)備之間的并行性.10.在單緩沖情況下,為什么系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間為max<C,T>+M?答:在塊設(shè)備輸入時(shí),先從磁盤(pán)把一塊數(shù)據(jù)輸入到緩沖區(qū),耗時(shí)為T(mén);然后由操作系統(tǒng)將緩沖區(qū)數(shù)據(jù)送給用戶區(qū),耗時(shí)M;接下來(lái)由CPU對(duì)塊數(shù)據(jù)進(jìn)行計(jì)算,耗時(shí)C.在單緩沖情況下,磁盤(pán)把數(shù)據(jù)輸入到緩沖區(qū)的操作和CPU對(duì)數(shù)據(jù)的計(jì)算過(guò)程可以并行展開(kāi),所以系統(tǒng)對(duì)每一整塊數(shù)據(jù)的處理時(shí)間為max<C,T>+M.11.為什么在雙緩沖情況下,系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間為max<T,C>?答:寫(xiě)入者花費(fèi)時(shí)間T將數(shù)據(jù)寫(xiě)滿一個(gè)緩沖區(qū)后再寫(xiě)另一個(gè)緩沖區(qū);讀出者花費(fèi)時(shí)間M將一個(gè)緩沖區(qū)數(shù)據(jù)送到用戶區(qū)后再傳送另一個(gè)緩沖區(qū)數(shù)據(jù),計(jì)算者讀出用戶區(qū)數(shù)據(jù)進(jìn)行處理.由于將數(shù)據(jù)從緩沖區(qū)傳到用戶區(qū)操作必須與讀用戶區(qū)數(shù)據(jù)處理串行進(jìn)行,而且可以與從外存?zhèn)魉蛿?shù)據(jù)填滿緩沖區(qū)的操作并行.因此耗時(shí)大約為max<C+M,T>.考慮M是內(nèi)存數(shù)據(jù)塊的移動(dòng)耗時(shí)非常短暫可以省略,因此近似地認(rèn)為系統(tǒng)對(duì)一塊數(shù)據(jù)處理時(shí)間為max<C,T>.12.試?yán)L圖說(shuō)明把多緩沖用于輸出時(shí)的情況.答:多緩沖用于輸出的示意圖如下:13.試說(shuō)明收容輸入工作緩沖區(qū)和提取輸出工作緩沖區(qū)的工作情況.答:①收容輸入工作緩沖區(qū)的工作情況為:在輸入進(jìn)程需要輸入數(shù)據(jù)時(shí),調(diào)用GetBuf<EmptyQueue>過(guò)程,從EmptyQueue隊(duì)列的隊(duì)首摘下一個(gè)空緩沖區(qū),作為收容輸入工作緩沖區(qū)Hin.然后把數(shù)據(jù)輸入其中,裝滿后再調(diào)用PutBuf<InputQueue,Hin>過(guò)程,將該緩沖區(qū)掛在輸入隊(duì)列InputQueue的隊(duì)尾.②提取輸出工作緩沖區(qū)的工作情況為:當(dāng)要輸出數(shù)據(jù)時(shí),調(diào)用GetBuf<OutputQueue>過(guò)程,從輸出隊(duì)列的隊(duì)首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū)作為提取輸出工作緩沖區(qū)Sout.在數(shù)據(jù)提取完后,再調(diào)用PutBuf<EmptyQueue,Sout>過(guò)程,將該緩沖區(qū)掛到空緩沖隊(duì)列EmptyQueue的隊(duì)尾.14.何謂安全分配方式和不安全分配方式?答:①安全分配方式是指每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到其I/O操作完成時(shí)才被喚醒.在采用這種分配策略時(shí),一旦進(jìn)程已獲得某種設(shè)備資源后便阻塞,使它不可能再請(qǐng)求任何資源,而在它運(yùn)行時(shí)又不保持任何資源.這種分配方式已經(jīng)摒棄了造成死鎖的"請(qǐng)求和保持"條件,分配是安全的.缺點(diǎn)是進(jìn)程進(jìn)展緩慢,CPU與I/O設(shè)備串行工作.②不安全分配方式是指進(jìn)程發(fā)出I/O請(qǐng)求后仍繼續(xù)執(zhí)行,需要時(shí)又可發(fā)出第二個(gè)I/O請(qǐng)求、第三個(gè)I/O請(qǐng)求.僅當(dāng)進(jìn)程請(qǐng)求的設(shè)備已被另一個(gè)進(jìn)程占有時(shí),進(jìn)程才進(jìn)入阻塞狀態(tài).優(yōu)點(diǎn)是一個(gè)進(jìn)程可同時(shí)操作多個(gè)設(shè)備,進(jìn)程推進(jìn)迅速.缺點(diǎn)是分配不安全,可能具有"請(qǐng)求和保持"條件,可能造成死鎖.因此,在設(shè)備分配程序中需增加一個(gè)功能,用于對(duì)本次的設(shè)備分配是否會(huì)發(fā)生死鎖進(jìn)行安全性計(jì)算,僅當(dāng)計(jì)算結(jié)果表明分配安全的情況下才進(jìn)行分配.15.為何要引入設(shè)備獨(dú)立性?如何實(shí)現(xiàn)設(shè)備獨(dú)立性?答:現(xiàn)代操作系統(tǒng)為了提高系統(tǒng)的可適應(yīng)性和可擴(kuò)展性,都實(shí)現(xiàn)了設(shè)備獨(dú)立性或設(shè)備無(wú)關(guān)性.基本含義是應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備,應(yīng)用程序以邏輯設(shè)備名請(qǐng)求使用某類設(shè)備.實(shí)現(xiàn)了設(shè)備獨(dú)立性功能可帶來(lái)兩方面的好處:<1>設(shè)備分配時(shí)的靈活性;<2>易于實(shí)現(xiàn)I/O重定向.為了實(shí)現(xiàn)設(shè)備的獨(dú)立性,應(yīng)引入邏輯設(shè)備和物理設(shè)備概念.在應(yīng)用程序中,使用邏輯設(shè)備名請(qǐng)求使用某類設(shè)備;系統(tǒng)執(zhí)行時(shí)是使用物理設(shè)備名.鑒于驅(qū)動(dòng)程序是與硬件或設(shè)備緊密相關(guān)的軟件,必須在驅(qū)動(dòng)程序之上設(shè)置一層設(shè)備獨(dú)立性軟件,執(zhí)行所有設(shè)備的公有操作、完成邏輯設(shè)備名到物理設(shè)備名的轉(zhuǎn)換<為此應(yīng)設(shè)置一張邏輯設(shè)備表>并向用戶層<或文件層>軟件提供統(tǒng)一接口,從而實(shí)現(xiàn)設(shè)備的獨(dú)立性.16.在考慮到設(shè)備的獨(dú)立性時(shí),應(yīng)如何分配獨(dú)占設(shè)備?答:在考慮到設(shè)備的獨(dú)立性時(shí),應(yīng)按如下步驟來(lái)分配獨(dú)占設(shè)備:<1>進(jìn)程以邏輯設(shè)備名提出I/O請(qǐng)求.<2>根據(jù)邏輯設(shè)備表獲得I/O請(qǐng)求的邏輯設(shè)備對(duì)應(yīng)物理設(shè)備在系統(tǒng)設(shè)備表中的指針.<3>檢索系統(tǒng)設(shè)備表,找到屬于請(qǐng)求類型、空閑可用且分配安全設(shè)備的設(shè)備控制表,將對(duì)應(yīng)設(shè)備分配給請(qǐng)求進(jìn)程;未找到則等待等待喚醒和分配.<4>到設(shè)備控制表中找出與其相連接的控制器的控制器控制表,根據(jù)狀態(tài)字段判斷是否忙碌,忙則等待;否則將該控制器分配給進(jìn)程.<5>到該控制器的控制器控制表中找出與其相連接的通道的通道控制表,判斷通道是否忙碌,忙則等待;否則將該通道分配給進(jìn)程.<6>只有在設(shè)備、控制器和通道三者都分配成功時(shí),這次的設(shè)備分配才算成功,然后便可啟動(dòng)設(shè)備進(jìn)行數(shù)據(jù)傳送.17.何謂設(shè)備虛擬?實(shí)現(xiàn)設(shè)備虛擬時(shí)所依賴的關(guān)鍵技術(shù)是什么?答:設(shè)備虛擬是指把獨(dú)占設(shè)備經(jīng)過(guò)某種技術(shù)處理改造成虛擬設(shè)備.可虛擬設(shè)備是指一臺(tái)物理設(shè)備在采用虛擬技術(shù)后,可變成多臺(tái)邏輯上的虛擬設(shè)備,則可虛擬設(shè)備是可共享的設(shè)備,將它同時(shí)分配給多個(gè)進(jìn)程使用,并對(duì)這些訪問(wèn)該物理設(shè)備的先后次序進(jìn)行控制.18.試說(shuō)明SPOOLing系統(tǒng)的組成.答:SPOOLing系統(tǒng)由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進(jìn)程SPi和輸出進(jìn)程SPo三部分組成.19.在實(shí)現(xiàn)后臺(tái)打印時(shí),SPOOLing系統(tǒng)應(yīng)為請(qǐng)求I/O的進(jìn)程提供哪些服務(wù)?答:在實(shí)現(xiàn)后臺(tái)打印時(shí),SPOOLing系統(tǒng)應(yīng)為請(qǐng)求I/O的進(jìn)程提供以下服務(wù):<1>由輸出進(jìn)程在輸出井中申請(qǐng)一空閑盤(pán)塊區(qū),并將要打印的數(shù)據(jù)送入其中;<2>輸出進(jìn)程為用戶進(jìn)程申請(qǐng)空白用戶打印表,填入打印要求,將該表掛到請(qǐng)求打印隊(duì)列.<3>一旦打印機(jī)空閑,輸出進(jìn)程便從請(qǐng)求打印隊(duì)列的隊(duì)首取出一張請(qǐng)求打印表,根據(jù)表中要求將要打印的數(shù)據(jù)從輸出井傳送到內(nèi)存緩沖區(qū),再由打印機(jī)進(jìn)行打印.20.試說(shuō)明設(shè)備驅(qū)動(dòng)程序具有哪些特點(diǎn).答:設(shè)備驅(qū)動(dòng)程序具有如下特點(diǎn):<1>是請(qǐng)求I/O進(jìn)程與設(shè)備控制器間的一個(gè)通信程序;<2>驅(qū)動(dòng)程序與I/O設(shè)備的特性緊密相關(guān);<3>驅(qū)動(dòng)程序與I/O控制方式緊密相關(guān);<4>驅(qū)動(dòng)程序與硬件緊密相關(guān),部分程序用匯編語(yǔ)言書(shū)寫(xiě),基本部分往往固化在ROM中.21.試說(shuō)明設(shè)備驅(qū)動(dòng)程序應(yīng)具有哪些功能?答:設(shè)備驅(qū)動(dòng)程序的主要功能包括:<1>將接收到的抽象要求轉(zhuǎn)為具體要求;<2>檢查用戶I/O請(qǐng)求合法性,了解I/O設(shè)備狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備工作方式;<3>發(fā)出I/O命令,啟動(dòng)分配到的I/O設(shè)備,完成指定I/O操作;<4>及時(shí)響應(yīng)由控制器或通道發(fā)來(lái)的中斷請(qǐng)求,根據(jù)中斷類型調(diào)用相應(yīng)中斷處理程序處理;<5>對(duì)于有通道的計(jì)算機(jī),驅(qū)動(dòng)程序還應(yīng)該根據(jù)用戶I/O請(qǐng)求自動(dòng)構(gòu)成通道程序.22.設(shè)備中斷處理程序通常需完成哪些工作?答:設(shè)備中斷處理程序通常需完成如下工作:<1>喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程;<2>保護(hù)被中斷進(jìn)程的CPU環(huán)境;<3>分析中斷原因、轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序;<4>進(jìn)行中斷處理;<5>恢復(fù)被中斷進(jìn)程.23.磁盤(pán)訪問(wèn)時(shí)間由哪幾部分組成?每部分時(shí)間應(yīng)如何計(jì)算?答:磁盤(pán)訪問(wèn)時(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í)間.硬盤(pán)15000r/min時(shí)Tr為2ms;軟盤(pán)300或600r/min時(shí)Tr為50~100ms.<3>Tt是指數(shù)據(jù)從磁盤(pán)讀出或向磁盤(pán)寫(xiě)入經(jīng)歷的時(shí)間.Tt的大小與每次讀/寫(xiě)的字節(jié)數(shù)b和旋轉(zhuǎn)速度有關(guān):Tt=b/rN.24.目前常用的磁盤(pán)調(diào)度算法有哪幾種?每種算法優(yōu)先考慮的問(wèn)題是什么?答:目前常用的磁盤(pán)調(diào)度算法有先來(lái)先服務(wù)、最短尋道時(shí)間優(yōu)先及掃描等算法.<1>先來(lái)先服務(wù)算法優(yōu)先考慮進(jìn)程請(qǐng)求訪問(wèn)磁盤(pán)的先后次序;<2>最短尋道時(shí)間優(yōu)先算法優(yōu)先考慮要求訪問(wèn)的磁道與當(dāng)前磁頭所在磁道距離是否最近;<3>掃描算法考慮欲訪問(wèn)的磁道與當(dāng)前磁道間的距離,更優(yōu)先考慮磁頭當(dāng)前的移動(dòng)方向.25.為什么要引入磁盤(pán)高速緩沖?何謂磁盤(pán)高速緩沖?答:目前磁盤(pán)的I/O速度遠(yuǎn)低于內(nèi)存的訪問(wèn)速度,通常低上4-6個(gè)數(shù)量級(jí).因此,磁盤(pán)I/O已成為計(jì)算機(jī)系統(tǒng)的瓶頸.為提高磁盤(pán)I/O的速度,便引入了磁盤(pán)高速緩沖.磁盤(pán)高速緩沖是指利用內(nèi)存中的存儲(chǔ)空間,暫存從磁盤(pán)中讀出的一系列盤(pán)塊中的信息.26.在設(shè)計(jì)磁盤(pán)高速緩沖時(shí),如何實(shí)現(xiàn)數(shù)據(jù)交付?答:數(shù)據(jù)交付是指將磁盤(pán)高速緩存中的數(shù)據(jù)傳給請(qǐng)求進(jìn)程.當(dāng)進(jìn)程請(qǐng)求訪問(wèn)某個(gè)盤(pán)塊中的數(shù)據(jù)時(shí),由核心先查看磁盤(pán)高速緩沖,看其中是否存在所需盤(pán)塊數(shù)據(jù)的拷貝.若有便直接從中提取數(shù)據(jù)交付給請(qǐng)求進(jìn)程,避免了訪盤(pán)操作,本次訪問(wèn)速度提高4-6個(gè)數(shù)量級(jí);否則先從磁盤(pán)中將要訪問(wèn)的數(shù)據(jù)讀入并交付給請(qǐng)求者進(jìn)程,同時(shí)送高速緩存以便下次直接讀取.27.何謂提前讀、延遲寫(xiě)和虛擬盤(pán)?答:提前讀是指在讀當(dāng)前盤(pán)塊的同時(shí),將下一個(gè)可能要訪問(wèn)的盤(pán)塊數(shù)據(jù)讀入緩沖區(qū),以便需要時(shí)直接從緩沖區(qū)中讀取,無(wú)需啟動(dòng)磁盤(pán).延遲寫(xiě)是指在寫(xiě)盤(pán)塊時(shí),將對(duì)應(yīng)緩沖區(qū)中的立即寫(xiě)數(shù)據(jù)暫時(shí)不立即寫(xiě)以備不久之后再被訪問(wèn),只將它置上"延遲寫(xiě)"標(biāo)志并掛到空閑緩沖隊(duì)列的末尾.當(dāng)移到空閑緩沖隊(duì)首并被分配出去時(shí),才寫(xiě)緩沖區(qū)中的數(shù)據(jù).只要延遲寫(xiě)塊仍在空閑緩沖隊(duì)列中,任何要求訪問(wèn)都可直接從其中讀出數(shù)據(jù)或?qū)?shù)據(jù)寫(xiě)入其中,而不必去訪問(wèn)磁盤(pán).虛擬盤(pán)又稱RAM盤(pán),是利用內(nèi)存空間仿真磁盤(pán).其設(shè)備驅(qū)動(dòng)程序可以接受所有標(biāo)準(zhǔn)的磁盤(pán)操作,但這些操作不是在磁盤(pán)上而是在內(nèi)存中,因此速度更快.28.廉價(jià)磁盤(pán)冗余陣列是如何提高對(duì)磁盤(pán)的訪問(wèn)速度和可靠性的?答:廉價(jià)磁盤(pán)冗余陣列RAID是利用一臺(tái)磁盤(pán)陣列控制器,統(tǒng)一管理和控制一組<幾臺(tái)到幾十臺(tái)>磁盤(pán)驅(qū)動(dòng)器,組成高度可靠快速大容量的磁盤(pán)系統(tǒng).操作系統(tǒng)將RAID中的一組物理磁盤(pán)驅(qū)動(dòng)器看作一個(gè)單個(gè)的邏輯磁盤(pán)驅(qū)動(dòng)器.用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)可分布在陣列的所有磁盤(pán)中,并采取并行傳輸方式,大大減少數(shù)據(jù)傳輸時(shí)間和提高了可靠性.第六章文件管理1.何謂數(shù)據(jù)項(xiàng)、記錄和文件?答:①數(shù)據(jù)項(xiàng)分為基本數(shù)據(jù)項(xiàng)和組合數(shù)據(jù)項(xiàng).基本數(shù)據(jù)項(xiàng)描述一個(gè)對(duì)象某種屬性的字符集,具有數(shù)據(jù)名、數(shù)據(jù)類型及數(shù)據(jù)值三個(gè)特性.組合數(shù)據(jù)項(xiàng)由若干數(shù)據(jù)項(xiàng)構(gòu)成.②記錄是一組相關(guān)數(shù)據(jù)項(xiàng)的集合,用于描述一個(gè)對(duì)象某方面的屬性.③文件是具有文件名的一組相關(guān)信息的集合.2.文件系統(tǒng)的模型可分為三層,試說(shuō)明其每一層所包含的基本內(nèi)容.答:第一層:對(duì)象及其屬性說(shuō)明<文件、目錄、硬盤(pán)或磁帶存儲(chǔ)空間>;第二層:對(duì)對(duì)象操縱和管理的軟件集合<I/O控制層即設(shè)備驅(qū)動(dòng)程序、基本文件系統(tǒng)即物理I/O層、基本I/O管理程序或文件組織模塊層、邏輯文件系統(tǒng)層>第三層:文件系統(tǒng)接口<命令接口/圖形化用戶接口與程序接口>.3.試說(shuō)明用戶可以對(duì)文件施加的主要操作有哪些?答:用戶通過(guò)文件系統(tǒng)提供的系統(tǒng)調(diào)用對(duì)文件實(shí)施操作.<1>基本文件操作:創(chuàng)建、刪除、讀、寫(xiě)、截?cái)?、設(shè)置讀/寫(xiě)位置等;<2>文件打開(kāi)和關(guān)閉操作:第一步通過(guò)檢索文件目錄找到指定文件屬性及其在外存上位置;第二步對(duì)文件實(shí)施讀寫(xiě)等相應(yīng)操作.<3>其他文件操作:一是文件屬性操作;二是目錄操作;三是文件共享與文件系統(tǒng)操作的系統(tǒng)調(diào)用實(shí)現(xiàn)等.4.何謂邏輯文件?何謂物理文件?答:邏輯文件是物理文件中存儲(chǔ)的數(shù)據(jù)的一種視圖方式,不包含具體數(shù)據(jù),僅包含物理文件中數(shù)據(jù)的索引.物理文件又稱文件存儲(chǔ)結(jié)構(gòu),是指文件在外存上的存儲(chǔ)組織形式.5.如何提高對(duì)變長(zhǎng)記錄順序文件的檢索速度?答:基本方法是為變長(zhǎng)記錄順序文件建立一張索引表,以主文件中每條記錄的長(zhǎng)度及指向?qū)?yīng)記錄的指針<即該記錄在邏輯地址空間的首址>作為相應(yīng)表項(xiàng)的內(nèi)容.由于索引表本身是一個(gè)定長(zhǎng)記錄的順序文件,若將其按

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論