考研集錦操作系統(tǒng)_第1頁(yè)
考研集錦操作系統(tǒng)_第2頁(yè)
考研集錦操作系統(tǒng)_第3頁(yè)
考研集錦操作系統(tǒng)_第4頁(yè)
考研集錦操作系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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)介

習(xí)題

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

【〈第?題>】(中國(guó)科學(xué)院計(jì)算技術(shù)研究所1997年試題)

一個(gè)分層結(jié)構(gòu)操作系統(tǒng)由裸機(jī)、用戶、CPU調(diào)度和PV操作、文件管理、作業(yè)管理、內(nèi)存管理、設(shè)備管理、命令管理等

部分組成。試按層次結(jié)構(gòu)的原則從內(nèi)到外將各部分重新排列。

提示:

本題的考核要點(diǎn)是計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)。由丁?設(shè)計(jì)的原則不同,其層次結(jié)構(gòu)也有些區(qū)別。常見(jiàn)的劃分是:

?裸機(jī)層;

?CPU調(diào)度和P、V操作原語(yǔ)層;

?內(nèi)存管理、作業(yè)管理、設(shè)備管理、文件管理層;

?命令管理層(見(jiàn)下圖所示)。

【<第:題>](南京大學(xué)1999年試題)

簡(jiǎn)述卜.列各類操作系統(tǒng)的主要特征。

(1)批處理操作系統(tǒng)

(2)分時(shí)操作系統(tǒng)

(3)實(shí)時(shí)操作系統(tǒng)

(4)分布式操作系統(tǒng)

提示:

①批處理操作系統(tǒng),具有以卜特點(diǎn):

?自主性,無(wú)須人工干預(yù)。程序運(yùn)行過(guò)程中不能與用戶會(huì)話。

?對(duì)于單道批處理系統(tǒng)來(lái)說(shuō),還具有程序運(yùn)行的“順序性”。

②分時(shí)操作系統(tǒng),具有的主要特點(diǎn)為:

?多路性。讓多個(gè)用戶同時(shí)工作,且各用戶獨(dú)立工作,互不干擾。

?交互性。用戶可通過(guò)終端與系統(tǒng)進(jìn)行人一機(jī)會(huì)話.用戶的一項(xiàng)請(qǐng)求能在較短的時(shí)間內(nèi)獲得響應(yīng)。

③實(shí)時(shí)操作系統(tǒng),具有的主要特點(diǎn)是:

?及時(shí)性。對(duì)時(shí)間的要求非常苛刻。

?過(guò)載保護(hù).

④分布式操作系統(tǒng),具有以下特點(diǎn):

?分布性。OS的處理和控制功能是分布式的。

?并行性。它可將任務(wù)分布到多個(gè)處理單元上并行運(yùn)行。

?透明性。它將對(duì)象的物理位置、并發(fā)控制、故障處理等實(shí)現(xiàn)細(xì)節(jié)隱藏在系統(tǒng)內(nèi)部,對(duì)用戶都是透明的.

?共享性。

?健壯性。任何站點(diǎn)上的故障都不能給系統(tǒng)造成太大的影響。

第二章進(jìn)程的描述與控制(1)

[題](西安電r?科技大學(xué)2001年試題)

在個(gè)分布式操作系統(tǒng)中,進(jìn)程可能出現(xiàn)如下圖所示的變化,請(qǐng)把產(chǎn)生每?種變化的具體原因填在表格的相應(yīng)框中。

變化

<2)

<4)

(5)

提示:

本題考核的要點(diǎn)是引起進(jìn)程狀態(tài)變化的條件。系統(tǒng)中的進(jìn)程狀態(tài)共有4個(gè),相關(guān)的內(nèi)容有:

?運(yùn)行狀態(tài)。一個(gè)進(jìn)程處于運(yùn)行狀態(tài),就表明該進(jìn)程正在使用CPU進(jìn)行運(yùn)算。

?就緒隊(duì)列.處于就緒隊(duì)列的進(jìn)程皆為就緒狀態(tài).若一個(gè)進(jìn)程是就緒狀態(tài),則該進(jìn)程具有了運(yùn)行條件(比如資

源已充足,也不等待I/O),惟獨(dú)因CPU太少而得不到運(yùn)行。

?數(shù)據(jù)資源狀態(tài).處于該狀態(tài)的進(jìn)程必然因資源得不到滿足而等待.這類進(jìn)程尚不具備運(yùn)行條件.

?等I/O傳輸狀態(tài)。這也是一種進(jìn)程等待狀態(tài)。處于該狀態(tài)的進(jìn)程必然正在等待數(shù)據(jù)I/O操作的完成。這類進(jìn)

程也不具備運(yùn)行條件.

【第:題】(中國(guó)科學(xué)技術(shù)大學(xué)1998年試題)

(程序閱讀)何謂臨界區(qū)?下面給出的實(shí)現(xiàn)兩個(gè)進(jìn)程互斥的算法是安全的嗎?為什么?

#defineTRUE;

#defineFALSE;

intflag[2];

flag[0]=flag[1]=FALSE;

enter-crtsec(i)

inti;

(

WHILE(flag[l-i]);

flag[i]=TRUE;

}

leave-crtsec(i)

inti;

(

flag[i]=FLASE;

)

processI:/*i=0OR1=1*/

enter-crtsec(i);/*進(jìn)入臨界區(qū)*/

INCRTICALSECTION

Leave-crtsec(i);/*離開(kāi)臨界區(qū)*/

提示:

本題的考核要點(diǎn)是臨界資源訪問(wèn)。

①臨界資源指的是?次僅允許?個(gè)進(jìn)程使用的資源。在進(jìn)程中用于訪問(wèn)臨界資源的程序段稱為臨界區(qū)(CRTICAL

SECTION)。

由于系統(tǒng)中的各進(jìn)程在邏輯上是獨(dú)立的,因此它們各自以獨(dú)立的速度向前推進(jìn)。然而它們又都需要系統(tǒng)中的資源,當(dāng)這

些資源為臨界資源時(shí),就產(chǎn)生了互斥訪問(wèn)的問(wèn)題。臨界區(qū)的概念由此產(chǎn)生。

②本題給出的算法是不安全的。因?yàn)?,在進(jìn)入臨界區(qū)前執(zhí)行的過(guò)程enter-crtsec。和退出臨界區(qū)后執(zhí)行的過(guò)程Leave-crtsec

O都不是原子操作。因而不能避免兩個(gè)或更多進(jìn)程進(jìn)入臨界區(qū)。

【第二題】(清華大學(xué)1998年試題)

(判斷題)判斷對(duì)與錯(cuò):

①進(jìn)程由進(jìn)程控制塊和數(shù)據(jù)集以及對(duì)該數(shù)據(jù)集進(jìn)行操作的程序組成。

②進(jìn)程上下文是進(jìn)程執(zhí)行活動(dòng)全過(guò)程的靜態(tài)描述。

③并發(fā)是并行的不同描述,其原理相同。

提示:

本題考核的是進(jìn)程的結(jié)構(gòu)、進(jìn)程上下文,及進(jìn)程的特征。涉及的內(nèi)容有:

①進(jìn)程的結(jié)構(gòu)由PCB、數(shù)據(jù)集和程序代碼組成。

②進(jìn)程上下文是進(jìn)程執(zhí)行活動(dòng)全過(guò)程的描述,主要包括系統(tǒng)中與執(zhí)行該進(jìn)程有關(guān)的各種寄存器的值,比如數(shù)據(jù)寄存器、

地址寄存器和程序狀態(tài)字(PSW),還有程序段經(jīng)編譯后形成的機(jī)器指令集、數(shù)據(jù)集及各種堆棧值和PCB結(jié)構(gòu)等。

③程序的并發(fā)執(zhí)行是指,一組在邏輯上互相獨(dú)立的程序或程序段在執(zhí)行時(shí)間上相互重疊.即一個(gè)程序段尚未結(jié)束,另

一個(gè)程序段的執(zhí)行已經(jīng)開(kāi)始。應(yīng)當(dāng)注意,并發(fā)性和并行性是決然不同的。程序的并行執(zhí)行是指一組程序同時(shí)按獨(dú)立的、異

步的速度執(zhí)行;而并發(fā)性是指程序執(zhí)行時(shí)間上的重置,不等于程序同時(shí)運(yùn)行。

【第四題】(南京大學(xué)1997年試題)

(論述題)操作系統(tǒng)中為什么要引入進(jìn)程的概念?為了實(shí)現(xiàn)并發(fā)進(jìn)程間的合作和協(xié)調(diào)工作,以及保證系統(tǒng)的安全,操作

系統(tǒng)在進(jìn)程管理方面應(yīng)做哪些工作?

提示:

本題考核進(jìn)程的?般概念。涉及的內(nèi)容有:

①讓程序并發(fā)方式執(zhí)行,能夠充分利用系統(tǒng)資源,提高系統(tǒng)的處理能力。但由于系統(tǒng)資源是有限的,諸多并發(fā)執(zhí)行的

程序在共享資源的同時(shí),必將引起資源的競(jìng)爭(zhēng)。此時(shí)如果不制定特定的規(guī)則和方法,必將使這種共享和競(jìng)爭(zhēng)呈現(xiàn)無(wú)序狀態(tài)。

程序的執(zhí)行結(jié)果也將不可避免地失去封閉性和可再現(xiàn)性,從而得不出正確的、預(yù)期的結(jié)果。

正因?yàn)槿绱?,多道程序設(shè)計(jì)中需要引入一個(gè)能描述程序執(zhí)行過(guò)程,且能用來(lái)共享資源的基本單位一那就是“進(jìn)程”。因

此,進(jìn)程可以被定義為“可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合的執(zhí)行過(guò)程”。

②操作系統(tǒng)對(duì)進(jìn)程管理方面應(yīng)做如下工作:

?進(jìn)程控制,包括進(jìn)程創(chuàng)建與撤消,進(jìn)程在運(yùn)行過(guò)程中的狀態(tài)轉(zhuǎn)換,以及實(shí)現(xiàn)對(duì)進(jìn)程控制塊的維護(hù)等操作。

?進(jìn)程調(diào)度.操作系統(tǒng)必須按一定算法在就緒進(jìn)程中選擇一個(gè)進(jìn)程,把處理機(jī)分配給它,使它順利地投入運(yùn)行。

為此,進(jìn)程調(diào)度應(yīng)具有CPU現(xiàn)場(chǎng)信息的保護(hù)和恢復(fù)功能。

?進(jìn)程同步。對(duì)于一組合作的進(jìn)程,它們的推進(jìn)速度應(yīng)當(dāng)受到某種約束,以便協(xié)調(diào)一致地向前推進(jìn)。因此系統(tǒng)

必須設(shè)立同步控制機(jī)制,對(duì)所有進(jìn)程的運(yùn)行進(jìn)行協(xié)調(diào)。協(xié)調(diào)方式包括進(jìn)程互斥方式和進(jìn)程同步方式.

?進(jìn)程通信.在多道程序環(huán)境下,進(jìn)程之間往往要互相發(fā)送一些信息.操作系統(tǒng)應(yīng)提供有關(guān)的通信調(diào)用和通信

規(guī)范,保證實(shí)現(xiàn)這些進(jìn)程之間的信息交換.進(jìn)程之間的通信種類是很多的,控制機(jī)制也有很多。

【第五題】(西安電子科技大學(xué)2001年試題)

(判斷題)有關(guān)進(jìn)程的描述中,是正確的。

(A)進(jìn)程執(zhí)行的相對(duì)速度不能由進(jìn)程自己來(lái)控制

(B)P、V操作都是原語(yǔ)操作

(C)利用信號(hào)量的P、V操作可以交換大量信息

(D)同步是指并發(fā)進(jìn)程之間存在的一種制約關(guān)系

提示:

該題的考核要點(diǎn)是進(jìn)程。進(jìn)程是多道程序設(shè)計(jì)中引入的一個(gè)新概念,是為了解決資源競(jìng)爭(zhēng),實(shí)現(xiàn)資源共享而提出的。涉

及的內(nèi)容有:

①進(jìn)程的運(yùn)行具有異步性——其推進(jìn)速度是不可預(yù)測(cè)的。因此進(jìn)程執(zhí)行的相對(duì)?速度不能由進(jìn)程自己來(lái)控制。

②原語(yǔ)是一種運(yùn)行時(shí)間較少的小程序,它的運(yùn)行不可分割。P、V操作都是這樣一類操作。

③P、V操作只能花較少的時(shí)間運(yùn)行。若讓它們交換大量信息,必然在關(guān)中斷的狀態(tài)下運(yùn)行時(shí)間太長(zhǎng),使許多中斷得不

到響應(yīng),最后造成不可預(yù)料的后果。

④同步是多個(gè)并發(fā)進(jìn)程協(xié)調(diào)一致運(yùn)行的一種制約關(guān)系。

【第六題】(南京大學(xué)2(X)0年試題)

(論述題)什么是線程?試說(shuō)明線程與進(jìn)程的關(guān)系。

提示:

本題的考核要點(diǎn)是線程的基本概念。在引入線程的操作系統(tǒng)中,線程是進(jìn)程的實(shí)體。線程調(diào)度是處理機(jī)調(diào)度中最接近硬

件的部分。

①線程是為了減少程序并發(fā)執(zhí)行時(shí)付出的開(kāi)銷而引入的。線程的特點(diǎn)是:

?結(jié)構(gòu)性。線程有自己的線程控制塊(TCB)、程序代碼及數(shù)據(jù)集合,它所擁有的資源主要是CPU現(xiàn)場(chǎng)信息

及堆棧信息等.除此之外基本上不擁有自己的資源.

?能動(dòng)性。一個(gè)線程可以創(chuàng)建或者撇消另一個(gè)線程。

?并發(fā)性.同一進(jìn)程的多個(gè)線程可以并發(fā)執(zhí)行.

?動(dòng)態(tài)性。線程有生命周期,在其生命周期中,線程在就緒、運(yùn)行、阻塞等狀態(tài)之間變換。

卜圖是線程控制塊的一個(gè)例子。

線程標(biāo)識(shí)

狀態(tài)

優(yōu)先數(shù)

現(xiàn)場(chǎng)存儲(chǔ)

②進(jìn)程與線程的聯(lián)系與區(qū)別。

?進(jìn)程是任務(wù)調(diào)度的單位,也是系統(tǒng)資源的分配單位;而線程可以看作是進(jìn)程中的一條執(zhí)行路徑.

?當(dāng)系統(tǒng)支持多線程處理時(shí),線程是任務(wù)調(diào)度的基本單位,但不是資源的分配單位,而進(jìn)程恰好相反。

?每個(gè)進(jìn)程至少有一個(gè)執(zhí)行線程.

?當(dāng)系統(tǒng)支持多線程處理時(shí),線程的切換頻繁,但切換的系統(tǒng)開(kāi)銷較小,因此被稱為“輕量級(jí)的進(jìn)程”。而進(jìn)

程的切換不頻繁,切換時(shí)的開(kāi)銷較大.

[第七題](中國(guó)科學(xué)院計(jì)算技術(shù)研究所1999年試題)

填空:

(1)進(jìn)程控制塊的初始化工作包括O、()、和()°

(2)在操作系統(tǒng)中引入線程概念的主要目的是()o

提示:

本題的考核要點(diǎn)是進(jìn)程與線程的基本概念。涉及的內(nèi)容有:

①在進(jìn)程控制塊中包含了進(jìn)程的所有控制信息。這些信息可大體分為3類:

?標(biāo)識(shí)符號(hào)信息。

?處理機(jī)狀態(tài)信息。

?處理機(jī)控制信息。

第一小題就是針對(duì)這3類信息的初始化的。

②在操作系統(tǒng)中引入線程,主要是為了減少程序并發(fā)執(zhí)行時(shí)所需付出的時(shí)空開(kāi)銷,縮短系統(tǒng)切換時(shí)間。同時(shí)也從提高

程序執(zhí)行的并發(fā)度方面考慮。

【第八題】(南京大學(xué)1997年試題)

(論述題)操作系統(tǒng)中為什么要引入進(jìn)程的概念?為了實(shí)現(xiàn)并發(fā)進(jìn)程間的合作和協(xié)調(diào)工作,以及保證系統(tǒng)的安全,操作

系統(tǒng)在進(jìn)程管理方面應(yīng)做哪些工作?

提示:

本題考核進(jìn)程的一般概念。涉及的內(nèi)容有:

①讓程序并發(fā)方式執(zhí)行,能夠充分利用系統(tǒng)資源,提高系統(tǒng)的處理能力。但由于系統(tǒng)資源是有限的,諸多并發(fā)執(zhí)行的

程序在共享資源的同時(shí),必將引起資源的競(jìng)爭(zhēng)。此時(shí)如果不制定特定的規(guī)則和方法,必將使這種共享和競(jìng)爭(zhēng)呈現(xiàn)無(wú)序狀態(tài)。

程序的執(zhí)行結(jié)果也將不可避免地失去封閉性和可再現(xiàn)性,從而得不出正確的、預(yù)期的結(jié)果。

正因?yàn)槿绱耍嗟莱绦蛟O(shè)計(jì)中需要引入一個(gè)能描述程序執(zhí)行過(guò)程,且能用來(lái)共享資源的基本單位一那就是“進(jìn)程”。

因此,進(jìn)程可以被定義為“可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合的執(zhí)行過(guò)程”。

②操作系統(tǒng)對(duì)進(jìn)程管理方面應(yīng)做如下工作:

?進(jìn)程控制,包括進(jìn)程創(chuàng)建與撤消,進(jìn)程在運(yùn)行過(guò)程中的狀態(tài)轉(zhuǎn)換,以及實(shí)現(xiàn)對(duì)進(jìn)程控制塊的維護(hù)等操作。

?進(jìn)程調(diào)度.操作系統(tǒng)必須按一定算法在就緒進(jìn)程中選擇一個(gè)進(jìn)程,把處理機(jī)分配給它,使它順利地投入運(yùn)行。

為此,進(jìn)程調(diào)度應(yīng)具有CPU現(xiàn)場(chǎng)信息的保護(hù)和恢復(fù)功能。

?進(jìn)程同步。對(duì)于一組合作的進(jìn)程,它們的推進(jìn)速度應(yīng)當(dāng)受到某種約束,以便協(xié)調(diào)一致地向前推進(jìn)。因此系統(tǒng)

必須設(shè)立同步控制機(jī)制,對(duì)所有進(jìn)程的運(yùn)行進(jìn)行協(xié)調(diào)。協(xié)調(diào)方式包括進(jìn)程互斥方式和進(jìn)程同步方式.

?進(jìn)程通信.在多道程序環(huán)境下,進(jìn)程之間往往要互相發(fā)送一些信息.操作系統(tǒng)應(yīng)提供有關(guān)的通信調(diào)用和通信

規(guī)范,保證實(shí)現(xiàn)這些進(jìn)程之間的信息交換.進(jìn)程之間的通信種類是很多的,控制機(jī)制也有很多。

【笫九期】(哈工大2000年試題)

(問(wèn)答題)試比較進(jìn)程和程序的區(qū)別。

提示:

本題注重的是進(jìn)程概念。進(jìn)程和程序是既相互聯(lián)系又相互區(qū)別的。

(1)相互聯(lián)系

程序是構(gòu)成進(jìn)程的組成部分之一,一個(gè)進(jìn)程的運(yùn)行目標(biāo)是執(zhí)行它所對(duì)應(yīng)的程序,如果沒(méi)有程序,進(jìn)程就失去了其實(shí)際的

存在。從靜態(tài)的角度看,進(jìn)程是由程序、數(shù)據(jù)和進(jìn)程控制塊(PCB)三部分組成的。

(2)相互區(qū)別

?程序是一個(gè)靜態(tài)概念。一個(gè)程序是一個(gè)靜態(tài)文本,是指令的有序集合,程序可以作為一種軟件資料長(zhǎng)期保存,

只能起到文本的作用。進(jìn)程是一個(gè)動(dòng)態(tài)概念。它是程序在處理機(jī)上的一次執(zhí)行過(guò)程。進(jìn)程是有一定生命周期的,

它能夠動(dòng)態(tài)地產(chǎn)生和消亡.

?進(jìn)程與程序在結(jié)構(gòu)上不同.進(jìn)程由進(jìn)程控制決(PCB)、程序段、數(shù)據(jù)段三部分組成。程序是進(jìn)程運(yùn)行的依據(jù)。

?進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的單位,能與其■他進(jìn)程并行運(yùn)行。程序是算法的一種描述形式。

?進(jìn)程是競(jìng)爭(zhēng)計(jì)算機(jī)系統(tǒng)有限資源的基本單位,也是進(jìn)行處理機(jī)調(diào)度的基本單位.同一程序運(yùn)行于若干不同的數(shù)

據(jù)集合上,它將屬于若干個(gè)不同的進(jìn)程?;蛘哒f(shuō),若干不同的進(jìn)程可以包含相同的程序。

節(jié)

第二章進(jìn)程同步與通信(2)導(dǎo)

【第一題】(青島大學(xué)2002年試題)

青島嶗山有一處景點(diǎn)稱作上清宮,游客在宮內(nèi)游玩之后可以在宮門口免費(fèi)搭乘轎車游覽嶗山的風(fēng)景區(qū),游覽完畢再返回

宮門口(如下圖所示)。

已知風(fēng)景區(qū)內(nèi)的轎車總量為M輛,游客總數(shù)為N,約定:

(1)每輛轎車限乘一位游客:

(2)如果有空閑的轎車,應(yīng)當(dāng)允許想游覽的游客乘坐:

(3)無(wú)空閑轎車時(shí),游客只能排隊(duì)等待;

(4)若沒(méi)在.想游覽的游客,空閑的轎車也要等待。

試?yán)肞、V操作實(shí)現(xiàn)N個(gè)游客進(jìn)程與M輛轎車進(jìn)程的同步操作過(guò)程。

提示:本題中游客乘坐轎車游覽風(fēng)景區(qū)是免費(fèi)的,因此程序設(shè)計(jì)中不需要考慮付費(fèi)環(huán)節(jié)。

分析:

本題考核的要點(diǎn)是進(jìn)程同步問(wèn)題。我們定義了3個(gè)信號(hào)量cajavail,cajtaken和take_off,實(shí)現(xiàn)游客進(jìn)程與轎車進(jìn)程的

同步操作。

Begin

Semaphore:car_avail.car_taken,take_off:

car_avail:=0;car_taken:=0;take_off:=0;

cobegin

processpassenger()

begin

逛上清宮;

P(car_avail);

Take_in_car();//游客上車

V(car_taken);

P(finished);

Take_off_car();//游客下車

V(that_off);

end

processcar()

begin

repeat

V(car_avail);

P(car_taken);

Take_a_visit();//游覽嶗山風(fēng)景區(qū):

V(finished);

P(that_off);

Untilfalse;

end.

【第.題】(西安電子科技大學(xué)2000年試題)

有一個(gè)理發(fā)師,一把理發(fā)椅和n把供等候理發(fā)的顧客坐的椅子。如果沒(méi)有顧客,則理發(fā)師便在理發(fā)椅子上睡覺(jué):當(dāng)一個(gè)

顧客到來(lái)時(shí),喚醒理發(fā)師進(jìn)行理發(fā)。如果理發(fā)師正在理發(fā)時(shí)又有新顧客到來(lái),有空椅子可坐,他就坐卜來(lái)等,如果沒(méi)有空

椅子,就立即離開(kāi)。為理發(fā)師和顧客各編一段程序描述他們的行為,要求不能帶有競(jìng)爭(zhēng)條件。

分析:

這是一個(gè)比較復(fù)雜的進(jìn)程同步問(wèn)題。需要設(shè)計(jì)兩個(gè)進(jìn)程:

?顧客進(jìn)程Customer()

?理發(fā)師進(jìn)程Barber()

特定義兩個(gè)信號(hào)量customers和barbers實(shí)現(xiàn)進(jìn)程的同步,并定義信號(hào)量S實(shí)現(xiàn)進(jìn)程的互斥。程序代碼如卜.:

Begin

//定義信號(hào)量并初始化

intCHAIRS:〃為等候的顧客準(zhǔn)備的椅『數(shù)

semaphore:customers=0;

semaphore:barbers=0;

semaphore:cut=0;

semaphore:finish=0;

semaphore:mutex=l;〃用于互斥的信號(hào)量

intwaiting=0;

Cobegin

//定義并發(fā)進(jìn)程

ProcessCustomer()

(

P(mutex);

if(waiting>CHAIRS)

then

V(mutex)〃沒(méi)有空椅子,離開(kāi)

else

(

waiting=waiting+1;

V(mutex);

V(customers);//喚醒理發(fā)師

SIT_ON_chair();〃坐在椅子上等候

P(barbers);//等待理發(fā)召喚

Stand_up();//從椅子上起身

P(mutex);

waiiting=waiting-l;

V(mutex);

SIT_ON_cut_chair();//坐在理發(fā)椅上

V(cut);//告訴理發(fā)師可以開(kāi)始理發(fā)

P(finish);//等待理發(fā)完成

}

voidbarber()

(

while(T)

(

P(customers);//等待顧客到來(lái)

Clear_cut_chair();//整理一下理發(fā)椅子

V(barbers);//召喚一個(gè)顧客

P(cut);〃等待顧客就座

CUT_hair();//理發(fā)

V(finish);//告訴顧客已結(jié)束

Coend

//并發(fā)進(jìn)程的定義結(jié)束

End.

討論:

①代碼中帶陰影的部分可以從顧客進(jìn)程移到理發(fā)師進(jìn)程中處理.

②該算法中沒(méi)有涉及顧客理發(fā)后的付款過(guò)程.

【第二題】(中國(guó)科學(xué)技術(shù)大學(xué)1998年試題)

(程序閱讀)何謂臨界區(qū)?下面給出的實(shí)現(xiàn)兩個(gè)進(jìn)程互斥的算法是安全的嗎?為什么?

IdefineTRUE;

fdefineFALSE;

intflag[2];

flag[0]=flag[1]-FALSE;

enter-crtsec(i)

inti;

(

WHILE(flag[l-i]);

flagfi]=TRUE;

)

leave-crtsec(i)

inti;

(

flag[i]=FLASE;

}

processI:/*i=0OR1=1*/

enter-crtsec(i);/*進(jìn)入臨界區(qū)*/

INCRTICALSECTION

Leave-crtsec(i);/*離開(kāi)臨界區(qū)*/

提示:

本題的考核要點(diǎn)是臨界資源訪問(wèn)。

①臨界資源指的是一次僅允許一個(gè)進(jìn)程使用的資源。在進(jìn)程中用于訪問(wèn)臨界資源的程序段稱為臨界區(qū)(CRTICAL

SECTION)。

由于系統(tǒng)中的各進(jìn)程在邏輯上是獨(dú)立的,因此它們各自以獨(dú)立的速度向前推進(jìn)。然而它們又都需要系統(tǒng)中的資源,當(dāng)這

些資源為臨界資源肘,就產(chǎn)生了互斥訪問(wèn)的問(wèn)題。臨界區(qū)的概念由此產(chǎn)生。

②本題給出的算法是不安全的。因?yàn)椋谶M(jìn)入臨界區(qū)前執(zhí)行的過(guò)程cnixcrtscc。和退出臨界區(qū)后執(zhí)行的過(guò)程Lcave?lscc

O都不是原子操作。因而不能避免兩個(gè)或更多進(jìn)程進(jìn)入臨界區(qū)。

【笫四題】(南京大學(xué)2000年試題)

為了讓用戶進(jìn)程互斥地進(jìn)入臨界區(qū),可以把整個(gè)臨界區(qū)實(shí)現(xiàn)成不可中斷的過(guò)程,即讓用戶具有屏蔽所有中斷的能力。每

當(dāng)用戶程序進(jìn)入臨界區(qū)的時(shí)候,屏蔽所有中|所。當(dāng)出了臨界區(qū)的時(shí)候,再開(kāi)放所有中斷。你認(rèn)為這種方法有什么缺點(diǎn)。

提示:

本題考核的要點(diǎn)是臨界資源的使用。為了達(dá)到互斥使用臨界資源的目的,將訪問(wèn)臨界資源的程序放在中斷被屏蔽的狀態(tài)

下運(yùn)行。這樣做雖然可以達(dá)到互斥訪問(wèn)的目的,但并不可取。因?yàn)椋话闱闆r下,進(jìn)程對(duì)臨界資源的訪問(wèn)時(shí)間都比較長(zhǎng),

比如訪問(wèn)內(nèi)存中的一個(gè)緩沖區(qū)環(huán),就需要判斷環(huán)內(nèi)是否已滿或?yàn)榭眨缓髮?duì)當(dāng)前緩沖區(qū)進(jìn)行訪問(wèn),最后再移動(dòng)環(huán)上的指針。

如果讓中斷扉蔽時(shí)間拖的太長(zhǎng),有可能錯(cuò)過(guò)對(duì)某的特別緊迫的中斷信號(hào)的響應(yīng),以致喪失了最佳處理時(shí)機(jī)。

【第“題】(中國(guó)科學(xué)院計(jì)算技術(shù)研究所1996年試題)

Dijkstra提出的銀行家算法的主要思想是什么?它能夠用來(lái)解決實(shí)際中的死鎖問(wèn)題嗎?為什么?

提示:

本題的考核要點(diǎn)是銀行家(Banker)算法。涉及的內(nèi)容有:

①銀行家算法是一?種解決死鎖問(wèn)題的方法。該算法模擬了銀行在經(jīng)營(yíng)中的貸款策略。當(dāng)用戶提出資源請(qǐng)求時(shí),先計(jì)算

該次分配后是否會(huì)導(dǎo)致系統(tǒng)不安全,即是否存在一種順序,使得所有的進(jìn)程都能執(zhí)行結(jié)束。若安全則將資源分配給用戶,

否則拒絕分配。

②從理論上說(shuō),該算法有是很有意義的,但在實(shí)際實(shí)施4」卻有一定難度。因?yàn)樗惴ㄋ僭O(shè)的一些條件太多,諸如,讓

用戶提交作業(yè)需求資源的最大數(shù)目并不容易,算法本身涉及的數(shù)據(jù)結(jié)構(gòu)太復(fù)雜等。

③銀行家算法比較耗時(shí),而每當(dāng)一?個(gè)用戶提出資源請(qǐng)求時(shí),都需要調(diào)用銀行家算法測(cè)算一遍,無(wú)形中使系統(tǒng)的開(kāi)銷加

大,降低了處理機(jī)的利用率。

注意:銀行家算法用于資源分配之前,檢測(cè)系統(tǒng)是否安全.該算法能夠解決實(shí)際中的死鎖問(wèn)題,

但系統(tǒng)開(kāi)銷較大。

【笫六虺】(西安理工大學(xué)2000年試題)

(程序設(shè)計(jì)題)設(shè)有6個(gè)進(jìn)程Pl、P2、P3、P4、P5、P6,它們有如圖所示的并發(fā)關(guān)系。試用P、V操作實(shí)現(xiàn)這些進(jìn)程

間的同步。

提示:

本題考核的是用P、V操作實(shí)現(xiàn)進(jìn)程間同步的問(wèn)題。卜.面設(shè)計(jì)了4個(gè)信號(hào)量分別用于進(jìn)程之間的同步,它們的初始值為

0o當(dāng)進(jìn)程Pl尚未得到運(yùn)行的話,其他進(jìn)程只能被阻塞等待。算法可描述如下:

BEGIN

Semaphore:si,s2,s3.s4;

si:=s2:=s3:=s4:=0

COBEGIN

ProcessPl:

Begin

doallwork;

V(sl);

V(sl);

End

ProcessP2:

Begin

P(sl)

doallwork;

V(s2);

End

ProcessP3:

Begin

P(sl);

doallwork;

V(s3);

End

ProcessP4:

Begin

P(s2);

doallwork;

V(s4);

End

ProcessP5:

Begin

P(s3);

doallwork;

V(s4);

End

ProcessP6:

Begin

P(s4);

P(s4);

doallwork;

End

COEND

END

【第七題】(清華大學(xué)1995年試題)

(問(wèn)答題)使用P、V原語(yǔ)和加鎖法都可以實(shí)現(xiàn)并發(fā)進(jìn)程間的互斥,問(wèn):

(1)P、V原語(yǔ)和加鎖法實(shí)現(xiàn)互斥時(shí)有何導(dǎo)同?

(2)使用加鎖法實(shí)現(xiàn)互斥時(shí),有可能在進(jìn)程使用臨界區(qū)時(shí)造成不公平現(xiàn)象,即某個(gè)進(jìn)程一直占用臨界區(qū),其他進(jìn)程永

遠(yuǎn)無(wú)法使用。找出一個(gè)不公平現(xiàn)象的例子,并分析產(chǎn)生不公平現(xiàn)象的原因。

提示:

本題的考核要點(diǎn)是P、V原語(yǔ)和加鎖法的原理。

①P、V操作與加鎖法都是實(shí)現(xiàn)進(jìn)程互斥的方法。它們都是根據(jù)?個(gè)變量的值來(lái)判斷當(dāng)前是否可以進(jìn)入臨界區(qū)。它們的

不同點(diǎn)如下:

?p、V操作是用原語(yǔ)來(lái)實(shí)現(xiàn)的,即P、V操作在屏蔽中斷的環(huán)境中執(zhí)行。而加鎖法不具備這個(gè)特點(diǎn).

?加鎖法對(duì)系統(tǒng)的運(yùn)行性能有較大影響.比如,對(duì)鎖定位的循環(huán)測(cè)試將損耗大量的CPU時(shí)間.

?用P、V操作實(shí)現(xiàn)進(jìn)程互斥時(shí),未進(jìn)入臨界區(qū)的進(jìn)程只能被阻塞等待,而加鎖法則相反.

②以下進(jìn)程會(huì)產(chǎn)生不公平的現(xiàn)象。

ProcessPl()

begin

LI:lock(key[s]);

''訪問(wèn)臨界資源〃:

unlock(key(s]);

GotoLI:

End.

ProcessP2()

Begin

L2:lock(key[s]):

''訪問(wèn)臨界資源”;

unlock(key[s]);

GotoL2;

End.

假設(shè)進(jìn)程Pl首先進(jìn)入臨界區(qū)。那么在進(jìn)程P1執(zhí)行unlock(key⑶)過(guò)程之前,key[s]的值為0,進(jìn)程P2沒(méi)有進(jìn)入臨界

區(qū)的機(jī)會(huì)。然而,當(dāng)進(jìn)程P1執(zhí)行完unlock(key[s])過(guò)程后kcy[s]的值變?yōu)?,緊接著是一條轉(zhuǎn)向語(yǔ)句,又將再次進(jìn)入臨界

區(qū)。

這樣一來(lái),只有當(dāng)進(jìn)程P1執(zhí)行完unlock(key[s])過(guò)程之后的一瞬間內(nèi)發(fā)生了進(jìn)程調(diào)度,進(jìn)程P2才可能獲得處理機(jī)。

因此說(shuō),進(jìn)程P2獲得執(zhí)行的機(jī)會(huì)是相當(dāng)小的。故進(jìn)程P2將處于氏期“饑餓”狀態(tài)。

【第八題】(北京大學(xué)1997年試題)

某高校計(jì)算機(jī)系開(kāi)設(shè)有網(wǎng)絡(luò)課并安排了上機(jī)實(shí)習(xí),假設(shè)機(jī)房共有2m臺(tái)機(jī)器,有2n名學(xué)生選該課,規(guī)定:

①每?jī)蓚€(gè)學(xué)生組成一組,各占一臺(tái)機(jī)器,協(xié)同完成上機(jī)實(shí)習(xí);

②只有一組的兩個(gè)學(xué)生到齊,并且此時(shí)機(jī)房有空閑機(jī)器時(shí),該組學(xué)生才能進(jìn)入機(jī)房:

③上機(jī)實(shí)習(xí)由一名教師檢查,檢查完畢,一組學(xué)生同時(shí)離開(kāi)機(jī)房。

試用P、V操作模擬上機(jī)實(shí)習(xí)過(guò)程。

提示:

本題中考核的主要內(nèi)容是進(jìn)程互斥與同步問(wèn)題。為了保證系統(tǒng)的控制流程,專門設(shè)?個(gè)Monitor進(jìn)程,用于控制學(xué)生進(jìn)

入機(jī)房及計(jì)算機(jī)的分配使用。從題目本身來(lái)看,雖然沒(méi)有明確指出這一進(jìn)程,但實(shí)際上這一進(jìn)程應(yīng)當(dāng)是存在的。

上機(jī)實(shí)習(xí)過(guò)程可描述如卜:

BEGIN

Semaphore:student,computer,enter,finish,check;

studen:=0;

computer:=2m;

enter:=0;

finish:=0:

chech:=0;

COBEGIN

ProcessProcedureStudent()

begin

V(student)://表示有學(xué)生到達(dá)

P(computer)://等待獲取一臺(tái)計(jì)兌機(jī)

P(enter);//等待進(jìn)入許可

DOitwithpartner();

V(finish);//實(shí)習(xí)完成

P(check);//等待老師檢查

V(computer)://釋放計(jì)算機(jī)資源

end

ProcessProcedureTeacher()

begin

LI:P(finished);//等待學(xué)生實(shí)習(xí)完成

P(finished);//等待另一學(xué)生實(shí)習(xí)完成

checkthework();

V(check);//表示檢查完成

V(check);//表示檢查完成

gotoLI;

end

ProcessProcedureMonitor()

begin

L2:P(student);//等待學(xué)生到達(dá)

P(student);//等待另一學(xué)生到達(dá)

V(enter);//允許學(xué)生進(jìn)入

V(enter);//允許學(xué)生進(jìn)入

end

Coend

END

【第九題】(西北工業(yè)大學(xué)2000年試題)

(設(shè)計(jì)題)從讀卡機(jī)上讀進(jìn)N張卡片,然后復(fù)制一份,要求復(fù)制出來(lái)的卡片與讀進(jìn)來(lái)的卡片完全一致。這一工作由三個(gè)

進(jìn)程get,copy和put以及兩個(gè)緩沖區(qū)buffer1和buffer2完成。進(jìn)程get的功能是把一張卡片上的信息從讀卡機(jī)上讀進(jìn)

buffer1;進(jìn)程copy的功能是把buffer1中的信息復(fù)制到buffcr2;進(jìn)程put的功能是取出buffer!中的信息并從行式打印機(jī)上

打印輸出。

試用P、V操作完成這三個(gè)進(jìn)程間的盡可能并發(fā)正確運(yùn)行的關(guān)系(用程序或框圖表示),并指明信號(hào)量的作用及初值。

提示:

設(shè)計(jì)6個(gè)信號(hào)量SI,S2,SnLSn2,Sml,Sm2。其中:

?SI和S2為互斥信號(hào)量,初值為1,分別用于對(duì)bufferl和buffer2的互斥訪問(wèn);

?Snl和Sn2為同步信號(hào)量,初值為1,分別表示bufferl和buffer2為空閑,可以存放一張卡片的信息;

?SmI和Sm2為同步信號(hào)量,初值為0,分別表示buffed和buffer2中的信息還沒(méi)有被取用(或已被取用

了),

用P、V操作完成這三個(gè)并發(fā)進(jìn)程間能正確運(yùn)行的程序如卜.:

BEGIN

semaphore:SI,S2,Snl,Sn2,Sml>Sm2;

S1=S2=1;//bufferl■和buffer2的互斥信號(hào)量

Snl=Sn2=l;//同步信號(hào)量

Sml=Sm2=0;

Cobegin

Processproduceget()

Begin

LI:從讀卡機(jī)讀進(jìn)一張卡片信息:

P(Snl);

P(S1);

將信息放入bufferl;

V(Sml);

V(S1);

GotoLI

End

Processproducecopy()

Begin

L2:P(Sml);

P(S1);

從bufferl復(fù)制信息:

V(Snl);

V(S1);

P(Sn2);

P(S2);

將夏制的信息放入buffer2;

V(Sm2);

V(S2);

GotoL2

End

Processproduceput()

Begin

L3:P(Sm2);

P(S2);

從buffer2取信息;

V(Sn2);

V(S2);

把信息從打印機(jī)輸出:

GotoL3

End

Coend;

END

【第卜題】(南京大學(xué)1997年試題)

(程序設(shè)計(jì)題)假定有一個(gè)信箱可存放N封信。當(dāng)信箱不滿時(shí),發(fā)信者可把信件送入信箱:當(dāng)信箱中有信時(shí),收信者可

以從信箱中取信。用指針r、k分別表示可存信和取信的位置,請(qǐng)用管程(Monitor)來(lái)管理這個(gè)信箱,使發(fā)信者和收信者

能正確工作。

提示:

本題的考核要點(diǎn)是管程的概念。卜.面的程序中,讓變量Buffer[O..N-l]來(lái)存放信件,讓I?是讀信件的指針,k是寫信件的

指針。此外,還應(yīng)定義管程的兩個(gè)條件變量full和empty%程序描述如下:

MonitorMailboxManager

full,emptyl:Condition;

k,r,count:Integer;

Buffer:Array(0..N-l]ofMessage;

PROCEDURERead。

BEGIN

IF(count=N)THENP(full);

Buffer[r]:=message;

r:=(r+l)modN;

count:=count+l;

IF(count=1)THENV(empty);

END;

PROCEDUREWrite()

BEGIN

IF(count=0)THENP(empty);

message:=Buffer[k];

k:=(k+1)modN;

count:=count-l;

IF(count=N-l)THENV(full);

END;

//卜.面是初始化部分

begin

k=-l;

r=0;

count:=0;

END;

第三章調(diào)度與死鎖

【第題】(西安電子科技大學(xué)2001試題)

有;個(gè)進(jìn)程Pl、P2和P3并發(fā)工作。進(jìn)程P1需要資源S3和S1;進(jìn)程P2需用資源S1和S2;進(jìn)程P3需用資源S2和

S3,回答:

(I)若對(duì)資源分配不加限制,會(huì)發(fā)生什么情況?為什么?

(2)為保證進(jìn)程正確地工作,應(yīng)采用怎樣的資源分配策略?為什么?

提示:

①若對(duì)資源分配不加限制,可能會(huì)發(fā)生死鎖,因?yàn)檫@樣的分配叮能導(dǎo)致“環(huán)路等待”條件。例如:進(jìn)程Pl、P2和P3

分別獲得資源S3、S1和S2,后再繼續(xù)申請(qǐng)資源時(shí)都要等待。進(jìn)程和資源會(huì)形成如下環(huán)路:

②為保證進(jìn)程正確地工作,應(yīng)采用的資源分配可有兒種答案。下面列舉3種:

?采用糙態(tài)分配

由于執(zhí)行前已獲得所需的全部資源,故不會(huì)出現(xiàn)占有資源又等待的資源的現(xiàn)象(或不會(huì)出現(xiàn)循環(huán)等待資源現(xiàn)象)。

?采用按序分配

按序分配不會(huì)出現(xiàn)“環(huán)路等待”現(xiàn)象。

?采用銀行家算法

在每次分配時(shí),通過(guò)銀河家算法的測(cè)算,可保證系統(tǒng)處于安全狀態(tài)。

【第二題】(南京大學(xué)2002試題)

有三個(gè)作業(yè)A(到達(dá)時(shí)間8:50,執(zhí)行時(shí)間1.5小時(shí))、B(到達(dá)時(shí)間9:00,執(zhí)行時(shí)間0.4小時(shí))、C(到達(dá)時(shí)間9:30,執(zhí)

行時(shí)間I小時(shí))。當(dāng)作業(yè)全部到達(dá)后,批處理單道系統(tǒng)按照響應(yīng)比高者優(yōu)先算法進(jìn)行調(diào)度,則作業(yè)被選中的次序是()。

A.(ABC)B.(BAC)

C.(BCA)D.(CBA)

E.(CAB)F.(ACB)

提示:

本題考?核進(jìn)程調(diào)度問(wèn)題。作業(yè)運(yùn)行情況見(jiàn)下表:

進(jìn)程到達(dá)時(shí)間運(yùn)行長(zhǎng)度開(kāi)始時(shí)間結(jié)束時(shí)間

A8:501.59:5411:24

B9:000.49:309:54

C9:30111:2412:24

當(dāng)作業(yè)全部到達(dá)后,也就是9:30,系統(tǒng)開(kāi)始調(diào)度。此刻各作業(yè)的等待時(shí)間是,A為40分鐘(0.67小時(shí))、B為0.5小時(shí)、

C為0小時(shí)。其響應(yīng)比分別為:

A:1+0.67/1.5=1.4

B:1+0.5/0.4=2.25

C:I+0/1=1

系統(tǒng)首先選B運(yùn)行24分鐘,至9:54運(yùn)行結(jié)束。各作業(yè)的等待時(shí)間是,A為1.07小時(shí),C為0.4小時(shí)。其響應(yīng)比分別修改

為:

A:1+1.07/1.5=1.7

C:1+0.4/1=1.4

系統(tǒng)再選A運(yùn)行,至11:24運(yùn)行結(jié)束。最后選擇C運(yùn)行至12:24結(jié)束。因此,本題的正確答案應(yīng)當(dāng)是(B)。

注意:在做此類題目時(shí),需要制作作業(yè)運(yùn)行情況表,詳細(xì)列出提交時(shí)間、運(yùn)行長(zhǎng)度、

運(yùn)行開(kāi)始時(shí)間和運(yùn)行結(jié)束時(shí)間。

【第題】(西安電子科技大學(xué)2001試題)

有5個(gè)待運(yùn)行作業(yè)JI、J2、J3、J4和J5,各自預(yù)計(jì)運(yùn)行時(shí)間分別是9、6、3、5和7。假定這些作業(yè)同時(shí)到達(dá),并且在

一臺(tái)處理機(jī)上按單道方式執(zhí)行。

討論采用哪種調(diào)度算法和哪種運(yùn)行次序?qū)⑹蛊骄苻D(zhuǎn)時(shí)間最短,平均周轉(zhuǎn)時(shí)間為多少?

提示:

本題的考核要點(diǎn)是作業(yè)調(diào)度算法的性能評(píng)價(jià)。涉及到作業(yè)平均周轉(zhuǎn)時(shí)間的計(jì)算問(wèn)題。我們知道,常用的作業(yè)調(diào)度算法有

4種:先來(lái)先服務(wù)、最高優(yōu)先級(jí)調(diào)度、最短作業(yè)優(yōu)先和最高響應(yīng)比優(yōu)先。而前兩種在本題中已被排除,所以只需討論后兩

種即可。

①按照最短作業(yè)優(yōu)先(SJF)算法,作業(yè)的運(yùn)行順序?yàn)镴3,J4,J2,J5,JL平均周轉(zhuǎn)時(shí)間T為:

T=[3+(3+5)+(3+5+6)+(3+5+6+7)+(3+5+6+7+9)]/5=15.2

②按照最高響應(yīng)比優(yōu)先(HRF)算法,由于5個(gè)作業(yè)是同時(shí)提交的,因此第一時(shí)間的調(diào)度必然是最短的作業(yè)J3。當(dāng)J3

執(zhí)行完畢后,剩余4個(gè)作業(yè)的響應(yīng)比R(R=l+作業(yè)的等候時(shí)間/作業(yè)的執(zhí)行時(shí)間)計(jì)算的結(jié)果為:

Rl=1.33

R2=1.5

R4=1.6

R5=1.428

正是由于5個(gè)作業(yè)都是同時(shí)提交的,所以只需計(jì)算這次就可以確定它們的執(zhí)行次序:J4,J2,J5,J1。與J3合在?起,

得到的作業(yè)執(zhí)行次序?yàn)椋?/p>

J3.J4,J2,J5,J1

顯然,兩種調(diào)度算法的調(diào)度次序皆相同。這是因?yàn)樗鼈兊奶峤粫r(shí)間相同所致。因此。它們的平均周轉(zhuǎn)時(shí)間T為15.2。

【第.題】(西安交大2002試題)

有5個(gè)任務(wù)A,B,C,D,E,它們幾乎同時(shí)到達(dá),預(yù)計(jì)它們的運(yùn)行時(shí)間為10,6,2,4,8min.其優(yōu)先級(jí)分別為3,5,

2,1和4,這里5為最高優(yōu)先級(jí)。對(duì)于下列每一種調(diào)度算法,計(jì)算其平均進(jìn)程周轉(zhuǎn)時(shí)間(進(jìn)程切換開(kāi)俏可不考慮)。

(1)先來(lái)先服務(wù)(按A,B,C,D,E)算法。

(2)優(yōu)先級(jí)調(diào)度算法。

(3)時(shí)間片輪轉(zhuǎn)算法。

提示:

①采用先來(lái)先服務(wù)(FCFS)調(diào)度算法時(shí),5個(gè)任務(wù)在系統(tǒng)中的執(zhí)行順序、完成時(shí)間及周轉(zhuǎn)時(shí)間如卜表所示:

執(zhí)行次序運(yùn)行時(shí)間優(yōu)先數(shù)等待時(shí)間周轉(zhuǎn)時(shí)間

A103010

B651016

16

C22

18

D411822

E842230

根據(jù)表中的計(jì)算結(jié)果,5個(gè)進(jìn)程的平均周轉(zhuǎn)時(shí)間T為:

T=(10+16+18+22+30)/5=19.2min

②采用最高優(yōu)先級(jí)調(diào)度(HPF)算法時(shí),5個(gè)任務(wù)在系統(tǒng)中的執(zhí)行順序、完成時(shí)間及周轉(zhuǎn)時(shí)間如下表所示:

執(zhí)行次序運(yùn)行時(shí)間優(yōu)先數(shù)等待時(shí)間周轉(zhuǎn)時(shí)間

B6506

E84614

A1031424

C222426

D112627

它們的平均周轉(zhuǎn)時(shí)間為:

T=(6+14+24+26+27)/5=19.4min

③如果系統(tǒng)采用時(shí)間片輪轉(zhuǎn)(RR)算法,令時(shí)間片為2分鐘,5個(gè)任務(wù)輪流執(zhí)行的情況為:

第1輪:(A,B,C,D,E)

第2輪:(A,B,D,E)

第3輪:(A,B,E)

第4輪:(A,E)

第5輪:(A)

顯然,5個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間為:Tl=30min、T2=22min、T3=6min、T4=16min.T5=28min0它們的平均周轉(zhuǎn)時(shí)間T為:

T=(30+22+6+16+28)/5=20.4min

【第一題】(南京大學(xué)2000年試題)

(問(wèn)答題)現(xiàn)有兩道作業(yè)同時(shí)執(zhí)行,?道以計(jì)算為主,另?道以輸入輸出為主,你將怎樣賦予作業(yè)進(jìn)程占有處理器的優(yōu)

先級(jí)?為什么?

提示:

本題考核要點(diǎn)是,如何提高系統(tǒng)效率的問(wèn)題。我們知道,以計(jì)算為主的進(jìn)程運(yùn)行期間,將主要集中在CPU的計(jì)算上,

較少使用外部設(shè)備。而以輸入輸出為主的進(jìn)程則主要集中在外部設(shè)備的I/OI.,較少使用CPU。因此讓兩個(gè)進(jìn)程并發(fā)運(yùn)行

是可以提高系統(tǒng)效率的。不過(guò)它們的優(yōu)先級(jí)應(yīng)當(dāng)設(shè)定合理,比如:

①如果計(jì)算進(jìn)程的優(yōu)先級(jí)高于或者等于輸入輸出進(jìn)程的優(yōu)先級(jí),系統(tǒng)效率也不會(huì)提高。因?yàn)橛?jì)算進(jìn)程?旦占用了CPU

便忙于計(jì)算,使輸入輸出進(jìn)程得不到運(yùn)行機(jī)會(huì),同樣會(huì)使設(shè)備空閑,不能提高系統(tǒng)效率。

②如果輸入輸出進(jìn)程的優(yōu)先級(jí)高于計(jì)算進(jìn)程的優(yōu)先級(jí),系統(tǒng)效率就能夠得到提高。因?yàn)檩斎胼敵霾僮魇欠N速度極慢

的操作。若該項(xiàng)操作的優(yōu)先級(jí)高,那么,當(dāng)它完成一項(xiàng)輸入輸出操作后,便能立即獲得CPU,為卜一次輸入輸出作準(zhǔn)備匚

作,并啟動(dòng)外部設(shè)備。當(dāng)設(shè)備被啟動(dòng)起來(lái)后,它便主動(dòng)讓出CPU,由系統(tǒng)將CPU交給計(jì)算進(jìn)程使用。從而獲得較好的運(yùn)

行效率。

注意:優(yōu)先級(jí)的設(shè)定方式有兩種,一種是根據(jù)用戶要求設(shè)定,另一種由系統(tǒng)管理員設(shè)

定。后一種設(shè)

溫馨提示

  • 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)論