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