操作系統(tǒng)概論習(xí)題庫(kù)帶答案章節(jié)練習(xí)題復(fù)習(xí)題思考題章末測(cè)試題項(xiàng)目1-8章全_第1頁(yè)
操作系統(tǒng)概論習(xí)題庫(kù)帶答案章節(jié)練習(xí)題復(fù)習(xí)題思考題章末測(cè)試題項(xiàng)目1-8章全_第2頁(yè)
操作系統(tǒng)概論習(xí)題庫(kù)帶答案章節(jié)練習(xí)題復(fù)習(xí)題思考題章末測(cè)試題項(xiàng)目1-8章全_第3頁(yè)
操作系統(tǒng)概論習(xí)題庫(kù)帶答案章節(jié)練習(xí)題復(fù)習(xí)題思考題章末測(cè)試題項(xiàng)目1-8章全_第4頁(yè)
操作系統(tǒng)概論習(xí)題庫(kù)帶答案章節(jié)練習(xí)題復(fù)習(xí)題思考題章末測(cè)試題項(xiàng)目1-8章全_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章操作系統(tǒng)概論課后習(xí)題解答

1.什么是操作系統(tǒng)?它有哪些基本功能與基本特征?

【解答】操作系統(tǒng)是一個(gè)軟件系統(tǒng),它控制和管理計(jì)算機(jī)系統(tǒng)內(nèi)各種硬件和軟件資

源,提供用戶與計(jì)算機(jī)系統(tǒng)之間的接口。

操作系統(tǒng)的功能有:

(1)提供用戶接口

為方便用戶使用計(jì)算機(jī)系統(tǒng),操作系統(tǒng)提供了用戶接口。操作系統(tǒng)提供兩個(gè)級(jí)別的接

□:作業(yè)控制級(jí)接口(通常又稱為命令接口):提供一組命令供用戶直接或間接控制自己

的作業(yè);程序級(jí)接口:提供一組系統(tǒng)調(diào)用供用戶程序和其他系統(tǒng)程序調(diào)用。

(2)管理計(jì)算機(jī)資源

計(jì)算機(jī)系統(tǒng)中的資源包括硬件資源和軟件資源。硬件資源有:處理機(jī)、存儲(chǔ)器、外部

設(shè)備;軟件資源有:程序和數(shù)據(jù)?,F(xiàn)代計(jì)算機(jī)系統(tǒng)一般采用多任務(wù)并發(fā)執(zhí)行方式,而且有

的計(jì)算機(jī)系統(tǒng)由多個(gè)用戶同時(shí)聯(lián)機(jī)使用。這使得計(jì)算機(jī)的資源不是由一個(gè)程序在運(yùn)行時(shí)獨(dú)

占使用,而是由多個(gè)并發(fā)運(yùn)行的程序共享使用。如果由各并發(fā)運(yùn)行的程序自己決定如何使

用資源,則會(huì)各行其是,造成沖突,混亂,使系統(tǒng)無(wú)法順利高效運(yùn)行。因此,要有一個(gè)地

位高于各應(yīng)用程序之上的軟件來(lái)進(jìn)行自動(dòng)的統(tǒng)一的管理,這個(gè)軟件就是操作系統(tǒng)。操作系

統(tǒng)的目標(biāo)之一就是統(tǒng)一管理分配計(jì)算機(jī)系統(tǒng)資源,在保證各并發(fā)執(zhí)行的應(yīng)用程序順利運(yùn)行

的前提下提高資源利用率。包括處理機(jī)管理、存儲(chǔ)器管理、設(shè)備管理、文件管理。

操作系統(tǒng)的特性有:

(1)并發(fā)

在單處理機(jī)系統(tǒng)中,并發(fā)性是指宏觀上有多道程序在同時(shí)運(yùn)行,但在微觀上是交替執(zhí)

行的。多道程序并發(fā)執(zhí)行能提高資源利用率和系統(tǒng)吞吐量。

(2)共享

共享是指計(jì)算機(jī)系統(tǒng)中的資源被多個(gè)并發(fā)任務(wù)共同使用。

(3)異步

在多道程序系統(tǒng)中,多進(jìn)程并發(fā)執(zhí)行,但在微觀上,進(jìn)程是交替執(zhí)行的,因此進(jìn)程以

“走走停停”的不連續(xù)方式運(yùn)行。由于并發(fā)運(yùn)行環(huán)境的復(fù)雜,每個(gè)進(jìn)程在什么時(shí)候開(kāi)始執(zhí)

行,何時(shí)暫停,以怎樣的速度向前推進(jìn),多長(zhǎng)時(shí)間完成,何時(shí)發(fā)生中斷,都是不可預(yù)知

的。我們稱此種特征為異步性。

(4)虛擬

在操作系統(tǒng)中,虛擬指的是通過(guò)某種技術(shù)把一個(gè)物理實(shí)體映射為多個(gè)邏輯實(shí)體,用戶

程序使用邏輯實(shí)體。邏輯實(shí)體是用戶感覺(jué)上的實(shí)際不存在的事物。例如在分時(shí)系統(tǒng)中,雖

然只有一個(gè)CPU,但是在分時(shí)系統(tǒng)的管理下,每個(gè)終端用戶都認(rèn)為自己獨(dú)占一臺(tái)主機(jī)。此

時(shí),分時(shí)操作系統(tǒng)利用分時(shí)輪轉(zhuǎn)策略把一臺(tái)物理上的CPU虛擬為多臺(tái)邏輯上的CPU。

2.操作系統(tǒng)發(fā)展的動(dòng)力是什么?

【解答】推動(dòng)操作系統(tǒng)發(fā)展的主要?jiǎng)恿τ校?/p>

?2?操作系統(tǒng)實(shí)訓(xùn)

(1)不斷提高計(jì)算機(jī)資源利用率的需要。

(2)方便用戶的需要。

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

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

3.批處理系統(tǒng)的目標(biāo)是什么?

【解答】批處理系統(tǒng)旨在實(shí)現(xiàn)作業(yè)步之間以及作業(yè)之間的自動(dòng)過(guò)渡,減少作業(yè)控制及

作業(yè)過(guò)渡時(shí)的手工操作,從而提高計(jì)算機(jī)系統(tǒng)的工作效率。

4.為什么要引入多道程序并發(fā)執(zhí)行技術(shù)?

【解答】在單道批處理系統(tǒng)中任何時(shí)刻只有一道作業(yè)在內(nèi)存中,在一道作業(yè)的運(yùn)行過(guò)

程中,輸入輸出和計(jì)算操作是串行的,因此導(dǎo)致I/O設(shè)備和CPU串行工作,從而導(dǎo)致總有

空閑資源,在I/O設(shè)備工作時(shí)CPU空閑,在CPU工作(指進(jìn)行計(jì)算工作)時(shí)I/O設(shè)備空

閑。即使是在脫機(jī)批處理系統(tǒng)中,內(nèi)存和輸入輸出磁帶之間的數(shù)據(jù)傳輸與CPU的計(jì)算工作

也是串行的。

為了進(jìn)一步提高資源利用率,從而最終提高系統(tǒng)吞吐量(系統(tǒng)在單位時(shí)間內(nèi)完成的總

工作量),在60年代中期引入了多道程序并發(fā)執(zhí)行技術(shù),從而形成了多道批處理系統(tǒng)。

多道程序并發(fā)執(zhí)行的基本思想是:在內(nèi)存中同時(shí)存放多道程序,在操作系統(tǒng)的控制下交替

執(zhí)行。在多道批處理系統(tǒng)中,用戶提交的作業(yè)都先存放在外存中并排成一個(gè)隊(duì)列,稱為后

備隊(duì)列,然后由作業(yè)調(diào)度程序按一定的策略從后備隊(duì)列中選擇若干作業(yè)調(diào)入內(nèi)存,使它們

并發(fā)運(yùn)行,從而共享系統(tǒng)中的各種資源,提高資源利用率,最終提高系統(tǒng)吞吐量。

5.試分析單道與多道批處理系統(tǒng)的優(yōu)缺點(diǎn)。

【解答】批處理系統(tǒng)實(shí)現(xiàn)了作業(yè)步之間以及作業(yè)之間的自動(dòng)過(guò)渡,從而提高了計(jì)算機(jī)

系統(tǒng)的工作效率。多道批處理系統(tǒng)使得CPU與外部設(shè)備并行工作,提高了資源利用率。但

是批處理系統(tǒng)缺少人機(jī)交互,在作業(yè)運(yùn)行過(guò)程中不能人工干預(yù),使得用戶不能靈活控制作

業(yè)過(guò)程。

6.為什么要引入分時(shí)操作系統(tǒng)?

【解答】多道批處理系統(tǒng)充分地提高了計(jì)算機(jī)資源利用率和系統(tǒng)吞吐量,但是它缺少

人機(jī)交互能力,即用戶把作業(yè)提交給計(jì)算機(jī)系統(tǒng)后,就完全脫離了自己的作業(yè),不能干預(yù)

作業(yè)的運(yùn)行,因此不能及時(shí)修正作業(yè)運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤,只有當(dāng)作業(yè)運(yùn)行結(jié)束后才能

脫機(jī)修正錯(cuò)誤,因此用戶使用不方便。對(duì)一個(gè)程序員來(lái)說(shuō),每當(dāng)他編寫(xiě)好一個(gè)程序時(shí),都

需要上機(jī)進(jìn)行調(diào)試。由于新編寫(xiě)的程序難免有些錯(cuò)誤或不當(dāng)之處,因此希望能夠進(jìn)行人機(jī)

交互以便能及時(shí)地修改錯(cuò)誤,即用戶希望可以隨意干預(yù)、控制自己作業(yè)的運(yùn)行流程。

因此,人們開(kāi)發(fā)出交互式分時(shí)操作系統(tǒng)。在分時(shí)系統(tǒng)中,一臺(tái)主機(jī)可以連接若干終端,

每個(gè)用戶可以通過(guò)終端與主機(jī)交互。用戶可以方便地編輯和調(diào)試自己的程序,向系統(tǒng)發(fā)出

各種控制命令,系統(tǒng)及時(shí)地響應(yīng)用戶的請(qǐng)求,輸出計(jì)算結(jié)果以及出錯(cuò)、告警、提示信息。

7.分時(shí)系統(tǒng)是怎樣實(shí)現(xiàn)的?

【解答】在分時(shí)系統(tǒng)中,雖然若干用戶通過(guò)各自的終端共享一臺(tái)主機(jī),但是在操作系

統(tǒng)的管理下,每個(gè)用戶都感覺(jué)自己在獨(dú)占一臺(tái)主機(jī)。分時(shí)系統(tǒng)采用的策略是:基于主機(jī)的

高速運(yùn)行,分時(shí)為終端用戶服務(wù)。即主機(jī)按一定次序輪流為各終端用戶服務(wù),每個(gè)用戶一

次僅使用主機(jī)很短的一段時(shí)間(稱為時(shí)間片,毫秒級(jí)),在分得的時(shí)間片內(nèi)若用戶沒(méi)有完

成工作則暫時(shí)中斷,將處理機(jī)分配給下一個(gè)用戶。雖然在一個(gè)用戶使用主機(jī)時(shí)其他用戶處

于等待狀態(tài),但是等待的時(shí)間很短,用戶感覺(jué)不到,從而每個(gè)用戶的各次請(qǐng)求都能得到快

速響應(yīng),給每個(gè)用戶的印象是:他獨(dú)占一臺(tái)計(jì)算機(jī)。

8.實(shí)時(shí)操作系統(tǒng)應(yīng)用在哪些場(chǎng)合?

【解答】實(shí)時(shí)系統(tǒng)應(yīng)用于兩個(gè)領(lǐng)域:

(1)實(shí)時(shí)控制

當(dāng)把計(jì)算機(jī)用于生產(chǎn)過(guò)程的控制,以形成以計(jì)算機(jī)為中心的控制系統(tǒng)時(shí),系統(tǒng)要求能

實(shí)時(shí)采集現(xiàn)場(chǎng)數(shù)據(jù),并對(duì)所采集的數(shù)據(jù)進(jìn)行及時(shí)處理,進(jìn)而自動(dòng)地控制相應(yīng)的執(zhí)行機(jī)構(gòu),

使某些(個(gè))參數(shù)(如溫度、壓力、方位等)能按預(yù)定的規(guī)律變化。類似地,也可將計(jì)算

機(jī)用于武器的控制,如火炮的自動(dòng)控制系統(tǒng)、飛機(jī)的自動(dòng)駕駛系統(tǒng),以及導(dǎo)彈的制導(dǎo)系統(tǒng)

等。通常把要求進(jìn)行實(shí)時(shí)控制的系統(tǒng)稱為實(shí)時(shí)控制系統(tǒng)。

(2)實(shí)時(shí)信息處理

通常,我們把要求對(duì)信息進(jìn)行實(shí)時(shí)處理的系統(tǒng),稱為實(shí)時(shí)信息處理系統(tǒng)。該系統(tǒng)由一

臺(tái)或多臺(tái)主機(jī)通過(guò)通信線路連接成百上千個(gè)遠(yuǎn)程終端,計(jì)算機(jī)接收從遠(yuǎn)程終端發(fā)來(lái)的服務(wù)

請(qǐng)求,對(duì)數(shù)據(jù)進(jìn)行檢索和處理,并及時(shí)將結(jié)果反饋給用戶。典型的實(shí)時(shí)信息處理系統(tǒng)有:

飛機(jī)訂票系統(tǒng)、情報(bào)檢索系統(tǒng)。

9.實(shí)時(shí)系統(tǒng)有哪些特點(diǎn)?

【解答】實(shí)時(shí)系統(tǒng)的特征:

(1)及時(shí)性

系統(tǒng)對(duì)外部實(shí)時(shí)信號(hào)必須能及時(shí)響應(yīng),響應(yīng)的時(shí)間間隔要足以能夠控制發(fā)出實(shí)時(shí)信號(hào)

的那個(gè)環(huán)境。

(2)可靠性

由于實(shí)時(shí)系統(tǒng)的應(yīng)用環(huán)境特殊,在實(shí)時(shí)系統(tǒng)中,任何軟硬件故障都可能給系統(tǒng)帶來(lái)嚴(yán)

重的后果。必須采取相應(yīng)的軟硬件措施,以保證系統(tǒng)高度可靠。常用的硬件措施如采用雙

工機(jī)制,即準(zhǔn)備兩臺(tái)功能相同的計(jì)算機(jī),將其中一臺(tái)作為主機(jī),另一臺(tái)作為后備機(jī)。后備

機(jī)與主機(jī)并行工作,但不產(chǎn)生控制輸出,若主機(jī)發(fā)生故障,后備機(jī)立即代替主機(jī)繼續(xù)工

作,保證系統(tǒng)不間斷運(yùn)行。

10.操作系統(tǒng)的結(jié)構(gòu)有哪些類型?分別闡述。

【解答】一般而言,操作系統(tǒng)有兩種結(jié)構(gòu):層次結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)。

(1)層次結(jié)構(gòu)

層次結(jié)構(gòu)操作系統(tǒng)的設(shè)計(jì)思想是:按照操作系統(tǒng)各模塊的功能和相互依存關(guān)系,把系

統(tǒng)中的模塊分為若干層次,其中任一層(除底層模塊)都建立在它下面一層的基礎(chǔ)上,每

一層僅使用其下層所提供的服務(wù)。

(2)微內(nèi)核結(jié)構(gòu)

微內(nèi)核結(jié)構(gòu)是20世紀(jì)90年代發(fā)展起來(lái)的。其基本思想是:把操作系統(tǒng)中的基本功能

模塊組織為微內(nèi)核,其他功能模塊盡量放到核外,通過(guò)調(diào)用微內(nèi)核來(lái)實(shí)現(xiàn)。微內(nèi)核結(jié)構(gòu)是

對(duì)傳統(tǒng)內(nèi)核的提煉,它有如下優(yōu)點(diǎn):

簡(jiǎn)化內(nèi)核代碼維護(hù)工作

建構(gòu)靈活

?4?操作系統(tǒng)實(shí)訓(xùn)

安全性高

方便移植

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

【解答】(1)處理機(jī)調(diào)度

要在單處理機(jī)系統(tǒng)中并發(fā)運(yùn)行多道程序,必須按照一定策略對(duì)處理機(jī)進(jìn)行調(diào)度,就像

在一條鐵路上運(yùn)行多列火車一樣,需要進(jìn)行調(diào)度,要決定在某個(gè)時(shí)刻把處理機(jī)分配給哪個(gè)

進(jìn)程進(jìn)行計(jì)算操作。這是處理機(jī)管理的核心任務(wù)。

(2)進(jìn)程控制

進(jìn)程是程序的一次動(dòng)態(tài)運(yùn)行過(guò)程,在其生存期內(nèi)從產(chǎn)生到消亡經(jīng)過(guò)了一系列狀態(tài)的轉(zhuǎn)

換。在多道程序并發(fā)運(yùn)行的系統(tǒng)中,通常不會(huì)讓一道程序獨(dú)占計(jì)算機(jī)全部資源不間斷地運(yùn)

行完畢,而是讓多個(gè)進(jìn)程交替運(yùn)行。這樣進(jìn)程在其生存期內(nèi)肯定有多種狀態(tài),最起碼有運(yùn)

行和不運(yùn)行兩種狀態(tài)。進(jìn)程的狀態(tài)數(shù)量是操作系統(tǒng)按照一定的管理策略來(lái)設(shè)置的,進(jìn)程狀

態(tài)轉(zhuǎn)換是操作系統(tǒng)實(shí)施進(jìn)程管理的一個(gè)基本操作。操作系統(tǒng)提供了一些原語(yǔ)來(lái)對(duì)進(jìn)程狀態(tài)

的轉(zhuǎn)換進(jìn)行控制。

(3)進(jìn)程通信

在多道程序環(huán)境下,可以由系統(tǒng)為一個(gè)應(yīng)用程序建立多個(gè)進(jìn)程,這些進(jìn)程相互合作去

完成某一共同任務(wù),它們之間要交換信息一一進(jìn)程通信。為保證進(jìn)程之間正確通信,操作

系統(tǒng)提供了一系列通信原語(yǔ)供應(yīng)用進(jìn)程調(diào)用。

(4)進(jìn)程同步

在多道程序系統(tǒng)中,多個(gè)并發(fā)進(jìn)程處在同一運(yùn)行環(huán)境中,必然存在著某種聯(lián)系,如進(jìn)

程之間的資源共享和進(jìn)程之間的協(xié)作。操作系統(tǒng)必須采用一定策略來(lái)處理并發(fā)進(jìn)程之間的

制約關(guān)系,使各進(jìn)程能順利運(yùn)行,即使各進(jìn)程同步協(xié)調(diào)運(yùn)行。操作系統(tǒng)中設(shè)置了同步機(jī)制

來(lái)完成此功能。

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

【解答】操作系統(tǒng)提供如下存儲(chǔ)管理功能:

(1)內(nèi)存分配

內(nèi)存分配的任務(wù)是為每道程序分配一定的存儲(chǔ)空間。往往會(huì)出現(xiàn)多道程序?qū)?nèi)存的需

求總和超過(guò)實(shí)際內(nèi)存空間,因此在制定分配策略時(shí)應(yīng)以提高內(nèi)存利用率為目標(biāo)。

(2)地址轉(zhuǎn)換

程序必須裝入內(nèi)存才能被CPU訪問(wèn)到并執(zhí)行,程序指令的操作對(duì)象——數(shù)據(jù)也必須裝

入內(nèi)存才能被程序訪問(wèn),程序和數(shù)據(jù)裝入內(nèi)存后占據(jù)一定的物理內(nèi)存地址空間,程序的邏

輯地址空間往往和物理地址空間不重合,而程序最終是在物理地址空間中運(yùn)行,即訪問(wèn)程

序中的指令和數(shù)據(jù)時(shí)是按其所在的實(shí)際內(nèi)存單元的地址來(lái)進(jìn)行的,所以要正確地訪問(wèn)數(shù)據(jù)

和指令,必須把指令中的邏輯地址轉(zhuǎn)換成相應(yīng)的物理地址,這一操作稱為地址轉(zhuǎn)換,又稱

為“重定位”。

(3)內(nèi)存保護(hù)

內(nèi)存保護(hù)的任務(wù)是確保每道用戶程序都在自己的內(nèi)存空間中運(yùn)行,互不干擾。即,不

允許用戶程序訪問(wèn)操作系統(tǒng)的程序和數(shù)據(jù)(只可以通過(guò)系統(tǒng)調(diào)用訪問(wèn)操作系統(tǒng)),也不允

許訪問(wèn)(存取)其他程序的存儲(chǔ)空間。

(4)內(nèi)存擴(kuò)充

在多道程序環(huán)境中,內(nèi)存資源比較緊張,往往會(huì)出現(xiàn)多道程序?qū)?nèi)存的需求總和超過(guò)

實(shí)際內(nèi)存容量的情況。因此在采用合適的內(nèi)存分配策略以提高內(nèi)存利用率的基礎(chǔ)上,要采

用內(nèi)存擴(kuò)充技術(shù)來(lái)為多道程序運(yùn)行提供充足的內(nèi)存空間。這里說(shuō)的內(nèi)存擴(kuò)充是從邏輯角度

而言的,不是指添加物理內(nèi)存,擴(kuò)充物理內(nèi)存容量。

13.設(shè)備管理有哪些主要功能?它們的主要任務(wù)是什么?

【解答】

(1)設(shè)備分配

根據(jù)用戶程序的I/O請(qǐng)求,為之分配所需的設(shè)備。如果在I/O設(shè)備和CPU之間還存在

著設(shè)備控制器和I/O通道時(shí),還要為分配出去的設(shè)備分配相應(yīng)的控制器和通道。

(2)緩沖管理

進(jìn)程在運(yùn)行過(guò)程中要和輸入輸出設(shè)備之間傳輸數(shù)據(jù),在進(jìn)程的數(shù)據(jù)存儲(chǔ)區(qū)和I/O設(shè)備

控制器之間直接傳輸數(shù)據(jù)效率較低或者無(wú)法進(jìn)行,因此操作系統(tǒng)提供了緩沖技術(shù)。緩沖管

理的任務(wù)是解決CPU和外設(shè)速度不匹配的矛盾,使它們能充分并行工作,從而提高CPU

和I/O設(shè)備的利用率,最終達(dá)到提高系統(tǒng)吞吐量的目的。

(3)設(shè)備驅(qū)動(dòng)

設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)CPU與設(shè)備控制器之間的通信。由CPU向設(shè)備控制器發(fā)出I/O指

令,由設(shè)備控制器驅(qū)動(dòng)相應(yīng)設(shè)備進(jìn)行I/O操作;當(dāng)I/O操作完成時(shí),設(shè)備控制器向CPU發(fā)

送中斷信號(hào),由相應(yīng)的中斷處理程序進(jìn)行處理。

(4)設(shè)備無(wú)關(guān)性

又稱設(shè)備獨(dú)立性。即用戶編寫(xiě)的應(yīng)用程序與實(shí)際使用的物理設(shè)備無(wú)關(guān)。用戶編寫(xiě)的應(yīng)

用程序中不直接指定使用哪臺(tái)具體的物理設(shè)備,而是使用操作系統(tǒng)提供的邏輯設(shè)備,然后

由操作系統(tǒng)把用戶程序中使用的邏輯設(shè)備映射到具體的物理設(shè)備,實(shí)施具體的I/O操作。

這樣做的一個(gè)明顯好處是用戶應(yīng)用進(jìn)程的運(yùn)行不取決于某臺(tái)具體物理設(shè)備的狀態(tài),而由操

作系統(tǒng)為其分配一臺(tái)合適的設(shè)備完成I/O操作。這樣會(huì)避免出現(xiàn)有設(shè)備可用但進(jìn)程卻無(wú)法

運(yùn)行的情況.

14.文件管理有哪些主要功能?它們的主要任務(wù)是什么?

【解答】文件管理具體有如下功能:

(1)文件存儲(chǔ)空間的管理

為新文件分配所需的外存存儲(chǔ)空間,回收釋放的文件存儲(chǔ)空間。在進(jìn)行文件存儲(chǔ)空間

的分配和回收時(shí),要考慮到提高外存空間的利用率和提高文件的存取速度。

(2)目錄管理

為了能方便地在外存中找到所需要的文件,要為外存中存放的文件建立目錄,每個(gè)文

件都對(duì)應(yīng)著一個(gè)目錄項(xiàng)。目錄項(xiàng)包含文件名、文件屬性、文件在外存中的存放位置等用戶

和操作系統(tǒng)所需信息。目錄管理的主要任務(wù)是建立外存中文件的目錄結(jié)構(gòu),實(shí)現(xiàn)用戶程序

對(duì)文件的“按名存取”。文件目錄項(xiàng)要按一定結(jié)構(gòu)組織起來(lái),以便于操作系統(tǒng)檢索。在

UNIX/LINUX中采用了樹(shù)型目錄結(jié)構(gòu)。

(3)文件操作

包括文件的創(chuàng)建、刪除、打開(kāi)、關(guān)閉、讀、寫(xiě)等。這其實(shí)是一組文件系統(tǒng)功能調(diào)用,

?6?操作系統(tǒng)實(shí)訓(xùn)

在用戶程序中當(dāng)要對(duì)文件進(jìn)行操作時(shí),可以調(diào)用文件系統(tǒng)提供的這些文件操作功能。

(4)文件的存取權(quán)限控制

為了防止系統(tǒng)中的文件被非法竊取和破壞,操作系統(tǒng)提供了文件的存取權(quán)限控制功

能,以防止未被授權(quán)的用戶存取文件,防止用戶以不正確的方式存取文件。當(dāng)用戶對(duì)某一

文件操作時(shí),首先檢查其對(duì)該文件的操作權(quán)限,如果該用戶具有對(duì)該文件的此種操作權(quán)

限,則允許該用戶存取該文件,否則拒絕用戶對(duì)該文件的此種操作。

15.操作系統(tǒng)提供了哪些人機(jī)接口?

【解答】為方便用戶使用計(jì)算機(jī)系統(tǒng),操作系統(tǒng)提供了用戶接口。操作系統(tǒng)提供兩個(gè)

級(jí)別的接口:

(1)作業(yè)控制級(jí)接口(通常又稱為命令接口):提供一組命令供用戶直接或間接控

制自己的作業(yè)。作業(yè)級(jí)接口由一組用戶可直接使用控制作業(yè)運(yùn)行的命令和命令解釋器構(gòu)

成。如:在DOS系統(tǒng)中有內(nèi)部命令和外部命令,有命令解釋器。該接口又

可進(jìn)一步分為聯(lián)機(jī)用戶接口和脫機(jī)用戶接口。

聯(lián)機(jī)用戶接口:由一組鍵盤字符命令(或鼠標(biāo)命令)和命令解釋器組成,使用戶可以聯(lián)

機(jī)交互方式使用計(jì)算機(jī)。

脫機(jī)用戶接口:操作命令的形式為作業(yè)控制語(yǔ)言,用戶以脫機(jī)批處理方式使用計(jì)算

機(jī)。用戶對(duì)作業(yè)流程的控制意圖是利用作業(yè)控制語(yǔ)言書(shū)寫(xiě)成一份作業(yè)說(shuō)明書(shū)來(lái)表達(dá)的。

(2)程序級(jí)接口:提供一組系統(tǒng)調(diào)用供用戶程序和其他系統(tǒng)程序調(diào)用。程序級(jí)接口

由一組系統(tǒng)功能調(diào)用命令以及完成這些命令的程序模塊組成。為方便用戶編程,提高編程

效率,規(guī)范編程,操作系統(tǒng)提供了完成某些通用功能的程序,供用戶在開(kāi)發(fā)應(yīng)用程序時(shí)調(diào)

用。不同的操作系統(tǒng)提供了不同的系統(tǒng)功能調(diào)用以及調(diào)用方式。

第2章文件管理習(xí)題解答

i.什么是文件和文件系統(tǒng)?文件系統(tǒng)有哪些功能?

【解答】文件是具有符號(hào)名而且在邏輯上具有完整意義的信息項(xiàng)的有序序列。

文件系統(tǒng)是指操作系統(tǒng)系統(tǒng)中實(shí)現(xiàn)對(duì)文件的組織、管理和存取的一組系統(tǒng)程序,它實(shí)

現(xiàn)對(duì)文件的共享和保護(hù),方便用戶“按名存取”。

文件系統(tǒng)的功能“

(1)文件及目錄的管理。如打開(kāi)、關(guān)閉、讀、寫(xiě)等.

(2)提供有關(guān)文件自身的服務(wù)。如文件共享機(jī)制、文件的安全性等。

(3)文件存儲(chǔ)空間的管理。如分配和釋放。主要針對(duì)可改寫(xiě)的外存如磁盤。(4)提

供用戶接口。為方便用戶使用文件系統(tǒng)所提供的服務(wù),稱為接口。文件系統(tǒng)通常向用戶提

供兩種類型的接口:命令接口和程序接口。不同的操作系統(tǒng)提供不同類型的接口,不同的

應(yīng)用程序往往使用不同的接口。

2.Linux文件可以根據(jù)什么分類?可以分為哪幾類?各有什么特點(diǎn)?

【解答】在Linux操作系統(tǒng)中,文件可以根據(jù)內(nèi)部結(jié)構(gòu)和處理方式進(jìn)行分類。

在Linux操作系統(tǒng)中,可以將文件分為普通文件、目錄文件、特別文件三類。

各類文件的特點(diǎn)是:

普通文件:由表示程序、數(shù)據(jù)或正文的字符串構(gòu)成的文件,內(nèi)部沒(méi)有固定的結(jié)構(gòu)。這

種文件既可以是系統(tǒng)文件,也可以是庫(kù)文件或用戶文件。

目錄文件:由文件目錄構(gòu)成的一類文件。對(duì)它的處理(讀、寫(xiě)、執(zhí)行)在形式上與普

通文件相同。

特別文件:特指各種外部設(shè)備,為了便于管理,把所有的輸入/輸出設(shè)備都按文件格式

供用戶使用。這類文件對(duì)于查找目錄、存取權(quán)限驗(yàn)證等的處理與普通文件相似,而其他部

分的處理要針對(duì)設(shè)備特性要求做相應(yīng)的特殊處理。

應(yīng)該指出,按不同的分類方式就有不同的文件系統(tǒng)。

3.什么是文件的邏輯結(jié)構(gòu)?什么是文件的物理結(jié)構(gòu)?Linux文件系統(tǒng)分別采用什么樣

的結(jié)構(gòu)?有什么優(yōu)點(diǎn)和缺點(diǎn)?

【解答】文件的邏輯結(jié)構(gòu):用戶對(duì)文件的觀察的使用是從自身處理文件中數(shù)據(jù)時(shí)采用

的組織方式來(lái)看待文件組織形式。這種從用戶觀點(diǎn)出發(fā)所見(jiàn)到的文件組織方式稱為文件的

邏輯組織。

文件的物理結(jié)構(gòu):從系統(tǒng)的角度考察文件在實(shí)際存儲(chǔ)設(shè)備上的存放形式,又稱為文件

的存儲(chǔ)結(jié)構(gòu).

在Linux系統(tǒng)中,所有文件的邏輯結(jié)構(gòu)都被看作是流式文件,系統(tǒng)不對(duì)文件進(jìn)行格式

處理。

在Linux系統(tǒng)中,文件的物理結(jié)構(gòu)采用的是混合多重索引結(jié)構(gòu),即將文件所占用盤塊

的盤塊號(hào),直接或間接地存放在該文件索引結(jié)點(diǎn)的地址項(xiàng)中。

在Linux系統(tǒng)中,采用混合索引結(jié)構(gòu)的優(yōu)點(diǎn)是,對(duì)于小文件,訪問(wèn)速度快;對(duì)于大中

型的文件,其文件系統(tǒng)也能很好的支持;缺點(diǎn)是會(huì)帶來(lái)因?yàn)槎啻卧L問(wèn)磁盤而影響速度。

4.目前廣泛用的目錄結(jié)構(gòu)形式是哪種?它有什么優(yōu)點(diǎn)?

【解答】廣泛用的目錄結(jié)構(gòu)形式是樹(shù)型目錄結(jié)構(gòu)。

優(yōu)點(diǎn):

(1)能有效的提高對(duì)目錄的檢索速度。

(2)允許文件重名。允許用戶在自己的分目錄中,使用與其他用戶相同的文件名。

(3)便于實(shí)現(xiàn)文件共享。

5.常見(jiàn)的文件存儲(chǔ)空間管理有哪幾種?各自有什么特點(diǎn)?Linux系統(tǒng)的存儲(chǔ)空間管理

采用什么方法?

【解答】常見(jiàn)的文件存儲(chǔ)空間管理有:空閑空間表法、空閑塊鏈接法、位示圖法、空

閑塊成組鏈接法。

空閑空間表法:所有連續(xù)的空閑盤塊在表中占有一項(xiàng),其中每一個(gè)空閑表項(xiàng)包括序

號(hào)、空閑區(qū)的第一個(gè)盤塊號(hào)、該區(qū)的空閑盤塊數(shù)及對(duì)應(yīng)的空閑物理塊號(hào)。利用該表進(jìn)行盤

塊的分配和文件刪除時(shí)盤塊的回收。

空閑塊鏈接法:將磁盤上的所有盤塊拉成一條鏈,用一個(gè)指針指向第一個(gè)空閑塊,而

各個(gè)空閑塊中都含有下一個(gè)空閑區(qū)的塊號(hào),最后一塊的指針項(xiàng)記為NULL,表示鏈尾。分

配和釋放盤塊都在鏈頭進(jìn)行。

位示圖法:利用一串二進(jìn)制位的值來(lái)反映磁盤空間的分配情況,每個(gè)盤塊都對(duì)應(yīng)一

?8?操作系統(tǒng)實(shí)訓(xùn)

位。若盤塊空閑,對(duì)應(yīng)位為0;若盤塊已分配出去,則對(duì)應(yīng)位為1。

空閑塊成組鏈接法:把所有空閑盤塊按固定數(shù)量分組,組與組之間形成鏈接關(guān)系,最

后一組的塊號(hào)通常放在內(nèi)存的一個(gè)專用棧中。因而對(duì)盤塊的分配和回收都在棧中進(jìn)行。

Linux系統(tǒng)的存儲(chǔ)空間管理采用空閑塊成組鏈接法。

6.內(nèi)存管理和外存管理有何異同?

【解答】可以從以下幾個(gè)方面進(jìn)行比較:

(1)主要任務(wù):內(nèi)存管理的主要任務(wù)是為多道程序的運(yùn)行提供良好的環(huán)境,使每到

程序都能順利運(yùn)行。外存管理的主要任務(wù)是為文件提供存儲(chǔ)空間。

(2)基本功能:內(nèi)存管理的基本功能包含了內(nèi)存空間的分配、回收、保護(hù)、擴(kuò)充等

方面。外存管理的基本功能則只是對(duì)外存空間的分配和回收。

(3)分配方式:內(nèi)存和外存管理都可采用連續(xù)或離散分配方式,且都以離散分配方

式為主。

(4)分配算法:對(duì)于連續(xù)分配方式,內(nèi)存與外存管理中的分配和回收算法類似,主

要有首次適應(yīng)算法、循環(huán)首次適應(yīng)算法等。在離散分配方式中,兩者索采用的機(jī)制不同,

內(nèi)存管理只要利用頁(yè)表或段表;在外存管理中,則主要利用文件分配表。

(5)分配單位:內(nèi)存以字節(jié)為單位,外存則以盤塊為單位分配。

7.為什么要打開(kāi)文件?敘述在linux文件系統(tǒng),打開(kāi)文件Zhome/userOl/myfile的過(guò)

程?

【解答】當(dāng)用戶要求對(duì)一個(gè)文件實(shí)施多次讀/寫(xiě)或其他操作時(shí),每次都要從檢索目錄開(kāi)

始。為了避免多次重復(fù)地檢索目錄,在大多數(shù)OS中都引入了“打開(kāi)”(open)這一文件

系統(tǒng)調(diào)用,當(dāng)用戶第一次請(qǐng)求對(duì)某文件進(jìn)行操作時(shí),先利用open系統(tǒng)調(diào)用將該文件打開(kāi)。

在UNIX文件系統(tǒng),打開(kāi)文件/home/userOl/myfHe的過(guò)程四步:

(1)檢索目錄

核心先調(diào)用檢索目錄過(guò)程namei從根目錄或從當(dāng)前目錄開(kāi)始,沿目錄樹(shù)查找指名文件

的索引結(jié)點(diǎn)。在查找時(shí),利用線性檢索法,將文件路徑名中的各分量名,與相應(yīng)目錄文件

中的文件名逐一進(jìn)行比較。若未找到該文件名,或者該文件不允許存取,便做出錯(cuò)處理;

否則,進(jìn)入第二步。

(2)分配內(nèi)存索引結(jié)點(diǎn)

如果該文件己被其他用戶打開(kāi),此時(shí)只需對(duì)在第一步中所找到的i結(jié)點(diǎn),執(zhí)行其引用

計(jì)數(shù)加1的操作;否則,應(yīng)為被打開(kāi)文件分配一個(gè)內(nèi)存i結(jié)點(diǎn),并調(diào)用磁盤讀過(guò)程將磁盤i

結(jié)點(diǎn)的內(nèi)容拷貝到內(nèi)存i結(jié)點(diǎn)中,并設(shè)置i.count為1。

(3)分配文件表

這是指為已打開(kāi)的文件分配一個(gè)文件表項(xiàng),使文件表項(xiàng)中的f.node指向內(nèi)存索引結(jié)

點(diǎn)。通常還將讀寫(xiě)指針f.offset置為0,以表示從頭開(kāi)始讀/寫(xiě)此文件;置讀寫(xiě)標(biāo)志

f.flag,及將文件的引用計(jì)數(shù)f.count加1,并記入該表項(xiàng)的首址fp。

(4)分配用戶文件描述表項(xiàng)

在用戶文件描述表中取得一空表項(xiàng)。若成功,便將fp填入該表項(xiàng)中,并把該表項(xiàng)的序

號(hào)fd作為文件描述符,寫(xiě)入調(diào)用進(jìn)程的U區(qū)中。

8..在Linux系統(tǒng)中,一個(gè)盤塊大小為1KB,每個(gè)盤塊號(hào)占4B,則一個(gè)進(jìn)程要訪問(wèn)一

個(gè)相對(duì)于文件開(kāi)始的偏移量為263168B處的數(shù)據(jù)時(shí),計(jì)算是直接還是索引訪問(wèn),幾級(jí)索

引?

【解答】一次間接。

263168B/1024B=257

即該地址在第257塊。

塊內(nèi)偏移量為:263168-1024*257=0

因10<257<266

故為一次間接。

9.有一個(gè)UNIX文件的權(quán)限為:rwxr_x___,該文件的文件主為uid=12,gid=l,有

一用戶B的uid=6,gid=l,問(wèn):系統(tǒng)是否允許用戶B執(zhí)行該文件?為什么?

【解答】允許。

因?yàn)閁ID為用戶標(biāo)識(shí)符。說(shuō)明用戶B與該文件主為同組用戶。

10.說(shuō)明Linux系統(tǒng)磁盤的結(jié)構(gòu)及各部分的功能。

【解答】(1)

0號(hào)塊1號(hào)塊2號(hào)塊…K號(hào)塊(索引結(jié)點(diǎn)區(qū))文件區(qū)

(2)0號(hào)塊存放引導(dǎo)程序,是引導(dǎo)區(qū),1號(hào)塊是超級(jí)塊,也叫超級(jí)塊,存放文件卷的

管理信息,索引節(jié)點(diǎn)區(qū)存放各文件的索引結(jié)點(diǎn);文件區(qū)存放文件的內(nèi)容。

11.磁盤容量為1.2GB的硬盤,假設(shè)盤塊大小為1KB,每個(gè)盤塊號(hào)在FAT表區(qū)占

4B,你作為磁盤的設(shè)計(jì)人員,應(yīng)設(shè)FAT區(qū)為多長(zhǎng)?

【解答】1.2GB=1.2M*1KB

即1.2GB/1KB=I.2M

磁盤由1.2個(gè)磁盤塊組成。

1.2*4B=4.8MB

所以磁盤的FAT表區(qū)長(zhǎng)度應(yīng)為4.8MB

12.設(shè)在linux中有一進(jìn)程P,P中有一操作需要訪問(wèn)一文件中偏移量為14000處的數(shù)

據(jù);試問(wèn)linux如何實(shí)現(xiàn)地址變換?

【解答】(1)核心將14000換為邏輯塊號(hào)13及塊內(nèi)偏移量688;

(2)判斷,因10<13<266,故為一次間址;

(3)從i.add(lO)中取得盤塊號(hào),設(shè)為x;

(4)調(diào)用bread過(guò)程讀x盤塊;

(5)在一次間址中的文件邏輯塊號(hào)為3(從0編);

(6)從中得實(shí)際塊號(hào),設(shè)為y;

(7)則該塊中的688B即為所求。

13.多操作系統(tǒng)中提供了文件重命名功能,它能賦予文件一個(gè)新名字。若進(jìn)行文件復(fù)

制,并給復(fù)制文件起一個(gè)名字,然后刪除舊文件,也能達(dá)到給文件重命名的目的。試問(wèn)這

兩種方法在實(shí)現(xiàn)上有何不同?

【解答】使用文件重命名功能時(shí),用戶必須提供兩個(gè)參數(shù):舊文件名,新文件名。實(shí)

現(xiàn)該功能時(shí),系統(tǒng)使用舊文件名查找文件目錄,若找到舊文件名所對(duì)應(yīng)的目錄表目,則將

目錄表中文件名字段對(duì)應(yīng)的值改為新文件名值。從實(shí)現(xiàn)過(guò)程看,文件重命名功能完成的工

?10?操作系統(tǒng)實(shí)訓(xùn)

作是修改目錄表中的文件名字段,除文件名外,文件的其它特性都未改變。

在后一種實(shí)現(xiàn)方法中,先進(jìn)行文件復(fù)制并給復(fù)制文件起一個(gè)新名,此時(shí)系統(tǒng)完成了一

次物理文件的復(fù)制操作,然后刪除舊文件。雖然這樣也能實(shí)現(xiàn)給文件重命名的目的,但其

實(shí)現(xiàn)過(guò)程比前一種方式復(fù)雜,并且新文件與舊文件的物理存放地址肯定不同。

14.在利用link系統(tǒng)調(diào)用進(jìn)行連接時(shí),如果path1=/usr/zhang/ff.c,

path2=/usr/li/message/ff.c,試畫(huà)出此時(shí)的樹(shù)型目錄圖。

【解答】在樹(shù)型文件系統(tǒng)中,每一個(gè)文件都有一路徑名。例如,用戶zhang的文件

ff.c的路徑名為/usr/zhang/ff.c。如果用戶li要共享此文件,可利用系統(tǒng)調(diào)用

link(pathl,path2)

與文件ff.c建立連接。其中參數(shù)

path1=/usr/zhang/ff.c

path2=/usr/li/message/ff.c>

即在li的message目錄文件中創(chuàng)建一個(gè)新目錄項(xiàng)。建立連接后的樹(shù)型目錄結(jié)構(gòu)圖如

15.在實(shí)現(xiàn)文件共享時(shí),如果不先進(jìn)行連接,會(huì)產(chǎn)生什么后果?

【解答】建立連接的目的,一方面是為共享該文件的用戶增加一新的文件路徑名,另

一方面是讓系統(tǒng)知道有多少個(gè)用戶需要使用該文件。在每次連接時(shí),該文件的索引結(jié)點(diǎn)訪

問(wèn)計(jì)數(shù)會(huì)增加lo共享該文件時(shí),若無(wú)建立連接的操作,系統(tǒng)就無(wú)法知道是否還有用戶需

要該文件,其后果可能是:當(dāng)用戶要使用該文件時(shí),發(fā)現(xiàn)該文件已被刪除;或者在用戶使

用該文件期間,文件突然比刪除。

第3章進(jìn)程管理課后習(xí)題解答

1.操作系統(tǒng)為什么要引入進(jìn)程的概念?

【解答】程序在并發(fā)執(zhí)行方式下,運(yùn)行時(shí)具有異步性的特征。這樣,就需要一個(gè)數(shù)據(jù)

結(jié)構(gòu)PCB來(lái)記錄程序的狀態(tài),以及控制其狀態(tài)轉(zhuǎn)換所需的一些信息。因此,將PCB、程

序、數(shù)據(jù)三者組成一個(gè)完整的實(shí)體,就是進(jìn)程實(shí)體。進(jìn)程是程序的一次執(zhí)行,引入進(jìn)程的

概念,便于操作系統(tǒng)對(duì)于程序的運(yùn)行進(jìn)行控制。

2.試比較進(jìn)程和程序的區(qū)別。

【解答】進(jìn)程和程序之間存在著密切的聯(lián)系,但它們是兩個(gè)完全不同的概念。它們之

間的主要區(qū)別是:

(1)程序是靜態(tài)的概念,本身可以作為一種軟件資源長(zhǎng)期保存著;而進(jìn)程則是程序

的一次執(zhí)行過(guò)程。它是動(dòng)態(tài)的概念。

(2)進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的單位,能與其它進(jìn)程并發(fā)執(zhí)行。進(jìn)程是作為資源申請(qǐng)

和調(diào)度單位存在的;而通常的程序是不能作為一個(gè)獨(dú)立運(yùn)行的單位而并發(fā)執(zhí)行的。

(3)程序和進(jìn)程無(wú)一一對(duì)應(yīng)的關(guān)系。一個(gè)程序可由多個(gè)進(jìn)程共用;另一方面,一個(gè)

進(jìn)程在其活動(dòng)中又可順序地執(zhí)行若干個(gè)程序。一個(gè)程序,運(yùn)行一次,便創(chuàng)建了一個(gè)進(jìn)程;

同一個(gè)程序,若運(yùn)行十次,就產(chǎn)生了十個(gè)進(jìn)程。

(4)各個(gè)進(jìn)程在并發(fā)執(zhí)行過(guò)程中會(huì)產(chǎn)生相互制約關(guān)系,造成各自前進(jìn)速度的不可預(yù)

測(cè)性。而程序本身是靜態(tài)的,不存在這種異步特征。

3.程序并發(fā)執(zhí)行,為什么會(huì)失去封閉性和可再現(xiàn)性?

【解答】在程序并發(fā)執(zhí)行的環(huán)境下,多個(gè)進(jìn)程共享系統(tǒng)中的資源,這些資源是否被使

用,及每一時(shí)刻由哪個(gè)進(jìn)程使用,將由多個(gè)進(jìn)程的相互作用而決定。這樣,程序的執(zhí)行就

失去了封閉性。某個(gè)進(jìn)程的執(zhí)行必然受到其它進(jìn)程的影響。

由于進(jìn)程在并發(fā)執(zhí)行的過(guò)程中失去了封閉性,當(dāng)下一次再運(yùn)行該程序時(shí),系統(tǒng)中存在

的進(jìn)程及各進(jìn)程的狀態(tài)都可能發(fā)生變化,導(dǎo)致進(jìn)程的執(zhí)行失去可再現(xiàn)性。

4.什么叫進(jìn)程的并發(fā)性?試舉一個(gè)進(jìn)程并發(fā)執(zhí)行的例子。

【解答】多個(gè)進(jìn)程在同一時(shí)間間隔內(nèi)同時(shí)發(fā)生,叫做進(jìn)程的并發(fā)性。

例如:我們?cè)贚inux系統(tǒng)下使用編輯器vi進(jìn)行編輯,而此時(shí)系統(tǒng)正在后臺(tái)運(yùn)行一個(gè)編

譯程序,此時(shí),兩個(gè)進(jìn)程并發(fā)執(zhí)行。

5.舉一個(gè)例子,說(shuō)明一個(gè)程序可能同時(shí)屬于多個(gè)進(jìn)程。

【解答】例如:超市的收銀系統(tǒng)。在每個(gè)終端上,收銀員在運(yùn)行收款程序,因此每個(gè)

收銀員都在執(zhí)行一個(gè)進(jìn)程。超市里同時(shí)有很多收款終端,同一個(gè)程序被并發(fā)執(zhí)行多次,造

成了多個(gè)進(jìn)程并發(fā)執(zhí)行。

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

【解答】PCB的作用是:在一個(gè)在多道程序環(huán)境下,集中反映了一個(gè)進(jìn)程的動(dòng)態(tài)特

征。在進(jìn)程并發(fā)執(zhí)行時(shí),由于資源共享,帶來(lái)各進(jìn)程之間的相互制約。顯然,為了反映這

些制約關(guān)系和資源共享關(guān)系,必須使用PCB中的信息,才能對(duì)進(jìn)程實(shí)施有效的管理和控

制。

?12?操作系統(tǒng)實(shí)訓(xùn)

PCB是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)中非常重要的數(shù)據(jù)結(jié)構(gòu),存放著進(jìn)程所需的運(yùn)

行信息和控制信息,系統(tǒng)在創(chuàng)建進(jìn)程時(shí),首先創(chuàng)建PCB,然后通過(guò)PCB感知進(jìn)程的存

在,進(jìn)程在被撤消時(shí),PCB也隨之被撤消。因此,PCB是進(jìn)程存在的惟一標(biāo)志。

7.說(shuō)明進(jìn)程由哪幾部分構(gòu)成?

【解答】進(jìn)程實(shí)體通常就是由程序、數(shù)據(jù)集合和PCB這三部分構(gòu)成,也稱為“進(jìn)程映

像”。

8.什么叫臨界區(qū)?為什么進(jìn)程在進(jìn)入臨界區(qū)之前,要先執(zhí)行申請(qǐng)操作,離開(kāi)臨界

區(qū),要做釋放操作?

【解答】將每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段代碼稱為臨界區(qū),因此也可以說(shuō):不能被

多個(gè)進(jìn)程同時(shí)進(jìn)入的程序或數(shù)據(jù)區(qū)域叫做臨界區(qū)。

因?yàn)榕R界區(qū)不能由多個(gè)進(jìn)程同時(shí)進(jìn)入,因此,在進(jìn)入臨界區(qū)之前,要先執(zhí)行申請(qǐng)操

作,確保在沒(méi)有其它進(jìn)程進(jìn)入的情況下,該進(jìn)程才能進(jìn)入該臨界區(qū);在離開(kāi)臨界區(qū)之前,

要做釋放操作,以便其它進(jìn)程可以進(jìn)入該臨界區(qū)。

9.試說(shuō)明進(jìn)程的基本狀態(tài)及轉(zhuǎn)換的原因。

【解答】在操作系統(tǒng)中,進(jìn)程通常至少有三種基本狀態(tài):就緒狀態(tài)、執(zhí)行狀態(tài)、阻塞

狀態(tài)。

進(jìn)程狀態(tài)轉(zhuǎn)換的原因是:系統(tǒng)中的進(jìn)程是并發(fā)執(zhí)行的。在系統(tǒng)中,CPU在不同的時(shí)

間,按一定的算法為不同的進(jìn)程服務(wù);系統(tǒng)中的資源是有限的;各進(jìn)程之間存在相互作

用。因此,進(jìn)程并非固定處于某個(gè)狀態(tài),它將隨著自身的推進(jìn)和外界條件的變化而發(fā)生變

化。對(duì)于一個(gè)系統(tǒng),處于就緒狀態(tài)的進(jìn)程,在調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)之后,該進(jìn)程便

由就緒態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)。當(dāng)前進(jìn)程,如果因分配給它的時(shí)間片已用完而被暫停執(zhí)行時(shí),

該進(jìn)程便由執(zhí)行狀態(tài)又回到就緒狀態(tài);一個(gè)處在執(zhí)行狀態(tài)的進(jìn)程,因?yàn)榈却惩獠渴录l(fā)

生,而使該進(jìn)程狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。一個(gè)處于阻塞狀態(tài)的進(jìn)程,當(dāng)它所需的外部事件滿

足,它應(yīng)由阻塞狀態(tài)變?yōu)榫途w狀態(tài)。

10.在創(chuàng)建一個(gè)進(jìn)程時(shí),所要做的工作有哪些?

【解答】操作系統(tǒng)通過(guò)進(jìn)程創(chuàng)建原語(yǔ)來(lái)創(chuàng)建一個(gè)進(jìn)程。創(chuàng)建原語(yǔ)通過(guò)下述步驟創(chuàng)建一

個(gè)進(jìn)程:

(1)申請(qǐng)空白PCBo

(2)為新進(jìn)程分配資源。

(3)初始化進(jìn)程控制塊。

(4)將新建進(jìn)程插入就緒態(tài)隊(duì)列。

11.從概念上說(shuō)明記錄型信號(hào)量的構(gòu)成,描述wait原語(yǔ)和signal原語(yǔ)所進(jìn)行的操作。

【解答】記錄型信號(hào)量的數(shù)據(jù)結(jié)構(gòu)由兩部分構(gòu)成,即:數(shù)值分量和指針?lè)至?。?shù)值表

示系統(tǒng)中可用的該類臨界資源的數(shù)量,而指針?lè)至繛檫M(jìn)程鏈表指針,指向等待該類資源的

PCB隊(duì)列。

申請(qǐng)臨界資源的原語(yǔ)wait操作可描述為:

procedurewait(S)

varS:semaphore;

begin

s:=s-l;

ifs20then本進(jìn)程繼續(xù);

else

將本進(jìn)程放入阻塞態(tài)隊(duì)列;

轉(zhuǎn)進(jìn)程調(diào)度

end

釋放臨界資源的原語(yǔ)signal操作可描述為:

proceduresignal(S)

varS:semaphore;

begin

s:=s+l;

ifsWOthen喚醒指針L所指的阻塞態(tài)進(jìn)程;;

end

12.在生產(chǎn)者一消費(fèi)者問(wèn)題中,如果缺少了signal(fuU)或signal(empty),對(duì)執(zhí)行結(jié)果

將會(huì)有何影響?

【解答】若缺少釋放資源的原語(yǔ)操作,則會(huì)導(dǎo)致生產(chǎn)者或消費(fèi)者進(jìn)程不能再繼續(xù)工

作。

如缺少了signal(full),則消費(fèi)者進(jìn)程可能得不到所需的臨界資源如緩沖區(qū),不能取一

件產(chǎn)品;

同樣地,如果缺少signal(empty),則生產(chǎn)者進(jìn)程又可能得不到所需的資源,不能存放

一件產(chǎn)品。

13.在生產(chǎn)者一消費(fèi)者問(wèn)題中,如果兩個(gè)wait操作即wait(mutex)和wait(empty)位置

互換,會(huì)產(chǎn)生什么后果?

【解答】如果兩個(gè)wait操作即wait(mutex)和wait(empty)位置互換,則有可能產(chǎn)生死

鎖。

14.進(jìn)程的高級(jí)通信方式有哪幾種?

【解答】高級(jí)通信方式可分為三大類:共享存儲(chǔ)器系統(tǒng)、消息傳遞系統(tǒng)和管道通信系

統(tǒng)。

在共享存儲(chǔ)器系統(tǒng)中,相互通信的進(jìn)程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲(chǔ)區(qū);消息傳遞系

統(tǒng)中,進(jìn)程間的數(shù)據(jù)交換以消息為單位,用戶直接利用系統(tǒng)提供的一組通信原語(yǔ)來(lái)實(shí)現(xiàn)通

信,消息傳遞系統(tǒng)可分為消息緩沖通信和信箱通信;管道通信通信的方法是,向管道提供

輸入的發(fā)送進(jìn)程以字符流形式將大量的數(shù)據(jù)送入管道,而接受管道輸出的接收進(jìn)程可從管

道中接收數(shù)據(jù)。

15.什么是線程?說(shuō)明它與進(jìn)程的主要區(qū)別。

【解答】線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位,亦即執(zhí)行處理機(jī)調(diào)度的基本單位。

線程與進(jìn)程的的主要區(qū)別:

(1)調(diào)度性方面:進(jìn)程是資源分配的基本單位。而線程是分配處理機(jī)的基本單位,

它與資源分配無(wú)關(guān)。即真正在處理機(jī)上運(yùn)行的是線程。

(2)擁有資源方面:進(jìn)程是擁有資源的獨(dú)立單位,而線程基本是不擁有資源的。同

一進(jìn)程的線程共用該進(jìn)程的資源。

(3)并發(fā)性方面:進(jìn)程和線程都可以并發(fā)執(zhí)行。但同一個(gè)進(jìn)程的線程在并發(fā)執(zhí)行

?14?操作系統(tǒng)實(shí)訓(xùn)

時(shí),狀態(tài)轉(zhuǎn)換速度較快。

(4)系統(tǒng)開(kāi)銷方面:進(jìn)程在創(chuàng)建、狀態(tài)轉(zhuǎn)換、撤消時(shí)開(kāi)銷較大,而對(duì)于同樣的工

作,線程的開(kāi)銷較小。

16.什么是多線程機(jī)制?引入它有什么好處?

【解答】多線程機(jī)制是指操作系統(tǒng)支持在一個(gè)進(jìn)程內(nèi)執(zhí)行多個(gè)線程的能力。

引入線程的好處有以下幾點(diǎn):

(1)易于調(diào)度。由于線程只作為獨(dú)立調(diào)度的基本單位,同一進(jìn)程的多個(gè)線程共享進(jìn)

程的資源,所以線程易于切換。

(2)提高了系統(tǒng)的效率。通過(guò)線程可方便有效地實(shí)現(xiàn)并發(fā)性。進(jìn)程可創(chuàng)建多個(gè)線程

來(lái)執(zhí)行同一程序的不同部分。

(3)創(chuàng)建一個(gè)線程比創(chuàng)建一個(gè)進(jìn)程花費(fèi)的開(kāi)銷少,創(chuàng)建速度快。

(4)在多處理器的系統(tǒng)中,有利于發(fā)揮多處理器的功能,提高進(jìn)程的并行性。

17.在讀者一寫(xiě)者問(wèn)題中,如果修改問(wèn)題中的同步算法,要求對(duì)寫(xiě)進(jìn)程優(yōu)先,即一旦

寫(xiě)進(jìn)程到達(dá),后續(xù)的讀者進(jìn)程必須等待,而無(wú)論是否有讀者進(jìn)程在讀文件。寫(xiě)出相應(yīng)進(jìn)程

的程序段。

【解答】增加一個(gè)信號(hào)量S,用于在寫(xiě)進(jìn)程到達(dá)后封鎖后續(xù)的讀進(jìn)程。

semaphoreS=l;

在讀進(jìn)程開(kāi)頭,增加兩句:

P(S);

V(S);

即所有訪問(wèn)該文件的進(jìn)程,在申請(qǐng)讀以前,先申請(qǐng)信號(hào)量S。如果沒(méi)有寫(xiě)進(jìn)程,則可

以直接通過(guò);如果存在寫(xiě)進(jìn)程,則該信號(hào)量S申請(qǐng)不到,該讀者進(jìn)程等待。

對(duì)于寫(xiě)進(jìn)程,首先該申請(qǐng)信號(hào)量S,由于讀者進(jìn)程申請(qǐng)到以后接著釋放該信號(hào)量,所

以寫(xiě)者進(jìn)程更容易申請(qǐng)到So寫(xiě)者進(jìn)程申請(qǐng)到S以后,直到寫(xiě)操作完成以后才釋放該信號(hào)

量。因此,讀者進(jìn)程和寫(xiě)進(jìn)程改為:

Var:rmutex,wmutex:semaphore:=l,1;

Readcount:integer:=0;

begin

parbegin

讀者進(jìn)程:

Reader:

begin

repeat

wait(s);

signal(s);

wait(rmutex);

ifreadcount=0thenwait(wmutex);

readcount:=Readcount+1;

signal(nnutcx);

進(jìn)行讀操作;

wait(rmutex);

readcount:=readcount-l;

ifreadcount=0thensignal(wmutex);

signal(rmutex);

untilfalse;

end

寫(xiě)者進(jìn)程:

writer:

begin

repeat

wait(s);

wait(wmutex);

執(zhí)行寫(xiě)操作;

signal(wmutex);

signal(s);

untilfalse;

end

parend

end

18.試?yán)糜涗浶托盘?hào)量寫(xiě)出一個(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問(wèn)題的算法。

【解答】有多種算法可解決該問(wèn)題。

方法(1)至多只允許有四位哲學(xué)家同時(shí)去拿左邊的筷子。

實(shí)現(xiàn)方法:在每個(gè)進(jìn)程的程序段前定義一個(gè)信號(hào)量S,初值為4,每個(gè)哲學(xué)家在使用

筷子之前,先申請(qǐng)信號(hào)量S,吃完放下筷子后,再釋放S。各進(jìn)程執(zhí)行的程序段為:

Pi()

Begin

S:semaphore=4

Varchopstick:array[0,4]ofsemaphore=[1,1,1,1,1];

repeat

wait(s);

wait(chopstick(i]);

wait(chopstick[(i+l)mod5]);

eat;

signal(chopstick[i]);

signal(chopstick[(i+1)mod5]);

signal(s);

think;

untilfalse;

end

方法(2)僅當(dāng)哲學(xué)家的左、右兩只筷子均可用時(shí).,才允許他拿起筷子進(jìn)餐。解決的

方法:可用AND型信號(hào)量。各進(jìn)程執(zhí)行的程序段為:

Pi()

begin

?16?操作系統(tǒng)實(shí)訓(xùn)

Varchopstick:array[0,4]ofsemaphore=[1,1,1,1,1];

repeat

wait(chopstick[i],chopstick[(i+l)mod5]);

eat;

signal(chopstick[i|,chopstick[(i+l)mod5]);

think;

untilfalse;

end

方法(3)規(guī)定奇數(shù)號(hào)哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數(shù)號(hào)

哲學(xué)家則相反。

實(shí)現(xiàn)的方法:在第i個(gè)哲學(xué)家所執(zhí)行的程序段中判定i的值是偶數(shù)還是奇數(shù),然后再

做資源申請(qǐng)。各進(jìn)程執(zhí)行的程序段為:

Pi()

begin

Varchopstick:array[0,4]ofsemaphore=[1,1,1,1J];

repeat

ifimod2==1then

)wait(chopstick|i|);

wait(chopstick[(i+l)mod5]);}

else

{wait(chopstickl(i+1)mod5]);

wait(chopstick[i]);)

eat:

signal(chopstick[i]);

signal(chopstick[(i+l)mod5]);

think;

untilfalse;

end

19.設(shè)公共汽車上有一位司機(jī)和一位售票員,它們的活動(dòng)如下:

售票員進(jìn)程:

開(kāi)車門

關(guān)車門

售票

請(qǐng)分析司機(jī)與售票員之間的同步關(guān)系,如何用P、V操作實(shí)現(xiàn)。

【解答】為了安全起見(jiàn),顯然要求:關(guān)車門后才能啟動(dòng)車輛;到站后才能開(kāi)車門。所

以司機(jī)和售票員在到站、開(kāi)門、關(guān)門、啟動(dòng)車輛這幾個(gè)活動(dòng)之間存在著同步關(guān)系。兩個(gè)信

號(hào)量SI、S2分別表示可以開(kāi)車和可以開(kāi)門,S1的初值為1,S2的初值為0。用PV操作實(shí)

現(xiàn)司機(jī)進(jìn)程和售票員進(jìn)程同步的算法描述如下:

semaphoresl,s2:=l,0;

main()

{cobegin

driver();

busman();

coend

)

driver()

{

while(l)

p(sl);

啟動(dòng)車輛;

正常行車:

到站停車;

V(s2);

)

busman()

{while(l)

P(s2);

開(kāi)車門;

等待上下乘客;

關(guān)車門;

V(sl);

售票;

)

[注:為提高系統(tǒng)的效率,提高進(jìn)程的并發(fā)性,將售票放在汽車行駛的過(guò)程中。]

第4章存儲(chǔ)管理課后習(xí)題解答

i.存儲(chǔ)管理的功能是什么?

【解答】存儲(chǔ)管理的主要功能是:

(1)內(nèi)存分配。內(nèi)存分配的任務(wù)是為每道作業(yè)分配一定的內(nèi)存空間。往往會(huì)出現(xiàn)多

道程序?qū)?nèi)存的需求總和超過(guò)實(shí)際內(nèi)存空間,因此,制定分配策略時(shí)應(yīng)以提高內(nèi)存利用率

為目標(biāo)。

(2)地址轉(zhuǎn)換映射。一個(gè)應(yīng)用程序經(jīng)編譯后形成很多目標(biāo)程序,這些目標(biāo)程序經(jīng)過(guò)

連接后形成可執(zhí)行程序。需要把邏輯地址轉(zhuǎn)換成物理地址。

(3)內(nèi)存保護(hù)。內(nèi)存保護(hù)的任務(wù)是確保每道用戶程序都在自己的內(nèi)存空間中運(yùn)行,

?18?操作系統(tǒng)實(shí)訓(xùn)

互不干擾。

(4)內(nèi)存擴(kuò)充。在多道程序環(huán)境中,內(nèi)存資源比較緊張,往往會(huì)出現(xiàn)多道程序?qū)?nèi)

存的需求總和超過(guò)實(shí)際容量的情況。這時(shí)要進(jìn)行內(nèi)存擴(kuò)充,擴(kuò)充的方式采用虛擬存儲(chǔ)器的

方式進(jìn)行。

2.存儲(chǔ)分配的方式有幾種?

【解答】存儲(chǔ)分配的方式有連續(xù)存儲(chǔ)分配和非連續(xù)的存儲(chǔ)方式兩大類。

連續(xù)的存儲(chǔ)分配的方式包括單連續(xù)存儲(chǔ)分配、固定分區(qū)分配方式、動(dòng)態(tài)分區(qū)分配方

式、可重定位的分區(qū)分配方式。非連續(xù)的存儲(chǔ)分配方式包括分段存儲(chǔ)管理、分頁(yè)存儲(chǔ)管

理、段頁(yè)式存儲(chǔ)管理三種方式。

3.什么叫虛擬存儲(chǔ)器?

【解答】基于局部性的原理,作業(yè)在裝入之前,沒(méi)有必要一次性裝入內(nèi)存,僅將要運(yùn)

行的部分裝入到內(nèi)存,其余的仍然放在磁盤上。當(dāng)程序要訪問(wèn)的頁(yè)沒(méi)有裝入到內(nèi)存時(shí),將

它們裝入到內(nèi)存,繼續(xù)運(yùn)行。若內(nèi)存已經(jīng)滿,則將內(nèi)存中暫時(shí)不用的頁(yè)調(diào)出內(nèi)存,釋放所

占的內(nèi)存空間,將要訪問(wèn)的頁(yè)調(diào)入內(nèi)存執(zhí)行。這樣就可以在較大的程序調(diào)到一個(gè)較小的內(nèi)

存空間上運(yùn)行。從用戶角度看,該系統(tǒng)所具有的內(nèi)存容量比實(shí)際的內(nèi)存容量要大的多,人

們把這樣的存儲(chǔ)器稱為虛擬存儲(chǔ)器。

4.簡(jiǎn)述目前常用的幾種分區(qū)分配方式。

【解答】目前常用的分區(qū)分配方式有分頁(yè)存儲(chǔ)管理、分段存儲(chǔ)管理、段頁(yè)式存儲(chǔ)管

理、請(qǐng)求分頁(yè)式存儲(chǔ)管理、請(qǐng)求分段式存儲(chǔ)管理和請(qǐng)求段頁(yè)式存儲(chǔ)管理。

5.簡(jiǎn)述請(qǐng)求頁(yè)式存儲(chǔ)管理的實(shí)現(xiàn)思想。

【解答】請(qǐng)求分頁(yè)式存儲(chǔ)管理是建立在頁(yè)式存儲(chǔ)管理的基礎(chǔ)之上的一種存儲(chǔ)管理方

式。是一種常用的虛擬存儲(chǔ)方式。它需要軟、硬件的支持。換進(jìn)和換出的基本單位是頁(yè)

面。

6.缺頁(yè)中斷和一般中斷的區(qū)別是什么?

【解答】缺頁(yè)中斷作為中斷,同樣要經(jīng)過(guò)CPU現(xiàn)場(chǎng)、分析中斷原因、轉(zhuǎn)缺頁(yè)中斷處理

程序進(jìn)行處理、恢復(fù)CPU現(xiàn)場(chǎng)等步驟。但缺頁(yè)中斷又是一種特殊的中斷,它與一般中斷的

主要區(qū)別是:

(1)在指令執(zhí)行期間產(chǎn)生和處理中斷信號(hào)。通常,CPU都是在一條指令執(zhí)行完后去

檢查是否有中斷請(qǐng)求到達(dá)。若有則去響應(yīng)中斷;否則繼續(xù)執(zhí)行下一條指令。而缺頁(yè)中斷是

在指令執(zhí)行期間,發(fā)現(xiàn)所要訪問(wèn)的指令或數(shù)據(jù)不在內(nèi)存時(shí)產(chǎn)生和處理的。

(2)一條指令在執(zhí)行期間可能產(chǎn)生多次缺頁(yè)中斷。例如,對(duì)于一條讀取數(shù)據(jù)的多字

節(jié)指令,指令本身跨越兩個(gè)頁(yè)面,假定指令后一部分所在頁(yè)面和數(shù)據(jù)所在的頁(yè)面均不在內(nèi)

存,則該指令的執(zhí)行至少產(chǎn)生兩次缺頁(yè)中斷。

7.已知頁(yè)面走向?yàn)?、2、1、3、1、2、4、2、1、3、4,且開(kāi)始執(zhí)行時(shí)主存中沒(méi)有頁(yè)

面。若只給該作業(yè)分配兩個(gè)物理塊,當(dāng)采用FIFO頁(yè)面淘汰算法時(shí)缺頁(yè)率為多少?假定現(xiàn)

在有一種淘汰算法,該算法淘汰頁(yè)面的策略為當(dāng)需要淘汰頁(yè)面時(shí),就把剛使用過(guò)的頁(yè)面作

為淘汰對(duì)象,試問(wèn)相同的頁(yè)面走向,其缺頁(yè)率又為多少?

【解答】在進(jìn)行內(nèi)存訪問(wèn)時(shí),若訪問(wèn)的頁(yè)以在主存,則稱此次訪問(wèn)成功。若訪問(wèn)的頁(yè)

不在主存,則稱此次訪問(wèn)失敗。并產(chǎn)生缺頁(yè)中斷。若程序P在運(yùn)行過(guò)程中訪問(wèn)頁(yè)面的總次

數(shù)為S,其中產(chǎn)生缺頁(yè)中斷的訪問(wèn)次數(shù)為f,則其缺頁(yè)率為f/s.

采用FIFO淘汰算法的頁(yè)面置珈的情詞如表4-1所示:

頁(yè)率為9/11。

若采用后一種頁(yè)面淘汰策略,其頁(yè)面置換的情況為:

8.表給出了某系統(tǒng)中的空閑分區(qū)表,系統(tǒng)采用可變分區(qū)存儲(chǔ)管理策略。現(xiàn)有以下的作業(yè)

序列:96k、20K、200K?若用首次適應(yīng)算法和最佳適應(yīng)算法來(lái)處理這些作業(yè)序列,試問(wèn)

哪一種算法可以滿足該作業(yè)序列的要求?為什么?

表4-3

分區(qū)號(hào)大小起始地址

132k100k

210k150k

35k200k

4218k220k

596k530k

【解答】首次適應(yīng)算法要求空閑分區(qū)按地址遞增的次序排列,在進(jìn)行內(nèi)存分配時(shí),總

是從空閑分區(qū)表首開(kāi)始順序查找,直到找到第一個(gè)能滿足大小要求的空閑分區(qū)為止。然后

再按作業(yè)大小,從該分區(qū)劃出一塊內(nèi)存空間分配給請(qǐng)求者。余下的空閑分區(qū)仍然留在空閑

分區(qū)表中。

最佳適應(yīng)算法要求空閑分區(qū)按大小遞增的次序排列。在進(jìn)行內(nèi)存分配時(shí),總是從空閑

分區(qū)首開(kāi)始順序查尋,直到找到第一個(gè)能滿足其大小的空閑分區(qū)為止。如果該空閑分區(qū)大

于作業(yè)的大小,則與首次適應(yīng)算法相同,將剩余空閑區(qū)仍留在空閑分區(qū)表中。

若采用最佳適用算法,在申請(qǐng)96K存儲(chǔ)區(qū)時(shí),選中的是5號(hào)分區(qū),5號(hào)分區(qū)大小與申

表4-4

?20?操作系統(tǒng)實(shí)訓(xùn)

請(qǐng)空間大小一致,應(yīng)從空閑分區(qū)表中刪去該表項(xiàng);接著申請(qǐng)20K時(shí),選中1號(hào)分區(qū),分配

后2號(hào)分區(qū)還剩12K;最后申請(qǐng)200K,選中4號(hào)分區(qū),分配后剩18K。顯然采用最佳適應(yīng)

算法進(jìn)行內(nèi)存分配,可以滿足該作業(yè)序列的需求。為作業(yè)序列分配了內(nèi)存空間后,空閑分

區(qū)表如表44所示。

分區(qū)號(hào)大小起始地址

112k100k

210k150k

35k200k

418k220k

表4-5

分區(qū)號(hào)大小起始地址

112k100k

210k150k

35k200k

4122k220k

596k530k

9.在某系統(tǒng)中,采用固定分區(qū)分配管理方式中,內(nèi)存分區(qū)(單位字節(jié))情況如下圖所

示?,F(xiàn)有大小為Ik,9k,33K,121k的多個(gè)作業(yè)要求進(jìn)入內(nèi)存,試畫(huà)出它們進(jìn)入內(nèi)存后

的空間分配情況,并說(shuō)明主存浪費(fèi)多大?

【解答】該題有四個(gè)分區(qū),第一分區(qū)大小為8k,第二分區(qū)大小為32k,第三分區(qū)大小為

120k,第四分區(qū)大小為332k.該作業(yè)進(jìn)入系統(tǒng)后的內(nèi)存分配情況如下面的圖形所示。

想作系統(tǒng)第一分區(qū)

第二分區(qū)

.第三分區(qū)

.第四分區(qū)

512k-l

圖4-1圖4-2

從圖中可以看出,作業(yè)進(jìn)入系統(tǒng)后,第一分區(qū)剩余空間為7k,第二分區(qū)剩余空間為

23k,第三個(gè)分區(qū)剩余空間為87k,第四個(gè)分區(qū)剩余空間為211k,主存空間浪費(fèi)328k。

10.有一個(gè)分頁(yè)存儲(chǔ)管理系統(tǒng),頁(yè)面大小為每頁(yè)100字節(jié)。有一個(gè)50X50的整型數(shù)

組,按行連續(xù)存放,每個(gè)整數(shù)占兩個(gè)字節(jié),將數(shù)組初始化為0的程序描述如下:

inta|501(50];

溫馨提示

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

評(píng)論

0/150

提交評(píng)論