《操作系統(tǒng)習(xí)題》由會(huì)員分享,可在線閱讀,更多相關(guān)《操作系統(tǒng)習(xí)題(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,習(xí)題,1,、有兩個(gè)優(yōu)先級(jí)相同的進(jìn)程,P1,和,P2,,各自執(zhí)行的操作如下,信號(hào)量,S1,和,S2,初值均為,0,。試問(wèn),P1,、,P2,并發(fā)執(zhí)行后,,x,、,y,、,z,的值各為多少?,P1,:,P2,:,begin,begin,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:=,z+x,;,end.end.,現(xiàn)對(duì)進(jìn)程語(yǔ)句進(jìn)行編號(hào),以方便描述。,P1,:,P2,:,begin,begin,y:=1;
2、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:=,z+x,;,end.end.,、和是不相交語(yǔ)句,可以任何次序交錯(cuò)執(zhí)行,而結(jié)果是唯一的。接著無(wú)論系統(tǒng)如何調(diào)度進(jìn)程并發(fā)執(zhí)行,當(dāng)執(zhí)行到語(yǔ)句時(shí),可以得到,x=5,,,y=3,。按,Bernstein,條件,語(yǔ)句的執(zhí)行結(jié)果不受語(yǔ)句的影響,故語(yǔ)句執(zhí)行后得到,z=4,。最后,語(yǔ)句和并發(fā)執(zhí)行,最后結(jié)果為:,語(yǔ)句先執(zhí)行,再執(zhí)行:,x=5,,,y=7,,,z=9,。,語(yǔ)句先執(zhí)行,再執(zhí)行:,x=5,,,y=12,,,z=9,。,2,、在,UNIX,系統(tǒng)中運(yùn)行以下程序
3、,最多可產(chǎn)生出多少進(jìn)程,?,畫(huà)出進(jìn)程家屬樹(shù)。,main(),fork();/*pc(,程序計(jì)數(shù)器,),,進(jìn)程,A,fork();,fork();,解:首先采用,fork(),創(chuàng)建的子進(jìn)程,其程序是復(fù)制父進(jìn)程的;其次,父、子進(jìn)程都從調(diào)用后的那條語(yǔ)句開(kāi)始執(zhí)行。,當(dāng)進(jìn)程,A,執(zhí)行后,派生出子進(jìn)程,B,,,當(dāng)進(jìn)程,A,、,B,執(zhí)行后,各派生出子進(jìn)程,C,、,D,,,當(dāng)進(jìn)程,A,、,B,、,C,、,D,執(zhí)行后,各派生出子進(jìn)程,E,、,F,、,G,、,H,。這時(shí)進(jìn)程,A,共派生出,7,個(gè)子進(jìn)程。,A,B,C,E,D,F,G,H,3,、有一個(gè)倉(cāng)庫(kù),可以存放,A,和,B,兩種產(chǎn)品,但要求:,(,1,)每次只能
4、存入一種產(chǎn)品(,A,或,B,);,(,2,),N,A,產(chǎn)品數(shù)量,-B,產(chǎn)品數(shù)量,M,。,其中,,N,和,M,是正整數(shù)。試用,P,、,V,操作描述產(chǎn)品,A,與產(chǎn)品,B,的入庫(kù)過(guò)程。,分析,本題給出的第一個(gè)條件是臨界資源的訪問(wèn)控制,可用一個(gè)互斥信號(hào)量解決該問(wèn)題。第二個(gè)條件可以分解為:,N,A,產(chǎn)品數(shù)量,B,產(chǎn)品數(shù)量,A,產(chǎn)品數(shù)量,B,產(chǎn)品數(shù)量,M,也就是說(shuō),,A,產(chǎn)品的數(shù)量不能比,B,產(chǎn)品的數(shù)量少,N,個(gè)以上,,A,產(chǎn)品的數(shù)量不能比,B,產(chǎn)品的數(shù)量多,M,個(gè)以上。,解:在本題中,可以設(shè)置兩個(gè)信號(hào)量來(lái)控制,A,、,B,產(chǎn)品的存放數(shù)量,,sa,表示當(dāng)前允許,A,產(chǎn)品比,B,產(chǎn)品多入庫(kù)的數(shù)量,即在當(dāng)前庫(kù)
5、存量和,B,產(chǎn)品不入庫(kù)的情況下,還可以允許,sa,個(gè),A,產(chǎn)品入庫(kù);,sb,表示當(dāng)前允許,B,產(chǎn)品比,A,產(chǎn)品多入庫(kù)的數(shù)量,即在當(dāng)前庫(kù)存量和,A,產(chǎn)品不入庫(kù)的情況下,還可以允許,sb,個(gè),B,產(chǎn)品入庫(kù)。,初始時(shí),,sa,為,M,1,,,sb,為,N,1,。當(dāng)往庫(kù)中存放入一個(gè),A,產(chǎn)品時(shí),則允許存入,B,產(chǎn)品的數(shù)量也增加,1,;當(dāng)往庫(kù)中存放入一個(gè),B,產(chǎn)品時(shí),則允許存入,A,產(chǎn)品的數(shù)量也增加,1,。,var,mutex,:,semaphore=1;/*,互斥信號(hào)量*,/,sa,,,sb,:,semaphore,;,sa,=M-1;,sb,=N-1;,mian,(),while(1),取一個(gè)產(chǎn)品;
6、,if(,取的是,A,產(chǎn)品,),P(sa,);,P(mutex,);,將,A,產(chǎn)品入庫(kù);,V(mutex,);,V(sb,);,else /*,取的產(chǎn)品是,B*/,P(sb,);,P(mutex,);,將,B,產(chǎn)品入庫(kù);,V(mutex,);,V(sa,);,4,、公路上有一座橋,該橋一次只允許一輛汽車在橋上行駛。當(dāng)橋上有汽車時(shí),其它汽車不能上橋。試問(wèn):,這是一個(gè)同步問(wèn)題還是互斥問(wèn)題?,用信號(hào)量和,P,、,V,操作描述并發(fā)過(guò)程的活動(dòng)。,(,1,)這一問(wèn)題是互斥問(wèn)題。橋是汽車進(jìn)程互斥使用的資源。,(,2,)每了輛汽車對(duì)應(yīng)一個(gè)進(jìn)程,進(jìn)程數(shù)量不確定。用,Pi,(,i=0,1,2,)表示汽車進(jìn)程;設(shè)互
7、斥信號(hào)量,s,,其初值為”,1”,。,汽車進(jìn)程,Pi,的過(guò)程可描述如下:,汽車進(jìn)程,Pi,(,i=1,,,2,3,),P(S),汽車上橋,在橋上行駛,汽車下橋,V(S),5,、有一閱覽室,讀者進(jìn)入時(shí)必須先在一張登記表上進(jìn)行登記,該表為每一個(gè)座位列出一個(gè)表目,包括座位號(hào)、姓名,讀者離開(kāi)時(shí)要撤消登記信息。閱覽室有,180,個(gè)座位,試問(wèn):,為描述讀者的動(dòng)作,應(yīng)編寫(xiě)幾個(gè)程序?應(yīng)設(shè)置幾個(gè)進(jìn)程?進(jìn)程和程序之間的對(duì)應(yīng)關(guān)系如何?,試用,P,、,V,操作描述這些進(jìn)程間的同步關(guān)系。,解:(,1,)每個(gè)讀者都可視為一個(gè)進(jìn)程,有多少個(gè)讀者就有多少個(gè)進(jìn)程,這些進(jìn)程稱為讀者進(jìn)程,設(shè)為,Pi(I,=0,1,2,),。讀者進(jìn)
8、程,Pi,執(zhí)行的程序包括:登記、閱覽、撤消。每個(gè)讀者的活動(dòng)都相同,所以其程序也相同。進(jìn)程與程序之間的關(guān)系是:各讀者進(jìn)程共享同一個(gè)程序。,(,2,)在讀者進(jìn)程執(zhí)行的程序中,對(duì)登記與撤消都需要互斥執(zhí)行,其信號(hào)量,S1,的初值為,1,;而對(duì)進(jìn)入閱覽室需互斥執(zhí)行,信號(hào)量,s2,的初值為,180,。,讀者進(jìn)程,Pi,P(S2),P(S1),登記,V(S1),閱覽,P(S1),撤消,V(S1),V(S2),6,、在單,CPU,和兩臺(tái),I/O(I1,I2),設(shè)備的多道程序設(shè)計(jì)環(huán)境下,同時(shí)投入三個(gè)作業(yè)運(yùn)行。它們的執(zhí)行軌跡如下:,Job1,:,I2(30ms),、,CPU(10ms),、,I1(30ms),、,
9、CPU(10ms),Job2,:,I1(20ms),、,CPU(20ms),、,I2(40ms),Job3,:,CPU(30ms),、,I1(20ms),如果,CPU,、,I1,和,I2,都能并行工作,優(yōu)先級(jí)從高到低為,Job1,、,Job2,和,Job3,,優(yōu)先級(jí)高的作業(yè),可以搶占優(yōu)先級(jí)低的作業(yè)的,CPU,,但不搶占,I1,和,I2,。試求:,(1),每個(gè)作業(yè)從投入到完成分別所需的時(shí)間。,(2),從投入到完成,CPU,的利用率。,(3)I/O,設(shè)備利用率。,答:畫(huà)出三個(gè)作業(yè)并行工作圖如下,(,圖中著色部分為作業(yè)等待時(shí)間,),:,CPU,I1,I2,Job1,Job2,Job3,時(shí)間,(ms)
10、,CPU,CPU,0 10 20 30 40 50 60 70 80 90,I1,I1,CPU,CPU,I2,I2,CPU,I1,CPU,Job1,Job2,Job3,Job2,Job1,Job2,Job3,Job1,Job2,Job1,Job3,Job1,從投入到運(yùn)行完成需,80ms,,,Job2,從投入到運(yùn)行完成需,90ms,,,Job3,從投入到運(yùn)行完成需,90ms,。,CPU,使用時(shí)間為,10+10+10+10+20+10=70,。所以,CPU,利用率為,70/90=77.8%,。,設(shè)備,I1,空閑時(shí)間段為:,20ms,至,40ms,,故,I1,的利用率為,70/90=77.8%,。設(shè)備,I2,空閑時(shí)間段為:,30ms,至,50ms,,故,I2,的利用率為,70/90=77.8%,。,