




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 第一章1設(shè)計(jì)現(xiàn)代 os 的主要目標(biāo)是什么?答:( 1)有效性(2)方便性(3)可擴(kuò)充性(4)開放性2os 的作用可表現(xiàn)在哪幾個(gè)方面?答:( 1)os作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口(2)os 作為計(jì)算機(jī)系統(tǒng)資源的管理者(3)os 實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象3為什么說 os 實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象?答: os首先在裸機(jī)上覆蓋一層i/o 設(shè)備管理軟件,實(shí)現(xiàn)了對(duì)計(jì)算機(jī)硬件操作的第一層次抽象;在第一層軟件上再覆蓋文件管理軟件,實(shí)現(xiàn)了對(duì)硬件資源操作的第二層次抽象。os 通過在計(jì)算機(jī)硬件上安裝多層系統(tǒng)軟件,增強(qiáng)了系統(tǒng)功能,隱藏了對(duì)硬件操作的細(xì)節(jié),由它們共同實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象。4試說明推動(dòng)多道批
2、處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁??答:主要?jiǎng)恿碓从谒膫€(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)行的。6試說明推動(dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁??答:推?dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ歉?/p>
3、地滿足用戶的需要。主要表現(xiàn)在:cpu 的分時(shí)使用縮短了作業(yè)的平均周轉(zhuǎn)時(shí)間;人機(jī)交互能力使用戶能直接控制自己的作業(yè);主機(jī)的共享使多用戶能同時(shí)使用同一臺(tái)計(jì)算機(jī),獨(dú)立地處理自己的作業(yè)。7實(shí)現(xiàn)分時(shí)系統(tǒng)的關(guān)鍵問題是什么?應(yīng)如何解決?答:關(guān)鍵問題是當(dāng)用戶在自己的終端上鍵入命令時(shí),系統(tǒng)應(yīng)能及時(shí)接收并及時(shí)處理該命令,在用戶能接受的時(shí)延內(nèi)將結(jié)果返回給用戶。解決方法: 針對(duì)及時(shí)接收問題,可以在系統(tǒng)中設(shè)臵多路卡,使主機(jī)能同時(shí)接收用戶從各個(gè)終端上輸入的數(shù)據(jù); 為每個(gè)終端配臵緩沖區(qū),暫存用戶鍵入的命令或數(shù)據(jù)。針對(duì)及時(shí)處理問題,應(yīng)使所有的用戶作業(yè)都直接進(jìn)入內(nèi)存,并且為每個(gè)作業(yè)分配一個(gè)時(shí)間片,允許作業(yè)只在自己的時(shí)間片內(nèi)運(yùn)行
4、,這樣在不長(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ù)?試舉例說明。答:硬實(shí)時(shí)任務(wù)是指系統(tǒng)必須滿足任務(wù)對(duì)截止時(shí)間的要求,否則可能出現(xiàn)難以預(yù)測(cè)的結(jié)果。舉例來說,運(yùn)載火箭的控制等。軟實(shí)時(shí)任務(wù)是指它的截止時(shí)間并不嚴(yán)格,偶爾錯(cuò)過了任務(wù)的截止時(shí)間,對(duì)系統(tǒng)產(chǎn)生的影響不大。舉例:網(wǎng)頁(yè)內(nèi)容的更新、火車售票系統(tǒng)。2 10在 8位微機(jī)和 16位微機(jī)中,占據(jù)了統(tǒng)治地位
5、的是什么操作系統(tǒng)?答:?jiǎn)斡脩魡稳蝿?wù)操作系統(tǒng),其中最具代表性的是cp/m 和ms-dos. 11試列出 windows os 中五個(gè)主要版本,并說明它們分別較之前一個(gè)版本有何改進(jìn)。答:(1)microsoft windows 1.0是微軟公司在個(gè)人電腦上開發(fā)圖形界面的首次嘗試。(2)windows 95是混合的 16 位/32 位系統(tǒng),第一個(gè)支持32 位。帶來了更強(qiáng)大、更穩(wěn)定、更實(shí)用的桌面圖形用戶界面,結(jié)束了桌面操作系統(tǒng)間的競(jìng)爭(zhēng)。(3)windows 98是微軟公司的混合16 位/32 位windows 操作系統(tǒng),改良了硬件標(biāo)準(zhǔn)的支持,革新了內(nèi)存管理,是多進(jìn)程操作系統(tǒng)。(4)windows xp
6、是基于 windows 2000的產(chǎn)品,擁有新用戶圖形界面月神luna 。簡(jiǎn)化了用戶安全特性,整合了防火墻。(5)windows vista 包含了上百種新功能;特別是新版圖形用戶界面和windows aero 全新界面風(fēng)格、加強(qiáng)的搜尋功能(windows indexing service)、新媒體創(chuàng)作工具以及重新設(shè)計(jì)的網(wǎng)絡(luò)、音頻、輸出(打?。┖惋@示子系統(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í)間來確定;而實(shí)時(shí)控制系統(tǒng)的及時(shí)性,是以控制對(duì)象所要求的開始截止時(shí)間或完成截止時(shí)間來
7、確定的,一般為秒級(jí)到毫秒級(jí),甚至有的要低于100 微妙。(2)交互性:實(shí)時(shí)信息處理系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪問系統(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ò)都可能帶來巨大的經(jīng)濟(jì)損失,甚至是災(zāi)難性后果,所以在實(shí)時(shí)系統(tǒng)中,往往都采取了多級(jí)容錯(cuò)措施保障系統(tǒng)的安全性及數(shù)據(jù)的安全性。13 os 有哪幾大特征?其最基本的特征是什么?答:并發(fā)性、共享性、虛擬性和異步性四個(gè)基本特征;最基本的特征是并發(fā)性。14處理機(jī)管理有哪些主要功能?它們的主要任務(wù)是什么?答:
8、處理機(jī)管理的主要功能是:進(jìn)程管理、進(jìn)程同步、進(jìn)程通信和處理機(jī)調(diào)度;進(jìn)程管理:為作業(yè)創(chuàng)建進(jìn)程,撤銷已結(jié)束進(jìn)程,控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換。進(jìn)程同步:為多個(gè)進(jìn)程(含線程)的運(yùn)行_進(jìn)行協(xié)調(diào)。通信:用來實(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)存分配:為每道程序分配
9、內(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è)3 備的利用率;提高i/o 速度;以及方便用戶使用i/o 設(shè)備 . 17文件管理有哪些主要功能?其主要任務(wù)是什么?答:文件管理主要功能:文件存儲(chǔ)空間的管理、目錄管理、文件的讀/ 寫管理和保護(hù)。文件管理的主要任務(wù):管理用戶文
10、件和系統(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í)間是不確定的。19模塊接口法存在哪些問題?可通過什么樣的途徑來解決?答:( 1)模塊接口法存在的問題:在os 設(shè)計(jì)時(shí),各模塊間的接口規(guī)定很難滿足在模塊完成后對(duì)接口的實(shí)際需求。在 os 設(shè)計(jì)階段, 設(shè)計(jì)者必須做出一系列的決定,每一個(gè)決定必須建立在上一個(gè)決定的基礎(chǔ)上。但模塊化結(jié)構(gòu)設(shè)計(jì)的各模塊設(shè)計(jì)齊頭并進(jìn),無(wú)
11、法尋找可靠的順序,造成各種決定的無(wú)序性,使程序設(shè)計(jì)人員很難做到設(shè)計(jì)中的每一步?jīng)Q定都建立在可靠的基礎(chǔ)上,因此模塊接口法被稱為“無(wú)序模塊法”。(2)解決途徑:將模塊接口法的決定順序無(wú)序變有序,引入有序分層法。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ù)。22在基于微內(nèi)核結(jié)構(gòu)的os 中,應(yīng)用了哪些新技術(shù)?答:在基于微內(nèi)核結(jié)構(gòu)的os 中,采用面向?qū)ο蟮某绦蛟O(shè)汁技
12、術(shù)。23何謂微內(nèi)核技術(shù)?在微內(nèi)核中通常提供了哪些功能?答:把操作系統(tǒng)中更多的成分和功能放到更高的層次(即用戶模式)中去運(yùn)行,而留下一個(gè)盡量小的內(nè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ù)第二章1. 什么是前趨圖?為什么要引入前趨圖?答:前趨圖 (precedence graph)是一個(gè)有向無(wú)循環(huán)圖,記為dag(directed ac
13、yclic graph) ,用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。2. 畫出下面四條語(yǔ)句的前趨圖: s1=a:=x+y; s2=b :=z+1; s3=c : =a b ; s4=w:=c+1; 4 答:其前趨圖為: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)中
14、為什么要引入進(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í)行,由撤銷而消亡。進(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)行的基本單位,也是
15、系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。對(duì)于未建立任何進(jìn)程的程序,不能作為獨(dú)立單位參加運(yùn)行。7試說明 pcb 的作用,為什么說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試說明進(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為什么
16、要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?答:引入掛起狀態(tài)處于五種不同的需要: 終端用戶需要,父進(jìn)程需要,操作系統(tǒng)需要,對(duì)換北京石油化工學(xué)院信息工程學(xué)院計(jì)算機(jī)系5/48 計(jì)算機(jī)操作系統(tǒng)習(xí)題參考答案余有明與計(jì)07和計(jì) g09的同學(xué)們編著5/48 需要和負(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)過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息。5 11試說明引起進(jìn)程創(chuàng)建的主要事件。答:引起進(jìn)程創(chuàng)建的主要事件有:用戶登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用
17、請(qǐng)求。12試說明引起進(jìn)程被撤銷的主要事件。答:引起進(jìn)程被撤銷的主要事件有:正常結(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在撤銷一個(gè)進(jìn)程時(shí)所要完成的主要工作是什么?答:(1)根據(jù)被終止進(jìn)程標(biāo)識(shí)符,從pcb 集中檢索出進(jìn)程pcb ,讀出該進(jìn)程狀態(tài)。(2)
18、若被終止進(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試說明引起進(jìn)程阻塞或被喚醒的主要事件是什么?答: a. 請(qǐng)求系統(tǒng)服務(wù);b. 啟動(dòng)某種操作;c. 新數(shù)據(jù)尚未到達(dá);d. 無(wú)新工作可做. 16進(jìn)程在運(yùn)行時(shí)存在哪兩種形式的制約?并舉例說明之。答:(1)間接相互制約關(guān)系。舉例:有兩進(jìn)程a 和b,如果 a 提出打印請(qǐng)求,系統(tǒng)已把唯一的一臺(tái)打印機(jī)分配給了進(jìn)程b
19、,則進(jìn)程 a 只能阻塞;一旦b 釋放打印機(jī),a 才由阻塞改為就緒。(2)直接相互制約關(guān)系。舉例:有輸入進(jìn)程 a 通過單緩沖向進(jìn)程b 提供數(shù)據(jù)。 當(dāng)緩沖空時(shí),計(jì)算進(jìn)程因不能獲得所需數(shù)據(jù)而阻塞,當(dāng)進(jìn)程a 把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進(jìn)程b;反之,當(dāng)緩沖區(qū)已滿時(shí),進(jìn)程a 因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進(jìn)程b 將緩沖區(qū)數(shù)據(jù)取走后便喚醒 a。17為什么進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)先執(zhí)行“進(jìn)入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出區(qū)”代碼?答:為了實(shí)現(xiàn)多個(gè)進(jìn)程對(duì)臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪問的臨界資源是否正被訪問的代碼,如果未被訪問,該進(jìn)程便可進(jìn)入臨界區(qū)對(duì)資源進(jìn)行訪問,并設(shè)臵正被訪問標(biāo)志,如果
20、正被訪問,則本進(jìn)程不能進(jìn)入臨界區(qū),實(shí)現(xiàn)這一功能的代碼為 進(jìn)入?yún)^(qū) 代碼;在退出臨界區(qū)后,必須執(zhí)行退出區(qū) 代碼,用于恢復(fù)未被訪問標(biāo)志,使其它進(jì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. 試從物理概念上說明記錄型信號(hào)量wait 和signal 。6 答: wait(s) :當(dāng) s.value0 時(shí),表示目前系統(tǒng)中這類資源還有可用的。執(zhí)行一次wait 操作,意味著進(jìn)程請(qǐng)求一個(gè)單位的該類資源,使系統(tǒng)中可供分配的該類資源減少一個(gè),因此描述為 s.value:=s.val
21、ue-1;當(dāng) s.value1) then block(w, l) unlock(w): w:=w-1; if(w0) then wakeup(w, l) 例子:var w:semaphore:=0;begin repeat lock(w); critical section unlock(w); remainder section until false; end 26試修改下面生產(chǎn)者消費(fèi)者問題解法中的錯(cuò)誤: 答:producer: begin repeat producer an item in nextp; wait(mutex); wait(full); /* 應(yīng)為 wait(empt
22、y),而且還應(yīng)該在wait(mutex)的前面*/ buffer(in):=nextp; /* 緩沖池?cái)?shù)組游標(biāo)應(yīng)前移: in:=(in+1) mod n; */ signal(mutex); 9 /* signal(full); */ until false; end consumer: begin repeat wait(mutex); wait(empty); /* 應(yīng)為 wait(full),而且還應(yīng)該在wait(mutex)的前面*/ nextc:=buffer(out); out:=out+1; /* 考慮循環(huán),應(yīng)改為: out:=(out+1) mod n; */ signal(m
23、utex);/* signal(empty); */ consumer item in nextc; until false; end 27試?yán)糜涗浶托盘?hào)量寫出一個(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問題的算法. 答: var chopstick:array0,4 of semaphore; 所有信號(hào)量均被初始化為1,第 i 位哲學(xué)家的活動(dòng)可描述為:repeat wait(chopsticki); wait(. chopstick(i+1) mod 5); ea.t ; signal(chopsticki); signal(chopstick(i+1) mod 5) ea.t ; think; unti
24、l false; 28在測(cè)量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù),把所采集的數(shù)據(jù)送一單緩沖區(qū);計(jì)算任務(wù)從該單緩沖中取出數(shù)據(jù)進(jìn)行計(jì)算. 試寫出利用信號(hào)量機(jī)制實(shí)現(xiàn)兩者共享單緩沖的同步算法。答:a. var mutex, empty, full: semaphore:=1, 1, 0; gather: begin repeat gather data in nextp; wait(empty); wait(mutex); buffer:=nextp; signal(mutex); 10 signal(full); until false; end compute: begin repeat wait(full)
25、; wait(mutex); nextc:=buffer; signal(mutex); signal(empty); compute data in nextc; until false; end b. var empty, full: semaphore:=1, 0; gather: begin repeat gather data in nextp; wait(empty); buffer:=nextp; signal(full); until false; end compute: begin repeat wait(full); nextc:=buffer; signal(empty
26、); compute data in nextc; until false; end 29畫圖說明管程由哪幾部分組成,為什么要引入條件變量?答:管程由四部分組成:管程的名稱;局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明;對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程;對(duì)局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)臵初始值的語(yǔ)句;11 當(dāng)一個(gè)進(jìn)程調(diào)用了管程,在管程中時(shí)被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期間,如果該進(jìn)程不釋放管程,則其它進(jìn)程無(wú)法進(jìn)入管程,被迫長(zhǎng)時(shí)間地等待。為了解決這個(gè)問題,引入了條件變量condition。30如何利用管程來解決生產(chǎn)者與消費(fèi)者問題?答:首先建立一個(gè)管程,命名為proclucerconsumer,包括
27、兩個(gè)過程:(1)put (item )過程。生產(chǎn)者利用該過程將自己生產(chǎn)的產(chǎn)品放到緩沖池,用整型變量count 表示在緩沖池中已有的產(chǎn)品數(shù)目,當(dāng)count n 時(shí),表示緩沖池已滿,生產(chǎn)者須等待。(2)get (item )過程。消費(fèi)者利用該過程從緩沖池中取出一個(gè)產(chǎn)品,當(dāng)count 0 時(shí),表示緩沖池中已無(wú)可取的產(chǎn)品,消費(fèi)者應(yīng)等待。pc 管程可描述如下:type producer-consumer =monitor var in,out,count:integer; buffer:array0,n-1of item; notfull,notempty:condition; procedure en
28、try dot(item) begin if count=n then not full.wait; buffer(in):=nextp; in:=(in+1)mod n; count:=count+1; if notempty.queue then notempty.signal; end procedure entry get(item) begin if count=0 then not full.wait; nextc:=buffer(out); out:=(out+1)mod n; count:=count-1; if notfull.quene then notfull.signa
29、l; 12 end begin in:=out:=0; count:=0 end 在利用管程解決生產(chǎn)者一消費(fèi)者問題時(shí),其中的生產(chǎn)者和消費(fèi)者可描述為:producer: begin pepeat produce an inem in nestp pc.put(item); until false; end consumer: begin repeat pc.get(item); consume the item in enxtc; until false; end 31什么是 and 信號(hào)量?試?yán)胊nd 信號(hào)量寫出生產(chǎn)者一消費(fèi)者問題的解法。答:為解決并行帶來的死鎖問題,在wait 操作中引入
30、and 條件,其基本思想是將進(jìn)程在整個(gè)運(yùn)行過程中所需要的所有臨界資源,一次性地全部分配給進(jìn)程,用完后一次性釋放。解決生產(chǎn)者消費(fèi)者問題可描述如下: var mutex,empty,full: semaphore:=1,n,0; buffer: array0,.,n-1 of item; in,out: integer:=0,0; begin parbegin producer: begin repeat produce an item in nextp; wait(empty); wait(s1,s2,s3,.,sn); /s1,s2,.,sn為執(zhí)行生產(chǎn)者進(jìn)程除empty 外其余的條件wait(
31、mutex); buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full); signal(s1,s2,s3,.,sn); until false; end consumer: begin repeat wait(full); 13 wait(k1,k2,k3,.,kn); /k1,k2,.,kn 為執(zhí)行消費(fèi)者進(jìn)程除full 外其余的條件wait(mutex); nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty); signal(k1,k2
32、,k3,.,kn); consume the item in nextc; until false; end parend end 32什么是信號(hào)量集?試?yán)眯盘?hào)量集寫出讀者一寫者問題的解法。答:對(duì) and 信號(hào)量加以擴(kuò)充,形成的信號(hào)量集合的讀寫機(jī)制。解法: var rn integer; l,mx: semaphore:=rn,1; begin parbegin reader:begin repeat swait(l,1,1); swait(mx,1,1); perform read operation; ssignal(l,1); until false end writer:begin
33、repeat swait(mx,1,1;l,rn,0); perform write operation; ssignal(mx,1); until false end parend end 33試比較進(jìn)程間的低級(jí)與高級(jí)通信工具。答:用戶用低級(jí)通信工具實(shí)現(xiàn)進(jìn)程通信很不方便,效率低,通信對(duì)用戶不透明,所有操作都必須由程序員來實(shí)現(xiàn),而高級(jí)通信工具彌補(bǔ)了這些缺陷,用戶直接利用操作系統(tǒng)提供的一組通信命令,高效地傳送大量的數(shù)據(jù)。34當(dāng)前有哪幾種高級(jí)通信機(jī)制?答:共享存儲(chǔ)器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。14 35消息隊(duì)列通信機(jī)制有哪幾方面的功能?答:( 1)構(gòu)成消息( 2)發(fā)送消息(3)接收梢息(4
34、)互斥與同步。36為什么要在os 中引入線程?答:在操作系統(tǒng)中引入線程,則是為了減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開銷,使os具有更好的并發(fā)性,提高cpu 的利用率。進(jìn)程是分配資源的基本單位,而線程則是系統(tǒng)調(diào)度的基本單位。37試說明線程具有哪些屬性?答:( 1)輕型實(shí)體( 2)獨(dú)立調(diào)度和分派的基本單位(3)可并發(fā)執(zhí)行(4)共享進(jìn)程資源。38. 試從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開銷方面對(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)程始終是擁有資源的
35、基本單位,線程只擁有運(yùn)行時(shí)必不可少的資源,本身基本不擁有系統(tǒng)資源,但可以訪問隸屬進(jìn)程的資源。(4)系統(tǒng)開銷。操作系統(tǒng)在創(chuàng)建、撤消和切換進(jìn)程時(shí)付出的開銷顯著大于線程。39. 為了在多線程os 中實(shí)現(xiàn)進(jìn)程之間的同步與通信,通常提供了哪幾種同步機(jī)制?答:同步功能可以控制程序流并訪問共享數(shù)據(jù),從而并發(fā)執(zhí)行多個(gè)線程。共有四種同步模型:互斥鎖、讀寫鎖、條件變量和信號(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)量的命令來創(chuàng)建一個(gè)私用信號(hào)量,其數(shù)據(jù)結(jié)構(gòu)存放在應(yīng)用程序的地址空間中。(2)公用信號(hào)量。公用信號(hào)
36、量是為實(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)建、撤銷、線程間的同步與通信等功能,都無(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)建、撤銷和切換等都是依靠?jī)?nèi)核,在內(nèi)核空間中實(shí)現(xiàn)的。在內(nèi)核空間里還為每個(gè)內(nèi)核支持線程設(shè)臵了線程控制塊,內(nèi)核根據(jù)該控制塊感知某線程的存在并實(shí)施
37、控制。42試說明用戶級(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 可通過系統(tǒng)調(diào)用獲得內(nèi)核提供服務(wù),利用lwp 進(jìn)程作為中間系統(tǒng)。43試說明內(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)信息寫入tcb ,為之分配必要的資源。當(dāng)ptda 中的 tcb 用完,而進(jìn)程又有新線程時(shí),只要所創(chuàng)建的線程數(shù)目未超過系統(tǒng)允許值,系統(tǒng)可在為之分配新的tcb ;在撤銷一個(gè)線程時(shí),也
38、應(yīng)回收線程的所有資源和tcb 。第三章15 第三章 處理機(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è)說明書。系統(tǒng)根據(jù)該說明書對(duì)程序的運(yùn)行進(jìn)行控制。批處理系統(tǒng)中是以作業(yè)為基本單位從外存調(diào)入內(nèi)存
39、。作業(yè)步是指 每個(gè)作業(yè)運(yùn)行期間都必須經(jīng)過若干個(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) 開始
40、處理時(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)單的是先來服務(wù)調(diào)度算法,較常用的是短作業(yè)優(yōu)先調(diào)度算法和基于作業(yè)優(yōu)先級(jí)的調(diào)度算法。5試說明低級(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)則
41、:周轉(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í)間增加而改
42、變的優(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è)16 或若干個(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í)間片的大?。看穑簳r(shí)間片應(yīng)略大于一次
43、典型的交互需要的時(shí)間。一般應(yīng)考慮三個(gè)因素:系統(tǒng)對(duì)相應(yīng)時(shí)間的要求、就緒隊(duì)列中進(jìn)程的數(shù)目和系統(tǒng)的處理能力。12通過一個(gè)例子來說明通常的優(yōu)先級(jí)調(diào)度算法不能適用于實(shí)時(shí)系統(tǒng)?答:實(shí)時(shí)系統(tǒng)的調(diào)度算法很多,主要是基于任務(wù)的開始截止時(shí)間和任務(wù)緊急/ 松弛程度的任務(wù)優(yōu)先級(jí)調(diào)度算法, 通常的優(yōu)先級(jí)調(diào)度算法不能滿足實(shí)時(shí)系統(tǒng)的調(diào)度實(shí)時(shí)性要求而不適用。13為什么說多級(jí)反饋隊(duì)列調(diào)度算法能較好地滿足各方面用戶的需求?答:( 1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在第一隊(duì)列規(guī)定的時(shí)間片內(nèi)完成,終端作業(yè)用戶就會(huì)感到滿足。(2)短批處理作業(yè)用戶,開始時(shí)像終端型作業(yè)一樣,如果在第一隊(duì)列中執(zhí)行一個(gè)時(shí)
44、間片段即可完成,便可獲得與終端作業(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ī)忙不過來而使某些實(shí)時(shí)任務(wù)得不到及時(shí)處理,導(dǎo)致發(fā)生難以預(yù)料的后果。15按照調(diào)度方式可將實(shí)時(shí)調(diào)度算法分為哪幾種?答:可分為非搶占式和搶占式兩種算法。而非搶占式算法又分
45、為非搶占式輪轉(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)度算法?舉例說明。答:根據(jù)任務(wù)的開始截止時(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的開始截止時(shí)間早于任務(wù)2,故系統(tǒng)在任務(wù)1后將調(diào)度任務(wù) 3執(zhí)行。在此期間又到達(dá)作業(yè)4,其開始
46、截止時(shí)間仍是早于任務(wù)2的,故在任務(wù) 3執(zhí)行完后,系統(tǒng)又調(diào)度任務(wù)4執(zhí)行,最后才調(diào)度任務(wù)2執(zhí)行。圖3-9 edf算法用于非搶占調(diào)度的調(diào)度方式17什么是最低松弛度優(yōu)先調(diào)度算法?舉例說明之。答:該算法是根據(jù)任務(wù)緊急(或松弛 )的程度,來確定任務(wù)的優(yōu)先級(jí)。任務(wù)的緊急程度愈高,為該任務(wù)所賦予的優(yōu)先級(jí)就愈高,以使之優(yōu)先執(zhí)行。例如,一個(gè)任務(wù)在200 ms 時(shí)必須完17 成,而它本身所需的運(yùn)行時(shí)間就有100 ms ,因此, 調(diào)度程序必須在100 ms 之前調(diào)度執(zhí)行,該任務(wù)的緊急程度(松弛程度 )為100 ms 。又如,另一任務(wù)在400 ms 時(shí)必須完成,它本身需要運(yùn)行150 ms,則其松弛程度為250 ms。1
47、8何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?答:死鎖是指多個(gè)進(jìn)程在運(yùn)行過程中因爭(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在解決死鎖問題的幾個(gè)方法中,哪種方法最易于實(shí)現(xiàn)?哪種方法使資源利用率最高?答:解決死鎖的四種方法即預(yù)防、避免、檢測(cè)和解除死鎖中,預(yù)防死鎖最容易實(shí)現(xiàn);避免死鎖使資源的利用率最高。20請(qǐng)?jiān)敿?xì)說明可通過哪些途徑預(yù)防死鎖。答:( 1)擯棄“請(qǐng)求和保持”條件,就是如果系統(tǒng)有足夠資源,便一次性把進(jìn)程需要的所有資源分配給它;(2
48、)擯棄“不剝奪”條件,就是已經(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),問系統(tǒng)可否將資源分配給它?( 此答案有點(diǎn)問題,需重新考慮) 答:( 1)可以。銀行家算法各種資源數(shù)量分別為10 、5、 7,在 t0時(shí)刻的資源分配如圖所示:(2)具體分析如下: requst0(0,1,0)=need0(7,4,3); requs
49、t0(0,1,0)=available(2,3,0); 系統(tǒng)先假定可為p0分配資源,并修改available0,allocation0和need0向量,由此形成的資源變化情況如下圖所示:18 (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)以下資源分配,試問(1)該狀態(tài)是否安全?(2)若進(jìn)程 p2 提出requ
50、est(1,2,2,2)后,系統(tǒng)能否將資源分配給它?試問:(1)該狀態(tài)是否安全?(2)若進(jìn)程 p2提出請(qǐng)求 request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?( 參考答案有錯(cuò))答:(1)安全,因?yàn)榇嬖诎踩蛄衟0,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向量,由此形成的資源變化情況如下圖
51、所示: 再利用安全性算法檢查此時(shí)系統(tǒng)是否安全。如下圖19 由此進(jìn)行的安全性檢查得知,可以找到一個(gè)安全序列p2,p0,p1,p3,p4。第四章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)
52、境;不允許程序運(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è)完整的裝配模塊,以后不再拆開的鏈接方式。裝入時(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è)完整的裝入模塊load module。主要工作是修改程序內(nèi)的相對(duì)地址和
53、修改目標(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è)后向指針,通過前后向鏈接指針,將所有空閑分區(qū)鏈成一個(gè)雙向鏈。當(dāng)分區(qū)分配出去后,把狀態(tài)位由“0”改為“ 1”。6為什么要引入動(dòng)態(tài)重定位?如何實(shí)現(xiàn)?答:在程序執(zhí)行過程中,每當(dāng)訪問指令或數(shù)據(jù)時(shí),將要訪問的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地址,引入了動(dòng)態(tài)重定位;具體實(shí)現(xiàn)方法是在系統(tǒng)中增加一個(gè)重定位寄存器,用來裝入程序在內(nèi)存中的起始地址,程序執(zhí)行時(shí), 真正訪問的內(nèi)存地址是相對(duì)地址與重定位寄存器中的地址相加之和,
54、從而實(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ū)始址,大小為兩者之和。20 (3)回收區(qū)前后均鄰空閑區(qū)。將三個(gè)分區(qū)合并,修改前鄰空閑區(qū)大小為三者之和。(4)回收區(qū)前后均不鄰空閑區(qū)。為回收區(qū)設(shè)臵空閑區(qū)表項(xiàng),填入回收區(qū)始址和大小并插入空閑區(qū)隊(duì)列。8令表示大小為、地址為 x 的塊的伙伴系統(tǒng)地址,試寫出的通用表達(dá)式。答:當(dāng)時(shí),;當(dāng)時(shí),9分區(qū)存儲(chǔ)管理中常用那些分配策略?
55、比較它們的優(yōu)缺點(diǎn)。答:分區(qū)存儲(chǔ)管理中的常用分配策略:首次適應(yīng)算法、循環(huán)首次適應(yīng)算法、最佳適應(yīng)算法、最壞適應(yīng)算法。首次適應(yīng)算法優(yōu)缺點(diǎn):保留了高址部分的大空閑區(qū),有利于后來的大型作業(yè)分配;低址部分不斷被劃分,留下許多難以利用的小空閑區(qū),每次查找都從低址開始增加了系統(tǒng)開銷。循環(huán)首次適應(yīng)算法優(yōu)缺點(diǎn):內(nèi)存空閑分區(qū)分布均勻,減少了查找系統(tǒng)開銷;缺乏大空閑分區(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ū)分配不利。
56、10在系統(tǒng)中引入對(duì)換后可帶來哪些好處?答:交換技術(shù)將暫不需要的作業(yè)移到外存,讓出內(nèi)存空間以調(diào)入其它作業(yè),交換到外存的作業(yè)也可以被再次調(diào)入。目的是解決內(nè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)椋?1)從結(jié)構(gòu)上講,進(jìn)程由程序段、數(shù)據(jù)段和進(jìn)程控制塊組成的,其中進(jìn)程控制塊總有部分或全部常駐內(nèi)存,不被換出。(2)程序段和數(shù)據(jù)段可能正被若干進(jìn)程共享,此時(shí)它們也
57、不能換出。13為實(shí)現(xiàn)分頁(yè)存儲(chǔ)管理,需要哪些硬件的支持?答:動(dòng)態(tài)重定位技術(shù)、虛擬存儲(chǔ)技術(shù)、多道程序設(shè)計(jì)技術(shù)。14較詳細(xì)的說明引入分段存儲(chǔ)管理是為了滿足用戶哪幾方面的需要。答:1) 方便編程。用戶通常把自己的作業(yè)按照邏輯關(guān)系劃分為若干段,每段都從0 編址,并有自己名字和長(zhǎng)度。因此,希望要訪問的邏輯地址是由段名和段內(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)
58、信息保護(hù)功能。21 4) 動(dòng)態(tài)增長(zhǎng)。在實(shí)際應(yīng)用中,有些段特別是數(shù)據(jù)段,在使用過程中會(huì)不斷增長(zhǎng),事先又無(wú)法確切知道增長(zhǎng)多少。分段存儲(chǔ)管理方式能較好解決這個(gè)問題。5) 動(dòng)態(tài)鏈接。運(yùn)行時(shí)先將主程序?qū)?yīng)的目標(biāo)程序裝入內(nèi)存并啟動(dòng)運(yùn)行,運(yùn)行過程中又需要調(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),表示要訪問的頁(yè)表項(xiàng)在快表中??芍苯訌目毂碜x出該頁(yè)對(duì)應(yīng)物理塊號(hào),送到物理地址寄存器中。如快表中沒有對(duì)應(yīng)頁(yè)
59、表項(xiàng),則再訪問內(nèi)存頁(yè)表, 找到后, 把從頁(yè)表項(xiàng)中讀出物理塊號(hào)送地址寄存器;同時(shí)修改快表,將此頁(yè)表項(xiàng)存入快表。但若寄存器已滿,則os必須找到合適的頁(yè)表項(xiàng)換出。16為什么說為什么說分段系統(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)存的外部零頭
60、,提高內(nèi)存利用率。段則是信息的邏輯單位,它含有一組相對(duì)完整的信息。(2)頁(yè)的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,是由機(jī)械硬件實(shí)現(xiàn)的,因而在系統(tǒng)中只能有一種大小的的頁(yè)面;而段的長(zhǎng)度卻不固定,決定于用戶所編寫的程序 ,通常由編譯程序在對(duì)原程序進(jìn)行編譯時(shí),根據(jù)信息的性質(zhì)來劃分。(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)離散
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 剪紙課題立項(xiàng)申報(bào)書
- 事故車交易合同范本
- 上海嘉善房屋出租合同范本
- 高中課題申報(bào)書
- 課題申報(bào)書亮點(diǎn)
- 臨時(shí)用工勞務(wù)合同范本 三
- 勞務(wù)拆遷采購(gòu)合同范本
- 合同范本 材料價(jià)差調(diào)整
- 勞務(wù)公司包工合同范本
- 與中介簽買房合同范本
- 2025年高考時(shí)政考題及參考答案(100題)
- DeepSeek人工智能語(yǔ)言模型探索AI世界科普課件
- 《青春期心理健康指導(dǎo)》課件
- 第18講 等腰三角形 課件中考數(shù)學(xué)復(fù)習(xí)
- 社會(huì)階層與教育選擇行為分析-深度研究
- 2025年內(nèi)蒙古呼和浩特市屬國(guó)企業(yè)紀(jì)檢監(jiān)察機(jī)構(gòu)招聘工作人員80人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 社會(huì)工作行政(第三版)課件匯 時(shí)立榮 第6-11章 項(xiàng)目管理- 社會(huì)工作行政的挑戰(zhàn)、變革與數(shù)字化發(fā)展
- 全過程工程咨詢文件管理標(biāo)準(zhǔn)
- 模特?cái)z影及肖像使用合同協(xié)議范本
- 2025年湘潭醫(yī)衛(wèi)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫(kù)含答案解析
- 《預(yù)制高強(qiáng)混凝土風(fēng)電塔筒生產(chǎn)技術(shù)規(guī)程》文本附編制說明
評(píng)論
0/150
提交評(píng)論