第2章-處理器管理-習(xí)題答案_第1頁(yè)
第2章-處理器管理-習(xí)題答案_第2頁(yè)
第2章-處理器管理-習(xí)題答案_第3頁(yè)
第2章-處理器管理-習(xí)題答案_第4頁(yè)
第2章-處理器管理-習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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)介

第2章處理器管理習(xí)題1.1選擇題1、 下列選項(xiàng)中,不屬于進(jìn)程關(guān)鍵要素的是(D)。A.程序 B.?dāng)?shù)據(jù)和棧C.進(jìn)程控制塊 D.原語(yǔ)2、操作系統(tǒng)管理程序運(yùn)行的狀態(tài),具備較高的特權(quán)級(jí)別,稱為(C)。A.用戶態(tài) B.目態(tài) C.管態(tài) D.普通態(tài)3、在操作系統(tǒng)中,PSW的中文全稱是(A)。A.程序狀態(tài)字B.進(jìn)程標(biāo)識(shí)符 C.作業(yè)控制塊 D.進(jìn)程控制塊4、當(dāng)系統(tǒng)中或系統(tǒng)外發(fā)生異步事件時(shí),CPU暫停正在執(zhí)行的程序,保留現(xiàn)場(chǎng)后轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序,處理完成后返回?cái)帱c(diǎn),繼續(xù)執(zhí)行被打斷的進(jìn)程,這一過(guò)程稱為(D)。A.作業(yè)調(diào)度 B.頁(yè)面置換 C.磁盤(pán)調(diào)度 D.中斷5、以下關(guān)于進(jìn)程的說(shuō)法,錯(cuò)誤的是(B)。A.進(jìn)程是程序在處理器上的一次執(zhí)行過(guò)程B.一個(gè)進(jìn)程是由若干作業(yè)組成的C.在線程出現(xiàn)后,進(jìn)程仍然是操作系統(tǒng)中資源分配的基本單位D.進(jìn)程具有創(chuàng)建其他進(jìn)程的功能6、在下述關(guān)于父進(jìn)程和子進(jìn)程的敘述中,正確的是(D)。A.父進(jìn)程創(chuàng)建了子進(jìn)程,因此父進(jìn)程執(zhí)行完了,子進(jìn)程才能運(yùn)行B.子進(jìn)程執(zhí)行完了,父進(jìn)程才能運(yùn)行C.撤消子進(jìn)程時(shí),應(yīng)該同時(shí)撤消父進(jìn)程D.一個(gè)子進(jìn)程只有一個(gè)父進(jìn)程,但一個(gè)父進(jìn)程可以有多個(gè)子進(jìn)程7、任何兩個(gè)并發(fā)進(jìn)程之間(D)。A.一定存在互斥關(guān)系B.一定存在同步關(guān)系C.一定彼此獨(dú)立無(wú)關(guān)D.可能存在同步或互斥關(guān)系8、調(diào)度程序每次把CPU分配給就緒隊(duì)列首進(jìn)程使用一個(gè)時(shí)間片,就緒隊(duì)列中的每個(gè)進(jìn)程輪流地運(yùn)行一個(gè)時(shí)間片。當(dāng)這個(gè)時(shí)間片結(jié)束時(shí),強(qiáng)迫一個(gè)進(jìn)程讓出處理器,讓它排列到就緒隊(duì)列的尾部,等候下一輪調(diào)度。這種進(jìn)程調(diào)度方式稱為(D)調(diào)度。A.最高響應(yīng)比優(yōu)先B.先來(lái)先服務(wù)C.短作業(yè)優(yōu)先D.時(shí)間片輪轉(zhuǎn)9、若當(dāng)前進(jìn)程因時(shí)間片用完而讓出處理器時(shí),該進(jìn)程應(yīng)轉(zhuǎn)變?yōu)椋ˋ)狀態(tài)。A.就緒B.等待C.運(yùn)行D.完成10、在一個(gè)單核單處理器的系統(tǒng)中,若有3個(gè)進(jìn)程,且假定當(dāng)前時(shí)刻有一個(gè)進(jìn)程處于運(yùn)行態(tài),則處于就緒態(tài)的進(jìn)程最多有(B)個(gè)。A.1B.2C.3D.411、下列作業(yè)調(diào)度算法中,(D)與作業(yè)的運(yùn)行時(shí)間和等待時(shí)間有關(guān)。A.先來(lái)先服務(wù)算法 B.短作業(yè)優(yōu)先算法C.均衡調(diào)度算法 D.最高響應(yīng)比調(diào)度算法12、一作業(yè)

8:00到達(dá)系統(tǒng),估計(jì)運(yùn)行時(shí)間為1小時(shí),若9:00開(kāi)始執(zhí)行該作業(yè),其響應(yīng)比是(A)。A.2B.1C.3D.0.513、臨界區(qū)是指并發(fā)進(jìn)程中訪問(wèn)共享變量的(D)段。A.管理信息B.信息存儲(chǔ)C.?dāng)?shù)據(jù)D.程序14、設(shè)與某資源關(guān)聯(lián)的信號(hào)量初值為3,當(dāng)前值為-1。若M表示該資源的可用個(gè)數(shù),N表示等待該資源的進(jìn)程數(shù),則M、N分別是(A)。A.0、1 B.1、0C.1、2 D.2、015、設(shè)某個(gè)信號(hào)量S的初值為5。若執(zhí)行某個(gè)V(S)時(shí),發(fā)現(xiàn)(A)時(shí),則喚醒相應(yīng)等待隊(duì)列中等待的一個(gè)進(jìn)程。A.S的值小于或等于0 B.S的值大于或等于5C.S的值小于5D.S的值大于516、以下不屬于產(chǎn)生死鎖原因的是(B)。A.因?yàn)橄到y(tǒng)資源不足B.采用的進(jìn)程調(diào)度算法效率低下C.進(jìn)程運(yùn)行推進(jìn)的順序不合適D.資源分配不當(dāng)17、在多進(jìn)程的并發(fā)系統(tǒng)中,不會(huì)因競(jìng)爭(zhēng)(C)而產(chǎn)生死鎖。A.打印機(jī) B.磁帶機(jī) C.CPU D.磁盤(pán)18、當(dāng)每類資源只有一個(gè)資源實(shí)例時(shí),下列說(shuō)法中不正確的是(C)。A.有環(huán)必死鎖B.死鎖必有環(huán)C.有環(huán)不一定死鎖D.死鎖進(jìn)程一定全在環(huán)中19、有關(guān)死鎖的論述中,(C)是正確的。A.系統(tǒng)中僅有一個(gè)進(jìn)程進(jìn)入了死鎖狀態(tài)B.多個(gè)進(jìn)程由于競(jìng)爭(zhēng)CPU而進(jìn)入死鎖C.多個(gè)進(jìn)程由于競(jìng)爭(zhēng)互斥使用的資源又互不相讓而進(jìn)入死鎖D.由于進(jìn)程調(diào)用V操作而造成死鎖20、進(jìn)程-資源分配圖是用于(D)。A.死鎖的預(yù)防 B.解決死鎖的靜態(tài)方法C.死鎖的避免 D.死鎖的檢測(cè)與解除1.2填空題1、Linux操作系統(tǒng)按照事件來(lái)源和實(shí)現(xiàn)手段將中斷分為(硬中斷)、(軟中斷)。2、系統(tǒng)調(diào)用是通過(guò)(中斷)來(lái)實(shí)現(xiàn)的;發(fā)生系統(tǒng)調(diào)用,處理器的狀態(tài)常從目態(tài)變?yōu)楣軕B(tài)。3、在Linux系統(tǒng)中,創(chuàng)建進(jìn)程的原語(yǔ)是(fork)。4、進(jìn)程的基本三狀態(tài)模型并不足夠描述進(jìn)程的真實(shí)的情況,進(jìn)程的五狀態(tài)模型增加了兩個(gè)狀態(tài),包括(新建狀態(tài))和(終止?fàn)顟B(tài))。5、系統(tǒng)中進(jìn)程存在的唯一標(biāo)志是(進(jìn)程控制塊PCB)。6、進(jìn)程上下文包括了進(jìn)程本身和運(yùn)行環(huán)境,是對(duì)進(jìn)程執(zhí)行活動(dòng)全過(guò)程的靜態(tài)描述。進(jìn)程上下文分成三個(gè)部分:(用戶級(jí)上下文(進(jìn)程的用戶地址空間內(nèi)容))、(寄存器級(jí)上下文(硬件寄存器內(nèi)容))和(系統(tǒng)級(jí)上下文(與該進(jìn)程相關(guān)的核心數(shù)據(jù)結(jié)構(gòu)))。7、進(jìn)程調(diào)度方式通常有(搶占)和(非搶占)兩種方式。8、若信號(hào)量S的初值定義為10,則對(duì)S調(diào)用執(zhí)行了16次P操作和15次V操作后,S的值應(yīng)該為(9)。1.3簡(jiǎn)答題1、請(qǐng)簡(jiǎn)單敘述進(jìn)程三態(tài)模型中的進(jìn)程狀態(tài)轉(zhuǎn)化情況。答:就緒態(tài)→運(yùn)行態(tài):當(dāng)調(diào)度程序選擇一個(gè)新的進(jìn)程運(yùn)行時(shí),進(jìn)程會(huì)由就緒態(tài)切換到運(yùn)行態(tài);運(yùn)行態(tài)→就緒態(tài):當(dāng)運(yùn)行進(jìn)程用完了獲得的時(shí)間片時(shí),進(jìn)程就會(huì)被中斷,由運(yùn)行態(tài)切換到就緒態(tài),或是因?yàn)橐桓邇?yōu)先級(jí)進(jìn)程處于就緒狀態(tài),正在運(yùn)行的低優(yōu)先級(jí)進(jìn)程會(huì)被中斷而由運(yùn)行態(tài)切換到就緒態(tài);運(yùn)行態(tài)→等待態(tài):以下幾種情況會(huì)導(dǎo)致進(jìn)程會(huì)由運(yùn)行態(tài)切換到等待態(tài),例如當(dāng)一進(jìn)程必須等待時(shí),或是操作系統(tǒng)尚未完成服務(wù),進(jìn)程對(duì)一資源的訪問(wèn)尚不能進(jìn)行時(shí),還有初始化I/O且必須等待結(jié)果時(shí),在進(jìn)程間通信時(shí),進(jìn)程等待另一進(jìn)程提供輸入時(shí)等;等待態(tài)→就緒態(tài):當(dāng)進(jìn)程所等待的事件發(fā)生時(shí),例如資源申請(qǐng)獲得滿足時(shí),或是等待的數(shù)據(jù)或信號(hào)到來(lái)時(shí),進(jìn)程就可能由等待態(tài)切換到就緒態(tài)。2、進(jìn)程創(chuàng)建來(lái)源于以下事件:提交一個(gè)批處理作業(yè);在終端上交互式的登錄;操作系統(tǒng)創(chuàng)建一個(gè)服務(wù)進(jìn)程;進(jìn)程孵化新進(jìn)程;等等。請(qǐng)描述進(jìn)程的創(chuàng)建過(guò)程。答:①系統(tǒng)在進(jìn)程表中增加一項(xiàng),并從PCB池中取一個(gè)空白PCB;②為新進(jìn)程的進(jìn)程映像分配地址空間。傳遞環(huán)境變量,構(gòu)造共享地址空間;③為新進(jìn)程分配資源,除內(nèi)存空間外,還有其他各種資源;④查找輔存,找到進(jìn)程正文段并裝到正文區(qū);⑤初始化進(jìn)程控制塊,為新進(jìn)程分配進(jìn)程標(biāo)識(shí)符,初始化PSW;⑥加入就緒進(jìn)程隊(duì)列,將進(jìn)程投入運(yùn)行;⑦通知操作系統(tǒng)的某些模塊,如記賬程序、性能監(jiān)控程序。3、請(qǐng)簡(jiǎn)述時(shí)間片輪轉(zhuǎn)調(diào)度算法的工作流程和確定時(shí)間片大小需要考慮的因素。答:1、時(shí)間片輪轉(zhuǎn)調(diào)度算法的工作流程:系統(tǒng)將所有的就緒進(jìn)程按先來(lái)先服務(wù)的原則排成一個(gè)隊(duì)列,每次調(diào)度時(shí)把CPU分配給隊(duì)首進(jìn)程,并令其執(zhí)行一個(gè)時(shí)間片。當(dāng)執(zhí)行的時(shí)間片用完時(shí),由系統(tǒng)中的定時(shí)器發(fā)出時(shí)鐘中斷請(qǐng)求,調(diào)度程序停止該進(jìn)程的執(zhí)行,并將它送到就緒隊(duì)列的末尾,等待下一次執(zhí)行。進(jìn)行進(jìn)程切換,把處理器分配給就緒隊(duì)列中新的隊(duì)首進(jìn)程。2、時(shí)間片大小的確定要從進(jìn)程個(gè)數(shù)、切換開(kāi)銷、系統(tǒng)效率和響應(yīng)時(shí)間等方面考慮:時(shí)間片取值太小,多數(shù)進(jìn)程不能在一個(gè)時(shí)間片內(nèi)運(yùn)行完畢,切換就會(huì)頻繁,開(kāi)銷顯著增大,從系統(tǒng)效率來(lái)看,時(shí)間片取大一點(diǎn)好。時(shí)間片取值太大,隨著就緒隊(duì)列里進(jìn)程數(shù)目增加,輪轉(zhuǎn)一次的總時(shí)間增大,對(duì)進(jìn)程的響應(yīng)速度放慢了。為滿足響應(yīng)時(shí)間要求,要么限制就緒隊(duì)列中進(jìn)程數(shù)量,要么采用動(dòng)態(tài)時(shí)間片法,根據(jù)負(fù)載狀況及時(shí)調(diào)整時(shí)間片的大小。4、有兩個(gè)優(yōu)先級(jí)相同的并發(fā)運(yùn)行的進(jìn)程P1和P2,各自執(zhí)行的操作如下,信號(hào)量S1和S2初值均為0,x、y和z的初值為0。CobeginP1:beginy:=0;y:=y+4;V(S1);z:=y+3;P(S2);y:=z+yendP2:beginx:=2;x:=x+6;P(S1);x:=x+y;V(S2);z:=z+x;endCoend試問(wèn)P1、P2并發(fā)執(zhí)行后,x、y、z的值有幾種可能,各為多少?答:1:x=12,y=11,z=19。2:x=12,y=23,z=19。3:x=12,y=11,z=7。5、為什么說(shuō)最高響應(yīng)比優(yōu)先作業(yè)調(diào)度算法是對(duì)先來(lái)先服務(wù)以及短作業(yè)優(yōu)先這兩種調(diào)度算法的折中?答:先來(lái)先服務(wù)的作業(yè)調(diào)度算法,重點(diǎn)考慮的是作業(yè)在后備作業(yè)隊(duì)列里的等待時(shí)間,因此對(duì)短作業(yè)不利;短作業(yè)優(yōu)先的調(diào)度算法,重點(diǎn)考慮的是作業(yè)所需的CPU時(shí)間,因此對(duì)長(zhǎng)作業(yè)不利。最高響應(yīng)比優(yōu)先作業(yè)調(diào)度算法,總是在需要調(diào)度時(shí),考慮作業(yè)已經(jīng)等待的時(shí)間和所需運(yùn)行時(shí)間之比,即:1+(作業(yè)已等待時(shí)間/作業(yè)所需CPU時(shí)間)比值的分母是一個(gè)不變的量。隨著時(shí)間的推移,一個(gè)作業(yè)的“已等待時(shí)間”會(huì)不斷發(fā)生變化,也就是分子在不斷地變化。顯然,短作業(yè)比較容易獲得較高的響應(yīng)比。這是因?yàn)樗姆帜篙^小,只要稍加等待,整個(gè)比值就會(huì)很快上升。另一方面,長(zhǎng)作業(yè)的分母雖然很大,但隨著它等待時(shí)間的增加,比值也會(huì)逐漸上升,從而獲得較高的響應(yīng)比??梢?jiàn)最高響應(yīng)比優(yōu)先作業(yè)調(diào)度算法,既照顧到了短作業(yè)的利益,也照顧到了長(zhǎng)作業(yè)的利益,是對(duì)先來(lái)先服務(wù)以及短作業(yè)優(yōu)先這兩種調(diào)度算法的一種折中。6、請(qǐng)對(duì)比操作系統(tǒng)中“死鎖”和“饑餓”問(wèn)題。答:死鎖是因進(jìn)程競(jìng)爭(zhēng)資源,但系統(tǒng)擁有資源的數(shù)量有限,或并發(fā)進(jìn)程推進(jìn)的順序不當(dāng)而造成的一種永遠(yuǎn)等待資源的僵局。饑餓是指每個(gè)資源占用者都在有限時(shí)間內(nèi)釋放占用的資源,但申請(qǐng)進(jìn)程仍然長(zhǎng)時(shí)間得不到資源的現(xiàn)象,常常是策略不公平的體現(xiàn)。7、一個(gè)計(jì)算機(jī)有6臺(tái)設(shè)備X,有n個(gè)進(jìn)程競(jìng)爭(zhēng)使用,每個(gè)進(jìn)程最多需要兩臺(tái)。n最多為多少時(shí),系統(tǒng)不存在死鎖的危險(xiǎn)?答:由于每個(gè)進(jìn)程最多需要兩臺(tái)設(shè)備X,考慮極端情況:每個(gè)進(jìn)程已經(jīng)都申請(qǐng)了一臺(tái)。那么只要還有一臺(tái)空閑,就可以保證所有進(jìn)程都可以完成。也就是說(shuō)當(dāng)有條件:n+1=6(即n=5)時(shí),系統(tǒng)就不存在死鎖的危險(xiǎn)。8、3個(gè)進(jìn)程P1、P2和P3并發(fā)工作。進(jìn)程P1需用資源S3和S1;進(jìn)程P2需用資源S1和S2;進(jìn)程P3需用資源S2和S3。(1)若對(duì)資源分配不加限制,會(huì)發(fā)生死鎖情況,請(qǐng)畫(huà)出發(fā)生死鎖時(shí),3個(gè)進(jìn)程和3個(gè)資源之間的進(jìn)程資源分配圖。(2)為保證進(jìn)程正確工作,應(yīng)采用怎樣的資源分配策略。答:(1)不加限制會(huì)出現(xiàn)死鎖情況:(2)可以采用的方法有多種,下面是幾種可行的方法:分配資源時(shí),一次性分配該進(jìn)程運(yùn)行過(guò)程中所需的所有資源。破壞了死鎖的必要條件之一“請(qǐng)求和保持條件”。申請(qǐng)資源時(shí),如果不能立即獲得新的資源,則釋放已經(jīng)獲得的資源。破壞死鎖的必要條件之一“不可剝奪條件”。對(duì)所有的資源進(jìn)行編號(hào),每個(gè)進(jìn)程在申請(qǐng)資源時(shí),嚴(yán)格按照資源編號(hào)遞增的次序申請(qǐng)資源。這種方法是破壞了死鎖的必要條件之一“環(huán)路等待條件”。1.4解答題1、某系統(tǒng)有三個(gè)作業(yè):作業(yè)到達(dá)時(shí)間所需CPU時(shí)間18.81.529.00.439.51.0系統(tǒng)確定在它們?nèi)康竭_(dá)后,開(kāi)始采用響應(yīng)比高者優(yōu)先調(diào)度算法,并忽略系統(tǒng)調(diào)度時(shí)間。試問(wèn)對(duì)它們的調(diào)度順序是什么?各自的周轉(zhuǎn)時(shí)間是多少?請(qǐng)寫(xiě)出計(jì)算過(guò)程,并填寫(xiě)下面表格。答:三個(gè)作業(yè)是在9.5時(shí)全部到達(dá)的。這時(shí)它們各自的響應(yīng)比如下:作業(yè)1的響應(yīng)比

=(9.5

8.8)/

1.5

=

0.46作業(yè)2的響應(yīng)比

=(9.5

9.0)/

0.4

=

1.25作業(yè)3的響應(yīng)比

=(9.5

9.5)/

1.0

=

0因此,最先應(yīng)該調(diào)度作業(yè)2運(yùn)行,因?yàn)樗捻憫?yīng)比最高。它運(yùn)行了0.4后完成,這時(shí)的時(shí)間是9.9。再計(jì)算作業(yè)1和3此時(shí)的響應(yīng)比:作業(yè)1的響應(yīng)比

=(9.9

8.8)/

1.5

=

0.73作業(yè)3的響應(yīng)比

=(9.9

9.5)/

1.0

=

0.40因此,第二個(gè)應(yīng)該調(diào)度作業(yè)1運(yùn)行,因?yàn)樗捻憫?yīng)比最高。它運(yùn)行了1.5后完成,這時(shí)的時(shí)間是11.4。第三個(gè)調(diào)度的是作業(yè)3,它運(yùn)行了1.0后完成,這時(shí)的時(shí)間是12.4。整個(gè)實(shí)施過(guò)程如下。作業(yè)到達(dá)時(shí)間所需CPU時(shí)間開(kāi)始時(shí)間完成時(shí)間周轉(zhuǎn)時(shí)間18.81.59.911.42.629.00.49.59.90.939.51.011.412.42.9作業(yè)的調(diào)度順序是2→1→3。各自的周轉(zhuǎn)時(shí)間為:作業(yè)1為0.9;作業(yè)2為2.6;作業(yè)3為2.9。2、有一個(gè)具有兩道作業(yè)的批處理系統(tǒng),作業(yè)調(diào)度采用短作業(yè)優(yōu)先的非搶式調(diào)度算法,進(jìn)程調(diào)度采用以優(yōu)先數(shù)為基礎(chǔ)的搶占式調(diào)度算法,在下表所示的作業(yè)序列中,作業(yè)優(yōu)先數(shù)即為進(jìn)程優(yōu)先數(shù),優(yōu)先數(shù)越小優(yōu)先級(jí)越高。作業(yè)到達(dá)時(shí)間所需CPU時(shí)間優(yōu)先數(shù)A10:0040分鐘5B10:2030分鐘3C10:3050分鐘4D10:5020分鐘6列出所有作業(yè)進(jìn)入內(nèi)存時(shí)間及結(jié)束時(shí)間,并計(jì)算平均作業(yè)周轉(zhuǎn)時(shí)間。答:(1)每個(gè)作業(yè)運(yùn)行將經(jīng)過(guò)兩個(gè)階段:作業(yè)調(diào)度(SJF算法)和進(jìn)程調(diào)度(優(yōu)先數(shù)搶占式)。另外,批處理最多容納2道作業(yè),更多的作業(yè)將在后備隊(duì)列等待。10:00,作業(yè)A到達(dá)并投入運(yùn)行。10:20,作業(yè)B到達(dá)且優(yōu)先權(quán)高于作業(yè)A,故作業(yè)B投入運(yùn)行而作業(yè)A在就緒隊(duì)列等待。10:30,作業(yè)C到達(dá),因內(nèi)存中已有兩道作業(yè),故作業(yè)C進(jìn)入作業(yè)后備隊(duì)列等待。10:50,作業(yè)B運(yùn)行結(jié)束,作業(yè)D到達(dá),按短作業(yè)優(yōu)先算法,作業(yè)D被裝入內(nèi)存進(jìn)入就緒隊(duì)列。而由于作業(yè)A的優(yōu)先級(jí)高于作業(yè)D,故作業(yè)A投入運(yùn)行。11:10,作業(yè)A運(yùn)行結(jié)束,作業(yè)C被調(diào)入內(nèi)存,且作業(yè)C的優(yōu)先級(jí)高于作業(yè)D,故作業(yè)C投入運(yùn)行。12:00,作業(yè)C運(yùn)行結(jié)束,作業(yè)D投入運(yùn)行。12:20,作業(yè)D運(yùn)行結(jié)束。各作業(yè)周轉(zhuǎn)時(shí)間為:作業(yè)A70,作業(yè)B30,作業(yè)C90,作業(yè)D90。(2)平均作業(yè)周轉(zhuǎn)時(shí)間為70分鐘。作業(yè)進(jìn)入內(nèi)存時(shí)間運(yùn)行結(jié)束時(shí)間作業(yè)周轉(zhuǎn)時(shí)間平均作業(yè)周轉(zhuǎn)時(shí)間A10:0011:107070B10:2010:5030C11:1012:0090D10:5012:20903、有一個(gè)垃圾分揀機(jī)器人系統(tǒng),擁有兩個(gè)機(jī)器手臂,可分別自動(dòng)在垃圾箱里面分揀可回收易拉罐和塑料瓶。設(shè)分揀系統(tǒng)有二個(gè)進(jìn)程P1和P2,其中P1驅(qū)動(dòng)左臂揀易拉罐;P2驅(qū)動(dòng)右臂揀塑料瓶。規(guī)定每個(gè)手臂每次只能揀一個(gè)物品;當(dāng)一個(gè)手臂在揀時(shí),不允許另一個(gè)手臂去揀;當(dāng)一個(gè)手臂揀了一個(gè)物品后,必須讓另一個(gè)手臂去揀。試用信號(hào)量和P、V操作實(shí)現(xiàn)兩進(jìn)程P1和P2能并發(fā)正確執(zhí)行的程序。答:實(shí)質(zhì)上是兩個(gè)進(jìn)程的同步問(wèn)題,設(shè)信號(hào)量S1和S2分別表示可揀易拉罐和塑料瓶,不失一般性,若令先揀易拉罐。varS1,S2:semaphore;S1:=1;S2:=0;cobegin{processP1beginrepeatP(S1);揀易拉罐V(S2);untilfalse;endprocessP2beginrepeatP(S2);揀塑料瓶V(S1);untilfalse;end}coend.4.桌上有一只空盤(pán)子,允許存放一只水果。爸爸可向盤(pán)中放蘋(píng)果和桔子,兒子專等著取盤(pán)中的桔子然后吃掉,女兒專等著取盤(pán)中的蘋(píng)果然后吃掉。規(guī)定盤(pán)子一次只能放一只水果,盤(pán)子中水果沒(méi)有被取走時(shí),爸爸不可放新水果;盤(pán)子中沒(méi)有水果時(shí),女兒和兒子來(lái)取水果時(shí)將需等待。請(qǐng)用信號(hào)量和P、V原語(yǔ)實(shí)現(xiàn)爸爸、兒子、女兒3個(gè)并發(fā)進(jìn)程的同步。答:設(shè)置3個(gè)信號(hào)量:intS=1;//盤(pán)子是否為空,開(kāi)始為空intSa=0;//盤(pán)子是否有蘋(píng)果intSb=0;//盤(pán)子是否有桔子CobeginFather(){While(1){ P(S); 水果放入盤(pán)中;If(放入的是桔子)V(Sb);ElseV(Sa);}Son(){ While(1) { P(Sb); 從盤(pán)中取出桔子; V(S); 吃桔子; }}Daughter(){ While(1) { P(Sa); 從盤(pán)中取出蘋(píng)果; V(S); 吃蘋(píng)果; }}Coend5、內(nèi)存中有一組緩沖區(qū)被多個(gè)生產(chǎn)者進(jìn)程、多個(gè)消費(fèi)者進(jìn)程共享使用,總共能存放10個(gè)數(shù)據(jù),生產(chǎn)者進(jìn)程把生成的數(shù)據(jù)放入緩沖區(qū),消費(fèi)者進(jìn)程從緩沖區(qū)中取出數(shù)據(jù)使用。緩沖區(qū)滿時(shí)生產(chǎn)者進(jìn)程就停止將數(shù)據(jù)放入緩沖區(qū),緩沖區(qū)空時(shí)消費(fèi)者進(jìn)程停止取數(shù)據(jù)。數(shù)據(jù)的存入和取出不能同時(shí)進(jìn)行,試用信號(hào)量及P、V操作來(lái)實(shí)現(xiàn)該方案。答:semaphoremutex,empty,full;mutex=1; //互斥信號(hào)量empty=10; //生產(chǎn)者進(jìn)程的同步信號(hào)量full=0; //消費(fèi)者進(jìn)程的同步信號(hào)量 cobeginprocessPi//生產(chǎn)者進(jìn)程{while(1){生產(chǎn)數(shù)據(jù)x;P(empty) //看看是否還有空間可放P(mutex); //互斥使用放入;V(full); ///增1(可能喚醒一個(gè)消費(fèi)者)V(mutex); }}processCj//消費(fèi)者進(jìn)程{while(1){P(full) //看看是否有數(shù)據(jù)P(mutex); //互斥使用取出;V(emtpy); //增1(可能喚醒一個(gè)生產(chǎn)者)V(mutex); }}coend6、假定系統(tǒng)有三個(gè)并發(fā)進(jìn)程read,move和print共享緩沖器B1和B2。進(jìn)程read負(fù)責(zé)從輸入設(shè)備上讀信息,每讀出一個(gè)記錄后把它存放到緩沖器B1中。進(jìn)程move從緩沖器B1中取出一記錄,加工后存入緩沖器B2。進(jìn)程print將B2中的記錄取出打印輸出。緩沖器B1和B2每次只能存放一個(gè)記錄。要求三個(gè)進(jìn)程協(xié)調(diào)完成任務(wù),使打印出來(lái)的與讀入的記錄的個(gè)數(shù),次序完全一樣。請(qǐng)用信號(hào)量和P、V操作,寫(xiě)出它們的并發(fā)程序。答:beginSR,SM1,SM2,SP:semaphore;B1,B2:record;SR:=1;SM1:=0;SM2:=1;SP:=0cobeginprocessreadX:record;beginR:(接收來(lái)自輸入設(shè)備上一個(gè)記錄)X:=接收的一個(gè)記錄;P(SR);B1:=X;V(SM1);gotoR;end;ProcessmoveY:record;beginM:P(SM1);Y:=B1;V(SR)加工YP(SM2);B2:=Y;V(SP);gotoM;end;ProcessprintZ:record;beginP:P(SP);Z:=B2;V(SM2)打印ZgotoP;end;coend;end;7、用銀行家算法避免系統(tǒng)死鎖:進(jìn)程已占有資源數(shù)最大需求數(shù)ABCDABCDP130114111P201000212P311104210P411011111P500002110當(dāng)前系統(tǒng)資源總量為A類6個(gè)、B類3個(gè)、C類個(gè)4、D類2個(gè)。(1)系統(tǒng)是否安全?請(qǐng)分析說(shuō)明理由。(2)若進(jìn)程B請(qǐng)求(0,0,1,0),可否立即分配?請(qǐng)分析說(shuō)明理由。答:(1)由已知條件可得Need和Avaiable矩陣如下:進(jìn)程分配矩陣尚需矩陣(Need)可用資源數(shù)向量(Avaiable)P1301111001020P201000112P311103100P411010010P500002110利用銀行家算法對(duì)此時(shí)刻的資源分配情況進(jìn)行分析如下表:進(jìn)程WorkNeedAllocationWork+AllocationFinishP41020001011012121trueP12121110030115132trueP25132011201005232trueP35232310011106342trueP56342211000006342true從上述分析可知,存在一個(gè)安全序列D,A,B,C,E,(答案不唯一),故當(dāng)前系統(tǒng)是否安全的。 (2)若進(jìn)程B請(qǐng)求(0,0,1,0),試分配并修改相應(yīng)的數(shù)據(jù)結(jié)構(gòu),則系統(tǒng)狀態(tài)變?yōu)椋哼M(jìn)程分配矩陣尚需矩陣(Need)可用資源數(shù)向量(Avaiable)P1301111001010P201100102P311103100P411010010P500002110利用銀行家算法對(duì)此時(shí)刻的資源分配情況進(jìn)行分析如下表:進(jìn)程WorkNeedAllocationWork+AllocationFinishP41010001011012111trueP12111110030115122trueP25122010201105232trueP35232310011106342trueP56342211000006342true從上述分析可知,存在安全序列D,A,B,C,E,(答案不唯一)故系統(tǒng)仍是否安全的,因此可

溫馨提示

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