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

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上名詞解釋1操作系統(tǒng)操作系統(tǒng)是管理和控制計(jì)算機(jī)系統(tǒng)內(nèi)各種硬件和軟件資源,有效地組織多道程序運(yùn)行的系統(tǒng)軟件(或程序集合),是用戶與計(jì)算機(jī)之間的接口。2管態(tài)當(dāng)執(zhí)行操作系統(tǒng)程序時(shí),處理機(jī)所處的狀態(tài)3目態(tài)當(dāng)執(zhí)行普通用戶程序時(shí),處理機(jī)所處的狀態(tài)。4多道程序設(shè)計(jì)在這種設(shè)計(jì)技術(shù)下,內(nèi)存中能同時(shí)存放多道程序,在管理程序的控制下交替的執(zhí)行。這些作業(yè)共享CPU和系統(tǒng)中的其他資源。5并發(fā)是指兩個(gè)或多個(gè)活動(dòng)在同一給定的時(shí)間間隔中進(jìn)行。它是宏觀上的概念。6并行是指兩個(gè)或多個(gè)活動(dòng)在同一時(shí)刻同時(shí)執(zhí)行的情況。7吞吐量在一段給定的時(shí)間內(nèi),計(jì)算機(jī)所能完成的總工作量。8分時(shí)就是對(duì)時(shí)間的共享。在分時(shí)系統(tǒng)中,分

2、時(shí)主要是指若干并發(fā)程序?qū)PU時(shí)間的共享。9實(shí)時(shí)表示“及時(shí)”或“既時(shí)”。10系統(tǒng)調(diào)用是用戶在程序中能以“函數(shù)調(diào)用”形式調(diào)用的、由操作系統(tǒng)提供的子功能的集合。每一個(gè)子功能稱作一條系統(tǒng)調(diào)用命令。它是操作系統(tǒng)對(duì)外的接口,是用戶級(jí)程序取得操作系統(tǒng)服務(wù)的唯一途徑。11特權(quán)指令指指令系統(tǒng)中這樣一些指令,如啟動(dòng)設(shè)備指令、設(shè)置時(shí)鐘指令、中斷屏蔽指令和清內(nèi)存指令,這些指令只能由操作系統(tǒng)使用。12命令解釋程序其主要功能是接收用戶輸入的命令,然后予以解釋并且執(zhí)行。13脫機(jī)I/O是指輸入/輸出工作不受主機(jī)直接控制,而由衛(wèi)星機(jī)專門負(fù)責(zé)完成I/O,主機(jī)專門完成快速計(jì)算任務(wù),從而二者可以并行操作。14聯(lián)機(jī)I/O是指作業(yè)的輸

3、入、調(diào)入內(nèi)存及結(jié)果輸出都在cpu直接控制下進(jìn)行。15資源共享是指計(jì)算機(jī)系統(tǒng)中的資源被多個(gè)進(jìn)程所功用。例如,多個(gè)進(jìn)程同時(shí)占用內(nèi)存,從而對(duì)內(nèi)存共享;它們并發(fā)執(zhí)行時(shí)對(duì)cpu進(jìn)行共享;各個(gè)進(jìn)程在執(zhí)行過程中提出對(duì)文件的讀寫請(qǐng)求,從而對(duì)磁盤進(jìn)行共享等等。簡(jiǎn)答題1什么是操作系統(tǒng)?它的主要功能是什么?答:操作系統(tǒng)是控制和管理計(jì)算機(jī)系統(tǒng)內(nèi)各種硬件和軟件資源,有效地組織多道程序運(yùn)行的系統(tǒng)軟件(或程序集合),是用戶與計(jì)算機(jī)之間的接口。操作系統(tǒng)的主要功能有5個(gè)方面,即存儲(chǔ)管理、處理機(jī)管理、設(shè)備管理、文件管理和用戶接口。 2推動(dòng)操作系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ鞘裁矗看穑和苿?dòng)操作系統(tǒng)發(fā)展的因素很多,主要可歸結(jié)為兩大方面:硬

4、件技術(shù)更新和應(yīng)用需求擴(kuò)大伴隨計(jì)算機(jī)器件的更新?lián)Q代和計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展,促使操作系統(tǒng)的性能和結(jié)構(gòu)有了顯著發(fā)展。 應(yīng)用需求促進(jìn)了計(jì)算機(jī)技術(shù)的發(fā)展,也促進(jìn)了操作系統(tǒng)的不斷更新升級(jí)。3操作系統(tǒng)的基本特征是什么?答:操作系統(tǒng)的基本特征是并發(fā)、共享和不確定。并發(fā)性是指兩個(gè)或多個(gè)活動(dòng)在同一給定的時(shí)間間隔中進(jìn)行;共享是指計(jì)算機(jī)系統(tǒng)中的資源被多個(gè)進(jìn)程所共用;不確定性是指系統(tǒng)中各種事件發(fā)生順序的不可預(yù)測(cè)性。4多道程序和多重處理有何區(qū)別?答:多道程序是作業(yè)之間自動(dòng)調(diào)度執(zhí)行、共享系統(tǒng)資源,并不是真正的同時(shí)執(zhí)行多個(gè)作業(yè);而多重處理系統(tǒng)配置多個(gè)cpu,能真正同時(shí)執(zhí)行多道程序。要有效使用多重處理,必須采用多道程序設(shè)計(jì)技術(shù)

5、,而多道程序設(shè)計(jì)原則上不一定要求多重處理系統(tǒng)的支持。5試說明多道程序設(shè)計(jì)和多任務(wù)系統(tǒng)之間的關(guān)系答:多道程序設(shè)計(jì)是利用外設(shè)與cpu能夠并行處理的特性,在主存同時(shí)存放多個(gè)程序,使之在系統(tǒng)中交叉地使用cpu,從而提高系統(tǒng)資源的利用率。而多任務(wù)系統(tǒng)主要指多進(jìn)程交叉使用cpu。多道程序隱含了多任務(wù)處理,但多任務(wù)系統(tǒng)中不一定有多道程序。因?yàn)橐粋€(gè)程序也可以采用多任務(wù)處理機(jī)制。6不同類型的操作系統(tǒng)提供不同的功能。假定有如下的應(yīng)用環(huán)境,請(qǐng)你為它們選擇適合的操作系統(tǒng)。(1)飛機(jī)的導(dǎo)航,(2)辦公自動(dòng)化系統(tǒng),(3)航空訂票系統(tǒng),(4)復(fù)雜的科學(xué)計(jì)算,(5)圖書檢索系統(tǒng)答:(1)飛機(jī)的導(dǎo)航系統(tǒng),應(yīng)采用硬實(shí)時(shí)操作系統(tǒng)

6、(2)辦公自動(dòng)化系統(tǒng),應(yīng)采用分時(shí)操作系統(tǒng) (3)航空訂票系統(tǒng),應(yīng)采用軟實(shí)時(shí)操作系統(tǒng) (4)復(fù)雜的科學(xué)計(jì)算,應(yīng)采用批處理系統(tǒng) (5)圖書檢索系統(tǒng),應(yīng)采用軟實(shí)時(shí)操作系統(tǒng) 7什么是批處理系統(tǒng),它有什么特征?答:批處理系統(tǒng):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個(gè)作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序自動(dòng)依次處理。其主要特征是:用戶脫機(jī)使用計(jì)算機(jī)、成批處理、多道程序運(yùn)行。8什么是分時(shí)系統(tǒng),它有什么特征?答:分時(shí)系統(tǒng):把處理機(jī)的運(yùn)行時(shí)間分成很短的時(shí)間片,按時(shí)間片輪轉(zhuǎn)的方式,把處理機(jī)分配給各進(jìn)程使用。其主要特征是:交互性、多用戶同時(shí)性、獨(dú)立性。9什么是實(shí)時(shí)系統(tǒng)?它有什么特征?答:實(shí)時(shí)系統(tǒng):在被控對(duì)象允許

7、時(shí)間范圍內(nèi)做出響應(yīng) 。其主要特征是:對(duì)實(shí)時(shí)信息分析處理速度要比進(jìn)入系統(tǒng)快、要求安全可靠、資源利用率低。10什么是處理機(jī)的核心態(tài)和用戶態(tài)?為什么要設(shè)置這兩種不同的狀態(tài)?答:當(dāng)執(zhí)行操作系統(tǒng)程序時(shí),處理機(jī)處于核心態(tài)。它有較高的特權(quán),可以執(zhí)行所有的指令,包括一般用戶程序中不能使用的特權(quán)指令,從而能對(duì)所有寄存器和內(nèi)存進(jìn)行訪問,啟動(dòng)i/o操作等。 用戶程序是在用戶態(tài)下執(zhí)行,它的權(quán)限較低,只能執(zhí)行指令集中非特權(quán)指令。(2分)設(shè)置這兩種不同狀態(tài)的目的是為了保護(hù)操作系統(tǒng)程序(特別是其內(nèi)核部分),防止受到用戶程序的損害。 11系統(tǒng)調(diào)用與過程調(diào)用在功能及實(shí)現(xiàn)上有什么相同點(diǎn)和不同點(diǎn)?答:相同點(diǎn):兩者都由程序代碼構(gòu)成,

8、可直接用高級(jí)程序設(shè)計(jì)語言(如C,C+和Perl語言)來編制;使用方式相同以函數(shù)調(diào)用的形式出現(xiàn),調(diào)用時(shí)傳送參數(shù)。 不同點(diǎn):代碼層次不同,過程調(diào)用不屬于操作系統(tǒng)的一部分,而系統(tǒng)調(diào)用是操作系統(tǒng)的一部分。運(yùn)行狀態(tài)不同。過程調(diào)用只能在用戶態(tài)下運(yùn)行,不能進(jìn)入核心態(tài),而系統(tǒng)調(diào)用是在核心態(tài)下運(yùn)行的。進(jìn)入方式不同。過程調(diào)用在用戶程序中調(diào)用,并直接在用戶空間內(nèi)執(zhí)行;而系統(tǒng)調(diào)用可以在用戶程序中調(diào)用,但是在用戶程序中執(zhí)行到系統(tǒng)調(diào)用時(shí),會(huì)產(chǎn)生異常事件。實(shí)現(xiàn)處理機(jī)狀態(tài)從用戶態(tài)到核心態(tài)的轉(zhuǎn)變,從而進(jìn)入操作系統(tǒng)核心空間去執(zhí)行系統(tǒng)調(diào)用的代碼。 12試說明特權(quán)指令和系統(tǒng)調(diào)用之間的區(qū)別與聯(lián)系。答:特權(quán)指令是一類只能在核心態(tài)下執(zhí)行的

9、機(jī)器指令。而系統(tǒng)調(diào)用不是機(jī)器指令,它往往以函數(shù)調(diào)用的形式出現(xiàn),實(shí)現(xiàn)操作系統(tǒng)提供的子功能,它是操作系統(tǒng)與用戶的編程接口 。在用戶程序中可以使用系統(tǒng)調(diào)用來獲得操作系統(tǒng)服務(wù),在系統(tǒng)調(diào)用代碼中可以使用特權(quán)指令1順序性是指順序程序所規(guī)定的每個(gè)動(dòng)作都在上個(gè)動(dòng)作結(jié)束后才開始的特性。2封閉性是指只有程序本身的動(dòng)作才能改變程序的運(yùn)行環(huán)境。3可再現(xiàn)性是指程序的執(zhí)行結(jié)果與程序運(yùn)行的速度無關(guān)。4進(jìn)程程序在并發(fā)環(huán)境中的執(zhí)行過程。5互斥在邏輯上本來完全獨(dú)立的進(jìn)程,由于競(jìng)爭(zhēng)同一個(gè)資源而產(chǎn)生的相互制約的關(guān)系。6同步是指進(jìn)程間共同完成一項(xiàng)任務(wù)時(shí)直接發(fā)生相互作用的關(guān)系。也就是說,這些具有伙伴關(guān)系的進(jìn)程在執(zhí)行次序上必須遵循確定的規(guī)

10、律。7臨界資源一次僅允許一個(gè)進(jìn)程使用的資源。8臨界區(qū)在每個(gè)進(jìn)程中訪問臨界資源的那段程序。9線程線程是進(jìn)程中實(shí)施調(diào)度和分派的基本單位。10管程管程是一種高級(jí)同步機(jī)制,一個(gè)管程定義一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程在其上執(zhí)行的一組操作,這組操作能使進(jìn)程同步和改變管程中的數(shù)據(jù)。11進(jìn)程控制塊進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)識(shí),它保存了系統(tǒng)管理和控制進(jìn)程所必須的信息,是進(jìn)程動(dòng)態(tài)特性的集中表現(xiàn)。12原語指操作系統(tǒng)中實(shí)現(xiàn)一些具有特定功能的程序段,這些程序段的執(zhí)行過程是不可分割的,即其執(zhí)行過程不允許被中斷。13就緒態(tài)進(jìn)程已經(jīng)獲得了除cpu之外的全部資源,等待系統(tǒng)分配cpu,一旦獲得cpu,進(jìn)程就可以變?yōu)檫\(yùn)行態(tài)。14運(yùn)行

11、態(tài)正在cpu上執(zhí)行的進(jìn)程所處的狀態(tài)。在單cpu系統(tǒng)中,任何時(shí)候最多只能有一個(gè)進(jìn)程處于運(yùn)行狀態(tài)。15阻塞態(tài)又稱等待態(tài),指正在運(yùn)行的進(jìn)程因等待某個(gè)條件發(fā)生而不能運(yùn)行時(shí)所處的狀態(tài)。處于阻塞態(tài)的進(jìn)程在邏輯上是不能運(yùn)行的,即使cpu空閑,它也不能占用cpu。16進(jìn)程通信是指進(jìn)程間的信息交換。17同步機(jī)制同步機(jī)構(gòu)是負(fù)責(zé)處理進(jìn)程之間制約關(guān)系的機(jī)制,即操作系統(tǒng)中負(fù)責(zé)解決進(jìn)程之間協(xié)調(diào)工作的同步關(guān)系(直接制約關(guān)系),以及共享臨界資源的互斥關(guān)系(間接制約關(guān)系)的執(zhí)行機(jī)構(gòu)。簡(jiǎn)答題1在操作系統(tǒng)中為什么要引入進(jìn)程概念?答: 由于多道程序并發(fā)執(zhí)行時(shí)共享系統(tǒng)資源,共同決定這些資源的狀態(tài),因此系統(tǒng)中各程序在執(zhí)行過程中就出現(xiàn)了相

12、互制約的新關(guān)系,程序的執(zhí)行出現(xiàn)“走走停停”的新狀態(tài)。用程序這個(gè)靜態(tài)的概念已不能如實(shí)反映程序并發(fā)執(zhí)行過程中的這些特征。為此,人們引入了“進(jìn)程(Process)”這一概念來描述程序動(dòng)態(tài)執(zhí)行過程的性質(zhì)。 進(jìn)程和程序是兩個(gè)完全不同的概念。然而,進(jìn)程與程序之間存在密切關(guān)系,進(jìn)程的功能是通過程序的運(yùn)行得以實(shí)現(xiàn)的,進(jìn)程活動(dòng)的主體是程序。進(jìn)程不能脫離開具體程序而獨(dú)立存在。 2有人說,一個(gè)進(jìn)程是由偽處理機(jī)執(zhí)行的一個(gè)程序,這話對(duì)嗎?為什么?答:對(duì)。 因?yàn)閭翁幚頇C(jī)的概念只有在執(zhí)行時(shí)才存在,它表示多個(gè)進(jìn)程在單處理機(jī)上并發(fā)執(zhí)行的一個(gè)調(diào)度單位。因此,盡管進(jìn)程是動(dòng)態(tài)概念,是程序的執(zhí)行過程,但是,在多個(gè)進(jìn)程并行執(zhí)行時(shí),仍然只

13、有一個(gè)進(jìn)程占據(jù)處理機(jī)執(zhí)行,而其他并發(fā)進(jìn)程則處于就緒或等待狀態(tài)。這些并發(fā)進(jìn)程就相當(dāng)于由偽處理機(jī)執(zhí)行的程序。 3試比較進(jìn)程和程序的區(qū)別答:(1)進(jìn)程是一個(gè)動(dòng)態(tài)的概念,而程序是一個(gè)靜態(tài)的概念,程序是指令的有序集合,無執(zhí)行含義,進(jìn)程則強(qiáng)調(diào)執(zhí)行的過程。 (2)進(jìn)程具有并行特征(獨(dú)立性、異步性),程序則沒有。 (3)不同的進(jìn)程可以包含同一個(gè)程序,同一程序在執(zhí)行中也可以產(chǎn)生多個(gè)進(jìn)程。4進(jìn)程的基本狀態(tài)有哪些?試描繪進(jìn)程狀態(tài)轉(zhuǎn)換圖。答:進(jìn)程至少有三種基本狀態(tài):運(yùn)行狀態(tài)、就緒狀態(tài)和阻塞狀態(tài)(或等待狀態(tài)) 。進(jìn)程狀態(tài)轉(zhuǎn)換如下圖:運(yùn)行態(tài)進(jìn)程調(diào)度所需要的資源未被滿足(如等待 I/O)時(shí)間片到所需資源得到滿足(如I/O完

14、成)運(yùn)行態(tài)運(yùn)行態(tài)5并發(fā)進(jìn)程間的制約有哪兩種?引起制約的原因是什么?答:并發(fā)進(jìn)程所受的制約有兩種:直接制約和間接制約。 直接制約是由并發(fā)進(jìn)程相互共享對(duì)方的私有資源所引起的;間接制約是由競(jìng)爭(zhēng)共有資源而引起的。 6什么是進(jìn)程間的互斥?什么是進(jìn)程間同步?答:進(jìn)程間的互斥是指:一組并發(fā)進(jìn)程中的一個(gè)或多個(gè)程序段,因共享某一共有資源而導(dǎo)致它們必須以一個(gè)不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個(gè)以上的共享該資源的并發(fā)進(jìn)程同時(shí)進(jìn)入臨界區(qū)。 進(jìn)程間的同步是指:異步環(huán)境下的一組并發(fā)進(jìn)程因直接制約相互發(fā)送消息而進(jìn)行相互合作、相互等待,是各進(jìn)程按一定的速度執(zhí)行的過程。7什么是臨界區(qū)和臨界資源?進(jìn)程進(jìn)入臨界區(qū)的調(diào)度原則是什么?

15、答:臨界資源一次僅允許一個(gè)進(jìn)程使用的資源臨界區(qū)在每個(gè)進(jìn)程中訪問臨界資源的那段程序一個(gè)進(jìn)程進(jìn)入臨界區(qū)的調(diào)度原則是: 如果有若干進(jìn)程要求進(jìn)入空閑的臨界區(qū),一次僅允許一個(gè)進(jìn)程進(jìn)入 任何時(shí)候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個(gè)。如已有進(jìn)程進(jìn)入自己的臨界區(qū),則其他所有試圖進(jìn)入臨界區(qū)的進(jìn)程必須等待 進(jìn)入臨界區(qū)的進(jìn)程要在有限的時(shí)間內(nèi)退出,以便讓其他進(jìn)程能及時(shí)進(jìn)入自己的臨界區(qū) 如果進(jìn)程不能進(jìn)入自己的臨界區(qū),則應(yīng)讓出cpu,避免進(jìn)程出現(xiàn)“忙等”現(xiàn)象.8簡(jiǎn)述信號(hào)量的定義和作用。P,V操作原語是如何定義的?答:信號(hào)量一般是由兩個(gè)成員組成的數(shù)據(jù)結(jié)構(gòu),其中一個(gè)成員是整型變量,表示該信號(hào)量的值,它與相應(yīng)資源的使用情況有關(guān);另

16、一個(gè)是指向PCB的指針。當(dāng)多個(gè)進(jìn)程都等待同一信號(hào)量時(shí),它們就排成一個(gè)隊(duì)列,由信號(hào)量的指針項(xiàng)指出該隊(duì)列的隊(duì)首。(2分)信號(hào)量通??梢院?jiǎn)單反映出相應(yīng)資源的使用情況,它與P、V操作原語一起使用可實(shí)現(xiàn)進(jìn)程的同步和互斥。(1分)P,V操作原語有如下定義。P(S)順序執(zhí)行下述兩個(gè)動(dòng)作(1分):信號(hào)量的值減1,即S=S-1;如果S>=0,則該進(jìn)程繼續(xù)執(zhí)行。如果S<0,則把該進(jìn)程的狀態(tài)置為阻塞態(tài),把相應(yīng)的PCB連入該信號(hào)量隊(duì)列的末尾,并放棄處理機(jī),進(jìn)行等待(直到其他進(jìn)程在S上執(zhí)行V操作,把它釋放出來為止)。V(S)順序執(zhí)行下述兩個(gè)動(dòng)作(1分):S值加1,即S=S+1;如果S>0,則該進(jìn)程繼續(xù)

17、運(yùn)行;如果S<=0,則釋放信號(hào)量隊(duì)列上的第一個(gè)PCB所對(duì)應(yīng)的進(jìn)程(把阻塞態(tài)改為就緒態(tài)),執(zhí)行V操作的進(jìn)程繼續(xù)運(yùn)行。9什么是線程?它與進(jìn)程有什么關(guān)系?答:線程是進(jìn)程中實(shí)施調(diào)度和分派的基本單位。 線程和進(jìn)程之間有如下關(guān)系: 一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程;而一個(gè)線程只能在一個(gè)進(jìn)程的地址空間內(nèi)活動(dòng)。 資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。 處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程。 線程在執(zhí)行過程中,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步。10什么是管程?它由哪幾部分組成?有什么基本特性?答:一個(gè)管程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程在其上執(zhí)行

18、的一組操作,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù)。 一個(gè)管程由四個(gè)部分組成,它們是管程名稱、局部與管程的共享數(shù)據(jù)的說明、對(duì)數(shù)據(jù)進(jìn)行操作的一組過程和對(duì)該共享數(shù)據(jù)賦初值的語句。 管程具有以下特性: 管程內(nèi)部的局部數(shù)據(jù)變量只能被管程內(nèi)定義的過程所訪問,不能被管程外面聲明的過程直接訪問 進(jìn)程要想進(jìn)入管程,必須調(diào)用管程內(nèi)的某個(gè)過程 一次只能有一個(gè)進(jìn)程在管程內(nèi)執(zhí)行,而其余調(diào)用該管程的進(jìn)程都被掛起,等待該管程成為可用的。就是說,管程自身能有效地實(shí)現(xiàn)互斥。綜合題1如下圖所示的工作模型中,有三個(gè)進(jìn)程p0,p1,p2和三個(gè)緩沖區(qū)B0,B1,B2. 進(jìn)程之間借助于相鄰緩沖區(qū)進(jìn)行消息傳遞:每個(gè)進(jìn)程每次從緩沖區(qū)中取一條

19、消息,經(jīng)加工處理后送入另一個(gè)緩沖區(qū)中,三個(gè)緩沖區(qū)分別可存放3,2,2個(gè)消息。初始時(shí),僅緩沖區(qū)0有一個(gè)消息。試用P、V操作寫出三個(gè)進(jìn)程之間的同步及互斥流程。答:這是一個(gè)生產(chǎn)者/消費(fèi)者問題,而且每個(gè)進(jìn)程既是生產(chǎn)者,也是消費(fèi)者。(2)為此,應(yīng)設(shè)置6個(gè)信號(hào)量:B0S1,B0S2,B1S1,B1S2,B2S1,B2S2,分別代表B0,B1,B2中是否有空緩沖和有數(shù)據(jù)。B0S1,B0S2,B1S1,B1S2,B2S2:semaphore;B0S1=2;B0S2=1;B1S1=2;B1S2=0;B2S1=2;B2S2=0; (2)Cobegin (6=2*3)P0P1P2beginbeginbeginP(B

20、0S2)P(B1S2)P(B2S2)從B0取一個(gè)數(shù)據(jù)從B1取一個(gè)數(shù)據(jù)從B2取一個(gè)數(shù)據(jù)V(B0S2)V(B1S1)V(B2S1)加工加工加工P(B1S1)P(B2S1)P(B0S1)將加工結(jié)果送B1將加工結(jié)果送B2將加工結(jié)果送B0V(B1S2)V(B2S2)V(B0S2)endendendcoend這道題也可以增加互斥信號(hào)量,以便P0與P1之間互斥使用B0緩沖區(qū),P1與P2之間互斥使用B1緩沖區(qū),P2與P0之間互斥使用B0緩沖區(qū)。這里主要描述它們之間的同步關(guān)系。若考慮互斥共享緩沖區(qū),請(qǐng)自己加上。2設(shè)用三個(gè)隊(duì)列管理緩沖區(qū)池的使用情況,分別為空白緩沖隊(duì)列em,輸入緩沖隊(duì)列in,以及輸出緩沖隊(duì)列out

21、。過程add_buf(type,numb)和take_buf(type,numb)分別用來把緩沖區(qū)numb插入type隊(duì)列和從type隊(duì)列中取出緩沖區(qū)numb。試描述進(jìn)程從任一緩沖隊(duì)列中得到一個(gè)緩沖區(qū)的過程get_buf(type,numb)和釋放一個(gè)緩沖區(qū)numb進(jìn)入緩沖隊(duì)列的過程put_buf(type,numb)。答:假定用信號(hào)量s代表任一隊(duì)列的可用緩沖區(qū)個(gè)數(shù)。假定三個(gè)隊(duì)列的初值分別為n1,n2,n3。對(duì)任一隊(duì)列的操作必須互斥。因此再引入一個(gè)互斥使用任一隊(duì)列的信號(hào)量mutex,其初值為1。這里type代表隊(duì)列的類型,它的取值為輸入、輸出和空白。(4)當(dāng)有進(jìn)程希望從任一隊(duì)列取一個(gè)緩沖區(qū)時(shí),

22、過程get_buf(type,numb)的動(dòng)作如下:get_buf(type,numb) (3)beginp(s)p(mutex)numb=take_buf(type,numb)v(mutex)end當(dāng)有進(jìn)程希望向任一隊(duì)列送一個(gè)緩沖區(qū)時(shí),過程put_buf(type,numb)的動(dòng)作如下:put_buf(type,numb) (3)beginp(mutex)add_buf(type,numb)v(mutex)v(s)end. 3設(shè)有一個(gè)售票廳,可容納100人購票。如果廳內(nèi)不足100人則允許進(jìn)入,進(jìn)入后購票,購票后退出。如果廳內(nèi)已有100人,則在廳外等候。試問:1) 購票者之間是同步還是互斥?用

23、P、V操作表達(dá)購票者的工作過程。解:1)購票者之間是互斥關(guān)系。(2)2) 一個(gè)售票廳可容納100人購票,說明最多允許100個(gè)購票者共享售票廳;可引入一個(gè)信號(hào)量empty,其初值為100。由于購票者必須互斥地進(jìn)行購票,故應(yīng)再設(shè)一個(gè)mutex,其初值為1。(4)用P、V操作表達(dá)購票者的工作過程如下:(4)empty,mutex:semaphore;empty:=100; mutex:=1;beginp(empty)p(mutex)進(jìn)入廳內(nèi)購票,購票后退出v(empty)v(mutex)end. 4某招待所有100個(gè)床位,住宿者入住要先登記(在登記表上填寫姓名和床位號(hào))離去時(shí)要注銷登記(在登記表上刪

24、去姓名和床位號(hào))請(qǐng)給出住宿登記及注銷過程的算法描述答:某招待所有100個(gè)床位,為了正確管理,引入一個(gè)信號(hào)量empty代表空床位數(shù),初值為100;住宿者入住要先登記(在登記表上填寫姓名和床位號(hào)),顯然,登記表是一個(gè)臨界資源,必須互斥訪問,引入一個(gè)mutex,其初值為1。(4)住宿登記及注銷過程的算法描述如下:住宿登記:(3)beginp(empty) /檢查有無床位p(mutex) /申請(qǐng)登記 找出一個(gè)空床位將名字登入表中v(mutex)end注銷過程:(3)beginp(mutex) /申請(qǐng)退房找出自己的登記項(xiàng),并刪除該項(xiàng)的登記v(mutex)v(empty)end. 5有一個(gè)閱覽室,共有10

25、0個(gè)座位。為了很好地利用它,讀者進(jìn)入時(shí)必須先在登記表上進(jìn)行登記。該表表目設(shè)有座位號(hào)和讀者姓名;離開時(shí)再將其登記項(xiàng)擦除。試問:為描述讀者的動(dòng)作,應(yīng)編寫幾個(gè)程序,應(yīng)設(shè)幾個(gè)進(jìn)程、它們之間的關(guān)系怎樣?并請(qǐng)用P、V操作描述進(jìn)程之間的同步算法。解:為了描述閱覽室,用一個(gè)登記表來記錄其使用情況。表中共有100項(xiàng)。每當(dāng)有讀者進(jìn)入閱覽室時(shí),為了正確地登記,各讀者應(yīng)互斥使用(1)。為此設(shè)兩個(gè)信號(hào)量:mutex為互斥信號(hào)量,用來制約各讀者互斥地進(jìn)行登記,其初值為1;empty為同步信號(hào)量,用來制約各讀者能同時(shí)進(jìn)入閱覽室的數(shù)量,其初值為100 (2)。下面用兩個(gè)過程描述對(duì)表格應(yīng)執(zhí)行的動(dòng)作:登記過程:(2)擦除過程:(

26、2)beginbeginP(empty)P(mutex)P(mutex)找到自己的登記項(xiàng)擦除 找到一個(gè)登記項(xiàng)登記V(mutex)V(mutex)V(empty)endend為了正確地描述讀者的動(dòng)作,可以將讀者看成進(jìn)程。若干讀者希望進(jìn)入閱覽室時(shí),調(diào)用登記過程,退出閱覽室時(shí),調(diào)用擦除過程(1)。可見,一個(gè)程序可對(duì)應(yīng)多個(gè)讀者??稍O(shè)的進(jìn)程數(shù)由讀者數(shù)決定,其動(dòng)作如下:(2)begin調(diào)用登記過程進(jìn)入閱覽室閱讀準(zhǔn)備退出調(diào)用擦除過程end. 6一條河上架設(shè)了由若干個(gè)橋墩組成的一座橋。若一個(gè)橋墩只能站一個(gè)人,過河的人只能沿著橋向前走而不能向后退。過河時(shí),只要對(duì)岸無人過,就可以過;但不允許河對(duì)岸的兩個(gè)人同時(shí)過,

27、以防止出現(xiàn)死鎖。請(qǐng)給出兩個(gè)方向的人順利過河的同步算法。解:假設(shè)一座橋由N個(gè)橋墩,也即最多允許有N個(gè)人同向過河,用一個(gè)計(jì)數(shù)器R記錄同時(shí)過河的人數(shù)(2)。用S1信號(hào)量保護(hù)計(jì)數(shù)器,其初值為1,R的初值為0;互斥使用橋的信號(hào)量用S表示,其初值為1。(2)同步算法描述如下:procedure goriver()beginL:P(S1);/為同時(shí)過河,申請(qǐng)對(duì)計(jì)數(shù)器計(jì)數(shù) If R>N begin V(S1); goto L; end /同方向過河的人站滿橋墩時(shí),重新申請(qǐng)計(jì)數(shù) R=R+1; If R=1 P(S);/申請(qǐng)過河V(S1); /釋放計(jì)數(shù)器的使用權(quán) (3)占有一個(gè)橋墩,并順序過河到對(duì)岸;P(S

28、1); R=R-1; If R=0 V(S);/如果已經(jīng)無同向的人過河,釋放占用權(quán)V(S1); (3)end. 7在一個(gè)飛機(jī)訂票系統(tǒng)中,多個(gè)用戶共享一個(gè)數(shù)據(jù)庫。各用戶可以同時(shí)查詢信息,若有一個(gè)用戶要訂票,須更新數(shù)據(jù)庫時(shí),其余所有用戶都不可以訪問數(shù)據(jù)庫。請(qǐng)用P,V操作設(shè)計(jì)一個(gè)同步算法,實(shí)現(xiàn)用戶查詢與訂票功能。要求:當(dāng)一個(gè)用戶訂票而需要更新數(shù)據(jù)庫時(shí),不能因不斷有查詢者到來而使其長(zhǎng)時(shí)間等待。利用信號(hào)量機(jī)制保證其正常執(zhí)行。解:這是典型的讀者寫者問題,查詢信息的用戶是讀者,訂票用戶是寫者,并且要求寫者優(yōu)先。(2)變量說明:(2)計(jì)數(shù)變量rc正在運(yùn)行的查詢者進(jìn)程數(shù)目,初值為0.信號(hào)量Sw控制訂票者進(jìn)程的活

29、動(dòng),初值為1.Src互斥使用rc變量,初值為1.S當(dāng)訂票者到達(dá)時(shí)封鎖后續(xù)的讀進(jìn)程,初值為1.讀者進(jìn)程 P(S)P(Src)rc=rc+1if (rc=1) P(Sw)V(Src)V(S) (2)查詢庫當(dāng)中的信息P(Src)rc=rc-1;if (rc=0) V(Sw)V(Src) (2) 寫者進(jìn)程 (2)P(S)P(Sw)更新數(shù)據(jù)庫內(nèi)容V(Sw)V(S)8某車站售票廳,任何時(shí)刻最多可容納20名購票者進(jìn)入,當(dāng)售票廳中少于20名購票者時(shí),則廳外的購票者可立即進(jìn)入,否則需在外面等待。若把一個(gè)購票者看作一個(gè)進(jìn)程,請(qǐng)回答下列問題:(1)用PV操作管理這些并發(fā)進(jìn)程時(shí),應(yīng)怎樣定義信號(hào)量,寫出信號(hào)量的初值以及

30、信號(hào)量各種取值的含義。(2)根據(jù)所定義的信號(hào)量,把應(yīng)執(zhí)行的PV操作填入下述空格中,以保證進(jìn)程能夠正確地并發(fā)執(zhí)行。COBEGINPROCESSPI(I=1,2,) begin進(jìn)入售票廳; 購票; 退出; endCOEND(3)若欲購票者最多為n個(gè)人,寫出信號(hào)量可能的變化范圍(最大值和最小值)。答:(1)定義一信號(hào)量S,初始值為20。(1)意義:(3=1*3)S>0S的值表示可繼續(xù)進(jìn)入售票廳的人數(shù)S=0表示售票廳中已有20名顧客(購票者)S<0|S|的值為等待進(jìn)入售票廳的人數(shù)(2)上空格為P(S) (2) ;下空格為V(S)(2)(3)S的最大值為20 (1 );S的最小值為20n(1

31、 )9在公共汽車上,司機(jī)和售票員各行其職,司機(jī)負(fù)責(zé)開車和到站停車;售票員負(fù)責(zé)售票和開門關(guān)門,當(dāng)售票員關(guān)好車門后,駕駛員才能開車行使。試用P/V操作實(shí)現(xiàn)司機(jī)與售票員間的同步。解答:semaphore mutex1=0,mutex2=0; (2) main() cobegin driver() busman()coend (2)driver() while(true) p(mutex1) 啟動(dòng)公共汽車 正常開車 到站停車 v(mutex2) (3)busman() while(true) 關(guān)車門 v(mutex1) 售票 p(mutex2) 開車門 上下乘客 (3)10并發(fā)問題:設(shè)有兩個(gè)優(yōu)先級(jí)相同

32、的進(jìn)程p1, p2如下。令信號(hào)s1, s2的初值為0,已知z=2,試問p1, p2并發(fā)運(yùn)行結(jié)束后x=? y=? z=? 進(jìn)程p1 進(jìn)程p2 y := 1 x := 1 y := y+2 x := x+1 v(s1) p(s1) z := y+1 x := x+y p(s2) v(s2) y := z+y z := x+z 解答:(分析過程略 2)從結(jié)果來看,兩個(gè)進(jìn)程無論誰先誰后,結(jié)果都是一樣的。(2) x = 5; y = 12; z = 9 (6)11 M8M7M6M5M4M3M2試用信號(hào)量機(jī)制來描述下述前趨圖M1 解答:首先定義信號(hào)量S12,S13,S14,S26,S36,S47,S57,

33、S38,S78的初值都為0,分別表示相對(duì)應(yīng)的進(jìn)程是否完成:(2)COBEGIN (8=1*8)Process M1:begin V(S12) V(S13) V(S14) endProcess M2:begin P(S12) V(26) endProcess M3:begin P(S13) V(S36) V(S38) endProcess M4:beginP(S14) V(S47) endProcess M5:begin V(S57) endProcess M6:begin P(S26) P(S36) endProcess M7:begin P(S47) P(S57) P(S78) endPro

34、cess M8:begin P(S38) P(S78) end COEND12 M6M4M3M5M2試用信號(hào)量機(jī)制來描述下述前趨圖M1 解答:首先定義信號(hào)量S12,S13,S24,S25,S56,S46,S36的初值都為0,分別表示相對(duì)應(yīng)的進(jìn)程是否完成(2):COBEGIN (6=1*6)Process M1:begin V(S12) V(S13) endProcess M2:begin P(S12) V(24) V(25) endProcess M3:begin P(S13) V(S36) endProcess M4:begin P(S14) V(S46) endProcess M5:beg

35、in P(S25) V(S56) endProcess M6:begin P(S36)P(S46) P(S56) end COEND13設(shè)系統(tǒng)有三個(gè)并發(fā)進(jìn)程R,C,P,共享一個(gè)能存放n個(gè)數(shù)據(jù)的環(huán)形緩沖區(qū)buf。進(jìn)程R負(fù)責(zé)從輸入設(shè)備上讀數(shù)據(jù),每讀一個(gè)后把它存放在緩沖區(qū)buf的一個(gè)單元中;進(jìn)程C負(fù)責(zé)從緩沖區(qū)讀數(shù)據(jù)并進(jìn)行處理,之后將處理結(jié)果再送入緩沖區(qū)的一個(gè)單元中;進(jìn)程P負(fù)責(zé)從緩沖區(qū)讀進(jìn)程C處理的結(jié)果并打印。請(qǐng)用P、V操作為三進(jìn)程的正確執(zhí)行寫出同步算法。解答:解決同步問題需設(shè)一個(gè)互斥信號(hào)量mux,用于控制三個(gè)進(jìn)程互斥使用緩沖區(qū),初值為1;再設(shè)三個(gè)同步信號(hào)量,用于控制對(duì)緩沖區(qū)的空閑數(shù)量和不同數(shù)據(jù)個(gè)數(shù)的

36、記錄。S0表示緩沖區(qū)空閑個(gè)數(shù),初值為n;S1表示緩沖區(qū)中輸入數(shù)據(jù)的個(gè)數(shù),初值為0;S2表示緩沖區(qū)中輸出數(shù)據(jù)的個(gè)數(shù),初值為0。(4)算法描述如下:(6=2*3) 進(jìn)程R 進(jìn)程C 進(jìn)程P L1: L2: L3:P(S0) P(S1) P(S2)P(mux) P(mux) P(mux)讀一個(gè)數(shù)據(jù) 從緩沖區(qū)中取一個(gè) 從緩沖區(qū)中讀 送緩沖區(qū) 數(shù)據(jù)處理后放回去 輸出數(shù)據(jù)V(mux) V(mux) V(mux)V(S1) V(S2) V(S0) 打印gotoL1: gotoL2: gotoL3:名詞解釋1死鎖是指在一個(gè)進(jìn)程集合中的每個(gè)進(jìn)程都在等待僅由該集合中的另一個(gè)進(jìn)程才能引發(fā)的事件而無限期地僵持下去的局面

37、。2饑餓在系統(tǒng)中,每個(gè)資源占有者都在有限時(shí)間內(nèi)釋放它所占有的資源,但資源中存在某些申請(qǐng)者由于某種原因卻永遠(yuǎn)得不到資源的一種錯(cuò)誤現(xiàn)象。3死鎖防止要求進(jìn)程申請(qǐng)資源時(shí)遵循某種協(xié)議,從而打破產(chǎn)生死鎖的四個(gè)必要條件中的一個(gè)或幾個(gè),保證系統(tǒng)不會(huì)進(jìn)入死鎖狀態(tài)。4死鎖避免對(duì)進(jìn)程所發(fā)出的每一個(gè)申請(qǐng)資源命令加以動(dòng)態(tài)地檢查,并根據(jù)檢查結(jié)果決定是否進(jìn)行資源分配。就是說,在資源分配過程中若預(yù)測(cè)有發(fā)生死鎖的可能性,則加以避免。這種方法的關(guān)鍵是確定資源分配的安全性。5安全序列針對(duì)當(dāng)前分配狀態(tài)來說,系統(tǒng)至少能夠按照某種次序?yàn)槊總€(gè)進(jìn)程分配資源(直至最大需求),并且使他們依次成功地運(yùn)行完畢,這種進(jìn)程序列p1,p2,pn就是安全序

38、列。簡(jiǎn)答題1計(jì)算機(jī)系統(tǒng)中產(chǎn)生死鎖的根本原因是什么?死鎖發(fā)生的四個(gè)基本條件是什么?答: 計(jì)算機(jī)系統(tǒng)中產(chǎn)生死鎖的根本原因是:資源有限且操作不當(dāng) 。死鎖發(fā)生的四個(gè)基本條件有互斥條件、請(qǐng)求保持條件(占有且等待條件)、非剝奪條件(不可搶占條件)和環(huán)路條件(循環(huán)等待條件) 。2簡(jiǎn)述發(fā)生死鎖的四個(gè)必要條件?答: 四個(gè)必要條件是:互斥條件、占有且等待條件(請(qǐng)求保持條件)、不可搶占條件(非剝奪條件)和循環(huán)等待條件(環(huán)路條件)。 互斥條件某個(gè)資源在一段時(shí)間內(nèi)只能由一個(gè)進(jìn)程占有,不能同時(shí)被兩個(gè)及其以上的進(jìn)程占有。 占有且等待條件進(jìn)程至少已經(jīng)占有一個(gè)資源,但又申請(qǐng)新的資源。 不可搶占條件一個(gè)進(jìn)程所占有的資源再用完之前

39、,其他進(jìn)程不能強(qiáng)行奪走資源,只能由該進(jìn)程用完之后主動(dòng)釋放。 循環(huán)等待條件存在一個(gè)進(jìn)程等待序列P1,P2,Pn,其中,P1等待P2所占有的某個(gè)資源,P2等待P3所占有的某個(gè)資源,而Pn等待P1所占有的某個(gè)資源,從而形成一個(gè)進(jìn)程循環(huán)等待。 3什么是死鎖?解決死鎖的方法一般有那幾種?答: 死鎖是指在一個(gè)進(jìn)程集合中的每個(gè)進(jìn)程都在等待僅由該集合中的另一個(gè)進(jìn)程才能引發(fā)的事件而無限期地僵持下去的局面。 解決死鎖問題的一般方法為:死鎖的預(yù)防、死鎖的避免、死鎖的檢測(cè)和恢復(fù)。 4死鎖預(yù)防的基本思想是什么?死鎖避免的基本思想是什么?答:死鎖預(yù)防的基本思想是:要求進(jìn)程申請(qǐng)資源是遵循某種協(xié)議,從而打破產(chǎn)生思索的四個(gè)必要

40、條件中的一個(gè)或幾個(gè),保證系統(tǒng)不會(huì)進(jìn)入死鎖狀態(tài). 死鎖避免的基本思想是:對(duì)進(jìn)程所發(fā)出的每一個(gè)申請(qǐng)資源命令加以動(dòng)態(tài)地檢查,并根據(jù)檢查結(jié)果決定是否進(jìn)行資源分配.就是說,在資源分配過程中若預(yù)測(cè)有發(fā)生死鎖的可能性,則加以避免.這種方法的關(guān)鍵是確定資源分配的安全性. 5什么是死鎖的安全序列?何謂系統(tǒng)是安全的?答:進(jìn)程的安全序列P1,P2,PN是這樣組成的:若對(duì)于每個(gè)進(jìn)程Pi(1<=I<=n),它需要的附加資源可以被系統(tǒng)中當(dāng)前可用資源加上所有進(jìn)程Pj(j<i)當(dāng)前占有資源之和所滿足,則 P1,P2,PN 為一個(gè)安全序列。 “系統(tǒng)是安全的”是指系統(tǒng)中的所有進(jìn)程能夠按照某種次序分配資源,并且依

41、次運(yùn)行完畢。即系統(tǒng)中的進(jìn)程處于安全序列中。 6資源按序分配法為什么能夠預(yù)防死鎖?證明:采用反證法來證明。 若存在循環(huán)等待,設(shè)在環(huán)路上的一組進(jìn)程為P0,P1,P2,Pn,這里Pi等待進(jìn)程Pi+1占有資源Ri(下角標(biāo)取模運(yùn)算,從而,Pn等待p0占有的資源)。由于Pi+1占有資源Ri,又申請(qǐng)資源Ri+1,從而一定存在F(i)<F(i+1), 該式對(duì)所有的i都成立。于是就有: F(R0)<F(R1)<<F(Rn)<F(R0) 由傳遞性得到: F(R0)<F(R0) 顯然,這是不可能的,因而,上述假設(shè)不成立,表明不會(huì)出現(xiàn)循環(huán)等待條件。7死鎖和“饑餓”之間的主要差別是什

42、么?答:死鎖:多個(gè)并發(fā)進(jìn)程相互等待對(duì)方占用的資源而產(chǎn)生的錯(cuò)誤現(xiàn)象。 餓死:在系統(tǒng)中,由于系統(tǒng)采用的資源分配算法不當(dāng),雖然每個(gè)資源占有者都在有限時(shí)間內(nèi)釋放它所占的資源,但仍然使一些進(jìn)程永遠(yuǎn)得不到資源的一種錯(cuò)誤現(xiàn)象。 綜合題1設(shè)系統(tǒng)中有三種類型的資源(A,B,C)和五個(gè)進(jìn)程(P1,P2,P3,P4,P5),A資源的數(shù)量為17,B資源的數(shù)量為5,C資源的數(shù)量為20。在T0時(shí)刻系統(tǒng)狀態(tài)如表3-9所試。系統(tǒng)采用銀行家算法來避免死鎖。T0時(shí)刻是否為安全狀態(tài)?若試,請(qǐng)給出安全序列。在T0時(shí)刻,若進(jìn)程P2請(qǐng)求資源(0,3,4),能否實(shí)現(xiàn)資源分配?為什么?在的基礎(chǔ)上,若進(jìn)程P4請(qǐng)求資源(2,0,1),能否實(shí)現(xiàn)資

43、源分配?為什么?在的基礎(chǔ)上,若進(jìn)程P1請(qǐng)求資源(0,2,0),能否實(shí)現(xiàn)資源分配?為什么?表3-9 T0時(shí)刻系統(tǒng)狀態(tài)進(jìn)程最大資源需求量已分配資源數(shù)量系統(tǒng)剩余資源數(shù)量 A B C A B C A B CP1 5 5 9 2 1 2 2 3 3P2 5 3 6 4 0 2P3 4 0 11 4 0 5P4 4 2 5 2 0 4P5 4 2 4 3 1 4解:T0時(shí)刻是安全狀態(tài),因?yàn)榇嬖谝粋€(gè)安全序列P4,P5,P1,P2,P3 (2)不能實(shí)現(xiàn)資源分配,因?yàn)樗S嗟馁Y源數(shù)量不夠。 (2)可以分配。當(dāng)分配完成后,系統(tǒng)剩余的資源向量為(0,3,2),這時(shí),仍可找到一個(gè)安全序列P4,P5,P1,P2,P3

44、(3)不能分配。如果分配的話,則系統(tǒng)剩余的資源向量為(0,1,2),這時(shí)無法找到一個(gè)安全序列。(3)2在銀行家算法中,系統(tǒng)有5個(gè)進(jìn)程和3個(gè)資源。若出現(xiàn)以下資源分配情況:進(jìn)程資源最大請(qǐng)求已分配資源p07, 5, 30, 1, 0p13, 2, 22, 1, 0p29, 0, 23, 0, 2p32, 2, 22, 1, 1p44, 3, 30, 0, 2系統(tǒng)剩余資源數(shù)量為(3,2,2)。1) 該狀態(tài)是否安全(給出詳細(xì)的檢查過程)?2) 如果進(jìn)程依次有如下資源請(qǐng)求p1:資源請(qǐng)求Request(1,0,2)?p4:資源請(qǐng)求Request(3,3,0)?p0:資源請(qǐng)求Request(0,1,0)?則系

45、統(tǒng)如何進(jìn)行資源分配,才能避免死鎖?解:1)該系統(tǒng)狀態(tài)是否安全,主要看能否找到一個(gè)進(jìn)程完成序列.若能找到,系統(tǒng)只要按照這個(gè)序列為進(jìn)程分配資源,所有進(jìn)程就都可順利完成;若找不到,系統(tǒng)狀態(tài)就是不安全的.為此,可先求出進(jìn)程的剩余請(qǐng)求矩陣.進(jìn)程資源最大需求已分配資源剩余資源請(qǐng)求P07, 5, 30, 1, 07, 4, 3P13, 2, 22, 1, 01, 1, 2P29, 0, 23, 0, 26, 0, 0P32, 2, 22, 1, 10, 1, 1P44, 3, 30, 0, 24, 3, 1系統(tǒng)剩余資源向量A=(3,2,2),在進(jìn)程剩余資源請(qǐng)求矩陣中找,是否有一行,其值都小于或等于A.若有,

46、選進(jìn)程P1,滿足它的全部資源請(qǐng)求,它在有限時(shí)間內(nèi)能釋放全部資源,并標(biāo)記它為完成使系統(tǒng)剩余資源向量A=(5,3,2).之后再重復(fù)上述過程,從而找到了一個(gè)進(jìn)城完成序列為:P1,P3,P4,P2,P0 (2)。由此可見,系統(tǒng)狀態(tài)是安全的(2)。2)p1:資源請(qǐng)求Request(1,0,2)時(shí),由1)可知,可以立即滿足它,使得A=(2,2,0),P1的分配向量為(3,1,2),其剩余向量變?yōu)?0,1,0). (2)p4:資源請(qǐng)求Request(3,3,0)時(shí),由于系統(tǒng)剩余資源向量A=(2,2,0),顯然不能滿足它的請(qǐng)求,因?yàn)橄到y(tǒng)剩余資源向量A小于P4的請(qǐng)求 (2)p0:資源請(qǐng)求Request(0,1,

47、0)時(shí),由于系統(tǒng)剩余資源向量A=(2,2,0),若滿足它的請(qǐng)求,使得系統(tǒng)剩余資源向量A=(2,1,0)。之后,系統(tǒng)仍可以找到一個(gè)進(jìn)程完成序列P1,P4,P0,P4,P2。故可以滿足它的請(qǐng)求。 (2)3系統(tǒng)有同類資源10個(gè),進(jìn)程p1、p2和p3需要該類資源的最大數(shù)量分別為8,6,7。它們使用資源的次序和數(shù)量如下圖所示。1) 試給出采用銀行家算法分配資源時(shí),進(jìn)行第5次分配后各進(jìn)程的狀態(tài)及各進(jìn)程占用資源情況。2) 在以后的申請(qǐng)中,那次的申請(qǐng)可以得到最先滿足?給出一個(gè)進(jìn)程完成序列。次序進(jìn)程申請(qǐng)量次序進(jìn)程申請(qǐng)量1P135P222P226P133P347P334P128P22解:1)計(jì)算第5次分配后進(jìn)程的

48、狀態(tài)和占用資源情況:(5=1*5) p1申請(qǐng)3個(gè),滿足,系統(tǒng)還剩7個(gè)p2申請(qǐng)2個(gè),滿足(因?yàn)橄到y(tǒng)的7個(gè)可以使p2運(yùn)行完),系統(tǒng)還剩5個(gè)p3申請(qǐng)4個(gè),因?yàn)槿魸M足它的請(qǐng)求,可能使以后的任何進(jìn)程都不能運(yùn)行完,故p3等待p1申請(qǐng)2個(gè),滿足(系統(tǒng)還剩5個(gè)可以滿足p1的最大請(qǐng)求),系統(tǒng)還剩3個(gè) p2申請(qǐng)2個(gè),不能滿足,等待。此時(shí)系統(tǒng)的分配情況如下:p1分配5個(gè)后正在運(yùn)行,p2分配2個(gè)后等待分配2個(gè),p3等待分配4個(gè),系統(tǒng)還剩3個(gè)。2)p1接著運(yùn)行,p1申請(qǐng)3個(gè)可滿足(2)。P1運(yùn)行完成后,釋放資源,使系統(tǒng)的資源數(shù)量變?yōu)?個(gè)。首先將p3喚醒,滿足它的4個(gè)資源,系統(tǒng)還剩4個(gè),可以喚醒p2,滿足它的2個(gè)請(qǐng)求。系

49、統(tǒng)還剩2個(gè)。P3申請(qǐng)3個(gè),不能滿足,等待。P2申請(qǐng)2個(gè),系統(tǒng)滿足它,p2接著運(yùn)行;p2完成,釋放資源,使系統(tǒng)資源變?yōu)?個(gè)。系統(tǒng)喚醒p3,滿足它的資源請(qǐng)求,最終p3完成,釋放資源,使資源數(shù)量恢復(fù)為10個(gè)。找到的進(jìn)程完成序列為p1,p2,p3。 (3)4設(shè)系統(tǒng)中有150個(gè)可用的同類資源。在某時(shí)刻系統(tǒng)中的進(jìn)程已獲得的資源和最大請(qǐng)求資源如下所示,請(qǐng)用銀行家算法分別判斷完成下列請(qǐng)求時(shí),系統(tǒng)是否安全?若安全,請(qǐng)給出進(jìn)程的完成序列。如不安全,請(qǐng)說明原因。 進(jìn)程 最大需求量 當(dāng)前已分配量 p1 70 25 p2 60 40 p3 60 45 p4 60 0(1) 進(jìn)程p4當(dāng)前請(qǐng)求25個(gè)資源;(2) 之后p4又提出35個(gè)資源的請(qǐng)求。解答:系統(tǒng)當(dāng)前剩余資源量為:150 25 40 45 = 40 (2)(1) 可以滿足(2),假定先分配p4的25個(gè)資源,系統(tǒng)還剩15個(gè)。將這15個(gè)資源可先分配給p3,p3達(dá)到最大請(qǐng)求,釋放60個(gè);之后可以分配給其他任何進(jìn)程,系統(tǒng)中的進(jìn)程都能順利完成。由此可見,p2請(qǐng)求的25個(gè)資源可以滿足,且能找到完成序列:p3,p1,p2,p4,(4)(2) 當(dāng)p4再提出35個(gè)資源請(qǐng)求時(shí),系統(tǒng)還剩15,顯然不能滿足它的請(qǐng)求,讓其阻塞等待。(2)5系統(tǒng)中有五個(gè)進(jìn)程,分別為p1p2p

溫馨提示

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

評(píng)論

0/150

提交評(píng)論