




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)專業(yè)基礎(chǔ)綜合(操作系統(tǒng))模擬試卷3(總分:68.00,做題時(shí)間:90分鐘)一、單項(xiàng)選擇題(總題數(shù):22,分?jǐn)?shù):44.00)單項(xiàng)選擇題1-40小題。下列每題給出的四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是最符合題目要求的。計(jì)算機(jī)系統(tǒng)中判別是否有中斷事件發(fā)生應(yīng)是在()。進(jìn)程切換時(shí)執(zhí)行完一條指令后 V執(zhí)行P操作后由用戶態(tài)轉(zhuǎn)入核心態(tài)時(shí)系統(tǒng)中,只有當(dāng)執(zhí)行完一條指令后,才判別是否有中斷發(fā)生。若當(dāng)前進(jìn)程因時(shí)間片用完而讓出處理機(jī)時(shí),該進(jìn)程應(yīng)轉(zhuǎn)變?yōu)?)狀態(tài)。就緒V等待運(yùn)行完成當(dāng)時(shí)間片用光后,進(jìn)程變?yōu)榫途w狀態(tài)。一種既有利于短小作業(yè)又兼顧到長(zhǎng)作業(yè)的作業(yè)調(diào)度算法是()。先來(lái)先服務(wù)輪轉(zhuǎn)最高響應(yīng)比優(yōu)先V均衡調(diào)度作業(yè)調(diào)度程序是從處于()狀態(tài)的作業(yè)中選取一個(gè)作業(yè)并把它裝入主存。輸入收容V執(zhí)行完成在作業(yè)調(diào)度中,選取的是正在收容的作業(yè)裝入內(nèi)存。進(jìn)程處于下列()等待狀態(tài)時(shí),它是處于非阻塞狀態(tài)。等待從鍵盤輸入數(shù)據(jù)等待協(xié)作進(jìn)程的一個(gè)信號(hào)等待操作系統(tǒng)分配CPU時(shí)間V等待網(wǎng)絡(luò)數(shù)據(jù)進(jìn)入內(nèi)存等待操作系統(tǒng)分配CPU時(shí)間屬于就緒狀態(tài),其他三種均屬于阻塞狀態(tài)。7?若系統(tǒng)中有五個(gè)并發(fā)進(jìn)程涉及某個(gè)相同的變量A,則變量A的相關(guān)臨界區(qū)是由()臨界區(qū)構(gòu)成。TOC\o"1-5"\h\z2個(gè)3個(gè)4個(gè)5個(gè) V在多進(jìn)程的并發(fā)系統(tǒng)中,肯定不會(huì)因競(jìng)爭(zhēng)()而產(chǎn)生死鎖。打印機(jī)磁帶機(jī)磁盤CPU V通常不采用()方法來(lái)解除死鎖。終止一個(gè)死鎖進(jìn)程終止所有死鎖進(jìn)程從死鎖進(jìn)程處搶奪資源從非死鎖進(jìn)程處搶奪資源丿解除死鎖的主要方法有:①終止一個(gè)或多個(gè)死鎖進(jìn)程;②剝奪死鎖進(jìn)程的資源。進(jìn)程所請(qǐng)求的一次打印輸出結(jié)束后,將使進(jìn)程狀態(tài)從()。運(yùn)行態(tài)變?yōu)榫途w態(tài)運(yùn)行態(tài)變?yōu)榈却龖B(tài)就緒態(tài)變?yōu)檫\(yùn)行態(tài)等待態(tài)變?yōu)榫途w態(tài)丿共享變量是指()訪問(wèn)的變量。只能被系統(tǒng)進(jìn)程只能被多個(gè)進(jìn)程互斥只能被用戶進(jìn)程可被多個(gè)進(jìn)程丿UNIX系統(tǒng)中,進(jìn)程調(diào)度采用的技術(shù)是()。時(shí)間片輪轉(zhuǎn)先來(lái)先服務(wù)靜態(tài)優(yōu)先數(shù)動(dòng)態(tài)優(yōu)先數(shù)丿死鎖現(xiàn)象是由于()造成的。CPU數(shù)量不足內(nèi)存數(shù)量不足多個(gè)進(jìn)程搶奪并獨(dú)占資源丿作業(yè)批處理死鎖是指多個(gè)進(jìn)程在占有一定資源的同時(shí)還寄希望得到其他進(jìn)程占有的資源,而該進(jìn)程也是占有一定的資源且不放棄的同時(shí)期望獲得其他進(jìn)程占有的資源,進(jìn)程間相互不讓步,造成各個(gè)進(jìn)程均無(wú)法推進(jìn)的現(xiàn)象。臨界區(qū)是指()。一組臨界資源的集合可共享的一塊內(nèi)存區(qū)訪問(wèn)臨界資源的一段代碼丿請(qǐng)求訪問(wèn)臨界資源的代碼每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段程序稱為臨界區(qū)(臨界資源是一次僅允許一個(gè)進(jìn)程使用的可輪流分享的資源)。使用時(shí),每次只準(zhǔn)許一個(gè)進(jìn)程進(jìn)入臨界區(qū),一旦一個(gè)進(jìn)程進(jìn)入臨界區(qū)之后,不允許其他進(jìn)程同時(shí)進(jìn)入。進(jìn)程進(jìn)入臨界區(qū)的調(diào)度原則是:(1)如果有若干進(jìn)程要求進(jìn)入空閑的臨界區(qū),一次僅允許一個(gè)進(jìn)程進(jìn)入。(2)任何時(shí)候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個(gè)。如已有進(jìn)程進(jìn)入自己的臨界區(qū),則其他所有試圖進(jìn)入臨界區(qū)的進(jìn)程必須等待。(3)進(jìn)入臨界區(qū)的進(jìn)程要在有限時(shí)間內(nèi)退出,以便其他進(jìn)程能及時(shí)進(jìn)入自己的臨界區(qū)。(4)如果進(jìn)程不能進(jìn)入自己的臨界區(qū),則應(yīng)讓出CPU,避免進(jìn)程出現(xiàn)“忙等”現(xiàn)象。在一段時(shí)間內(nèi),只允許一個(gè)進(jìn)程訪問(wèn)的資源稱為()。共享資源獨(dú)占資源臨界資源丿共享區(qū)在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,有一些資源不能被多個(gè)進(jìn)程同時(shí)使用,這樣的資源如果使用或分配不當(dāng)會(huì)造成錯(cuò)誤,它們只能被排他地使用,這樣的資源就是臨界資源。不需要信號(hào)量能實(shí)現(xiàn)的功能是()。進(jìn)程同步進(jìn)程互斥執(zhí)行的前趨關(guān)系進(jìn)程的并發(fā)執(zhí)行丿本題考查信號(hào)量的功能。在多道程序系統(tǒng)中,信號(hào)量機(jī)制是一種有效的實(shí)現(xiàn)進(jìn)程同步與互斥的工具。進(jìn)程執(zhí)行的前趨關(guān)系實(shí)質(zhì)上是指進(jìn)程的同步關(guān)系。除此以外,只有進(jìn)程的并發(fā)執(zhí)行不需要信號(hào)量來(lái)控制,因此正確答案為D。當(dāng)中斷發(fā)生后,進(jìn)入中斷處理的程序?qū)儆?)。用戶程序OS程序丿可能是用戶程序,也可能是OS程序單獨(dú)的程序,既不是用戶程序,也不是OS程序在現(xiàn)代操作系統(tǒng)的設(shè)計(jì)中,為了保證系統(tǒng)的安全,將系統(tǒng)的工作狀態(tài)劃分為目態(tài)和管態(tài)兩種,只有操作系統(tǒng)的核心才能工作在管態(tài),而中斷處理程序必須工作在管態(tài),故其屬于操作系統(tǒng)程序。某計(jì)算機(jī)系統(tǒng)中有8臺(tái)打印機(jī),有K個(gè)進(jìn)程競(jìng)爭(zhēng)使用,每個(gè)進(jìn)程最多需要3臺(tái)打印機(jī)。該系統(tǒng)可能會(huì)發(fā)生死鎖的K的最小值是()。TOC\o"1-5"\h\z234丿5當(dāng)K<4(即K的值取為3及其以下值)的時(shí)候,系統(tǒng)可以為某個(gè)進(jìn)程分配打印機(jī)資源,并可以確保在有限的時(shí)間內(nèi)使某個(gè)進(jìn)程完成并且退還其已經(jīng)占用的打印機(jī),進(jìn)而使各個(gè)進(jìn)程能夠依次順利地完成。而當(dāng)K24的時(shí)候,就構(gòu)成了死鎖需要的條件,會(huì)引起死鎖的產(chǎn)生,所以答案為Co進(jìn)程P0和P1的共享變量定義及其初值如下:booleanflag[2];intturn=0;flag[0]=false;flag[l]=false;若進(jìn)程P0和P1訪問(wèn)臨界資源的偽代碼按照下面設(shè)計(jì):voidP0()f//進(jìn)程P0voidPl(){//進(jìn)程Plwhile(TRUE){while(TRUE){flag[O]=TRUE;flag[O]=TRUE;turn=1;turn=0;while(flag[1]&&(turn==1))while(flag[0]&&(turn==0))臨界區(qū):臨界區(qū);flag[0]=FALSE;flag[l]=FALSE;}}}}則并發(fā)執(zhí)行進(jìn)程P0和P1時(shí)產(chǎn)生的情況是()。不能保證進(jìn)程互斥進(jìn)入臨界區(qū),會(huì)出現(xiàn)“饑餓”現(xiàn)象丿不能保證進(jìn)程互斥進(jìn)入臨界區(qū),不會(huì)出現(xiàn)“饑餓”現(xiàn)象能保證進(jìn)程互斥進(jìn)入臨界區(qū),會(huì)出現(xiàn)“饑餓”現(xiàn)象能保證進(jìn)程互斥進(jìn)入臨界區(qū),不會(huì)出現(xiàn)“饑餓”現(xiàn)象從題中給出的偽代碼可知,由于信號(hào)量nag的賦值方法不對(duì),因此會(huì)使得不能保證進(jìn)程互斥進(jìn)入臨界區(qū),會(huì)出現(xiàn)“饑餓”現(xiàn)象。下列選項(xiàng)中,降低進(jìn)程優(yōu)先級(jí)的合理時(shí)機(jī)是()o進(jìn)程的時(shí)間片用完丿進(jìn)程剛完成I/O,進(jìn)入就緒列隊(duì)進(jìn)程長(zhǎng)期處于就緒列隊(duì)進(jìn)程從就緒狀態(tài)轉(zhuǎn)為運(yùn)行狀態(tài)在此題中,進(jìn)程完成I/O,進(jìn)入就緒隊(duì)列;長(zhǎng)期處于就緒隊(duì)列的進(jìn)程需要盡快得到處理機(jī)為它服務(wù),進(jìn)程從就緒狀態(tài)轉(zhuǎn)為運(yùn)行狀態(tài)的時(shí)候也不能降低進(jìn)程的優(yōu)先級(jí),只有在進(jìn)程的時(shí)間片用完才是降低進(jìn)程優(yōu)先級(jí)的最好時(shí)機(jī)。21?假設(shè)與某類資源相關(guān)聯(lián)的信號(hào)量初值為3,當(dāng)前值為1,若M表示該資源的可用個(gè)數(shù),N表示等待該資源的進(jìn)程數(shù),則M、N分別是()。TOC\o"1-5"\h\z0、11、0丿1、22、0按照信號(hào)量的定義,與資源相關(guān)聯(lián)的信號(hào)量的取值是與當(dāng)前可用資源數(shù)量一致的,因此M為1,而依題意,目前沒(méi)有等候該資源的進(jìn)程,故N的值為0o下列選項(xiàng)中,導(dǎo)致創(chuàng)建新進(jìn)程的操作是()oI.用戶登錄成功II.設(shè)備分配III.啟動(dòng)程序執(zhí)行僅I和II僅II和III僅I和III丿I、II、III用戶登錄成功、啟動(dòng)程序執(zhí)行均會(huì)導(dǎo)致創(chuàng)建新進(jìn)程,而設(shè)備分配則不會(huì)二、綜合應(yīng)用題(總題數(shù):12,分?jǐn)?shù):24.00)綜合應(yīng)用題41-47小題。試修改下面生產(chǎn)者一消費(fèi)者問(wèn)題解法中的錯(cuò)誤。producer:beginrepeatproduceraniteminnextp;wait(mutex);wait(full);buffer(in):=nextp;signal(mutex);untilfalse;endconsUmer:beginrepeatwait(mutex);wait(empty);nextc:=buffer(out):out:=out+1;signal(mutex);consumeriteminnextc;untilfalse;end正確答案:(正確答案:producer:beginrepeatproduceraniteminnextp;wait(mutex):wait(full):/*應(yīng)為wait(empty),而且還應(yīng)該在wait(mutex)的前面*/buffer(in):=nextp: /*緩沖池?cái)?shù)組游標(biāo)應(yīng)前移:in:=(in+1)modn:*/signal(mutex);/*signal(full):*/untilfalse;endconsumer;beginrepeatwait(mutex):wait(empty); /*應(yīng)為wait(full),而且還應(yīng)該在wait(mutex)的前面*/nextc:=buffer(out):out:=out+1:/*考慮循環(huán),應(yīng)改為:out:=(out+1)roodn:*/signal(mutex):/*signal(empty);*/consumeriteminnextc:untilfalse;end)25.3個(gè)進(jìn)程Pl、P2、P3互斥使用一個(gè)包含N個(gè)(N〉0)單元的緩沖區(qū),Pl每次用produce()生成一個(gè)正整數(shù)并用put()送入緩沖區(qū)某一空單元中;P2每次用getodd()從該緩沖區(qū)中取出一個(gè)奇數(shù)并用countodd()統(tǒng)計(jì)奇數(shù)個(gè)數(shù);P3每次用geteven()從該緩沖區(qū)中取出一個(gè)偶數(shù)并用counteven()統(tǒng)計(jì)偶數(shù)個(gè)數(shù)。請(qǐng)用信號(hào)量機(jī)制實(shí)現(xiàn)這3個(gè)進(jìn)程的同步與互斥活動(dòng),并說(shuō)明所定義的信號(hào)量的含義。要求用偽代碼描述。正確答案:(正確答案:(1)定義信號(hào)量s1控制P1與P2之間的同步,s2控制P1與P3之間的同步,empty控制生產(chǎn)者與消費(fèi)者之間的同步,mutex控制進(jìn)程間互斥使用緩沖區(qū)。(2)程序如下:vars1=0,s2=0,empty=N,mutex=1:parbeginP1:beginX=produce(); /*生成一個(gè)數(shù)*/P(empty); /*判斷緩沖區(qū)是否有空單元*/P(mutex);/*緩沖區(qū)是否被占用*/Put():IfX%2==0V(s2); /*如果是偶數(shù),向P3發(fā)出信號(hào)*/elseV(s1); /*如果是奇數(shù),向P2發(fā)出信號(hào)*/V(mutex); /*使用完緩沖區(qū),釋放*/endP2:beginP(s1);/*收到P1發(fā)來(lái)的信號(hào),已產(chǎn)生一個(gè)奇數(shù)*/P(mutex); /*緩沖區(qū)是否被占用*/Getodd();Countodd():=eountodd()+1;V(mutex): /*釋放緩沖區(qū)*/V(empty); /*向P1發(fā)信號(hào),多出一個(gè)空單元*/endP3:beginP(s2)/*收到P1發(fā)來(lái)的信號(hào),已產(chǎn)生一個(gè)偶數(shù)*/P(mutex);/*緩沖區(qū)是否被占用*/Geteven();Counteven():=courlteven()+1;V(mutex); /*釋放緩沖區(qū)*/v(empty): /*向P1發(fā)信號(hào),多出一個(gè)空單元*/endparend)26?假設(shè)程序PA和PB單獨(dú)執(zhí)行時(shí)所需的時(shí)間分別用T和T表示,并且假設(shè)T=1h,T=1.5h,A B A B其中處理器工作時(shí)間分別為T=18min,T=27min,如果采用多道程序設(shè)計(jì)方法,讓PA和PB并行工AB作,假定處理器利用率達(dá)到50%,系統(tǒng)開(kāi)銷為15min,請(qǐng)問(wèn)系統(tǒng)效率能提高多少?正確答案:(正確答案:(1)在串行情況下,兩個(gè)程序運(yùn)行時(shí)間共計(jì)2.5h;在并行方式下,處理器利用率為50%,說(shuō)明處理器的工作時(shí)間占總運(yùn)行時(shí)間的50%。根據(jù)已知條件“處理器工作時(shí)間分別為T=18min,AT=27min”,即總運(yùn)行時(shí)間為(18+27)F50%(min),考慮到還有15min系統(tǒng)開(kāi)銷,故并行與串行的效B率比為并行處理所需的時(shí)間F串行處理所需要的時(shí)間總和=[(18+27)F50%+15]F2.5F60=70%。 (2)即采用多道處理技術(shù)之后,完成程序P和程序P所需的時(shí)間為串行處理方法的70%。因此可以說(shuō)效率提AB高了30%。)27.某多道程序設(shè)計(jì)系統(tǒng)配有一臺(tái)處理器和兩臺(tái)外設(shè)101、IO2,現(xiàn)有3個(gè)優(yōu)先級(jí)由高到低的J1、J2、J3都已裝入了主存,它們使用資源的先后順序和占用時(shí)間分別是:J1:IO2(30ms),CPU(10ms);IO1(30ms),CPU(10ms);J2:I01(20ms),CPU(20ms);I02(40ms);J3:CPU(30ms),I01(20ms)。處理器調(diào)度采用可搶占的優(yōu)先數(shù)算法,忽略其他輔助操作時(shí)間,回答下列問(wèn)題。(1)分別計(jì)算作業(yè)J1、J2和J3從開(kāi)始到完成所用的時(shí)間。(2)3個(gè)作業(yè)全部完成時(shí)CPU的利用率。(3)3個(gè)作業(yè)全部完成時(shí)外設(shè)101的利用率。
正確答案:(正確答案:為了清楚地描述作業(yè)執(zhí)行情況,我們對(duì)題目假設(shè)的情況分析如下:(1)J1占用102傳輸30ms時(shí),J1傳輸完成,搶占J2的CPU,運(yùn)行10ms,再傳輸30ms,運(yùn)行10ms,完成。J1從開(kāi)始到完成所用的時(shí)間為:30+10+30+10=80(ms)。J2與其并行地在101上傳輸20ms,搶占J3的CPU,J2運(yùn)行10ms后,被J1搶占CPU,等待10ms之后,J2再次得到CPU,運(yùn)行10ms,J2啟動(dòng)102傳輸,40ms完成。J2從開(kāi)始到完成所用的時(shí)間為:20+10+10+10+40=90(ms)。J3在CPU上執(zhí)行20ms,被J2搶占CPU,等待30ms,再運(yùn)行10ms,等待10ms,J3啟動(dòng)101運(yùn)行20ms的傳輸,完成。J3從開(kāi)始到完成所用的時(shí)間為20+30+10+10+20=90(ms)。(2)三個(gè)作業(yè)全部完成時(shí),CPU的利用率為(10+20+30+10)/90=7/9=78%。(3)三個(gè)作業(yè)全部完成時(shí),外設(shè)I01的利用率為(20+30+20)/90=7/9=78%。)28?有A、B兩個(gè)程序,程序A按順序使用CPU為10s,使用設(shè)備甲為5s,使用CPU為5s,使用設(shè)備乙為5s,最后使用CPU為10s。程序B按順序使用設(shè)備甲為10s、使用CPU為10s,使用設(shè)備乙為5s,再使用CPU為5s,使用設(shè)備乙為10s,試問(wèn):(1)在順序環(huán)境下執(zhí)行程序A和程序B,CPU的利用率是多少?(2)在多道程序環(huán)境下,CPU的利用率是多少?正確答案:(正確答案:此題考查學(xué)生對(duì)并發(fā)程序概念的理解。(1)程序A和程序B順序執(zhí)行時(shí),程序A執(zhí)行完畢程序B才開(kāi)始執(zhí)行。兩個(gè)程序共耗時(shí)75s,其中占用CPU的時(shí)間為40s,因此順序執(zhí)行時(shí)CPU的利用率為40F75=53%。 (2)在多道程序環(huán)境下,兩個(gè)程序并發(fā)執(zhí)行,其執(zhí)行情況如下表所示。由表中數(shù)據(jù)可以看出,兩個(gè)程序共耗時(shí)40s,其中CPU運(yùn)行時(shí)間為40s,故此時(shí)CPU的利用率為40/40=100%。 )29?何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?在解決死鎖問(wèn)題的幾個(gè)方法中,哪種方法最容易實(shí)現(xiàn)?哪種方法使資源的利用率最高?正確答案:(正確答案:(1)死鎖是指多個(gè)進(jìn)程因競(jìng)爭(zhēng)資源而造成的一種僵局,若無(wú)外力作用,這些進(jìn)程都將永遠(yuǎn)不能再向前推進(jìn)。(2)產(chǎn)生死鎖的原因有二,一是競(jìng)爭(zhēng)資源,二是進(jìn)程推進(jìn)順序非法。(3)產(chǎn)生死鎖的必要條件是互斥條件、請(qǐng)求和保持條件、不可剝奪條件和循環(huán)等待條件。(4)解決死鎖可歸納為四種方法:預(yù)防死鎖、避免死鎖、檢測(cè)死鎖和解除死鎖。(5)解決死鎖的四種方法中,預(yù)防死鎖是最容易實(shí)現(xiàn)的,而避免死鎖的發(fā)生則可以使資源的利用率最高。)30.簡(jiǎn)述預(yù)防死鎖的辦法。正確答案:(正確答案:(1)方法一:如果系統(tǒng)當(dāng)前存在的資源數(shù)量能夠滿足進(jìn)程的資源需求,便一次性地為進(jìn)程分配其所需的全部資源;在該進(jìn)程完成之后再一次性地回收全部資源。這個(gè)做法被稱為摒棄“請(qǐng)求和保持”條件,該方法可以預(yù)防死鎖。(2)方法二:當(dāng)系統(tǒng)中某些進(jìn)程在已經(jīng)占有一定數(shù)量資源的情況下,又提出新的資源請(qǐng)求,操作系統(tǒng)不能立即滿足該進(jìn)程的需求時(shí),該進(jìn)程必須立即釋放已經(jīng)占有和保持的所有資源,待以后需要時(shí)再重新申請(qǐng):這種可以剝奪進(jìn)程資源的做法可以有效地防止死鎖的產(chǎn)生。其被稱為摒棄“不可剝奪”條件。(3)方法三:就是采用一定的方法,將所有可提供的資源按類型排序編號(hào),所有進(jìn)程對(duì)資源的請(qǐng)求也必須嚴(yán)格按序號(hào)遞增的次序提出,避免產(chǎn)生資源占有和資源需求的回路出現(xiàn),造成死鎖的產(chǎn)生。此方法也被稱為摒棄“環(huán)路等待”條件。)31?為使用戶進(jìn)程互斥地進(jìn)入臨界區(qū),可以把整個(gè)臨界區(qū)實(shí)現(xiàn)成不可中斷的過(guò)程,即用戶有屏蔽所有中斷的能力。每當(dāng)用戶程序進(jìn)入臨界區(qū)的時(shí)候,屏蔽所有中斷;當(dāng)出了臨界區(qū)的時(shí)候,再開(kāi)放所有中斷。你認(rèn)為這種方法有什么缺點(diǎn)?正確答案:(正確答案:此題主要考查中斷概念在操作系統(tǒng)設(shè)計(jì)過(guò)程中的重要作用與臨界區(qū)的概念。用戶進(jìn)程進(jìn)入臨界區(qū)時(shí)屏蔽所有中斷,包括系統(tǒng)程序的中斷。假如屏蔽的是用戶進(jìn)程,確實(shí)可以保護(hù)臨界資源,但如果連系統(tǒng)所發(fā)出的中斷也被屏蔽的話,就會(huì)引起系統(tǒng)錯(cuò)誤。雖然系統(tǒng)外中斷往往與當(dāng)前運(yùn)行的程序無(wú)關(guān),但如果是一些重要的硬件中斷,如電源故障等,就可能會(huì)引起錯(cuò)誤,故不可盲目屏蔽所有中斷。)有三個(gè)進(jìn)程PA、PB和PC合作解決文件打印問(wèn)題:PA將文件記錄從磁盤讀入主存的緩沖區(qū)1,每執(zhí)行一次讀一個(gè)記錄;PB將緩沖區(qū)1的內(nèi)容復(fù)制到緩沖區(qū)2,每執(zhí)行一次復(fù)制一個(gè)記錄;PC將緩沖區(qū)2的內(nèi)容打印出來(lái),每執(zhí)行一次打印一個(gè)記錄。緩沖區(qū)的大小等于一個(gè)記錄的大小。請(qǐng)用P、V操作來(lái)保證文件的正確打印。
正確答案:(正確答案:本題考查用P、V操作解決進(jìn)程的同步互斥問(wèn)題。(1)進(jìn)程PA、PB、PC之間的關(guān)系為:PA與PB共用一個(gè)單緩沖區(qū),B又與PC共用一個(gè)單緩沖區(qū),其合作方式如下圖所示。當(dāng)緩沖區(qū)1為空時(shí),進(jìn)程PA可將一個(gè)記錄讀入其中;若緩沖區(qū)1中有數(shù)據(jù)且緩沖區(qū)2為空,則進(jìn)程PB可將記錄從緩沖區(qū)1復(fù)制到緩沖區(qū)2中;若緩;中區(qū)2中有數(shù)據(jù),則進(jìn)程PC可以打印記錄。在其他條件下,相應(yīng)進(jìn)程必須等待。事實(shí)上,這是一個(gè)生產(chǎn)者一消費(fèi)者問(wèn)題。為遵循這一同步規(guī)則。應(yīng)設(shè)置4個(gè)信號(hào)量empty1、empty2、full1、full2,信號(hào)量empty1和empty2分別表示緩沖區(qū)1及緩沖區(qū)2是否為空,其初值為1;信號(hào)量full1和full2分別表示緩區(qū)1及緩沖區(qū)2是否有記錄可供處理,其初值為0。(2)相應(yīng)的進(jìn)程描述如下:semaphoreemptyl=1://緩沖區(qū)1是否為空semaphorefulll=0://緩沖區(qū)1是否有記錄可供處理semaphoreempty2=1;//緩沖區(qū)2是否為空semaphorefull2=0://緩沖區(qū)2是否有記錄可供處理cobegin{processPA(){while(TRuE){從磁盤讀入一條記錄;P(emptyl);將記錄存入緩沖區(qū)1待。事實(shí)上,這是一個(gè)生產(chǎn)者一消費(fèi)者問(wèn)題。V(fulll);}}processPB(){while(TRUE){P(fulll);從緩沖區(qū)1中取出一條記錄;V(empty1);P(empty2);將取出的記錄存入緩沖區(qū)2;V(full2); }}processPC(){while(TRUE){P(full2);從緩沖區(qū)2中取出一條記錄:V(empty2):將取出的記錄打印出來(lái):}}}coend)在一問(wèn)酒吧里有3個(gè)音樂(lè)愛(ài)好者隊(duì)列,第1隊(duì)的音樂(lè)愛(ài)好者只有隨身聽(tīng),第2隊(duì)只有音樂(lè)磁帶,第3隊(duì)只有電池。而要聽(tīng)音樂(lè)就必須隨身聽(tīng)、音樂(lè)磁帶和電池這3種物品俱全。酒吧老板一次出售這3種物品中的任意兩種。當(dāng)一名音樂(lè)愛(ài)好者得到這3種物品并聽(tīng)完一首樂(lè)曲后,酒吧老板才能再一次出售這3種物品中的任意兩種。于是第2名音樂(lè)愛(ài)好者得到這3種物品,并開(kāi)始聽(tīng)樂(lè)曲。全部買賣就這樣進(jìn)行下去。試用P、V操作正確解決這一買賣。正確答案:(正確答案:本題考查用P、V操作解決進(jìn)程的同步互斥問(wèn)題。(1)第1隊(duì)音樂(lè)愛(ài)好者要競(jìng)爭(zhēng)“待出售的音樂(lè)磁帶和電池”,而且在初始狀態(tài)下系統(tǒng)并無(wú)“待出售的音樂(lè)磁帶和電池”,故可為該種資源設(shè)置一初值為0的信號(hào)量buy1;同樣,需設(shè)置初值為0的buy2、buy3分別對(duì)應(yīng)“待出售的隨身聽(tīng)和電池”、“待出售的隨身聽(tīng)和音樂(lè)磁帶”。另外,為了同步買者的付費(fèi)動(dòng)作和賣者的給貨動(dòng)作,還需設(shè)置信號(hào)量payment和goods,以保證買者在付費(fèi)后才能得到所需商品。信號(hào)量music_over用來(lái)同步音樂(lè)愛(ài)好者聽(tīng)樂(lè)曲和酒吧老板的下一次出售行為。(2)具體的算法描述如下:semaphorebuy1=buy2=buy3=0?semaphorepayment=0;semaphoregoods=0:semaphoremusic_over=0;cobegin{processboss(){//酒吧老板while(TRUE){拿出任意兩種物品出售;if(出售的是音樂(lè)磁帶和電池)V(buy1);elseif(出售的是隨身聽(tīng)和電池)V(buy2):elseif(出售的是隨身聽(tīng)和音樂(lè)磁帶)V(buy3);P(payment); //等待付費(fèi)V(goods); //給貨P(music_over); //等待樂(lè)曲結(jié)束}}processfanl(){//第1隊(duì)音樂(lè)愛(ài)好者while(TRUE){P(buy1);//等待有音樂(lè)磁帶和電池出售V(payment);//付費(fèi)P(goods);//取貨欣賞一曲樂(lè)曲:V(music_over);//通知老板樂(lè)曲結(jié)束}}processfan2(){//第2隊(duì)音樂(lè)愛(ài)好者while(TRUE){P(buy2);//等待有隨身聽(tīng)和電池出售V(payment);//付費(fèi)P(goo
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 超速行駛與交通安全管理培訓(xùn)課件
- 肺全切除術(shù)護(hù)理常規(guī)
- 銷售助理培訓(xùn)總結(jié)
- 面肌痙攣治療
- 風(fēng)濕性心臟病患者的護(hù)理
- AIGC商業(yè)應(yīng)用實(shí)戰(zhàn)教程 課件 6-2 AIGC商業(yè)圖像衍生應(yīng)用
- 膽道殘余結(jié)石治療
- 康復(fù)行業(yè)研究報(bào)告
- 資產(chǎn)相關(guān)業(yè)務(wù)培訓(xùn)
- 零售商業(yè)環(huán)境分析表格
- 社交媒體對(duì)消費(fèi)者行為的影響調(diào)研報(bào)告
- 人防工程管理制度范本(三篇)
- GB/T 15822.1-2024無(wú)損檢測(cè)磁粉檢測(cè)第1部分:總則
- 計(jì)算機(jī)一級(jí)考試WPS試題及答案
- 快樂(lè)讀書吧《孤獨(dú)的小螃蟹》整本書閱讀指導(dǎo)課教學(xué)設(shè)計(jì)-2023-2024學(xué)年語(yǔ)文二年級(jí)上冊(cè)統(tǒng)編版
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題庫(kù)及答案
- 五、完成課題的可行性分析
- 全科醫(yī)生題庫(kù)附有答案
- DL∕T 5765-2018 20kV及以下配電網(wǎng)工程工程量清單計(jì)價(jià)規(guī)范
- 2024年衡水市安平縣小升初數(shù)學(xué)高頻考點(diǎn)檢測(cè)卷含解析
- Unit2 Special days 單元整體教學(xué)設(shè)計(jì)(1.2) 人教版新起點(diǎn)(一年級(jí)起點(diǎn))五年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論