計算機操作系統(tǒng)課后答案_第1頁
計算機操作系統(tǒng)課后答案_第2頁
計算機操作系統(tǒng)課后答案_第3頁
計算機操作系統(tǒng)課后答案_第4頁
計算機操作系統(tǒng)課后答案_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章習題

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

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

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

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

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

(3)OS實現(xiàn)了對計算機資源的抽象

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

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

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

通過在計算機硬件上安裝多層系統(tǒng)軟件,增強了系統(tǒng)功能,隱藏了對硬件操作的細節(jié),由

它們共同實現(xiàn)了對計算機資源的抽象。

4.試說明推勸多道批處理系統(tǒng)形成和>|又展的主要勵力是什么?

答:主要動力來源于四個方面的社會需求與技術(shù)發(fā)展:

(1)不斷提高計算機資源的利用率;

(2)方便用戶;

(3)器件的不斷更新?lián)Q代;

(4)計算機體系結(jié)構(gòu)的不斷發(fā)展。

5.何謂脫機I/O和聯(lián)機I/O?

答:脫機I/O是指事先將裝有用戶程序和數(shù)據(jù)的紙帶或卡片裝入紙帶輸入機或卡片機,在

外國機的控制下,把紙帶或卡片上的數(shù)據(jù)或程序輸入到磁帶上。該方式下的輸入輸出由外

圍機控制完成,是在脫離主機的情況下進行的。

而聯(lián)機I/O方式是指程序和數(shù)據(jù)的輸入輸出都是在主機的直接控制下進行的。

6.試說明推助分時系統(tǒng)形成和收展的主要助力是什么?

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

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

的共享使多用戶能同時使用同一臺計算機,獨立地處理自己的作業(yè)。

7.實現(xiàn)分時系統(tǒng)的關(guān)鍵問題是什么?應(yīng)如何解決?

答:關(guān)鍵問題是當用戶在自己的終端上鍵入命令時,系統(tǒng)應(yīng)能及時接收并及時處理該命令,

在用戶能接受的時延內(nèi)將結(jié)果返回給用戶。解決方法:針對及時接收問題,可以在系統(tǒng)中

設(shè)珞多路卡,使主機能同時接收用戶從各個終端上輸入的數(shù)據(jù);為每個終端配珞緩沖區(qū),

暫存用戶鍵入的命令或數(shù)據(jù)。針對及時處理問題,應(yīng)使所有的用戶作業(yè)都直接進入內(nèi)存,

并且為每個作業(yè)分配一個時間片,允許作業(yè)只在自己的時間片內(nèi)運行,這樣在不長的時間

內(nèi),能使每個作業(yè)都運行一次。

8.為什么要引入實時OS?

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

處理,并控制所有實時任務(wù)協(xié)調(diào)一致地運行。引入實時OS是為了滿足應(yīng)用的需求,更好

地滿足實時控制領(lǐng)域和實時信息處理領(lǐng)域的需要。

9.什么是硬實時伏務(wù)和軟實時伏務(wù)?試并例說明。

答:硬實時任務(wù)是指系統(tǒng)必須滿足任務(wù)對截止時間的要求,否則可能出現(xiàn)難以預測的結(jié)果。

舉例來說,運載火箭的控制等。軟實時任務(wù)是指它的截止時間并不嚴格,偶爾錯過了任務(wù)

的截止時間,對系統(tǒng)產(chǎn)生的影響不大。舉例:網(wǎng)頁內(nèi)容的更新、火車售票系統(tǒng)。

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

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

11.試列出WindowsOS中五個主要版本,并說明它們分別較之前一個版本有何改過。

答:

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

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

更實用的桌面圖形用戶界面,結(jié)束了桌面操作系統(tǒng)間的競爭。

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

持,革新了內(nèi)存管理,是多進程操作系統(tǒng)。

(4)WindowsRP是基于Windows20RR的產(chǎn)品,擁有新用戶圖形界面月神Luna。簡化了用

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

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

新界面風格、加強的搜尋功能(WindowsIndeRingService),新媒體創(chuàng)作工具以及重新

設(shè)計的網(wǎng)絡(luò)、音頻、輸出(打印)和顯示子系統(tǒng)。。

12.試從交互性、及時性以及可靠性方面,將分時系統(tǒng)不實時系統(tǒng)it行比較。

答:(1)及時性:實時信息處理系統(tǒng)對實時性的要求與分時系統(tǒng)類似,都是以人所能接受

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

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

(2)交互性:實時信息處理系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某些特

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

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

靠性。因為任何差錯都可能帶來巨大的經(jīng)濟損失,甚至是災難性后果,所以在實時系統(tǒng)中,

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

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

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

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

答:處理機管理的主要功能是:進程管理、進程同步、進程通信和處理機調(diào)度;

進程管理:為作業(yè)創(chuàng)速進程,撤銷已結(jié)束進程,控制進程在運行過程中的狀態(tài)轉(zhuǎn)換。進程

同步:為多個進程(含線程)的運行進行協(xié)調(diào)。

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

處理機調(diào)度:

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

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

(2)進程調(diào)度:從進程的就緒隊列中,按照一定算法選出一個進程,把處理機分配給它,

并設(shè)珞運行現(xiàn)場,使進程投入執(zhí)行。

15.內(nèi)存管理有哪些主要功能?他們的主要伏務(wù)是什么?

答:內(nèi)存管理的主要功能有:內(nèi)存分配、內(nèi)存保護、地址映射和內(nèi)存擴充。

內(nèi)存分配:為每道程序分配內(nèi)存。

內(nèi)存保護:確保每道用戶程序都只在自己的內(nèi)存空間運行,彼此互不干擾。

地址映射:將地址空間的邏輯地址轉(zhuǎn)換為內(nèi)存空間與對應(yīng)的物理地址。

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

16.設(shè)備管理有哪些主要功能?其主要伏務(wù)是什么?

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

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

的利用率;提高I/O速度;以及方便用戶使用I/O設(shè)備.

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

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

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

18.是什么原因使操作系統(tǒng)具有異步性特征?

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

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

間的不可預知性,即每個程序何時執(zhí)行,執(zhí)行順序以及完成時間是不確定的。

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

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

成后對接口的實際需求。②在0S設(shè)計階段,設(shè)計者必須做出一系列的決定,每一個決定

必須建立在上一個決定的基礎(chǔ)上。但模塊化結(jié)構(gòu)設(shè)計的各模塊設(shè)計齊頭并進,無法尋找可

靠的順序,造成各種決定的無序性,使程序設(shè)計人員很難做到設(shè)計中的每一步?jīng)Q定都建立

在可靠的基礎(chǔ)上,因此模塊接口法被稱為“無序模塊法”。

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

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

答:C/S模式具有獨特的優(yōu)點:⑴數(shù)據(jù)的分布處理和存儲。⑵便于集中管理。⑶靈活性和

可擴充性。(4)易于改編應(yīng)用軟件。

21.試描述什么是微內(nèi)核OS。

答:1)足夠小的內(nèi)核2)基于客戶/服務(wù)器模式

3)應(yīng)用機制與策略分離原理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)中更多的成分和功能放到更高的層次(即用戶模式)中去運行,而留下一

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

微內(nèi)核中通常提供了進程(線程)管理、低級存儲器管理、中斷和陷入處理等功能。

24.<aname=baidusnapOX/aXBstRIe="coIor:bIack;background-coIor:#ffff66'>MJ*)

核操作系統(tǒng)具有哪些優(yōu)點</B>?<aname=baidusnap7X/aXB

stRIe='coIor:white;background-coIor:#886800'>它為何</B>能有這些優(yōu)點?

答:1)提高了系統(tǒng)的可擴展性

2)增強了系統(tǒng)的可靠性

3)可移植性

4)提供了對分布式系統(tǒng)的支持

5)融入了面向?qū)ο蠹夹g(shù)

第二章

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

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

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

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

S1=a:=R+R;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;

答:其前趨圖為:[

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

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

這些并發(fā)執(zhí)行的進程之間,形成了相互制約關(guān)系,從而使得進程在執(zhí)行期間出現(xiàn)間斷性。

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

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

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

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

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

操作系統(tǒng)中引入了進程概念。

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

6.試從勸態(tài)性,并“義性和獨立性上比較速程和程序?

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

而暫停執(zhí)行,由撤銷而消亡。進程有一定的生命期,而程序只是一組有序的指令集合,是

靜態(tài)實體。

(2)并發(fā)性是進程的重要特征,同時也是0S的重要特征。引入進程的目的正是為了使其程

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

(3)獨立性是指進程實體是一個能獨立運行的基本單位,也是系統(tǒng)中獨立獲得資源和獨立調(diào)

度的基本單位。對于未建立任何進程的程序,不能作為獨立單位參加運行。

7.試說明PCB的作用,為什么說PCB是迂程存在的惟一標志?

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

多道程序環(huán)境下不能獨立運行的程序,成為一個能獨立運行的基本單位,成為能與其它進

程并發(fā)執(zhí)行的進程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進程進行控制和管理的。

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

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

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

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

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

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

答:引入掛起狀態(tài)處于五種不同的需要:終端用戶需要,父進程需要,操作系統(tǒng)需要,對

換需要和負荷調(diào)節(jié)需要。處于掛起狀態(tài)的進程不能接收處理機調(diào)度。

10.在逆行it程切換時,所要保存的處理機狀態(tài)信息有哪些?

答:進行進程切換時,所要保存的處理機狀態(tài)信息有:

(1)進程當前暫存信息

(2)下一指令地址信息

(3)進程狀態(tài)信息

(4)過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息。

11.試說明引起it程創(chuàng)速的主要事件。

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

12.試說明引起逆程被撤銷的主要事件。

答:引起進程被撤銷的主要事件有:正常結(jié)束、異常結(jié)束(越界錯誤、保護錯、非法指令、

特權(quán)指令錯、運行超時、等待超時、算術(shù)運算錯、I/O故障)、外界干預(操作員或操作

系統(tǒng)干預、父進程請求、父進程終止)。

13.在創(chuàng)建一個迎程時所要完成的主要工作是什么?

答:

(1)0S發(fā)現(xiàn)請求創(chuàng)速新進程事件后,調(diào)用進程創(chuàng)建原語Creat();

(2)申請空白PCB;

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

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

(5)將新進程插入就緒隊列.

14.在撤銷一個速程時所要完成的主要工作是什么?

答:

(1)根據(jù)被終止進程標識符,從PCB集中檢索出進程PCB,讀出該進程狀態(tài)。

(2)若被終止進程處于執(zhí)行狀態(tài),立即終止該進程的執(zhí)行,珞調(diào)度標志真,指示該進程被

終止后重新調(diào)度。

(3)若該進程還有子進程,應(yīng)將所有子孫進程終止,以防它們成為不可控進程。

(4)將被終止進程擁有的全部資源,歸還給父進程,或歸還給系統(tǒng)。

(5)將被終止進程PCB從所在隊列或列表中移出,等待其它程序搜集信息。

15.試說明引起過程阻塞戒被喚醒的主要事件是什么?

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

16.過程在運行時存在哪兩種形式的制約?并井例說明之。

答:

(1)間接相互制約關(guān)系。舉例:有兩進程A和B,如果A提出打印請求,系統(tǒng)已把唯一

的一臺打印機分配給了進程B,則進程A只能阻塞;一旦B釋放打印機,A才由阻塞

改為就緒。

(2)直接相互制約關(guān)系。舉例:有輸入進程A通過單緩沖向進程B提供數(shù)據(jù)。當緩沖

空時,計算進程因不能獲得所需數(shù)據(jù)而阻塞,當進程A把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進程

B;反之,當緩沖區(qū)已滿時,進程A因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進程B將緩沖區(qū)數(shù)據(jù)

取走后便喚醒A。

17.為什么過程在逆入臨界區(qū)之前應(yīng)先執(zhí)行“過入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出

區(qū)”代碼?

答:為了實現(xiàn)多個進程對臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪

問的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區(qū)對資源進行訪

問,并設(shè)路正被訪問標志,如果正被訪問,則本進程不能進入臨界區(qū),實現(xiàn)這一功能的代

碼為”在退出臨界區(qū)后,必須執(zhí)行”退出區(qū)”代碼,用于恢復未被訪問標志,使其它進程能

再訪問此臨界資源。

18.同步機構(gòu)應(yīng)遵循哪些基本準則?為什么?

答:同步機構(gòu)應(yīng)遵循的基本準則是:空閑讓進、忙則等待、有限等待、讓權(quán)等待原因:為

實現(xiàn)進程互斥進入自己的臨界區(qū)。

19.試從物理概念上說明記錄型信號量wait和signal。

答:wait(S):當S.vaIue>0時,表示目前系統(tǒng)中這類資源還有可用的。執(zhí)行一次wait操

作,意味著進程請求一個單位的該類資源,使系統(tǒng)中可供分配的該類資源減少一個,因此

描述為S.value:=S.value-1;當S.value<0時,表示該類資源已分配完畢,進程應(yīng)調(diào)用block

原語自我阻塞,放棄處理機,并插入到信號量鏈表S.L中。

signaI(S):執(zhí)行一次signal操作,意味著釋放一個單位的可用資源,使系統(tǒng)中可供分配

的該類資源數(shù)增加一個,故執(zhí)行$.丫21口6:=3.丫2|11?+1操作。若加1后S.valueWO,則

表示在該信號量鏈表中,仍有等待該資源的進程被阻塞,因此應(yīng)調(diào)用wakeup原語,將S.L

鏈表中的第一個等待進程喚醒。

20.你認為整型信號量機制是否完全遵循了同步機構(gòu)的四條準則?

答:整型信號量機制不完全遵循同步機制的四條準則,它不滿足“讓權(quán)等待”準則。

21.如何利用信號量機制來實現(xiàn)多個過程對臨界資源的互斥訪問?并井例說明之。

答:為使多個進程互斥訪問某臨界資源,只需為該資源設(shè)絡(luò)一互斥信號量muteR,并設(shè)其

初值為1,然后將各進程訪問該資源的臨界區(qū)CS珞于wait(muteR)和signaI(muteR)操作

之間即可。這樣,每個欲訪問該臨界資源的進程在進入臨界區(qū)之前,都要先對muteR執(zhí)行

wait操作,若該資源此刻未被訪問,本次wait操作必然成功,進程便可進入自己的臨

界區(qū),這時若再有其他進程也欲進入自己的臨界區(qū),此時由于對muteR執(zhí)行wait操作定

會失敗,因而該進程阻塞,從而保證了該臨界資源能被互斥訪問。當訪問臨界資源的進程

退出臨界區(qū)后,應(yīng)對muteR執(zhí)行signal操作,釋放該臨界資源。利用信號量實現(xiàn)進程互

斥的進程描述

如下:

VarmuteR:semaphore:=1;

begin

parbegin

process1:begin

repeat

wait(muteR);

criticalsection

signaI(muteR);

remainderseetion

untiIfalse;

end

process2:begin

repeat

wait(muteR);

criticalsection

signaI(muteR);

remaindersection

untiIfalse;

end

parend

22.試寫出相應(yīng)的程序來描述圖2-17所示的前驅(qū)圖。

答:(a)Vara,b,c,d,e,f,g,h;semaphore:=0,0,0,0,0,0,0,0;

begin

parbegin

beginS1;signaI(a);signaI(b);end;

beginwait(a);S2;signaI(c);signaI(d);end;

beginwait(b);S3;signaI(e);end;

beginwait(c);S4;signaI(f);end;

beginwait(d);S5;signaI(g);end;

beginwait(e);S6;signaI(h);end;

beginwait(f);wait(g);wait(h);S7;end;

parend

end

(b)Vara,b,c,d,e,f,g,h,i,j;semaphored0,0,0,0,0,0,0,0,0,0;

begin

parbegin

beginS1;signaI(a);signaI(b);end;

beginwait(a);S2;signaI(c);signaI(d);end;

beginwait(b);S3;signaI(e);signaI(f);end;

beginwait(c);S4;signaI(g);end;

beginwait(d);S5;signaI(h);end;

beginwait(e);S6;signal(i);end;

beginwait(f);S7;signal(j);end;

beginwait(g);wait(h);wait(i);wait(j);S8;end;

parend

end

23.在生產(chǎn)者消費者問題中,如果缺少了signal(fulI)戒signal(emptR),對執(zhí)行結(jié)果有何

響?

答:如果缺少signal(full),那么表明從第一個生產(chǎn)者進程開始就沒有改變信號量full

值,即使緩沖池產(chǎn)品已滿,但full值還是0,這樣消費者進程執(zhí)行wait(full)時認為緩

沖池是空而取不到產(chǎn)品,消費者進程一直處于等待狀態(tài)。

如果缺少signal(emptR),在生產(chǎn)者進程向n個緩沖區(qū)投滿產(chǎn)品后消費者進程才開始從中取

產(chǎn)品,這時emptR=0,full=n,那么每當消費者進程取走一個產(chǎn)品emptR值并不改變,直

到緩沖池取空了,emptR值也是0,即使目前緩沖池有n個空緩沖區(qū),生產(chǎn)者進程要想再

往緩沖池中投放產(chǎn)品也會因為申請不到空緩沖區(qū)被阻塞。

24.在生產(chǎn)消費者問題中,如果將兩個wait操作即wait(fulI)和wait(muteR)互換位置,

戒者將signal(muteR)不signal(fulI)互換位置,結(jié)果如何?

答:將wait(fulI)和wait(muteR)互換位珞后,可能引起死鎖??紤]系統(tǒng)中緩沖區(qū)全滿時,

若一生產(chǎn)者進程先執(zhí)行了wait(muteR)操作并獲得成功,則當再執(zhí)行wait(emptR)操作時,

它將因失敗而進入阻塞狀態(tài),它期待消費者進程執(zhí)行signal(emptR)來喚醒自己,在此之前,

它不可能執(zhí)行signaI(muteR)操作,從而使試圖通過執(zhí)行wait(muteR)操作而進入自己的臨

界區(qū)的其他生產(chǎn)者和所有消費者進程全部進入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。

若signaI(muteR)和signal(fulI)互換位珞后只是影響進程對臨界資源的釋放次序,而不

會引起系統(tǒng)死鎖,因此可以互換位珞。

25.我們在為某一臨界資源設(shè)置一把鎖W,當,二1時表示關(guān)鎖,當W二。時表示鎖已打開。

試寫出開鎖和關(guān)鎖的原詫,并利用他們實現(xiàn)互斥。

答:整型信號量:Iock(W):whileW=1dono-op

W:=1;

unIock(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;

begin

repeat

lock(W);

criticalsection

uniock(W);

remaindersection

untiIfalse;

end

26.試修改下面生產(chǎn)者一消費者問題解法中的錯評:

答:producer:

begin

repeat

produceraniteminneRtp;

wait(muteR);

wait(fuII);/R應(yīng)為wait(emptR),而且還應(yīng)該在wait(muteR)的前面R/

buffer(in):=neRtp;

/R緩沖池數(shù)組游標應(yīng)前移:in:=(in+1)modn;R/

signaI(muteR);

/RsignaI(fuII);R/

untiIfalse;

end

consumer:

begin

repeat

wait(muteR);

wait(emptR);/R應(yīng)為wait(fu11),而且還應(yīng)該在wait(muteR)的前面R/

neRtc:=buffer(out);

out:=out+1;/R考慮循環(huán),應(yīng)改為:out:=(out+1)modn;R/

signaI(muteR);/RsignaI(emptR);R/

consumeriteminneRtc;

untiIfalse;

end

27.試利用記錄型信號量寫出一個TT會出現(xiàn)死鎖的哲學家it餐問題的算法.

答:Varchopstick:arraR[O,,?,,4]ofsemaphore;

所有信號量均被初始化為1,第i位哲學家的活動可描述為:

Repeat

Wait(chopstick[i]);

Wait(.chopstick[(i+1)mod5]);

Ea.t;

SignaI(chopstick[i]);

SignaI(chopstick[(i+1)mod5])

Ea.t;

Think;

11

UntiIfalse;

28.在測量控制系統(tǒng)中的數(shù)據(jù)采集伏務(wù),把所采集的數(shù)據(jù)送一單緩沖區(qū);計算伏務(wù)從該單

緩沖中支出數(shù)據(jù)過行計算.試寫出利用信號量機制實現(xiàn)兩者共享單緩沖的同步算法。

答:

a.VarmuteR,emptR,full:semaphore:=1,1,0;

gather:

begin

repeat

gatherdatainneRtp;

wait(emptR);

wait(muteR);

buffer:=neRtp;

signaI(muteR);

signaI(fuII);

untiIfalse;

end

compute:

begin

repeat

wait(fuII);

wait(muteR);

neRtc:=buffer;

signaI(muteR);

signaI(emptR);

computedatainneRtc;

untiIfalse;

end

b.VaremptR,full:semaphore:=1,0;

gather:

begin

repeat

gatherdatainneRtp;

wait(emptR);

buffer:=neRtp;

signaI(fuII);

untiIfalse;

end

compute:

begin

repeat

wait(fuII);

neRtc:=buffer;

signaI(emptR);

computedatainneRtc;

untiIfalse;

end

法二

muteR:=1;

emptR:=n;

full:=O;

P(muteR);

count:=count+1;

V(muteR);

V(full);

P(full);

P(muteR);

counR:=count-1;

V(muteR);

V(emptR);

29.畫圖說明管程由哪幾部分組成,為什么要引入條件發(fā)量?

答:管程由四部分組成:①管程的名稱;②局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明;③對該

數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程;④對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)絡(luò)初始值的語句;

當一個進程調(diào)用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的原因解除,而在此

期間,如果該進程不釋放管程,則其它進程無法進入管程,被迫長時間地等待。為了解決

這個問題,引入了條件變量conditiono

30.如何利用管程來解決生產(chǎn)者不消費者問題?

答:首先速立一個管程,命名為ProcIucerConsumer,包括兩個過程:

(1)Put(item)過程。生產(chǎn)者利用該過程將自己生產(chǎn)的產(chǎn)品放到緩沖池,用整型變

量count表示在緩沖池中已有的產(chǎn)品數(shù)目,當count2n時,表示緩沖池已滿,生產(chǎn)者

等待。

(2)get(item)過程。消費者利用該過程從緩沖池中取出一個產(chǎn)品,當countW0

時,表示緩沖池中已無可取的產(chǎn)品,消費者應(yīng)等待。

PC管程可描述如下:

tRpeproducer-consumer=monitor

Varin,out,count:integer;

buffer:arraR[0,…,n-1]ofitem;

notfu11,notemptR:condition;

procedureentrRdot(item)

begin

ifcount>=nthennotfu11.wait;

buffer(in):=neRtp;

in:=(in+1)modn;

count:=count+1;

ifnotemptR.queuethennotemptR.signaI;

end

procedureentrRget(item)

begin

ifcount<=0thennotfuII.wait;

neRtc:=buffer(out);

out:=(out+1)modn;

count:=count-1;

ifnotfuII.quenethennotfuII.signaI;

end

beginin:=out:=0;

count:=0

end

在利用管程解決生產(chǎn)者一消費者問題時,其中的生產(chǎn)者和消費者可描述為:

producer:begin

pepeat

produceanineminnestp

PC.put(item);

untiIfalse;

end

consumer:begin

repeat

PC.get(item);

consumetheiteminenRtc;

untiIfalse;

end

31.什么是AND信號量?試利用AND信號量寫由生產(chǎn)者一消費者問題的解法。

答:為解決并行帶來的死鎖問題,在wait操作中引入AND條件,其基本思想是將進

程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程,用完后一次性釋

放。

解決生產(chǎn)者一消費者問題可描述如下:

varmuteR,emptR,full:semaphore:=1,n,0;

buffer:arraR[0,...,n-1]ofitem;

in,out:integer:=0,0;

begin

parbegin

14

producer:begin

repeat

produceaniteminneRtp;

wait(emptR);

wait(s1,s2,s3,...,sn);//s1,s2,...,sn為執(zhí)行生產(chǎn)者進程除emptR外其余的條件

wait(muteR);

buffer(in):=neRtp;

in:=(in+1)modn;

signaI(muteR);

signaI(fuII);

signaI(s1,s2,s3,...,sn);

untiIfalse;

end

consumer:begin

repeat

wait(fuII);

wait(k1,k2,k3,...,kn);//k1,k2,...,kn為執(zhí)行消費者進程除full外其余的條件

wait(muteR);

neRtc:=buffer(out);

out:=(out+1)modn;

signaI(muteR);

signaI(emptR);

signaI(k1,k2,k3,...,kn);

consumetheiteminneRtc;

untiIfalse;

end

parend

end

32.什么是信號量集?試利用信號量集寫出讀者一寫者問題的解法。

答:對AND信號量加以擴充,形成的信號量集合的讀寫機制。

解法:VarRNinteger;

L,mR:semaphore:=RN,1;

begin

parbegin

reader:begin

repeat

Swait(L,1,1);

Swait(mR,1,1);

performreadoperation;

Ssignal(L,1);

untiIfaIse

end

writer:begin

repeat

Swait(mR,1,1;L,RN,0);

performwriteoperation;

SsignaI(mR,1);

untiIfalse

end

parend

end

33.試比較it程間的低級不高級通信工具。

答:用戶用低級通信工具實現(xiàn)進程通信很不方便,效率低,通信對用戶不透明,所有操作

都必須由程序員來實現(xiàn),而高級通信工具彌補了這些缺陷,用戶直接利用操作系統(tǒng)提供的

一組通信命令,高效地傳送大量的數(shù)據(jù)。

34.當前有哪幾種高級通信機制?

答:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。

35.消息隊列通信機制有哪幾方面的功能?

答:(1)構(gòu)成消息(2)發(fā)送消息(3〉接收梢息(4)互斥與同步。

36.為什么要在0S中引入線程?

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

有更好的并發(fā)性,提高CPU的利用率。進程是分配資源的基本單位,而線程則是系統(tǒng)調(diào)度的

基本單位。

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

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

38.試從調(diào)度性,并收性,擁有資源及系統(tǒng)開銷方面對it程和線程it行比較。

答:

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

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

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

身基本不擁有系統(tǒng)資源,但可以訪問隸屬進程的資源。

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

39.為了在多線程0S中實現(xiàn)it程之間的同步不通信,通常提供了哪幾種同步機制?

答:同步功能可以控制程序流并訪問共享數(shù)據(jù),從而并發(fā)執(zhí)行多個線程。共有四種同步模

型:

互斥鎖、讀寫鎖、條件變量和信號。

40.用亍實現(xiàn)線程同步的私用信號量和公用信號量之間有何差別?

答:

(1)私用信號量。當某線程需利用信號量實現(xiàn)同一進程中各線程之間的同步時,可調(diào)用創(chuàng)

建信號量的命令來創(chuàng)建一個私用信號量,其數(shù)據(jù)結(jié)構(gòu)存放在應(yīng)用程序的地址空間中。

(2)公用信號量。公用信號量是為實現(xiàn)不同進程間或不同進程中各線程之間的同步而設(shè)珞

的。其數(shù)據(jù)結(jié)構(gòu)是存放在受保護的系統(tǒng)存儲區(qū)中,由0S為它分配空間并進行管理。

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

答:

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

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

應(yīng)用進程的諸多線程之間,同樣無需內(nèi)核支持。

(2)內(nèi)核支持線程:在內(nèi)核支持下運行的線程。無論是用戶進程中的線程,還是系統(tǒng)線程

中的線程,其創(chuàng)建、撤銷和切換等都是依靠內(nèi)核,在內(nèi)核空間中實現(xiàn)的。在內(nèi)核空間里

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

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

答:用戶級線程是在用戶空間中的實現(xiàn)的,運行在“運行時系統(tǒng)”與“內(nèi)核控制線程”的

間系統(tǒng)上。運行時系統(tǒng)用于管理和控制線程的函數(shù)的集合。內(nèi)核控制線程或輕型進程LWP

可通過系統(tǒng)調(diào)用獲得內(nèi)核提供服務(wù),利用LWP進程作為中間系統(tǒng)。

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

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

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

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

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

第三章

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

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

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

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

不再占用內(nèi)存資源,將它們調(diào)至外存等待,把進程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。

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

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

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

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

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

制下,逐個作業(yè)進程處理,于是形成了處理作業(yè)流。

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

答:每當作業(yè)進入系統(tǒng)時,系統(tǒng)便為每個作業(yè)建立一個作業(yè)控制塊JCB,根據(jù)作業(yè)類型將它

插入到相應(yīng)的后備隊列中。

JCB包含的內(nèi)容通常有:1)作業(yè)標識2)用戶名稱3)用戶賬戶4)作業(yè)類型(CPU繁忙型、

I/O芳名型、批量型、終端型)5)作業(yè)狀態(tài)6)調(diào)度信息(優(yōu)先級、作業(yè)已運行)7)資源要

求8)進入系統(tǒng)時間9)開始處理時間10)作業(yè)完成時間11)作業(yè)退出時間12)資源使

用情況等

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

答:作業(yè)調(diào)度每次接納進入內(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)度算法。

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

答:(1)保存處理機的現(xiàn)場信息(2)按某種算法選取進程(3)把處理機分配給進程。

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

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

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

答:

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

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

8.在批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種程(作業(yè))調(diào)度算法?

答:批處理系統(tǒng)的調(diào)度算法:短作業(yè)優(yōu)先、優(yōu)先權(quán)、高響應(yīng)比優(yōu)先、多級反饋隊列調(diào)度算

法。

分時系統(tǒng)的調(diào)度算法:時間片輪轉(zhuǎn)法。

實時系統(tǒng)的調(diào)度算法:最早截止時間優(yōu)先即EDF、最低松弛度優(yōu)先即LLF算法。

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

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

動態(tài)優(yōu)先級是指在創(chuàng)建進程時賦予的優(yōu)先權(quán),可以隨進程推進或隨其等待時間增加而改變

的優(yōu)先級,可以獲得更好的調(diào)度性能。

確定進程優(yōu)先級的依據(jù):進程類型、進程對資源的需求和用戶要求。

10.試比較FCFS和SPF兩種逆程調(diào)度算法。

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

不同點:FCFS調(diào)度算法每次都從后備隊列中選擇一個或多個最先進入該隊列的作業(yè),將它

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

短作業(yè)/進程。SPF算法每次調(diào)度都從后備隊列中選擇一個或若干個估計運行時間最短的作

業(yè),調(diào)入內(nèi)存中運行。該算法有利于短作業(yè)/進程,不利于長作業(yè)/進程。

11.在時間片輪轉(zhuǎn)法中,應(yīng)如何確定時間片的大???

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

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

12.通過一個例子來說明通常的優(yōu)先級調(diào)度算法7T能適用亍實時系統(tǒng)?

答:實時系統(tǒng)的調(diào)度算法很多,主要是基于任務(wù)的開始截止時間和任務(wù)緊急/松弛程度的任

務(wù)優(yōu)先級調(diào)度算法,通常的優(yōu)先級調(diào)度算法不能滿足實時系統(tǒng)的調(diào)度實時性要求而不適用。

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

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

按調(diào)度方式不同,可分為非搶占調(diào)度算法和搶占調(diào)度算法兩種。

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

a死鎖是指多個進程因競爭資源而造成的一種僵局,若無外力作用,這些進程都將永遠

不能再向前推進;

6.產(chǎn)生死鎖的原因有二,一是競爭資源,二是進程推進順序非法;

c.必要條件是:互斥條件,請求和保持條件,不剝奪條件和環(huán)路等待條件。

19.在解決死鎖問題的幾個方法中,哪種方法最易于實現(xiàn)?哪種方法是資源利用率最高?

解決/處理死鎖的方法有預防死鎖、避免死鎖、檢測和解除死鎖,其中預防死鎖方法最

容易實現(xiàn),但由于所施加的限制條件過于嚴格,會導致系統(tǒng)資源利用率和系統(tǒng)吞吐量降低;

而檢測和解除死鎖方法可是系統(tǒng)獲得較好的資源利用率和系統(tǒng)吞吐量。

20.請詳細說明可通過哪些途徑預防死鎖?

a摒棄"請求和保持"條件:系統(tǒng)規(guī)定所有進程開始運行之前,都必須一次性地申請其在

整個運行過程所需的全部資源,但在分配資源時,只要有一種資源不能滿足某進程的

要求,即使其它所需的各資源都空閑,也不分配給該進程,而讓該進程等待;

〃摒棄"不剝奪"條件:系統(tǒng)規(guī)定,進程是逐個地提出對資源的要求的。當一個已經(jīng)保持

了某些資源的進程,再提出新的資源請求而不能立即得到滿足時,必須釋放它已經(jīng)保

持了的所有資源,待以后需要時再重新申請;

c.摒棄"環(huán)路等待"條件:系統(tǒng)將所有資源按類型進行線性排序,并賦予不同的序號,且

所有進程對資源的請求必須嚴格按序號遞增的次序提出,這樣,在所形成的資源分配

圖中,不可能再出現(xiàn)環(huán)路,因而摒棄了“環(huán)路等待"條件。

22.在銀行家算法中,若出現(xiàn)下述資源分配情:

ProcessAllocationNeedAvaiIable

Po003200121622

Pl10001750

p213542356

p303320652

p400140656

試問:

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

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

⑴該狀態(tài)是安全的,因為存在一個安全序列〈PoPsPRP〉。下表為該時刻的安全序列

表。

源情

況WorkNeedAIIocationWork+AIlocationFinish

進程

Po1622001200321654true

p31654065203331987true

P419870656001419911true

Pl199111750100029911true

P229911235613543121417true

⑵若進程P?提出請求Request。,2,2,2)后,系統(tǒng)不能將資源分配給它,若分配

給進程P2,系統(tǒng)還剩的資源情況為(0,4,0,0),此時系統(tǒng)中的資源將無法滿足任何

一個進程的資源請求,從而導致系統(tǒng)進入不安全狀態(tài),容易引起死鎖的發(fā)生。

第四聿存儲器管理

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

這是因為:

a.設(shè)置多個存儲器可以使存儲器兩端的硬件能并行工作。

6.采用多級存儲系統(tǒng),特別是Cache技術(shù),這是一種減輕存儲器帶寬對系統(tǒng)性能影響的

最佳結(jié)構(gòu)方案。

c.在微處理機內(nèi)部設(shè)置各種緩沖存儲器,以減輕對存儲器存取的壓力。增加CPU中寄存

器的數(shù)量,也可大大緩解對存儲器的壓力。

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

將程序裝入內(nèi)存可采用的方式有:絕對裝入方式、重定位裝入方式、動態(tài)運行時裝

入方式;絕對裝入方式適用于單道程序環(huán)境中,重定位裝入方式和動態(tài)運行時裝入方式

適用于多道程序環(huán)境中。

3.何為靜態(tài)鏈接?何謂裝入時動態(tài)鏈接和運行時動態(tài)鏈接?

a.靜態(tài)鏈接是指在程序運行之前,先將各自目標模塊及它們所需的庫函數(shù),鏈接成一個

完整的裝配模塊,以后不再拆開的鏈接方式。

6.裝入時動態(tài)鏈接是指將用戶源程序編譯后所得到的一組目標模塊,在裝入內(nèi)存時,采

用邊裝入邊鏈接的一種鏈接方式,即在裝入一個目標模塊時,若發(fā)生一個外部模塊調(diào)

用事件,將引起裝入程序去找相應(yīng)的外部目標模塊,把它裝入內(nèi)存中,并修改目標模

塊中的相對地址。

c.運行時動態(tài)鏈接是將對某些模塊的鏈接推遲到程序執(zhí)行時才進行鏈接,也就是,在執(zhí)

行過程中,當發(fā)現(xiàn)一個被調(diào)用模塊尚未裝入內(nèi)存時,立即由OS去找到該模塊并將之

裝入內(nèi)存,把它鏈接到調(diào)用者模塊上。

4.在進行程序鏈接時,應(yīng)完成哪些工作?

a.對相對地址進行修改

b.變換外部調(diào)用符號

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

a.程序在運行過程中經(jīng)常要在內(nèi)存中移動位置,為了保證這些被移動了的程序還能正常

執(zhí)行,必須對程序和數(shù)據(jù)的地址加以修改,即重定位。引入重定位的目的就是為了滿

足程序的這種需要。

6.要在不影響指令執(zhí)行速度的同時實現(xiàn)地址變換,必須有硬件地址變換機構(gòu)的支持,即

須在系統(tǒng)中增設(shè)一個重定位寄存器,用它來存放程序在內(nèi)存中的起始地址。程序在執(zhí)

行時,真正訪問的內(nèi)存地址是相對地址與重定位寄存器中的地址相加而形成的。

9.分區(qū)存儲管理中常采用哪些分配策略?比較它們的優(yōu)缺點。

分區(qū)存儲管理中常采用的分配策略有:首次適應(yīng)算法、循環(huán)首次適應(yīng)算法、最佳適

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

a.首次適應(yīng)算法的優(yōu)缺點:保留了高址部分的大空閑區(qū),有利于后到來的大型作業(yè)的分

配;低址部分不斷被劃分,留下許多難以利用的、小的空閑區(qū),且每次分區(qū)分配查找

時都是從低址部分開始,會增加查找時的系統(tǒng)開銷。

6.循環(huán)首次適應(yīng)算法的優(yōu)缺點:使內(nèi)存中的空閑分區(qū)分布得更為均勻,減少了查找時的

系統(tǒng)開銷;缺乏大的空閑分區(qū),從而導致不能裝入大型作業(yè)。

c.最佳適應(yīng)算法的優(yōu)缺點:每次分配給文件的都是最適合該文件大小的分區(qū);內(nèi)存中留

下許多難以利用的小的空閑區(qū)。

d最壞適應(yīng)算法的優(yōu)缺點:給文件分配分區(qū)后剩下的的空閑區(qū)不至于太小,產(chǎn)生碎片的

幾率最小,對中小型文件分配分區(qū)操作有利:使存儲器中缺乏大的空閑區(qū),對大型文

件的分區(qū)分配不利。

10.在系統(tǒng)中引入對換后可帶來哪些好處?

能將內(nèi)存中暫時不運行的進程或暫時不用的程序和數(shù)據(jù),換到外存上,以騰出足

夠的內(nèi)存空間,把已具備運行條件的進程或進程所需的程序和數(shù)據(jù)換入內(nèi)存,從而大

大地提高了內(nèi)存的利用率。

12.在以進程為單位進行對換時,每次是否將整個進程換出?為什么?

在以進程為單位進行對換時,并非每次將整個進程換出。這是因為:

a.從結(jié)構(gòu)上講,進程是由程序段、數(shù)據(jù)段和進程控制塊組成的,其中進程控制塊總有

部分或全部常駐內(nèi)存,不被換出。

b.程序段和數(shù)據(jù)段可能正被若干進程共享,此時它們也不能被換出。

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

需要有頁表機制、地址變換機構(gòu)的硬件支持。

16.為什么說分段系統(tǒng)較之分頁系統(tǒng)更易于實現(xiàn)信息共享和保護?

a對于分頁系統(tǒng),每個頁面是分散存儲的,為了實現(xiàn)信息共享和保護,則頁面之間需

要一一對應(yīng)起來,為此需要建立大量的頁表項;

6.而對于分段系統(tǒng),每個段都從0開始編址,并采用一段連續(xù)的地址空間,這樣在實

現(xiàn)共享和保護時,只需為所要共享和保護的程序設(shè)置一個段表項,將其中的基址與

內(nèi)存地址-對應(yīng)起來即可。

17.分頁和分段有何區(qū)別?

a分頁和分段都采用離散分配的方式,且都要通過她址映射機構(gòu)來實現(xiàn)她址變換,這

是它們的共同點;

6.對于它們的不同點有三,第一,從功能上看,頁是信息的物理單位,分頁是為實現(xiàn)

離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率,即滿足系統(tǒng)管理的需要,

而不是用戶的需要;而段是信息的邏輯單位,它含有一組其意義相對完整的信息,

目的是為了能更好地滿足用戶的需要;第二頁的大小固定且由系統(tǒng)確定,而段的長

度卻不固定,決定于用戶所編寫的程序;第三分頁的作業(yè)地址空間是一維的,而分

段的作業(yè)地址空間是二維的。

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

a連續(xù)分配是指為一個用戶程序分配一個連續(xù)的地址空間,包括單一連續(xù)分配方式和

分區(qū)式分配方式,前者將內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū),系統(tǒng)區(qū)供操作系統(tǒng)使用,用戶

區(qū)供用戶使用,是最簡單的一種存儲方式,但只能用于單用戶單任務(wù)的操作系統(tǒng)中:

分區(qū)式分配方式分為固定分區(qū)和動態(tài)分區(qū),固定分區(qū)是最簡單的多道程序的存儲管

理方式,由于每個分區(qū)的大小固定,必然會造成存儲空間的浪費:動態(tài)分區(qū)是根據(jù)

進程的實際需要,動態(tài)地為之分配連續(xù)的內(nèi)存空間,常用三種分配算法:首次適應(yīng)

算法,該法容易留下許多難以利用的小空閑分區(qū),加大查找開銷;循環(huán)首次適應(yīng)算

法,該算法能使內(nèi)存中的空閑分區(qū)分布均勻,但會致使缺少大的空閑分區(qū);最佳適

應(yīng)算法,該算法也易留下許多難以利用的小空閑區(qū);

b.離散分配方式基于將一個進程直接分散地分配到許多不相鄰的分區(qū)中的思想,分為

分頁式存儲管理,分段存儲管理和段頁式存儲管理.分頁式存儲管理旨在提高內(nèi)存

利用率,滿足系統(tǒng)管理的需要,分段式存儲管理則旨在滿足用戶(程序員)的需要,

在實現(xiàn)共享和保護方面優(yōu)于分頁式存儲管理,而段頁式存儲管理則是將兩者結(jié)合起

來,取長補短,即具有分段系統(tǒng)便于實現(xiàn),可共享,易于保護,可動態(tài)鏈接等優(yōu)點,

又能像分頁系統(tǒng)那樣很好的解決外部碎片的問題,以及為各個分段可離散分配內(nèi)存

等問題,顯然是一種比較有效的存儲管理方式;

c.綜上可見,連續(xù)分配方式和離散分配方式各有各自的特點,應(yīng)根據(jù)實際情況加以改

進和利用.

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

特征:離散性、多次性、對換性、虛擬性;

最本質(zhì)的特征:離散性;最重要的特征:虛擬性。

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

a.對于為實現(xiàn)請求分頁存儲管理方式的系統(tǒng),除了需要一臺具有一定容量的內(nèi)存及外

存的計算機外,還需要有頁表機制,缺頁中斷機構(gòu)以及地址變換機構(gòu);

b.對于為實現(xiàn)請求分段存儲管理方式的系統(tǒng),除了需要一臺具有一定容量的內(nèi)存及外

存的計算機外,還需要有段表機制,缺段中斷機構(gòu)以及地址變換機構(gòu);

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

a.分頁和分段都采用離散分配的方式,且都要通過地址映射機構(gòu)來實現(xiàn)地址變換,這

是它們的共同點;

25.在請求分頁系統(tǒng)中,通常采用哪種頁面分配方式——物理塊分配策略?

三種分配方式:固定分配局部置換、可變分配全局置換、可變分配局部置換。

26.在一個請求分頁系統(tǒng)中,

溫馨提示

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

評論

0/150

提交評論