計(jì)算機(jī)操作系統(tǒng)習(xí)題答案_第1頁
計(jì)算機(jī)操作系統(tǒng)習(xí)題答案_第2頁
計(jì)算機(jī)操作系統(tǒng)習(xí)題答案_第3頁
計(jì)算機(jī)操作系統(tǒng)習(xí)題答案_第4頁
計(jì)算機(jī)操作系統(tǒng)習(xí)題答案_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章os引論

1.設(shè)計(jì)現(xiàn)代OS的主要目標(biāo)是什么?方便性,有效性,可擴(kuò)充性和開放性.

2.OS的作用可表現(xiàn)為哪幾個(gè)方面?a.OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接

口;b.OS作為計(jì)算機(jī)系統(tǒng)資源的管理者;c.OS作為擴(kuò)充機(jī)器.

4.試說明推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁??不斷提高?jì)算機(jī)

資源利用率和系統(tǒng)吞吐量的需要;

5.何謂脫機(jī)I/O和聯(lián)機(jī)I/O?a.脫機(jī)輸入輸出方式(Off-LineI/O)是為了解決人機(jī)矛

盾及CPU和I/O設(shè)備之間速度不匹配而提出的.

它減少了CPU的空閑等待時(shí)間,提高了I/O速度.具體內(nèi)容是將用戶程序和數(shù)據(jù)

在一臺(tái)外圍機(jī)的控制下,預(yù)先從低速輸入設(shè)備輸入到磁帶上,當(dāng)CPU需要這些

程序和數(shù)據(jù)時(shí),在直接從磁帶機(jī)高速輸入到內(nèi)存,從而大大加快了程序的輸入過

程,減少了CPU等待輸入的時(shí)間,這就是脫機(jī)輸入技術(shù);當(dāng)程序運(yùn)行完畢或告一

段落,CPU需要輸出時(shí)一,無需直接把計(jì)算結(jié)果送至低速輸出設(shè)備,而是高速把結(jié)

果輸出到磁帶上,然后在外圍機(jī)的控制下,把磁帶上的計(jì)算結(jié)果由相應(yīng)的輸出設(shè)

備輸出,這就是脫機(jī)輸出技術(shù).

b.若這種輸入輸出操作在主機(jī)控制下進(jìn)行則稱之為聯(lián)機(jī)輸入輸出方式.

6.試說明推動(dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁矗?/p>

用戶的需要.即對(duì)用戶來說,更好的滿足了人-機(jī)交互,共享主機(jī)以及便于用戶上

機(jī)的需求.

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

a.關(guān)鍵問題:及時(shí)接收,及時(shí)處理;

b.對(duì)于及時(shí)接收,只需在系統(tǒng)中設(shè)置一多路卡,多路卡作用是使主機(jī)能同時(shí)接收

用戶從各個(gè)終端上輸入的數(shù)據(jù);

一對(duì)于及時(shí)處理,應(yīng)使所有的用戶作業(yè)都直接進(jìn)入內(nèi)存,在不長(zhǎng)的時(shí)間內(nèi),能使

每個(gè)作業(yè)都運(yùn)行一次.

8為什么要引入實(shí)時(shí)操作系統(tǒng)?更好地滿足實(shí)時(shí)控制領(lǐng)域和實(shí)時(shí)信息處理領(lǐng)域

的需要.

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

a.分時(shí)系統(tǒng)是一種通用系統(tǒng),主要用于運(yùn)行終端用戶程序,因而它具有較強(qiáng)的

交互能力;而實(shí)時(shí)系統(tǒng)

雖然也有交互能力,但其交互能力不及前者.

b.實(shí)時(shí)信息系統(tǒng)對(duì)實(shí)用性的要求與分時(shí)系統(tǒng)類似,都是以人所能接收的等待時(shí)

間來確定;而實(shí)時(shí)控制

系統(tǒng)的及時(shí)性則是以控制對(duì)象所要求的開始截止時(shí)間和完成截止時(shí)間來確定的.

c.實(shí)時(shí)系統(tǒng)對(duì)系統(tǒng)的可靠性要求要比分時(shí)系統(tǒng)對(duì)系統(tǒng)的可靠性要求高.

13OS具有哪幾大特征?它的最基本特征是什么?

a.并發(fā)(Concurrence),共享(Sharing),虛擬(Virtual),異步性(Asynchronism).b.其中

最基本特征是并發(fā)和共享.

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

a.進(jìn)程控制,進(jìn)程同步,進(jìn)程通信和調(diào)度b進(jìn)程控制的主要任務(wù)是為作業(yè)創(chuàng)建

進(jìn)程,撤銷已結(jié)束的進(jìn)程,以及控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換.

一進(jìn)程同步的主要任務(wù)是對(duì)諸進(jìn)程的運(yùn)行進(jìn)行調(diào)節(jié).

一進(jìn)程通信的任務(wù)是實(shí)現(xiàn)在相互合作進(jìn)程之間的信息交換.

-調(diào)度分為作業(yè)調(diào)度和進(jìn)程調(diào)度.作業(yè)調(diào)度的基本任務(wù)是從后備隊(duì)列中按照一定

的算法,選擇出若干個(gè)作業(yè),為它們分配必要的資源;而進(jìn)程調(diào)度的任務(wù)是從進(jìn)程

的就緒隊(duì)列中,按照一定的算法選出一新進(jìn)程,把處理機(jī)分配給它,并為它設(shè)置

運(yùn)行現(xiàn)場(chǎng),是進(jìn)程投入運(yùn)行.

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

a.主要功能:內(nèi)存分配,內(nèi)存保護(hù),地址映射和內(nèi)存擴(kuò)充等.

b.內(nèi)存分配的主要任務(wù)是為每道程序分配內(nèi)存空間,提高存儲(chǔ)器利用率,以減

少不可用的內(nèi)存空間,

允許正在運(yùn)行的程序申請(qǐng)附加的內(nèi)存空間,以適應(yīng)程序和數(shù)據(jù)動(dòng)態(tài)增長(zhǎng)的需要.

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

擾.

一地址映射的主要任務(wù)是將地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間中與之對(duì)應(yīng)

的物理地址.

一內(nèi)存擴(kuò)充的主要任務(wù)是借助虛擬存儲(chǔ)技術(shù),從邏輯上去擴(kuò)充內(nèi)存容量.

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

a.主要功能:緩沖管理,設(shè)備分配和設(shè)備處理,以及虛擬設(shè)備等.

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

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

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

a.主要功能:對(duì)文件存儲(chǔ)空間的管理,目錄管理,文件的讀,寫管理以及文件

的共享和保護(hù).

b.主要任務(wù):對(duì)用戶文件和系統(tǒng)文件進(jìn)行管理,以方便用戶使用,并保證文件

的安全性.

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

a.程序執(zhí)行結(jié)果是不確定的,即程序是不可再現(xiàn)的.

b.每個(gè)程序在何時(shí)執(zhí)行,多個(gè)程序間的執(zhí)行順序以及完成每道程序所需的時(shí)間

都是不確定的,即不可預(yù)知性.

第二章

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

SI:a=5-x;S2:b=a*x;S3:c=4*x;S4:d=b+c;S5:e=d+3.

S1->S2->S4->S5

......S3

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

因?yàn)槌绦蛟诓l(fā)執(zhí)行過程中存在相互制約性.

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

因?yàn)槌绦虿l(fā)執(zhí)行時(shí)一,多個(gè)程序共享系統(tǒng)中的各種資源,資源狀態(tài)需要多個(gè)程

序來改變,即存在資源共

享性使程序失去封閉性;而失去了封閉性導(dǎo)致程序失去可再現(xiàn)性.

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

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

描述,而引入了進(jìn)程概念.

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

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

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

不到資源而暫停執(zhí)行,

以及由撤銷而消亡,因而進(jìn)程由一定的生命期;而程序只是一組有序指令的集合,

是靜態(tài)實(shí)體.

b.并發(fā)性是進(jìn)程的重要特征,同時(shí)也是OS的重要特征.引入進(jìn)程的目的正是為

了使其程序能和其它進(jìn)程

的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的.

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

得資源和獨(dú)立調(diào)度的基本

單位.而對(duì)于未建立任何進(jìn)程的程序,都不能作為一個(gè)獨(dú)立的單位參加運(yùn)行.

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

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

錄了操作系統(tǒng)所需的用于

描述進(jìn)程情況及控制進(jìn)程運(yùn)行所需的全部信息.因而它的作用是使一個(gè)在多道程

序環(huán)境下不能獨(dú)立運(yùn)行

的程序(含數(shù)據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能和其它進(jìn)程并發(fā)執(zhí)行

的進(jìn)程.

b.在進(jìn)程的整個(gè)生命周期中,系統(tǒng)總是通過其PCB對(duì)進(jìn)程進(jìn)行控制,系統(tǒng)是根

據(jù)進(jìn)程的PCB而不是任何別的什么而感知到該進(jìn)程的存在的,所以說,PCB是

進(jìn)程存在的唯一標(biāo)志.

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

a.處于就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)后,該進(jìn)程便由就緒

狀態(tài)變?yōu)閳?zhí)行狀態(tài).

b.當(dāng)前進(jìn)程因發(fā)生某事件而無法執(zhí)行,如訪問已被占用的臨界資源,就會(huì)使進(jìn)程

由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽?/p>

塞狀態(tài).

C.當(dāng)前進(jìn)程因時(shí)間片用完而被暫停執(zhí)行,該進(jìn)程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài).

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

a.引入掛起狀態(tài)處于5中需要:終端用戶的需要,父進(jìn)程的需要,操作系統(tǒng)的需

要,對(duì)換的需要和負(fù)荷

調(diào)節(jié)的需要.

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

10在進(jìn)行進(jìn)程切換時(shí),所要保存的處理機(jī)狀態(tài)信息主要有哪些?a.進(jìn)程當(dāng)前暫存

信息;

b.下一條指令地址信息;c.進(jìn)程狀態(tài)信息;d.過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址

信息.

11試說明引起進(jìn)程創(chuàng)建的主要事件a用戶登陸;b.作業(yè)調(diào)度;c.提供服務(wù);

d.應(yīng)用請(qǐng)求.

12試說明引起進(jìn)程撤消的主要事件a正常結(jié)束;b.異常結(jié)束;c.外界干預(yù);

13在創(chuàng)建一個(gè)進(jìn)程時(shí),需完成的主要工作是什么?a.操作系統(tǒng)發(fā)現(xiàn)請(qǐng)求創(chuàng)建新進(jìn)

程事件后,調(diào)用進(jìn)程創(chuàng)建原語Creat();b.申請(qǐng)空白PCB;c.為新進(jìn)程分配資源;

d.初始化進(jìn)程控制塊;e.將新進(jìn)程插入就緒隊(duì)列.

14在撤消一個(gè)進(jìn)程時(shí),需完成的主要工作是什么?a.OS調(diào)用進(jìn)程終止原語;b.根

據(jù)被終止進(jìn)程的標(biāo)志符,從PCB集合中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程

的狀態(tài);c.若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即中止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)

度標(biāo)志為真;d.若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終止;e.將

該進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程,或者歸還給系統(tǒng);f.將被終止

進(jìn)程(它的PCB)從所在隊(duì)列(或鏈表)中移出,等待其它程序來搜集信息.

15試說明引起進(jìn)程阻塞或被喚醒的主要事件是什么?a.請(qǐng)求系統(tǒng)服務(wù);b.啟動(dòng)

某種操作;c.新數(shù)據(jù)尚未到達(dá);d.無新工作可做.

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

執(zhí)行“退出區(qū)”代碼?

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

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

對(duì)資源進(jìn)行訪問,并設(shè)置正被訪問標(biāo)志,如果正被訪問,則本進(jìn)程不能進(jìn)入臨界

區(qū),實(shí)現(xiàn)這一功能的代碼成為“進(jìn)入?yún)^(qū)"代碼;在退出臨界區(qū)后,必須執(zhí)行“退出區(qū)

"代碼,用于恢復(fù)未被訪問標(biāo)志.

18.同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?為什么?a.空閑讓進(jìn)b忙則等待.c.有限等

待d讓權(quán)等待.

20.你認(rèn)為整型信號(hào)量機(jī)制和記錄型信號(hào)量機(jī)制,是否完全遵循了同步機(jī)構(gòu)的四

條準(zhǔn)則?

a.在整型信號(hào)量機(jī)制中,未遵循"讓權(quán)等待"的準(zhǔn)則b記錄型信號(hào)量機(jī)制完全遵

循了同步機(jī)構(gòu)的"空閑讓進(jìn),忙則等待,有限等待,讓權(quán)等待"四條準(zhǔn)則.

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

果會(huì)有何影響?

生產(chǎn)者一消費(fèi)者問題可描述如下:

varmutex,empty,full:semaphoresl,n,0;

buffer:array[0,...,n-l]ofitem;

in,out:integer:=0,0;

begin

parbegin

producer:begin

repeat

produceaniteminnextp;

wait(empty);

wait(mutex);

buffer(in)~nextp;

in:=(in+l)modn;

signal(mutex);

Irjc<|c5{cI

signal(full);

I*|c^{c51c*|c*|c^{cI

untilfalse;

end

consumer:begin

repeat

wait(full);

wait(mutex);

nextc~buffer(out);

out:=(out+l)modn;

signal(mutex);

I51crjc^{c<{c<{cI

signal(empty);

I*|c^{c*|c*{c*|cI

consumetheiteminnextc;

untilfalse;

end

parend

end

可見,生產(chǎn)者可以不斷地往緩沖池送消息,如果緩沖池滿,就會(huì)覆蓋原有數(shù)據(jù),

造成數(shù)據(jù)混亂.而消費(fèi)者始終因wait(full)操作將消費(fèi)進(jìn)程直接送入進(jìn)程鏈表進(jìn)行

等待,無法訪問緩沖池,造成無限等待.

24.在生產(chǎn)者一消費(fèi)者問題中,如果將兩個(gè)wait操作即wait(full)和wait(mutex)

互換位置;或者是將signal(mutex)與signal(full)互換位置結(jié)果會(huì)如何?

varmutex,empty,full:semaphore:=l,n,0;

buffer:array[0,...,n-l]ofitem;

in,out:integer:=0,0;

begin

parbegin

producer:begin

repeat

produceaniteminnextp;

wait(empty);

wait(mutex);

buffer(in)~nextp;

in:=(in+l)modn;

I/

signal(full);

signal(mutex);

I*}c*|c?|c/

untilfalse;

end

consumer:begin

repeat

I^|c*|c^|c^|c<|cj

wait(mutex);

wait(full);

I?|c*}c*|c?|cr|c*|c/

nextc~buffer(out);

out:=(out+l)modn;

signal(mutex);

signal(empty);

consumetheiteminnextc;

untilfalse;

end

parend

end

wait(full)和wait(mutex)互換位置后,因?yàn)閙utex在這兒是全局變量,執(zhí)行完

wait(mutex),貝ljmutex賦值為0,倘若full也為0,則該生產(chǎn)者進(jìn)程就會(huì)轉(zhuǎn)入進(jìn)程

鏈表進(jìn)行等待,而生產(chǎn)者進(jìn)程會(huì)因全局變量mutex為0而進(jìn)行等待,使full始終

為0,這樣就形成了死鎖.

而signal(mutex)與signal(full)互換位置后,從邏輯上來說應(yīng)該是一樣的.

25.我們?yōu)槟撑R界區(qū)設(shè)置一把鎖W,當(dāng)W=1時(shí),表示關(guān)鎖;W=0時(shí),表示鎖已

打開.試寫出開鎖原語和關(guān)鎖原語,并利用它們?nèi)?shí)現(xiàn)互斥.

開鎖原語:

unlock(W):

W=0;

關(guān)鎖原語:

lock(W);

if(W==l)dono_op;

W=l;

利用開關(guān)鎖原語實(shí)現(xiàn)互斥:

varW:semaphore:=0;

begin

parbegin

process:

begin

repeat

lock(W);

criticalsection

unlock(W);

remaindersection

untilfalse;

end

parend

26.試修改下面生產(chǎn)者一消費(fèi)者問題解法中的錯(cuò)誤:

producer:

begin

repeat

produceraniteminnextp;

wait(mutex);

wait(full);/*應(yīng)為wait(empty),而且還應(yīng)該在wait(mutex)的前面*/

buffer(in)~nextp;

/*緩沖池?cái)?shù)組游標(biāo)應(yīng)前移:in:=(in+l)modn;*/

signal(mutex);

/*signal(full);*/

untilfalse;

end

consumer:

begin

repeat

wait(mutex);

wait(empty);/*應(yīng)為wait(full),而且還應(yīng)該在wait(mutex)的前面*/

nextc:=buffer(out);

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

signal(mutex);

/*signal(empty);*/

consumeriteminnextc;

untilfalse;

end

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

設(shè)初始值為1的信號(hào)量c[I]表示I號(hào)筷子被拿(=1,2,3,4,...Zn),其中n為自然數(shù).

send(I):

Begin

ifImod2==1then

|

P(c[I]);

P(c[I-lmod5]);

Eat;

V(c[I-lmod5]);

V(c[I]);

)

else

(

P(c[I-lmod5]);

P(c[U);

Eat;

V(c[I]);

V(c[I-lmod5]);

)

End

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

務(wù)從該單緩沖中取出數(shù)據(jù)

進(jìn)行計(jì)算.試寫出利用信號(hào)量機(jī)制實(shí)現(xiàn)兩者共享單緩沖的同步算法.

intmutex=1;

intempty=n;

intfull=O;

intin=0;

intout=0;

main()

cobegin

send();

obtain();

coend

)

send()

|

while(l)

collectdatainnextp;

wait(empty);

wait(mutex);

buffer(in)=nextp;

in=(in+l)modn;

signal(mutex);

signal(full);

)

}//send

obtain()

while(l)

wait(full);

wait(mutex);

nextc~buffer(out);

out:=(out+l)modn;

signal(mutex);

signal(empty);

calculatethedatainnextc;

}//while

}//obtain

29.畫圖說明管程由哪幾部分組成?為什么要引入條件變量?管程由三部分組成:

局部于管程的共享變量說明;對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程;對(duì)局部于管程

數(shù)據(jù)設(shè)置初始值的語句.(圖見P80)因?yàn)檎{(diào)用wait原語后,使進(jìn)程等待的原因有多

種,為了區(qū)別它們,引入了條件變量.

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

(見P82)

31.什么是AND信號(hào)量?試?yán)肁ND信號(hào)量寫出生產(chǎn)者一消費(fèi)者問題的解法.

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

進(jìn)程在整個(gè)運(yùn)行過程中所需要的所有臨界資源,一次性地全部分配給進(jìn)程,用完

后一次性釋放.

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

varmutex,empty,full:semaphore:=1,n,0;

buffer:array[0,...,n-l]ofitem;

in,out:integer:=0,0;

begin

parbegin

producer:begin

repeat

produceaniteminnextp;

wait(empty);

wait(mutex);

buffer(in)~nextp;

in:=(in+l)modn;

signal(mutex);

signal(full);

signal(sl,s2,s3,...,sn);

untilfalse;

end

consumer:begin

repeat

wait(full);

wait(mutex);

nextc:=buffer(out);

out:=(out+l)modn;

signal(mutex);

signal(empty);

signal(kl,k2,k3,...,kn);

consumetheiteminnextc;

untilfalse;

end

parend

end

33.試比較進(jìn)程間的低級(jí)通信工具與高級(jí)通信工具.

用戶用低級(jí)通信工具實(shí)現(xiàn)進(jìn)程通信很不方便,因?yàn)槠湫实停ㄐ艑?duì)用戶不透明,

所有的操作都必須由程序員來實(shí)現(xiàn).而高級(jí)通信工具則可彌補(bǔ)這些缺陷,用戶可

直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量的數(shù)據(jù).

34.當(dāng)前有哪幾種高級(jí)通信機(jī)制?

a.共享存儲(chǔ)器系統(tǒng)通信方式;b.消息傳遞系統(tǒng)通信方式;c.管道通信方式.

第三章

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

a.作業(yè)調(diào)度又稱宏觀調(diào)度或高級(jí)調(diào)度,其主要任務(wù)是按一定的原則對(duì)外存上處于

后備狀態(tài)的作業(yè)進(jìn)行選擇,給選中的作業(yè)分配內(nèi)存,輸入輸出設(shè)備等必要的資源,

并建立相應(yīng)的進(jìn)程,以使該作業(yè)的進(jìn)程獲得競(jìng)爭(zhēng)處理機(jī)的權(quán)利.

b.進(jìn)程調(diào)度又稱微觀調(diào)度或低級(jí)調(diào)度,其主要任務(wù)是按照某種策略和方法選取一

個(gè)處于就緒狀態(tài)的進(jìn)程,將處理機(jī)分配給它.C.為了提高內(nèi)存利用

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

a.面向用戶的準(zhǔn)則有周轉(zhuǎn)時(shí)間短,響應(yīng)時(shí)間快,截止時(shí)間的保證,以及優(yōu)先權(quán)準(zhǔn)

則.

b.面向系統(tǒng)的準(zhǔn)則有系統(tǒng)吞吐量高,處理機(jī)利用率好,各類資源的平衡利用.

13.為什么說多級(jí)反饋隊(duì)列能較好地滿足各種用戶的需要?

a.對(duì)于終端型作業(yè)用戶,由于終端型作業(yè)用戶所提交的作業(yè),大都屬于交互型作

業(yè),系統(tǒng)只要能使這些作業(yè)(進(jìn)程)在第一隊(duì)列所規(guī)定的時(shí)間片內(nèi)完成,便可使終

端型作業(yè)用戶都感到滿意.b.對(duì)于短批處理作業(yè)用戶,很短的批處理型作業(yè)如果

僅在第一隊(duì)列中執(zhí)行一個(gè)時(shí)間片即可完成,便可獲得與終端型作業(yè)一樣的相應(yīng)時(shí)

間.對(duì)于稍長(zhǎng)的作業(yè),通常也只需在第二隊(duì)列和第三隊(duì)列中各執(zhí)行-一個(gè)時(shí)間片即

可完成,其周轉(zhuǎn)時(shí)間仍然很短c對(duì)于長(zhǎng)批處理作業(yè)用戶,用戶也不必?fù)?dān)心其作

業(yè)長(zhǎng)期得不到處理.

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

a.死鎖是指多個(gè)進(jìn)程因競(jìng)爭(zhēng)資源而造成的一種僵局,若無外力作用,這些進(jìn)程都

將永遠(yuǎn)不能再向前推進(jìn);b.產(chǎn)生死鎖的原因有二,一是競(jìng)爭(zhēng)資源,二是進(jìn)程推進(jìn)

順序非法;c.必要條件是:互斥條件,請(qǐng)求和保持條件,不剝奪條件和環(huán)路等待

條件.

19.在解決死鎖問題的幾個(gè)方法中,哪種方法最容易實(shí)現(xiàn)?哪種方法使資源的利

用率最高?

a.解決死鎖可歸納為四種方法:預(yù)防死鎖,避免死鎖,檢測(cè)死鎖和解除死鎖;b.其

中,預(yù)防死鎖是最容易實(shí)現(xiàn)的;c.避免死鎖使資源的利用率最高.

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

a.排棄"請(qǐng)求和保持"條件,就是如果系統(tǒng)有足夠的資源,便一次性地把進(jìn)程所需的

所有資源分配給它;b.推棄"不剝奪”條件,就是已經(jīng)保持了資源的進(jìn)程,當(dāng)它提

出新的資源請(qǐng)求而不能立即得到滿足時(shí),必須釋放它已經(jīng)保持的所有資源,待以

后需要時(shí)再重新申請(qǐng);

c.排棄"環(huán)路等待"條件,就是將所有資源按類型排序標(biāo)號(hào),所有進(jìn)程對(duì)資源的請(qǐng)

求必須嚴(yán)格按序號(hào)遞增的次序提出.

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

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

可以.首先,Request0(0,1,0)<=Need0(7,4,3),RequestO(O,l,0)<=Available(2,3,0);

分配后可修改得一資源數(shù)據(jù)表(表略),進(jìn)行安全性檢查,可以找到一個(gè)安全序列

{Pl,P4,P3,P2,P0},

或{Pl,P4,P3,P0,P2},因此,系統(tǒng)是安全的,可以立即將資源分配給P0.

第四章

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

a.首先由編譯程序?qū)⒂脩粼创a編譯成若干目標(biāo)模塊,再由鏈接程序?qū)⒕幾g后形

成的目標(biāo)模塊和所需的庫函數(shù)鏈接在一起,組成一個(gè)裝入模塊,再由裝入程序?qū)?/p>

裝入模塊裝入內(nèi)存;

b.裝入模塊的方式有:絕對(duì)裝入方式,可重定位方式和動(dòng)態(tài)運(yùn)行時(shí)裝入方式;c.

絕對(duì)裝入方式適用于單道程序環(huán)境下;d.可重定位方式適用于多道程序環(huán)境下;

e.動(dòng)態(tài)運(yùn)行時(shí)裝入方式也適用于多道程序環(huán)境下.

3.何謂靜態(tài)鏈接及裝入時(shí)動(dòng)態(tài)鏈接和運(yùn)行時(shí)的動(dòng)態(tài)鏈接?

a.靜態(tài)鏈接是指事先進(jìn)行鏈接形成一個(gè)完整的裝入模塊,以后不再拆開的鏈接方

---式;

b.裝入時(shí)動(dòng)態(tài)鏈接是指目標(biāo)模塊在裝入內(nèi)存時(shí),邊裝入邊鏈接的鏈接方式;

c.運(yùn)行時(shí)的動(dòng)態(tài)鏈接是將某些目標(biāo)模塊的鏈接推遲到執(zhí)行時(shí)才進(jìn)行.

4.在進(jìn)行程序鏈接時(shí),應(yīng)完成哪些工作?a.對(duì)相對(duì)地址進(jìn)行修改;b.變換外部調(diào)

用符號(hào).

4.在動(dòng)態(tài)分區(qū)分配方式中,可利用哪些分區(qū)分配算法?a.首次適應(yīng)算法;b.循環(huán)

首次適應(yīng)算法;c.最佳適應(yīng)算法.

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

應(yīng)在每個(gè)分區(qū)的起始地址部分,設(shè)置一些用于控制分區(qū)分配的信息,以及用于鏈

接各分區(qū)的前向指針;

在分區(qū)尾部則設(shè)置一后向指針,通過前,后向指針將所有的分區(qū)鏈接成一個(gè)雙向

鏈.

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

a.為了在程序執(zhí)行過程中,每當(dāng)訪問指令或數(shù)據(jù)時(shí),將要訪問的程序或數(shù)據(jù)的邏

輯地址轉(zhuǎn)換成物理地址,引入了動(dòng)態(tài)重定位.

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

址,程序在執(zhí)行時(shí),真正訪問的內(nèi)存地址是相對(duì)地址與重定位寄存器中的地址相

加而形成的,從而實(shí)現(xiàn)動(dòng)態(tài)重定位.

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

況?

a.回收區(qū)與插入點(diǎn)的前一個(gè)分區(qū)相鄰接,此時(shí)可將回收區(qū)與插入點(diǎn)的前一分區(qū)合

并,不再為回收分區(qū)分配新表項(xiàng),而只修改前鄰接分區(qū)的大小;

b.回收分區(qū)與插入點(diǎn)的后一分區(qū)相鄰接,此時(shí)合并兩區(qū),然后用回收區(qū)的首址作

為新空閑區(qū)的首址,大小為兩者之和;

C.回收區(qū)同時(shí)與插入點(diǎn)的前后兩個(gè)分區(qū)鄰接,此時(shí)將三個(gè)分區(qū)合并,使用前鄰接

分區(qū)的首址,大小為■?三區(qū)之和,取消后鄰接分區(qū)的表項(xiàng);

d.回收區(qū)沒有鄰接空閑分區(qū),則應(yīng)為回收區(qū)單獨(dú)建立一個(gè)新表項(xiàng),填寫回收區(qū)的

首址和大小,并根據(jù)其首址,插入到空閑鏈中的適當(dāng)位置.

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

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

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

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

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

a.對(duì)對(duì)換空間的管理;b.進(jìn)程的換出;c.進(jìn)程的換入.

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

為單位進(jìn)行對(duì)換時(shí),每次都將整個(gè)進(jìn)程換出;b.目的為了解決內(nèi)存緊張的問題,

提高內(nèi)存的利用率.

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

了編程;b.實(shí)現(xiàn)了分段共享;c.實(shí)現(xiàn)了分段保護(hù);d.實(shí)現(xiàn)了動(dòng)態(tài)鏈接;e.實(shí)現(xiàn)

了動(dòng)態(tài)增長(zhǎng).

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

首先,必須配置一段表寄存器,在其中存放段表始址和段長(zhǎng)TL.進(jìn)行地址變換時(shí)一,

先利用段號(hào)S,與段長(zhǎng)TL進(jìn)行比較,若S<TL,表示未越界,(若S>=TL,表示段

號(hào)太大,訪問越界,產(chǎn)生越界中斷信號(hào))于是利用段表始址和段號(hào)來求出該段對(duì)

應(yīng)的段表項(xiàng)在段表中的位置,從中求出該段的頁表始址,并利用邏輯地址中的段

內(nèi)頁號(hào)P來獲得對(duì)應(yīng)頁的頁表項(xiàng)位置,從中讀出該頁所在的物理塊號(hào)b,再用塊

號(hào)b和頁內(nèi)地址構(gòu)成物理地址.

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

a.對(duì)于分頁系統(tǒng),每個(gè)頁面是分散存儲(chǔ)的,為了實(shí)現(xiàn)信息共享和保護(hù),則頁面之

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

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

在實(shí)現(xiàn)共享和保護(hù)時(shí),只需為所要共享和保護(hù)的程序設(shè)置一個(gè)段表項(xiàng),將其中的

基址與內(nèi)存地址一一對(duì)應(yīng)起來即可.

17.分頁和分段存儲(chǔ)管理有何區(qū)別?a.分頁和分段都采用離散分配的方式,且都

要通過地址映射機(jī)構(gòu)來實(shí)現(xiàn)地址變換,這是它們的共同點(diǎn);

b.對(duì)于它們的不同點(diǎn)有三,第一,從功能上看,頁是信息的物理單位,分頁是為

實(shí)現(xiàn)離散分配方式,以消減-內(nèi)存的外零頭,提高內(nèi)存的利用率,即滿足系統(tǒng)管

理的需要,而不是用戶的需要;而段是信息的邏輯單位,它含有一組其意義相對(duì)

完整的信息,目的是為了能更好地滿足用戶的需要;c.頁的大小固定且由系統(tǒng)確

定,而段的長(zhǎng)度卻不固定,決定于用戶所編寫的程序;d.分頁的作業(yè)地址空間是

一維的,而分段的作業(yè)地址空間是二維的.

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

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

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

用戶區(qū)供用戶使用,是最簡(jiǎn)單的一種存儲(chǔ)方式,-但只能用于單用戶單任務(wù)的操

作系統(tǒng)中;分區(qū)式分配方式分為固定分區(qū)和動(dòng)態(tài)分區(qū),固定分區(qū)是最簡(jiǎn)單的多道

程序的存儲(chǔ)管理方式,由于每個(gè)分區(qū)的大小固定,必然會(huì)造成存儲(chǔ)空間的浪費(fèi);

動(dòng)態(tài)分區(qū)是根據(jù)進(jìn)程的實(shí)際需要,動(dòng)態(tài)地為之分配連續(xù)的內(nèi)存空間,常用三種分

配算法:首次適應(yīng)算法FF,該法容易留下許多難以利用的小空閑分區(qū),加大查找

開銷;循環(huán)首次適應(yīng)算法,該算法能使內(nèi)存中的空閑分區(qū)分布均勻,但會(huì)致使缺

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

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

分為分頁式存儲(chǔ)管理,分段存儲(chǔ)管理和段頁式存儲(chǔ)管理.分頁式存儲(chǔ)管理旨在提

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

的需要,在實(shí)現(xiàn)共享和保護(hù)方面優(yōu)于分頁式存儲(chǔ)管理,而段頁式存儲(chǔ)管理則是將

兩者結(jié)合起來,取長(zhǎng)補(bǔ)短,即具有分段系統(tǒng)便于實(shí)現(xiàn),可共享,易于保護(hù),可動(dòng)

態(tài)鏈接等優(yōu)點(diǎn),又能像分頁系統(tǒng)那樣很好的解決外部碎片的問題,以及為各個(gè)分

段可離散分配內(nèi)存等問題,顯然是一種比較有效的存儲(chǔ)管理方式;

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

以改進(jìn)和利用.

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

分頁系統(tǒng)中,其頁表項(xiàng)中包含的數(shù)據(jù)項(xiàng)有頁號(hào),物理塊號(hào),狀態(tài)位P,訪問字段

A,修改位M和外存地址;b.其中狀態(tài)位P指示該頁是否調(diào)入內(nèi)存,供程序訪

問時(shí)參考;

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

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

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

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

2.一個(gè)計(jì)算機(jī)系統(tǒng)的虛擬存儲(chǔ)器,其最大容量和實(shí)際容量分別由什么決定?

a.最大容量由內(nèi)存和外存之和決定;

b.實(shí)際容量由內(nèi)存決定.

19.虛擬存貯器有那些特征?其中最本質(zhì)的特征是什么?a.虛擬存儲(chǔ)器具有離散

性,多次性,對(duì)換性和虛擬性的特征;b.其中最本質(zhì)的特征是離散性,在此基礎(chǔ)

上又形成了多次性和對(duì)換性,所表現(xiàn)出來的最重要的特征是虛擬性.

20.實(shí)現(xiàn)虛擬存儲(chǔ)器要那些硬件支持?

a.對(duì)于為實(shí)現(xiàn)請(qǐng)求分頁存儲(chǔ)管理方式的系統(tǒng),除了需要一臺(tái)具有一定容量的內(nèi)存

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

b.對(duì)于為實(shí)現(xiàn)請(qǐng)求分段存儲(chǔ)管理方式的系統(tǒng),除了需要一臺(tái)具有一定容量的內(nèi)存

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

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

a.在進(jìn)行地址變換時(shí),首先去檢索快表,試圖從中找出所要訪問的頁,若找到,

便修改頁表項(xiàng)中的訪問位,對(duì)于寫指令,還須將修改位置1,然后利用頁表項(xiàng)中

給出的物理塊號(hào)和頁內(nèi)地址,形成物理地址;

b.如果在快表中未找到該頁的頁表項(xiàng),則應(yīng)再到內(nèi)存中去查找頁表,再從找到的

頁表項(xiàng)中的狀態(tài)位來了解該頁是否已調(diào)入內(nèi)存,如果該頁已調(diào)入內(nèi)存,應(yīng)將此頁

的頁表項(xiàng)寫入快表,當(dāng)快表已滿時(shí),應(yīng)先調(diào)出按某種算法所確定的頁的頁表項(xiàng),

然后再寫入該頁的頁表項(xiàng);

c.如果該頁尚未調(diào)入內(nèi)存,這時(shí)便應(yīng)產(chǎn)生缺頁中斷,請(qǐng)求OS從外存中把該頁調(diào)

入內(nèi)存;

d.外存分為文件區(qū)和對(duì)換區(qū),若系統(tǒng)有足夠的對(duì)換區(qū)空間,可在進(jìn)程運(yùn)行前,將

與該進(jìn)程有關(guān)的文件-拷貝到對(duì)換區(qū),需要時(shí)從對(duì)換區(qū)調(diào)入;

e.若系統(tǒng)缺少足夠的對(duì)換區(qū)空間,則凡是不會(huì)被修改的文件,可直接從文件區(qū)調(diào)

入,需換出時(shí)可不必寫入外存,但對(duì)于可能被修改的部分,在將它們換出時(shí)一,便

須調(diào)到對(duì)換區(qū),以后需要時(shí)再從對(duì)換區(qū)-調(diào)入.

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

a.最佳置換算法;b.先進(jìn)先出算法;c.最近最久未使用LRU置換算法;d.Clock

置換算法;e.此外,還有最少使用置換算法和頁面緩沖算法

25.在請(qǐng)求分頁系統(tǒng)中,通常采用哪種頁面分配方式?為什么?

a.在請(qǐng)求分頁系統(tǒng)中,有固定和可變分配兩種分配方式;b.采用固定分配方式

是基于進(jìn)程的類型(交互型)或根據(jù)程序員,系統(tǒng)管理員的建議,為每個(gè)進(jìn)程分配

固定頁數(shù)的內(nèi)存空間,在整個(gè)運(yùn)行期間不再改變;

c.采用可變分配方式有全局置換和局部置換兩種,前者易于實(shí)現(xiàn),后者效率高.

11在一個(gè)請(qǐng)求分頁系統(tǒng)中,采用LRU頁面置換算法時(shí),假如一個(gè)作業(yè)的頁面走

向?yàn)?,3,2,1,4,3,5,4,3,2,1,5,當(dāng)分配給該作業(yè)的物理塊數(shù)M分

別為3和4時(shí),試計(jì)算訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率?比較所得結(jié)果?

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

a.寄存器,用于記錄某進(jìn)程在內(nèi)存中各頁的使用情況;

b.棧,用于保存當(dāng)前使用的各個(gè)頁面的頁面號(hào).

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

a.因?yàn)閷?duì)于修改過的頁面在換出時(shí)所付出的開銷將比未被修改過的頁面的開銷

大,所以在改進(jìn)型Clock算法中,出了須考慮到頁面的使用情況外,還須再增加

一個(gè)置換代價(jià)這一因素;

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

頁面.

30.如何實(shí)現(xiàn)分段共享?

a.可在每個(gè)進(jìn)程的段表中,用相應(yīng)的表項(xiàng)來指向共享段在內(nèi)存中起始地址;

b.配置相應(yīng)的數(shù)據(jù)結(jié)構(gòu)作為共享段表,可在段表項(xiàng)中設(shè)置共享進(jìn)程計(jì)數(shù)Count,

每調(diào)用一次該共享段,Count指增1,每當(dāng)一個(gè)進(jìn)程釋放一個(gè)共享段時(shí),Count

執(zhí)行減1操作,若減為0,則由系統(tǒng)回收該共享段的物理內(nèi)存,以及取消在共享

段表中該段所對(duì)應(yīng)的表項(xiàng);

c.對(duì)于一個(gè)共享段,應(yīng)給不同的進(jìn)程以不同的存取權(quán)限;

d.不同的進(jìn)程可以使用不同的段號(hào)去共享該段.

第五章

1.試說明設(shè)備控制器的組成.

設(shè)備控制器的組成如圖所示:

由上圖可見,設(shè)備控制器由以下三部分組成:(1)設(shè)備控制器與處理機(jī)的接口,

該接口用于實(shí)現(xiàn)CPU與設(shè)備控制器之間的通信,提供有三類信號(hào)線:數(shù)據(jù)線、

地址線和控制線。(2)設(shè)備控制器與設(shè)備的接口,可以有一個(gè)或多個(gè)接口,且

每個(gè)接口連接一臺(tái)設(shè)備。每個(gè)接口都存在數(shù)據(jù)、控制和狀態(tài)三種類型的信號(hào)。(3)

I/O邏輯,用于實(shí)現(xiàn)對(duì)設(shè)備的控制。其通過一組控制線與處理機(jī)交互,處理機(jī)利

用該邏輯向控制器發(fā)送I/O命令,I/O邏輯對(duì)收到的命令進(jìn)行譯碼。

2.為了實(shí)現(xiàn)CPU與設(shè)備控制器之間的通信,設(shè)備控制器應(yīng)具有哪些功能?

為了實(shí)現(xiàn)CPU與設(shè)備控制器之間的通信,設(shè)備控制器應(yīng)具有如下功能:(1)接

受和識(shí)別命令。CPU可以向控制器發(fā)送多種不同的命令,設(shè)備控制器應(yīng)能接收并

識(shí)別這些命令。設(shè)置控制寄存器來存放所接收的命令和參數(shù)。(2)數(shù)據(jù)交換,

指實(shí)現(xiàn)CPU與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。設(shè)置數(shù)據(jù)寄存器來

存放有關(guān)數(shù)據(jù)。(3)設(shè)備狀態(tài)的了解和報(bào)告。控制器記錄下所連接設(shè)備的狀態(tài)

以供CPU了解。為此,要在控制器中設(shè)置一狀態(tài)寄存器,用其中的每一位反映

設(shè)備的某一狀態(tài)。(4)地址識(shí)別。配置地址譯碼器以便于正確識(shí)別設(shè)備地址。

3.什么是字節(jié)多路通道?什么是數(shù)組選擇通道和數(shù)組多路通道?

①字節(jié)多路通道含有許多非分配型子通道分別連接在低、中速I/O設(shè)備上,子

通道按時(shí)間片輪轉(zhuǎn)方式共享主通道,按字節(jié)方式進(jìn)行數(shù)據(jù)傳送。具體而言,當(dāng)?shù)?/p>

一個(gè)子通道控制其I/O設(shè)備完成一個(gè)字節(jié)的交換后,便立即騰出字節(jié)多路通道(主

通道),讓給第二個(gè)子通道使用;當(dāng)?shù)诙€(gè)子通道也交換完一個(gè)字節(jié)后,又依樣

把主通道讓給第三個(gè)子通道使用,以此類推。轉(zhuǎn)輪一周后,重又返回由第一個(gè)子

通道去使用主通道。②數(shù)組選擇通道只含有一個(gè)分配型子通道,一段時(shí)間內(nèi)只

能執(zhí)行一道通道程序、控制一臺(tái)設(shè)備按數(shù)組方式進(jìn)行數(shù)據(jù)傳送。通道被某臺(tái)設(shè)備

占用后,便一直處于獨(dú)占狀態(tài),直至設(shè)備數(shù)據(jù)傳輸完畢釋放該通道,故而通道利

用率較低,主要用于連接多臺(tái)高速設(shè)備。③數(shù)組多路通道是將數(shù)組選擇通道傳輸

速率高和字節(jié)多路通道能使各子通道分時(shí)并行操作的優(yōu)點(diǎn)相結(jié)合而形成的一種

新通道。其含有多個(gè)非分配型子通道分別連接在高、中速I/O設(shè)備上,子通道按

時(shí)間片輪轉(zhuǎn)方式共享主通道,按數(shù)組方式進(jìn)行數(shù)據(jù)傳送,因而既具有很高的數(shù)據(jù)

傳輸速率,又能獲得令人滿意的通道利用率。

4.如何解決因通道不足而產(chǎn)生的瓶頸問題?

解決因通道不足而產(chǎn)生的瓶頸問題的最有效方法是增加設(shè)備到主機(jī)間的通路而

不是增加通道。換言之,就是把一個(gè)設(shè)備連接到多個(gè)控制器上,而一個(gè)控制器又

連接到多個(gè)通道上。這種多通路方式不僅可以解決該瓶頸問題,而且能夠提高系

統(tǒng)的可靠性,也即不會(huì)因?yàn)閭€(gè)別通道或控制器的故障而使設(shè)備與存儲(chǔ)器之間無法

建立通路進(jìn)行數(shù)據(jù)傳輸。

6.試說明推動(dòng)I/O控制發(fā)展的主要因素是什么?

推動(dòng)I/O控制發(fā)展的主要?jiǎng)恿υ谟诒M量減少主機(jī)對(duì)I/O控制的干預(yù),把主機(jī)從繁

雜的I/O控制事務(wù)中解脫出來,以有更多的時(shí)間和精力去完成其數(shù)據(jù)處理任務(wù)。

同時(shí),中斷機(jī)制在計(jì)算機(jī)系統(tǒng)中的引入、DMA控制器的出現(xiàn)和通道研制的成功

使I/O控制的發(fā)展具備了技術(shù)支持和成為可能。

7.有哪幾種I/O控制方式?

有四種I/O控制方式,即程序I/O控制方式、中斷驅(qū)動(dòng)I/O控制方式、直接存儲(chǔ)

器訪問DMA控制方式及I/O通道控制方式。

8.試說明DMA的工作流程.

以從磁盤讀入數(shù)據(jù)為例來說明DMA方式的工作流程:當(dāng)CPU要從磁盤讀入一數(shù)

據(jù)塊時(shí),便向磁盤控制器發(fā)送一條讀命令,該命令被送入DMA控制器的命令寄

存器CR中。同時(shí)一,還需發(fā)送本次要將數(shù)據(jù)讀入的內(nèi)存起始目標(biāo)地址,該地址被

送入DMA控制器的內(nèi)存地址寄存器MAR中;本次要讀的字(節(jié))數(shù)則送至DMA

控制器的數(shù)據(jù)計(jì)數(shù)器DC中。另外,還需將磁盤中數(shù)據(jù)讀取的源地址直接送到

DMA控制器的I/O控制邏輯上。然后,啟動(dòng)DMA控制器進(jìn)行數(shù)據(jù)傳送。此后,

CPU便可去處理其它任務(wù),而整個(gè)的數(shù)據(jù)傳送便由DMA控制器負(fù)責(zé)控制。當(dāng)

DMA控制器已從磁盤中讀入一個(gè)字(節(jié))的數(shù)據(jù),并送入DMA控制器的數(shù)據(jù)

寄存器DR后,再挪用一個(gè)存儲(chǔ)器周期,將該字(節(jié))傳送到MAR所指示的內(nèi)

存單元中。接著,便對(duì)MAR內(nèi)容加1和將DC內(nèi)容減lo若DC內(nèi)容減1后不為

0,表示傳送未完,便準(zhǔn)備再傳送下一個(gè)字(節(jié)),否則,由DMA控制器發(fā)出

中斷請(qǐng)求。參圖所示:

9.引入緩沖的主要原因是什么?

操作系統(tǒng)引入緩沖機(jī)制的主要原因可歸結(jié)為以下幾點(diǎn):(I)緩和CPU與I/O設(shè)

備間速度不匹配的矛盾;(2)減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的

限制;(3)提高CPU與I/O設(shè)備之間的并行性。

10.在單緩沖情況下,為什么系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間為max(C,T)+M?

在塊設(shè)備輸入時(shí),先從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū),耗時(shí)為T;然后由操作系

統(tǒng)將緩沖區(qū)數(shù)據(jù)傳送給用戶區(qū),耗時(shí)為M;接下來便由CPU對(duì)這一塊數(shù)據(jù)進(jìn)行

計(jì)算,耗時(shí)為C。在單緩沖情況下,磁盤把數(shù)據(jù)輸入到緩沖區(qū)的操作和CPU對(duì)

數(shù)據(jù)的計(jì)算過程可以并行展開,所以系統(tǒng)對(duì)每一整塊數(shù)據(jù)的處理時(shí)間為max(C,T)

+Mo

11.為什么在雙緩沖情況下,系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間為max(C,T)?

該方式又稱緩沖對(duì)換方式。寫入者花費(fèi)時(shí)間T將數(shù)據(jù)寫滿一個(gè)緩沖區(qū)后再寫另一

個(gè)緩沖區(qū);讀出者花費(fèi)時(shí)間M將一個(gè)緩沖區(qū)數(shù)據(jù)送到用戶區(qū)后再傳送另一個(gè)緩

沖區(qū)數(shù)據(jù),運(yùn)算者讀出用戶區(qū)進(jìn)行處理。由于將數(shù)據(jù)從緩沖區(qū)傳送到用戶區(qū)操作

必須與讀用戶區(qū)數(shù)據(jù)進(jìn)行處理串行進(jìn)行,而且它們又可以與從外存?zhèn)魉蛿?shù)據(jù)填滿

緩沖區(qū)的操作并行。因此耗時(shí)大約為max(C+M,T)??紤]到M是內(nèi)存中數(shù)據(jù)塊的

“搬家”耗時(shí),非常短暫可以省略,因此近似地認(rèn)為是:max(C,T)o

12.試?yán)L圖說明把多緩沖用于輸出時(shí)的情況。

把多緩沖用于輸出時(shí)的情況如圖所示:

13.試說明收容輸入工作緩沖區(qū)和提取輸出工作緩沖區(qū)的工作情況。

①收容輸入工作緩沖區(qū)的工作情況為:在輸入進(jìn)程需要輸入數(shù)據(jù)時(shí),調(diào)用

GetBuf(EmptyQueue)過程,從EmptyQueue隊(duì)列的隊(duì)首摘下一個(gè)空緩沖區(qū),把它

作為收容輸入工作緩沖區(qū)Hin。然后,把數(shù)據(jù)輸入其中,裝滿后再調(diào)用

PutBuf(InputQueue,Hin)過程,將該緩沖區(qū)掛在輸入隊(duì)列InputQueue的隊(duì)尾。②提

取輸出工作緩沖區(qū)的工作情況為:當(dāng)要輸出數(shù)據(jù)時(shí),調(diào)用GetBuf(OutputQueue)

過程,從輸出隊(duì)列的隊(duì)首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū)作為提取輸出的工作緩沖

區(qū)Sout。在數(shù)據(jù)提取完后,再調(diào)用PutBuf(EmptyQueue,Sout)過程,將該緩沖區(qū)

掛到空緩沖隊(duì)列EmptyQueue的隊(duì)尾。

14.什么是安全分配方式和不安全分配方式?

①所謂安全分配方式,是指每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到

其I/O操作完成時(shí)才被喚醒。在采用這種分配策略時(shí),一旦進(jìn)程已經(jīng)獲得某種設(shè)

備(資源)后便阻塞,使它不可能再請(qǐng)求任何資源,而在它運(yùn)行時(shí)又不保持任何

資源。因此,這種分配方式已經(jīng)摒棄了造成死鎖的四個(gè)必要條件之一的“請(qǐng)求和

保持”條件,所以分配是安全的。其缺點(diǎn)是進(jìn)程進(jìn)展緩慢,即CPU與I/O設(shè)備是

串行工作的。②所謂不安全分配方式,是指進(jìn)程發(fā)出I/O請(qǐng)求后仍繼續(xù)執(zhí)行,

需要時(shí)又可發(fā)出第二個(gè)I/O請(qǐng)求、第三個(gè)I/O請(qǐng)求。僅當(dāng)進(jìn)程所請(qǐng)求的設(shè)備已被

另一個(gè)進(jìn)程占有時(shí),進(jìn)程才進(jìn)入阻塞狀態(tài)。其優(yōu)點(diǎn)是一個(gè)進(jìn)程可同時(shí)操作多個(gè)設(shè)

備,從而使進(jìn)程推進(jìn)迅速。而缺點(diǎn)是分配不安全,因?yàn)樗赡芫哂小罢?qǐng)求和保持”

條件,所以可能造成死鎖。因此,在設(shè)備分配程序中還需增加一個(gè)功能,用于對(duì)

本次的設(shè)備分配是否會(huì)發(fā)生死鎖進(jìn)行安全性計(jì)算,僅當(dāng)計(jì)算結(jié)果說明分配是安全

的情況下才進(jìn)行分配。

15.為什么要引入設(shè)備獨(dú)立性?如何實(shí)現(xiàn)設(shè)備獨(dú)立性?

在現(xiàn)代操作系統(tǒng)中,為了提高系統(tǒng)的可適應(yīng)性和可擴(kuò)展性,都毫無例外地實(shí)現(xiàn)了

設(shè)備獨(dú)立性,也即設(shè)備無關(guān)性。其基本含義是,應(yīng)用程序獨(dú)立于具體使用的物理

設(shè)備,即應(yīng)用程序以邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備。進(jìn)一步說,在實(shí)現(xiàn)了設(shè)

備獨(dú)立性的功能后,可帶來兩方面的好處:(1)設(shè)備分配時(shí)的靈活性;(2)易

于實(shí)現(xiàn)I/O重定向(指用于I/O操作的設(shè)備可以更換即重定向,而不必改變應(yīng)用程

序)。

為了實(shí)現(xiàn)設(shè)備的獨(dú)立性,應(yīng)引入邏輯設(shè)備和物理設(shè)備兩個(gè)概念。在應(yīng)用程序中,

使用邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備;而系統(tǒng)執(zhí)行時(shí),是使用物理設(shè)備名稱。

鑒于驅(qū)動(dòng)程序是一個(gè)與硬件(或設(shè)備)緊密相關(guān)的軟件,必須在驅(qū)動(dòng)程序之上設(shè)

置一層軟件,稱為設(shè)備獨(dú)立性軟件,以執(zhí)行所有設(shè)備的公有操作、完成邏輯設(shè)備

名到物理設(shè)備名的轉(zhuǎn)換(為此應(yīng)設(shè)置一張邏輯設(shè)備表)并向用戶層(或文件層)

軟件提供統(tǒng)一接口,從而實(shí)現(xiàn)設(shè)備的獨(dú)立性。

16.在考慮到設(shè)備的獨(dú)立性時(shí),應(yīng)如何分配獨(dú)占設(shè)備?

在考慮到設(shè)備的獨(dú)立性時(shí),應(yīng)按如下步驟來分配獨(dú)占設(shè)備:(1)進(jìn)程以邏輯設(shè)

備名提出I/O請(qǐng)求。(2)根據(jù)邏輯設(shè)備表相應(yīng)表項(xiàng)獲得I/O請(qǐng)求的邏輯設(shè)備對(duì)應(yīng)

類型的物理設(shè)備在系統(tǒng)設(shè)備表中的指針。(3)從指針?biāo)肝恢闷痦樞驒z索系統(tǒng)

設(shè)備表,直到找到一個(gè)屬于對(duì)應(yīng)I/O請(qǐng)求所用類型、空閑可用且基于設(shè)備分配安

全性算法驗(yàn)證為安全分配的設(shè)備的設(shè)備控制表,將對(duì)應(yīng)設(shè)備分配給請(qǐng)求進(jìn)程;如

果未找到安全可用的空閑設(shè)備,則把請(qǐng)求進(jìn)程的進(jìn)程控制塊掛到相應(yīng)類型設(shè)備的

等待隊(duì)列上等待喚醒和分配。(4)系統(tǒng)把設(shè)備分配給I/O請(qǐng)求進(jìn)程后,再到該

設(shè)備的設(shè)備控制表中找出與其相連接的控制器的控制器控制表,根據(jù)其狀態(tài)字段

判斷該控制器是否忙碌,若忙則把請(qǐng)求進(jìn)程的進(jìn)程控制塊掛到該控制器的等待隊(duì)

列上;否則將該控制器分配給進(jìn)程。(5)系統(tǒng)把控制器分配給I/O請(qǐng)求進(jìn)程后,

再到該控制器的控制器控制表中找出與其相連接的通道的通道控制表,根據(jù)其狀

態(tài)字段判斷該通道是否忙碌,若忙則把請(qǐng)求進(jìn)程的進(jìn)程控制塊掛到該通道的等待

隊(duì)列上;否則將該通道分配給進(jìn)程。(6)只有在設(shè)備、控制器和通道三者都分

配成功時(shí),這次的設(shè)備分配才算成功,然后便可啟動(dòng)設(shè)備進(jìn)行數(shù)據(jù)傳送。

17.什么是設(shè)備虛擬?實(shí)現(xiàn)設(shè)備虛擬時(shí)所依賴的關(guān)鍵技術(shù)是什么?

通過虛擬技術(shù)可將一臺(tái)獨(dú)占設(shè)備變換成若干臺(tái)邏輯設(shè)備,供若干個(gè)用戶(進(jìn)程)

同時(shí)使用,通常把這種經(jīng)過虛擬技術(shù)處理后的設(shè)備稱為虛擬設(shè)備。其實(shí)現(xiàn)所依賴

的關(guān)鍵技術(shù)是SPOOLING技術(shù)。

18.試說明SPOOLing系統(tǒng)的組成。

SPOOLing系統(tǒng)是對(duì)脫機(jī)I/O工作的模擬,其必須有高速隨機(jī)外存(通常采用磁

盤)的支持。SPOOLING系統(tǒng)主要有以下四個(gè)部分:(1)輸入井和輸出井,為

磁盤上開辟的兩大存儲(chǔ)空間,分別模擬脫機(jī)輸入/出時(shí)的磁盤,并用于收容I/O設(shè)

備輸入的數(shù)據(jù)和用戶程序的輸出數(shù)據(jù);(2)輸入緩沖區(qū)和輸出緩沖區(qū),在內(nèi)存

中開辟,分別用于暫存由輸入設(shè)備和輸出井送來的數(shù)據(jù);(3)輸入進(jìn)程SPi和

輸出進(jìn)程SPo,分別模擬脫機(jī)輸入/出時(shí)的外圍控制機(jī),用于控制I/O過程;(4)

I/O請(qǐng)求隊(duì)列,由系統(tǒng)為各個(gè)1/0請(qǐng)求進(jìn)程建立的I/O請(qǐng)求表構(gòu)成的隊(duì)列。

19.在實(shí)現(xiàn)后臺(tái)打印時(shí),SPOOLing系統(tǒng)應(yīng)為請(qǐng)求I/O的進(jìn)程提供哪些服務(wù)?

在實(shí)現(xiàn)后臺(tái)打印時(shí),SPOOLING系統(tǒng)應(yīng)為請(qǐng)求I/O的進(jìn)程提供以下服務(wù):(1)

由輸出進(jìn)程在輸出井中為之申請(qǐng)一空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;(2)

輸出進(jìn)程再為用戶進(jìn)程申請(qǐng)一張空白的用戶打印表,并將用戶的打印要求填入其

中,再將該表掛到請(qǐng)求打印隊(duì)列上。(3)一旦打印機(jī)空閑,輸出進(jìn)程便從請(qǐng)求

打印隊(duì)列的隊(duì)首取出一張請(qǐng)求打印表,根據(jù)表中的要求將要打印的數(shù)據(jù)從輸出井

傳送到內(nèi)存緩沖區(qū),再由打印機(jī)進(jìn)行打印。

20.試說明設(shè)備驅(qū)動(dòng)程序具有哪些特點(diǎn).

設(shè)備驅(qū)動(dòng)程序具有如下特點(diǎn):(1)驅(qū)動(dòng)程序主要是在請(qǐng)求I/O的進(jìn)程與設(shè)備控

制器之間的一個(gè)通信程序;(2)驅(qū)動(dòng)程序與I/O設(shè)備的特性緊密相關(guān);(3)驅(qū)

動(dòng)程序與I/O控制方式緊密相關(guān);(4)驅(qū)動(dòng)程序與硬件緊密相關(guān),因而其中的

一部分程序必須用匯編語言書寫,且基本部分往往已被固化在ROM中。

21.試說明設(shè)備驅(qū)動(dòng)程序應(yīng)具有哪些功能.

設(shè)備驅(qū)動(dòng)程序的主要功能包括:(1)將接收到的抽象要求轉(zhuǎn)為具體要求;(2)

檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的

工作方式;(3)發(fā)出I/O命令,啟動(dòng)分配到的I/O設(shè)備,完成指定的I/O操作;

(4)及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,并根據(jù)其中斷類型調(diào)用相應(yīng)的

中斷處理程序進(jìn)行處理;(5)對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)該

能夠根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。

22.設(shè)備驅(qū)動(dòng)程序通常要完成哪些工作?

設(shè)備驅(qū)動(dòng)程序通常要完成以下工作:(1)將抽象要求轉(zhuǎn)換為具體要求;(2)檢

查I/O請(qǐng)求的合法性;(3)讀出和檢查設(shè)備的狀態(tài);(4)傳送必要的參數(shù);(5)

設(shè)置工作方式;(6)啟動(dòng)1/0設(shè)備。

22.設(shè)備中斷處理程序通常需完成哪些工作?

設(shè)備中斷處理程序通常需完成如下工作:(1)喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程;(2)

保護(hù)被中斷進(jìn)程的CPU環(huán)境;(3)分析中斷原因、轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程

序;(4)進(jìn)行中斷處理;(5)恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)

第六章

1.分別就數(shù)據(jù)項(xiàng)、記錄和文件的概念進(jìn)行解釋。

數(shù)據(jù)項(xiàng)可分為基本數(shù)據(jù)項(xiàng)和組合數(shù)據(jù)項(xiàng)?;緮?shù)據(jù)項(xiàng)是用于描述一個(gè)對(duì)象某種屬

性的字符集,是數(shù)據(jù)組織中可以命名的最小邏輯數(shù)據(jù)單位,又稱為原子數(shù)據(jù)、數(shù)

據(jù)元素或字段,其具有數(shù)據(jù)名、數(shù)據(jù)類型及數(shù)據(jù)值三個(gè)特性。組合數(shù)據(jù)項(xiàng)則由若

干數(shù)據(jù)項(xiàng)構(gòu)成。記錄是一組相關(guān)數(shù)據(jù)項(xiàng)的集合,用于描述一個(gè)對(duì)象某方面的屬性。

文件是具有文件名的一組相關(guān)信息的集合。

2.文件系統(tǒng)的模型可分為三層,試說明其每一層所包含的基本內(nèi)容。

答:文件系統(tǒng)模型如圖所示:

(1)最低層為對(duì)象及其屬性說明,主要包括文件、目錄、磁盤存儲(chǔ)空間等三類

對(duì)象。(2)最高層是文件系統(tǒng)提供給用戶的接口,分為命令接口、程序接口和

圖形化用戶接口等三種類型。(3)中間層是對(duì)對(duì)象進(jìn)行操縱和管理的軟件集合,

是文件系統(tǒng)的核心部分,擁有文件存儲(chǔ)空間管理、文件目錄管理、地址映射、文

件讀寫管理及文件共享與保護(hù)等諸多功能。具體又可分為四個(gè)子層:①I/O控制

層(又稱為設(shè)備驅(qū)動(dòng)程序?qū)樱饕纱疟P驅(qū)動(dòng)程序和磁帶驅(qū)動(dòng)程序組成,負(fù)責(zé)

啟動(dòng)I/O設(shè)備和對(duì)設(shè)備發(fā)來的中斷信號(hào)進(jìn)行處理;②基本文件系統(tǒng)層(又稱為物

理I/O層),主要用于處理內(nèi)存與磁盤或磁帶機(jī)系統(tǒng)之間數(shù)據(jù)塊的交換,通過向

I/O控制層發(fā)送通用指令及讀寫的物理盤塊號(hào)與緩沖區(qū)號(hào)等I/O參數(shù)來完成;③

基本I/O管理程序?qū)樱次募M織模塊層),負(fù)責(zé)完成與磁盤I/O有關(guān)的大量事

務(wù),包括文件所在設(shè)備的選定、文件邏輯塊號(hào)到物理塊號(hào)的轉(zhuǎn)換、空閑盤塊的管

理及I/O緩沖的指定等;④邏輯文件系統(tǒng)層,負(fù)責(zé)所讀寫的文件邏輯塊號(hào)的確定、

目錄項(xiàng)的創(chuàng)建與修改、文件與記錄的保護(hù)等。

文件系統(tǒng)接口

對(duì)對(duì)象操縱和管理的軟件集合邏輯文件系統(tǒng)

基本I/O管理程序(文件組織模塊)

基本文件系統(tǒng)(物理I/O層)

I/O控制層(設(shè)備驅(qū)動(dòng)程序)

對(duì)象及其屬性說明

6.試說明關(guān)于索引文件和索引順序文件的檢索方法。

答:①對(duì)索引文件進(jìn)行檢索時(shí),首先根據(jù)用戶(程序)提供的關(guān)鍵字,并利用折

半查找法檢索索引表,從中找到相應(yīng)的表項(xiàng);再利用該表項(xiàng)中給出的指向記錄的

指針值,去訪問對(duì)應(yīng)的記錄。②對(duì)索引順序文件進(jìn)行檢索時(shí),首先利用用戶(程

序)提供的關(guān)鍵字以及某種查找方法,去檢索索引表,找到該記錄所在記錄組中

的第一條記錄的表項(xiàng),從中得到該記錄組第一個(gè)記錄在主文件中的位置;然后再

利用順序查找法去查找主文件,從而找到所要求的記錄。

索引文件的檢索:首先是根據(jù)用戶(程序)提供的關(guān)鍵字,并利用折半查找法,

去檢索索引表,從中找到相應(yīng)的項(xiàng),再利用該表項(xiàng)中給出的指向記錄的指針值,

去訪問所需的記錄。

索引順序文件檢索:首先利用用戶(程序)提供的關(guān)鍵字以及某種查找方法,

去檢索索引表,找到該記錄所在記錄組中第一個(gè)記錄的表項(xiàng),從中得到該記錄組

第一個(gè)記錄在主文件中的位置;然后,再利用順序查找法去查找主文件,從中找

到所要求的記錄。

7.試從檢索速度和存儲(chǔ)費(fèi)用兩方面對(duì)索引文件和索引順序文件進(jìn)行比較。

17.對(duì)目錄管理主要有哪些要求?

答:對(duì)文件目錄的管理有以下要求:

a)實(shí)現(xiàn)“按名存取"b)提高對(duì)目錄的檢索速度c)文件共享d)允許文件重名

18.采用單級(jí)目錄能否滿足目錄管理的主要要求?

采用單級(jí)目錄只能實(shí)現(xiàn)目錄管理的基本功能(即文件的按名存?。?,而對(duì)于其它

三項(xiàng)要求則不能滿足。

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

目前廣泛采用的目錄結(jié)構(gòu)形式是樹型目錄結(jié)構(gòu),其具有檢索效率高、允許重名、

便于實(shí)現(xiàn)文件共享等一系列優(yōu)點(diǎn)。

20.Hash檢索法有何優(yōu)點(diǎn)?有何局限性?

又稱雜湊結(jié)構(gòu)或散列結(jié)構(gòu)。這種結(jié)構(gòu)只適用于定長(zhǎng)記錄文件和按記錄隨機(jī)查找的

訪問方式。

Hash結(jié)構(gòu)的思想是通過計(jì)算來確定一個(gè)記錄在存儲(chǔ)設(shè)備上的存儲(chǔ)位置,依次先后

存入的兩個(gè)記錄在物理設(shè)備上不一定相鄰。按Hash結(jié)構(gòu)組織文件的兩個(gè)關(guān)鍵問

題是:?

定義一個(gè)雜湊函數(shù);?

解決沖突;?

22.解釋關(guān)于樹型目錄結(jié)構(gòu)采用線性檢索法的檢索過程。

假設(shè)用戶給定的文件路徑名為/Levell/Level2/…/Leveln/datafile,則關(guān)于樹型目錄

結(jié)構(gòu)采用線性檢索法檢索該文件的基本過程為:①讀入第一個(gè)文件分量名

Levell,用它與根目錄文件(或當(dāng)前目錄文件)中各個(gè)目錄項(xiàng)的文件名順序地進(jìn)

行比較,從中找出匹配者,并得到匹配項(xiàng)的索引結(jié)點(diǎn)號(hào),再從對(duì)應(yīng)索引結(jié)點(diǎn)中獲

知Levell目錄文件所在的盤塊號(hào),將相應(yīng)盤塊讀入內(nèi)存。②對(duì)于2?n,循環(huán)執(zhí)行

以下步驟,以檢索各級(jí)目錄文件:讀入第i個(gè)文件分量名Leveli,用它與最新調(diào)

入內(nèi)存的當(dāng)前目錄文件中各個(gè)目錄項(xiàng)的文件名順序地進(jìn)行比較,從中找出匹配

者,并得到匹配項(xiàng)的索引結(jié)點(diǎn)號(hào),再從對(duì)應(yīng)索引結(jié)點(diǎn)中獲知Leveli目錄文件所在

的盤塊號(hào),將相應(yīng)盤塊讀入內(nèi)存。③讀入最后一個(gè)文件分量名即datafile,用它與

第n級(jí)目錄文件中各個(gè)目錄項(xiàng)的文件名進(jìn)行比較,從而得到該文件對(duì)應(yīng)的索引結(jié)

點(diǎn)號(hào),進(jìn)而找到該文件物理地址,目錄查找操作成功結(jié)束。如果在上述查找過程

中,發(fā)現(xiàn)任何一個(gè)文件分量名未能找到,則停止查找并返回“文件未找到”的出

錯(cuò)信息。

26.基于索引結(jié)點(diǎn)的共享方式有哪些優(yōu)缺點(diǎn)?

就基于索引結(jié)點(diǎn)的共享方式而言,其優(yōu)點(diǎn)在于“建立新的共享鏈接,并不改變文

件擁有者的關(guān)系,僅把索引結(jié)點(diǎn)共享計(jì)數(shù)器加1,所以系統(tǒng)可方便獲悉由多少個(gè)

目錄項(xiàng)指向該文件”。同時(shí)一,該方式也存在所謂“懸空指針”的問題和缺點(diǎn)。具

體而言,文件擁有者不能刪除自己的文件,否則將留下指向該結(jié)點(diǎn)的懸空指針,

造成該結(jié)點(diǎn)再分配時(shí),系統(tǒng)出錯(cuò);為此,擁有者只能清除自己的目錄項(xiàng),且要為

其它共享者無端付費(fèi),直至其它共有者清除該文件?

27.基于符號(hào)鏈的文件共享方式有哪些優(yōu)缺點(diǎn)?

就基于符號(hào)鏈的文件共享方式來說,只有文件主才擁有指向其索引結(jié)點(diǎn)的指針,

而共享該文件的其它用戶只有該文件的路徑名且沒有指向索引結(jié)點(diǎn)的指針,所以

也就不會(huì)發(fā)生在文件主刪除共享文件后留下所謂“懸空指針”的問題。當(dāng)文件擁

有者把一個(gè)共享文件刪除后,其它用戶試圖通過符號(hào)鏈來訪問一個(gè)被刪除的共享

文件時(shí)將因系統(tǒng)找不到該文件而使訪問失敗,于是將符號(hào)鏈刪除,此時(shí)不會(huì)有任

何其它負(fù)面效應(yīng)。當(dāng)然,這種方式也存在自己的問題。在其它用戶訪問共享文件

時(shí),系統(tǒng)是根據(jù)給定的文件路徑名,逐個(gè)分量地去查找目錄,直至找到該文件的

索引結(jié)點(diǎn)。因此,在訪問共享文件時(shí)要多次讀盤,使每次訪問文件的系統(tǒng)開銷加

大,且增加了啟動(dòng)磁盤的頻率。此外,要為每個(gè)共享用戶建立一條符號(hào)鏈,而該

鏈實(shí)際上是一個(gè)文件,盡管該文件非常簡(jiǎn)單,卻仍需為之配置一個(gè)索引結(jié)點(diǎn),故

而也要消耗一定的磁盤空間。需要指出的是,本共享方式還有一個(gè)特殊的優(yōu)點(diǎn),

即它能夠用于鏈接(通過計(jì)算機(jī)網(wǎng)絡(luò))世界上任何地方的機(jī)器中的文件,此時(shí)只

需提供該文件所在機(jī)器的網(wǎng)絡(luò)地址以及在該機(jī)器中的文件路徑。

25.空閑磁盤空間的管理常采用哪幾種方式?UNIX系統(tǒng)采用的是何種方式?

空閑磁盤空間的管理常采用以下幾種方法:(1)空閑表法,屬于連續(xù)分配方式,

它與內(nèi)存管理中的動(dòng)態(tài)分區(qū)分配方式相似。(2)空閑鏈表法,將所有空閑盤區(qū)

鏈接成一條空閑鏈。根據(jù)構(gòu)成鏈的基本元素不同,可分為空閑盤塊鏈和空閑盤區(qū)

鏈。(3)位示圖法,利用二進(jìn)制的一位來表示磁盤中每一個(gè)盤塊的使用情況,

磁盤上的所有盤塊都有一個(gè)二進(jìn)制位與之對(duì)應(yīng),從而由所有盤塊所對(duì)應(yīng)的位構(gòu)成

一個(gè)集合,即位示圖。(4)成組鏈接法,結(jié)合空閑表法和空閑鏈表法而形成。

UNIX系統(tǒng)采用的是成組鏈接法

28.在第一級(jí)磁盤容錯(cuò)技術(shù)中,包括那些容錯(cuò)措施?什么是寫后讀校驗(yàn)?

在第一級(jí)磁盤容錯(cuò)技術(shù)中,包括以下容錯(cuò)措施:(1)雙份目錄和雙份文件分配

表。在磁盤上存放的文件目錄和文件分配表FAT均為文件管理所用的重要數(shù)據(jù)

結(jié)構(gòu),所以為之建立備份。在系統(tǒng)每次加電啟動(dòng)時(shí);都要對(duì)兩份目錄和兩份FAT

進(jìn)行檢查,以驗(yàn)證它們的一致性。(2)熱修復(fù)重定向和寫后讀校驗(yàn),二者均用

于防止將數(shù)據(jù)寫入有缺陷的盤塊中。就熱修復(fù)重定向而言,系統(tǒng)將一定的磁盤容

量作為熱修復(fù)重定向區(qū),用于存放當(dāng)發(fā)現(xiàn)盤塊有缺陷時(shí)的待寫數(shù)據(jù),并對(duì)寫入該

區(qū)的所有數(shù)據(jù)進(jìn)行登記,方便將來對(duì)數(shù)據(jù)進(jìn)行訪問。而寫后讀校驗(yàn)則是為了保證

所有寫入磁盤的數(shù)據(jù)都能寫入到完好的盤塊中,故在每次從內(nèi)存緩沖區(qū)向磁盤中

寫入一個(gè)數(shù)據(jù)塊后,應(yīng)立即從磁盤上讀出該數(shù)據(jù)塊并送至另一緩沖區(qū)中,再將該

緩沖區(qū)中內(nèi)容與原內(nèi)存緩沖區(qū)中在寫后仍保留的數(shù)據(jù)進(jìn)行比較,若兩者一致,便

認(rèn)為此次寫入成功,可繼續(xù)寫入下一個(gè)盤塊;否則,則重寫。若重寫后兩者仍不

一致,則認(rèn)為該

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論