




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB1303-T 323-2022 海綿城市 城市道路設(shè)計(jì)導(dǎo)則
- 賓館監(jiān)控系統(tǒng)設(shè)計(jì)方案樣本
- 2025屆山西省長(zhǎng)治市二中高二下化學(xué)期末檢測(cè)模擬試題含解析
- 2025屆江蘇省蔣王中學(xué)高一化學(xué)第二學(xué)期期末預(yù)測(cè)試題含解析
- 2024-2030年中國(guó)蛋及蛋制品行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 居民認(rèn)領(lǐng)樹(shù)苗活動(dòng)方案
- 岳陽(yáng)電玩城活動(dòng)方案
- 工會(huì)立冬活動(dòng)方案
- 小學(xué)遺體捐獻(xiàn)活動(dòng)方案
- 小學(xué)環(huán)境教育活動(dòng)方案
- 2022-2023學(xué)年福建省廈門市數(shù)學(xué)五年級(jí)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含答案
- 水文水位觀測(cè)
- 2023年蕪湖一中高一自主招生考試試題數(shù)學(xué)
- 天津理工大學(xué)-PPT 答辯3
- 引體向上教學(xué)設(shè)計(jì)
- 江蘇省南京市聯(lián)合體2022-2023八年級(jí)初二下學(xué)期期中英語(yǔ)試卷+答案
- 艾里遜自動(dòng)變速箱技術(shù)培訓(xùn)課程(H5610AR系列)
- 2022年江蘇蘇州獨(dú)墅湖科教創(chuàng)新區(qū)管理委員會(huì)招聘筆試備考題庫(kù)及答案解析
- 事業(yè)單位崗位職數(shù)情況表
- 鉆沖孔灌注樁監(jiān)理實(shí)施細(xì)則
- LS 8010-2014植物油庫(kù)設(shè)計(jì)規(guī)范
評(píng)論
0/150
提交評(píng)論