考研操作系統(tǒng)-進(jìn)程管理(一)_第1頁
考研操作系統(tǒng)-進(jìn)程管理(一)_第2頁
考研操作系統(tǒng)-進(jìn)程管理(一)_第3頁
考研操作系統(tǒng)-進(jìn)程管理(一)_第4頁
考研操作系統(tǒng)-進(jìn)程管理(一)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

考研操作系統(tǒng)-進(jìn)程管理(一)

(總分:105.00,做題時(shí)間:90分鐘)

一、單項(xiàng)選擇題(總題數(shù):35,分?jǐn)?shù):35.00)

1.進(jìn)程和程序的一個(gè)本質(zhì)區(qū)別是.

(分?jǐn)?shù);1.00)

A.前者分時(shí)使用CPU,后者獨(dú)占CPU

B.前者存儲在內(nèi)存,后者存儲在外存

C.前者在一個(gè)文件中,后者在多個(gè)文件中

D.前者為動(dòng)態(tài)的,后者為靜態(tài)的-J

解析:[分析]

進(jìn)程是程序在計(jì)算機(jī)上的一次執(zhí)行活動(dòng)。當(dāng)運(yùn)行一個(gè)程序,就啟動(dòng)了一個(gè)進(jìn)程。進(jìn)程具有動(dòng)態(tài)性、并發(fā)

性、獨(dú)立性、異步性和結(jié)構(gòu)特征。顯然,程序是靜態(tài)的,進(jìn)程是動(dòng)態(tài)的。進(jìn)程可以分為系統(tǒng)進(jìn)程和用戶進(jìn)

程。凡是用于完成操作系統(tǒng)的各種功能的進(jìn)程就是系統(tǒng)進(jìn)程,它們就是處于運(yùn)行狀態(tài)下的操作系統(tǒng)本身。

2.多道系統(tǒng)環(huán)境下,操作系統(tǒng)分配資源是以為基本單位。

(分?jǐn)?shù):1.00)

A.作業(yè)

B.指令

C.程序

D.進(jìn)程J

解析:[分析]

多道環(huán)境下,程序這個(gè)概念已經(jīng)難于反映程序并發(fā)執(zhí)行的特點(diǎn),所以,在多道環(huán)境下,為了更好地描述程

序并發(fā)執(zhí)行的特點(diǎn),引入了進(jìn)程的概念。進(jìn)程是在多道環(huán)境下資源分配的基本單位。

3.中斷掃描機(jī)構(gòu)是掃描一次中斷寄存器。

(分?jǐn)?shù):1.00)

A.每隔一個(gè)時(shí)間片

B.每條指令執(zhí)行周期內(nèi)最后時(shí)刻J

C.每當(dāng)進(jìn)程釋放CPU

D.每產(chǎn)生一次中斷

解析:[分析]

處理器執(zhí)行完一條指令后,硬件的中斷裝置(中斷掃描機(jī)構(gòu))立即檢查有無中斷事件發(fā)生,若無中斷事件發(fā)

生,則處理機(jī)繼續(xù)執(zhí)行下面的指令;若有中斷事件發(fā)生,則暫?,F(xiàn)行進(jìn)程的運(yùn)行,而讓操作系統(tǒng)中的中斷

處理程序占用處理器,這一過程稱為“中斷響應(yīng)”。

4.下面關(guān)于進(jìn)程的敘述中,正確的是。

(分?jǐn)?shù):1.00)

A.進(jìn)程獲得CPU運(yùn)行是通過調(diào)度得到的V

B.優(yōu)先級是進(jìn)程調(diào)度的重要依據(jù),一旦確定就不能改變

C.在單CPU的系統(tǒng)中,任何時(shí)刻都有一個(gè)進(jìn)程處于運(yùn)行狀態(tài)

D.進(jìn)程申請CPU得不到滿足時(shí),其狀態(tài)變?yōu)樽枞?/p>

解析:[分析]

B錯(cuò)在優(yōu)先級分靜態(tài)和動(dòng)態(tài)兩種,動(dòng)態(tài)的優(yōu)先級是根據(jù)進(jìn)程運(yùn)行情況隨時(shí)調(diào)整的。C錯(cuò)在若發(fā)生死鎖則全

部進(jìn)程都處于阻塞狀態(tài)。D錯(cuò)在進(jìn)程申請CPU得不到滿足就處于就緒狀態(tài),等待CPU的調(diào)度。

5.在操作系統(tǒng)中,死鎖出現(xiàn)是指。

(分?jǐn)?shù):1.00)

A.計(jì)算機(jī)系統(tǒng)發(fā)生重大故障

B.資源數(shù)口少于進(jìn)程數(shù)

C.若干進(jìn)程因競爭資源而無限等待其他進(jìn)程釋放已占有的資源V

D.進(jìn)程同時(shí)申請的資源數(shù)超過資源總數(shù)

解析:[分析]

所謂死鎖:是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過程中,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外

力作用,它們都將無法推進(jìn)下去。此時(shí)稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠(yuǎn)在互相等待的進(jìn)

程稱為死鎖進(jìn)程。由于資源占用是互斥的,當(dāng)某個(gè)進(jìn)程提出申請資源后,使得有關(guān)進(jìn)程在無外力協(xié)助下,

永遠(yuǎn)分配不到必需的資源而無法繼續(xù)運(yùn)行,這就產(chǎn)生了一種特殊現(xiàn)象一一死鎖。

6.一個(gè)進(jìn)程被喚醒,意味著_____。

(分?jǐn)?shù):1.00)

A.該進(jìn)程重新占有了CPU

B.進(jìn)程狀態(tài)變?yōu)榫途wJ

C.它的優(yōu)先權(quán)變?yōu)樽畲?/p>

D.其PCB移至就緒隊(duì)列的隊(duì)首

解析:[分析]

進(jìn)程被喚醒是進(jìn)入就緒隊(duì)列。到底插入到就緒隊(duì)列的什么地方,取決于就緒的管理方法和進(jìn)程調(diào)度的算

法。如果進(jìn)程調(diào)度是最高優(yōu)先數(shù)優(yōu)先,該進(jìn)程按優(yōu)先數(shù)插入該隊(duì)列中;如果該隊(duì)列是按到達(dá)的先后次序排

列的,則按到達(dá)的先后次序插入。

7.下面所列進(jìn)程的3種基本狀態(tài)之間的轉(zhuǎn)換不正確的是。

(分?jǐn)?shù):1.00)

A.就緒狀態(tài)一執(zhí)行狀態(tài)

B.執(zhí)行狀態(tài)一就緒狀態(tài)

C.執(zhí)行狀態(tài)一阻塞狀態(tài)

D.就緒狀態(tài)一阻塞狀態(tài)V

解析:[分析]

進(jìn)程在運(yùn)行期間,不斷地從一個(gè)狀態(tài)轉(zhuǎn)換到另外一個(gè)狀態(tài),它可以多次處于就緒狀態(tài)和執(zhí)行狀態(tài),也可多

次處于阻塞狀態(tài),但可能排在不同的阻塞隊(duì)列。對于進(jìn)程的三種基本狀態(tài)的轉(zhuǎn)換關(guān)系及其轉(zhuǎn)換原因闡述如

下。

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

態(tài)變?yōu)閳?zhí)行狀態(tài)。正在執(zhí)行的進(jìn)程也稱為當(dāng)前進(jìn)程。

?執(zhí)行狀態(tài)一阻塞狀態(tài)。正在執(zhí)行的進(jìn)程,因發(fā)生某事件而無法執(zhí)行。例如,進(jìn)程請求訪問臨界資源,而

該資源正被其它進(jìn)程訪問,則請求該資源的進(jìn)程將由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài)。

?執(zhí)行狀態(tài)~就緒狀態(tài)。正在執(zhí)行的程序,因時(shí)間片用完而被暫停執(zhí)行,該進(jìn)程便由執(zhí)行狀態(tài)變?yōu)榫途w狀

態(tài)。在搶占調(diào)度方式中,一個(gè)優(yōu)先高的進(jìn)程到來后,可以搶占一個(gè)正在執(zhí)行的優(yōu)先權(quán)的進(jìn)程的處理機(jī);這

時(shí),該低優(yōu)先權(quán)進(jìn)程也將由執(zhí)行狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。

從就緒狀態(tài)直接到阻塞狀態(tài)是不可能發(fā)生的,因此本題的答案選Do

8.由于并發(fā)進(jìn)程執(zhí)行的隨機(jī)性,一個(gè)進(jìn)程對另一個(gè)進(jìn)程的影響是不可預(yù)測的,甚至造成結(jié)果的不正確

(分?jǐn)?shù):1.00)

A.造成不正確的因素與時(shí)間有關(guān)J

B.造成不正確的因素只與進(jìn)程占用的處理機(jī)有關(guān)

C.造成不正確的因素與執(zhí)行速度無關(guān)

D.造成不正確的因素只與外界的影n向有關(guān)

解析:[分析]

由于各進(jìn)程的異步推進(jìn),進(jìn)程之間的制約關(guān)系與時(shí)間有關(guān),也即與進(jìn)程的執(zhí)行速度有關(guān)。

9.進(jìn)程調(diào)度算法中,可以設(shè)計(jì)成“可搶占式”的算法有。

(分?jǐn)?shù):1.00)

A.先來先服務(wù)調(diào)度算法

B.最高響應(yīng)比優(yōu)先

C.最短作業(yè)優(yōu)先

D.時(shí)間片輪轉(zhuǎn)調(diào)度算法J

解析:[分析]

常用的進(jìn)程調(diào)度算法有先來先服務(wù)、優(yōu)先數(shù)、時(shí)間片輪轉(zhuǎn)及多級反饋隊(duì)列等算法?!跋葋硐确?wù)調(diào)度算

法”是“非搶占式”的;“優(yōu)先數(shù)調(diào)度算法”可以是“非搶占式”的,也可以是“搶占式”的;“時(shí)間片

輪轉(zhuǎn)調(diào)度算法”是一種“搶占式”的。而“最高響應(yīng)比優(yōu)先”、“最短作業(yè)優(yōu)先”算法適用于作業(yè)調(diào)度,

而不適于進(jìn)程調(diào)度。三種進(jìn)程調(diào)度算法的含義如下。

(1)先來先服務(wù)調(diào)度算法。這種調(diào)度算法是按照進(jìn)程進(jìn)入就緒隊(duì)列的先后次序選擇可以占用處理器的進(jìn)

程。當(dāng)有進(jìn)程就緒時(shí),把該進(jìn)程排入就緒隊(duì)列的末尾,而進(jìn)程調(diào)度總是把處理器分配給就緒隊(duì)列中的第一

個(gè)進(jìn)程。一旦一個(gè)進(jìn)程占有了處理器,它就一直運(yùn)行下去,直到因等待某事件或進(jìn)程完成了工作才讓出處

理器。

(2)優(yōu)先數(shù)調(diào)度算法。對每個(gè)進(jìn)程確定一個(gè)優(yōu)先數(shù),進(jìn)程調(diào)度總是讓具有最高優(yōu)先數(shù)的進(jìn)程先使用處理

器。如果進(jìn)程具有相同的優(yōu)先數(shù),則對這些有相同優(yōu)先數(shù)的進(jìn)程再按先來先服務(wù)的次序分配處理器。就緒

隊(duì)列中進(jìn)程可按優(yōu)先數(shù)從大到小排列,這樣,進(jìn)程調(diào)度也總是把處理器分配給就緒隊(duì)列中的第一個(gè)進(jìn)程。

進(jìn)程被創(chuàng)建時(shí)系統(tǒng)為其確定一個(gè)優(yōu)先數(shù),進(jìn)程的優(yōu)先數(shù)可以是固定的,也可隨進(jìn)程的執(zhí)行過程而動(dòng)態(tài)變

化。優(yōu)先數(shù)調(diào)度算法分為“非搶占式”的與“可搶占式”的兩種。

(3)時(shí)間片輪轉(zhuǎn)調(diào)度算法。系統(tǒng)規(guī)定一個(gè)“時(shí)間片”的值。調(diào)度算法讓就緒進(jìn)程按就緒的先后次序排成隊(duì)

列,每次總是選擇就緒隊(duì)列中的第一個(gè)進(jìn)程占用處理器,但規(guī)定只能使用一個(gè)“時(shí)間片”。如果一個(gè)時(shí)間

片用完,進(jìn)程工作尚未結(jié)束,則它也必須讓出處理器而被重新排到就緒隊(duì)列的末尾,等待再次運(yùn)行,當(dāng)再

次輪到運(yùn)行時(shí),重新開始使用一個(gè)新的時(shí)間片。這樣,就緒隊(duì)列中的進(jìn)程就依次輪流地占用處理器運(yùn)行。

10.下面有關(guān)選擇進(jìn)程調(diào)度算法的準(zhǔn)則中,不正確的是_____。

(分?jǐn)?shù):1.00)

A.盡快響應(yīng)交互式用戶請求

B.盡量提高處理器利用率

C.盡可能提高系統(tǒng)吞吐量

D.適當(dāng)增加進(jìn)程在就緒隊(duì)列中的等待時(shí)間V

解析:[分析]

在選擇調(diào)度算法時(shí),應(yīng)考慮以下幾個(gè)準(zhǔn)則:

?公平:確保每個(gè)進(jìn)程獲得合理的CPU份額;

?有效:使CPU盡可能的繁忙;

?響應(yīng)時(shí)間:使交互用戶的響應(yīng)時(shí)間盡可能短;

?周轉(zhuǎn)時(shí)間:使批處理用戶等待輸出的時(shí)間盡可能短;

?吞吐量:使單位時(shí)間處理的進(jìn)程數(shù)盡可能最多。

進(jìn)程的三個(gè)基本狀態(tài)在一定條件下可以相互轉(zhuǎn)化,進(jìn)程由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài)的條件是(25);由執(zhí)行

狀態(tài)變?yōu)樽枞麪顟B(tài)的條件是(26)。

(分?jǐn)?shù):1.00)

A.時(shí)間片用完

B.等待某事件發(fā)生

C.等待的某事件已發(fā)生

D.被進(jìn)程調(diào)度程序選中,

解析:

A.時(shí)間片用完

B.等待某事件發(fā)生V

C.等待的某事件已發(fā)生

D.被進(jìn)程調(diào)度程序選中

解析:[分析]

進(jìn)程在執(zhí)行期間,可以多次處于就緒狀態(tài)和執(zhí)行狀態(tài),也可以多次處于阻塞狀態(tài),但處于新狀態(tài)只有一

次。

?新狀態(tài)到就緒狀態(tài):當(dāng)就緒隊(duì)列允許接納新進(jìn)程時(shí),系統(tǒng)便把處于新狀態(tài)進(jìn)程移入就緒隊(duì)列。

?就緒狀態(tài)到執(zhí)行狀態(tài):進(jìn)程調(diào)度程序?yàn)樘幱诰途w狀態(tài)的進(jìn)程分配處理機(jī)后,該進(jìn)程進(jìn)入執(zhí)行狀態(tài)。

?執(zhí)行狀態(tài)到阻塞狀態(tài):正在執(zhí)行的進(jìn)程因需要等待某事件而無法執(zhí)行,讓出處理機(jī)。

?阻塞狀態(tài)到就緒狀態(tài):進(jìn)程所等待的事件發(fā)生了,進(jìn)程就從阻塞狀態(tài)進(jìn)入就緒狀態(tài)。

?執(zhí)行狀態(tài)到就緒狀態(tài):正在執(zhí)行的進(jìn)程因時(shí)間片用完而被暫停執(zhí)行:或者在可搶占調(diào)度方式中,

一個(gè)優(yōu)先級高的進(jìn)程到來后,正在執(zhí)行的優(yōu)先級低的進(jìn)程被強(qiáng)制撤下處理機(jī),轉(zhuǎn)換為就緒狀態(tài)。

?執(zhí)行狀態(tài)到終止?fàn)顟B(tài):一個(gè)進(jìn)程已完成或發(fā)生某種特殊事件,進(jìn)程將變?yōu)榻K止?fàn)顟B(tài)。

11.關(guān)于臨界問題的一個(gè)算法(假設(shè)只有進(jìn)程P0和P1可能會進(jìn)入該臨界區(qū))如下(i為0或1):

repeat

retry:

if(turn^-l)turn:=i;

if(turn#11)gotoretry;

turn:=-l;

臨界區(qū);

turn:=0

其他區(qū)域;

untilfalse;

該算法。

(分?jǐn)?shù):1.00)

A.不能保持進(jìn)程互斥進(jìn)入臨界區(qū),且會出現(xiàn)“饑餓”

B.不能保持進(jìn)程互斥進(jìn)入臨界區(qū),但不會出現(xiàn)“饑餓”V

C.保證進(jìn)程互斥進(jìn)入臨界區(qū),但會出現(xiàn)“饑餓”

D.保證進(jìn)程互斥進(jìn)入臨界區(qū),不會出現(xiàn)“饑餓”

解析:[分析]

進(jìn)程并發(fā)時(shí)容易產(chǎn)生爭奪資源現(xiàn)象,必須在入口碼處能夠阻止進(jìn)程同時(shí)進(jìn)入臨界區(qū)。要求根據(jù)給出的入口

碼和出口碼判斷程序是否正確,此類出題方式較常見。此類題目要想得出正確答案,關(guān)鍵是找出程序的錯(cuò)

誤。根據(jù)條件可先寫出每個(gè)進(jìn)程的執(zhí)行代碼,注意程序中i的取值應(yīng)與進(jìn)程Pi的取值相同:

p0:repeat

retry:if(turn^-l)turn:=O;①

if(turnWO)gotoretry;②

turn:=-l;⑤

臨界區(qū);

turn:=0;

其他區(qū)域;

untilfalse;

pl:repeat

retry:if(turn^-l)turn:=l;③

if(turnWl)gotoretry;④

turn:=T;⑥

臨界區(qū);

turn:=0;

其他區(qū)域;

untilfalse;

入口碼最容易出錯(cuò)的地方就是在兩個(gè)進(jìn)程同時(shí)中請進(jìn)入臨界區(qū)的時(shí)候。若此時(shí)兩個(gè)進(jìn)程同時(shí)申請資源,此

時(shí)turn的值是0,按照①②③④⑤⑥的順序執(zhí)行,兩個(gè)進(jìn)程同時(shí)進(jìn)入臨界區(qū)。再討論“饑餓”問題。因

為入口碼的判斷條件是turn=-l則進(jìn)程被阻塞,而只有在臨界區(qū)中存在進(jìn)程訪問的情況下turn的值才會

是7,所以沒有進(jìn)程會被餓死。

12.進(jìn)程控制塊是描述進(jìn)程狀態(tài)和特性的數(shù)據(jù)結(jié)構(gòu),一個(gè)進(jìn)程?

(分?jǐn)?shù):1.00)

A.可以有多個(gè)進(jìn)程控制塊:

B.可以和其他進(jìn)程公用一個(gè)進(jìn)程控制塊;

C.可以沒有進(jìn)程控制塊;

D.只能有唯一的進(jìn)程控制塊。V

解析:[分析]

進(jìn)程控制塊(PCB)是保存進(jìn)程的狀態(tài)和控制進(jìn)程轉(zhuǎn)換的標(biāo)識,也是進(jìn)程存在的唯一標(biāo)識。創(chuàng)建進(jìn)程則產(chǎn)生

PCB,撤銷進(jìn)程系統(tǒng)就要回收PCB。PCB主要包括描述信息、管理信息、資源清單?,F(xiàn)場保護(hù)區(qū)和其他功

能。操作系統(tǒng)通過PCB表(或隊(duì)列)來管理與控制進(jìn)程.PCB表項(xiàng)的個(gè)數(shù)是確定的,所以也就限制了系統(tǒng)中

的進(jìn)程個(gè)數(shù)不能超過某個(gè)值。

進(jìn)程控制塊是進(jìn)程存在的標(biāo)志,進(jìn)程與進(jìn)程控制塊是一對一的關(guān)系,進(jìn)程控制塊記錄進(jìn)程的控制信息和描

述信息,操作系統(tǒng)利用進(jìn)程控制塊對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理,進(jìn)程控制塊是操作系統(tǒng)中最重要的

記錄行數(shù)據(jù)結(jié)構(gòu)。

13.下列選項(xiàng)中,導(dǎo)致創(chuàng)建新進(jìn)程的操作是。

I.用戶登錄成功n.設(shè)備分配in.啟動(dòng)程序執(zhí)行

(分?jǐn)?shù):1.00)

A.僅I和II

B.僅n和in

c.僅I和inv

D.I、II、III

解析:[分析]

進(jìn)程在運(yùn)行期間通過創(chuàng)建進(jìn)程系統(tǒng)調(diào)用來創(chuàng)建多個(gè)新進(jìn)程。每一個(gè)進(jìn)程都有生命期,即從創(chuàng)建到消亡的時(shí)

間周期。當(dāng)操作系統(tǒng)為一個(gè)程序構(gòu)造一個(gè)進(jìn)程控制塊并分配地址空間之后,就創(chuàng)建了一個(gè)進(jìn)程。進(jìn)程的創(chuàng)

建來源于以下四個(gè)事件。

?提交一個(gè)批處理作業(yè)。

?在終端上一個(gè)交互式作業(yè)登錄。

?操作系統(tǒng)創(chuàng)建一個(gè)服務(wù)進(jìn)程。

?存在的進(jìn)程創(chuàng)建新的進(jìn)程。

因此,在本題中,能導(dǎo)致創(chuàng)建新進(jìn)程的操作有用戶登錄成功和啟動(dòng)程序執(zhí)行。

14.在下列敘述中,正確的一條是。

(分?jǐn)?shù):1.00)

A.分時(shí)系統(tǒng)中,時(shí)間片越小,響應(yīng)時(shí)間越長

B.多道程序的引入,主要是為了提高CPU及其他資源的利用率V

C.飛機(jī)票訂票系統(tǒng)是分時(shí)系統(tǒng)

D.PCB是進(jìn)程存在的唯一標(biāo)志,而程序是系統(tǒng)感知進(jìn)程存在的唯一實(shí)體

解析:[分析]

分時(shí)系統(tǒng)的響應(yīng)時(shí)間Tgnq,n是用戶數(shù)目,q是時(shí)間片。當(dāng)在用戶數(shù)目一定的情況下,時(shí)間片越小,響

應(yīng)時(shí)間越短。因此,選項(xiàng)A錯(cuò)誤。

在單道程序環(huán)境中,系統(tǒng)的全部資源為一個(gè)作業(yè)所獨(dú)占,如果該作業(yè)在進(jìn)行輸入或輸出時(shí),CPU仍然被它

所占有,處于等待狀態(tài)。如果采用多道程序設(shè)計(jì)技術(shù),當(dāng)某個(gè)作業(yè)輸入或輸出時(shí),CPU就可處理其他的作

'Ik,其他資源也是類似的。選項(xiàng)B正確。

飛機(jī)票訂票系統(tǒng)是實(shí)時(shí)信息處理系統(tǒng)。所以,選項(xiàng)C錯(cuò)誤。

PCB是進(jìn)程存在的唯一標(biāo)志,也是系統(tǒng)感知進(jìn)程存在的唯一實(shí)體。而進(jìn)程的程序部分描述了進(jìn)程所要完成

的功能。選項(xiàng)D錯(cuò)誤。

15.分配到必要的資源并獲得處理機(jī)時(shí)的進(jìn)程狀態(tài)是。

(分?jǐn)?shù):1.00)

A.就緒狀態(tài)

B.執(zhí)行狀態(tài)V

C.阻塞狀態(tài)

D.撤銷狀態(tài)

解析:[分析]

一般來說進(jìn)程可分為就緒、執(zhí)行和阻塞3種狀態(tài)。

就緒狀態(tài)(Ready):進(jìn)程已分配到除處理機(jī)以外的所有必要資源,具備了執(zhí)行的條件,可能會有多個(gè)進(jìn)程

處于就緒狀態(tài),排成就緒隊(duì)列。

執(zhí)行狀態(tài)(Running):進(jìn)程已分配到所有必要資源,并占用處理機(jī)正在執(zhí)行其程序。單處理機(jī)系統(tǒng)中只能

有一個(gè)進(jìn)程處于執(zhí)行狀態(tài),多處理機(jī)系統(tǒng)中可能有多個(gè)進(jìn)程處于執(zhí)行狀態(tài)。

阻塞狀態(tài)(Blocked):也叫等待或睡眠狀態(tài),是進(jìn)程由于等待某種事件的發(fā)生而處于暫停執(zhí)行的狀態(tài)。如

進(jìn)程因等待I/O的完成、等待緩沖空間等。

16.若信號量的初值為2,當(dāng)前值為-3,則表示有個(gè)等待進(jìn)程。

(分?jǐn)?shù):1.00)

A.1

B.2

C.3V

D.5

解析:[分析]

當(dāng)信號量控制互斥問題時(shí),其初值往往代表資源的個(gè)數(shù)。本題初值為2,說明該種資源數(shù)量2個(gè)。當(dāng)進(jìn)程

將2個(gè)資源全部占有之后,信號量值減至0,此時(shí)若再有進(jìn)程要求申請?jiān)撡Y源,則必須在此信號量上等

待,具體表現(xiàn)為:將信號量的值減1,導(dǎo)致信號量的取值為負(fù)。此時(shí)有幾個(gè)進(jìn)程申請?jiān)撡Y源,信號量便被

減幾次;因此S的值為-3,則表示有3個(gè)進(jìn)程在等待該資源。

17.下列選項(xiàng)中,操作系統(tǒng)提供的給應(yīng)用程序的接口是o

(分?jǐn)?shù):1.00)

A.系統(tǒng)調(diào)用-J

B.中斷

C.庫函數(shù)

D.原語

解析:[分析]

顯然,操作系統(tǒng)提供的給應(yīng)用程序的接口是系統(tǒng)調(diào)用?原語和中斷都是操作系統(tǒng)本身的功能,不是提供給

應(yīng)用程序的接口。庫函數(shù)是程序設(shè)計(jì)語言提供給程序員編程用的。

18.既考慮作業(yè)等待時(shí)間,又考慮作業(yè)執(zhí)行時(shí)間的調(diào)度算法是。

(分?jǐn)?shù):1.00)

A.響應(yīng)比高者優(yōu)先J

B.短作業(yè)優(yōu)先

C.優(yōu)先級調(diào)度

D.先來先服務(wù)

解析:[分析]

響應(yīng)比是用等待時(shí)間/運(yùn)行時(shí)間作為優(yōu)先數(shù)來決定調(diào)度哪個(gè)作業(yè)運(yùn)行,根據(jù)分?jǐn)?shù)的特點(diǎn),運(yùn)行時(shí)間越長的

優(yōu)先級越小,因此考慮了短作業(yè)優(yōu)先的原則;等待時(shí)間越長的優(yōu)先級會越高,照顧了因運(yùn)行時(shí)間長而被迫

等待的作業(yè)。

19.在進(jìn)程控制塊中,主要包括4方面用于描述和控制進(jìn)程運(yùn)行的信息。其中,_____主要是由處理機(jī)各

種寄存器中的內(nèi)容所組成。

(分?jǐn)?shù):1.00)

A.進(jìn)程標(biāo)識符信息

B.進(jìn)程調(diào)度信息

C.處理機(jī)狀態(tài)信息J

D.進(jìn)程控制信息

解析:[分析]

在進(jìn)程控制塊中,主要包括4方面用于描述和控制進(jìn)程運(yùn)行的信息,分別是進(jìn)程標(biāo)識符信息、處理機(jī)狀態(tài)

信息、進(jìn)程調(diào)度信息和進(jìn)程控制信息。

其中,處理機(jī)狀態(tài)信息主要是由處理機(jī)各種寄存器中的內(nèi)容所組成。處理機(jī)在運(yùn)行時(shí),許多信息新放在寄

存器中,當(dāng)處理機(jī)被中斷時(shí),所有這些信息都必須保存在被中斷進(jìn)程的PCB中,以便在該進(jìn)程重新執(zhí)行

時(shí),能從斷點(diǎn)繼續(xù)執(zhí)行。

20.下列進(jìn)程調(diào)度算法中,綜合考慮進(jìn)程等待時(shí)間和執(zhí)行時(shí)間的是o

(分?jǐn)?shù):1.00)

A.時(shí)間片輪轉(zhuǎn)調(diào)度算法

B.短進(jìn)程優(yōu)先調(diào)度算法

C.先來先服務(wù)調(diào)度算法

D.高響應(yīng)比優(yōu)先調(diào)度算法V

解析:[分析]

時(shí)間片輪轉(zhuǎn)法和先來先服務(wù)算法都是用戶感覺公平的方法,并未考慮進(jìn)程等待時(shí)間和執(zhí)行時(shí)間,而短進(jìn)程

優(yōu)先考慮的是進(jìn)程執(zhí)行時(shí)間。響應(yīng)比優(yōu)先算法是根據(jù)公式:

響應(yīng)比=1+作業(yè)等待時(shí)間/運(yùn)行時(shí)間的估計(jì)值來計(jì)算優(yōu)先級的。當(dāng)運(yùn)行時(shí)間短時(shí),優(yōu)先數(shù)高,而運(yùn)行時(shí)間長

的進(jìn)程,優(yōu)先級會因?yàn)槠涞却龝r(shí)間的延長而提高。因此,這是一個(gè)綜合了等待時(shí)間和執(zhí)行時(shí)間的算法。

在操作系統(tǒng)中引入并發(fā)可以提高系統(tǒng)效率.若有兩個(gè)程序A和B,A程序執(zhí)行時(shí)所做的工作按次序需要用

CPU:10秒;DEV1:5秒;CPU:5秒;DEV2:10秒;CPU:10秒。B程序執(zhí)行時(shí)所做的工作按次序需要用

DEV1:10秒;CPU:10秒;DEV2:5秒;CPU:5秒;DEV2:10秒。如果在順序環(huán)境下執(zhí)行A、B兩個(gè)程

序,CPU的利用率為(8);如果在并發(fā)環(huán)境下執(zhí)行兩個(gè)程序,假設(shè)A程序先執(zhí)行,則CPU的利用率為

⑼。

(分?jǐn)?shù):1.00)

A.30%

B.40%

C.50%V

D.60%

解析:

A.99%

B.89%V

C.79%

D.69%

解析:[分析]

如果A、B順序執(zhí)行,根據(jù)順序環(huán)境的特點(diǎn),程序A結(jié)束之后程序B才可以開始運(yùn)行,因此總的運(yùn)行時(shí)間

應(yīng)是兩個(gè)程序運(yùn)行所需實(shí)際時(shí)間的總和,即

(10+5+5+10+10)+(10+10+5+5+10)=80秒

再計(jì)算CPU運(yùn)行時(shí)間:(10+5+10)+(10+5)=40秒,因此CPU利用率為40秒/80秒=50%。如果并發(fā)執(zhí)行,則

在程序A不使用CPU時(shí),B可以占用CPU,與A對其他設(shè)備的使用同步進(jìn)行。程序A、B是同時(shí)進(jìn)行著,也

是同時(shí)結(jié)束的,即運(yùn)行時(shí)間重疊。因此可得,程序運(yùn)行所需時(shí)間為45秒,而CPU運(yùn)行時(shí)間為40秒,由此

可得CPU利用率為40秒/45秒=89%。

21.進(jìn)程間的同步是指進(jìn)程間在邏輯上的相互_____關(guān)系。

(分?jǐn)?shù):1.00)

A.聯(lián)接

B.制約4

C.繼續(xù)

D.調(diào)用

解析:[分析]

某些進(jìn)程為完成同一任務(wù)需要分工協(xié)作,由于合作的每一個(gè)進(jìn)程都是獨(dú)立地以不可預(yù)知的速度推進(jìn),這就

需要相互協(xié)作的進(jìn)程在某些協(xié)調(diào)點(diǎn)上協(xié)調(diào)各自的工作。為了解決進(jìn)程間協(xié)作關(guān)系(直接制約關(guān)系),因此引

入了進(jìn)程同步。

進(jìn)程同步主要源于進(jìn)程合作,是進(jìn)程間共同完成一項(xiàng)任務(wù)時(shí),直接發(fā)生相互作用的關(guān)系,為進(jìn)程之間的直

接制約關(guān)系。在多道環(huán)境下,這種進(jìn)程間在執(zhí)行次序上的協(xié)調(diào)是必不可少的。

22.下列選項(xiàng)中,降低進(jìn)程優(yōu)先權(quán)級的合理時(shí)機(jī)是。

(分?jǐn)?shù):1.00)

A.進(jìn)程的時(shí)間片用完V

B.進(jìn)程剛完成I/O,進(jìn)入就緒隊(duì)列

C.進(jìn)程持久處于就緒隊(duì)列

D.進(jìn)程從就緒狀態(tài)轉(zhuǎn)為運(yùn)行態(tài)

解析:[分析]

在操作系統(tǒng)中,進(jìn)程調(diào)度的時(shí)機(jī)主要有:

?進(jìn)程狀態(tài)轉(zhuǎn)換的時(shí)刻:進(jìn)程終止、進(jìn)程睡眠;

?當(dāng)前進(jìn)程的時(shí)間片用完時(shí);

?設(shè)備驅(qū)動(dòng)程序;

?進(jìn)程從中斷、異常及系統(tǒng)調(diào)用返回到用戶態(tài)時(shí)。

在試題所給出的4個(gè)選項(xiàng)中,A和D屬于上述“時(shí)機(jī)”,但是,當(dāng)進(jìn)程從就緒狀態(tài)轉(zhuǎn)為運(yùn)行態(tài)時(shí),如果降

低進(jìn)程優(yōu)先權(quán)級,則可能導(dǎo)致這種正在發(fā)生的轉(zhuǎn)換不能實(shí)施,這不合理。因此,相對而言,比較合理的時(shí)

機(jī)是進(jìn)程的時(shí)間片用完的時(shí)候。

在動(dòng)態(tài)優(yōu)先級調(diào)度方法中,一般采取的策略(也是比較合理的策略)是,進(jìn)程處于就緒隊(duì)列中的時(shí)間越長,

其優(yōu)先級就應(yīng)該越高。也就是說,當(dāng)進(jìn)程持久處于就緒隊(duì)列時(shí),應(yīng)該提高其優(yōu)先級,而不是降低其優(yōu)先

級。

23.通常,用戶進(jìn)程被建立后,。

(分?jǐn)?shù):1.00)

A.便一直存在于系統(tǒng)中,直到被操作人員撤銷

B.隨著作業(yè)運(yùn)行正?;虿徽=Y(jié)束而撤銷V

C.隨著時(shí)間片輪轉(zhuǎn)而撤銷與建立

D.隨著進(jìn)程的阻塞或喚醒而撤銷與建立

解析:[分析]

每一個(gè)進(jìn)程都有生命期,即從創(chuàng)建到消亡的時(shí)間周期。當(dāng)操作系統(tǒng)為一個(gè)程序構(gòu)造一個(gè)進(jìn)程控制塊并分配

地址空間之后,就創(chuàng)建了一個(gè)進(jìn)程。用戶可以任意的取消用戶的作業(yè),隨著作業(yè)運(yùn)行的正常或不正常結(jié)

束,進(jìn)程也被撤銷了。

操作系統(tǒng)中,可以并行工作的基本單位是0,它也是核心調(diào)度及資源分配的基本單位,它是由(13)

組成的,它與程序的重要區(qū)別之一是(14)。

(分?jǐn)?shù):0.99)

A.作業(yè)

B.函數(shù)

C.進(jìn)程J

D.過程

解析:

A.程序、數(shù)據(jù)和PCBV

B.程序、數(shù)據(jù)和標(biāo)識符

C.程序、標(biāo)識符和PCB

D.數(shù)據(jù)、標(biāo)識符和PCB

解析:

A.程序有狀態(tài),而它沒有

B.它有狀態(tài),而程序沒有

C.程序可占有資源,而它不可

D.它能占有資源,而程序不能V

解析:[分析]

進(jìn)程的本質(zhì)特征是并發(fā),在現(xiàn)代操作系統(tǒng)中,用戶程序以進(jìn)程方式占用系統(tǒng)資源,為管理進(jìn)程,建立PCB

描述進(jìn)程的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。

24.某計(jì)算機(jī)系統(tǒng)中有8臺打印機(jī),由K個(gè)進(jìn)程競爭使用,每個(gè)進(jìn)程最多需要3臺打印機(jī)。該系統(tǒng)可能會

發(fā)生死鎖的K的最小值是_____。

(分?jǐn)?shù):1.00)

A.2

B.3

C.4J

D.5

解析:[分析]

發(fā)生死鎖的現(xiàn)象就是占有并等待,并且等待的資源不會被釋放。可假設(shè)死鎖已發(fā)生,進(jìn)而討論進(jìn)程個(gè)數(shù)。

肯定發(fā)生死鎖的最小進(jìn)程數(shù)是這樣得到的:假設(shè)K個(gè)進(jìn)程,每個(gè)進(jìn)程需要M個(gè)資源,而每個(gè)進(jìn)程已占有

MT個(gè),都在等待最后一個(gè)資源,于是死鎖發(fā)生;此時(shí),只要再多一個(gè)資源,死鎖便可解除,K便是所求

值。根據(jù)題目條件,M=3,KX(M-1)=8,得KM。

25.產(chǎn)生死鎖的基本原因是___和進(jìn)程推進(jìn)順序非法。

(分?jǐn)?shù):1.00)

A.資源分配不當(dāng)4

B.系統(tǒng)資源不足

C.作業(yè)調(diào)度不當(dāng)

D.進(jìn)程調(diào)度不當(dāng)

解析:[分析]

死鎖的發(fā)生和資源的分配關(guān)系密切。當(dāng)用戶申請資源,系統(tǒng)不加限制地隨意分配就容易發(fā)生死鎖,所以死

鎖應(yīng)該是資源分配不當(dāng)時(shí)產(chǎn)生的后果。

26.時(shí)間片輪轉(zhuǎn)法進(jìn)行進(jìn)程調(diào)度是為了.

(分?jǐn)?shù):1.00)

A.多個(gè)終端都能得到系統(tǒng)的及時(shí)響應(yīng)V

B.先來先服務(wù)

C.優(yōu)先級較高的進(jìn)程得到及時(shí)響應(yīng)

D.需要CPU最短的進(jìn)程先做

解析:[分析]

時(shí)間片輪轉(zhuǎn)(RR)調(diào)度算法尤其適用于分時(shí)系統(tǒng)。RR調(diào)度算法與FCFS調(diào)度算法非常相似,但是添加了進(jìn)程

間的搶占轉(zhuǎn)換。RR定義了一個(gè)小的時(shí)間單元,被稱為時(shí)間量(或時(shí)間片)。一個(gè)時(shí)間量通常在10毫秒到

100毫秒之間。把就緒隊(duì)列作為循環(huán)隊(duì)列對待。CPU調(diào)度程序環(huán)繞這個(gè)就緒隊(duì)列,將CPU分配到每個(gè)進(jìn)

程,每隔一個(gè)時(shí)間量轉(zhuǎn)換一次。

在這種調(diào)度算法中,系統(tǒng)將所有就緒進(jìn)程按到達(dá)時(shí)間的先后次序排成一個(gè)隊(duì)列。進(jìn)程調(diào)度程序總是選擇隊(duì)

列中第一個(gè)進(jìn)程執(zhí)行,且僅能執(zhí)行一個(gè)時(shí)間片。在使用完一個(gè)時(shí)間片后,即使進(jìn)程并未完成其運(yùn)行,也必

須將處理機(jī)交給下一個(gè)進(jìn)程。

27.單處理機(jī)系統(tǒng)中,可并行的是______。

I,進(jìn)程與進(jìn)程口.處理機(jī)與設(shè)備n【.處理機(jī)與通道N.設(shè)備與設(shè)備

(分?jǐn)?shù):1.00)

A.I,n和in

B.I、H和IV

c.I、in和N

D.11、111和印V

解析:[分析]

在單處理機(jī)系統(tǒng)中,為提高系統(tǒng)效率,讓內(nèi)存中保持多個(gè)處于不同狀態(tài)的進(jìn)程(這稱為進(jìn)程并發(fā)執(zhí)行),但

在同一時(shí)刻占用處理機(jī)的卻只有一個(gè)進(jìn)程,因此,進(jìn)程之間不是并行的;現(xiàn)代操作系統(tǒng)的形成正是通道產(chǎn)

生的結(jié)果,通道是可以獨(dú)立于CPU控制輸入輸出的設(shè)備,在處理機(jī)進(jìn)行運(yùn)算時(shí),通道可同時(shí)進(jìn)行I/O操

作,因此,這兩者也是并行的;處理機(jī)運(yùn)算時(shí),外設(shè)可同時(shí)進(jìn)行輸入/輸出的操作,因此,也產(chǎn)生了并

行;顯然,設(shè)備和設(shè)備之間也是可以并行的。

28.一個(gè)運(yùn)行進(jìn)程必須具備的3種基本狀態(tài)是_____。

(分?jǐn)?shù):1.00)

A.就緒狀態(tài)、掛起狀態(tài)和執(zhí)行狀態(tài)

B.掛起狀態(tài)、阻塞狀態(tài)和執(zhí)行狀態(tài)

C.就緒狀態(tài)、執(zhí)行狀態(tài)和阻塞狀態(tài)J

D.就緒狀態(tài)、執(zhí)行狀態(tài)和終止?fàn)顟B(tài)

解析:[分析]

-一般來說,按進(jìn)程在執(zhí)行過程中的不同情況,進(jìn)程的基本狀態(tài)包括有以下幾種。

?就緒狀態(tài)(Ready):進(jìn)程已分配到除處理機(jī)以外的所有必要資源,具備了執(zhí)行的條件,可能會有多個(gè)進(jìn)

程處于就緒狀態(tài),排成就緒隊(duì)列。

?執(zhí)行狀態(tài)(Running):進(jìn)程占用處理機(jī)正在執(zhí)行其程序。單處理機(jī)系統(tǒng)中只能有一個(gè)進(jìn)程處于執(zhí)行狀

態(tài),多處理機(jī)系統(tǒng)中可能有多個(gè)進(jìn)程處于執(zhí)行狀態(tài)。

?阻塞狀態(tài)(Blocked):也叫等待或睡眠狀態(tài),是進(jìn)程由于等待某種事件的發(fā)生而處于暫停執(zhí)行的狀態(tài),

如進(jìn)程因等待I/O的完成、等待緩沖空間等。

29.有5個(gè)批處理任務(wù)A、B、C、D、E幾乎同時(shí)到達(dá)一計(jì)算中心。其預(yù)計(jì)運(yùn)行時(shí)間分別為10、6、2、4和

8分鐘。其優(yōu)先級(由外部設(shè)定)分別為3、5、2、1和4,這里5為最高優(yōu)先級。下列各種調(diào)度算法中,其

平均進(jìn)程周轉(zhuǎn)時(shí)間為14分鐘的是。

I'I(分?jǐn)?shù):1.00)

A.時(shí)間片輪轉(zhuǎn)

B.優(yōu)先級調(diào)度

C.先來先服務(wù)

D.最短作業(yè)優(yōu)先J

解析:[分析]

按照不同調(diào)度算法計(jì)算平均周轉(zhuǎn)周期。時(shí)間片輪轉(zhuǎn):因沒有給出時(shí)間片的長度,暫不計(jì)算。優(yōu)先級調(diào)度:

100/5=20分鐘,先來先服務(wù):86/5=17.2分鐘。最短作業(yè)優(yōu)先:70/5=14分鐘。調(diào)度過程如圖2-10所

zj\0

[*]

30.通過撤銷進(jìn)程可以進(jìn)行死鎖恢復(fù),還可以采用方法解除死鎖。

(分?jǐn)?shù):1.00)

A.阻塞進(jìn)程

B.資源剝奪J

C.提高進(jìn)程優(yōu)先級

D.降低進(jìn)程優(yōu)先級

解析:[分析]

解除死鎖的方法有撤消進(jìn)程法和資源剝奪法。即強(qiáng)行將死鎖的進(jìn)程撤銷,或強(qiáng)行剝奪死鎖進(jìn)程的資源,以

打破僵持,使系統(tǒng)能夠繼續(xù)運(yùn)轉(zhuǎn)下去。

采用資源剝奪法,將剝奪的資源分配給死鎖進(jìn)程,以解決死鎖。

31.設(shè)與某資源相關(guān)聯(lián)的信號量初值為3,當(dāng)前值為1,若M表示該資源的可用個(gè)數(shù),N表示等待該資源的

進(jìn)程數(shù),則M,N分別是?

(分?jǐn)?shù):1.00)

A.0,1

B.1,0V

C.1,2

D.2,0

解析:[分析]

信號量的初值為3,說明有3個(gè)這樣的資源可供使用。但其當(dāng)前值為1,說明當(dāng)前只有1個(gè)這樣的資源可

用,而另外2個(gè)已經(jīng)分配。由于還有1個(gè)資源可用,所以此時(shí)沒有等待該資源的進(jìn)程。

32.調(diào)度算法有利于CPU繁忙型的作業(yè),而不利于I/O繁忙型的作業(yè)(進(jìn)程)。

(分?jǐn)?shù):1.00)

A.時(shí)間片輪轉(zhuǎn)調(diào)度算法

B.先來先服務(wù)調(diào)度算法J

C.短作業(yè)(進(jìn)程)優(yōu)先算法

D.優(yōu)先權(quán)調(diào)度算法

解析:[分析]

目前存在著多種調(diào)度算法,有的算法適合作業(yè)調(diào)度;有的算法適用于進(jìn)程調(diào)度;但也有些調(diào)度算法,既可

用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。

其中,先來先服務(wù)(FCFS)調(diào)度算法是一種最簡單的調(diào)度算法。當(dāng)在作業(yè)調(diào)度中采用該算法時(shí),每次調(diào)度是

從后備作業(yè)隊(duì)列中,選擇一個(gè)或多個(gè)最先進(jìn)入該隊(duì)列的作用,將它們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進(jìn)

程,然后放入就緒隊(duì)列。

在進(jìn)程調(diào)度中,采用FCFS調(diào)度算法時(shí),則每次調(diào)度就是從就緒隊(duì)列中選擇一個(gè)最先進(jìn)入該隊(duì)列的進(jìn)程,

把處理機(jī)分配給它,使之投入運(yùn)行。該進(jìn)程一直運(yùn)行到完成或發(fā)生某事件而阻塞后,才放棄處理機(jī)。

FCFS算法比較有利于長作業(yè)(進(jìn)程),而不利于短作業(yè)(進(jìn)程),如表2-6所示列出了A、B、C、D四個(gè)作業(yè)

分別到達(dá)系統(tǒng)的時(shí)間、要求服務(wù)的時(shí)間、開始執(zhí)行時(shí)間及各自的完成時(shí)間,并計(jì)算出各自的周轉(zhuǎn)時(shí)間和帶

權(quán)周轉(zhuǎn)時(shí)間。

表2-6四個(gè)作業(yè)情況表

進(jìn)程到達(dá)時(shí)開始執(zhí)行帶權(quán)周轉(zhuǎn)時(shí)

服務(wù)時(shí)間完成時(shí)間周轉(zhuǎn)時(shí)間

名間時(shí)間間

A010111

B110011011001

C21101102100100

D31001022021991.99

從表2-6中可以看出,其中短作業(yè)C的帶權(quán)周轉(zhuǎn)時(shí)間竟高達(dá)100,而長作業(yè)D的帶權(quán)周轉(zhuǎn)時(shí)間僅為1.99。

由此可見,F(xiàn)CFS調(diào)度算法有利于CPU繁忙型的作業(yè),而不利于I/O繁忙型的作業(yè)(進(jìn)程)。CPU繁忙型作

業(yè),是指該類作業(yè)需要大量的CPU時(shí)間進(jìn)行計(jì)算,而很少請求I/O。通常的科學(xué)計(jì)算便屬于CPU繁忙型作

業(yè)。I/O繁忙型作業(yè)是指CPU進(jìn)行處理時(shí),又需頻繁地請求I/O,而每次I/O的操作時(shí)間卻很短,日前大

多數(shù)的事務(wù)處理,都屬于I/O繁忙型作業(yè)??梢酝ㄟ^一個(gè)例子來說明采用FCFS調(diào)度算法的調(diào)度性能,表

2-7中有5個(gè)進(jìn)程A、B、C、【)和E,它們到達(dá)的時(shí)間分別是0、1、2、3和4,所要求的服務(wù)時(shí)間分別是

4、3、5、2和4,由表2-7還可以看出,A、B、C,D和E的完成時(shí)間分別是4、7、12、14和18,從每個(gè)

進(jìn)程的完成時(shí)間中減去其到達(dá)時(shí)間,即得到每個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間,進(jìn)而可以算出每個(gè)進(jìn)程的帶權(quán)周轉(zhuǎn)時(shí)

間。

表2-7FCFS高度算法性能

作業(yè)情況進(jìn)程名稱ABCDE平均

到達(dá)時(shí)間01234

調(diào)度算法服務(wù)時(shí)間43524

完成時(shí)間47121418

FCFS周轉(zhuǎn)時(shí)間461011149

帶權(quán)周轉(zhuǎn)時(shí)間1225.53.52.8

二、綜合題(總題數(shù):35,分?jǐn)?shù):70.00)

33.UNIX作系統(tǒng)使用copy-on-write方式來實(shí)現(xiàn)fork。系統(tǒng)調(diào)用以便創(chuàng)建一個(gè)新進(jìn)程。但在創(chuàng)建進(jìn)程時(shí)并

不能完全使用copy-on-write方式,因?yàn)檫M(jìn)程的某些部分必須在創(chuàng)建時(shí)即時(shí)copy,請問進(jìn)程的哪些部分

必須在創(chuàng)建時(shí)即時(shí)copy,哪些部分可以采用copy-on-write方式而不用即時(shí)copy?這樣做有什么好處?

(分?jǐn)?shù):1.00)

正確答案:(每個(gè)進(jìn)程執(zhí)行時(shí)必須將頁表始址或段表始址調(diào)到初始寄存器,并將頁表調(diào)入內(nèi)存,否則進(jìn)程

無法執(zhí)行,所以頁表部分必需在創(chuàng)建時(shí)即時(shí)copy,其他進(jìn)程管理程序所需的進(jìn)程信息如進(jìn)程號等也需要

在創(chuàng)建時(shí)即時(shí)copy,而那些運(yùn)行暫時(shí)不需要的進(jìn)程用戶上下文及數(shù)據(jù)可以先不復(fù)制到子進(jìn)程空間,而是

采取copy-on-write策略,因?yàn)樽舆M(jìn)程以后很可能不會用到這部分內(nèi)容,而是調(diào)用exec()用新的進(jìn)程上

下文覆蓋其原有上下文,這樣一來可以節(jié)省fork。調(diào)用開銷,避免不必要的copy。)

解析:

34.進(jìn)程和線程的主要區(qū)別是什么?

(分?jǐn)?shù):1.00)

正確答案:(線程具有許多傳統(tǒng)進(jìn)程所具有的特征,故又稱為輕型進(jìn)程或進(jìn)程元;而把傳統(tǒng)的進(jìn)程稱為重

型進(jìn)程,它相當(dāng)于只有一個(gè)線程的任務(wù)。在引入了線程的操作系統(tǒng)中,通常一個(gè)進(jìn)程都有若干個(gè)線程,至

少也需要有一個(gè)線程。下面從調(diào)度、并發(fā)性、系統(tǒng)開銷、擁有資源等方面,來比較線程與進(jìn)程。

(1)調(diào)度。在傳統(tǒng)操作系統(tǒng)中,擁有資源的基木單位和獨(dú)立調(diào)度、分派的基本單位都是進(jìn)程。而在引入線

程的操作系統(tǒng)中,則把線程作為調(diào)度和分派的基本單位,而把進(jìn)程作為資源擁有的基本單位,使傳統(tǒng)進(jìn)程

的兩個(gè)屬性分開,線程便能輕裝運(yùn)行,從而提高系統(tǒng)的并發(fā)程度。在同一進(jìn)程中,線程的切換不會引起進(jìn)

程的切換,在由一個(gè)進(jìn)程中的線程切換到另一進(jìn)程中的線程時(shí),將會引起進(jìn)程切換。

(2)并發(fā)性。在引入線程的操作系統(tǒng)中,不僅進(jìn)程之間可以并發(fā)執(zhí)行,而且在一個(gè)進(jìn)程中的多個(gè)線程之

間,亦可并發(fā)執(zhí)行,因而使操作系統(tǒng)具有更好的并發(fā)性,從而能更有效地使用系統(tǒng)費(fèi)源和提高系統(tǒng)的吞吐

量。

(3)擁有資源。不論是傳統(tǒng)的操作系統(tǒng),還是設(shè)有線程的操作系統(tǒng),進(jìn)程都是擁有資源的一個(gè)獨(dú)立單位,

它可以擁有自己的資源。一般來說,線程不擁有系統(tǒng)資源(也有一點(diǎn)必不可少的資源),但它可以訪問其隸

屬進(jìn)程的資源。亦即,一個(gè)進(jìn)程的代碼段、數(shù)據(jù)段以及系統(tǒng)資源,如已打開的文件、1/0設(shè)備等,可供同

一進(jìn)程的所有線程共享。

(4)系統(tǒng)開銷。在創(chuàng)建或撤銷進(jìn)程時(shí),系統(tǒng)都要為之分配或回收資源,如內(nèi)存空間、I/O設(shè)備等。因此,

操作系統(tǒng)所付出的開銷將顯著地大于在創(chuàng)建或撤消線程時(shí)的開銷。類似地,在進(jìn)行進(jìn)程切換時(shí),涉及整個(gè)

當(dāng)前進(jìn)程CPU環(huán)境的保存以及新被調(diào)度運(yùn)行的進(jìn)程CPU環(huán)境的設(shè)置。而進(jìn)程切換只需保存和設(shè)置少量寄存

器的內(nèi)容,并不涉及存儲器管理方面的操作。可見,進(jìn)程切換的開銷也遠(yuǎn)大于線程切換的開銷。此外,由

于同一進(jìn)程中的多個(gè)線程具有相同的地址空間,使兩者之間的同步和通信的實(shí)現(xiàn)也變得比較容易,在有的

系統(tǒng)中,線程的切換、同步和通信都無須需操作系統(tǒng)內(nèi)核干預(yù)。)

解析:

某個(gè)操作系統(tǒng)的設(shè)計(jì)口標(biāo)是同時(shí)支持實(shí)時(shí)任務(wù)和交互式任務(wù),它的實(shí)現(xiàn)采用混合式多線程策略,處理器調(diào)

度策略采用多隊(duì)列策略,在系統(tǒng)資源匱乏時(shí),可以采用中級調(diào)度來平衡系統(tǒng)負(fù)載。

(分?jǐn)?shù):2.00)

(1).該操作系統(tǒng)中存在著哪些與處理器調(diào)度有關(guān)的實(shí)體?(分?jǐn)?shù):1.00)

正確答案:(進(jìn)程:系統(tǒng)進(jìn)行資源管理和保護(hù)的單位,與處理器調(diào)度相關(guān)的實(shí)體。

內(nèi)核級線程:進(jìn)程的一條執(zhí)行路徑,操作系統(tǒng)進(jìn)行處理器調(diào)度的實(shí)體。

用戶級線程:進(jìn)程的一條執(zhí)行路徑,操作系統(tǒng)不知道它的存在,在執(zhí)行時(shí)映射到內(nèi)核級線程上。)

解析:

(2).請?jiān)O(shè)計(jì)?種合理的多隊(duì)列進(jìn)程調(diào)度策略,它既能滿足實(shí)時(shí)任務(wù)調(diào)度的需要,又能從外設(shè)訪問角度來滿

足交互式任務(wù)調(diào)度的需要。(分?jǐn)?shù):1.00)

正確答案:(劃分成實(shí)時(shí)優(yōu)先級層次和交互式優(yōu)先級層次,其中實(shí)時(shí)優(yōu)先級層次較高。實(shí)時(shí)優(yōu)先級層次包

括多個(gè)優(yōu)先級,可以組織成多個(gè)就緒線程隊(duì)列,也可以組織成一個(gè)優(yōu)先隊(duì)列;可以采用搶占式優(yōu)先數(shù)調(diào)度

策略,如果分配時(shí)間片,應(yīng)該分配較長的時(shí)間片。

交互式優(yōu)先級層次可以劃分成3個(gè)就緒線程隊(duì)列,按照優(yōu)先級從高到低依次為:訪問字符設(shè)備的就緒線程

隊(duì)列、訪問塊設(shè)備的就緒線程隊(duì)列、時(shí)間片到的就緒線程隊(duì)列;其中優(yōu)先級較高的就緒線程隊(duì)列具有較短

的時(shí)間片。)

解析:

35.某操作系統(tǒng)將消息緩沖通信作為進(jìn)程之間通信的基本手段。Send和Receive分別為發(fā)送消息和接收消

息原語。請?jiān)O(shè)計(jì)一種方案,用于Send和Receive原語來實(shí)現(xiàn)基于信號量的P、V操作。

(分?jǐn)?shù):1.00)

正確答案:((1)所有信號量由一個(gè)叫同步的進(jìn)程來完成,對應(yīng)每個(gè)信號量設(shè)置一個(gè)計(jì)數(shù)器(記錄信號量的

值)和一個(gè)等待進(jìn)程鏈表。

(2)P、V操作通過調(diào)用P、V過程來完成。P和V過程將信號量s和操作作為消息發(fā)給同步進(jìn)程,然后等

待同步進(jìn)程的回答。

(3)同步進(jìn)程接收到消息后,看所要求的操作能否完成。P操作當(dāng)S的值為0時(shí),同步進(jìn)程把調(diào)用者推入

隊(duì)列,不發(fā)回消息,調(diào)用者處于等待狀態(tài);V操作總能完成,所以發(fā)回-空消息給調(diào)用者,將其解凍,同

時(shí)檢查S的值是否為1和相應(yīng)等待隊(duì)列是否為空。若S為1,且隊(duì)列不空,則從隊(duì)列中移出一個(gè)進(jìn)程,向

它發(fā)送一個(gè)空消息,將它解凍。)

解析:

36.對基本的進(jìn)程狀態(tài)轉(zhuǎn)換圖2T1中的狀態(tài)轉(zhuǎn)換編號1、2、3、4。令I(lǐng)和J分別取值1、2、3、4(J不等

于I)。請分別討論在狀態(tài)轉(zhuǎn)換I和狀態(tài)轉(zhuǎn)換J之間是否存在因果關(guān)系;若存在,請指出這種關(guān)系是必然

的,或是有條件的,條件是什么?

(分?jǐn)?shù):1.00)

正確答案:(根據(jù)圖2-11分析,狀態(tài)轉(zhuǎn)換1和2之間:沒有2就不會有1,因?yàn)?是進(jìn)程從就緒態(tài)被CPU

調(diào)度進(jìn)入運(yùn)行態(tài)的,若沒有這一轉(zhuǎn)換過程,則不會存在運(yùn)行狀態(tài)的進(jìn)程,因此也就不會出現(xiàn)從運(yùn)行態(tài)進(jìn)入

就緒態(tài)的進(jìn)程,即狀態(tài)轉(zhuǎn)換1不會出現(xiàn):狀態(tài)轉(zhuǎn)換3和4之間:沒有4就不會有3。因?yàn)?是進(jìn)程因等待

資源而從運(yùn)行態(tài)進(jìn)入阻塞態(tài)的,在得到資源后才從阻塞態(tài)進(jìn)入就緒態(tài)(即狀態(tài)轉(zhuǎn)換3),因此可以說沒有4

就不會出現(xiàn)3。還可以認(rèn)為沒有2就不會有4,因?yàn)槿魏芜M(jìn)程必須先運(yùn)行才可以申請資源,所以沒有進(jìn)入

運(yùn)行態(tài)的進(jìn)程,就不可能有進(jìn)入阻塞狀態(tài)的進(jìn)程。)

解析:

37.簡述計(jì)算機(jī)系統(tǒng)的中斷機(jī)制及其作用。中斷裝置如何判別發(fā)生的是自愿性中斷還是強(qiáng)迫性中斷?

(分?jǐn)?shù):1.00)

正確答案:(中斷機(jī)制包括硬件的中斷裝置和操作系統(tǒng)的中斷處理服務(wù)程序。中斷裝置由一些特定的寄存

器和控制線路組成,中央處理器和外圍設(shè)備等識別到的事件保存在特定的寄存器中,中央處理器每執(zhí)行完

一條指令,均由中斷裝置判別是否有事件發(fā)生。若無事件發(fā)生,CPU繼續(xù)執(zhí)行;若有事件發(fā)生,則中斷裝

置中斷原占有CPU的程序的執(zhí)行,讓操作系統(tǒng)的處理事件服務(wù)程序占用CPU,對出現(xiàn)的事件進(jìn)行處理,事

件處理完后,再讓原來的程序繼續(xù)占用CPU執(zhí)行。

處理器執(zhí)行指令時(shí),根據(jù)操作碼是否是訪管指令,來確定是否有自愿性中斷事件發(fā)生。若有,則通知中斷

裝置;對于強(qiáng)迫性中斷,中斷裝置只要檢查中斷寄存器的內(nèi)容,若非“0”,表示有強(qiáng)迫性中斷事件發(fā)

生。)

解析:

38.給出中斷響應(yīng)的系統(tǒng)流程。

(分?jǐn)?shù):1.00)

正確答案:(每一個(gè)程序都要有一個(gè)程序狀態(tài)字(PSW)來刻畫本程序的執(zhí)行狀態(tài),在單處理器的計(jì)算機(jī)系統(tǒng)

中整個(gè)系統(tǒng)設(shè)置一個(gè)用來存放當(dāng)前運(yùn)行進(jìn)程的PSW的寄存器,該寄存器稱為“程序狀態(tài)字寄存器”。為了

說明中斷響應(yīng)過程,我們區(qū)分三種PSW:

(1)存放在程序狀態(tài)字寄存器中的PSW是當(dāng)前正占用處理器的進(jìn)程的PSW,稱“當(dāng)前PSW”。

(2)出現(xiàn)中斷事件后,要由操作系統(tǒng)的中斷處理程序占用處理器,讓中斷處理程序處理出現(xiàn)的中斷事件。

我們把中斷處理程序的PSW稱為“新PSW",新PSW中存放著中斷處理程序的入口地址。

(3)中斷處理程序在占用處理器前,必須把被中斷進(jìn)程的PSW保護(hù)好,以便該進(jìn)程在適當(dāng)?shù)臅r(shí)候能使被中

斷時(shí)的情況繼續(xù)執(zhí)行。把保護(hù)好的被中斷進(jìn)程的PSW稱為“舊PSW”。

當(dāng)中斷裝置發(fā)現(xiàn)中斷事件后,首先把出現(xiàn)的中斷事件存放到程序狀態(tài)字寄存器中的中斷碼位置,然后把程

序狀態(tài)字寄存器中的“當(dāng)前PSW”作為“舊PSW”存放到預(yù)先約定好的主存固定單元中保護(hù)起來,再把已

經(jīng)確定好的操作系統(tǒng)處理程序的“新PSW”送到程序狀態(tài)字寄存器,成為“當(dāng)前PSW",這一過程稱為

“交換:PSW"。中斷裝置通過交換PSW使被中斷進(jìn)程讓出處理器,且使處理器按照中斷處理程序的“新

PS1Y”控制執(zhí)行。于是,中斷處理程序就占用了處理器,它先從保存好的舊PSW中取出中斷碼,分析發(fā)生

的具體事件,從而可完成對中斷事件的處理。

一個(gè)進(jìn)程占有處理器運(yùn)行時(shí),可以由于各種不同的事件發(fā)生而被中斷。對各類不同的事件操作系統(tǒng)的處理

是不同的,一般來說,對每一類事件都要有該類事件的處理程序,每一類處理程序都有一個(gè)“新PSW”。

中斷裝置發(fā)現(xiàn)中斷事件后應(yīng)按中斷事件類讓相應(yīng)的中斷處理程序占有處理器,為此,可預(yù)先約定一些主存

固定單元用來分別存放各類中斷處理程序的“新PSW”和由于各種不同原因被中斷的進(jìn)程的“舊PSW”,

發(fā)生哪類中斷事件就交換哪一類的新、舊PSW。具體處理過程如下:

中斷裝置發(fā)現(xiàn)中斷事件后把中斷事件存入程序狀態(tài)字寄存器中當(dāng)前PSW的中斷碼位置;

把當(dāng)前PSW保存起來,根據(jù)發(fā)生的事件類找出事件對應(yīng)的舊PSW位置(假設(shè)發(fā)生的是外部中斷事件),把當(dāng)

前的PSW保存到該位置上;

把該類事件處理程序的新PSW送入程序狀態(tài)字寄存器,處理器就按這個(gè)新PSW控制處理該事件的中斷處理

程序執(zhí)行。)

解析:

39.給出不同中斷事件的中斷處理程序的處理。

(分?jǐn)?shù):1.00)

正確答案:(各類中斷事件的處理原則大致如下。

(1)硬件故障中斷事件的處理

排除這類故障必須進(jìn)行人工干預(yù),因此處理這類事件只能是輸出一些故障信息例如,當(dāng)主存儲器的奇偶

校驗(yàn)或海明校驗(yàn)裝置發(fā)現(xiàn)主存儲器讀/寫錯(cuò)誤時(shí),產(chǎn)生故障中斷事件,中斷處理程序要把訪問該主存單元

的進(jìn)程狀態(tài)改成“等待干預(yù)”,向操作員報(bào)告出錯(cuò)主存單元的地址和錯(cuò)誤性質(zhì)。待操作員排除故障后重新

啟動(dòng)進(jìn)程,使“等待干預(yù)”狀態(tài)的進(jìn)程變成“就緒”狀態(tài)。

(2)程序中斷事件的處理

程序中斷事件往往與程序的具體編制有關(guān),不同的用戶對出現(xiàn)的事件可以有不同的處理要求,所以,中斷

處理程序可把出現(xiàn)的事件轉(zhuǎn)交給用戶自行處理。如果用戶對發(fā)生的事件沒有提出處理辦法,那么操作系統(tǒng)

就把發(fā)生事件的進(jìn)程名、程序斷點(diǎn)、事件性質(zhì)等報(bào)告給操作員。

(3)外部中斷事件的處理

用戶可以用控制板上的中斷鍵請求調(diào)用操作系統(tǒng)的某個(gè)特定功能。所以,當(dāng)按壓了一個(gè)中斷鍵產(chǎn)生一個(gè)外

部中斷事件時(shí),處理該事件的程序根據(jù)中斷鍵的編號把處理轉(zhuǎn)交給一個(gè)特定的例行程序。時(shí)鐘是操作系統(tǒng)

進(jìn)行調(diào)度工作的重要工具,在UNIX系統(tǒng)中,硬件按電源頻率每隔20毫秒產(chǎn)生一次中斷請求。處理程序累

計(jì)時(shí)鐘中斷次數(shù)用來調(diào)整日歷時(shí)鐘時(shí)間。只要在開機(jī)時(shí)置好開機(jī)時(shí)刻的年、月、日、時(shí)、分、秒,以后根

據(jù)時(shí)鐘中斷的次數(shù)可計(jì)算出當(dāng)前的時(shí)間。也可把時(shí)鐘作為定時(shí)鬧鐘,先確定一個(gè)定時(shí)的時(shí)間,只要把當(dāng)前

的日歷時(shí)鐘時(shí)間與定時(shí)的時(shí)間相加就得到喚醒時(shí)間,處理程序每隔一段時(shí)間(例如1秒鐘)把日歷時(shí)鐘時(shí)間

與喚醒時(shí)間比較,當(dāng)日歷時(shí)鐘時(shí)間》喚醒時(shí)間,就表示定時(shí)的時(shí)間到了,起到鬧鐘的作用。

(4)輸入/輸出中斷事件的處理

I/O中斷通常包括I/O正常結(jié)束和I/O錯(cuò)誤,不同的情況系統(tǒng)采用不同的處理方法。

(5)訪管中斷事件的處理

這類中斷事件表示正在運(yùn)行的進(jìn)程要調(diào)用操作系統(tǒng)的功能,中斷處理程序可設(shè)置一張”系統(tǒng)調(diào)用程序入口

表”,中斷處理程序按系統(tǒng)調(diào)用類型號查這張入口表,找到相應(yīng)的系統(tǒng)調(diào)用程序的入口地址,把處理轉(zhuǎn)交

給實(shí)現(xiàn)調(diào)用功能的程序執(zhí)行。

綜上所述,在多數(shù)情況下,中斷處理程序只須做一些保護(hù)現(xiàn)場。分析事件性質(zhì)等原則性的處理,具體的處

理可由適當(dāng)?shù)睦谐绦騺硗瓿伞R虼?,中斷處理程序可以?chuàng)建一些處理事件的進(jìn)程,具體的處理就由這些

進(jìn)程來實(shí)現(xiàn)。)

解析:

40.進(jìn)程之間存在哪幾種制約關(guān)系?各是什么原因引起的?

下面活動(dòng)分別屬于哪種制約關(guān)系?

(1)若干個(gè)同學(xué)去圖書館借書。

(2)兩隊(duì)舉行籃球賽。

(3)流水線生產(chǎn)的各道工序。

(4)商品生產(chǎn)和社會消費(fèi)。

(分?jǐn)?shù):1.00)

正確答案:(進(jìn)程之間存在直接制約關(guān)系(即同步問題)和間接制約關(guān)系(即互斥問題);同步問題是存在邏

輯關(guān)系的進(jìn)程之間相互等待所產(chǎn)生的制約關(guān)系,互斥問題是相互邏輯關(guān)系的進(jìn)程競爭使用資源所發(fā)生的制

約關(guān)系。

(1)屬于互斥關(guān)系,因?yàn)闀膫€(gè)數(shù)是有限的,一本書只能借給一個(gè)同學(xué)。

(2)屬于互斥關(guān)系,籃球只有一個(gè),兩隊(duì)都要競爭。

(3)屬于同步關(guān)系,各道工序的開始都依賴前道工序的完成。

(4)屬于同步關(guān)系,商品沒生產(chǎn)出來,消費(fèi)無法進(jìn)行,商品未消費(fèi)完,生產(chǎn)也無須進(jìn)行。)

解析:

41.試從物理概念上來說明記錄型信號量和wait與signal操作。

(分?jǐn)?shù):1.00)

正確答案:(信號量是具有整數(shù)值的對象,支持兩種原子操作P0和VO。P操作減少信號量的值,若新的信

號量的值小于0,則操作阻塞:V操作增加信號量的值,若結(jié)果值大于或等于0,V操作就要喚醒一個(gè)等待

的線程或進(jìn)程。例如考慮管理一個(gè)計(jì)數(shù)資源,也就是說,資源是一些固定數(shù)目的實(shí)例(如n個(gè)緩沖區(qū)),進(jìn)

程想獲得資源的一個(gè)實(shí)例,當(dāng)它使用完這個(gè)資源后釋放它,這個(gè)資源能用信號量表示,該信號量可初始化

為資源實(shí)例數(shù)。想獲得資源時(shí)使用P操作,每次請求成功它都要減少信號量的值。信號量的值減少至。時(shí)

(無空閑可用資源),下個(gè)P操作將被阻塞。釋放資源時(shí)使用V操作,它增加信號量的值,同時(shí)喚醒被阻

塞的進(jìn)程。x.wait操作意味著調(diào)用該操作的進(jìn)程將被掛起,直至另一進(jìn)程執(zhí)行x.signal操作,故

x.signal操作僅僅重新啟動(dòng)一個(gè)被掛起的進(jìn)程,若無掛起進(jìn)程,則signal操作相當(dāng)于空操作,即不改變

x的狀態(tài),這不同于V操作,V操作是總要影響信號量操作的。)

解析:

42.假設(shè)有一臺多道程序的計(jì)算機(jī),每個(gè)作業(yè)都有相同的特征,即在一個(gè)計(jì)算周期T里,I/O占用第一和

第四個(gè)1/4周期,處理器占有第二和第三個(gè)1/4周期。而各個(gè)作業(yè)占用的。I/O設(shè)備各不相同。如果計(jì)算

機(jī)被任何一個(gè)作業(yè)單獨(dú)占用的話,完成作業(yè)總共需要1個(gè)計(jì)算周期。假設(shè)使用時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度策略,

而且I/O操作能與處理器操作重疊,不同的I/O設(shè)備可以同時(shí)運(yùn)行。定義以下變量:

周轉(zhuǎn)時(shí)間=完成一個(gè)作業(yè)的實(shí)際時(shí)間

吞吐量=每周期T完成的作業(yè)的數(shù)量的平均值

處理器使用率=處理器處于活動(dòng)狀態(tài)(非等待)的時(shí)間在總時(shí)間中占的百分比

若有兩個(gè)作業(yè)同時(shí)要求運(yùn)行,作業(yè)1的優(yōu)先級較高,作業(yè)都只運(yùn)行一次。進(jìn)程狀態(tài)轉(zhuǎn)換時(shí)的操作系統(tǒng)開銷

忽略不計(jì),且時(shí)間片的大小遠(yuǎn)小于T。

計(jì)算:

(1)作業(yè)1和作業(yè)2各自的周轉(zhuǎn)時(shí)間。

(2)從作業(yè)開始運(yùn)行,到兩個(gè)作業(yè)都已完成的瞬間,計(jì)算機(jī)系統(tǒng)的吞吐量和處理器使用率。

(分?jǐn)?shù):1.00)

正確答案:(設(shè)t=l/4T,則在第一個(gè)t中,作業(yè)1和作業(yè)2各自運(yùn)行第一個(gè)1/4周期;第二個(gè)t和第三

個(gè)t中,作業(yè)1占用CPU,作業(yè)2處于就緒態(tài);第四個(gè)t中,作業(yè)1完成I/O,作業(yè)2獲得CPU,第五個(gè)t

中,作業(yè)2繼續(xù)占用CPU,第六個(gè)t中,作業(yè)2完成I/O。由上分析可知:

作業(yè)1的周轉(zhuǎn)時(shí)間為T;作業(yè)2的周轉(zhuǎn)時(shí)間為3/2T;吞吐量為2/(3/2)=4/3:

處理器的使用率為:2/3。)

解析:

43.在如圖2T2所示的狀態(tài)轉(zhuǎn)換圖中橢圓形框表示進(jìn)程的狀態(tài),帶箭頭的直線表示狀態(tài)的轉(zhuǎn)換。試寫出狀

態(tài)A?E的進(jìn)程狀態(tài)名稱。

(分?jǐn)?shù):1.00)

正確答案:(在如圖2-12所示的狀態(tài)圖上,運(yùn)行態(tài)和就緒態(tài)之間是雙向箭頭,其他都是單向箭頭;只有就

緒態(tài)可以指向運(yùn)行態(tài),其他狀態(tài)都只能被運(yùn)行態(tài)指向,因此可判斷出圖2T2中,C是運(yùn)行態(tài),B是就緒

態(tài);根據(jù)狀態(tài)轉(zhuǎn)換圖2-12可知E是阻塞態(tài);因進(jìn)程在內(nèi)存中就緒態(tài)之前只能是創(chuàng)建,因此A是創(chuàng)建態(tài);

從運(yùn)行態(tài)出發(fā),除了因等待資源進(jìn)入等待態(tài),還有一種情況就是進(jìn)程運(yùn)行結(jié)束離開內(nèi)存,因此D是完成

態(tài)。)

解析:

44.請寫出一種檢測進(jìn)程死鎖的方法和相應(yīng)的結(jié)論(或定理)。

(分?jǐn)?shù):2.00)

正確答案:(進(jìn)程死鎖的檢測方法有多種,主要有利用化簡進(jìn)程后的資源有向圖方式進(jìn)行死鎖的檢測和采

用矩陣表示法進(jìn)行死鎖檢測兩種方法。這里詳細(xì)介紹利用化簡進(jìn)程后的資源有向圖方式進(jìn)行死鎖的檢測。

資源有向圖方式可以檢測出系統(tǒng)的某一狀態(tài)S是否處于死鎖狀態(tài),其化簡方式如下。

(1)從有向圖中找出既不阻塞又非孤立的節(jié)點(diǎn)進(jìn)程Pi。在順利的情況下,Pi可以獲得它所需的資源不斷

向前推進(jìn),直至運(yùn)行完畢。然后釋放它所占有的全部資源而處于潛在狀態(tài),這相當(dāng)于在圖上消去Pi所有

的請求邊和分配邊,使之成為孤立節(jié)點(diǎn)。

(2)進(jìn)程Pi所釋放的資源,可以喚醒某些因等待該資源而被阻塞的進(jìn)程Pj,在順利的情況下,Pj又可以

獲得它所需的資源繼續(xù)推進(jìn),直至進(jìn)行完畢,然后釋放它所占有的全部資源,而處于潛伏狀態(tài)。這相當(dāng)于

在圖上消去了Pj所有的請求邊和分配邊,使之成為孤立的點(diǎn)。

(3)在實(shí)施了上述的一系列化簡步驟后,若消去所有的邊,則該圖是可完全化簡的,不會發(fā)生死鎖。

(4)若有向圖不能通過任何進(jìn)程予以化簡,則稱該圖是不可化簡的,存在死鎖。)

解析:

45.假設(shè)一個(gè)計(jì)算機(jī)系統(tǒng)具有如下性能特征:

處理一次中斷,平均耗用1毫秒。

一次進(jìn)程調(diào)度,平均需要2毫秒。

將CPU分配給選中的進(jìn)程,又需要平均1毫秒。

再假設(shè)其定時(shí)器芯片每秒產(chǎn)生100次中斷。請回答:

(1)操作系統(tǒng)將百分之幾的CPU時(shí)間用于時(shí)鐘中斷處理?

(2)如果操作系統(tǒng)采用輪轉(zhuǎn)法調(diào)度,10個(gè)時(shí)鐘中斷為1個(gè)時(shí)間片。那么,操作系統(tǒng)將百分之幾的CPU時(shí)

間用于進(jìn)程調(diào)度(包括調(diào)度、分配CPU和引起調(diào)度的時(shí)鐘中斷處理時(shí)間)。

(分?jǐn)?shù):2.00)

正確答案:(時(shí)鐘中斷每秒100次,處理一次中斷需耗時(shí)1毫秒,因此每秒鐘處理中斷的時(shí)間是1毫秒

X100,占用CPU的時(shí)間比是100毫秒/I秒=10機(jī)每次進(jìn)程調(diào)度所花時(shí)間為:

(一次進(jìn)程調(diào)度的)2毫秒+(分配CPU的)1毫秒+(引起調(diào)度的時(shí)鐘中斷的)1毫秒

每秒會產(chǎn)生10次進(jìn)程調(diào)度(10個(gè)時(shí)鐘中斷為一個(gè)時(shí)間片,1秒有10個(gè)時(shí)間片),因此,每秒鐘內(nèi)用于進(jìn)程

調(diào)度的時(shí)間比是(2毫秒+1毫秒+1毫秒)X10/1秒=4虬)

解析:

某分時(shí)系統(tǒng)中的進(jìn)程可能出現(xiàn)如圖2-13所示的狀態(tài)變化,回答下列問題:

(分?jǐn)?shù):2.00)

(1).根據(jù)圖2T3,該系統(tǒng)采用的是什么進(jìn)程調(diào)度策略?(分?jǐn)?shù):1.00)

正確答案:(圖2-13中狀態(tài)2是正在運(yùn)行的進(jìn)程被迫放棄CPU進(jìn)入就緒隊(duì)列,應(yīng)該是剝奪式調(diào)度。因此該

系統(tǒng)采用的是時(shí)間片輪轉(zhuǎn)法。)

解析:

(2).把圖2-13中的每一個(gè)狀態(tài)變化的原因填在表2-8相應(yīng)的欄中。

表2-8狀態(tài)變化表

變化原因

溫馨提示

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

評論

0/150

提交評論