




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)課后習(xí)題1-9答案
練習(xí)1
1.i-i.10題解見(jiàn)書(shū)
1.11有一臺(tái)輸入設(shè)備和一臺(tái)輸出設(shè)備的計(jì)算機(jī)系統(tǒng)上,運(yùn)行有兩道程序。兩道程序投
入運(yùn)行情況如下:
程序1先開(kāi)始運(yùn)行,其運(yùn)行軌跡為:計(jì)算50ms、輸出100ms,計(jì)算50ms、輸出100ms,
結(jié)束;
程序2后開(kāi)始運(yùn)行,其運(yùn)行軌跡為:計(jì)算50ms、輸入100ms、計(jì)算100ms、結(jié)束。
1.忽略調(diào)度時(shí)間,指出兩道程序運(yùn)行時(shí),CPU是否有空閑?在哪部分空閑?指出程序1
和程序
2.有無(wú)等待CPU的情況?如果有,發(fā)生在哪部分?
題解:
由題畫(huà)出CPU利用圖如下:
由圖可知,1.CPU有空閑,在100ms-l50nls時(shí)間段是空閑的。
2.程序1無(wú)等待時(shí)間,而程序2在一開(kāi)始的0ms~50ms時(shí)間段會(huì)等待。
1.12在計(jì)算機(jī)系統(tǒng)上.運(yùn)行三道程序,運(yùn)行次序?yàn)槌绦?、程序2、程序3。程序1的運(yùn)
行軌跡為:計(jì)算20ms、輸入40ms、計(jì)算10ms。
程序2的運(yùn)行軌跡為:計(jì)算40ms、輸入30ms、計(jì)算10ms。
程序3的運(yùn)行軌跡為:計(jì)算60ms、輸入30ms、計(jì)算20ms。
忽略調(diào)度時(shí)間,畫(huà)出三道程序運(yùn)行的時(shí)間關(guān)系圖;完成三道程序共花多少時(shí)間?與單道
程序比較,節(jié)省了多少時(shí)間?
解答:三道程序運(yùn)行,完成三道程序共花170ms。與單道程序(260ms)比較,節(jié)省了
90mso
(始終按照1-2-3的次序,即程序1一程序2-程序3f程序1-程序2f(在程序3運(yùn)
行前會(huì)停10ms等待輸入完成)程序3o
(如果不是按照程序1、2、3的次序完成則會(huì)有多種情況。)
1.13在計(jì)算機(jī)系統(tǒng)上有兩臺(tái)輸入/輸出設(shè)備,運(yùn)行兩道程序。
程序1的運(yùn)行軌跡為:計(jì)算10ms、輸入5ms、計(jì)算5ms、輸出10ms、計(jì)算10ms。
程序2的運(yùn)行軌跡為:輸入10ms、計(jì)算10ms、輸出5ms、計(jì)算5ms、輸出10ms。
在順序環(huán)境下,先執(zhí)行程序1,再執(zhí)行程序2,求總的CPU利用率為多少?
CPU利用率=40ms/80ms*100%=50%
1.14一個(gè)計(jì)算機(jī)系統(tǒng)有足夠的內(nèi)存空間存放3道程序,這些程序有一半的時(shí)間在空閑
等待I/O操作。問(wèn)多大比例的CPU時(shí)間被浪費(fèi)掉了。
題解:由題畫(huà)圖如下:
程序1
程序2
程序3
------------------------------------------------------------------------>t
01/21/41/8--------1
因?yàn)槊總€(gè)程序有一半的時(shí)間在等待I/O操作,所以在并發(fā)狀態(tài)下,程序1、程序
2、程序3所占時(shí)間比依次減半(如上圖),所以浪費(fèi)的時(shí)間比例為1/8。
練習(xí)2
2.18某系統(tǒng)中進(jìn)程狀態(tài)變化如圖2.22所示,當(dāng)對(duì)系統(tǒng)中的進(jìn)程進(jìn)行觀察時(shí),發(fā)現(xiàn)某
一進(jìn)程產(chǎn)生的?次狀態(tài)變化會(huì)引起另一進(jìn)程發(fā)生狀態(tài)變化。
(1)在什么情況下,一個(gè)進(jìn)程的狀態(tài)變化3能夠立即引起另一進(jìn)程的狀態(tài)變化1?
(2)在什么情況下,一個(gè)進(jìn)程的狀態(tài)變化2能夠立即引起另一進(jìn)程的狀態(tài)變化1?
(3)進(jìn)程的狀態(tài)變化3是否可能引起另一進(jìn)程的狀態(tài)變化2?進(jìn)程的狀態(tài)變化3是否可
能引起另一進(jìn)程的狀態(tài)變化1?
解答:
(1)當(dāng)就緒隊(duì)列中還存在其它進(jìn)程的情況下,一個(gè)進(jìn)程的狀態(tài)變化3能夠立即引起另
一進(jìn)程的狀態(tài)變化2。
(2)當(dāng)就緒隊(duì)列中還存在其它進(jìn)程的情況下,一個(gè)進(jìn)程從運(yùn)行狀態(tài)變化到就緒狀態(tài)
后,另一個(gè)就緒進(jìn)程能夠從就緒狀態(tài)變?yōu)檫\(yùn)行狀態(tài)。
(3)不可能,可能。
2.19分別寫(xiě)出相應(yīng)的程序來(lái)描述圖2.23中的前趨圖。
解答
程序:SI:a:=x+lS2:b:=a+2S3:c:=a+3S4:d:=b+4S5:e:=b+cS6:f:=e+5S7:g=e+6
程序:SI:a:=x+lS2:b:=a+2S3:c:=a+3S4:d:=b+4S5:e:=b+cS6:f:=d+eS7:g:=c+e
2.20假設(shè)在一個(gè)系統(tǒng)中,新進(jìn)程以每分鐘8個(gè)進(jìn)程的速率到達(dá),每個(gè)進(jìn)程請(qǐng)
S4
求服務(wù)的平均時(shí)間為6s,估計(jì)在一個(gè)單處理器系統(tǒng)中CPU忙的時(shí)間比率。如果新進(jìn)程
以每分鐘10個(gè)進(jìn)程的速率到達(dá),每個(gè)進(jìn)程請(qǐng)求服務(wù)的平均時(shí)間也為6s,估計(jì)在一個(gè)單處
理器系統(tǒng)中CPU忙的時(shí)間比率。
如果新進(jìn)程創(chuàng)建以每分鐘超過(guò)10個(gè)進(jìn)程的速率到達(dá),每個(gè)進(jìn)程請(qǐng)求服務(wù)的平均時(shí)間為
6s,估計(jì)在一個(gè)單處理器系統(tǒng)中CPU忙得時(shí)間比率,并解釋此時(shí)的情況。
解答:
因?yàn)樾逻M(jìn)程每分鐘8個(gè)進(jìn)程的速率到達(dá),每個(gè)進(jìn)程之間達(dá)到的時(shí)間間隔為
7.5s。由于每個(gè)進(jìn)程占用6s的CPU時(shí)間。所以,1分鐘之內(nèi)CPU的空間時(shí)間為
8*1.5s=12soCPU的利用率為48/60=0.8,即805。
因?yàn)樾逻M(jìn)程每分鐘10個(gè)進(jìn)程的速率到達(dá),每個(gè)進(jìn)程之間達(dá)到的時(shí)間間隔為6s。由于每
個(gè)進(jìn)程占用6s的CPU時(shí)間。所以,1分鐘之內(nèi)CPU的空間時(shí)間為Os。CPU的利用率為
100%。
如果新進(jìn)程創(chuàng)建以每分鐘超過(guò)10個(gè)進(jìn)程的速率到達(dá),每個(gè)進(jìn)程請(qǐng)求服務(wù)的平均時(shí)間為
6s,則請(qǐng)求服務(wù)時(shí)間會(huì)大于1分鐘,CPU一直會(huì)處于繁忙,所以CPU忙的時(shí)間比率同樣為
100%。
2.21一個(gè)系統(tǒng)中有4個(gè)進(jìn)程,進(jìn)程P1要求20s后運(yùn)行,經(jīng)過(guò)40s后再次運(yùn)行;進(jìn)程P2
要求25s后運(yùn)行;進(jìn)程P3要求35s后運(yùn)行,經(jīng)過(guò)35s后再次運(yùn)行;進(jìn)程P4要求60s后運(yùn)
行。進(jìn)程在阻塞隊(duì)列等待被喚醒后運(yùn)行,試創(chuàng)建進(jìn)程的喚醒隊(duì)列。
解答:進(jìn)程的喚醒隊(duì)列為P1-P2-P3-P4-P1-P3
注意:“經(jīng)過(guò)40s后再次運(yùn)行”表示第1次運(yùn)行完成后再過(guò)40so
2.22如果線程是在用戶空間線程庫(kù)中實(shí)現(xiàn),解釋為什么當(dāng)進(jìn)程中的一個(gè)線程阻塞時(shí),
進(jìn)程內(nèi)的所有其它線程都會(huì)阻塞?如果線程是在內(nèi)核空間中實(shí)現(xiàn),而進(jìn)程內(nèi)的?個(gè)線程阻
塞不會(huì)引起進(jìn)程內(nèi)的其他線程被阻塞,為什么?
解答:
用戶級(jí)線程由用戶空間運(yùn)行的用戶級(jí)線程庫(kù)實(shí)現(xiàn)。當(dāng)一個(gè)應(yīng)用程序提交給操作系統(tǒng)后,
操作系統(tǒng)首先為該應(yīng)用程序建立一個(gè)內(nèi)核管理進(jìn)程,然后用戶級(jí)線程庫(kù)為該進(jìn)程創(chuàng)建一個(gè)
或多個(gè)用戶級(jí)線程,但內(nèi)核并不知道用戶空間線程的活動(dòng),內(nèi)核只是以進(jìn)程為單位,實(shí)現(xiàn)
進(jìn)程狀態(tài)的轉(zhuǎn)換,因此當(dāng)進(jìn)程中的一個(gè)線程阻塞時(shí),進(jìn)程內(nèi)的所有其它線程都會(huì)阻塞。
如果線程是在內(nèi)核空間中實(shí)現(xiàn)的,這些內(nèi)核級(jí)線程都由內(nèi)核創(chuàng)建和控制管理,內(nèi)核為整
個(gè)進(jìn)程及進(jìn)程中的所有線程維護(hù)現(xiàn)場(chǎng)信息,內(nèi)核的調(diào)度是在線程的基礎(chǔ)上進(jìn)行的,因而進(jìn)
程的一個(gè)線程阻塞不會(huì)引起進(jìn)程內(nèi)的其他線程被阻塞。
練習(xí)3
3.13證明作業(yè)調(diào)度算法中短作業(yè)優(yōu)先調(diào)度算法具有最小平均等待時(shí)間。
證明:假設(shè)在作業(yè)隊(duì)列中等待運(yùn)行的作業(yè)有N道,分別為NO,Nl,N2,,,,Nn-1,它們的
運(yùn)行時(shí)間分別為t0,tl,tnT,且滿足
由于短作業(yè)有限調(diào)度算法總是選擇最短的作業(yè)先調(diào)度,故這些作業(yè)總的等待時(shí)間為:
Tl=0+t0+(t0+tl)+(tO+tl+t2)+?+(tO+tl+t2+?+tn-2)
=(N-1)tO+(N-2)tl+(N-3)t2+?+tn-2(1)
如果不按照短作業(yè)優(yōu)先調(diào)度算法,可設(shè)調(diào)度順序?yàn)椋篘l,NO,N2,”,Nn-1,故這些作
業(yè)總的等待時(shí)間為:
T2=0+tl+(tO+tl)+(tO+tl+t2)+”+(tO+tl+t2+?+tn-2)
=(N-2)tO+(N-1)tl+(N-3)t2+,,+tn-2(2)
(2)-(1)得:
T2T1=tltO>0
說(shuō)明任何一種作業(yè)調(diào)度順序的作業(yè)的平均等待時(shí)間都大于按照短作業(yè)優(yōu)先的作業(yè)的平均
等待時(shí)間。
3.14假設(shè)在一個(gè)處理器上執(zhí)行5個(gè)作業(yè),作業(yè)到達(dá)的次序和需要執(zhí)行的時(shí)間分別為:
JO(75ms)、JI(15ms)、J2(5ms)、J3(15ms)、J4(45ms),
假定系統(tǒng)中使用FCFS調(diào)度算法,作業(yè)J3的周轉(zhuǎn)時(shí)間是多少?作業(yè)的平均等待時(shí)間是多
少?
周轉(zhuǎn)時(shí)間(ms)等待時(shí)間(ms:
J0750
J19075
129590
J311095
J4155110
平均等待時(shí)間(ms)74
3.15在單道批處理系統(tǒng)中,三個(gè)作業(yè)的提交時(shí)間分別為:10:00、10:10、10:20,需
要執(zhí)行時(shí)間分別為:2小時(shí)、1小時(shí)、0.5小時(shí),分別按照短作'也優(yōu)先調(diào)度算法和高響應(yīng)比
優(yōu)先調(diào)度算法進(jìn)行調(diào)度,比較哪一種調(diào)度算法更好?解:
(1)不搶占:
執(zhí)行順序?yàn)锳,C,B
平均周轉(zhuǎn)時(shí)間:(120+130+200)/3=150(min)
平均帶勸周轉(zhuǎn)時(shí)間:(120/120+130/30+200/60)/3=26/9
搶占:
A(10:10),B(10:20),C(10:50),B(ll:40),A(13:30)
平均周轉(zhuǎn)時(shí)間:(210+90+30)/3=110(min)
平均帶勸周轉(zhuǎn)時(shí)間:(210/120+90/60+30/30)/3=510/360=17/12
(2)響應(yīng)比高者優(yōu)先調(diào)度算法不會(huì)搶占,因此,只存在這樣一種情況:
執(zhí)行順序?yàn)锳,C,B
平均周轉(zhuǎn)時(shí)間:(120+130+200)/3=150(min)
平均帶勸周轉(zhuǎn)時(shí)間:(120/120+130/30+200/60)/3=26/9所以,如果要比較哪一種算
法好自然針對(duì)不搶占的情況。根據(jù)比較結(jié)果,它們的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)相同,
這主要是該應(yīng)用正好發(fā)生了這樣湊巧的情況。
3.16假設(shè)在具有一個(gè)處理器的系統(tǒng)上執(zhí)行下面的作業(yè),假如采用搶占式短作業(yè)優(yōu)先調(diào)度
算法,作業(yè)需要處理時(shí)間T和到達(dá)時(shí)間A分別如下:那么:
IT到達(dá)時(shí)間A
0500
13510
22010
32555
41095
作業(yè)1答:
1,執(zhí)行順序?yàn)椋?(10),2(30),1(65),3(90),0(130),4(170)作業(yè)0
的周轉(zhuǎn)時(shí)間為:130,
作業(yè)1的周轉(zhuǎn)時(shí)間為:55,
作業(yè)2的周轉(zhuǎn)時(shí)間為:20,
作業(yè)3的周轉(zhuǎn)時(shí)間為:35
作業(yè)4的周轉(zhuǎn)時(shí)間為:65
平均周轉(zhuǎn)時(shí)間=305/5=61
作業(yè)0的等待時(shí)間為:130-50=80,
作業(yè)1的等待時(shí)間為:55-35=20,
作業(yè)2的等待時(shí)間為:10T0=0,
作業(yè)3的等待時(shí)間為:,35-25=10
作業(yè)4的等待時(shí)間為:,65-40=25
3.17假如在具有一個(gè)處理器系統(tǒng)中,采用優(yōu)先級(jí)高者優(yōu)先的進(jìn)程調(diào)度算法,優(yōu)
IT優(yōu)先級(jí)
0753
1151
254
3155
4452
T、優(yōu)先數(shù)分別如下:
(12的周轉(zhuǎn)時(shí)間是多少?進(jìn)程的平均等待時(shí)間是多少?
(3)有優(yōu)先級(jí)搶占情況下,寫(xiě)出進(jìn)程的執(zhí)行先后序列,進(jìn)程2的周轉(zhuǎn)時(shí)間是多少?進(jìn)
程的平均等待時(shí)間是多少?
答:
(1)無(wú)搶占:
執(zhí)行順序?yàn)椋?(15),4(60),0(135),2(140),3(155)
進(jìn)程0的周轉(zhuǎn)時(shí)間為:135
進(jìn)程1的周轉(zhuǎn)時(shí)間為:15
進(jìn)程2的周轉(zhuǎn)時(shí)間為:140
進(jìn)程3的周轉(zhuǎn)時(shí)間為:155
進(jìn)程4的周轉(zhuǎn)時(shí)間為:60
進(jìn)程的平均等待時(shí)間=((135-75)+(15-15)+(140-5)+(155-15)+(60-45))/5
=70
(2)有搶占:
優(yōu)先級(jí)搶占同上一樣。
3.18假如在具有一個(gè)處理器的系統(tǒng)中,采用時(shí)間片輪轉(zhuǎn)調(diào)度算法,時(shí)間片大小為10。
進(jìn)程需要處理時(shí)間T和到達(dá)時(shí)間A分別如下:
IT到達(dá)時(shí)間A
0500
13510
22010
31580
4-1085
寫(xiě)出進(jìn)程的執(zhí)行序列,進(jìn)程3的周轉(zhuǎn)時(shí)間是多少?進(jìn)程的平均等待時(shí)間是多少?
答:
進(jìn)程的執(zhí)行序列為:0,1,2,0,1,2,0,1,3,4,0,1,3,4,0,4進(jìn)程0的周
轉(zhuǎn)時(shí)間T0=140
進(jìn)程1的周轉(zhuǎn)時(shí)間Tl=105
進(jìn)程2的周轉(zhuǎn)時(shí)間門=50
進(jìn)程3的周轉(zhuǎn)時(shí)間Tl=40
進(jìn)程4的周轉(zhuǎn)時(shí)間Tl=75
進(jìn)程的平均等待時(shí)間為:((140-50)+(105-35)+(50-20)+(40-15)+(75-
40))/5=50
3.18在時(shí)間片輪轉(zhuǎn)調(diào)度算法中,有n個(gè)進(jìn)程共享CPU。
(1)如果進(jìn)程切換的時(shí)間不可忽略,每次進(jìn)程切換用去時(shí)間為s秒,在保證每個(gè)進(jìn)程
至少每t秒內(nèi)能夠在CPU上輪回一次的前提下,確定時(shí)間片大小q使得進(jìn)程切換所造成的
負(fù)載最小。
(2)如果n=100,t=l,s=0.001,那么q的大小應(yīng)該是多少?
答:
(1)時(shí)間片大小q=(t-ns)/n
(2)q=(1-100*0.001)/100=0.009
3.19有一個(gè)四道作業(yè)的操作系統(tǒng),若在一段時(shí)間內(nèi)先后到達(dá)6個(gè)作'也,它們的提交時(shí)
間和估計(jì)運(yùn)行時(shí)間由下表給出:
作業(yè)提交時(shí)間估計(jì)運(yùn)行時(shí)間(分鐘)
18:0060
28:2035
38:2520
48:3025
58:355
68:4010
系統(tǒng)采用短作'也優(yōu)先調(diào)度算法,作'也被調(diào)度進(jìn)入系統(tǒng)后中途不得退出。但作'也運(yùn)行時(shí)可
被更短的作業(yè)搶占。分別給出6個(gè)作、業(yè)的執(zhí)行時(shí)間序列,作業(yè)的周轉(zhuǎn)時(shí)間,平均周轉(zhuǎn)時(shí)
間。
答:
作業(yè)的執(zhí)行順序?yàn)椋?(8:20),2(8:25),3(8:45),5(8:50),6(9:
00),4(9:25),2(9:55),1(10:35)
作業(yè)1的周轉(zhuǎn)時(shí)間=155min
作業(yè)2的周轉(zhuǎn)時(shí)間二95min
作業(yè)3的周轉(zhuǎn)時(shí)間二20min
作業(yè)4的周轉(zhuǎn)時(shí)間二55min
作業(yè)5的周轉(zhuǎn)時(shí)間二15min
作業(yè)6的周轉(zhuǎn)時(shí)間二20min
作業(yè)的平均周轉(zhuǎn)時(shí)間為:360/6=60
3.20在一個(gè)實(shí)時(shí)系統(tǒng)中有4個(gè)周期性事件,周期分別為50、100、150、200mso假設(shè)其
處理時(shí)間分別需要30、25、20和xms,則該系統(tǒng)可調(diào)度允許的x值最大為多少?
解:
30/50+25/100+150/20+200/x=1
X=10/3
3.21某系統(tǒng)的進(jìn)程狀態(tài)變化如圖3.23所示,該系統(tǒng)的進(jìn)程調(diào)度為非搶占方式,根據(jù)該
狀態(tài)圖敘述系統(tǒng)的調(diào)度策略、調(diào)度效果。
圖3.23狀態(tài)變化圖
答:首先采用優(yōu)先權(quán)高者優(yōu)先調(diào)度算法,然后采用時(shí)間片為100ms的調(diào)度算法。該調(diào)
度算法如果調(diào)度效果考慮更周到的話,應(yīng)該讓阻塞隊(duì)列上的進(jìn)程喚醒后進(jìn)入低優(yōu)先級(jí)就緒
隊(duì)列,這樣能夠保證優(yōu)先級(jí)高的進(jìn)程及時(shí)調(diào)度,優(yōu)先級(jí)低的進(jìn)程能夠合理的得到調(diào)度。
第4章
4.13如果有n個(gè)進(jìn)程共享一個(gè)互斥段
(1)如果每次只允許一個(gè)進(jìn)程進(jìn)入互斥段。
(2)如果每次最多允許m個(gè)進(jìn)程同時(shí)進(jìn)入互斥段(m〈n)。
問(wèn)采用的信號(hào)量初值是否相同?信號(hào)量值的變化范圍如何?
答:所采用互斥信號(hào)量的初值不同。
(1)互斥信號(hào)量初值為1,變化范圍為bn+1,1]。
當(dāng)沒(méi)有進(jìn)程進(jìn)入互斥段時(shí),信號(hào)量值為1;
當(dāng)有1個(gè)進(jìn)程進(jìn)入互斥段時(shí),但沒(méi)有進(jìn)程等待進(jìn)入互斥段時(shí),信號(hào)量值為0;當(dāng)有1個(gè)
進(jìn)程進(jìn)入互斥段,有,1個(gè)進(jìn)程等待進(jìn)入互斥段時(shí),信號(hào)量值為-1;最多可有n-1個(gè)進(jìn)程
等待進(jìn)入互斥段,故此時(shí)信號(hào)量的值為-(n-1)。
(2)互斥信號(hào)量初值為m,變化范圍為[m-n,m]。
當(dāng)沒(méi)有進(jìn)程進(jìn)入互斥段時(shí),信號(hào)量值為m;
當(dāng)有1個(gè)進(jìn)程進(jìn)入互斥段時(shí),但沒(méi)有進(jìn)程等待進(jìn)入互斥段時(shí),信號(hào)量值為mT;當(dāng)有m
個(gè)進(jìn)程進(jìn)入互斥段,但沒(méi)有進(jìn)程等待進(jìn)入互斥段時(shí),信號(hào)量值為0;當(dāng)有m個(gè)進(jìn)程進(jìn)入互
斥段,有1個(gè)進(jìn)程等待進(jìn)入互斥段時(shí),信號(hào)量值為T;最多可有n-m個(gè)進(jìn)程等待進(jìn)入互
斥段,故此時(shí)信號(hào)量的值為-(n-m)。
4.14在兩條雙向道路的交叉路口,沒(méi)有行人通過(guò),只有汽車通過(guò)。交通情況如下:
(1)任何給定的時(shí)刻只能有一輛車過(guò)馬路;
(2)當(dāng)一輛車到達(dá)交叉路口并且另一條街道上沒(méi)有車來(lái)到的時(shí)候,應(yīng)該允許此車通
過(guò);
(3)當(dāng)兩個(gè)方向上都有車到達(dá)的時(shí)候,它們應(yīng)該輪流通過(guò),以防止在其中一個(gè)方向上
的無(wú)限期延遲。
用信號(hào)量操作實(shí)現(xiàn)道路交通問(wèn)題。
解:
semphoreSl=0,S2=0;//有無(wú)車到達(dá),為0時(shí)無(wú)到達(dá)
semphoreMl=l,M2=0;〃路中被占
Pl:
if(車到達(dá))
v(Sl);
while(!S2);
if(!S2)
過(guò)一輛車;
else
p(M2);p(Ml);
過(guò)一輛車;
v(Ml);
}
P2:
if(車到達(dá))
v(S2);
while(!S2);
if(!Sl)
過(guò)一輛車;
else
(
p(Ml);
P(S2);
過(guò)一輛車;
v(M2);
)
4.15在哲學(xué)家進(jìn)餐問(wèn)題中,假設(shè)5個(gè)哲學(xué)家中第i個(gè)執(zhí)行下面的代碼段p(mutex);
p(fork[i]);
p(fork[i+l%5]);
v(mutex);
eat;
v(fork[i]);
v(fork[i+l%5]);
(1)說(shuō)明這段代碼是否滿足哲學(xué)家進(jìn)餐問(wèn)題的所有需求。
(2)如果V(mutex)語(yǔ)句改在第二個(gè)V()操作之后,或者在兩個(gè)P()操作之間,說(shuō)明這兩
種解決方法是改進(jìn)了算法還是變壞了算法。
答:
(a)滿足
(b)都不行
4.16有兩個(gè)優(yōu)先級(jí)相同的進(jìn)程P1和P2,各自執(zhí)行的操作如下,信號(hào)量S1和S2的初
值都為0,試問(wèn)Pl、P2并發(fā)執(zhí)行后,x、y、z的值各為多少?
Pl:P2:
beginbegin
y:=1;(1)x:=1;(5)
y:=y+3;(2)x:=x+5;(6)V(S1);P(S1);
z:=y+1;(3)x:x+y;(7)
P(S2);V(S2);
y:=y+z;(4)z:=x+z;(8)
end;end;答:語(yǔ)句(1)(2)(5)(6)不相交,任何執(zhí)行順序,結(jié)果相同。
情況1:語(yǔ)句(4)先執(zhí)行x=10,y=9,z=15;
情況2:語(yǔ)句(8)先執(zhí)行x=10,y=19,z=15;
情況3:語(yǔ)句(3)推遲到語(yǔ)句(8)之后,x不定,y=4,z不定;
4.17兩個(gè)進(jìn)程A、B,考慮下面的信號(hào)量編碼
semaphores=1;
intx=10,y=2;
fork(A,0);
fork(B,0);
A(){BO{
(1)x++;(4)if(x>10)
(2)V(s);(5)x——;
(3)y=x—2;(6)else{P(s);
}x---;}
}
分別說(shuō)明(1)、(2)、(3)、(4)、(5)、(6)語(yǔ)句之后的x、y值為多少?
答:
(1)x=ll,y=2(2)x=ll,y=2(3)x=ll,y=9
(4)x=ll,y=9(5)x=10,y=9(6)x=10,y=8
4.18三個(gè)進(jìn)程:輸入、計(jì)算、輸出。它們通過(guò)兩個(gè)緩沖區(qū)傳遞數(shù)據(jù),如圖4.11所示。
每個(gè)緩沖區(qū)次只能放入一條數(shù)據(jù)。寫(xiě)出用信號(hào)量進(jìn)行同步。
(7)U公共緩沖區(qū)1卜——(p)
解:varemptyl,fulll,empty2,ful12:semaphore:=1,0,1,0;
begin
parbegin
I:begin
repeat
wait(empty1);
puttobufferl;
signal(fulll);
untilfalse;
end;P:begin
repeat
wait(fulll);
getfrombufferl;
signal(emptyl);
wait(empty2);
puttobuffer2;
signal(full2);
untilfalse;
end;
0:begin
repeat
wait(full2)
getfrombuffer2;
signal(empty2);
untilfalse;
end;
parend;
end;
第5章
5.1什么是死鎖?引起死鎖的原因和必要條件是什么?
死鎖是指多個(gè)進(jìn)程因?yàn)楦?jìng)爭(zhēng)資源造成的一種僵局。
原因:并發(fā)進(jìn)程對(duì)臨界資源的競(jìng)爭(zhēng)和并發(fā)進(jìn)程推進(jìn)順序不當(dāng)。
必要條件:互斥條件,占有并請(qǐng)求條件,不剝奪條件,環(huán)路等待條件。
5.2比較解決死鎖的方法中,那種方法最容易實(shí)現(xiàn)?那種方法使得資源的利用率最高?
解決死鎖的方法:預(yù)防死鎖,避免死鎖,檢測(cè)死鎖,解除死鎖。
預(yù)防死鎖是通過(guò)設(shè)計(jì)協(xié)同資源管理程序,在進(jìn)程運(yùn)行期間,柏懷死鎖產(chǎn)生的四個(gè)條件之
中的任何一個(gè),是指不成立。是最容易實(shí)現(xiàn)的方法。
解除死鎖是在發(fā)現(xiàn)死鎖后,解除死鎖,釋放資源。是資源利用率最高的方法。
5.3預(yù)防死鎖的方法有哪些?
破壞互斥條件,破壞占有并請(qǐng)求,阻止環(huán)路等待,允許剝奪
5.8系統(tǒng)中有3個(gè)進(jìn)程共享4個(gè)資源,每個(gè)進(jìn)程每次只能申請(qǐng)或釋放一個(gè)資源,每個(gè)進(jìn)
程最多需要2個(gè)資源,給進(jìn)程是否會(huì)發(fā)生死鎖,為什么?
解:
不會(huì)發(fā)生死鎖。3個(gè)進(jìn)程共享4個(gè)資源,每個(gè)進(jìn)程最多需要2個(gè)資源??傆幸粋€(gè)進(jìn)程的
請(qǐng)求會(huì)滿足,運(yùn)行并釋放資源。不會(huì)形成環(huán)路等待。
5.9系統(tǒng)中有20個(gè)進(jìn)程,每個(gè)進(jìn)程最多使用3個(gè)資源,每個(gè)進(jìn)程逐個(gè)申請(qǐng)并競(jìng)爭(zhēng)使用
60個(gè)同類資源。一旦某進(jìn)程獲得所需要的資源,完成后立即釋放全部資源。系統(tǒng)是否會(huì)發(fā)
生死鎖?為什么?
系統(tǒng)不會(huì)發(fā)生死鎖。以最壞的情況來(lái)考慮,20個(gè)進(jìn)程都需要使用3個(gè)資源。當(dāng)前,每個(gè)
進(jìn)程都持有2個(gè)資源。(20*2=40).都在申請(qǐng)第3個(gè)資源(60-40=20)對(duì)于剩余的20個(gè)
資源,每個(gè)進(jìn)程多會(huì)得到一個(gè)資源。不會(huì)形成環(huán)路等待。
5.10一臺(tái)計(jì)算機(jī)有8臺(tái)打印機(jī),被N個(gè)進(jìn)程競(jìng)爭(zhēng)使用,每個(gè)進(jìn)程最多需要3臺(tái)。請(qǐng)
問(wèn)N為多少時(shí),系統(tǒng)沒(méi)有死鎖的危險(xiǎn),說(shuō)明原因。解:
N=3時(shí),沒(méi)有死鎖的危險(xiǎn)。
對(duì)于N個(gè)進(jìn)程,都持有2臺(tái)打印機(jī)時(shí),申請(qǐng)第3臺(tái)打印機(jī),只要有一臺(tái)的多余的打印機(jī)
能被申請(qǐng)到,則系統(tǒng)就沒(méi)有死鎖的危險(xiǎn)。即N*2+l<=8,得N<=3。
5.11考慮圖5.9所示的資源分配圖,哪個(gè)進(jìn)程會(huì)發(fā)生死鎖?
進(jìn)程P3,P4會(huì)發(fā)生死鎖。
對(duì)于進(jìn)程Pl,P2,進(jìn)程的推進(jìn)不需要等待其他進(jìn)程的完成。
進(jìn)程P3,P4。P3要等P4完成并釋放資源后方能推進(jìn)。而P4要等到P3完成后才能。結(jié)
果是P3,P4都不能完成。形成死鎖。
5.12假定有3個(gè)人排隊(duì)等候上電梯。當(dāng)電梯門打開(kāi)的時(shí)候,3個(gè)人都朝門口沖去,但是
門不夠大,他們3人不能同時(shí)進(jìn)門。描述解決這種死鎖的方法,可以讓3個(gè)人都上電梯。
說(shuō)明你的解決方案清除了哪個(gè)死鎖的必要條件。答:讓3個(gè)人輪流進(jìn)電梯。
破壞了死鎖發(fā)生的4個(gè)必要條件中的“不剝奪條件”。
5.13假定一個(gè)系統(tǒng)具有四種資源類型,分別為:R={3,7,2,3},最大資源需求數(shù)表
如圖5.10所示。資源分配器根據(jù)圖5.11中的表來(lái)分配資源,這個(gè)狀態(tài)安全嗎?為什么?
圖5.10圖5.11
答:這個(gè)狀態(tài)安全。存在安全執(zhí)行序列{P4,PO,P1,P3,P2};
6.9如果一個(gè)分頁(yè)系統(tǒng)能夠向用戶提供的邏輯地址最大為16頁(yè),頁(yè)面大小為2K,內(nèi)存
總共有8個(gè)存儲(chǔ)塊。請(qǐng)問(wèn)邏輯地址應(yīng)該為多少位??jī)?nèi)存空間為多大?
解:邏輯地址應(yīng)該為4+11=15(位)
內(nèi)存空間為8*2K=16K
6.10如果一個(gè)分頁(yè)系統(tǒng)的頁(yè)表存放在內(nèi)存。
(1)若對(duì)內(nèi)存的一次存取需要L2s,請(qǐng)問(wèn)一次頁(yè)面訪問(wèn)的存取需要花多少時(shí)間?
(2)若系統(tǒng)配置了聯(lián)想寄存器,對(duì)快表的命中率為70%,假如查詢聯(lián)想寄存器的時(shí)間
忽略不計(jì),請(qǐng)問(wèn)實(shí)現(xiàn)一次頁(yè)面訪問(wèn)的存取時(shí)間是多少?
解:(1)訪問(wèn)一次頁(yè)面的存取需要花費(fèi)的時(shí)間為2*1.2s=2.4s
(2)實(shí)現(xiàn)一-次頁(yè)面訪問(wèn)的存取時(shí)間=0.3*1.2s+1.2s=L56s
6.11如果一個(gè)分頁(yè)系統(tǒng)邏輯地址長(zhǎng)度為16位,頁(yè)面大小為4KB,第0、1、2頁(yè)對(duì)應(yīng)
10、12、14號(hào)物理塊,請(qǐng)問(wèn)邏輯地址為2F6AH對(duì)應(yīng)的物理地址為多少?解:邏輯地址為
2F6AH對(duì)應(yīng)的二進(jìn)制碼為:0010111101101010,頁(yè)號(hào)為:2,頁(yè)內(nèi)偏移為F6AH。
查詢頁(yè)表2號(hào)頁(yè)面對(duì)應(yīng)14號(hào)塊,所以,物理地址為1110111101101010,最終物理
地址為:EF6AH
6.12如果內(nèi)存中有4個(gè)空閑塊,每個(gè)空閑塊的大小為10MB。有10個(gè)請(qǐng)求,每次請(qǐng)求
1MB的內(nèi)存大小,對(duì)于下面列出的內(nèi)存分配方法中的每一種,確定所有10個(gè)請(qǐng)求都被滿足
之后剩余空閑塊的大小。
(a)首次適應(yīng)算法
(b)循環(huán)首次適應(yīng)算法
(c)最佳適應(yīng)算法
(d)最壞適應(yīng)算法
解:(a)首次適應(yīng)算法:塊1用完,塊2,3,4剩余10MB。
(b)循環(huán)首次適應(yīng)算法:塊1,2余7MB,塊3.4余8MB。
(c)最佳適應(yīng)算法:塊1用完,塊2,3,4余10MB。
進(jìn)程RiR2思
P。3411
P.2512
p23223
P33113
P40312
進(jìn)程K.RiR2R3
P。2100
Pi0201
P20100
P30010
P40101
(d)最壞適應(yīng)算法:塊1,2余7MB,塊3,4余8MB。
段號(hào)始址段長(zhǎng)
0200510
190030
|210080
31200500
4180080
{0,380}、{1,20}、{1,24}、{2,200}、{3,500}、{4,120}。
解:{0,380}表示為0段,段內(nèi)偏移為380,物理地址為580;
{1,20}表示為1段,段內(nèi)偏移為20,物理地址為920;
{1,24}表示為1段,段內(nèi)偏移為24,物理地址為924:
{2,200}表示為2段,段內(nèi)偏移為200,已經(jīng)越界;
(3,500}表示為3段,段內(nèi)偏移為500,物理地址為1700;
{4,120}表示為4段,段內(nèi)偏移為120,已經(jīng)越界。
7.5在分頁(yè)虛擬存儲(chǔ)器管理中,如果已知時(shí)間利用率為:CPU20%、分頁(yè)磁盤92樂(lè)外設(shè)
50%,請(qǐng)問(wèn)采取哪些措施可以改善CPU的利用率?解:增大分頁(yè)磁盤空間。
7.6-個(gè)32位地址的計(jì)算機(jī)系統(tǒng)使用二級(jí)頁(yè)表,虛擬地址為9位頂級(jí)頁(yè)表,11位二級(jí)
頁(yè)表和偏移。請(qǐng)問(wèn):頁(yè)面長(zhǎng)度為多少?虛擬地址空間有多少個(gè)頁(yè)面?
解
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鑄造定點(diǎn)澆筑施工方案
- 木質(zhì)坐凳施工方案
- 海淀池子防腐施工方案
- 園林家具施工方案
- 外立面改造施工方案
- 二零二五年度設(shè)施農(nóng)業(yè)土地承包經(jīng)營(yíng)合同
- 2025年度生豬養(yǎng)殖產(chǎn)業(yè)鏈金融服務(wù)合同
- 二零二五年度航空航天市場(chǎng)推廣分紅權(quán)協(xié)議書(shū)
- 2025年度物流運(yùn)輸授權(quán)合作合同
- 2025年度知識(shí)產(chǎn)權(quán)侵權(quán)和解賠款調(diào)解協(xié)議書(shū)
- 抵押個(gè)人汽車借款合同范本
- 2025年中考第一次模擬考試地理(青海卷)(全解全析)
- 2025年內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及參考答案
- 統(tǒng)編版(2024)七年級(jí)下冊(cè)語(yǔ)文期末復(fù)習(xí):第一單元素養(yǎng)提升測(cè)試卷(含答案)
- 2025年上海青浦新城發(fā)展集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 中小學(xué)領(lǐng)導(dǎo)班子包級(jí)包組包班制度
- Deepseek 學(xué)習(xí)手冊(cè)分享
- 汽車掛靠經(jīng)營(yíng)合同協(xié)議書(shū)模板
- 四年級(jí)組數(shù)學(xué)教學(xué)質(zhì)量提升計(jì)劃
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論