《操作系統(tǒng)原理》(湯小丹)課后答案_第1頁
《操作系統(tǒng)原理》(湯小丹)課后答案_第2頁
《操作系統(tǒng)原理》(湯小丹)課后答案_第3頁
《操作系統(tǒng)原理》(湯小丹)課后答案_第4頁
《操作系統(tǒng)原理》(湯小丹)課后答案_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章操作系統(tǒng)引論

1.設(shè)計(jì)現(xiàn)代OS的主要目標(biāo)是什么?

答:(1)有效性(2)方便性(3)可擴(kuò)充性(4)開放性

2.OS的作用可表現(xiàn)在哪幾個方面?

答:(1)OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口

(2)OS作為計(jì)算機(jī)系統(tǒng)資源的管理者

(3)OS實(shí)現(xiàn)了對計(jì)算機(jī)資源的抽象

3.為什么說OS實(shí)現(xiàn)了對計(jì)算機(jī)資源的抽象?

答:OS首先在裸機(jī)上覆蓋一層I/O設(shè)備管理軟件,實(shí)現(xiàn)了對計(jì)算機(jī)硬件操作的第

一層次抽

象;在第一層軟件上再覆蓋文件管理軟件,實(shí)現(xiàn)了對硬件資源操作的第二層次抽

象。OS通

過在計(jì)算機(jī)硬件上安裝多層系統(tǒng)軟件,增強(qiáng)了系統(tǒng)功能,隱藏了對硬件操作的細(xì)

節(jié)由它們

共高實(shí)現(xiàn)了對計(jì)算機(jī)資源的抽象。

4.試說明推動多道批處理系統(tǒng)形成和發(fā)展的主要動力是什么?

答:主要動力來源于四個方面的社會需求與技術(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.試說明推動分時(shí)系統(tǒng)形成和發(fā)展的主要動力是什么?

答:推動分時(shí)系統(tǒng)形成和發(fā)展的主要動力是更好地滿足用戶的需要。主要表現(xiàn)在:

CPU的

分時(shí)使用縮短了作業(yè)的平均周轉(zhuǎn)時(shí)間;人機(jī)交互能力使用戶能直接控制自己的作

業(yè);主機(jī)的

共享使多用戶能同時(shí)使用同一臺計(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é)果返回給用戶。

解決方法:針對及時(shí)接收問題,可以在系統(tǒng)中設(shè)置多路卡,使主機(jī)能同時(shí)接收用

戶從各個收

端上輸入而數(shù)據(jù);為每個終端配置緩沖區(qū),暫存用戶鍵入的命令或數(shù)據(jù)。針對及

時(shí)處理問題,

應(yīng)使所有的用戶作業(yè)都直接進(jìn)入內(nèi)存,并且為每個作業(yè)分配一個時(shí)間片,允許作

業(yè)只在自己

的時(shí)間片內(nèi)運(yùn)行,這樣在不長的時(shí)間內(nèi),能使每個作業(yè)都運(yùn)行一次。

8.為什么要引入實(shí)時(shí)OS?

答:實(shí)時(shí)操作系統(tǒng)是指系統(tǒng)能及時(shí)響應(yīng)外部事件的請求,在規(guī)定的時(shí)間內(nèi)完成對

該事件的處

理,并控制所有實(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ù)對截止時(shí)間的要求,否則可能出現(xiàn)難以預(yù)

毒例事說;運(yùn)載火箭的控制等。

軟實(shí)時(shí)任務(wù)是指它的截止時(shí)間并不嚴(yán)格,偶爾錯過了任務(wù)的截止時(shí)間,對系統(tǒng)產(chǎn)

生的影

響不大。舉例:網(wǎng)頁內(nèi)容的更新、火車售票系統(tǒng)。

10.試從交互性'及時(shí)性以及可靠性方面,將分時(shí)系統(tǒng)與實(shí)時(shí)系統(tǒng)進(jìn)行比較。

答:(1)交互性:實(shí)時(shí)信息處理系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪

問系統(tǒng)中某

些特定的專用服務(wù)程序。不像分時(shí)系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)和資源共享等

服務(wù)。

(2)及時(shí)性:實(shí)時(shí)信息處理系統(tǒng)對實(shí)時(shí)性的要求與分時(shí)系統(tǒng)類似,都是以人所

能接受

的等待時(shí)間來確定;而實(shí)時(shí)控制系統(tǒng)的及時(shí)性,是以控制對象所要求的開始截止

時(shí)間或完成

截止時(shí)間來確定的,一般為秒級到毫秒級,甚至有的要低于100微妙。

(3)可靠性:分時(shí)系統(tǒng)也要求系統(tǒng)可靠,但相比之下,實(shí)時(shí)系統(tǒng)則要求系統(tǒng)具

有高度

的可靠性。因?yàn)槿魏尾铄e都可能帶來巨大的經(jīng)濟(jì)損失,甚至是災(zāi)難性后果,所以

在實(shí)時(shí)系統(tǒng)

中,往往都采取了多級容錯措施保障系統(tǒng)的安全性及數(shù)據(jù)的安全性。

11.0S有哪幾大特征?其最基本的特征是什么?

答:并發(fā)性'共享性、虛擬性和異步性四個基本特征;最基本的特征是并發(fā)性。

12.在多道程序設(shè)計(jì)的0S環(huán)境下的資源共享與一般情況下的資源共享有何不

同?對獨(dú)占資源應(yīng)采取何種方式?

一般情況下的資源共享只要通過適當(dāng)?shù)陌才?,用戶之間并不會產(chǎn)生對資源的

競爭。在0S環(huán)境下的資源共享是指系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進(jìn)

程共同使用。

解決的方法:1.互斥共享方式。2.同時(shí)訪問方式

13、什么是時(shí)分復(fù)用技術(shù)?

答:時(shí)分復(fù)用技術(shù),將資源在不同的時(shí)間片內(nèi)分配給各種進(jìn)程使該資源被重復(fù)

利用,從而提高資源的利用率。如果采用時(shí)分復(fù)用技術(shù)的虛擬處理機(jī),能夠在不

同的時(shí)間片內(nèi)處理多個用戶的請求,從而使得用戶感覺自己獨(dú)占主機(jī),而處理機(jī)

在這期間內(nèi)也被充分的利用。

14、是什么原因使操作系統(tǒng)具有異步性?

答:操作系統(tǒng)的異步性體現(xiàn)在三個方面:一是進(jìn)程的異步性,進(jìn)程以人們不可預(yù)

知的速度向前推進(jìn)。二是程序的不可再現(xiàn)性,即程序執(zhí)行的結(jié)果有時(shí)是不確定的,

即每個程序何時(shí)執(zhí)行,執(zhí)行順序以及完成數(shù)據(jù)是不確定的。

15.處理機(jī)管理有哪些主要功能?它們的主要任務(wù)是什么?

答:處理機(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)程同步:為多個進(jìn)程(含線程)的運(yùn)行進(jìn)行協(xié)調(diào)。

進(jìn)程通信:用來實(shí)現(xiàn)在相互合作的進(jìn)程之間的信息交換。

處理機(jī)調(diào)度:

(1)作業(yè)調(diào)度。從后備隊(duì)里按照一定的算法,選出若干個作業(yè),為他們分配運(yùn)

行所需

的斐源(首選是分配內(nèi)存)。

(2)進(jìn)程調(diào)度:從進(jìn)程的就緒隊(duì)列中,按照一定算法選出一個進(jìn)程,把處理機(jī)

分配給

它,并設(shè)置運(yùn)行現(xiàn)場,使進(jìn)程投入執(zhí)行。

16、內(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)存空間與對應(yīng)的物理地址。

內(nèi)存擴(kuò)充:用于實(shí)現(xiàn)請求調(diào)用功能,置換功能等。

17、設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?

答:主要功能有:緩沖管理、設(shè)備分配和設(shè)備處理以及虛擬設(shè)備等。

主要任務(wù):完成用戶提出的1\0請求,為用戶分配1\0設(shè)備;提高CPU和1\0設(shè)備的

利用率;提高|\0速度;以及方便用戶使用1\0設(shè)備。

18.文件管理有哪些主要功能?其主要任務(wù)是什么?

答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀'寫管理和

保護(hù)。文件管理的主要任務(wù):管理用戶文件和系統(tǒng)文件,方便用戶使用,保證

文件安全性。

19.試說明推動傳統(tǒng)OS演變?yōu)楝F(xiàn)在OS的主要因素是什么?

答:系統(tǒng)安全、網(wǎng)絡(luò)的功能和服務(wù)、支持多媒體。

20、什么是微內(nèi)核OS

答:足夠小的內(nèi)核;基于客戶'服務(wù)器模式;應(yīng)用機(jī)制與策略分離原理;采用面

向?qū)ο蠹夹g(shù);

21、微內(nèi)核的操作系統(tǒng)有哪些優(yōu)點(diǎn)?它為何能有這些優(yōu)點(diǎn)?

答;1.提高了系統(tǒng)的可擴(kuò)展性;

2.增強(qiáng)了系統(tǒng)的可靠性;

3.可移植性;

4.易于改編應(yīng)用軟件。

22、現(xiàn)代操作系統(tǒng)較之傳統(tǒng)操作系統(tǒng)又增強(qiáng)了哪些功能和特征?

答:進(jìn)程管理、低級存儲器管理、中斷和陷入處理。

23、在微內(nèi)核0S中,為什么要采用客戶'服務(wù)器模式?

答:C\s有獨(dú)特的優(yōu)點(diǎn):

1、數(shù)據(jù)的分布和存儲;

2、便于集中管理;

3、靈活性和可擴(kuò)充性;

4、易于改編應(yīng)用軟件。

24、在基于微內(nèi)核結(jié)構(gòu)的0S中,應(yīng)用了哪些技術(shù)?

答:在基于微內(nèi)核的0S中采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)。

25、何謂微內(nèi)核技術(shù)?在微內(nèi)核中通常提供了哪些功能?

答:把操作系統(tǒng)中更多的成分和功能放到更高的層次(即用戶模式)中去運(yùn)行,

而留下一個盡量小的內(nèi)核,用它來完成操作系統(tǒng)最基本的核心功能,稱這種技術(shù)

為微內(nèi)核技術(shù),在微內(nèi)核中通常提供了進(jìn)程管理,低級存儲器管理,中斷和陷入

處理等功能

26、模塊接口法存在哪些問題?可通過什么樣的途徑來解決?

答:(1)模塊接口法存在的問題:①在0S設(shè)計(jì)時(shí),各模塊間的接口規(guī)定很難滿

足在模塊完成后對接口的實(shí)際需求。②在0S設(shè)計(jì)階段,設(shè)計(jì)者必須做出一系

列的決定,每一個決定必須建立在上一個決定的基礎(chǔ)上。但模塊化結(jié)構(gòu)設(shè)計(jì)的各

模塊設(shè)計(jì)齊頭并進(jìn),無法尋找可靠的順序,造成各種決定的無序性,使程序設(shè)計(jì)

人員很難做到設(shè)計(jì)中的每一步?jīng)Q定都建立在可靠的基礎(chǔ)上,因此模塊接口法被稱

為“無序模塊法”。

(2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。

27.試列出WindowsOS中五個主要版本,并說明它們分別較之前一個版本

有何改辿。

答(1)MicrosoftWindows1.0是微軟公司在個人電腦上開發(fā)圖形界面的首次

嘗試。

(2)Windows95是混合的16位/32位系統(tǒng),第一個支持32位。帶來了更強(qiáng)大、

更穩(wěn)定'更實(shí)用的桌面圖形用戶界面,結(jié)束了桌面操作系統(tǒng)間的競爭。

(3)Windows98是微軟公司的混合16位/32位Windows操作系統(tǒng),改良了硬

件標(biāo)準(zhǔn)的支持,革新了內(nèi)存管理,是多進(jìn)程操作系統(tǒng)。

(4)WindowsXP是基于Windows2000的產(chǎn)品,擁有新用戶圖形界面月神Luna。

簡化了用戶安全特性,整合了防火墻。

(5)WindowsVista包含了上百種新功能;特別是新版圖形用戶界面和

WindowsAero全新界面風(fēng)格、加強(qiáng)的搜尋功能(WindowsIndexingService)x

新媒體創(chuàng)作工具以及重新設(shè)計(jì)的網(wǎng)絡(luò)'音頻、輸出(打印)和顯示子系統(tǒng)。

28.在8位微機(jī)和16位微機(jī)中,占據(jù)了統(tǒng)治地位的是什么操作系統(tǒng)?

答:單用戶單任務(wù)操作系統(tǒng),其中最具代表性的是CP/M和MS-DOS.

29、操作系統(tǒng)與與用戶之間的接口有哪些?

1、用戶接口:聯(lián)機(jī)用戶接口;脫機(jī)用戶接口;圖形用戶接口。

2、程序接口

第二章

1.什么是前趨圖?為什么要引入前趨圖?

答:前趨圖(PrecedenceGraph)是一個有向無循環(huán)圖,記為

DAG(DirectedAcycIicGraph),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。

2.畫出下面四條語句的前趨圖:

S1:a=x+y;

S2:b=z+1;

S3:c-a-b;

S4:w=c+1;

3.為什么程序并發(fā)執(zhí)行會產(chǎn)生間斷性特征?

答:程序在并發(fā)執(zhí)行時(shí),由于它們共享系統(tǒng)資源,為完成同一項(xiàng)任務(wù)需要相互合

作,致使這些并發(fā)執(zhí)行的進(jìn)程之間,形成了相互制約關(guān)系,從而使得進(jìn)程在執(zhí)行

期間出現(xiàn)間性。

4.程序并HR執(zhí)行時(shí)為什么會失去封閉性和可再現(xiàn)性?

答:程序并發(fā)執(zhí)行時(shí),多個程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)由

多個程序改變,致使程序運(yùn)行失去了封閉性,也會導(dǎo)致其失去可再現(xiàn)性。

5.在操作系統(tǒng)中為什么要引入進(jìn)程概念?它會產(chǎn)生什么樣的影響?

答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以控制和

描述,在操作系統(tǒng)中引入了進(jìn)程概念。

影響:使程序的并發(fā)執(zhí)行得以實(shí)行。

6.試從動態(tài)性,并發(fā)性和獨(dú)立性上比較進(jìn)程和程序?

答:(1)動態(tài)性是進(jìn)程最基本的特性,表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因

得不到資源而暫停執(zhí)行,由撤銷而消亡。進(jìn)程有一定的生命期,而程序只是一組

有序的指令集合是靜態(tài)實(shí)體。

⑵并發(fā)性是進(jìn)雇的重域輸E,同時(shí)也是OS的重要特征。引入進(jìn)程的目的正是為

了使其程序能和其它進(jìn)程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。

⑶獨(dú)立性是指進(jìn)程實(shí)體是一個能獨(dú)立運(yùn)行的基本單位,也是系統(tǒng)中獨(dú)立獲得資

源和獨(dú)立調(diào)度的基本單位。對于未建立任何進(jìn)程的程序,不能作為獨(dú)立單位參加

運(yùn)行。

7.試說明PCB的作用,為什么說PCB是進(jìn)程存在的惟一標(biāo)志?

答:PCB是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu)。作用是

使一個在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序,成為一個能獨(dú)立運(yùn)行的基本單

位,成為能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控

制和管理的。

8.PCB提供了進(jìn)程管理和進(jìn)程調(diào)度所需要的哪些信息?

答:進(jìn)程標(biāo)識符、處理機(jī)狀態(tài)、進(jìn)程調(diào)度信息、進(jìn)程控制信息。

9、進(jìn)程控制塊的組織方式有哪幾種?

答:1)線性方式(線性表),2)鏈接方式(鏈接隊(duì)列),3)索引方式(索引

表)。

10、何謂操作系統(tǒng)內(nèi)核,內(nèi)核的主要功能是什么?

答:現(xiàn)代操作系統(tǒng)一般將。s劃分為若干個層次,再將。s的不同功能分別設(shè)置在不

同的層次中。往往將一些與硬件緊密相關(guān)的(如中斷處理程序)、各種常用的設(shè)

備驅(qū)動程序以及運(yùn)行頻率較高的模塊(如時(shí)鐘管理、進(jìn)程調(diào)度和許多模塊公用的

一些基本操作)都安排在緊靠硬件的軟件層次中,使之常駐內(nèi)存,并對他們進(jìn)行

保護(hù)。通常把這一部分稱之為操作系統(tǒng)的內(nèi)核。

負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性

能和穩(wěn)定性。

11.試說明進(jìn)程在三個基本狀態(tài)之間轉(zhuǎn)換的典型原因。

答:(1)就緒狀態(tài)T執(zhí)行狀態(tài):進(jìn)程分配到CPU資源

(2)執(zhí)行狀態(tài)-就緒狀態(tài):時(shí)間片用完

(3)執(zhí)行狀態(tài)T阻塞狀態(tài):I/O請求

(4)阻塞狀態(tài)T就緒狀態(tài):I/O完成

12.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?

答:1、引入掛起狀態(tài)處于五種不同的需要:終端用戶需要,父進(jìn)程需要,操作

系統(tǒng)需要,對換

需要和負(fù)荷調(diào)節(jié)需要。

2、處于掛起狀態(tài)的進(jìn)程不能接收處理機(jī)調(diào)度。

13.在進(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)用地址信息。

14.試說明引起進(jìn)程創(chuàng)建的主要事件。

答:引起進(jìn)程創(chuàng)建的主要事件有:用戶登錄'作業(yè)調(diào)度、提供服務(wù)、應(yīng)用請求。

15.試說明引起進(jìn)程被撤銷的主要事件。

答:引起進(jìn)程被撤銷的主要事件有:1、正常結(jié)束;

2、異常結(jié)束:越界錯誤、保護(hù)錯、非法指令、特權(quán)指令錯、運(yùn)行超時(shí)、等待超

時(shí)'算術(shù)運(yùn)算錯、I/O故障;

3、外界干預(yù):操作員或操作系統(tǒng)干預(yù)'父進(jìn)程請求、父甲程終I匕

16.在創(chuàng)建一個進(jìn)程時(shí)所要完成的主要工作是什么?

答:進(jìn)程之間存在著直接制約和間接制

(1)OS發(fā)現(xiàn)請求創(chuàng)建新進(jìn)程事件后,調(diào)用進(jìn)程創(chuàng)建原語約兩種制約關(guān)系,其中直接制約(同

(2)申請空白PCB;步)是由于進(jìn)程間的相互合作而引

(3)為新進(jìn)程分配資源;

起的,而間接制約(互斥)則是由

(4)初始化進(jìn)程控制塊;

(5)將新進(jìn)程插入就緒隊(duì)列.于進(jìn)程間共享臨界資源而引起的。

17.在撤銷一個進(jìn)程時(shí)所要完成的主要工作是什么?

宏.

1=1?

(1)根據(jù)被終止進(jìn)程標(biāo)識符,從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ì)列或列表中移出,等待其它程序搜集信息。

18.試說明引起進(jìn)程阻塞或被喚醒的主要事件是什么?

答:a.請求系統(tǒng)服務(wù);b.啟動某種操作;c.新數(shù)據(jù)尚未到達(dá);d.無新工作可

做.

19.為什么要在OS中引入線程?

答:在操作系統(tǒng)中引入線程,則是為了減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開銷,

使OS具

有更好的并發(fā)性,提高CPU的利用率。進(jìn)程是分配資源的基本單位,而線程則是系

統(tǒng)調(diào)度的

基本單位。

20.試說明線程具有哪些屬性?

答:(1)輕型實(shí)體(2)獨(dú)立調(diào)度和分派的基本單位(3)可并發(fā)執(zhí)行(4)共享

進(jìn)程資源。

21.黃從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開銷方面對進(jìn)程和線程進(jìn)行比較。

答:

(1)調(diào)度性。線程在OS中作為調(diào)度和分派的基本單位,進(jìn)程只作為資源擁有的

基本單位。

(2)并發(fā)性。進(jìn)程可以并發(fā)執(zhí)行,一個進(jìn)程的多個線程也可并發(fā)執(zhí)行。

(3)擁有資源。進(jìn)程始終是擁有資源的基本單位,線程只擁有運(yùn)行時(shí)必不可少

的斐源本

身高本未擁有系統(tǒng)資源,但可以訪問隸屬進(jìn)程的資源。

(4)系統(tǒng)開銷。操作系統(tǒng)在創(chuàng)建、撤消和切換進(jìn)程時(shí)付出的開銷顯著大于線程。

22.線程控制塊TCB中包含了哪些內(nèi)容?

答:一般TCB中的內(nèi)容較少,因?yàn)橛嘘P(guān)資源分配等多數(shù)信息已經(jīng)記錄于所屬進(jìn)程

的PCB中

TCB中的主要信息包括線程標(biāo)識、線程狀態(tài)、調(diào)度參數(shù)、現(xiàn)場、鏈接指針;

其中現(xiàn)場信息主要包括通用寄存器、指令計(jì)數(shù)器PC以及用戶棧指針.對于操作系

統(tǒng)支持的線程,TCB中還應(yīng)包含系統(tǒng)棧指針。

23.何謂用戶級線程和內(nèi)核支持線程?

答:

"l)用戶級線程:僅存在于用戶空間中的線程,無須內(nèi)核支持。這種線程的創(chuàng)

建、撤銷、

線程間的同步與通信等功能,都無需利用系統(tǒng)調(diào)用實(shí)現(xiàn)。用戶級線程的切換通常

發(fā)生在一個

應(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)

核空間里還

為每個內(nèi)核支持線程設(shè)置了線程控制塊,內(nèi)核根據(jù)該控制塊感知某線程的存在并

實(shí)施控制。

24.試說明用戶級線程的實(shí)現(xiàn)方法。

答:用戶級線程是在用戶空間中的實(shí)現(xiàn)的,所有的用戶級線程都具有相同的結(jié)構(gòu),

運(yùn)行在一個中間系統(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)。

25.試說明內(nèi)核支持線程的實(shí)現(xiàn)方法。

答:系統(tǒng)在創(chuàng)建新進(jìn)程時(shí),分配一個任務(wù)數(shù)據(jù)區(qū)PTDA,其中包括若干個線程控制

塊TCB

空間。創(chuàng)建一個線程分配一個TCB,有關(guān)信息寫入TCB,為之分配必要的資源。當(dāng)

PTDA

中的TCB用完,而進(jìn)程又有新線程時(shí),只要所創(chuàng)建的線程數(shù)目未超過系統(tǒng)允許值,

系統(tǒng)可

在為之分配新的TCB;在撤銷一個線程時(shí),也應(yīng)回收線程的所有資源和TCB。

26.多線程模型有哪幾種類型?多對一模型有何優(yōu)缺點(diǎn)?

答:多對一模型、一對一模型和多對多模型。多對一模型的主要缺點(diǎn)在于,如

果一個線程在訪問內(nèi)核時(shí)發(fā)生阻塞,則整個進(jìn)程都會被阻塞;此外,在任一時(shí)刻,

只有一個線程能夠訪問內(nèi)核,多個線程不能同時(shí)在多個處理機(jī)上運(yùn)行。

第三章處理機(jī)調(diào)度與死鎖

1.高級調(diào)度與低級調(diào)度的主要任務(wù)是什么?為什么要引入中級調(diào)度?

答:高級調(diào)度的主要任務(wù)是根據(jù)某種算法,把外存上處于后備隊(duì)列中的那些作

業(yè)調(diào)入內(nèi)存。

低級調(diào)度是保存處理機(jī)的現(xiàn)場信息,按某種算法先取進(jìn)程,再把處理器分配給進(jìn)

程。

引入中級調(diào)度的主要目的是為了提高內(nèi)存利用率和系統(tǒng)吞吐量。使那些暫時(shí)不能

運(yùn)行的進(jìn)程不再占用內(nèi)存資源,將它們調(diào)至外存等待,把進(jìn)程狀態(tài)改為就緒駐外

存狀態(tài)或掛起狀態(tài)。

2.處理機(jī)調(diào)度算法的共同目標(biāo)是什么?批處理系統(tǒng)的調(diào)度目標(biāo)又是什么?

答:共同目標(biāo):資源利用率,公平性,平衡性,策略強(qiáng)制執(zhí)行。

批處理系統(tǒng)的調(diào)度目標(biāo):平均周轉(zhuǎn)時(shí)間短,系統(tǒng)吞吐量高,處理機(jī)利用率高。

3.何謂作業(yè)、作業(yè)步和作業(yè)流?

答:作業(yè)包含通常的程序和數(shù)據(jù),還配有作業(yè)說明書。系統(tǒng)根據(jù)該說明書對程序

的運(yùn)行進(jìn)行控制。批處理系統(tǒng)中是以作業(yè)為基本單位從外存調(diào)入內(nèi)存。

作業(yè)步是指每個作業(yè)運(yùn)行期間都必須經(jīng)過若干個相對獨(dú)立相互關(guān)聯(lián)的順序加工

的0

作業(yè)流是指若干個作業(yè)進(jìn)入系統(tǒng)后依次存放在外存上形成的輸入作業(yè)流;在操作

系統(tǒng)的控制下,逐個作業(yè)進(jìn)程處理,于是形成了處理作業(yè)流。

4.在什么情況下需要使用作業(yè)控制塊JCB?其中包含了哪些內(nèi)容?

答:每當(dāng)作業(yè)進(jìn)入系統(tǒng)時(shí),系統(tǒng)便為每個作業(yè)建立一個作業(yè)控制塊JCB,根據(jù)作

業(yè)類型將它插入到相應(yīng)的后備隊(duì)列中。

JCB包含的內(nèi)容通常有:1)作業(yè)標(biāo)識;2)用戶名稱;3)用戶賬戶;4)作業(yè)類型

(CPU繁忙型、I/O芳名型、批量型、終端型);5)作業(yè)狀態(tài);6)調(diào)度信息(優(yōu)

先級、作業(yè)已運(yùn)行);7)斐源要求;8)進(jìn)入系統(tǒng)時(shí)間;9)開始處理時(shí)間;10)作

業(yè)完成時(shí)間;;11)作業(yè)退出時(shí)間12)資源使用情況等

5.在作業(yè)調(diào)度中應(yīng)如何確定接納多少個作業(yè)和接納哪些作業(yè)?

答:作業(yè)調(diào)度每次接納進(jìn)入內(nèi)存的作業(yè)數(shù),取決于多道程序度。應(yīng)將哪些作業(yè)從

外存調(diào)入內(nèi)存,取決于采用的調(diào)度算法。最簡單的是先來服務(wù)調(diào)度算法,較常用

的是短作業(yè)優(yōu)先調(diào)度算法和基于作業(yè)優(yōu)先級的調(diào)度算法。

6.為什么要引入高響應(yīng)比優(yōu)先調(diào)度算法?它有何優(yōu)點(diǎn)?

答:在批處理系統(tǒng)中,F(xiàn)CFS算法所考慮的只是作業(yè)的等待時(shí)間,而忽視了作業(yè)的

運(yùn)行時(shí)間。而SJF算法正好與之相反,只考慮作業(yè)的運(yùn)行時(shí)間,而忽視了作業(yè)的

等待時(shí)間。高響應(yīng)比優(yōu)先調(diào)度算法則是既考慮了作業(yè)的等待時(shí)間,又考慮作業(yè)運(yùn)

行時(shí)間的調(diào)度算法,因此既照顧了短作業(yè),又不致使長作業(yè)的等待時(shí)間過長,從

而改善了處理機(jī)調(diào)度的性能。

7.試說明低級調(diào)度的主要功能。

保存處理機(jī)的現(xiàn)場信息'按某種算法選取進(jìn)程、把處理機(jī)分配給進(jìn)程

8.在搶占調(diào)度方式中,搶占的原則是什么?

答:搶占的原則有:時(shí)間片原則、優(yōu)先權(quán)原則、短作業(yè)優(yōu)先權(quán)原則等。

9.在選擇調(diào)度方式和調(diào)度算法時(shí),應(yīng)遵循的準(zhǔn)則是什么?

答:

7i)面向用戶的準(zhǔn)則:周轉(zhuǎn)時(shí)間短、響應(yīng)時(shí)間快、截止時(shí)間的保證、優(yōu)先權(quán)準(zhǔn)

則。

(2)面向系統(tǒng)的準(zhǔn)則:系統(tǒng)吞吐量高、處理機(jī)利用率好'各類資源的平衡利用。

10.在批處理系統(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算法。

11.何謂靜態(tài)和動態(tài)優(yōu)先級?確定靜態(tài)優(yōu)先級的依據(jù)是什么?

答:靜態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程時(shí)確定且在進(jìn)程的整個運(yùn)行期間保持不變的

優(yōu)先級。

動態(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)程對斐源的需求和用戶要求。

12.試比較FCFS和SPF兩種進(jìn)程調(diào)度算法。

答:相同點(diǎn):兩種調(diào)度算法都可以用于作業(yè)調(diào)度和進(jìn)程調(diào)度。

不同點(diǎn):FCFS調(diào)度算法每次都從后備隊(duì)列中選擇一個或多個最先進(jìn)入該隊(duì)列的作

業(yè),將它們調(diào)入內(nèi)存、分配資源'創(chuàng)建進(jìn)程、插入到就緒隊(duì)列。該算法有利于長

作業(yè)/進(jìn)程,不利于短作業(yè)/進(jìn)程。SPF算法每次調(diào)度都從后備隊(duì)列中選擇一個或

若干個估計(jì)運(yùn)行時(shí)間最短的作業(yè),調(diào)入內(nèi)存中運(yùn)行。該算法有利于短作業(yè)/進(jìn)程,

不利于長作業(yè)/進(jìn)程。

13.在時(shí)間片輪轉(zhuǎn)法中,應(yīng)如何確定時(shí)間片的大?。?/p>

答:時(shí)間片應(yīng)略大于一次典型的交互需要的時(shí)間。一般應(yīng)考慮三個因素:系統(tǒng)對

相應(yīng)時(shí)間的

要求、就緒隊(duì)列中進(jìn)程的數(shù)目和系統(tǒng)的處理能力。

14.通過一個例子來說明通常的優(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í)性要求而不適用。

15.為什么說多級反饋隊(duì)列調(diào)度算法能較好地滿足各方面用戶的需求?

答:(1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使

這些作業(yè)在第一隊(duì)列規(guī)定的時(shí)間片內(nèi)完成,終端作業(yè)用戶就會感到滿

足。

(2)短批處理作業(yè)用戶,開始時(shí)像終端型作業(yè)一樣,如果在第一隊(duì)列中執(zhí)

行一個時(shí)間片段即可完成,便可獲得與終端作業(yè)一樣的響應(yīng)時(shí)間。對

于稍長作業(yè),通常只需在第二和第三隊(duì)列各執(zhí)行一時(shí)間片即可完成,

其周轉(zhuǎn)時(shí)間仍然較短。

(3)長批處理作業(yè),它將依次在第1,2,…,n個隊(duì)列中運(yùn)行,然后再按輪

轉(zhuǎn)方式運(yùn)行,用戶不必?fù)?dān)心其作業(yè)長期得不到處理。所以,多級反饋

隊(duì)列調(diào)度算法能滿足多用戶需求。

16.為什么說傳統(tǒng)的幾種調(diào)度算法都不能算是公平調(diào)度算法?

答:以上介紹的幾種調(diào)度算法所保證的只是優(yōu)先運(yùn)行,如優(yōu)先級算法是優(yōu)先級最

高的作業(yè)優(yōu)先運(yùn)行,但并不保證作業(yè)占用了多少處理機(jī)時(shí)間。另外也未考慮到調(diào)

度的公平性。

17.保證調(diào)度算法是如何做到調(diào)度的公平性的?

答:保證調(diào)度算法是另外一種類型的調(diào)度算法,它向用戶所做出的保證并不是優(yōu)

先運(yùn)行,而是明確的性能保證,該算法可以做到調(diào)度的公平性。一種比較容易實(shí)

現(xiàn)的性能保證是處理機(jī)分配的公平性。如果在系統(tǒng)中有n個相同類型的進(jìn)程同時(shí)

運(yùn)行,為公平起見,須保證每個進(jìn)程都獲得相同的處理機(jī)時(shí)間1/n。

18.公平分享調(diào)度算法又是如何做到調(diào)度的公平性的?

答:在公平分享調(diào)度算法中,調(diào)度的公平性主要是針對用戶而言,使所有用戶能

獲得相同的處理機(jī)時(shí)間,或所要求的時(shí)間比例。

19.為什么在實(shí)時(shí)系統(tǒng)中,要求系統(tǒng)(尤其是CPU)具有較強(qiáng)的處理能力?

答:在實(shí)時(shí)系統(tǒng)中通常有多個實(shí)時(shí)任務(wù),若處理機(jī)的處理能力不強(qiáng),則有可能因

處理機(jī)忙不過來,而致使某些實(shí)時(shí)任務(wù)不能得到及時(shí)處理,從而導(dǎo)致發(fā)生難以預(yù)

料的后果

20.按調(diào)度方式可將實(shí)時(shí)調(diào)度算法分為哪幾種?

答:非搶占式和搶占式。非搶占式又分為非搶占式輪轉(zhuǎn)調(diào)度算法和非搶占式優(yōu)先

調(diào)度算法,搶占式又分為基于時(shí)鐘中斷的搶占式優(yōu)先級調(diào)度算法和立即搶占的優(yōu)

先級調(diào)度算法。

21.什么是最早截止時(shí)間優(yōu)先調(diào)度算法?舉例說明。

答:根據(jù)任務(wù)的開始截止時(shí)間確定的任務(wù)優(yōu)先級調(diào)度算法。截止時(shí)間越早則優(yōu)先

級越高。該算法要求在系統(tǒng)中保持一個實(shí)時(shí)任務(wù)就緒隊(duì)列,該隊(duì)列按各任務(wù)截止

時(shí)間的先后排序。

22.什么是最低松弛度優(yōu)先調(diào)度算法?舉例說明。

答:該算法是根據(jù)任務(wù)的緊急(或松弛)程度,來確定任務(wù)的優(yōu)先級。任務(wù)的緊急

程度越高,為該任務(wù)所賦予的優(yōu)先級就越高,以使之優(yōu)先執(zhí)行。

例如,一個任務(wù)在200ms時(shí)必須完成,而它本身所需的運(yùn)行時(shí)間就有

100ms,因此,調(diào)度程序必須在100ms之前調(diào)度執(zhí)行,該任務(wù)的緊急程度(松弛程

度)為100ms。

又如,另一任務(wù)在400ms時(shí)必須完成,它本身需要運(yùn)行150ms,則其松

弛程度為250ms。

23.何謂“優(yōu)先級倒置”現(xiàn)象,可采取什么方法來解決?

答:當(dāng)前0S廣泛采用優(yōu)先級調(diào)度算法和搶占方式,然而在系統(tǒng)中存在著影響進(jìn)程

運(yùn)行的資源而可能產(chǎn)生“優(yōu)先級倒置”的現(xiàn)象,即高優(yōu)先級進(jìn)程(或線程)被低優(yōu)

先級進(jìn)程(或線程)延遲或阻塞。

24.試分別說明可重用資源和可消耗資源的性質(zhì)。

答:可重用性資源:每一個可重用性資源中的單元只能分配給一個進(jìn)程使用,不

允許多個進(jìn)程共享。進(jìn)程在使用可重用性資源時(shí),須按照這樣的順序:請求資源、

使用資源、釋放斐源。系統(tǒng)中每一類可重用性費(fèi)源中的單元數(shù)目是相對固定的,

進(jìn)程在運(yùn)行期間既不能創(chuàng)建也不能刪除它。

可消耗性斐源:每一類可消耗性斐源的單元數(shù)目在進(jìn)程運(yùn)行期間是可以

不斷變化的,有時(shí)它可以有許多,有時(shí)可能為0。進(jìn)程在運(yùn)行過程中,可以不斷

創(chuàng)造可消耗性資源的單元,將它們放入該資源類的緩沖區(qū)中,以增加該資源類的

單元數(shù)目。進(jìn)程在運(yùn)行過程中,可以請求若干個可消耗性資源單元,用于進(jìn)程自

己的消耗,不再將它們返回給該斐源類中。

25.試舉例說明競爭不可搶占資源所引起的死鎖。

答:例如,系統(tǒng)中有兩個進(jìn)程P1和P2,它們都準(zhǔn)備寫兩個文件F1和F2,而這兩者

都屬于可重用和不可搶占性資源。進(jìn)程P1先打開F1,然后再打開文件F2;進(jìn)程P2

先打開文件F2,后打開F1,下面示出了這段代碼。P1

P2

Open(f1,w);Open(f2,w);

Open(f2,w);Open(f1,w);

兩個進(jìn)程P1和P2在并發(fā)執(zhí)行時(shí),如果P1先打開F1和F2,然后P2才

去打開F1(或F2),由于文件F1(F2)已被P1打開,故P2會被阻塞。當(dāng)P1寫完文件

F1(或F2)而關(guān)閉F1(F2)時(shí),P2會由阻塞狀態(tài)轉(zhuǎn)為就緒狀態(tài),被調(diào)度執(zhí)行后重新打

開文件F1(或F2)o在這種情況下,P1和P2都能正常運(yùn)行下去。若P2先打開F1和F2,

然后P1才去打開F1(或F2),P1和P2同樣也可以正常運(yùn)行下去。

但如果在P1打開F1的同時(shí),P2去打開F2,每個進(jìn)程都占有一個打開

的文件,此時(shí)就可能出現(xiàn)問題。因?yàn)楫?dāng)P1試圖去打開F2,而P2試圖去打開F1時(shí),

這兩個進(jìn)程都會因文件已被打開而阻塞,它們希望對方關(guān)閉自己所需要的文件,

但誰也無法運(yùn)行,因此這兩個進(jìn)程將會無限期地等待下去,而形成死鎖。

26.為了破壞“請求和保持”條件而提出了兩種協(xié)議,試比較這兩種協(xié)議。、

答:第一種協(xié)議在所有進(jìn)程開始運(yùn)行之前,必須一次性地申請其在整個運(yùn)行過程

中所需的全部資源,并且在分配資源時(shí),只要有一種資源不能滿足進(jìn)程的要求,

即使其它所需的各種資源都空閑也不分配給該進(jìn)程,而讓該進(jìn)程等待。因此有資

源被嚴(yán)重浪費(fèi)、進(jìn)程經(jīng)常會發(fā)生饑餓現(xiàn)象等缺點(diǎn)。

第二種協(xié)議是對第一種協(xié)議的改進(jìn),它允許一個進(jìn)程只獲得運(yùn)行初期所

需的資源后,便開始運(yùn)行。進(jìn)程運(yùn)行過程中再逐步釋放已分配給自己的,且已用

畢的全部資源,然后再請求新的所需資源。如此便可提高設(shè)備的利用率,還可減

少進(jìn)程發(fā)生饑餓的概率。

27.何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?

答:死鎖是指多個進(jìn)程在運(yùn)行過程中因爭奪斐源而造成的一種僵局,當(dāng)進(jìn)程處于

這種僵持狀態(tài)時(shí),若無外力作用,它們都將無法再向前推進(jìn)。

產(chǎn)生死鎖的原因?yàn)楦偁庂Y源和進(jìn)程間推進(jìn)順序非法。其必要條件是:互

斥條件'請求和保持條件、不剝奪條件'環(huán)路等待條件。

28.當(dāng)決死鎖問題的幾個方法中,哪種方法最易于實(shí)現(xiàn)?哪種方法使資源利用

率最高?

答:解決死鎖的四種方法即預(yù)防、避免、檢測和解除死鎖中,預(yù)防死鎖最容易實(shí)

現(xiàn);避免死鎖使資源的利用率最高。

29.請?jiān)敿?xì)說明可通過哪些途徑預(yù)防死鎖。

答:(1)破壞“請求和保持”條件,就是如果系統(tǒng)有足夠資源,便一次性把進(jìn)程

需要的所有資源分配給它■

⑵破蒙“不可行占”'條件,就是已經(jīng)擁有資源的進(jìn)程,當(dāng)它提出新資源請

求而不能立即滿足時(shí),必須釋放它已保持的所有資源,待以后需要時(shí)再重新申

I青9

(3)破壞“循環(huán)等待”條件,就是將所有資源按類型排序標(biāo)號,所有進(jìn)程對資源

的請求必須嚴(yán)格按序號遞增的次序提出。

30.在銀行家算法的例子中,如果P0發(fā)出請求向量由Request(0,2,0)改為

Request(0,1,0),

問系統(tǒng)可否將資源分配給它?

答:(1)可以。銀行家算法各種資源數(shù)量分別為10、5、7,在T0時(shí)刻的資源分

配如圖所示:

^情況MaxAllocationNeedAvailable

進(jìn)程ABCABCABCABC

Po753010743332

Pl322200122

902302600

p2

222211Oil

p3

433002431

p4

(2)具體分析如下:

①RequstO(0,1,0)VNeedO(7,4,3);

②RequstO(0,1,0)<=AvaiIabIe(2,3,0);

系統(tǒng)先假定可為PO分配資源,并修改AvailableO,Allocation。和Need。向量,由

此形成

的資源變化情況如下圖所示:

情況MaxAllocationNeedAvailable

進(jìn)程ABCABcABCABC

Po763010743322

Pi322200122

902302600

P2

222211011

P3

43300243

P4

(3)P0請求資源:P0發(fā)出請求向量RequstO(0,1,0),系統(tǒng)按銀行家算法進(jìn)行檢查:

①RequstO(0,1,0)<=NeedO(7,4,3);

②RequstO(0,1,0)<=AvaiIabIe(2,3,0);

③系統(tǒng)暫時(shí)先假定可為P0分配資源,并修改有關(guān)數(shù)據(jù),如下圖

所示

P"費(fèi)源倩或JWork|Need|Allocation|Work+Allocation|

ABcABCABcABcFinish

Po322733020342Ture

Pi342122200542Ture

542600302844Ture

P2

Pa8440112111055Ture

P,10554310021057Ture

綜上所述系統(tǒng)可以將資源分配給它。

31.銀行家算法中出現(xiàn)以下資源分配,試問(1)該狀態(tài)是否安全?(2)若進(jìn)

程P2提出

Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?

ProcessAllocationNeedAvailable

Po003200121622

Pi10001750

13542356

P2

03320652

P3

00140656

P4

試問:(1)該狀態(tài)是否安全?

(2)若進(jìn)程P2提出請求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?

答:⑴安全,因?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)<=AvaiIabIe2(1,3,5,4);

③系統(tǒng)先假定可為P2分配資源,并修改AvaiIable2,Allocation2和Need2向量,

由此形成的斐源變化情況如下圖所示:

ProcessAllocationNeedAvailable

Po003200120400

Pl10001750

p225762356

p303320652

p400140656

④再利用安全性算法檢查此時(shí)系統(tǒng)是否安全。如下圖

ProcessWorkAllocationNeedWork+AllocationFinish

P20400257623562976true

Po29760032001229108true

Pl291081000175039108tme

39108033206523121310true

P3

3121310001406563121414true

P4

由此進(jìn)行的安全性檢查得知,可以找到一個安全序列{P2,PO,P1,P3,P4)o

第四章

1.為什么要配置層次式存儲器?

答:設(shè)置多個存儲器可以使存儲器兩端的硬件能并行工作;采用多級存儲系統(tǒng),

特另是

Cache技術(shù),是減輕存儲器帶寬對系統(tǒng)性能影響的最佳結(jié)構(gòu)方案;在微處理機(jī)內(nèi)

部設(shè)置各

種緩沖存儲器,減輕對存儲器存取的壓力。增加CPU中寄存器數(shù)量大大緩解對存

儲器壓力。

2.可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場合?

答:(1)絕對裝入方式,只適用于單道程序環(huán)境。

(2)可重定位裝入方式,適用于多道程序環(huán)境。

(3)動態(tài)運(yùn)行時(shí)裝入方式,用于多道程序環(huán)境;不允許程序運(yùn)行時(shí)在內(nèi)存中移

位置。

3.何謂靜態(tài)鏈接?靜態(tài)鏈接時(shí)需要解決兩個什么問題?

答:靜態(tài)鏈接是指在程序運(yùn)行之前,先將各自目標(biāo)模塊及它們所需的庫函數(shù),鏈

接成一個完整的裝入模塊,以后不再拆開的鏈接方式。

將幾個目標(biāo)鏈接裝配成一個裝入模塊時(shí),需解決以下兩個問題:

1、將相對地址進(jìn)行修改。即將除第一個模塊外的相對地址修改成裝入模塊中的

相應(yīng)的相對地址。(第一個模塊A的相對地址不變,仍為0)

2、變換外部調(diào)用符號。即將每個模塊中所用的外部調(diào)用符號,都變換為相對地

址。

4.何謂裝入時(shí)動態(tài)鏈接?裝入時(shí)動態(tài)連接方式有何優(yōu)點(diǎn)?

答:對比靜態(tài)鏈接,裝入時(shí)動態(tài)鏈接是在裝入內(nèi)存時(shí),邊鏈接邊裝入。裝入時(shí)動

態(tài)鏈接可以讓目標(biāo)模塊可共享,易于修改。因?yàn)?,動態(tài)鏈接在每次裝入內(nèi)存時(shí)都

需要重新鏈接,所以,對單個的目標(biāo)模塊很容易修改和更新,而且目標(biāo)模塊的共

學(xué)也很容易。

5.何謂運(yùn)行時(shí)動態(tài)鏈接?運(yùn)行時(shí)動態(tài)鏈接方式有何優(yōu)點(diǎn)?

答:對比裝入時(shí)動態(tài)鏈接,運(yùn)行時(shí)動態(tài)鏈接是在程序運(yùn)行時(shí)才鏈接所需的目標(biāo)模

塊。運(yùn)行時(shí)動態(tài)鏈接可以讓程序運(yùn)行所必須得模塊之外的模塊不鏈接,加快程序

的裝入過程,節(jié)省大量的內(nèi)存空間。

6.在動態(tài)分區(qū)分配方式中,應(yīng)如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?

答:在動態(tài)分區(qū)分配中,介紹了七種算法,其中首次適應(yīng)'循環(huán)首次適應(yīng)算法需

要按照地址遞增的順序鏈接分區(qū),最佳適應(yīng)、最壞適應(yīng)算法需要按照分區(qū)的大小

來鏈接分區(qū),快速適應(yīng)、伙伴系統(tǒng)、哈希算法需要按照分區(qū)的大小分類鏈接成不

同種類的空閑分區(qū)鏈。

7.為什么要引入動態(tài)重定位?如何實(shí)現(xiàn)?

答:在內(nèi)存分配過程中,不免出現(xiàn)許多不可利用的小的空閑空間以至于造成了內(nèi)

存的利用率不高。如果讓已經(jīng)存在的程序緊湊起來,那么,那些不可利用的小的

空閑空間也就連成了更大的空閑空間以供利用,移動已經(jīng)在內(nèi)存中的程序就是動

態(tài)重定位。關(guān)于如何實(shí)現(xiàn),在從系統(tǒng)中增設(shè)一個重定位寄存器,用它來存放程序

(數(shù)據(jù))在內(nèi)存中的起始地址,程序運(yùn)行時(shí),真正訪問的內(nèi)存地址是相對地址與重

定位寄存器中的地址相加而成的。絕對地址是在程序運(yùn)行時(shí)產(chǎn)生,那么對內(nèi)存中

的程序也就可以移動位置而可以用相對地址。

8.什么是基于順序搜索的動態(tài)分區(qū)分配算法?它可分為哪幾種?

答:我們通常將系統(tǒng)中的空閑分區(qū)鏈接成一個鏈,然后在分配分區(qū)的時(shí)候依次搜

索空閑分區(qū)鏈上的空閑分區(qū),去尋找一個其大小能滿足要求的分區(qū),定義如何搜

索的算法就是基于順序搜索的動態(tài)分區(qū)分配算法。它分為首次適應(yīng)算法、循環(huán)首

次適應(yīng)算法、最佳適應(yīng)算法、最壞適應(yīng)算法。

9.在采用首次適應(yīng)算法回收內(nèi)存時(shí),可能出現(xiàn)哪幾種情況?應(yīng)怎樣處理這些情

況?

答:回收內(nèi)存的時(shí)候,我們把將要回收的內(nèi)存區(qū)的首址拿到空閑分區(qū)鏈表中比對

找出插入點(diǎn)(按照空閑分區(qū)鏈的構(gòu)建算法),如果將要回收的內(nèi)存和插入點(diǎn)的左、

右或者兩者都相鄰,那就把相鄰的區(qū)合并成一個區(qū),如果不相鄰那就單獨(dú)作為一

個區(qū)插入進(jìn)去,并修改相關(guān)的數(shù)據(jù)結(jié)構(gòu)中的值。

10.什么是基于索引搜索的動態(tài)分區(qū)分配算法?它可分為哪幾種?

答:我們把空閑分區(qū)按照某種屬性(通常是大?。┓诸?,把每一類都鏈接起來形成

一個鏈表,建立一個表把每類鏈表的相關(guān)信息寫進(jìn)去以供索引,按照這個數(shù)據(jù)分

配空閑分區(qū)的算法叫做基于索引搜索的動態(tài)分區(qū)分配算法。它分為快速適應(yīng)算

法、伙伴系統(tǒng)、哈希算法。

11.令buddy^x)表示大小為地址為x的塊的伙伴系統(tǒng)地址,試寫出

budd先(x)的通用表達(dá)式。

答:當(dāng)xMOD=0時(shí),buddyK(x)=x+2\當(dāng)xMOD2k+1=2k

k

時(shí),buddyK(x)=x-2

12.分區(qū)存儲管理中常用那些分配策略?比較它們的優(yōu)缺點(diǎn)。

答:分區(qū)存儲管理中的常用分配策略:首次適應(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)生碎片幾率小,對中小型文件分配

分區(qū)操作有利;存儲器中缺乏大空閑區(qū),對大型文件分區(qū)

分配不利。

13.為什么要引入對換?對換可分為哪幾種類型?

答:為了提高系統(tǒng)的吞吐量,提高內(nèi)存的利用率和處理機(jī)的利用率。對換可分為

整體對換和局部對換(分段或頁面對換)。

14.對文件區(qū)管理的目標(biāo)和對對換空間管理的目標(biāo)有何不同?

答:對文件區(qū)的管理,主要是注重存儲器利用率,其次才是存取的速度,故采取

的是離散存儲方式。但是對于對換區(qū),我們主要是注重文件的存取速度,其次才

是存儲器的利用率,故采用的是連續(xù)分配的方式。

15.為實(shí)現(xiàn)對換,系統(tǒng)應(yīng)具備哪幾方面的功能?

答:為了實(shí)現(xiàn)對換,系統(tǒng)必須實(shí)現(xiàn)的是:對對換空間的管理,進(jìn)程的換入和進(jìn)程

的換出。

16.在以進(jìn)程為單位進(jìn)行對換時(shí),每次是否都將整個進(jìn)程換出?為什么?

答:在選擇換出程序之后,在對進(jìn)程進(jìn)行換出時(shí),只能換出那些非共享的程序和

數(shù)據(jù)段,而對于那些共享的數(shù)據(jù)段,只要有其他進(jìn)程還需要,就不能換出。實(shí)質(zhì)

上,共享的程序和數(shù)據(jù)段不屬于哪個進(jìn)程。

17.基于離散分配時(shí)所用的基本單位不同,可將離散分配分為哪幾種?

答:分為分頁存儲管理方式,分段存儲管理方式,段頁式存儲管理方式。

18.什么是頁面?什么是物理塊?頁面的大小應(yīng)如何確定?

答:將進(jìn)程的邏輯地址空間分成若干等分,同時(shí)相應(yīng)的把內(nèi)存也分成若干等分,

前者產(chǎn)生的分組叫做頁面,后者產(chǎn)生的分組稱為物理塊或頁框。頁面的大小應(yīng)選

擇適中,應(yīng)該是2的器,通常為1K~8K,根據(jù)分配算法靈活變化。

19.什么是頁表?頁表的作用是什么?

答:分頁系統(tǒng)采用的是離散分配方式,所以,進(jìn)程的各個頁允許離散的存儲在內(nèi)

存的任意物理塊中,所以就建立一張映射表反應(yīng)他們的對應(yīng)關(guān)系,這張表就叫頁

表。頁表反應(yīng)的是進(jìn)程的邏輯地址和內(nèi)存的物理地址的映射。通過查找頁表可以

知道進(jìn)程的邏輯地址的相應(yīng)頁在內(nèi)存中放在何處。

20.為實(shí)現(xiàn)分頁存儲管理,需要哪些硬件支持?

答:需要頁表寄存器、物理地址寄存器和聯(lián)想寄存器(快表)。頁表寄存器和物理

地址寄存器是地址變換機(jī)構(gòu)所需的基本寄存器,聯(lián)想寄存器是優(yōu)化了地址轉(zhuǎn)換過

程后需要添加的一個寄存器。

21.在分頁系統(tǒng)中是如何實(shí)現(xiàn)地址變換的?

答:首先,進(jìn)程運(yùn)行時(shí)從進(jìn)程的PCB中把頁表始址和頁表長度放入頁表寄存器中,

當(dāng)進(jìn)程要訪問某個邏輯地址中的數(shù)據(jù)的時(shí)候,分頁地址變換機(jī)構(gòu)會自動的將有效

地址(邏輯地址)分為頁號和頁內(nèi)地址。講頁號和頁表寄存器中的頁表長度相比,

如果頁號比較大則說明訪問越界,拋出中斷。否則利用頁號、頁表始址和頁表項(xiàng)

長度計(jì)算出相應(yīng)的頁表中的位置(因?yàn)轫摫碓趦?nèi)存中,所以需要計(jì)算對應(yīng)的地址,

而不是想象中的直接匹配頁號,相當(dāng)于“起點(diǎn)+單位數(shù)*單位長度”),從而得到

物理塊號。把物理塊號和頁內(nèi)地址同時(shí)送入物理地址寄存器中,相結(jié)合得到物理

地址。

22.具有快表時(shí)是如何實(shí)現(xiàn)地址變換的?

答:首先,以前轉(zhuǎn)換過程中查找過的頁表項(xiàng)會被記錄在快表之中。在每次需要訪

問邏輯地址中的數(shù)據(jù)的時(shí)候,都會根據(jù)頁號先到快表中查看有沒有對應(yīng)的匹配

項(xiàng),如果有就直接得到相應(yīng)的物理塊號而不需要進(jìn)過利用始址、頁號和頁表項(xiàng)長

度計(jì)算后去內(nèi)存中查表。得到物理塊號后依然是送到物理地址寄存器中和頁內(nèi)地

址結(jié)合形成最后的物理地址。

23.較詳細(xì)的說明引入分段存儲管理是為了滿足用戶的哪幾方面的需要?

答:方便編程、信息共享、信息保護(hù)、動態(tài)增長和動態(tài)鏈接。

24.在具有快表的段頁式存儲管理方式中,如何實(shí)現(xiàn)地址變換?

答:與分頁系統(tǒng)中方式一樣,只是多了一個維度就是檢索段號以后才可以得到頁

表,再用段內(nèi)頁號和頁表進(jìn)行匹配,得到物理塊號,最后和頁內(nèi)地址結(jié)合得到物

理地址。

25.為什么說分段系統(tǒng)比分頁系統(tǒng)更易于實(shí)現(xiàn)信息的共享和保護(hù)?

答:信息的共享和保護(hù)都是以信息的邏輯單位為基礎(chǔ)的,所以,經(jīng)常是以一個段

為基本單位進(jìn)行保護(hù)和共享的。但是在分頁系統(tǒng)中,可能一個信息的邏輯單位有

很多頁,且一頁中可能含有不同程序段的數(shù)據(jù)或程序。

26.分頁和分段存儲管理有何區(qū)別?

答:頁是信息的物理單位,而段是信息的邏輯單位。頁的大小固定而且由系統(tǒng)決

定,段的大小不固定,通常由編譯程序劃分。分頁用戶程序地址空間是一維的,

分段用戶程序地址空間是二維的。

27.試全面比較連續(xù)分配和離散分配方式。

答:連續(xù)分配方式不需要額外的硬件支持,且實(shí)現(xiàn)算法相對簡單。但是在很多情

況下會造成內(nèi)存利用率低,系統(tǒng)吞吐量小和CPU利用率低等情況,雖然可以通過

緊湊等方式有所調(diào)節(jié),但是緊湊也會造成很大的系統(tǒng)開銷。離散分配方式需要額

外的硬件支持,且實(shí)現(xiàn)的算法相對比較復(fù)雜,但是出于用戶或操作系統(tǒng)的角度,

離散分配方式在系統(tǒng)性能上或?qū)崿F(xiàn)功能上明顯比連續(xù)分配更靈活。比如信息的保

護(hù)和共享等等方面,離散比連續(xù)更加容易實(shí)現(xiàn)。

第五章虛擬存儲器

1、常規(guī)存儲器管理方式具有哪兩大特征?它對系統(tǒng)性能有何影響?

答:一次性:進(jìn)程必須全部裝入內(nèi)存,對空間浪費(fèi)非常大;

駐留性:在程序運(yùn)行過程中,進(jìn)程全部駐留在內(nèi)存,暫時(shí)不用的數(shù)據(jù)無法釋

放。

2.什么是程序運(yùn)行時(shí)的時(shí)間局限性和空間局限性?

答:(1)時(shí)間局限性:如果程序中的某條指令一旦執(zhí)行,則不久的將來該指令

可能再次被執(zhí)行;如果某個存儲單元被訪問,則不久的將來該存儲單元可能再次

被訪問。產(chǎn)生時(shí)間局限性的典型原因是在程序中存在著大量的循環(huán)操作。(2)

空間局限性:一旦程序訪問了某個存儲單元,則在不久的將來,其附近的存儲單

元也最有可能被訪問,即程序在一段時(shí)間內(nèi)所訪問的地址,可能集中在一定的范

圍內(nèi)。產(chǎn)生空間局限性的典型原因是程序是順序執(zhí)行的。

3.虛擬存儲器有哪些特征?其中最本質(zhì)的特征是什么?

答:虛擬存儲器有多次性、對換性'虛擬性三大特征。最本質(zhì)的特征是虛擬性。

4.實(shí)現(xiàn)虛擬存儲器需要哪些硬件支持?

1.請求分頁(段)的頁(段)表機(jī)制

2.缺頁(段)中斷機(jī)構(gòu)

3.地址變換機(jī)構(gòu)

5.實(shí)現(xiàn)虛擬存儲器需要哪幾個關(guān)鍵技術(shù)?

答:(1)在分頁請求系統(tǒng)中是在分頁的基礎(chǔ)上,增加了請求調(diào)頁功能和頁面置

換功能所形成的頁式虛擬存儲系統(tǒng)。允許只裝入少數(shù)頁面的程序(及數(shù)據(jù)),便

啟動運(yùn)行。

(2)在請求分段系統(tǒng)中是在分段系統(tǒng)的基礎(chǔ)上,增加了請求調(diào)段及分段置

換功能后形成的段式虛擬存儲系統(tǒng)。允許只裝入少數(shù)段(而非所有段)的用戶程

序和數(shù)據(jù),即可啟動運(yùn)行。

6.在請求分頁系統(tǒng)中,頁表應(yīng)包括哪些數(shù)據(jù)項(xiàng)?每項(xiàng)的作用是什么?

答:頁表應(yīng)包括:頁號、物理塊號、狀態(tài)位P、訪問字段A、修改位M和外存地址。

狀態(tài)位P:指示該頁是否調(diào)入內(nèi)存,供程序訪問時(shí)參考;

訪問字段A:用于記錄本頁在一段時(shí)間內(nèi)被訪問的次數(shù),或最近已有多長時(shí)間未

被訪問,提供給置換算法選擇換出頁面時(shí)參考;

修改位M:表示該頁在調(diào)入內(nèi)存后是否被修改過;

外存地址:用于指出該頁在外存上的地址,通常是物理塊號,供調(diào)入該頁時(shí)使用。

7.試比較缺頁中斷機(jī)構(gòu)與一般的中斷,它們之間有何明顯的區(qū)別?

答:1.一般中斷只需要保護(hù)現(xiàn)場然后就直接跳到需及時(shí)處理的地方。

2.缺頁中斷除了保護(hù)現(xiàn)場之外,還要判斷內(nèi)存中是否有足夠的空間存儲所

需的頁或段,然后再把所需頁調(diào)進(jìn)來再使用。

8.請?jiān)敿?xì)說明請求分頁系統(tǒng)的地址變換過程。

答:請求分頁系統(tǒng)的地址變換過程如下:(圖略去)

1)取邏輯地址分解為頁號P和頁內(nèi)偏移w;

2)根據(jù)頁號查找頁表,獲得該頁的描述信息;

3)若該頁中斷位為1,產(chǎn)生缺頁中斷;

4)更新該頁的描述信息;

5)根據(jù)頁塊號和頁內(nèi)偏移w,計(jì)算物理地址。

9、何謂固定分配局部置換和可變分配全局置換的內(nèi)存分配策略?

(1)固定分配局部置換:為每個進(jìn)程分配一組固定數(shù)目的物理塊,在進(jìn)程運(yùn)行

期間不再改變;如果在進(jìn)程運(yùn)行的過程中發(fā)生缺頁,則只能從分配給該進(jìn)程的n

個頁面中選出一頁換出,然后調(diào)入新的一頁。

(2)可變分配全局置換:先為每個進(jìn)程分配一定數(shù)目的物理塊,在進(jìn)程運(yùn)行期

間塊數(shù)目可以適當(dāng)增加或減少;如果在進(jìn)程運(yùn)行的過程中發(fā)生缺頁,則從OS所保

留的空閑物理塊中取出一塊,分配給該進(jìn)程,或者在所有進(jìn)程的全部物理塊中,

按算法選出應(yīng)換出的頁面,將其換出,空出一塊來,調(diào)入新的一頁。

10.在請求分頁系統(tǒng)中,應(yīng)從何處將所需頁面調(diào)入內(nèi)存?

答:請求分頁系統(tǒng)中的缺頁從何處調(diào)入內(nèi)存分三種情況:

(1)系統(tǒng)擁有足夠?qū)Q區(qū)空間時(shí),可以全部從對換區(qū)調(diào)入所需頁面,提高調(diào)頁

速度。在進(jìn)程運(yùn)行前將與該進(jìn)程有關(guān)的文件從文件區(qū)拷貝到對換區(qū)。

(2)系統(tǒng)缺少足夠?qū)Q區(qū)空間時(shí),不被修改的文件直接從文件區(qū)調(diào)入;當(dāng)換出

這些頁面時(shí),未被修改的不必?fù)Q出,再調(diào)入時(shí),仍從文件區(qū)直接調(diào)入。對于可能

修改的,在換出時(shí)便調(diào)到對換區(qū),以后需要時(shí)再從對換區(qū)調(diào)入。

(3)UNIX方式。未運(yùn)行頁面從文件區(qū)調(diào)入。曾經(jīng)運(yùn)行過但被換出頁面,下次從

對換區(qū)調(diào)入。UNIX系統(tǒng)允許頁面共享,某進(jìn)程請求的頁面有可能已調(diào)入內(nèi)存,

直接使用不再調(diào)入。

11.試說明在請求分頁系統(tǒng)中頁面的調(diào)入過程。

答:每當(dāng)程序所要訪問的頁面未在內(nèi)存時(shí),便向CPU發(fā)出一缺頁中斷,中斷處

理程序首先保留CPU環(huán)境,分析中斷原因后轉(zhuǎn)入缺頁中斷處理程序。該程序通

過查找頁表,得到該頁在外存的物理塊后,如果此時(shí)內(nèi)存能容納新頁,則啟動磁

盤I/O將所缺之頁調(diào)入內(nèi)存,然后修改頁表。如果內(nèi)存已滿,則須先按照某種置

換算法從內(nèi)存中選出一頁準(zhǔn)備換出;如果該頁未被修改過,可不必將該頁寫回磁

盤;但如果此頁已被修改,則必須將它寫回磁盤,然后再把所缺的頁調(diào)入內(nèi)存,

并修改頁表中的相應(yīng)表項(xiàng),置其存在位為“1”,并將此頁表項(xiàng)寫入快表中。在

缺頁調(diào)入內(nèi)存后,利用修改后的頁表,去形成所要訪問數(shù)據(jù)的物理地址,再去訪

問內(nèi)存數(shù)據(jù)。整個頁面的調(diào)入過程對用戶是透明的。

12.在請求分頁系統(tǒng)中,常采用哪幾種頁面置換算法?

答:采用的頁面置換算法有:最佳置換算法和先進(jìn)先出置換算法,最近最久未使

用(LRU)置換算法,Clock置換算法,最少使用置換算法,頁面緩沖算法等。

13.在一個請求分頁系統(tǒng)中,采用FIFO頁面置換算法時(shí),假如一個作業(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é)果。

答:M=3時(shí),采用FIFO頁面置換算法的缺頁次數(shù)為9次,缺頁率為75%;M=4時(shí),

采用FIFO頁面置換算法的缺頁次數(shù)為10次,缺頁率為83%。

由此可見,增加分配給作業(yè)的內(nèi)存塊數(shù),反而增加了缺頁次數(shù),提高了缺頁率,

這種現(xiàn)象被稱為是BeIady現(xiàn)象。

14.實(shí)現(xiàn)LRU算法所需的硬件支持是什么?

答:需要寄存器和棧等硬件支持。寄存器用于記錄某進(jìn)程在內(nèi)存中各頁的使用情

況,棧用于保存當(dāng)前使用的各個頁面的頁面號。

15.試說明改進(jìn)型Clock置換算法的基本原理.

答:因?yàn)樾薷倪^的頁面在換出時(shí)付出的開銷比未被修改過的頁面大,在改進(jìn)型

Clock算法中,既考慮頁面的使用情況,還要增加置換代價(jià)的因素;在選擇頁面

作為淘汰頁面時(shí),把同時(shí)滿足未使用過和未被修改作為首選淘汰頁面。

16.影響頁面換進(jìn)換出效率的若干因素是什么?

答:1)頁面置換算法。(2)寫回磁盤的頻率。(3)讀入內(nèi)存的頻率。

17.頁面緩沖算法的主要特點(diǎn)是什么?它是如何降低頁面換進(jìn)換出的頻率的?

答:(1)頁面緩沖算法的特點(diǎn)

①顯著地降低了頁面換進(jìn)、換出的頻率,使磁盤I/O的操作次數(shù)大為減

少,因而減少了頁面換進(jìn)、換出的開銷;

②正是由于換入換出的開銷大幅度減小,才能使其采用一種較簡單的置

換策略,如先進(jìn)先出(FIFO)算法,它不需要特殊硬件的支持,實(shí)現(xiàn)起來

非常簡單。

(2)降低頁面換進(jìn)、換出的頻率的方法

①空閑頁面鏈表:實(shí)際上該鏈表是一個空閑物理塊鏈表,是系統(tǒng)掌握的空閑物理

塊,用于分配給頻繁發(fā)生缺頁的進(jìn)程,以降低該進(jìn)程的缺頁率。當(dāng)這樣的進(jìn)程需

要讀入一個頁面時(shí),便可利用空閑物理塊鏈表中的第一個物理塊來裝入該頁。當(dāng)

有一個未被修改的頁要換出時(shí),實(shí)際上并不將它換出到外存,而是把它們所在的

物理塊掛在空閑鏈表的末尾。

②修改頁面鏈表:它是由己修改的頁面所形成的鏈表。設(shè)置該鏈表的目的是為了

減少已修改頁面換出的次數(shù)。當(dāng)進(jìn)程需要將一個已修改的頁面換出時(shí),系統(tǒng)并不

立即把它換出到外存上,而是將它所在的物理塊掛在修改頁面鏈表的末尾。這樣

做的目的是:降低將已修該頁面寫回磁盤的頻率,降低將磁盤內(nèi)容讀入內(nèi)存的頻

率。

18.什么是抖動?產(chǎn)生抖動的原因是什么?

18、在請求分頁系統(tǒng)中,產(chǎn)生“抖動”的原因是什么?

在請求分頁式存儲管理中,頁在內(nèi)存與外存之間頻繁調(diào)度,以至于調(diào)度頁面所需

時(shí)間比進(jìn)程實(shí)際運(yùn)行的時(shí)間還多,此時(shí)系統(tǒng)性能急劇下降。這種現(xiàn)象稱為顛簸或

抖動。原因:問題產(chǎn)生的原因:

(1)分配給進(jìn)程的物理塊數(shù)太少,不能滿足進(jìn)

溫馨提示

  • 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

提交評論