操作系統(tǒng)課后習(xí)題答案及復(fù)習(xí)題_第1頁
操作系統(tǒng)課后習(xí)題答案及復(fù)習(xí)題_第2頁
操作系統(tǒng)課后習(xí)題答案及復(fù)習(xí)題_第3頁
操作系統(tǒng)課后習(xí)題答案及復(fù)習(xí)題_第4頁
操作系統(tǒng)課后習(xí)題答案及復(fù)習(xí)題_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章1、設(shè)計(jì)現(xiàn)代OS的主要目標(biāo)是什么?P1答:其主要目標(biāo)是有效性、方便性、可擴(kuò)充性、開放性。2、OS的作用可表現(xiàn)在哪幾個(gè)方面?P2-P3答:1、OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口;2、OS作為計(jì)算機(jī)資源的管理者;3、OS實(shí)現(xiàn)了對計(jì)算機(jī)資源的抽象;3、為什么說OS實(shí)現(xiàn)了計(jì)算機(jī)資源的抽象?P4答:完全無軟件的計(jì)算機(jī)系統(tǒng)(即裸機(jī)),它向用戶提供的是實(shí)際硬件接口(物理接口),用戶必須對物理接口的實(shí)現(xiàn)細(xì)節(jié)有充分的了解,并利用機(jī)器指令進(jìn)行編程,因此該物理機(jī)器必定是難以使用的。為了方便用戶使用I/O設(shè)備,人們在裸機(jī)上覆蓋上一層I/O設(shè)備管理軟件。通常把覆蓋了上述軟件的機(jī)器稱為擴(kuò)充機(jī)器或虛機(jī)器。它向用戶(進(jìn)程)提供了一個(gè)對硬件操作的抽象模型,用戶更容易地使用計(jì)算機(jī)便件資源。由該層軟件實(shí)現(xiàn)了對計(jì)算機(jī)硬件操作的第一個(gè)層次的抽象。為了方便用戶使用文件系統(tǒng),人們又在第一層軟件上再覆蓋上一層用于文件的管理軟件,同樣由它來實(shí)現(xiàn)對文件操作的細(xì)節(jié),并向上提供一組對文件進(jìn)行存取操作的命令,用戶可利用這組命令進(jìn)行文件的存取。此時(shí)用戶所看到的是一臺功能更強(qiáng)、使用更方便的虛機(jī)器。該層軟件實(shí)現(xiàn)了對硬件資源操作的第二個(gè)層次的抽象。OS是鋪設(shè)在計(jì)算機(jī)硬件上的多層系統(tǒng)軟件,它們不僅增強(qiáng)了系統(tǒng)的功能,而且還隱藏了對硬件操作的細(xì)節(jié),由它們實(shí)現(xiàn)了對計(jì)算機(jī)硬件操作的多個(gè)層次的抽象。值得說明的,對一個(gè)硬件在底層進(jìn)行抽象后,在高層還可再次對該資源進(jìn)行抽象,成為更高層的抽象模型。隨著抽象層次的提高,抽象接口所提供的功能就越來越強(qiáng),用戶使用起來也更加方便。4、試說明推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁??P4-P5答:為了進(jìn)一步提高資源的利用率和系統(tǒng)吞吐量,在該系統(tǒng)中,用戶所提交的作業(yè)都先存放在外存上并排成一個(gè)隊(duì)列,稱為“后備隊(duì)列”;然后,由作業(yè)高度程序按一定的算法從后備隊(duì)列中選擇若干個(gè)作業(yè)調(diào)入內(nèi)存,使它們共享CPU和系統(tǒng)中各種資源。在OS中引入多道程序設(shè)計(jì)技術(shù)可帶來以下好處:提高CPU和利用率、可提高內(nèi)存和I/O設(shè)備利用率、增加系統(tǒng)吞吐量。主要?jiǎng)恿Γ?、不斷提高計(jì)算機(jī)資源的利用率;2、方便用戶;3、器件的不斷更新?lián)Q代;4、計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展;5、何謂脫機(jī)I/O和聯(lián)機(jī)I/O?P6答:由于程序和數(shù)據(jù)的輸入和輸出都是在外圍機(jī)的控制下完成的,或者說,它們是在脫離主機(jī)的情況下進(jìn)行的,該技術(shù)是脫機(jī)輸入/輸出方式;反之,在主機(jī)的直接控制下進(jìn)行輸入/輸出的方式稱為聯(lián)機(jī)輸入/輸出)ON-LINEI/O)方式。1、減少了CPU的空閑時(shí)間;2、提高了I/O速度。6、試說明推動(dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿χ魇裁??P9答:分時(shí)系統(tǒng)它能很好地將一臺計(jì)算機(jī)提供給多個(gè)用戶同時(shí)使用,提高計(jì)算機(jī)的利用率。1、人-機(jī)交互;2、共享主機(jī);3、便于用戶上機(jī)。7、實(shí)現(xiàn)分時(shí)系統(tǒng)的關(guān)鍵問題是什么?應(yīng)如何解決?P10答:其最關(guān)鍵的問題是如何使用戶能與自己的作業(yè)進(jìn)行交互,即當(dāng)用戶在自己的終端上鍵入命令時(shí),系統(tǒng)應(yīng)能及時(shí)接收并及時(shí)處理該命令,再將結(jié)果返回給用戶。用戶可繼續(xù)鍵入下一條命令,此即人-機(jī)交互。應(yīng)強(qiáng)調(diào)指出,即使有多個(gè)用戶同時(shí)通過自己的鍵盤鍵入命令,系統(tǒng)也應(yīng)能全部地及時(shí)接收并處理這些命令。1、及時(shí)接收;2、及時(shí)處理;8、為什么要引入實(shí)時(shí)OS?P11答:實(shí)時(shí)系統(tǒng)是指系統(tǒng)能及時(shí)(或即時(shí))響應(yīng)外部事件的請求,在規(guī)定的時(shí)間內(nèi)完成對該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。1、應(yīng)用需求;2、實(shí)時(shí)任務(wù);9、什么是硬實(shí)時(shí)任務(wù)和軟實(shí)時(shí)任務(wù)?試舉例說明。P12答:硬實(shí)時(shí)任務(wù)是系統(tǒng)必須滿足任務(wù)對截止時(shí)間的要求,否則可能出現(xiàn)難以預(yù)測的結(jié)果。軟實(shí)時(shí)任務(wù)是它也聯(lián)系著一個(gè)截止時(shí)間,但并不嚴(yán)格,若偶爾錯(cuò)過了任務(wù)的截止時(shí)間,對系統(tǒng)產(chǎn)生的影響也不會太大。舉例說明:硬實(shí)時(shí)任務(wù)為訂車票、工業(yè);軟實(shí)時(shí)任務(wù)為網(wǎng)頁更新;10、在8位微機(jī)和16位微機(jī)中,占據(jù)了統(tǒng)治地位的是什么操作系統(tǒng)?P13答:在8位微機(jī)和16位微機(jī)中,最有代表性的單用戶單任務(wù)微機(jī)操作系統(tǒng)是CP/M和MS-MOS。11、試列出WindowsOS中五個(gè)主要版本,并說明它們分別較之前一個(gè)版本有何改進(jìn)。P13答:1、WIN1.0和WIN2.0;2、WIN3.1版本,針對386和486等32位微機(jī)開發(fā)的,較之以前的操作系統(tǒng)有著重大的改進(jìn),引入了友善的圖形用戶界面,支持多任務(wù)和擴(kuò)展內(nèi)存的功能,使計(jì)算機(jī)更好使用,從而成為386和486等微機(jī)的主流操作系統(tǒng);3、1WIN95、WIN3.1有許多重大改進(jìn),彩了全32位處理技術(shù),并兼容了以前的16位應(yīng)用程序,在該系統(tǒng)中還集成了支持INTERENET的網(wǎng)絡(luò)功能。4、WIN98把微軟公司自己開發(fā)的INTERNET瀏覽器整合到系統(tǒng)中,大大方便了用戶上網(wǎng)瀏覽,另一個(gè)特點(diǎn)是增加了對多媒體的支持。5、32位版本的WINXP。12、試從交互性、及時(shí)性以及可靠性方面,將分時(shí)系統(tǒng)與實(shí)時(shí)系統(tǒng)進(jìn)行比較。P12答:1、及時(shí)性,實(shí)時(shí)信息處理系統(tǒng)對實(shí)時(shí)性的要求與分時(shí)系統(tǒng)類似,都是以人所能接受的等待時(shí)間來確定的;而實(shí)時(shí)控制系統(tǒng)的及時(shí)性,則是以控制對象所要求的開始截止時(shí)間或完成截時(shí)間來確定的,一般為秒級到毫秒級,甚至有的要低于100微秒。2、交互性,實(shí)時(shí)信息處理系統(tǒng)雖然也具有交互性,但這里人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某些特定的專用服務(wù)程序。3、可靠性,分時(shí)系統(tǒng)雖然也要求系統(tǒng)可靠,但相比之下,實(shí)時(shí)系統(tǒng)則要求系統(tǒng)具有高度的可靠性。13、OS有哪幾個(gè)特征?其最基本的特征是什么?P14答:OS有并發(fā)、共享、虛擬和異步這四個(gè)基本特征。并發(fā)特征是操作系統(tǒng)最重要的特征;14、處理機(jī)管理有哪些主要功能?它們的主要任務(wù)是什么?P18答:主要功能:創(chuàng)建和撤消進(jìn)程(線程),對諸進(jìn)程(線程)的運(yùn)行進(jìn)行協(xié)調(diào),實(shí)現(xiàn)進(jìn)程(線程)之間的信息交換,以及按照一定的算法把處理機(jī)分配給進(jìn)程(線程)。1、進(jìn)程控制:進(jìn)程控制的主要功能是為作業(yè)創(chuàng)建進(jìn)程,撤消已結(jié)束的進(jìn)程,以及控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換。2、進(jìn)程同步:進(jìn)程同步的主要任務(wù)是為多個(gè)進(jìn)程(含線程)的運(yùn)行進(jìn)行協(xié)調(diào)。3、進(jìn)程通信:在多道程序環(huán)境下,為了加速應(yīng)用程序的運(yùn)行,應(yīng)系統(tǒng)中建立多個(gè)進(jìn)程,并且再為一個(gè)進(jìn)程建立若干個(gè)線程,由這些進(jìn)程(線程)相互合作去完成一個(gè)共同的任務(wù)。而在這些進(jìn)程(線程)之間,又往往需要交換信息。當(dāng)相互合作的進(jìn)程(線程)處于同一計(jì)算機(jī)系統(tǒng)時(shí),通常在它們之間是采用直接通信方式,即由源進(jìn)程利用發(fā)送命令直接將消息(Message)掛到目標(biāo)進(jìn)程的消息隊(duì)列上,以后由目標(biāo)進(jìn)程利用接收命令從其消息隊(duì)列中取出消息。4、調(diào)度:在后備隊(duì)列上等待的每個(gè)作業(yè)都需經(jīng)過調(diào)度才能執(zhí)行(1)作業(yè)調(diào)度:作業(yè)調(diào)度的基本任務(wù)是從后備隊(duì)列中按照一定的算法,選擇出若干個(gè)作業(yè),為它們分配運(yùn)行所需的資源(首行是分配內(nèi)存)。(2)進(jìn)程調(diào)度:進(jìn)程調(diào)度的任務(wù)是從進(jìn)程的就緒隊(duì)列中,按照一定的算法選出一個(gè)進(jìn)程,把處理機(jī)分配給它,并為它設(shè)置運(yùn)行現(xiàn)場,使進(jìn)程投入執(zhí)行。15、內(nèi)存管理有哪些主要功能?它們的主要任務(wù)是什么?P20答:主要任務(wù)是為多道程序的運(yùn)行提供良好的環(huán)境,方便用戶使用存儲器,提高存儲器的利用率以及能從邏輯上擴(kuò)充內(nèi)存。有內(nèi)存分配、內(nèi)存保護(hù)、地址眏射和內(nèi)存擴(kuò)充等功能。1、內(nèi)存分配:內(nèi)存分配的主要任務(wù)是為每道程序分配內(nèi)存空間,使它們“各得其所”;提高存儲器的利用率,以減少不可用的內(nèi)存空間;允許正在運(yùn)行的程序申請附加的內(nèi)存空間,以適應(yīng)程序和數(shù)據(jù)動(dòng)態(tài)增長的需要。2、內(nèi)存保護(hù):內(nèi)存保護(hù)的主要任務(wù)是確保每道用戶程序都只在自己的內(nèi)存空間內(nèi)運(yùn)行彼此互不干優(yōu);絕不允許用戶程序訪問操作系統(tǒng)的程序和數(shù)據(jù);也不允許用戶程序轉(zhuǎn)移到非共享的其它用戶程序中去執(zhí)行。3、地址映射:存儲器管理必須提供地址映射功能,以將地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間中與之對應(yīng)的物理地址。該功能應(yīng)在硬件的支持下完成。4、內(nèi)存擴(kuò)充:存儲器管理中的內(nèi)存擴(kuò)充任務(wù)并非是去擴(kuò)大物理內(nèi)存的容量,而是借助于虛擬存儲技術(shù),從邏輯上去擴(kuò)充內(nèi)存容量,使用戶所感覺到的內(nèi)存容量比實(shí)際內(nèi)存容量大得多,以便讓更多的用戶程序并發(fā)運(yùn)行。16、設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?P21答:主要任務(wù)是:完成用戶進(jìn)程提出的I/O請求;為用戶進(jìn)程分配其所需的I/O設(shè)備;提高CPU和I/O設(shè)備的利用率;提高I/O速度;方便用戶使用I/O設(shè)備。有緩沖管理、設(shè)備分配和設(shè)備處理以及虛擬設(shè)備等功能。1、緩沖管理:在I/O設(shè)備和CPU之間引入緩沖,提高CPU的利用率,進(jìn)而提高系統(tǒng)吞吐量。在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,都無一例外地在內(nèi)存中設(shè)置了緩沖區(qū),而且還可通過增加緩沖區(qū)容量的方法來改善系統(tǒng)的性能。對于不同的系統(tǒng),可以采用不同的緩沖區(qū)機(jī)制。2、設(shè)備分配:設(shè)備分配的基本任務(wù)是根據(jù)用戶進(jìn)程的I/O請求、系統(tǒng)的現(xiàn)有資源情況以及按照某種設(shè)備的分配策略,為之分配其所需的設(shè)備。如果在I/O設(shè)備和CPU之間還存在著設(shè)備控制器和I/O通道時(shí),還須為分配出去的設(shè)備分配相應(yīng)的控制器和通道。3、設(shè)備處理:設(shè)備處理程序又稱為設(shè)備驅(qū)動(dòng)程序。其基本任務(wù)是用于實(shí)現(xiàn)CPU和設(shè)備控制器之間的通信,即由CPU向設(shè)備控制器發(fā)出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收從控制器發(fā)來的中斷請求,并給予迅速的響應(yīng)和相應(yīng)的處理。17、文件管理有哪些主要功能?其主要任務(wù)是什么?P21-P22答:文件管理的主要任務(wù)是對用戶文件和系統(tǒng)文件進(jìn)行管理,以方便用戶使用,并保證文件的安全性。為此,文件存儲空間的管理、目錄管理、文件的讀/寫管理,以及文件的共享與保護(hù)等功能。1、文件存儲空間的管理:其主要任務(wù)是為每個(gè)文件分配必要的外存空間,提高外存的利用率,并能有助于提高文件系統(tǒng)的存、取速度。2、目錄管理:目錄管理的主要任務(wù)是為每個(gè)文件建立其目錄項(xiàng),并對眾多的目錄項(xiàng)加以有效的組織,以實(shí)現(xiàn)方便的按名存取,即用戶只須提供文件名便可對該文件進(jìn)行存取。3、文件的讀/寫管理和保護(hù):文件的讀/寫管理其該功能是根據(jù)用戶的請求,從外存中讀取數(shù)據(jù),或?qū)?shù)據(jù)寫入外存。文件保護(hù)其為了防止系統(tǒng)中的文件被非法竊取和破壞,在文件系統(tǒng)中必須提供有效的存取控制功能。18、是什么原因使操作系統(tǒng)具有異步性特征?答:進(jìn)程是以人們不可預(yù)知的速度向前推進(jìn),此即進(jìn)程的異步性。19.模塊接口法存在哪些問題?可通過什么樣的途徑來解決?答:(1)模塊接口法存在的問題:①在OS設(shè)計(jì)時(shí),各模塊間的接口規(guī)定很難滿足在模塊完成后對接口的實(shí)際需求。②在OS設(shè)計(jì)階段,設(shè)計(jì)者必須做出一系列的決定,每一個(gè)決定必須建立在上一個(gè)決定的基礎(chǔ)上。但模塊化結(jié)構(gòu)設(shè)計(jì)的各模塊設(shè)計(jì)齊頭并進(jìn),無法尋找可靠的順序,造成各種決定的無序性,使程序設(shè)計(jì)人員很難做到設(shè)計(jì)中的每一步?jīng)Q定都建立在可靠的基礎(chǔ)上,因此模塊接口法被稱為“無序模塊法”。(2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。20.在微內(nèi)核OS中,為什么要采用客戶/服務(wù)器模式?答:C/S模式具有獨(dú)特的優(yōu)點(diǎn):⑴數(shù)據(jù)的分布處理和存儲。⑵便于集中管理。⑶靈活性和可擴(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è)汁技術(shù)。23.何謂微內(nèi)核技術(shù)?在微內(nèi)核中通常提供了哪些功能?答:把操作系統(tǒng)中更多的成分和功能放到更高的層次(即用戶模式)中去運(yùn)行,而留下一個(gè)盡量小的內(nèi)核,用它來完成操作系統(tǒng)最基本的核心功能,稱這種技術(shù)為微內(nèi)核技術(shù)。在微內(nèi)核中通常提供了進(jìn)程(線程)管理、低級存儲器管理、中斷和陷入處理等功能。24.微內(nèi)核操作系統(tǒng)具有哪些優(yōu)點(diǎn)?它為何能有這些優(yōu)點(diǎn)?答:1)提高了系統(tǒng)的可擴(kuò)展性2)增強(qiáng)了系統(tǒng)的可靠性3)可移植性4)提供了對分布式系統(tǒng)的支持5)融入了面向?qū)ο蠹夹g(shù)第二章1、什么是前趨圖?為什么要引入前趨圖?P35答:前趨圖是一個(gè)有向無循環(huán)圖,記為DAG,用于描述進(jìn)程之間招待的前后關(guān)系??捎脕砗唵沃v述進(jìn)程之間的關(guān)系。2、試畫出下面四語句的前趨圖:P36S1:a:=x+y;S2:b:=z+1;S3:c:=a-b;S4:w:=c+1;3、為什么程序并發(fā)執(zhí)行會產(chǎn)生間斷性特征?P36-P37答:因程序在并發(fā)執(zhí)行時(shí),由于它們共享系統(tǒng)資源,以及為完成同一項(xiàng)任務(wù)而相互合作,致使在這些并發(fā)執(zhí)行的程序之間,形成了相互制約的關(guān)系。4、程序并發(fā)執(zhí)行時(shí)為什么會失去封閉性和可再現(xiàn)性?P37答:程序在并發(fā)執(zhí)行時(shí),是多個(gè)程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)將由多個(gè)程序來改變,致使程序的運(yùn)行換去了封閉性,這樣,某程序在執(zhí)行時(shí),必然會受到其它程序的影響。程序在并發(fā)執(zhí)行時(shí),由于失去了封閉性,也將導(dǎo)致其再失去可再現(xiàn)性。5、在操作系統(tǒng)中為什么要引入進(jìn)程的概念?它會產(chǎn)生什么樣的影響?P37?????答:因?yàn)槭钩绦蚰懿l(fā)執(zhí)行,且為了對并發(fā)執(zhí)行的程序加以描述和控制,人們引入了“進(jìn)程”的概念。6、試從動(dòng)態(tài)性、并發(fā)性和獨(dú)立性上比較進(jìn)程和程序。P37-P38答:動(dòng)態(tài)性進(jìn)程的實(shí)質(zhì)是進(jìn)程實(shí)體的一次執(zhí)行過程,因此,動(dòng)態(tài)性是進(jìn)程的最基本的特征。并發(fā)性這是指多個(gè)進(jìn)程實(shí)體同存于內(nèi)存中,且能在一段時(shí)間內(nèi)同時(shí)運(yùn)行。獨(dú)立性是指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行、獨(dú)立分配資源和獨(dú)立接受調(diào)度的基本單位。凡未建立PCB的程序都不能作為一個(gè)獨(dú)立的單位參與運(yùn)行。7、試說明PCB的作用,為什么說PCB是進(jìn)程存在的唯一標(biāo)志?P41答:進(jìn)程控制塊的作用是一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。在進(jìn)程的整個(gè)生命期中,系統(tǒng)總是通過PCB對進(jìn)程進(jìn)行控制的,系統(tǒng)是根據(jù)進(jìn)程的PCB而不是任何別的什么而感知到該進(jìn)程的存在的,所以說,PCB是進(jìn)程存在的惟一標(biāo)志。8、試說明進(jìn)程在三個(gè)基本狀態(tài)之間轉(zhuǎn)換的典型原因。P38答:處于就緒狀態(tài)的進(jìn)程,在調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)之后,該進(jìn)程便可執(zhí)行,相應(yīng)地,它就由就緒狀態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)。正在執(zhí)行的進(jìn)程也稱為當(dāng)前進(jìn)程,如果因分配給它的時(shí)間片已完而被暫停執(zhí)行時(shí),該進(jìn)程便由執(zhí)行狀態(tài)又回復(fù)到就緒狀態(tài);如果因發(fā)生某事件而使進(jìn)程的執(zhí)行受阻,使之無法繼續(xù)執(zhí)行,該進(jìn)程將由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。9.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?a.引入掛起狀態(tài)主要是出于4種需要(即引起掛起的原因):終端用戶的請求,父進(jìn)程請求,負(fù)荷調(diào)節(jié)的需要,操作系統(tǒng)的需要。b.被掛起的進(jìn)程是處于靜止?fàn)顟B(tài),并且不能直接被處理機(jī)調(diào)度。17.為什么進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)先執(zhí)行“進(jìn)入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出區(qū)”代碼?為了實(shí)現(xiàn)多個(gè)進(jìn)程對臨界資源的互斥訪問,必須在臨界區(qū)之前加一段用于檢查臨界資源是否正在被訪問的代碼,如未被訪問,該進(jìn)程可進(jìn)入臨界區(qū)對此臨界資源進(jìn)行訪問;如正被訪問,則該進(jìn)程不能進(jìn)入臨界區(qū)訪問臨界資源。在退出臨界區(qū)后,執(zhí)行恢復(fù)訪問標(biāo)志的代碼為“退出區(qū)”,而在退出前執(zhí)行“退出區(qū)”代碼主要是為了使其它進(jìn)程能再訪問此臨界資源。18.同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?為什么?a.空閑讓進(jìn)、忙則等待、有限等待、讓權(quán)等待四條準(zhǔn)則b.為實(shí)現(xiàn)進(jìn)程能互斥地進(jìn)入到自己的臨界區(qū)19.試從物理概念上說明記錄型信號量wait和signal。Wait(S):當(dāng)S.value>0時(shí),表示目前系統(tǒng)中這類資源還有可用的,執(zhí)行一次wait操作,意味著進(jìn)程請求一個(gè)單位的該類資源,是系統(tǒng)中可供分配的該類資源減少一個(gè),因此描述為S.value:=S.value-1;當(dāng)S.value<0時(shí),表示該類資源已分配完畢,因此進(jìn)程應(yīng)調(diào)用block原語,進(jìn)行自我阻塞,放棄處理機(jī),并插入到信號量鏈表S.L中。Signal(S):執(zhí)行一次signal操作,意味著釋放一個(gè)單位的可用資源,使系統(tǒng)中可供分配的該類資源數(shù)增加一個(gè),故執(zhí)行S.value:=S.value+1操作。若加1后S.value≤0,則表示在該信號量鏈表中,仍有等待該資源的進(jìn)程被阻塞,因此應(yīng)調(diào)用wakeup原語,將S.L鏈表中的第一個(gè)等待進(jìn)程喚醒。20.你認(rèn)為整型信號量機(jī)制是否完全遵循了同步機(jī)構(gòu)的四條準(zhǔn)則?答:整型信號量機(jī)制不完全遵循同步機(jī)制的四條準(zhǔn)則,它不滿足“讓權(quán)等待”準(zhǔn)則。21、如何利用信號量機(jī)制來實(shí)現(xiàn)多個(gè)進(jìn)程對臨界資源的互斥訪問?并舉例說明之。答:為使多個(gè)進(jìn)程互斥訪問某臨界資源,只需為該資源設(shè)置一個(gè)互斥信號量mutex,并并設(shè)其初值為1,然后將各進(jìn)程訪問該資源的臨界區(qū)CS置于wait(mutex)和signal(mutex)操作之間即可。Varmutex:semaphore=1;beginparbeginprocess1:beginrepeatwait(mutex);criticalsectionsignal(mutex);remaindersectionuntilfalse;endprocess2:beginrepeatwait(mutex);criticalsectionsignal(mutex);remaindersectionuntilfalse;endpraend22、試寫出相應(yīng)的程序來描述圖2-17所示的前趨圖。P54SS11S3S2S51S41S71S61S81S11S21S31S41S51S61S71a.Vara,b,c,d,e,f,g,h;semaphore:=0,0,0,1,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;parendend23.在生產(chǎn)者—消費(fèi)者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結(jié)果將會有何影響?如果缺少了signal(full),那么表明從第一個(gè)生產(chǎn)者進(jìn)程開始就沒有對信號量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)程才開始從中取產(chǎn)品,這時(shí)empty=0,full=n,那么每當(dāng)消費(fèi)者進(jìn)程取走一個(gè)產(chǎn)品時(shí)empty并沒有被改變,直到緩沖池中的產(chǎn)品都取走了,empty的值也一直是0,即使目前緩沖池有n個(gè)空緩沖區(qū),生產(chǎn)者進(jìn)程要想再往緩沖池中投放產(chǎn)品會因申請不到空緩沖區(qū)而被阻塞。24、試修改下面生產(chǎn)者消費(fèi)問題中,如果將兩個(gè)wait操作即wait(full)和wati(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果會如何?答:.a.wait(full)和wait(mutex)互換位置后,因?yàn)閙utex在這兒是全局變量,執(zhí)行完wait(mutex),則mutex

賦值為0,倘若full也為0,則該生產(chǎn)者進(jìn)程就會轉(zhuǎn)入進(jìn)程鏈表進(jìn)行等待,而生產(chǎn)者進(jìn)程會因全局變量

mutex為0而進(jìn)行等待,使full始終為0,這樣就形成了死鎖.

b.而signal(mutex)與signal(full)互換位置后,從邏輯上來說應(yīng)該是一樣的.25.我們?yōu)槟撑R界資源設(shè)置一把鎖W,當(dāng)W=1時(shí)表示關(guān)鎖;當(dāng)W=0時(shí)表示鎖已打開,試寫出開鎖和關(guān)鎖原語,并利用它們?nèi)?shí)現(xiàn)互斥。整型信號量:lock(W):whileW=1dono-opW:=1;unlock(W):W:=0;記錄型信號量: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;end26.試修改下面生產(chǎn)者——消費(fèi)者問題解法中的錯(cuò)誤:producer:beginrepeat……produceaniteminnextp;wait(mutex);wait(full);buffer(in):=nextp;signal(mutex);untilfalse;endconsumer:beginrepeat……wait(mutex);wait(empty);nextc:=buffer(out);out:=out+1;signal(mutex);consumeiteminnextc;untilfalse;endproducer:duceraniteminnextp;wait(mutex);wait(full);/*應(yīng)為wait(empty),而且還應(yīng)該在wait(mutex)的前面*/buffer(in):=nextp;/*緩沖池?cái)?shù)組游標(biāo)應(yīng)前移:in:=(in+1)modn;*/signal(mutex);/*signal(full);*/untilfalse;endconsumer:beginrepeatwait(mutex);wait(empty);/*應(yīng)為wait(full),而且還應(yīng)該在wait(mutex)的前面*/nextc:=buffer(out);out:=out+1;/*考慮循環(huán),應(yīng)改為:out:=(out+1)modn;*/signal(mutex);/*signal(empty);*/consumeriteminnextc;untilfalse;end27、試?yán)糜涗浶托盘柫繉懗鲆粋€(gè)不會出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問題的算法。P61答:Varchopstick:array[o,…,4]ofsemaphore;所有信號量均被初始化為1,第i位哲學(xué)家的活動(dòng)可描述為:RepeatWait(chopstick[i]);Wait(chopstick[(i+1)mod5]);...Eat;...Signal(chopstick[i]);Signal(chopstick[(i+1)mod5])Eat;...Think;Untilfalse;28.在測量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù)時(shí),把所采集的數(shù)據(jù)送往一單緩沖區(qū);計(jì)算任務(wù)從該單緩沖區(qū)中取出數(shù)據(jù)進(jìn)行計(jì)算。試寫出利用信號量機(jī)制實(shí)現(xiàn)兩任務(wù)共享單緩沖區(qū)的同步算法。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.畫圖說明管程由哪幾部分組成,為什么要引入條件變量?答:管程由四部分組成:①管程的名稱;②局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明;③對該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程;④對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語句;當(dāng)一個(gè)進(jìn)程調(diào)用了管程,在管程中時(shí)被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期間,如果該進(jìn)程不釋放管程,則其它進(jìn)程無法進(jìn)入管程,被迫長時(shí)間地等待。為了解決這個(gè)問題,引入了條件變量condition。30.如何利用管程來解決生產(chǎn)者與消費(fèi)者問題?答:首先建立一個(gè)管程,命名為ProclucerConsumer,包括兩個(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í),表示緩沖池中已無可取的產(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)者問題時(shí),其中的生產(chǎn)者和消費(fèi)者可描述為:producer:beginpepeatproduceanineminnestpPC.put(item);untilfalse;endconsumer:beginrepeatPC.get(item);consumetheiteminenxtc;untilfalse;end31.什么是AND信號量?試?yán)肁ND信號量寫出生產(chǎn)者一消費(fèi)者問題的解法。答:為解決并行帶來的死鎖問題,在wait操作中引入AND條件,其基本思想是將進(jìn)程在整個(gè)運(yùn)行過程中所需要的所有臨界資源,一次性地全部分配給進(jìn)程,用完后一次性釋放。解決生產(chǎn)者-消費(fèi)者問題可描述如下: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.什么是信號量集?試?yán)眯盘柫考瘜懗鲎x者一寫者問題的解法。答:對AND信號量加以擴(kuò)充,形成的信號量集合的讀寫機(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);untilfalseendparendend.試比較進(jìn)程間的低級通信工具與高級通信工具.P65用戶用低級通信工具實(shí)現(xiàn)進(jìn)程通信很不方便,因?yàn)槠湫实停ㄐ艑τ脩舨煌该?,所有的操作都必須由程序員來實(shí)現(xiàn),而高級通信工具則可彌補(bǔ)這些缺陷,用戶可直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量的數(shù)據(jù)。34、當(dāng)前有哪幾種高級通信機(jī)制?(P65)【解】共享存儲器系統(tǒng),消息傳遞系統(tǒng),管道通信系統(tǒng)。35.消息隊(duì)列通信機(jī)制有哪幾方面的功能?答:(1)構(gòu)成消息(2)發(fā)送消息(3)接收梢息(4)互斥與同步。36.為什么要在OS中引入線程?P72在OS中引入進(jìn)程的目的,是為了使多個(gè)程序能并發(fā)執(zhí)行,以提高資源利用率和系統(tǒng)吞吐量。在OS中再引入線程,則是為了減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開銷,使OS具有更好的并發(fā)性。37.試說明線程具有哪些屬性?答:(1)輕型實(shí)體(2)獨(dú)立調(diào)度和分派的基本單位(3)可并發(fā)執(zhí)行(4)共享進(jìn)程資源。38.試從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開銷方面對進(jìn)程和線程進(jìn)行比較.P72-73a.調(diào)度性。在傳統(tǒng)的操作系統(tǒng)中,擁有資源的基本單位和獨(dú)立調(diào)度、分派的基本單位都是進(jìn)程,在引入線程的OS中,則把線程作為調(diào)度和分派的基本單位,而把進(jìn)程作為資源擁有的基本單位;b.并發(fā)性。在引入線程的OS中,不僅進(jìn)程之間可以并發(fā)執(zhí)行,而且在一個(gè)進(jìn)程中的多個(gè)線程之間,亦可并發(fā)執(zhí)行,因而使OS具有更好的并發(fā)性;c.擁有資源。無論是傳統(tǒng)的操作系統(tǒng),還是引入了線程的操作系統(tǒng),進(jìn)程始終是擁有資源的一個(gè)基本單位,而線程除了擁有一點(diǎn)在運(yùn)行時(shí)必不可少的資源外,本身基本不擁有系統(tǒng)資源,但它可以訪問其隸屬進(jìn)程的資源;d.開銷。由于創(chuàng)建或撤銷進(jìn)程時(shí),系統(tǒng)都要為之分配和回收資源,如內(nèi)存空間等,進(jìn)程切換時(shí)所要保存和設(shè)置的現(xiàn)場信息也要明顯地多于線程,因此,操作系統(tǒng)在創(chuàng)建、撤消和切換進(jìn)程時(shí)所付出的開銷將顯著地大于線程。39.為了在多線程OS中實(shí)現(xiàn)進(jìn)程之間的同步與通信,通常提供了哪幾種同步機(jī)制?答:同步功能可以控制程序流并訪問共享數(shù)據(jù),從而并發(fā)執(zhí)行多個(gè)線程。共有四種同步模型:互斥鎖、讀寫鎖、條件變量和信號。40.用于實(shí)現(xiàn)線程同步的私用信號量和公用信號量之間有何差別?答:1)私用信號量。當(dāng)某線程需利用信號量實(shí)現(xiàn)同一進(jìn)程中各線程之間的同步時(shí),可調(diào)用創(chuàng)建信號量的命令來創(chuàng)建一個(gè)私用信號量,其數(shù)據(jù)結(jié)構(gòu)存放在應(yīng)用程序的地址空間中。(2)公用信號量。公用信號量是為實(shí)現(xiàn)不同進(jìn)程間或不同進(jìn)程中各線程之間的同步而設(shè)置的。其數(shù)據(jù)結(jié)構(gòu)是存放在受保護(hù)的系統(tǒng)存儲區(qū)中,由OS為它分配空間并進(jìn)行管理。41.何謂用戶級線程和內(nèi)核支持線程?答:(1)用戶級線程:僅存在于用戶空間中的線程,無須內(nèi)核支持。這種線程的創(chuàng)建、撤銷、線程間的同步與通信等功能,都無需利用系統(tǒng)調(diào)用實(shí)現(xiàn)。用戶級線程的切換通常發(fā)生在一個(gè)應(yīng)用進(jìn)程的諸多線程之間,同樣無需內(nèi)核支持。(2)內(nèi)核支持線程:在內(nèi)核支持下運(yùn)行的線程。無論是用戶進(jìn)程中的線程,還是系統(tǒng)線程中的線程,其創(chuàng)建、撤銷和切換等都是依靠內(nèi)核,在內(nèi)核空間中實(shí)現(xiàn)的。在內(nèi)核空間里還為每個(gè)內(nèi)核支持線程設(shè)置了線程控制塊,內(nèi)核根據(jù)該控制塊感知某線程的存在并實(shí)施控制。42.試說明用戶級線程的實(shí)現(xiàn)方法。答:用戶級線程是在用戶空間中的實(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í),也應(yīng)回收線程的所有資源和TCB。補(bǔ)充題:PPT補(bǔ)充題:1、設(shè)有一售票廳,并規(guī)定在廳內(nèi)購票的人數(shù)不得超過20人,如果廳內(nèi)購票人數(shù)少于20人,則允許進(jìn)入。如果廳內(nèi)人數(shù)正好是20人,則必須在廳外等候,試問:(1)這是一個(gè)同步問題,還是互斥問題?(2)用P、V操作寫出購票者的有關(guān)程序。(3)信號量的初值是多少?答:(1)互斥共享資源:售票廳(2)beginmutex:=20cobegin購票者進(jìn)程Pi(i=1,2,…)beginP(mutex);Enter;Buyticket;Leave;V(mutex);EndCoendEnd;(3)mutex:=202、取放水果問題:桌上有一個(gè)盤子,可以放一個(gè)水果。父親可以放蘋果,也可以放香蕉到盤中。兒子專等吃盤中的香蕉,女兒專等吃盤中的蘋果。用信號量及其操作解決上述問題。答:分析:1)3個(gè)進(jìn)程互斥:盤子是臨界資源mutex:=12)同步:empty=1;apple:=0banana:=0第三章1、高級調(diào)度與低級調(diào)度的主要任務(wù)是什么?為什么要引入中級調(diào)度?P84P86P87答:高級調(diào)度其主要功能是根據(jù)某種算法,把外存上處于后備隊(duì)列中的那些作業(yè)調(diào)入內(nèi)存,也就是說,它的調(diào)度對象是作業(yè)。低級調(diào)度其主要功能是保存處理機(jī)的現(xiàn)場信息;按某種算法先取進(jìn)程;把處理器分配給進(jìn)程。中級調(diào)度:引入中級調(diào)度的主要目的的為了提高內(nèi)存利用率和系統(tǒng)吞吐量。為此,應(yīng)使那些暫時(shí)不能運(yùn)行的進(jìn)程不再占用寶貴的內(nèi)存資源,而將它們調(diào)至外存上去等待,把此時(shí)的進(jìn)程狀態(tài)稱為就緒駐外存狀態(tài)或掛起狀態(tài)。2、何謂作業(yè)、作業(yè)步和作業(yè)流?P84答:作業(yè):作業(yè)是一個(gè)比程序更為廣泛的概念,它不僅包含了通常的程序和數(shù)據(jù),而且還應(yīng)配有一份作業(yè)說明書,系統(tǒng)根據(jù)該說明書來對程度的運(yùn)行進(jìn)行控制。在批處理系統(tǒng)中,是以作業(yè)為基本單位從外存調(diào)入內(nèi)存的。作業(yè)步:通常,在作業(yè)運(yùn)行期間,每個(gè)作業(yè)都必須經(jīng)過若干個(gè)相對獨(dú)立,又相互關(guān)聯(lián)的順序加工步驟才能得到結(jié)果。作業(yè)流:若干個(gè)作業(yè)進(jìn)入系統(tǒng)后,被依次存放在外存上,這便形成了輸入的作業(yè)流;在操作系統(tǒng)的控制下,逐個(gè)作業(yè)進(jìn)程處理,于是便形成了處理作業(yè)流。3、在什么情況下需要使用作業(yè)控制塊JCB?其中包含了哪些內(nèi)容?P85答:為了管理和調(diào)度作業(yè),在多道批處理系統(tǒng)中為每個(gè)作業(yè)設(shè)置了一個(gè)作業(yè)控制塊。在JCB中所包含的內(nèi)容因系統(tǒng)而異,通常應(yīng)包含的內(nèi)容有:作業(yè)標(biāo)識、用戶名稱、用戶帳戶、作業(yè)類型(CPU繁忙型、I/O繁忙型、批量型、終端型)、作業(yè)狀態(tài)、調(diào)度信息(優(yōu)先級、作業(yè)已運(yùn)行時(shí)間)、資源需求(預(yù)計(jì)運(yùn)行時(shí)間、要求內(nèi)存大小、要求I/O設(shè)備的類型和數(shù)量等)、進(jìn)入系統(tǒng)時(shí)間、開始處理時(shí)間、作業(yè)完成時(shí)間、作業(yè)退出時(shí)間、資源使用情況等。4、在作業(yè)調(diào)度中應(yīng)如何確定接納多少個(gè)作業(yè)和接納哪些作業(yè)?P85答:作業(yè)調(diào)度每次要接納多少個(gè)作業(yè)進(jìn)入內(nèi)存,取決于多道程序度,即允許多少個(gè)作業(yè)同時(shí)在內(nèi)存中運(yùn)行。應(yīng)將哪些作業(yè)從外存調(diào)入內(nèi)存,這將取決于所采用的調(diào)度算法。最簡單的是先來先服務(wù)調(diào)度算法,這是把將最早進(jìn)入外存的作業(yè)最先調(diào)入內(nèi)存;較常用的一種算法是短作業(yè)優(yōu)先調(diào)度算法,是將外存上最短的作業(yè)最先調(diào)入內(nèi)存;另一個(gè)較常的是基于作業(yè)優(yōu)先級的調(diào)度算法,該算法是將外存上優(yōu)先級最高的作業(yè)優(yōu)先調(diào)入內(nèi)存;5、試說明低級調(diào)度的主要功能。P86答:1、保存處理機(jī)的現(xiàn)場信息:在進(jìn)程調(diào)度進(jìn)行調(diào)度時(shí),道先需要保存當(dāng)前進(jìn)程的處理機(jī)的現(xiàn)場信息,將它們送入該進(jìn)程的進(jìn)程控制塊(PCB)中的相應(yīng)單元。2、按某種算法選取進(jìn)程:低級調(diào)度程序按某種算法如優(yōu)先數(shù)算法、輪轉(zhuǎn)法等,從就緒隊(duì)列中選取一個(gè)進(jìn)程,把它的狀態(tài)改為運(yùn)行狀態(tài),并準(zhǔn)備把處理機(jī)分配給它。3、把處理器分配給進(jìn)程:由分派程序把處理器分配給進(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)行。6、在搶占調(diào)度方式中,搶占的原則是什么?P87答:搶占調(diào)度方式是1、優(yōu)先權(quán)原則:通常是對一些重要的和緊急的作業(yè)賦予較高的優(yōu)先權(quán)。2、短作業(yè)(進(jìn)程)優(yōu)先原則:當(dāng)新到達(dá)的作業(yè)(進(jìn)程)比正在執(zhí)行的作業(yè)(進(jìn)程)明顯的短時(shí),將輕暫停當(dāng)前長作業(yè)(進(jìn)程)的執(zhí)行,將處理機(jī)分配給新到的短作業(yè)(進(jìn)程),使之優(yōu)先執(zhí)行;或者說,短作業(yè)(進(jìn)程)或以搶占當(dāng)前較長作業(yè)(進(jìn)程)的處理機(jī)。時(shí)間片原則:各進(jìn)程按時(shí)間片輪流運(yùn)行,當(dāng)一個(gè)時(shí)間片用完后,便停止該進(jìn)程的執(zhí)行而重新進(jìn)行調(diào)度。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)先、多級反饋隊(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)先級?確定靜態(tài)優(yōu)先級的依據(jù)是什么?答:靜態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程時(shí)確定且在進(jìn)程的整個(gè)運(yùn)行期間保持不變的優(yōu)先級。動(dòng)態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程時(shí)賦予的優(yōu)先權(quán),可以隨進(jìn)程推進(jìn)或隨其等待時(shí)間增加而改變的優(yōu)先級,可以獲得更好的調(diào)度性能。確定進(jìn)程優(yōu)先級的依據(jù):進(jìn)程類型、進(jìn)程對資源的需求和用戶要求。10.試比較FCFS和SPF兩種進(jìn)程調(diào)度算法相同點(diǎn):兩種調(diào)度算法都是既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度;不同點(diǎn):FCFS調(diào)度算法每次調(diào)度都是從后備隊(duì)列中選擇一個(gè)或是多個(gè)最先進(jìn)入該隊(duì)列的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源,創(chuàng)建進(jìn)程,然后插入到就緒隊(duì)列中。該算法有利于長作業(yè)/進(jìn)程,不利于短作業(yè)/進(jìn)程。SPF調(diào)度算法每次調(diào)度都是從后備隊(duì)列中選擇一個(gè)或若干個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),將它們調(diào)入內(nèi)存中運(yùn)行。該算法有利于短作業(yè)/進(jìn)程,不利于長作業(yè)/進(jìn)程。11.在時(shí)間片輪轉(zhuǎn)法中,應(yīng)如何確定時(shí)間片的大???答:時(shí)間片應(yīng)略大于一次典型的交互需要的時(shí)間。一般應(yīng)考慮三個(gè)因素:系統(tǒng)對相應(yīng)時(shí)間的要求、就緒隊(duì)列中進(jìn)程的數(shù)目和系統(tǒng)的處理能力。12.通過一個(gè)例子來說明通常的優(yōu)先級調(diào)度算法不能適用于實(shí)時(shí)系統(tǒng)?答:實(shí)時(shí)系統(tǒng)的調(diào)度算法很多,主要是基于任務(wù)的開始截止時(shí)間和任務(wù)緊急/松弛程度的任務(wù)優(yōu)先級調(diào)度算法,通常的優(yōu)先級調(diào)度算法不能滿足實(shí)時(shí)系統(tǒng)的調(diào)度實(shí)時(shí)性要求而不適用。13.為什么說多級反饋隊(duì)列調(diào)度算法能較好地滿足各方面用戶的需求?答:(1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在第一隊(duì)列規(guī)定的時(shí)間片內(nèi)完成,終端作業(yè)用戶就會感到滿足。(2)短批處理作業(yè)用戶,開始時(shí)像終端型作業(yè)一樣,如果在第一隊(duì)列中執(zhí)行一個(gè)時(shí)間片段即可完成,便可獲得與終端作業(yè)一樣的響應(yīng)時(shí)間。對于稍長作業(yè),通常只需在第二和第三隊(duì)列各執(zhí)行一時(shí)間片即可完成,其周轉(zhuǎn)時(shí)間仍然較短。(3)長批處理作業(yè),它將依次在第1,2,…,n個(gè)隊(duì)列中運(yùn)行,然后再按輪轉(zhuǎn)方式運(yùn)行,用戶不必?fù)?dān)心其作業(yè)長期得不到處理。所以,多級反饋隊(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)度算法分為哪幾種?按調(diào)度方式不同,可分為非搶占調(diào)度算法和搶占調(diào)度算法兩種。18、何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?P103P103P105答:所謂死鎖是指多個(gè)進(jìn)程在運(yùn)行過程中因爭奪資源而造成的一種僵局,當(dāng)進(jìn)程處于這種僵持狀態(tài)時(shí),若無外力作用,它們都將無法再向前推進(jìn)。產(chǎn)生死鎖的原因?yàn)楦偁庂Y源和進(jìn)程間推進(jìn)順序非法。其必要條件為互斥條件,請求和保持條件,不剝奪條件,環(huán)路等待條件。19、解決死鎖問題的幾個(gè)方法中,哪種方法最易于實(shí)現(xiàn)?哪種方法使資源利用率高?P105P106答:預(yù)防死鎖;解除死鎖;20、請?jiān)敿?xì)說明可通過哪些途徑預(yù)防死鎖。P106答:1、摒棄“請求和保持”條件:在采用這種方法時(shí),系統(tǒng)規(guī)定所有進(jìn)程在開始運(yùn)行之前,都必須一次性地申請其在整個(gè)運(yùn)行過程所需的全部資源。此時(shí),若系統(tǒng)有足夠的資源分配給某進(jìn)程,便可把其需要的所有資源分配給該進(jìn)程,這樣,該進(jìn)程在整個(gè)運(yùn)行期間便不會再提出資源要求,從而摒棄了請求條件。2、摒棄“不剝奪”條件:在采用這種方法時(shí)系統(tǒng)規(guī)定,進(jìn)程是逐個(gè)地提出對資源的要求的。當(dāng)一個(gè)已經(jīng)保持了某些資源的進(jìn)程,再提出新的資源請求而不能立即得到滿足時(shí),必須釋放它已經(jīng)保持了的所有資源,等以后需要時(shí)再重新申請。這意味著某一進(jìn)程已經(jīng)占有的資源,在運(yùn)行進(jìn)程中會被暫時(shí)地釋放掉,也可認(rèn)為是被剝奪了,從而摒棄了“不剝奪”條件。3、摒棄“環(huán)路等待”條件:在這種方法中規(guī)定,系統(tǒng)將所有資源按類型進(jìn)行線性排隊(duì),并賦予不同的序號。所有進(jìn)程對資源的請求必須嚴(yán)格按照資源序號遞增的次序提出,這樣,在所形成的資源分配圖中,不可能再出現(xiàn)環(huán)路,因而摒棄了“環(huán)路等待”條件。21、在銀行家算法的例子中,如果P0發(fā)出的請求向量由Request(0,2,0)改為Request(0,1,0),問系統(tǒng)可否將資源分配給它?可以.首先,Request0(0,1,0)<=Need0(7,4,3),Request0(0,1,0)<=Available(2,3,0);分配后可修改得一資源數(shù)據(jù)表(表略),進(jìn)行安全性檢查,可以找到一個(gè)安全序列{P1,P4,P3,P2,P0},或{P1,P4,P3,P0,P2},因此,系統(tǒng)是安全的,可以立即將資源分配給P0.22.在銀行家算法中,若出現(xiàn)下述資源分配情:ProcessAllocationNeedAvailableP0003200121622P110001750P213542356P303320652P400140656試問:⑴該狀態(tài)是否安全?⑵若進(jìn)程P2提出請求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?⑴該狀態(tài)是安全的,因?yàn)榇嬖谝粋€(gè)安全序列<P0P3P4P1P2>。下表為該時(shí)刻的安全序列表。資源情況進(jìn)程WorkNeedAllocationWork+AllocationFinishP0P3P4P1P2162216541987199112991100120652065617502356003203330014100013541654198719911299113121417truetruetruetruetrue⑵若進(jìn)程P2提出請求Request(1,2,2,2)后,系統(tǒng)不能將資源分配給它,若分配給進(jìn)程P2,系統(tǒng)還剩的資源情況為(0,4,0,0),此時(shí)系統(tǒng)中的資源將無法滿足任何一個(gè)進(jìn)程的資源請求,從而導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),容易引起死鎖的發(fā)生。PPT補(bǔ)充題:有一個(gè)具有兩道作業(yè)的批處理系統(tǒng),作業(yè)調(diào)度采用短作業(yè)優(yōu)先的調(diào)度算法,進(jìn)程調(diào)度采用以優(yōu)先級為基礎(chǔ)的搶占式調(diào)度算法,有如表所示的作業(yè)序列(所列作業(yè)優(yōu)先數(shù)即為進(jìn)程優(yōu)先數(shù),數(shù)值越小優(yōu)先級越高)(1)列出所有作業(yè)進(jìn)入內(nèi)存時(shí)間及結(jié)束時(shí)間(2)計(jì)算平均周轉(zhuǎn)時(shí)間作業(yè)到達(dá)時(shí)間估計(jì)運(yùn)行時(shí)間優(yōu)先數(shù)A10:0040分鐘5B10:2030分鐘3C10:3050分鐘4D10:5020分鐘6分析:1)經(jīng)歷兩級調(diào)度:作業(yè)調(diào)度和進(jìn)程調(diào)度。只有在作業(yè)調(diào)度程序?qū)⒆鳂I(yè)裝入內(nèi)存后,在內(nèi)存的作業(yè)才能參與進(jìn)程調(diào)度;2)調(diào)度算法;3)批處理系統(tǒng)是兩道作業(yè)系統(tǒng),即內(nèi)存中最多允許有兩道作業(yè);4)作業(yè)執(zhí)行情況(1)所有作業(yè)進(jìn)入內(nèi)存的時(shí)間及結(jié)束時(shí)間作業(yè)進(jìn)入內(nèi)存時(shí)間結(jié)束時(shí)間A10:0011:10B10:2010:50C11:1012:00D10:5012:20(2)各作業(yè)執(zhí)行的周轉(zhuǎn)時(shí)間作業(yè)i周轉(zhuǎn)時(shí)間Ti=作業(yè)i完成時(shí)間-作業(yè)i提交時(shí)間=作業(yè)i運(yùn)行時(shí)間+作業(yè)i等待時(shí)間作業(yè)平均周轉(zhuǎn)時(shí)間T=(T1+T2+…+Tn)/n作業(yè)A=70m作業(yè)B=30m作業(yè)C=90m作業(yè)D=90m作業(yè)平均周轉(zhuǎn)時(shí)間=70m(3)各作業(yè)帶權(quán)周轉(zhuǎn)時(shí)間及作業(yè)平均帶權(quán)周轉(zhuǎn)時(shí)間作業(yè)i帶權(quán)周轉(zhuǎn)時(shí)間wi=作業(yè)I周轉(zhuǎn)時(shí)間Ti/作業(yè)i運(yùn)行時(shí)間作業(yè)平均帶權(quán)周轉(zhuǎn)時(shí)間W=(W1+W2+…+Wn)/n第四章1.為什么要配置層次式存儲器?這是因?yàn)椋篴.設(shè)置多個(gè)存儲器可以使存儲器兩端的硬件能并行工作。b.采用多級存儲系統(tǒng),特別是Cache技術(shù),這是一種減輕存儲器帶寬對系統(tǒng)性能影響的最佳結(jié)構(gòu)方案。c.在微處理機(jī)內(nèi)部設(shè)置各種緩沖存儲器,以減輕對存儲器存取的壓力。增加CPU中寄存器的數(shù)量,也可大大緩解對存儲器的壓力。2、可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場合?P119答:1、絕對裝入方式:絕對裝入方式只能將目標(biāo)模塊裝入到內(nèi)存中事先指定的位置。在多道程序環(huán)境下,編譯程序不可能預(yù)知所編譯的目標(biāo)模塊應(yīng)放在內(nèi)存的何處,困此,絕對裝入方式只適用于單道程序環(huán)境。2、可重定位裝入方式:在多道程序環(huán)境下,所得到的目標(biāo)模塊的起始地址通常是從0開始的,程序中的其它地址也都是相對于起始地址計(jì)算的。此時(shí)應(yīng)采用可重定位裝入方式,根據(jù)內(nèi)存的當(dāng)前情況,將裝入模塊裝入到內(nèi)存的適當(dāng)位置。3、動(dòng)態(tài)運(yùn)行時(shí)裝入方式:可重定位裝入方式可將裝入模塊裝入到內(nèi)存中任何允許的位置,故可用于多道程序環(huán)境;但這種方式并不允許程序運(yùn)行時(shí)在內(nèi)存中移動(dòng)位置。3、何謂靜態(tài)鏈接?何謂裝入時(shí)動(dòng)太鏈接和運(yùn)行時(shí)的動(dòng)態(tài)鏈接?P120答:1、靜態(tài)鏈接:在程序運(yùn)行之前,先將各目標(biāo)模塊及它們所需的庫函數(shù),鏈接成一個(gè)完整的裝配模塊,以后不再拆開,我們把這種事先進(jìn)行鏈接的方式稱為靜態(tài)鏈接方式.2、裝入時(shí)動(dòng)態(tài)鏈接:這是指將用戶源程序編譯后所得到的一組目標(biāo)模塊,在裝入內(nèi)存時(shí),采用邊裝入邊鏈接的鏈接方式。3、運(yùn)行時(shí)動(dòng)態(tài)鏈接:這是指對某些目標(biāo)模塊的鏈接,是在程序執(zhí)行中需要該(目標(biāo))模塊時(shí),才對它進(jìn)行的鏈接。4、在進(jìn)行程序鏈接時(shí),應(yīng)完成哪些工作?答:表態(tài)鏈接、裝入時(shí)動(dòng)態(tài)鏈接、運(yùn)行時(shí)動(dòng)態(tài)鏈接;5、在動(dòng)態(tài)分區(qū)分配方式中,應(yīng)如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?P123要畫圖答:為了實(shí)現(xiàn)對空閑分區(qū)的分配和鏈接,在每個(gè)分區(qū)的起始部分,設(shè)置一些用于控制分區(qū)分配的信息,以及用于鏈接各分區(qū)所用的前向指針;在分區(qū)尾部則設(shè)置一后向指針,通過前、后向鏈接指針,可將所有的空閑分區(qū)鏈接成一個(gè)雙向鏈,為了檢索方便,在分區(qū)尾部重復(fù)設(shè)置狀態(tài)位和分區(qū)大小表目。當(dāng)分區(qū)被分配出去以后,把狀態(tài)位由“0”改為“1”,此時(shí),前、后向指針已無意義。6、為什么要引入動(dòng)態(tài)重定位?如何實(shí)現(xiàn)?P127P128答:a.為了在程序執(zhí)行過程中,每當(dāng)訪問指令或數(shù)據(jù)時(shí),將要訪問的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地

址,引入了動(dòng)態(tài)重定位.

b.可在系統(tǒng)中增加一個(gè)重定位寄存器,用它來裝入(存放)程序在內(nèi)存中的起始地址,程序在執(zhí)行時(shí),真

正訪問的內(nèi)存地址是相對地址與重定位寄存器中的地址相加而形成的,從而實(shí)現(xiàn)動(dòng)態(tài)重定位.9.分區(qū)存儲管理中常采用哪些分配策略?比較它們的優(yōu)缺點(diǎn)。固定分區(qū)優(yōu)點(diǎn):簡單;缺點(diǎn):限制了活動(dòng)進(jìn)城的數(shù)目;存儲空間浪費(fèi)嚴(yán)重;內(nèi)存利用率不高動(dòng)態(tài)分區(qū)優(yōu)點(diǎn):克服了固定分區(qū)的不足,提高了內(nèi)存利用率缺點(diǎn):分配算法復(fù)雜;回收時(shí)分區(qū)合并等操作使系統(tǒng)開銷大;存在內(nèi)存“碎片”可重定位分區(qū)優(yōu)點(diǎn):采用“拼接”技術(shù)有效減少了“碎片”,進(jìn)一步提高了內(nèi)存利用率缺點(diǎn):需要有硬件地址變換機(jī)構(gòu)的支持10.在系統(tǒng)中引入對換后可帶來哪些好處?能將內(nèi)存中暫時(shí)不運(yùn)行的進(jìn)程或暫時(shí)不用的程序和數(shù)據(jù),換到外存上,以騰出足夠的內(nèi)存空間,把已具備運(yùn)行條件的進(jìn)程或進(jìn)程所需的程序和數(shù)據(jù)換入內(nèi)存,從而大大地提高了內(nèi)存的利用率。12、在以進(jìn)程為單位進(jìn)行對換時(shí),每次是否都將整個(gè)進(jìn)程換出?為什么?P129答:a.以進(jìn)程為單位進(jìn)行對換時(shí),每次都將整個(gè)進(jìn)程換出;

b.目的為了解決內(nèi)存緊張的問題,提高內(nèi)存的利用率.13、為實(shí)現(xiàn)分頁存儲管理,需要哪些硬件支持?P144答:需要一臺具有一定容量的內(nèi)存及外存的計(jì)算機(jī)系統(tǒng)外,頁表機(jī)制、缺頁中斷機(jī)構(gòu)以及地址變換機(jī)構(gòu)。14、較詳細(xì)地說明引入分段存儲管理是為了滿足用戶哪幾方面的需要。P135答:方便編程、信息共享、信息保護(hù)、動(dòng)態(tài)增長、動(dòng)態(tài)鏈接。16.為什么說分段系統(tǒng)較之分頁系統(tǒng)更易于實(shí)現(xiàn)信息共享和保護(hù)?a.對于分頁系統(tǒng),每個(gè)頁面是分散存儲的,為了實(shí)現(xiàn)信息共享和保護(hù),則頁面之間需要一一對應(yīng)起來,為此需要建立大量的頁表項(xiàng);b.而對于分段系統(tǒng),每個(gè)段都從0開始編址,并采用一段連續(xù)的地址空間,這樣在實(shí)現(xiàn)共享和保護(hù)時(shí),只需為所要共享和保護(hù)的程序設(shè)置一個(gè)段表項(xiàng),將其中的基址與內(nèi)存地址一一對應(yīng)起來即可。17、分頁和分段存儲管理有何區(qū)別?P130P135答:主要表現(xiàn)在(1)頁是信息的物理單位,分頁是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率?;蛘哒f,分頁僅僅是由于系統(tǒng)管理的需要而不是用戶的需要。段則是信息的邏輯單位,它含有一組其意義相對完整的信息。分段的目的是為了能更好地滿足用戶的需要。(2)頁的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁號和頁內(nèi)地址兩部分,是由機(jī)器硬件實(shí)現(xiàn)的,因而在系統(tǒng)中只能有一種大小的頁面;根據(jù)信息的性質(zhì)來劃分。(3)分頁的作業(yè)地址空間是一維的,即單一的線性地址空間,程序員只需利用一個(gè)記憶符,即可表示一個(gè)地址;而分段的作業(yè)地址空間則是二維的,程序員在標(biāo)識一個(gè)地址時(shí),即需給出段名,又需給出段內(nèi)地址。18.試全面比較連續(xù)分配和離散分配方式。a.連續(xù)分配是指為一個(gè)用戶程序分配一個(gè)連續(xù)的地址空間,包括單一連續(xù)分配方式和分區(qū)式分配方式,前者將內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū),系統(tǒng)區(qū)供操作系統(tǒng)使用,用戶區(qū)供用戶使用,是最簡單的一種存儲方式,但只能用于單用戶單任務(wù)的操作系統(tǒng)中;分區(qū)式分配方式分為固定分區(qū)和動(dòng)態(tài)分區(qū),固定分區(qū)是最簡單的多道程序的存儲管理方式,由于每個(gè)分區(qū)的大小固定,必然會造成存儲空間的浪費(fèi);動(dòng)態(tài)分區(qū)是根據(jù)進(jìn)程的實(shí)際需要,動(dòng)態(tài)地為之分配連續(xù)的內(nèi)存空間,常用三種分配算法:首次適應(yīng)算法,該法容易留下許多難以利用的小空閑分區(qū),加大查找開銷;循環(huán)首次適應(yīng)算法,該算法能使內(nèi)存中的空閑分區(qū)分布均勻,但會致使缺少大的空閑分區(qū);最佳適應(yīng)算法,該算法也易留下許多難以利用的小空閑區(qū);b.離散分配方式基于將一個(gè)進(jìn)程直接分散地分配到許多不相鄰的分區(qū)中的思想,分為分頁式存儲管理,分段存儲管理和段頁式存儲管理.分頁式存儲管理旨在提高內(nèi)存利用率,滿足系統(tǒng)管理的需要,分段式存儲管理則旨在滿足用戶(程序員)的需要,在實(shí)現(xiàn)共享和保護(hù)方面優(yōu)于分頁式存儲管理,而段頁式存儲管理則是將兩者結(jié)合起來,取長補(bǔ)短,即具有分段系統(tǒng)便于實(shí)現(xiàn),可共享,易于保護(hù),可動(dòng)態(tài)鏈接等優(yōu)點(diǎn),又能像分頁系統(tǒng)那樣很好的解決外部碎片的問題,以及為各個(gè)分段可離散分配內(nèi)存等問題,顯然是一種比較有效的存儲管理方式;c.綜上可見,連續(xù)分配方式和離散分配方式各有各自的特點(diǎn),應(yīng)根據(jù)實(shí)際情況加以改進(jìn)和利用.19、虛擬存儲器有哪些特征?其中最本質(zhì)的特征是什么?P144答:多次性、對換性、虛擬性;值得說明的是,虛擬性是以多次性和對換性為基礎(chǔ)的,或者說,僅當(dāng)系統(tǒng)允許將作業(yè)分多次調(diào)入內(nèi)存,并能將內(nèi)存中暫時(shí)不運(yùn)行的程序和數(shù)據(jù)換至盤上時(shí),才有可能實(shí)現(xiàn)虛擬存儲器;而多次性和對換性又必須建立在離散分配的基礎(chǔ)上。20.實(shí)現(xiàn)虛擬存儲器需要哪些硬件支持?a.對于為實(shí)現(xiàn)請求分頁存儲管理方式的系統(tǒng),除了需要一臺具有一定容量的內(nèi)存及外存的計(jì)算機(jī)外,還需要有頁表機(jī)制,缺頁中斷機(jī)構(gòu)以及地址變換機(jī)構(gòu);b.對于為實(shí)現(xiàn)請求分段存儲管理方式的系統(tǒng),除了需要一臺具有一定容量的內(nèi)存及外存的計(jì)算機(jī)外,還需要有段表機(jī)制,缺段中斷機(jī)構(gòu)以及地址變換機(jī)構(gòu);21、實(shí)現(xiàn)虛擬存儲器需要幾個(gè)關(guān)鍵技術(shù)?P143答:1、分頁請求系統(tǒng):這是在分頁的基礎(chǔ)上,增加了請求調(diào)頁功能和頁面置換功能所形成的頁式虛擬存儲系統(tǒng)。它允許只裝入少數(shù)頁面的程序(及數(shù)據(jù)),便啟動(dòng)運(yùn)行。2、請求分段系統(tǒng):這是在分段系統(tǒng)的基礎(chǔ)上,增加了請求調(diào)段及分段置換功能后所形成的段式虛擬存儲系統(tǒng)。它允許只裝入少數(shù)段(而非所有的段)的用戶程序和數(shù)據(jù),即可啟動(dòng)運(yùn)行。25.在請求分頁系統(tǒng)中,通常采用哪種頁面分配方式——物理塊分配策略?三種分配方式:固定分配局部置換、可變分配全局置換、可變分配局部置換。26.在一個(gè)請求分頁系統(tǒng)中,采用FIFO頁面置換算法時(shí),假如一個(gè)作業(yè)的頁面走向?yàn)?、3、2、1、4、3、5、4、3、2、1、5,當(dāng)分配給該作業(yè)的物理塊數(shù)M分別為3和4時(shí),試計(jì)算在訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率,并比較所得結(jié)果。432143543215M=3M=4M=3M=4441115553334442222233314444555511333344445222233331111222M=3時(shí),采用FIFO頁面置換算法的缺頁次數(shù)為9次,缺頁率為75%;M=4時(shí),采用FIFO頁面置換算法的缺頁次數(shù)為10次,缺頁率為83%。由此可見,增加分配給作業(yè)的內(nèi)存塊數(shù),反而增加了缺頁次數(shù),提高了缺頁率,這種現(xiàn)象被稱為是Belady現(xiàn)象。28.試說明改進(jìn)型Clock置換算法的基本原理。基本原理:在將一個(gè)頁面換出時(shí),如果該頁已被修改過,便須將該頁重新寫回到磁盤上;但如果該頁未被修改過,則不必將它寫回磁盤上。在改進(jìn)型算法中,除需考慮頁面的使用情況外,還須再增加一個(gè)因素,即置換代價(jià),這樣,選擇頁面換出時(shí),既要是未使用過的頁面,又要是未被修改過的頁面。(PPT答案)因?yàn)閷τ谛薷倪^的頁面在換出時(shí)所付出的開銷比未被修改過的頁面的開銷大,所以在改進(jìn)型clock算法中,除了來要考慮到頁面的使用情況外,還需要考慮到頁面被修改的情況,在選擇頁面作為淘汰頁面時(shí),首先淘汰那些把同時(shí)滿足未使用過和未被修改過的頁面15什么是抖動(dòng)?產(chǎn)生抖動(dòng)的原因是什么?a.抖動(dòng)(Thrashing)就是指當(dāng)內(nèi)存中已無空閑空間而又發(fā)生缺頁中斷時(shí),需要從內(nèi)存中調(diào)出一頁程序或數(shù)據(jù)送磁盤的對換區(qū)中,如果算法不適當(dāng),剛被換出的頁很快被訪問,需重新調(diào)入,因此需再選一頁調(diào)出,而此時(shí)被換出的頁很快又要被訪問,因而又需將它調(diào)入,如此頻繁更換頁面,使得系統(tǒng)把大部分時(shí)間用在了頁面的調(diào)進(jìn)換出上,而幾乎不能完成任何有效的工作,我們稱這種現(xiàn)象為"抖動(dòng)"。b.產(chǎn)生抖動(dòng)的原因是由于CPU的利用率和多道程序度的對立統(tǒng)一矛盾關(guān)系引起的,為了提高CPU利用率,可提高多道程序度,但單純提高多道程序度又會造成缺頁率的急劇上升,導(dǎo)致CPU的利用率下降,而系統(tǒng)的調(diào)度程序又會為了提高CPU利用率而繼續(xù)提高多道程序度,形成惡性循環(huán),我們稱這時(shí)的進(jìn)程是處于"抖動(dòng)"狀態(tài)。3:有一頁式系統(tǒng),其頁表存放在主存中。1)如果對主存的一次存取需要1.5微秒,試問實(shí)現(xiàn)一次頁面訪問時(shí)存取時(shí)間是多少?2)如果系統(tǒng)加有快表,且平均命中率為85%,而頁表項(xiàng)在快表中的查找時(shí)間忽略為0,試問此時(shí)的存取時(shí)間為多少?解:1)1.5*2=3微秒2)1.5*0.85+3*0.15=1.725微秒第五章1、試說明設(shè)備控制器的組成。P163答:設(shè)備控制器的組成由設(shè)置控制器與處理機(jī)的接口;設(shè)備控制器與設(shè)備的接口;I/O邏輯;2、為了實(shí)現(xiàn)CPU與設(shè)備控制器間的通信,設(shè)備控制器應(yīng)具備哪些功能?P162-P163答:基本功能:接收和識別命令;數(shù)據(jù)交換;標(biāo)識和報(bào)告設(shè)備的狀態(tài);地址識別;數(shù)據(jù)緩沖;差錯(cuò)控制;3、什么是字節(jié)多路通道?什么是數(shù)組選擇通道和數(shù)組多路通道?P164-P165答:1、字節(jié)多路通道:這是一種按字節(jié)交叉方式工作的通道。它通常都含有許多非分配型子通道,其數(shù)量可從幾十到數(shù)百個(gè),每個(gè)子通道連接一臺I/O設(shè)備,并控制該設(shè)備的I/O操作。這些子通道按時(shí)間片輪轉(zhuǎn)方式共享主通道。只要字節(jié)多路通道掃描每個(gè)子通道的速率足夠快,而連接到子通道上的設(shè)備的速率不是太高時(shí),便不致丟失信息。2、數(shù)組選擇通道:字節(jié)多路通道不適于連接高速設(shè)備,這推動(dòng)了按數(shù)組方式進(jìn)行數(shù)據(jù)傳送的數(shù)組選擇通道的形成。3、數(shù)組多路通道:數(shù)組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個(gè)設(shè)備數(shù)據(jù)。數(shù)組多路通道是將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道能使各子通道(設(shè)備)分時(shí)并行操作的優(yōu)點(diǎn)相結(jié)合而形成的一種新通道。它含有多個(gè)非分配型子通道,因而這種通道既具有很多高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。4、如何解決因通道不足而產(chǎn)生的瓶頸問題?P166答:解決“瓶頸”問題的最有效的方法,便是增加設(shè)備到主機(jī)間的通路而不增加通道,就是把一個(gè)設(shè)備連接到多個(gè)控制器上,而一個(gè)控制器又連接到多個(gè)通道上。多通路方式不僅解決了“瓶頸”問題。而且提高了系統(tǒng)的可靠性,因?yàn)閭€(gè)別通道或控制器的故障不會使設(shè)備和存儲器之間沒有通路。5、試對VESA及PCI兩種總線進(jìn)行比較。P167答:1、VESA該總線的設(shè)計(jì)思想是以低價(jià)位迅速點(diǎn)領(lǐng)市場。VESA總線的帶寬為32位,最高傳輸速率為132Mb/s。VESA總線仍存在較嚴(yán)重的缺點(diǎn),它所能連接的設(shè)備數(shù)僅為2—4臺,在控制器中無緩沖,故難于適應(yīng)處理器速度的不斷提高,也不能支持后來出現(xiàn)的Pentium微機(jī)。2、PC隨著Pentium系列芯片的推出,PCI在CPU和外設(shè)間插入一復(fù)雜的管理層,用于協(xié)調(diào)數(shù)據(jù)傳輸和提供一致的接口。在管理層中配有數(shù)據(jù)緩沖,通過該緩沖可將線路的驅(qū)動(dòng)能力放大,使PCI最多能支持10種外設(shè),并使高時(shí)鐘頻率的CPU能很好地運(yùn)行,最大傳輸速率可達(dá)132Mb/s。PCI即可連接ISA、EISA等傳統(tǒng)型總線,又可支持Pentium的64位系統(tǒng),是基于奔騰等新一代微處理器而發(fā)展的總線。6、試說明推動(dòng)I/O控制發(fā)展的主要因素是什么?P167答:在I/O控制方式的整個(gè)發(fā)展過程中,始終貫穿著這樣一條宗旨,即盡量減少主機(jī)對I/O控制的干預(yù),把主機(jī)從繁雜的I/O控制事務(wù)中解脫出來,以便更多地去完成數(shù)據(jù)處理任務(wù)。7、有哪幾種I/O控制方式?各適用于何種場合?P167-P170答:1、程序I/O方式:2、中斷驅(qū)動(dòng)I/O控制方式:3、直接存儲器訪問(DMA)I/O控制方式;I/O通道控制方式:????????8、試說明DMA的工程流程。P170圖要畫答:當(dāng)CPU要從磁盤讀入一數(shù)據(jù)塊時(shí),便向磁盤控制器發(fā)送一條讀命令。該命令被送到其中的命令寄存器(CR)中。同時(shí),還須發(fā)送本次要將數(shù)據(jù)讀入的內(nèi)存起始目標(biāo)地址,該地址被送入內(nèi)存地址寄存器(MAR)中;本次要讀數(shù)據(jù)的字(節(jié))數(shù)則送入數(shù)據(jù)計(jì)數(shù)器(DC)中,還須將磁盤中的源地址直接送至DMA控制器的I/O控制邏輯上,然后啟動(dòng)DMA控制器進(jìn)行數(shù)據(jù)傳送,以后CPU便可去處理其它任務(wù)。此后,整個(gè)數(shù)據(jù)傳送過程便由DMA控制器進(jìn)行控制。當(dāng)DMA控制器已從磁盤中讀入一個(gè)字(節(jié))的數(shù)據(jù)送入數(shù)據(jù)寄存器(DR)后,再挪用一個(gè)存儲器周期,將該字(節(jié))傳送到MAR所指示的內(nèi)存單元中。按著便對MAR內(nèi)容加1,將DC內(nèi)容減1.若減1后DC內(nèi)容不為0,表示傳送未完,便繼續(xù)傳送下一個(gè)字(節(jié));否則,由DMA控制器發(fā)出中斷請求。9.引入緩沖的主要原因是什么?操作系統(tǒng)引入緩沖機(jī)制的主要原因可歸結(jié)為以下幾點(diǎn):(1)緩和CPU與I/O設(shè)備間速度不匹配的矛盾;(2)減少對CPU的中斷頻率,放寬對中斷響應(yīng)時(shí)間的限制;(3)提高CPU與I/O設(shè)備之間的并行性。10.在單緩沖情況下,為什么系統(tǒng)對一塊數(shù)據(jù)的處理時(shí)間為max(C,T)+M??在塊設(shè)備輸入時(shí),假定從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū)的時(shí)間為T;操作系統(tǒng)將緩沖區(qū)數(shù)據(jù)傳送給用戶區(qū)的時(shí)間為M;而CPU對這一塊數(shù)據(jù)進(jìn)行計(jì)算得時(shí)間為C。在單緩沖情況下,由于設(shè)備的輸入操作和CPU的處理操作可以并行,所以系統(tǒng)對每一整塊數(shù)據(jù)的處理時(shí)間為max(C,T)+M。11.為什么在雙緩沖情況下,系統(tǒng)對一塊數(shù)據(jù)的處理時(shí)間為max(C,T)?該方式又稱緩沖對換方式,在設(shè)備輸入時(shí),先將數(shù)據(jù)送入第一緩沖區(qū),裝滿后便轉(zhuǎn)向第二緩沖區(qū)。此時(shí)操作系統(tǒng)可以從第一緩沖區(qū)移出數(shù)據(jù),并送入用戶進(jìn)程。接著由CPU對數(shù)據(jù)進(jìn)行計(jì)算。在雙緩沖區(qū)中,不僅設(shè)備的輸入操作和CPU的處理操作可以并行,設(shè)備的輸入操作和數(shù)據(jù)的傳送操作也可以并行,因此耗時(shí)大約為max(C+M,T)。考慮到M是內(nèi)存中數(shù)據(jù)塊的“搬家”耗時(shí),非常短暫可以省略,因此近似地認(rèn)為是:max(C,T)15、為何要引入設(shè)備獨(dú)立性?如何實(shí)現(xiàn)設(shè)備的獨(dú)立

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論