操作系統(tǒng)習(xí)題及參考答案_第1頁(yè)
操作系統(tǒng)習(xí)題及參考答案_第2頁(yè)
操作系統(tǒng)習(xí)題及參考答案_第3頁(yè)
操作系統(tǒng)習(xí)題及參考答案_第4頁(yè)
操作系統(tǒng)習(xí)題及參考答案_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

操作系統(tǒng)習(xí)題集

參考教材:

湯小丹等編著,計(jì)算機(jī)操作系統(tǒng)(第三版),西安電子科技大學(xué)出版社,2007年版;何炎祥等編著,計(jì)算機(jī)操作系

統(tǒng),清華大學(xué)出版社,2005年版;

鄒恒明著,計(jì)算機(jī)的心智操作系統(tǒng)之哲學(xué)原理,機(jī)械工業(yè)出版社,2009年4月。

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

選擇題

1.下列哪一條是在操作系統(tǒng)設(shè)計(jì)中引入多道程序技術(shù)的好處?A

A.使并發(fā)執(zhí)行成為可能B.簡(jiǎn)化操作系統(tǒng)的實(shí)現(xiàn)

C.減少對(duì)內(nèi)存容量的需求D.便于實(shí)施存儲(chǔ)保護(hù)2.WindowsXP屬于下列哪一類(lèi)操作系統(tǒng)?B

A.單用戶(hù)單任務(wù)B.單用戶(hù)多任務(wù)C.多用戶(hù)D.批處理3.下列哪一條不是批處理系統(tǒng)的優(yōu)點(diǎn)?D

A.吞吐量大B.資源利用率高C.系統(tǒng)開(kāi)銷(xiāo)小D.響應(yīng)及時(shí)4.能及時(shí)處理由過(guò)程控制反饋的數(shù)據(jù)并作出響應(yīng)的操作系

統(tǒng)是(C)

A、分時(shí)系統(tǒng)B、網(wǎng)絡(luò)系統(tǒng)C、實(shí)時(shí)系統(tǒng)D、批處理系統(tǒng)5.UNIX系統(tǒng)是一個(gè)C操作系統(tǒng)。

A、單用戶(hù)B、單用戶(hù)多任務(wù)C、多用戶(hù)多任務(wù)D、多用戶(hù)單任務(wù)6.在分時(shí)系統(tǒng)中,當(dāng)用戶(hù)數(shù)一定時(shí),影響

響應(yīng)時(shí)間的主要因素是_B_o

A、時(shí)間片B、調(diào)度算法C、存儲(chǔ)分配方式D、作業(yè)的大小7.WindowsNT屬于哪一類(lèi)操作系統(tǒng)?B

A、單用戶(hù)單任務(wù)B、單用戶(hù)多任務(wù)C、單道批處理D、多用戶(hù)8.多道程序設(shè)計(jì)技術(shù)是指:多道程序可同時(shí)

進(jìn)入A.在A的位置B,為使多道進(jìn)程并發(fā)執(zhí)行必

須為每個(gè)用戶(hù)作業(yè)創(chuàng)建進(jìn)程,批處理系統(tǒng)由C創(chuàng)建,而分時(shí)系統(tǒng)由D創(chuàng)建。

選擇答案:

(1)內(nèi)存(2)系統(tǒng)(3)固定(4)不定(5)進(jìn)程調(diào)度(6)中級(jí)調(diào)度

(7)作業(yè)調(diào)度(8)輸入進(jìn)程(9)系統(tǒng)調(diào)用(10)命令解釋進(jìn)程

ABCD

1.在手工操作階段,操作員在進(jìn)行裝卸卡片或磁帶等手工操作時(shí),CPU處于空閑等待,我們稱(chēng)這

種現(xiàn)象為人機(jī)矛盾。

2.多道批處理系統(tǒng)的特征為并發(fā)?.共享、虛擬和異步。

3.批量處理系統(tǒng)的缺點(diǎn)為周轉(zhuǎn)時(shí)間長(zhǎng);缺乏人工干預(yù)(人機(jī)交互)。

4.多道批處理系統(tǒng)的出現(xiàn),標(biāo)志著操作系統(tǒng)的形成。

5.操作系統(tǒng)的基本類(lèi)型有批處理操作系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)。

6.分時(shí)系統(tǒng)的特征為多路性、獨(dú)立性、及時(shí)性、交互性四個(gè)基本特征。7.以多道程序設(shè)計(jì)為基礎(chǔ)的現(xiàn)代操作系

統(tǒng)具有并發(fā)性、共享性、虛擬性、異步性。

8.計(jì)算機(jī)系統(tǒng)按用戶(hù)指定的步驟,為用戶(hù)一次上機(jī)解題所完成的工作的總和稱(chēng)為作業(yè)。

9.從資源管理的觀點(diǎn)出發(fā),可把操作系統(tǒng)分為存儲(chǔ)管理、設(shè)備管理、文件管理、處理機(jī)管理

和作業(yè)管理五大部分。

10.單道批處理系統(tǒng)是在解決人機(jī)矛盾和CPU與I/O設(shè)備速度不匹配的矛盾中發(fā)展起來(lái)的。

判斷題

1.分時(shí)操作系統(tǒng)必然建立在多道程序技術(shù)的基礎(chǔ)之上。錯(cuò)

2.聯(lián)機(jī)批處理解決了作業(yè)自動(dòng)轉(zhuǎn)接,減少了作業(yè)建立和手工操作時(shí)間。對(duì)3.交互性是批處理系統(tǒng)的一個(gè)特征。錯(cuò)

4.解決了作業(yè)自動(dòng)轉(zhuǎn)接,減少了作業(yè)建立和手工操作時(shí)間。對(duì)5.過(guò)載保護(hù)是分時(shí)系統(tǒng)的一個(gè)特征。錯(cuò)6.多道程序

的引入是為了提高CPU的利用率。對(duì)

7.多道程序技術(shù)可將一臺(tái)物理CPU虛擬為多臺(tái)邏輯CPU。對(duì)

8.在分時(shí)系統(tǒng)中,時(shí)間片越小,一個(gè)作業(yè)的總運(yùn)行時(shí)間越短。錯(cuò)

簡(jiǎn)答題

1.研究操作系統(tǒng)的主要觀點(diǎn)有那些?答:(1)資源的觀點(diǎn):研究如何對(duì)計(jì)算機(jī)系統(tǒng)中的各種軟、硬件資源進(jìn)行管

理;怎樣使計(jì)算機(jī)系統(tǒng)協(xié)調(diào)一致地、有效地為用戶(hù)服務(wù);如何既發(fā)揮計(jì)算機(jī)系統(tǒng)資源的使用效率、提高計(jì)算機(jī)系統(tǒng)的

服務(wù)質(zhì)量,又確保計(jì)算機(jī)系統(tǒng)的安全可靠。

(2)用戶(hù)觀點(diǎn):操作系統(tǒng)是一個(gè)黑盒子,配置了操作系統(tǒng)的計(jì)算機(jī)與原來(lái)真實(shí)的物理計(jì)算機(jī)迥然不同,因?yàn)樗峁?/p>

了用戶(hù)使用計(jì)算機(jī)的更方便手段,構(gòu)造了一臺(tái)虛擬機(jī),采用的操作命令決定了虛擬機(jī)的功能。

(3)進(jìn)程觀點(diǎn):從進(jìn)程角度分析操作系統(tǒng),則所有進(jìn)程的活動(dòng)就構(gòu)成了操作系統(tǒng)的當(dāng)前行為,在每一個(gè)瞬間都有一棵

進(jìn)程家族樹(shù),它展示著操作系統(tǒng)行為主體的一個(gè)快照。

(4)模塊分層觀點(diǎn):用模塊分層觀點(diǎn)討論模塊之間的關(guān)系或者說(shuō)討論如何形成操作系統(tǒng)的架構(gòu),如何安排連結(jié)這些程

序模塊才能構(gòu)造一個(gè)結(jié)構(gòu)簡(jiǎn)單清晰、邏輯正確、便于分析和實(shí)現(xiàn)的操作系統(tǒng)。2.什么是操作系統(tǒng)?簡(jiǎn)述現(xiàn)代操作系統(tǒng)

的特征。

答:操作系統(tǒng)是控制和管理計(jì)算機(jī)系統(tǒng)內(nèi)各種硬件和軟件資源、合理有效地組織計(jì)算機(jī)系統(tǒng)的工作,為用戶(hù)提供一個(gè)

使用方便可擴(kuò)展的工作環(huán)境,從而起到連接計(jì)算機(jī)和用戶(hù)的接口作用。

現(xiàn)代操作系統(tǒng)具有如下特征:

并發(fā)(共行)性:指能處理多個(gè)同時(shí)性活動(dòng)的能力。I/。操作和計(jì)算重疊,內(nèi)存中同時(shí)存放幾道

用戶(hù)程序,這些都是并發(fā)的例子。

。2共享:指多個(gè)計(jì)算任務(wù)對(duì)資源的共同享用。并發(fā)活動(dòng)可能要求共享資源和信息;多個(gè)用戶(hù)共享一個(gè)程序的同一個(gè)

副本,而不是分別向每個(gè)用戶(hù)提供一個(gè)副本可以避免重復(fù)開(kāi)發(fā),節(jié)省人力資源。

03不確定性:指操作系統(tǒng)必須能處理任何一種事件序列,以使各個(gè)用戶(hù)的算題任務(wù)正確地完成。3.操作系統(tǒng)和用戶(hù)

程序之間的關(guān)系是什么?答:操作系統(tǒng)通過(guò)虛擬及其界面給用戶(hù)程序提供各種服務(wù),用戶(hù)程序在運(yùn)行過(guò)程中不斷使用

操作系統(tǒng)提供的服務(wù)來(lái)完成自己的任務(wù)。如用戶(hù)程序在運(yùn)行過(guò)程中需要讀寫(xiě)磁盤(pán),這時(shí)就要調(diào)用操作系統(tǒng)的服務(wù)來(lái)

完成磁盤(pán)讀寫(xiě)操作。

另一方面,用戶(hù)程序不可能先于操作系統(tǒng)啟動(dòng)之前啟動(dòng),因此每次啟動(dòng)一個(gè)用戶(hù)程序,都相當(dāng)于操作系統(tǒng)將控制轉(zhuǎn)

移給用戶(hù)程序;而在用戶(hù)程序執(zhí)行完畢后,又將控制還回給操作系統(tǒng)。從這個(gè)角度看,操作系統(tǒng)是主程序,用戶(hù)程

序是子程序,操作系統(tǒng)在其生命周期內(nèi)不斷地調(diào)用各種應(yīng)用程序。因此操作系統(tǒng)和各種應(yīng)用程序可以看作是互相調(diào)

用,從而形成一個(gè)非常復(fù)雜的動(dòng)態(tài)關(guān)系。4.推動(dòng)操作系統(tǒng)進(jìn)化的原因有哪些?答:推動(dòng)操作系統(tǒng)進(jìn)化的根本原因

是:硬件成本的不斷下降;計(jì)算機(jī)功能和復(fù)雜性的不斷變化。成本降低意味著同樣的價(jià)格可以買(mǎi)到更為先進(jìn)的計(jì)算

機(jī);而復(fù)雜性的提高自然需要操作系統(tǒng)能力的提高。

另外,操作系統(tǒng)和攻擊者之間的博弈也是影響操作系統(tǒng)發(fā)展的一個(gè)重要因素。5.試簡(jiǎn)述操作系統(tǒng)的發(fā)展歷史。

答:操作系統(tǒng)大致經(jīng)歷了如下幾個(gè)重要階段:第一階段:狀態(tài)機(jī)操作系統(tǒng)(1940年以前)。此時(shí)計(jì)算機(jī)尚處于萌芽

狀態(tài),操作系統(tǒng)運(yùn)行在英國(guó)人貝巴斯想象的自動(dòng)機(jī)上。驅(qū)動(dòng)這一階段操作系統(tǒng)的動(dòng)力是個(gè)人英雄主義。第二階段:?jiǎn)?/p>

一操作員、單一控制端操作系統(tǒng)(20世紀(jì)40年代)。這種單一操作員、單一控制端操作系統(tǒng)(SOSC,single

operator.singleconsole)的操作系統(tǒng)是剛出現(xiàn)計(jì)算機(jī)時(shí)人們能想到的最直觀的控制計(jì)算機(jī)的方式,以美國(guó)賓西

法尼亞大學(xué)的ENIAC計(jì)算機(jī)為代表。操作系統(tǒng)提供一個(gè)標(biāo)準(zhǔn)命令供用戶(hù)使用,滿(mǎn)足用戶(hù)基本的人機(jī)交互需求。

(串行執(zhí)行)第三階段:批處理操作系統(tǒng)(20世紀(jì)50年代)。由于人操作緩慢,致使SOSC的運(yùn)行效率低下,即

人機(jī)矛盾,為了改變這種狀況,出現(xiàn)了批處理操作系統(tǒng),以舊M的1401和7094為代表。用戶(hù)首先將自己的程序

編在卡片或紙帶上,交給計(jì)算機(jī)管理員,管理員在收到一定數(shù)量的用戶(hù)程序后,將卡片及紙帶上的程序和數(shù)據(jù)通過(guò)

舊M1401機(jī)器讀入,并寫(xiě)在磁帶上。然后,計(jì)算機(jī)操作系統(tǒng)將這盤(pán)磁帶加載到舊M7094上,一個(gè)個(gè)地運(yùn)行用戶(hù)程

序,運(yùn)行的結(jié)果寫(xiě)到另一個(gè)磁盤(pán)上。所有程序運(yùn)行完畢后,將存有結(jié)果的磁盤(pán)連接到舊M1401上輸出。因此批處

理操作系統(tǒng)就是由批處理監(jiān)視器和

原來(lái)的操作系統(tǒng)庫(kù)函數(shù)組成的。(串行執(zhí)行)第四階段:多道批處理操作系統(tǒng)(20世紀(jì)60年代)。批處理階段不能

很好地解決高速設(shè)備(CPU)

等待低速設(shè)備(I/。)的問(wèn)題。此階段的主要目標(biāo)是讓CPU和I/O重疊運(yùn)行,以IBM的OS360為代表。同一時(shí)

間可以運(yùn)行多個(gè)程序(宏觀上),但控制計(jì)算機(jī)的人還是一個(gè),即用戶(hù)將自己的程序交給計(jì)算機(jī)管理員,再由管理員

負(fù)責(zé)加載運(yùn)行。(并發(fā)執(zhí)行)第五階段:分時(shí)/實(shí)時(shí)操作系統(tǒng)(20世紀(jì)70年代)。分時(shí)操作系統(tǒng)是為了解決人機(jī)

交互問(wèn)題而出現(xiàn)的,以MULTICS和UNIX為代表。用戶(hù)重新回到了機(jī)器的前面,通過(guò)RS232與主機(jī)進(jìn)行通信,

管理

自己的程序;主機(jī)給每個(gè)用戶(hù)分配一定的時(shí)間片,輪流地為各個(gè)用戶(hù)服務(wù)。實(shí)時(shí)操作系統(tǒng)是為了解決對(duì)計(jì)算機(jī)相應(yīng)時(shí)

間有嚴(yán)格要求的臨界系統(tǒng)或應(yīng)用而產(chǎn)生的,以VxWorks和EMC的DART為代表。

第六階段:現(xiàn)代操作系統(tǒng)(1980年以后)。是工作站和個(gè)人計(jì)算機(jī)出現(xiàn)的結(jié)果,代表性的有DOS.

Windows,Unix和Linux等。這時(shí)以信息安全、網(wǎng)絡(luò)為主要特征。

6.現(xiàn)代幾個(gè)典型操作系統(tǒng)所屬的類(lèi)型?答:操作系統(tǒng)是由于需要而產(chǎn)生的,它隨著計(jì)算機(jī)技術(shù)本身及其計(jì)算機(jī)應(yīng)用

的日益發(fā)展而逐漸發(fā)展和不斷完善。它的功能由弱到強(qiáng),現(xiàn)已成為計(jì)算機(jī)系統(tǒng)的核心組成。經(jīng)歷了手工操作、早期批

處理階段、執(zhí)行系統(tǒng)階段、多道程序系統(tǒng)階段、分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)、通用操作系統(tǒng)。進(jìn)入80年代,硬件技術(shù)飛速

發(fā)展以及微處理機(jī)的出現(xiàn)和發(fā)展,操作系統(tǒng)有了進(jìn)一步發(fā)展,如單用戶(hù)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)

及智能化操作系統(tǒng)。

單用戶(hù)、單任務(wù)的操作系統(tǒng),以DOS操作系統(tǒng)為代表,繼CP/M操作系統(tǒng)之后,還出現(xiàn)了C-DOS,M-DOS,

TRS-DOS,S-DOS和MS-DOS等磁盤(pán)操作系統(tǒng)。還包括Windows95/98等版本。多用戶(hù)多道作業(yè)和分時(shí)系

統(tǒng),其典型代表有UNIX,XENIX、OS/2以及WindowsNT及其后來(lái)版本的

操作系統(tǒng)。

綜合題

1.假設(shè)有一個(gè)支持多道程序設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),其中每個(gè)作業(yè)都有完全相同的屬性。對(duì)一個(gè)作業(yè),在一段計(jì)算周期T

中,一半的時(shí)間用于I/O,另一半時(shí)間用于處理器操作。每個(gè)作業(yè)總共運(yùn)行N段

計(jì)算周期。有幾個(gè)定義如下:

周期(TurnaroundTime)=完成一個(gè)作業(yè)實(shí)際用的時(shí)間;吞吐量(Throughput)=在一時(shí)間段T中完成的平均

作業(yè)數(shù);

處理器使用率(ProcessorUtilization)=處理器處于激活態(tài)(非等待)時(shí)間的百分比。

計(jì)算當(dāng)有1.2或4個(gè)作業(yè)并發(fā)執(zhí)行時(shí)的周期、吞吐量和處理器使用率,假設(shè)時(shí)間段T按一下任

種方式分布:

1)I/。在前半段,處理器運(yùn)行在后半段;

2)將T分為4段,I/O在第1.4段,處理器運(yùn)行于第2,3段。

-:(1)I/O在前半段,處理E器運(yùn)行于后斗c段

12N完成時(shí)刻運(yùn)行時(shí)間利用率

AI/OCPUI/OCPUI/OCPUI/OCPUNN50%

12N

AI/OCPUI/OCPUI/OI/OCPUI/OCPUNN/2N

BI/OCPUI/OCPUCPUI/OCPUI/OCPUN+1/2N/2N+1/2

1232N-12N

AI/OCPUI/OI/OCPU2NN/2

2N

BI/OCPUI/OCPU2N-1/2N/2

CI/OCPUI/OCPU2NN/2

2N+1/2

DI/OCPUCPUI/OCPU2N+1/2N/2

2I/O在第,、4段,處理器運(yùn)行于第3g

1N

AI/OCPUCPUI/OI/OCPUI/OI/OCPUCPUI/ONN50%

1N

AI/OCPUCPUI/OI/OCPUCPUI/OI/OCPUCPUI/ONN/2N

BI/OCPUCPUI/OI/OCPUCPU/oI/OCPUCPUI/ON+1/2N/2N+1/2

123

I/OCPUGPUI/OI/OCPUCPU2N-3/4N/2

2N

I/OCPUCPUI/OI/OCPU2N-1/2N/2

I/OCPUCPUI/OI/O2NN/2

2N+1/2

I/OCPUCPUI/O/o2N+1/2N/2

當(dāng)同時(shí)運(yùn)行2個(gè)作業(yè)時(shí),系統(tǒng)吞吐量和CPU利用率顯著增加,表明系統(tǒng)被充分利用。但當(dāng)作業(yè)增加到4個(gè)時(shí),吞

吐量和CPU使用率變化不大,但平均周期卻增加一倍,表明系統(tǒng)負(fù)荷過(guò)重,作業(yè)處理

時(shí)間明顯增長(zhǎng)。

2.某計(jì)算機(jī)用Cache,內(nèi)存和磁盤(pán)來(lái)實(shí)現(xiàn)虛擬內(nèi)存。如果某數(shù)據(jù)在Cache中,訪問(wèn)它需要tA(ns);如果在內(nèi)

存但不在Cache中,則需要t(ns)的時(shí)間將其裝入Cache然后開(kāi)始訪問(wèn);如果不在內(nèi)存一

Bn1

中,需要tc(ns)將其讀入內(nèi)存,然后用ts(ns)讀入Cache。如果Cache命中率為,內(nèi)存

n命中率為m1,則平均訪問(wèn)時(shí)間是多少?

m答:根據(jù)題目中的數(shù)據(jù),平均訪問(wèn)時(shí)間為:

nJ1(tt)11

t.miVAB7

nni

nm也一

11

JA‘B%

nmn

3.操作系統(tǒng)的未來(lái)發(fā)展趨勢(shì)是怎樣的?

答:隨著計(jì)算機(jī)的不斷普及,操作系統(tǒng)的功能會(huì)變得越來(lái)越復(fù)雜。在這種趨勢(shì)下,操作系統(tǒng)的發(fā)展面臨著兩個(gè)不同的方

向選擇:一是微內(nèi)核,二是大而全的全方位發(fā)展。微內(nèi)核操作系統(tǒng)雖然有不少人在研究,但在工業(yè)界獲得認(rèn)可的并不

多。對(duì)工業(yè)界來(lái)說(shuō),操作系統(tǒng)是向著多功能、全方位方向發(fā)展的。另外,隨著人們對(duì)信息安全重視程度的不斷提高,如

何構(gòu)建可靠、可用和安全的操作系統(tǒng)將成為一個(gè)十分重要的課題。從Unix的1400行代碼到WindowsXP的4000

萬(wàn)行代碼,這種系統(tǒng)的爆炸性增長(zhǎng)給系統(tǒng)的可靠、可用和安全性帶來(lái)的安全隱患,在短時(shí)期內(nèi)是很難解決的。綜上所

述,操作系統(tǒng)的發(fā)展趨勢(shì)很難預(yù)測(cè)。

4.操作系統(tǒng)的主要特征是什么?答:操作系統(tǒng)的主要特征是并發(fā)性、共享性、虛擬性和不確定性。

。1并發(fā)性:并發(fā)性是指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生。在多道程序環(huán)境下,并發(fā)性是

指在一段時(shí)間內(nèi),宏觀上有多個(gè)程序在同時(shí)運(yùn)行,但在單處理機(jī)系統(tǒng)中,每一時(shí)刻卻僅能有一道程序執(zhí)行,故微觀上

這些程序只能是分時(shí)地交替執(zhí)行。倘若在計(jì)算機(jī)系統(tǒng)中有多個(gè)處理機(jī),則這些可以并發(fā)執(zhí)行的程序便可被分配到多個(gè)處

理機(jī)上,實(shí)現(xiàn)并行執(zhí)行,即利用每個(gè)處理機(jī)來(lái)處理一個(gè)可并發(fā)執(zhí)行的程序,這樣,多個(gè)程序便可同時(shí)執(zhí)行。兩個(gè)或多

個(gè)事件在同一時(shí)刻發(fā)生稱(chēng)為并行。在操作系統(tǒng)中存在著許多并發(fā)或并行的活動(dòng)。

。2共享性:共享是指系統(tǒng)中的資源可供內(nèi)存中多個(gè)并發(fā)執(zhí)行的程序共同使用。由于資源屬性的

不同,對(duì)資源共享的方式也不同,目前主要有以下兩種資源共享方式互斥共享方式和同時(shí)訪問(wèn)方式。并發(fā)和共享是操

作系統(tǒng)的兩個(gè)最基本的特征,它們又互為對(duì)方存在的條件。一方面,資源共享是以程序的并發(fā)執(zhí)行為條件的,若系統(tǒng)

不允許程序并發(fā)執(zhí)行,自然不存在資源共享問(wèn)題;另一方面,若系統(tǒng)不能對(duì)資源共享實(shí)施有效管理,協(xié)調(diào)好多個(gè)程序

對(duì)共享資源的訪問(wèn),也必然影響到程序并發(fā)執(zhí)行的程度,甚至根本無(wú)法并發(fā)執(zhí)行。

。3虛擬性:是指將一個(gè)物理實(shí)體映射為若干個(gè)邏輯實(shí)體。前者是客觀存在的,后者是虛構(gòu)的,是一種感覺(jué)性的

存在,即主觀上的一種想象。

。4不確定性:在多道程序環(huán)境下,允許多個(gè)程序并發(fā)執(zhí)行,但只有程序在獲得所需的資源后方能執(zhí)行。在單

處理機(jī)環(huán)境下,由于系統(tǒng)中只有一個(gè)處理機(jī),因而每次只允許一個(gè)程序執(zhí)行,其余程序只能等待。內(nèi)存中的每個(gè)程序在

何時(shí)能獲得處理機(jī)運(yùn)行,何時(shí)又因提出某種資源請(qǐng)求而暫停,以及程序以怎樣的速度向前推進(jìn),每道程序總共需多少

時(shí)間才能完成,等等,都是不可預(yù)知的。因此,在操作系統(tǒng)中,存在著不確定性。

4.簡(jiǎn)述Windows系列操作系統(tǒng)的發(fā)展歷史。

答:Windows系列操作系統(tǒng)是由微軟公司從1985年起開(kāi)發(fā)的一系列視窗操作系統(tǒng)產(chǎn)品,包括個(gè)人(家

用)、商用和嵌入式3條產(chǎn)品線(圖)。個(gè)人操作系統(tǒng)包括WindowsMe,Windows95/98,及更早期的版本

Windows…等,主要在舊M個(gè)人機(jī)系列上運(yùn)行。商用操作系統(tǒng)是Windows2000和其前身版本W(wǎng)indowsNT,

主要在服務(wù)器、工作站等上運(yùn)行,也可以在舊M個(gè)人系列機(jī)上運(yùn)行。

嵌入式操作系統(tǒng)有WindowsCE和手機(jī)用操作系統(tǒng)stinger等。WindowsXP將使家用和商用兩條產(chǎn)品線合二為

-o截止至20世紀(jì)末,全世界運(yùn)行各種Windows版本的計(jì)算機(jī)有兩億臺(tái)左右。微軟公司從1983年開(kāi)始研制

Windows操作系統(tǒng)。當(dāng)時(shí),IBMPC進(jìn)入市場(chǎng)已有兩年,微軟公司開(kāi)發(fā)的磁盤(pán)操作系統(tǒng)DOS和編程語(yǔ)言BASIC隨

舊MPC捆綁銷(xiāo)售,取得了很大的成功。Windows操作系統(tǒng)最初的研制目標(biāo)是在DOS的基礎(chǔ)上提供一個(gè)多任務(wù)的

圖形用戶(hù)界面。不過(guò),第一個(gè)取得成功的圖形用戶(hù)

界面系統(tǒng)并不是Windows,而是Windows的模仿對(duì)象一一蘋(píng)果公司于1984年推出的MacOS(運(yùn)行于蘋(píng)果公司

的Macintosh個(gè)人計(jì)算機(jī)上),Macintosh機(jī)及其上的操作系統(tǒng)當(dāng)時(shí)已風(fēng)靡美國(guó)多年,是舊MPC和DOS操作

系統(tǒng)在當(dāng)時(shí)市場(chǎng)上的主要競(jìng)爭(zhēng)對(duì)手。當(dāng)年蘋(píng)果公司曾對(duì)PC機(jī)和Windows操作

系統(tǒng)不屑一顧,并大力抨擊微軟公司抄襲MacOS的外觀和靈感。但蘋(píng)果機(jī)和MacOS是封閉式體系

(硬件接口不公開(kāi)、系統(tǒng)源代碼不公開(kāi)等),而舊MPC和MS-DOS是開(kāi)放式體系(硬件接口公開(kāi)、允許并支持

第三方廠家做兼容機(jī)、公開(kāi)操作系統(tǒng)源代碼等)。這個(gè)關(guān)鍵的區(qū)別使得舊MPC后來(lái)者居上,銷(xiāo)量超過(guò)了蘋(píng)果機(jī),并

使得在舊MPC上運(yùn)行的Windows操作系統(tǒng)的普及率超過(guò)了MacOS,

成為個(gè)人計(jì)算機(jī)市場(chǎng)占主導(dǎo)地位的操作系統(tǒng)。5.簡(jiǎn)述UNIX系列操作系統(tǒng)的發(fā)展歷史。

答:“UNIX”這個(gè)名字是取“Multics”的反義,其誕生背景與特點(diǎn)一如其名。Multics項(xiàng)目

(MULTiplexedInformationandComputingService)由貝爾(電話)實(shí)驗(yàn)室(Bell(Telephone)

Laboratories,簡(jiǎn)稱(chēng)BTL),通用電氣公司(GeneralElectric)和麻省理工學(xué)院聯(lián)合開(kāi)發(fā),旨在建立一個(gè)能夠

同時(shí)支持?jǐn)?shù)千個(gè)用戶(hù)的分時(shí)系統(tǒng),該項(xiàng)目因目標(biāo)過(guò)于龐大而失敗,于1969年撤銷(xiāo)。退出Multics項(xiàng)目后,1969年

中期.貝爾實(shí)驗(yàn)室的雇員Thompson開(kāi)始在公司的一臺(tái)閑置的只有4KB內(nèi)存的PDP-7計(jì)算機(jī)上開(kāi)發(fā)一個(gè)“太空漫

游”游戲程序。由于PDP-7缺少程序開(kāi)發(fā)環(huán)境,為了方便

這個(gè)游戲程序的開(kāi)發(fā),Thompson和公司的另一名雇員Ritchie一起用GE-645匯編語(yǔ)言(以前曾用于Multics開(kāi)

發(fā))開(kāi)發(fā)PDP-7上的操作環(huán)境。最初是一個(gè)簡(jiǎn)單的文件系統(tǒng),很快又添加了一個(gè)

進(jìn)程子系統(tǒng)、一個(gè)命令解釋器和一些實(shí)用工具程序。他們將這個(gè)系統(tǒng)命名為UNIX。此后,隨著貝

爾實(shí)驗(yàn)室的工作環(huán)境的需要,他們將UNIX移植到PDP-11±,并逐漸增加了新的功能。很快,UNIX

開(kāi)始在貝爾實(shí)驗(yàn)室內(nèi)部流行,許多人都投入到它的開(kāi)發(fā)中來(lái)。1971年,《UNIX程序員手冊(cè)》第1版

出版,這之后直到1989年,貝爾實(shí)驗(yàn)室又相繼發(fā)行了10個(gè)版本的UNIX和相應(yīng)的手冊(cè)。1973年Ritchie用C語(yǔ)

言重寫(xiě)了UNIX(第4版),這使得UNIX的可移植性大大增強(qiáng),這是UNIX邁向成功之路的關(guān)鍵一步。1973年

10月,Thompson和Ritchie在ACM(AssociationforComputingMachinery,計(jì)算機(jī)協(xié)會(huì))的SOSP

(SymposiumOperatingSystemsPrinciples,操作系統(tǒng)原理

討論會(huì))會(huì)議上發(fā)表了首篇UNIX論文,這是UNIX首次在貝爾實(shí)驗(yàn)室以外亮相。

UNIX的第一次移植是由Wollongong大學(xué)于1976年將其移植到Interdata機(jī)上。其它幾次較早的移植包括:

1978年,微軟公司與SCO公司合作將UNIX移植到Intel8086±,即XENIX系統(tǒng)(最早的UNIX商業(yè)變種之

-);1978年,DEC公司將UNIX移植到VAX上,即UNIX/32V3(BSD的前身)。

UNIX的不斷發(fā)展導(dǎo)致許多計(jì)算機(jī)公司開(kāi)始發(fā)行自己機(jī)器上的UNIX增值商業(yè)版本。UNIX的第一

個(gè)商業(yè)變種是1977年InteractiveSystems公司的IS/1(PDP-11)。2。世紀(jì)80年代著名的商業(yè)變種有SUN

公司的SunOS、微軟公司與SCO公司的XENIX等。

20世紀(jì)70年代中期到80年代中期,UNIX的迅速發(fā)展,眾多大學(xué)和公司的參與.使得UNIX的

變種迅速增多。這些變種主要圍繞3條主線:由貝爾實(shí)驗(yàn)室發(fā)布的UNIX研究版(FirstEditionUNIX到Tenth

EditionUNIX,或稱(chēng)V1到V10,以后不再發(fā)行新版;由加利福尼亞州大學(xué)伯克利分校發(fā)布的BSD(Berkeley

SoftwareDistribution)和由貝爾實(shí)驗(yàn)室發(fā)布的UNIXSystemm和System

V。

到20世紀(jì)80年代,UNIX已在從微型機(jī)到巨型機(jī)等眾多不同機(jī)型上運(yùn)行。作為通用操作系統(tǒng),當(dāng)時(shí)UNIX

的主要競(jìng)爭(zhēng)對(duì)手是各計(jì)算機(jī)廠商的專(zhuān)有系統(tǒng),如舊M的OS360/370系列等。

20世紀(jì)80年代后期,UNIX已經(jīng)出現(xiàn)了很多變種,變種增多導(dǎo)致了程序的不兼容性和不可移植(同一應(yīng)用程

序在不同UNIX變種上不能直接運(yùn)行)。因此,迫切需要對(duì)UNIX進(jìn)行標(biāo)準(zhǔn)化。這就導(dǎo)致了兩大陣營(yíng)的出現(xiàn)。

1987年,在統(tǒng)一市場(chǎng)的浪潮中,AT&T宣布與SUN公司合作,揩個(gè)系SystemV和SunOS統(tǒng)一為一

統(tǒng)。其余廠商十分關(guān)注這項(xiàng)開(kāi)發(fā),認(rèn)為他們的市場(chǎng)處于威脅之下,他們的新于是聯(lián)合開(kāi)發(fā)新的開(kāi)放系統(tǒng)。

機(jī)構(gòu)OpenSoftwareFoundation(開(kāi)放軟件基金會(huì),簡(jiǎn)稱(chēng)然兩者都是OSF)于1988年成立。作為回

UNIX,但他們?cè)谙到y(tǒng)構(gòu)架、命令操作以及管理方式上都有所不同。兩者在市場(chǎng)

上展開(kāi)了激烈的競(jìng)爭(zhēng)。

應(yīng),AT&T和SUN公司聯(lián)盟亦于1988年形成了UNIXInternationalUNIX國(guó)際,簡(jiǎn)稱(chēng)UI)。這場(chǎng)

“UNIX戰(zhàn)爭(zhēng)”將系統(tǒng)廠商劃分成UI和OSF兩大陣營(yíng)。UI推出了SVR4,而OSF則推出了OSF/1o雖

兩種UNIX系統(tǒng)并存,卻又不能相互兼容,這對(duì)用戶(hù)非常不利,因而直接影響了UNIX對(duì)用戶(hù)的

吸引力。隨著Microsoft公司的迅速崛起,并以驚人的速度由傳統(tǒng)的PC機(jī)市場(chǎng)向工作站和網(wǎng)絡(luò)市場(chǎng)擴(kuò)張,迫使UI

和OSF兩大陣營(yíng)不得不相互讓步、握手言和,從而共同制定了應(yīng)用程序接口API

(ApplicationProgramInterface)標(biāo)準(zhǔn)技術(shù)規(guī)范,并聯(lián)合開(kāi)發(fā)共同開(kāi)放軟件環(huán)境COSE(Common

OpenSoftwareEnvironment)。

6.簡(jiǎn)述Linux操作系統(tǒng)的發(fā)展歷史。

答:Linux最初是由芬蘭赫爾辛基大學(xué)計(jì)算機(jī)系大學(xué)生LinusTorvalds,在從1990年底到1991

年的幾個(gè)月中,為了自己的操作系統(tǒng)課程學(xué)習(xí)和后來(lái)上網(wǎng)使用而陸續(xù)編寫(xiě)的,在他自己買(mǎi)的Intel386PC機(jī)上,利用

Tanenbaum教授自行設(shè)計(jì)的微型UNIX操作系統(tǒng)Minix作為開(kāi)發(fā)平臺(tái)。據(jù)Linus說(shuō)剛開(kāi)始的時(shí)候他根本沒(méi)有想到要

編寫(xiě)一個(gè)操作系統(tǒng)內(nèi)核,更沒(méi)想到這一舉動(dòng)會(huì)在計(jì)算機(jī)界產(chǎn)生如此重大的影響。最開(kāi)始是一個(gè)進(jìn)程切換器,然后是為

自己上網(wǎng)需要而自行編寫(xiě)的終端仿真程序,再后來(lái)是為他從網(wǎng)上下載文件而自行編寫(xiě)的硬盤(pán)驅(qū)動(dòng)程序和文件系統(tǒng)。這

時(shí)候他發(fā)現(xiàn)自己已經(jīng)實(shí)現(xiàn)了

一個(gè)幾乎完整的操作系統(tǒng)內(nèi)核,出于對(duì)這個(gè)內(nèi)核的信心和美好的奉獻(xiàn)與發(fā)展愿望,Linus希望這個(gè)內(nèi)核能夠免費(fèi)擴(kuò)散

使用,但出于謹(jǐn)慎,他并沒(méi)有在Minix新聞組中公布它,而只是于1991年底在赫爾辛基大學(xué)的一臺(tái)FTP服務(wù)器上

發(fā)了一則消息,說(shuō)用戶(hù)可以下載Linux的公開(kāi)版本(基于Intel

386體系結(jié)構(gòu))和源代碼。從此以后,奇跡發(fā)生了。

1993年.Linux的第一個(gè)產(chǎn)品一一Linux版問(wèn)世的時(shí)候,是按完全自由版權(quán)進(jìn)行擴(kuò)散的。它要求所有的源代

碼必須公開(kāi),而且任何人均不得從Linux交易中獲利。然而半年以后,Linus開(kāi)始意識(shí)到這種純粹的自由軟件理想對(duì)

于Linux的擴(kuò)散和發(fā)展來(lái)說(shuō),實(shí)際上是一種障礙而不是一股推動(dòng)力,因?yàn)樗拗屏薒inux以磁盤(pán)復(fù)制或者CD-ROM

等媒體形式進(jìn)行擴(kuò)散的可能,也限制了一些商業(yè)公司參與Linux進(jìn)一步開(kāi)發(fā)并提供技術(shù)支持的良好愿望。于是Linus

決定轉(zhuǎn)向GPL版權(quán),這一版權(quán)除了規(guī)定有自由軟件的各項(xiàng)許可權(quán)之外,還允許用戶(hù)出售自己的程序復(fù)制品。這一

版權(quán)上的轉(zhuǎn)變后來(lái)證明對(duì)Linux的進(jìn)一步發(fā)展確實(shí)極為重要。從此以后,便有多家技術(shù)力量雄厚又善于市場(chǎng)運(yùn)作的

商業(yè)軟件公司加入了原先完全由業(yè)余愛(ài)好者和網(wǎng)絡(luò)黑客所參與的這場(chǎng)自由軟件運(yùn)動(dòng),開(kāi)發(fā)出了多種Linux的發(fā)布版

本.增加了更易于用戶(hù)使用的圖形界面和眾多的軟件開(kāi)發(fā)工具,極大地拓展了Linux的全球用戶(hù)基礎(chǔ)。Linus本人

也認(rèn)為:“使Linux成為GPL的一員是我一生中所做過(guò)的最漂亮的一件事。”一些軟件公司,如RedHat、

InfoMagic等也不失時(shí)機(jī)地推出了自己的以Linux為核心的操作系統(tǒng)版本,這大大推動(dòng)了Linux的商品化。在一些大

的計(jì)算機(jī)公司的支持下,Linux還被移植到Alpha、PowerPC,MIPS及SPARC等為處理機(jī)的系統(tǒng)上。

隨著Linux用戶(hù)基礎(chǔ)的不斷擴(kuò)大,性能的不斷提高、功能的不斷增加,各種平臺(tái)版本的不斷涌現(xiàn),以及越來(lái)

越多商業(yè)軟件公司的加盟,Linux已經(jīng)在不斷地向高端發(fā)展,開(kāi)始進(jìn)入越來(lái)越多的公司和企業(yè)計(jì)算領(lǐng)域。Linux被許

多公司和Internet服務(wù)提供商用于Internet網(wǎng)頁(yè)服務(wù)器或電子郵件服務(wù)器,并已開(kāi)始在很多企業(yè)計(jì)算領(lǐng)域中大顯身

手。1998年下半年,由于Linux本身的優(yōu)越性,使得它成為傳媒關(guān)注的焦點(diǎn),進(jìn)而出現(xiàn)了當(dāng)時(shí)的“Linux熱”:首

先是各大數(shù)據(jù)庫(kù)廠商(Oracle、Informix,Sybase等);繼而是其它各大軟硬件廠商(舊M、Intel,

Netscape.Corel、Adeptec.SUN公司等),紛紛宣布支持甚至投資Linux(支持是指該廠商自己的軟硬件產(chǎn)

品支持Linux,即可以在Linux下運(yùn)行,最典型的是推出xxxforLinux版或推出預(yù)裝Linux的機(jī)器等)。即使像

SUN和HP這樣的公同,盡管它們的操作系統(tǒng)產(chǎn)品與Linux會(huì)產(chǎn)生利益沖突,也大力支持Linux,從而達(dá)到促迸其

硬件產(chǎn)品銷(xiāo)售的目的。

7.自由軟件的含義是什么?

答:自由軟件的自由(free)有兩個(gè)含義:第一是免費(fèi),第二是自由。免費(fèi)是指自由軟件可免費(fèi)提供給任何用

戶(hù)使用,即便是用于商業(yè)目的,并且自由軟件的所有源程序代碼也是公開(kāi)的,可免費(fèi)得到。自由是指它的源代碼不僅

公開(kāi)而且可以自由修改,無(wú)論修改的目的是使自由軟件更加完善,還是在對(duì)自由軟件進(jìn)行修改的基礎(chǔ)上開(kāi)發(fā)上層軟

件??傊?,可以對(duì)它做自己喜歡做的任何事情,除了一兩件不能做的事之外(如不能宣稱(chēng)這個(gè)系統(tǒng)是你自己開(kāi)發(fā)

的)。自由軟件的出現(xiàn)給人們帶來(lái)很大的好處:首先,免費(fèi)可給用戶(hù)節(jié)省相當(dāng)?shù)馁M(fèi)用;其次,公開(kāi)源碼可吸引盡可能

多的開(kāi)發(fā)者參與軟件的查錯(cuò)與改進(jìn);在開(kāi)發(fā)協(xié)調(diào)人的控制下,自由軟件新版本的公布、反饋、更新等過(guò)程是完全開(kāi)放

的。

第二章進(jìn)程管理

選擇題

1.進(jìn)程在發(fā)出I/O請(qǐng)求后,可能導(dǎo)致下列哪種進(jìn)程狀態(tài)演變?

A.就緒一執(zhí)行B.執(zhí)行->就緒

C.阻塞-執(zhí)行D.執(zhí)行一阻塞

2.“臨界區(qū)”是指:C

A.一組臨界資源的集合B.可共享的一塊內(nèi)存區(qū)

C.訪問(wèn)臨界資源的一段代碼D.請(qǐng)求訪問(wèn)臨界資源的代碼

3使用一個(gè)信號(hào)量協(xié)調(diào)5個(gè)進(jìn)程對(duì)3個(gè)同類(lèi)臨界資源的訪問(wèn),下列哪個(gè)信號(hào)量值不應(yīng)該出現(xiàn)?

A.3B.0C.-1D.-3

4使用一個(gè)信號(hào)量協(xié)調(diào)6個(gè)進(jìn)程對(duì)2個(gè)同類(lèi)臨界資源的訪問(wèn),下列哪個(gè)信號(hào)量值不應(yīng)該出現(xiàn)?

A.3B.0C.1D.-3

5“臨界資源”是指:C

A.正在被占用的資源B.不可共享的資源

C.一次只能被一個(gè)進(jìn)程使用的資源D.可同時(shí)使用的資源

6.下列哪種通信方式不屬于:一個(gè)進(jìn)程向中間實(shí)體發(fā)送消息,等待另一進(jìn)程異步地接收。D

A.共享存儲(chǔ)區(qū)B.消息緩沖C.信箱方式D.共享文件

7.如何從用戶(hù)方式(用戶(hù)態(tài))轉(zhuǎn)入特權(quán)方式(核心態(tài))?D

A.使用特權(quán)指令B.發(fā)生子程序調(diào)用

C.使用共享代碼D.進(jìn)行系統(tǒng)調(diào)用

8.進(jìn)程由就緒狀態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)是通過(guò)以下那個(gè)調(diào)度程序?qū)崿F(xiàn)的?B

A.作業(yè)調(diào)度B.進(jìn)程調(diào)度

C.中級(jí)調(diào)度D.驅(qū)臂調(diào)度

9,以下哪個(gè)不是程序并發(fā)執(zhí)行時(shí)所產(chǎn)生的特性:D

A.與速度無(wú)關(guān)性B.不可再現(xiàn)性

C.相互制約性D.通信性

10.當(dāng)某個(gè)作業(yè)被作業(yè)調(diào)度程序選中,進(jìn)入內(nèi)存開(kāi)始運(yùn)行時(shí),作業(yè)的狀態(tài)為:C

A.提交狀態(tài)B.完成狀態(tài)

C.執(zhí)行狀態(tài)D.后備狀態(tài)

11.以下哪個(gè)不是程序順序執(zhí)行時(shí)的特性(D)

A.封閉性B.順序性

C,無(wú)關(guān)性D.不可再現(xiàn)性

12.在消息緩沖通信方式中,通信的基本單位是一B-。

A.文件B.消息C.記錄D.字段13.可以使用銀行家算法_D死鎖。

A.預(yù)防B.檢測(cè)C.解除D.避免14.在消息緩沖隊(duì)列中,消息隊(duì)列屬于_A_資源。

A.臨界B.共享C.永久D.可剝奪

15.在操作系統(tǒng)中,進(jìn)行資源分配、調(diào)度和管理的最小獨(dú)立單位是一C

A.作業(yè)B.程序C.進(jìn)程D.用戶(hù)

16.進(jìn)程控制的功能是首先將要參加并發(fā)執(zhí)行的程序A,進(jìn)程完成時(shí)撤銷(xiāo)進(jìn)程,以及控制進(jìn)程B,

進(jìn)程控制通常是利用C實(shí)現(xiàn)的。進(jìn)程從運(yùn)行態(tài)到阻塞態(tài)的轉(zhuǎn)換.由D的進(jìn)程調(diào)用E原語(yǔ)來(lái)實(shí)現(xiàn);一個(gè)進(jìn)程因等待某

類(lèi)資源而阻塞,正在執(zhí)行的進(jìn)程釋放該類(lèi)資源時(shí)調(diào)用F原語(yǔ)把阻塞的進(jìn)程轉(zhuǎn)換為G。正在執(zhí)行的進(jìn)程響應(yīng)外中斷后再

把阻塞的進(jìn)程喚醒,被喚醒的進(jìn)程原來(lái)等待的事件為H。

選擇答案;

(1)創(chuàng)建進(jìn)程⑵分派CPU(3)調(diào)入內(nèi)存(4)狀態(tài)轉(zhuǎn)換(5)過(guò)程調(diào)用(6)原語(yǔ)(7)

阻塞(8)喚醒(9)正在運(yùn)行(10)I/。操作(11)就緒態(tài)(12)運(yùn)行態(tài)17.1?阻塞態(tài)共享系統(tǒng)資

源或相互合的任務(wù),則

果多個(gè)進(jìn)程作完成一個(gè)嘈IABICIDEIF

B黑運(yùn)票相嘉乍的盤(pán)L3cU以LU贏二士j案諸進(jìn)程是以臨界資源的

訪問(wèn)時(shí)采用

(1)共享(2)獨(dú)立D

3)互斥(4)同步(5)次序6)次數(shù)(在同異班同只允許一個(gè)寫(xiě)者去

18.一個(gè)數(shù)據(jù)表格(Dtab),許R皆個(gè)二朝甲琦。|研|口寫(xiě),容讀者讀前必須在登記表(Tab)

記,退出時(shí)則要?jiǎng)h除相應(yīng)的登同步操作案工572上登記項(xiàng)。對(duì)以下流程填入正確語(yǔ)句實(shí)現(xiàn)

(注:Tab=?表示登記表為空,即沒(méi)有讀苗或?qū)懱嬲诓僮?/p>

varmutex,wmutex.count:semaphore:=1,1,RN

Dtab0)

學(xué)家使用。桌子中間是一些“永遠(yuǎn)也吃不完”的飯菜。

桌子上還放有5個(gè)盤(pán)子和5支筷子。當(dāng)哲學(xué)家們思考問(wèn)題

時(shí),它們互不干擾。一個(gè)哲學(xué)家需要用餐了,他就進(jìn)入餐

廳,走到餐桌邊找到一把空椅子就座,然后就試圖去拿

相鄰的兩支筷

子。當(dāng)然,他不能去拿已經(jīng)握在鄰近椅子上同事手上的筷子,也不能去拿位于其左、右同事位置之外的筷子。當(dāng)一個(gè)需

用餐的哲學(xué)家拿到鄰近的兩支筷子后,他就開(kāi)始用餐而不放下。當(dāng)他用餐完畢,就把手中的兩支筷子放回原處再去思考

他的問(wèn)題。因此,這些哲學(xué)家門(mén)的生活是一種單調(diào)的重復(fù)動(dòng)作,即這個(gè)問(wèn)題可以概括為:repeat

think,eat

forever。

o?

用一個(gè)信號(hào)量表示一支筷子。一個(gè)哲學(xué)家試圖去拿一支筷子是通過(guò)在哪個(gè)信號(hào)量上執(zhí)行一個(gè)

P操作來(lái)表示的,放下一支筷子則是在相應(yīng)的信號(hào)量上執(zhí)行一個(gè)v操作來(lái)描述的。因此共享變量是筷子,相應(yīng)的程序

為:

programdiningphilosophers;

varchopstick:array[0..4]ofsemaphore;(*binary*)

i:integer;

procedurephilosopher(l:integer);

beginrepeat

think;

p(chopstick[i]);

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

eat;

v(chopstick[i]);

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

forever

end;

begin(*mainprogram*)

fori:=1to4dochopstick[i]:=1;

cobegin

philosopher(O);philosopher(l);philosopher(2);philosopher(3);philosopher(4);

coend

end.注:該算法簡(jiǎn)單,能夠互斥,但有可能產(chǎn)生死鎖(每個(gè)人都拿到了左邊的筷子,又試圖去拿右邊的筷子

時(shí))。

O2Programdiningphilosophers;

Monitorchopstickmonitor;

Varchopstick:array[0..4]ofinteger;

oktoeat:array[0..4]ofcondition;

i:integer;

proceduretakechopstick(i:integer);

begin

ifchopstick[i]<>2thenwait(oktoeat);

chopstick[(i+1)mod5]:=chopstick[(i+1)mod5]-1;

chopstick[(i-1)mod5]:=chopstick[(i-1)mod5]-1;

end;

procedurreleasechopstick(iinteger);

begin

chopstick[(i+1)mod5]:=chopstick[(i+1)mod5]+1;

chopstick[(i-1)mod5]:=chopstick[(i-1)mod5]+1;

ifchopstick[(i+1)mod5]=2thensingal(oktoeat[(i+1)mod5]);

ifchopstick[(i-1)mod5]=2thensingal(oktoeat[(i-1)mod5]);

end;

begin(*monitor賦初值部分*)

fori:=1to4dochopstick[i]:=2

end;

procedurephilosopher(i:integer);

beginrepeat

think;takechopstick(i);

eat;

releasechopstick(i);

forever

end;

begin(*mainprogram*)

cobegin

philosopher(O);philosopher(l);philosopher(2);philosopher(3);philosopher(4);

coend

end注:這種使用管程方法解決了死鎖,同時(shí)又是互斥執(zhí)行。

。3下面給出一種使用P、V操作實(shí)現(xiàn)的辦法,它不僅保證了安全性,而且也不會(huì)發(fā)生死鎖和饑餓現(xiàn)象。相應(yīng)的程

序描述如下:

programdiningphilosophers;

varchopstick:array[0..4]ofsemaphore;(*binary*)

room:semaphore;

i:integer;

Procedurephilosopher(i:integer);

beginrepeat

think;

P(room);

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

eat;

V(chopstick[i]);

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論