




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章操作系統(tǒng)概論1、有一臺計算機(jī),具有IMB內(nèi)存,操作系統(tǒng)占用200KB,每個用戶進(jìn)程各占200KB。如果用戶進(jìn)程等待I/O的時間為80%,若增加1MB內(nèi)存,則CPU的利用率提高多少?答:設(shè)每個進(jìn)程等待I/O的百分比為P,則n個進(jìn)程同時等待刀O的概率是Pn,當(dāng)n個進(jìn)程同時等待I/O期間CPU是空閑的,故CPU的利用率為1-Pn。由題意可知,除去操作系統(tǒng),內(nèi)存還能容納4個用戶進(jìn)程,由于每個用戶進(jìn)程等待I/O的時間為80%,故:CPU利用率=1-(80%)4=0.59若再增加1MB內(nèi)存,系統(tǒng)中可同時運行9個用戶進(jìn)程,此時:cPu利用率=1-(1-80%)9=0.87故增加IMB內(nèi)存使CPU的利用率提高了47%:87%/59%=147%147%-100%=47%2一個計算機(jī)系統(tǒng),有一臺輸入機(jī)和一臺打印機(jī),現(xiàn)有兩道程序投入運行,且程序A先開始做,程序B后開始運行。程序A的運行軌跡為:計算50ms、打印100ms、再計算50ms、打印100ms,結(jié)束。程序B的運行軌跡為:計算50ms、輸入80ms、再計算100ms,結(jié)束。試說明(1)兩道程序運行時,CPU有無空閑等待?若有,在哪段時間內(nèi)等待?為什么會等待?(2)程序A、B有無等待CPU的情況?若有,指出發(fā)生等待的時刻。答:畫出兩道程序并發(fā)執(zhí)行圖如下:輔入機(jī)輔入機(jī)打印機(jī)程序血時馴mt)兩道程序運行期間,CPU存在空閑等待,時間為100至150ms之間(見圖中有色部分)程序A無等待現(xiàn)象,但程序B有等待。程序B有等待時間段為180rns至200ms間(見圖中有色部分)3設(shè)有三道程序,按A、B、C優(yōu)先次序運行,其內(nèi)部計算和UO操作時間由圖給出。
ABC1Cj^-=60ins!Cjj11Iu—40msItI,1i!Cu=10msi試畫出按多道運行的時間關(guān)系圖(忽略調(diào)度執(zhí)行時間)。完成三道程序共花多少時間?比單道運行節(jié)省了多少時間?若處理器調(diào)度程序每次進(jìn)行程序轉(zhuǎn)換化時lms,試畫出各程序狀態(tài)轉(zhuǎn)換的時間關(guān)系圖。答:)忽略調(diào)度執(zhí)行時間,多道運行方式(搶占式):時間037S1012nid1719單隹IVO112=[22LCPUCllC21Cl3C21C31iC23C33搶占式共用去190ms,單道完成需要260ms,節(jié)省70ms。忽略調(diào)度執(zhí)行時間,多道運行方式(非搶占式):時何單位.10時何單位.10I3112|||e?21i1ICllC21i:CqC3l€231F/OCPU非搶占式共用去180ms,單道完成需要260ms,節(jié)省80ms。)調(diào)度執(zhí)行時間1ms,多道運行方式(搶占式):時間I/OCPUOS時間I/OCPUOS4在單CPU和兩臺1/0(I1,12)設(shè)備的多道程序設(shè)計環(huán)境下,同時投入三個作業(yè)運行。它們的執(zhí)行軌跡如下:Jobl:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)、I2(20ms)Job2:Il(20ms)、CPU(20ms)、I2(40ms)J0b3:CPU(30ms)、I1(20ms)、CPU(10ms)、I1(10ms)如果CPU、Il和I2都能并行工作,優(yōu)先級從高到低為Jobl、Job2和Job3,優(yōu)先級高的作業(yè)可以搶占優(yōu)先級低的作業(yè)的CPU,但不搶占I1和I2。試求:(l)每個作業(yè)從投入到完成分別所需的時間。(2)從投入到完成CPU的利用率。(3)I2設(shè)備利用率。答:畫出三個作業(yè)并行工作圖如下(圖中著色部分為作業(yè)等待時間):,CPU!1Jcb21kbl[Job!IIMJ1Job!IJob3I11I1MJ1Jobl1Job31iJfob?|12JoblIE[Jo-bliICPULn…Q1(,12CPU1」劇f]L1CPU|1CPU112fCfUcpuIrii|!1CPU11f時閻11]11L…ii1fL101020304050$07080toono(1)Job1從投入到運行完成需110ms,Job2從投入到運行完成需90ms,Job3從投入到運行完成需110ms.CPU空閑時間段為:60ms至70ms,80ms至90ms,100ms至110ms。所以CPU利用率為(110-30)/10=72.7%。設(shè)備I1空閑時間段為:20ms至40ms,90ms至100ms,故I1的利用率為(110-30)/110=72.7%。設(shè)備I2空閑時間段為:30ms至50ms,故I2的利用率為(110-20)/110=81.8%。5在單CPU和兩臺I/0(I1,12)設(shè)備的多道程序設(shè)計環(huán)境下,同時投入三個作業(yè)運行。它們的執(zhí)行軌跡如下:Jobl:I2(30ms)、CPU(10rns)、I1(30ms)、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。試求:(1)每個作業(yè)從投入到完成分別所需的時間.(2)每個作業(yè)投入到完成CPU的利用率。(3)I/0設(shè)備利用率。答:畫出三個作業(yè)并行工作圖如下(圖中著色部分為作業(yè)等待時間):CPU!Job3IJob!1Jobl1Job3J11nJ1Jobl1佔I1JoblJ___1Jobl1121C?U1niCPU.[備1111CPU[CPU12ICPU1I_1時同1111Ei1」1I(ms)0<020304050§070SC90(1)Jobl從投入到運行完成需80ms,Job2從投入到運行完成需90ms,Job3從投入到運行完成需90ms。(2)CPU空閑時間段為:60ms至70ms,80ms至90ms。所以CPU利用率為(90-20)/90=77.78%。(3)設(shè)備II空閑時間段為:20ms至40ms,故II的利用率為(90-20)/90=77.78%。設(shè)備I2空閑時間段為:30ms至50ms,故I2的利用率為(90-20)/90=77.78%。6若內(nèi)存中有3道程序A、B、C,它們按A、B、C優(yōu)先次序運行。各程序的計算軌跡為:A:計算(20)、1/0(30)、計算(10)B:計算(40)、1/0(20)、計算(10)c:計算(10)、I/0(30)、計算(20)如果三道程序都使用相同設(shè)備進(jìn)行I/O(即程序用串行方式使用設(shè)備,調(diào)度開銷忽略不計)。試分別畫出單道和多道運行的時間關(guān)系圖。兩種情況下,CPU的平均利用率各為多少?答:分別畫出單道和多道運行的時間圖(1)單道運行時間關(guān)系圖I/O1A11[11£|1CPU11111111I111IIi■lIIai盧i&i■Iiiii11[1il,tI1鈿ji■1J111亠時伺:1111L1II1ii1111111J11■1!111111111ii1L(1I1;::J111L,020405(5如盹10012914036C(601就單道總運行時間為190ms。CPU利用率為(190-80)/190=57.9%單道運行時間關(guān)系圖
網(wǎng)—Ji0ICi11111iiCPV|AjBi州星t1|11(I11Ii吋間iii.rJ111H11II11f1I1■I\1110204-0506Q80100I鈾140多道總運行時間為140ms。CPU利用率為(140-30)/140=78.6%7若內(nèi)存中有3道程序A、B、C,優(yōu)先級從高到低為A、B和C,它們單獨運行時的CPU和I/O占用時間為:程序扎60203010402020(ms)1/02CPUmiCPUVO1CPU1701趕序B;3040703030(ms)1/01CPUvolCPUro;4C603070(nw)CPU1/01CPU1/02如果三道程序同時并發(fā)執(zhí)行,調(diào)度開銷忽略不計,但優(yōu)先級高的程序可中斷優(yōu)先級低的程序,優(yōu)先級與I/O設(shè)備無關(guān)。試畫出多道運行的時間關(guān)系圖,并問最早與最遲結(jié)束的程序是哪個?每道程序執(zhí)行到結(jié)束分別用了多少時間?計算三個程序全部運算結(jié)束時的CPU利用率?答:畫出三個作業(yè)并發(fā)執(zhí)行的時間圖:CPUB\1t11B1匚1AIc!101L_B1LA|CjA11A|1021A11B-]1B.1t|cpu|1011clA■fa訊吐■10![P[;Wit血1acpu1磋?州也1=PU1102|chcpu—lOi—印】f>2[廠宕*"-!"邸krufr-|何1吋同L..L1\1.1「11...\1(■ms)030609012015Q2102402?Q3沖330(l)最早結(jié)束的程序為B,最后結(jié)束的程序為C。(2)程序A為250ms。程序B為220ms。程序C為310ms。(3)CPU利用率為(310-120)/310=61.3%有兩個程序,A程序按順序使用:(CPU)10秒、(設(shè)備甲)5秒、(CPU)5秒、(設(shè)備乙)10秒、(CPU)10秒。B程序按順序使用:(設(shè)備甲)10秒、(CPU)10秒、(設(shè)備乙)5秒、(CPU)5秒、(設(shè)備乙)10秒。在順序環(huán)境下先執(zhí)行A,再執(zhí)行B,求出總的CPU利用率為多少?答:程序A執(zhí)行了40秒,其中CPU用了25秒。程序B執(zhí)行了40秒,其中CPU用了15秒。兩個程序共用了80秒,CPU化40秒。故CPU利用率為40/80=50%。9、在某計算機(jī)系統(tǒng)中,時鐘中斷處理程序每次執(zhí)行的時間為2ms(包括進(jìn)程切換開銷)。若時鐘中斷頻率為60HZ,試問CPU用于時鐘中斷處理的時間比率為多少?答:因時鐘中斷頻率為60HZ,所以,時鐘周期為:丨/60s=50/3ms。在每個時鐘周期中,CPU花2ms執(zhí)行中斷任務(wù)。所以,CPU用于時鐘中斷處理的時間比率為:2(50/3)=6/50=12%。第二章處理器管理下列指令中哪些只能在核心態(tài)運行?(l)讀時鐘日期;(2)訪管指令;(3)設(shè)時鐘日期;(4)加載PSW;(5)置特殊寄存器:(6)改變存儲器映象圖;(7)啟動I/O指令。答:(3),(4),(5),(6),(7).假設(shè)有一種低級調(diào)度算法是讓“最近使用處理器較少的進(jìn)程”運行,試解釋這種算法對“I/O繁重”型作業(yè)有利,但并不是永遠(yuǎn)不受理“處理器繁重”型作業(yè)。答:因為I/O繁忙型作業(yè)忙于I/O,所以它CPU用得少,按調(diào)度策略能優(yōu)先執(zhí)行。同樣原因一個進(jìn)程等待CPU足夠久時,由于它是“最近使用處理器較少的進(jìn)程”,就能被優(yōu)先調(diào)度,故不會饑餓。并發(fā)進(jìn)程之間有什么樣的相互制約關(guān)系?下列日常生活中的活動是屬哪種制約關(guān)系:(1)踢足球,(2)吃自助餐,(3)圖書館借書,(4)電視機(jī)生產(chǎn)流水線工序。答:并發(fā)進(jìn)程之間的基本相互制約關(guān)系有互斥和同步兩種。其中(1)、(3)為互斥問題.(2)、(4)為同步問題。在按動態(tài)優(yōu)先數(shù)調(diào)度進(jìn)程的系統(tǒng)中,每個進(jìn)程的優(yōu)先數(shù)需定時重新計算。在處理器不斷地在進(jìn)程之間交替的情況下,重新計算進(jìn)程優(yōu)先數(shù)的時間從何而來?答:許多操作系統(tǒng)重新計算進(jìn)程的優(yōu)先數(shù)在時鐘中斷處理例程中進(jìn)行,由于中斷是隨機(jī)碰到哪個進(jìn)程,就插入哪個進(jìn)程中運行處理程序,并把處理時間記在這個進(jìn)程的賬上。5若后備作業(yè)隊列中等待運行的同時有三個作業(yè)J1、J2、J3,已知它們各自的運行時間為a、b、c,且滿足a<bVc,試證明采用短作業(yè)優(yōu)先算法調(diào)度能獲得最小平均作業(yè)周轉(zhuǎn)時間。答:采用短作業(yè)優(yōu)先算法調(diào)度時,三個作業(yè)的總周轉(zhuǎn)時間為:Tl==a+(a+b)+(a+b+c)=3a+2b+c①若不按短作業(yè)優(yōu)先算法調(diào)度,不失一般性,設(shè)調(diào)度次序為:J2、J1、J3。則三個作業(yè)的總周轉(zhuǎn)時間為:T2=b+(b+a)+(b+a+c)=3b+2a+c②
令②-①式得到:T2-Tl=b-a>0可見,采用短作業(yè)優(yōu)先算法調(diào)度才能獲得最小平均作業(yè)周轉(zhuǎn)時間。6、若有一組作業(yè)J1,…,Jn,其執(zhí)行時間依次為S1,…,Sn。如果這些作業(yè)同時到試找出一種作業(yè)調(diào)度算法到達(dá)系統(tǒng),并在一臺單CPU處理器上按單道方式執(zhí)行。使得平均作業(yè)周轉(zhuǎn)時間最短。答:首先,對n個作業(yè)按執(zhí)行時間從小到大重新進(jìn)行排序,則對n個作業(yè):J1',-,Jn,創(chuàng)門的運行時間滿足:S1WS2W……WS(n-l)<Sn'。那么有:T=[S>(Sf+Si)+(S,+SjV&”?W++爲(wèi)4…+sft)]/n-[nXSi-^S;4(n-3)X計S/]]/n=(St'+Sa+附…+SB)-PXS;+1XSj+2XSjGiT)S?'l/n由于任何調(diào)度方式下,S1'+S2'+S3'+???+Sn'為一個確定的數(shù),而當(dāng)S1'WS2'£???£S(n-1)'WSn'時才有:0*S1+1*S2+2*S3+-(n-l)Sn的值最大,也就是說,此時T值最小。所以,按短作業(yè)優(yōu)先調(diào)度算法調(diào)度時,使得平均作業(yè)周轉(zhuǎn)時間最短。7、假定執(zhí)行表中所列作業(yè),作業(yè)號即為到達(dá)順序,依次在時刻0按次序1、2、3、4、5進(jìn)入單處理器系統(tǒng)。分別用先來先服務(wù)調(diào)度算法、時間片輪轉(zhuǎn)算法、短作業(yè)優(yōu)先算法及非強(qiáng)占優(yōu)先權(quán)調(diào)度算法算出各作業(yè)的執(zhí)行先后次序(注意優(yōu)先權(quán)高的數(shù)值小);計算每種情況下作業(yè)的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間。惰業(yè)平均周轉(zhuǎn)時聞作業(yè)平均帶權(quán)周轉(zhuǎn)時間T-(l<HlW3+W15)/5-13^惰業(yè)平均周轉(zhuǎn)時聞作業(yè)平均帶權(quán)周轉(zhuǎn)時間T-(l<HlW3+W15)/5-13^W=^Hll+6.34)4+3.輔-7.26作業(yè)號執(zhí)疔時間丑先祝1105111'S23414552(1)采用FCFS算法調(diào)度作業(yè),運作情況:執(zhí)行次睜執(zhí)行時闔等待時間幵始時間克成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間110001010i121101011111132111113134113141414S5U14)9193.5
(2)采用雙算法調(diào)度作業(yè),若令時間片長=l,各作業(yè)執(zhí)行情況為:1、2、、4、5、1、3、5、1、5、1、5、1、5、1、1、1、1、1。作業(yè)執(zhí)行時間提交時的完成肘閭周轉(zhuǎn)對間;110019191.9;2}0222320773.S410444550141424作業(yè)平均周轉(zhuǎn)時間T=(19+2+7+4+14X5=5.2作業(yè)乎均帶釵岡轉(zhuǎn)時閭W=(1.9+.J43,544+2.5^5=2.84(3)采用SJF算法調(diào)度作業(yè),運作情況:執(zhí)行次睜執(zhí)行時間等待時閭開始時間完成時闔隔轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時爾210011141iI222322244255449學(xué)1.81109919L9注作業(yè)平均周轉(zhuǎn)時間T=(l+2^-4*9*19y5-7作業(yè)平均帶權(quán)周轉(zhuǎn)時間W%I■+2+2+L慣L74(4)采用非剝奪優(yōu)先權(quán)算法調(diào)度作業(yè),運作情況:8對某系統(tǒng)進(jìn)行監(jiān)測后表明平均每個進(jìn)程在I/O阻塞之前的運行時間為T。一次進(jìn)程'切換的系統(tǒng)開銷時間為S。若采用時間片長度為Q的時間片輪轉(zhuǎn)法,對下列各種情況算出CPU利用率。Q=g2)Q>T3)4=Q^S5=Q接近于D劭l>Q=?CPU利用孚=17CT+SJQ>TCPU利用率=T7(T4S)TX>>SUPU利用率p(Q母Q=SCPU利用辜豐妙CPU利用率一Q9有5個待運行的作業(yè),各自預(yù)計運行時間分別是:9、6、3、5和x,采用哪種運行次序使得平均響應(yīng)時間最短?答:按照最短作業(yè)優(yōu)先的算法可以使平均響應(yīng)時間最短。x取值不定,按照以下情況討論:
1)次仔為=乩和乳£9次序為匕簽口5,乩9匱序為::耳*X.94>枚序為*3*Sr也X-95)次序為壬5?6i典X10?有5個批處理作業(yè)A到E均己到達(dá)計算中心,其運行時間分別2、4、6、8和10分鐘:各自的優(yōu)先級分跳狠掀完為、、飛、飛、氏積5、這里5為最高級。對于1)時間片輪轉(zhuǎn)算法、2)優(yōu)先數(shù)法、3)短作業(yè)優(yōu)先算法、4)先來先服務(wù)調(diào)度算法(按到達(dá)次序C、D、B、E、A),在忽略進(jìn)程切換時間的前提下,計算出平均作業(yè)周轉(zhuǎn)時間。(對l)每個作業(yè)獲得相同的2分鐘長的時間片;對2)到4)采用單道運行,直到結(jié)束。)答:(l)FCFS調(diào)度算法執(zhí)行機(jī)序執(zhí)疔時閭零待岐間周轉(zhuǎn)時面帶楓周轉(zhuǎn)時間C€016]D614L75B4141S4JE論1&182龍A2283015柞業(yè)平均周轉(zhuǎn)時閭T=(6+14*1£+28+30)/5=19_2作業(yè)平均帶權(quán)周轉(zhuǎn)時間W=*(W1J544.5+2附I那M(2)優(yōu)先級調(diào)度算法執(zhí)疔按序執(zhí)行時閭尊待時間周轉(zhuǎn)肘間帶權(quán)周轉(zhuǎn)時闔E110:0301DS10LS2島C61S244B4242S7A22S3015低業(yè)平均周轉(zhuǎn)時問T=(1D+1S+24-n2S+S0)/5^22作業(yè)平均帶權(quán)周轉(zhuǎn)時間IW=(l+2J5-^+7+15y5=S-B5(3)時間片輪轉(zhuǎn)法
柞業(yè)執(zhí)行時間聲侍時間:周轉(zhuǎn)時⑥芾權(quán)周轉(zhuǎn)時間jA2-Q2)B48123C61420畑D&1826E1C20303柞業(yè)平均冏轉(zhuǎn)時閭T珂卩12420+26+30)/5?18.作業(yè)平均帯捉周轉(zhuǎn)時闔wwi砒卓:nTQMypm按次序ABCDEBCDECDEDEE輪轉(zhuǎn)執(zhí)行。(4)SJF調(diào)度算法|作業(yè)執(zhí)行時同尊特時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間aH1021B4261.5c66122D312202.51020SO3柞業(yè)平均周轉(zhuǎn)時閭T=(2+6+12+204-3(})/5=]4[作業(yè)平均帶權(quán)局特時間W=(l+1.5*2*Z543y5?=211、有5個批處理作業(yè)A到E均已到達(dá)計算中心,其運行時間分別10、6、2、4和8分鐘;各自的優(yōu)先級分別被規(guī)定為3、5、2、1和4,這里5為最高級。若不考慮系統(tǒng)切換開銷,計算出平均作業(yè)周轉(zhuǎn)時間。(1)FCFs(按A、B、C、D、E);(2)優(yōu)先級調(diào)度算法,(3)時間片輪轉(zhuǎn)法(每個作業(yè)獲得相同的2分鐘長的時間片)。(1)FCFS調(diào)度算法執(zhí)廳次序執(zhí)行時狗尊待時間周轉(zhuǎn)時間帶叔周轉(zhuǎn)時間A100w11B610162.66C216189D418225.5E822303.75作業(yè)平均周轉(zhuǎn)時聞T=(10+16+15422^0)/5-19.2作業(yè)平均帶權(quán)周轉(zhuǎn)時間W=(H2.5Mh-5.5+3.75/5=^43S(2)優(yōu)先級調(diào)度算法
執(zhí)行次序執(zhí)行時何尊特時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間601£8614175A14242.4C2加2613307.5作業(yè)平均周轉(zhuǎn)時間1=(6414+24+26-K30)/5=20傕業(yè)平均帶權(quán)周轉(zhuǎn)時阿+1.75+2.4*13+7.5X5^5.13(3)時間片輪轉(zhuǎn)法作業(yè)執(zhí)行時間等待時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間A1020303B6l6223.66C2463D4l2164E820283.5作業(yè)平均周轉(zhuǎn)時間作業(yè)平均帶權(quán)周轉(zhuǎn)時間T=(30+22+6+16+28)/5=W=(3+3.66+3+4+3.5)/5=20.43.43按次序ABCDEABDEABEAEA輪轉(zhuǎn)執(zhí)行。12(l)假定一個處理器正在執(zhí)行兩道作業(yè),一道以計算為主,另一道以輸入輸出為主,你將怎樣賦予它們占有處理器的優(yōu)先級?為什么?(2)假定一個處理器正在執(zhí)行三道作業(yè),一道以計算為主,第二道以輸入輸出為主,第三道為計算與輸入輸出均勻。應(yīng)該如何賦予它們占有處理器的優(yōu)先級使得系統(tǒng)效率較高?答:處理器調(diào)度算法會考慮以下因素:作業(yè)響應(yīng)時間要求;讓CPU盡量和外圍設(shè)備并行工作;限制一個計算進(jìn)程長時間霸占處理器。因而,(1)FO為主作業(yè)優(yōu)先級高。(2)輸入輸出為主作業(yè)優(yōu)先級最高,輸入輸出均勻的作業(yè)其次,而計算為主作業(yè)的優(yōu)先級最低。13請你設(shè)計一種先進(jìn)的計算機(jī)體系結(jié)構(gòu),它使用硬件而不是中斷來完成進(jìn)程切換,則CPU需要哪些信息?請描述用硬件完成進(jìn)程切換的工作過程。答:該計算機(jī)有一個專用硬件寄存器,它始終存放指向當(dāng)前運行進(jìn)程的PCB的指針。當(dāng)系統(tǒng)中發(fā)生了一個事件,如F0結(jié)束事件,CPU便可把運行進(jìn)程的上下文保存到專用硬件寄存器指針指向的PCB中保護(hù)起來,然后,CPU轉(zhuǎn)向中斷向量表,找到設(shè)備中斷處理程序入口,讓專用硬件寄存器指針指向(設(shè)備)中斷服務(wù)例程,于是,便可啟動中斷服務(wù)例程工作。14設(shè)計一條機(jī)器指令和一種與信號量機(jī)制不同的算法,使得并發(fā)進(jìn)程對共享變量的使用不會出現(xiàn)與時間有關(guān)的錯誤。解:(l)設(shè)計機(jī)器指令。設(shè)計一條如下的”測試、比較和交換”三地址指令,提供了一種硬件互斥解決方案:TC&SR1R3B2D2該指令的功能如下:l)C為一個共享變量,由地址2、即變址(B2)+D2給出,(2)(Rl)與(C)比較,(3)如果(Rl)=(C)則(R3)-C,并置條件碼為〃00〃,如果(Rl)H(c)則(C)fRl,并置條件碼為〃01〃.(2)編寫進(jìn)程訪問共享變量的程序。陸界區(qū)程序說明(C—Rl;loop2:(Rl)fR3;Add/decreaseR3;TC&S;R(condition二01)loop2;共享變量C的值保護(hù)到Rl中。Rl的值傳送到R3中,進(jìn)程修改共享變量時,先對R3操作(不是直接操作C)。R3加1/減1,進(jìn)程歸還/申請由共享變量C代表的共享資源(假定每次一個)。執(zhí)行”測試、比較和交換”指令。條件碼=01,轉(zhuǎn)向循環(huán)loop2;否則離開臨界區(qū)。對每個訪問共享變量C的進(jìn)程,編寫訪問共享變量的程序段為:(3)程序執(zhí)行說明。此解與互斥使用共享變量的思路絕然不同,并發(fā)運行的進(jìn)程可不互斥地訪問它們的共享變量。此方案認(rèn)為造成共享變量c值錯誤的原因在于:一個進(jìn)程(Pl)在改變C值的過程中,另一個進(jìn)程伊2)插進(jìn)來也改變了C的值,而本進(jìn)程(Pl)卻不知道,造成了c值結(jié)果不正確。如果有辦法使本進(jìn)程口1)能知道C值是否改變,改變的話在繼承改變了的C值的基礎(chǔ)上,再作自己的改變操作,則就不會導(dǎo)致共享變量C值的錯誤。為此,本解決方案中,當(dāng)一個進(jìn)程l)準(zhǔn)備改變C值時,先把C的值保護(hù)在Rl中,然后,通過R3來改變共享變量C的值。當(dāng)要把新的值(即R3內(nèi)的值)送C之前,先要判斷一下在本進(jìn)程(P1)工作期間是否有別的進(jìn)程口2)插進(jìn)來也改變了C的值(并發(fā)進(jìn)程P1、P2的執(zhí)行完全會造成這種情況),方法是:將扭1)中被保護(hù)的C的原來值,與C的當(dāng)前值比較,若相等,說明C值未被改變過,則將本進(jìn)程(Pl)修改過的新值送C(即(R3)一C);若不相等,說明C值在工作期間被改變過,則應(yīng)該繼承C的新值(即(C)一Rl)并且返回到loop2處重新對C值計數(shù),以此保證C值的最終結(jié)果的正確性。這里提及”進(jìn)程工作期間”指的是一個進(jìn)程從開始至結(jié)束對共享變量C值的操作的這段時間,也就是執(zhí)行進(jìn)程,’I晦界區(qū)”這段程序的時間。此外,在進(jìn)程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳媒公司活動合同范例
- 加盟合同范本飲品
- 兌店定金合同范例
- 中標(biāo)后測繪合同范例
- 公司購買股票合同范例
- 保險分紅合同范例
- 草袋子護(hù)坡施工方案
- 農(nóng)村流轉(zhuǎn)房租合同范例
- 充值方案合同范例
- 出售鐵皮廠房合同范例
- 貨物學(xué) 課件1.3貨物的計量
- 2025四川省資陽市人民政府政務(wù)服務(wù)中心招聘4人高頻重點提升(共500題)附帶答案詳解
- 華東師大版初中科學(xué)八年級上冊知識點
- 【MOOC】跨文化思想交流英語-南京理工大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年共青團(tuán)入團(tuán)考試測試題庫及答案
- 2024解析:第十二章機(jī)械效率-講核心(原卷版)
- 四川省德陽市(2024年-2025年小學(xué)五年級語文)人教版小升初真題(上學(xué)期)試卷及答案
- 2023年海南省公務(wù)員錄用考試《行測》真題卷及答案解析
- 2024-2030年中國語言培訓(xùn)行業(yè)競爭分析及發(fā)展策略建議報告版
- 女性健康知識講座課件
- 國際貿(mào)易規(guī)則變革研究
評論
0/150
提交評論