![專業(yè)綜合操作系統(tǒng)練習(xí)題_第1頁](http://file4.renrendoc.com/view11/M02/03/3C/wKhkGWWYuYqAUrbqAAIJkTQTUI0779.jpg)
![專業(yè)綜合操作系統(tǒng)練習(xí)題_第2頁](http://file4.renrendoc.com/view11/M02/03/3C/wKhkGWWYuYqAUrbqAAIJkTQTUI07792.jpg)
![專業(yè)綜合操作系統(tǒng)練習(xí)題_第3頁](http://file4.renrendoc.com/view11/M02/03/3C/wKhkGWWYuYqAUrbqAAIJkTQTUI07793.jpg)
![專業(yè)綜合操作系統(tǒng)練習(xí)題_第4頁](http://file4.renrendoc.com/view11/M02/03/3C/wKhkGWWYuYqAUrbqAAIJkTQTUI07794.jpg)
![專業(yè)綜合操作系統(tǒng)練習(xí)題_第5頁](http://file4.renrendoc.com/view11/M02/03/3C/wKhkGWWYuYqAUrbqAAIJkTQTUI07795.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
(三)同步與互斥第一頁1第二頁,共49頁。1.
進(jìn)程同步的基本概念多道程序系統(tǒng)中,進(jìn)程之間有兩種形式的制約關(guān)系:(1)間接相互制約:源于資源共享(2)直接相互制約:源于進(jìn)程合作進(jìn)程同步:主要源于進(jìn)程合作 是進(jìn)程之間的直接制約關(guān)系進(jìn)程互斥:主要源于進(jìn)程共享 是進(jìn)程之間的間接制約關(guān)系第二頁2第三頁,共49頁。臨界資源:一次只允許一個(gè)進(jìn)程使用的資源。 如:打印機(jī),公共變量臨界區(qū):在每個(gè)進(jìn)程中,訪問臨界資源的那段程序。同步機(jī)制遵循的準(zhǔn)則:空閑讓進(jìn),忙則等待,有限等待,讓權(quán)等待當(dāng)臨界區(qū)空閑時(shí),進(jìn)程可以立即進(jìn)入,以便有效利用臨界資源當(dāng)已有進(jìn)程進(jìn)入臨界區(qū)時(shí),其它進(jìn)程必須等待,以保證互斥對(duì)要求進(jìn)入的進(jìn)程,應(yīng)在有限的時(shí)間內(nèi)使之進(jìn)入,以避免“死等”對(duì)于等待的進(jìn)程,它必須立即釋放處理機(jī),以避免進(jìn)程忙等第三頁3第四頁,共49頁。2.
實(shí)現(xiàn)臨界區(qū)互斥的基本方法進(jìn)程互斥的硬件方法(1)檢測和設(shè)置(TS)指令(2)swap指令(或exchange)交換兩個(gè)字(字節(jié))的內(nèi)容用軟件實(shí)現(xiàn)的同步互斥機(jī)制在進(jìn)入?yún)^(qū)設(shè)置和檢查一些標(biāo)志
(1)算法一:單標(biāo)志法(2)算法二:雙標(biāo)志法先檢查(3)算法三:雙標(biāo)志法后檢查(4)算法四:Peterson算法第四頁4第五頁,共49頁。【例1】(錯(cuò)誤解法)(turn是int型的變量,初始化為i或j)算法一能夠保證同一時(shí)刻只有一個(gè)進(jìn)程在臨界區(qū)中,但是卻要求進(jìn)程Pi和進(jìn)程Pj輪流地訪問臨界區(qū),若進(jìn)程Pi不打算進(jìn)入臨界區(qū),那么進(jìn)程Pj在進(jìn)入過一次臨界區(qū)后就再也不能進(jìn)入。所以不滿足空閑讓進(jìn)和有限等待的兩個(gè)準(zhǔn)則。第五頁5第六頁,共49頁。【例2】(錯(cuò)誤解法)(flag[2]是bool型的數(shù)組,兩個(gè)元素初始化為false)算法二消除了算法一中需要兩個(gè)進(jìn)程輪流訪問臨界區(qū)的錯(cuò)誤,但卻存在兩個(gè)進(jìn)程都進(jìn)不了臨界區(qū)的可能性,仍然不能滿足空閑讓進(jìn)和有限等待。第六頁6第七頁,共49頁?!纠?】算法三(正確解法,又稱為Dekker算法)(turn是int型的變量,初始化為i或j;flag[2]是bool型的數(shù)組,兩個(gè)元素初始化為false)Dekker算法結(jié)合了算法一和算法二,實(shí)現(xiàn)了空閑讓進(jìn)和忙則等待。基本上Dekker算法是個(gè)正確的算法,能夠正常工作。第七頁7第八頁,共49頁?!纠?】算法四(正確解法,又稱為Peterson算法)(turn是int型的變量,初始化為i或j;flag[2]是bool型的數(shù)組,兩個(gè)元素初始化為false)Peterson算法與Dekker算法類似,實(shí)現(xiàn)了空閑讓進(jìn)、忙則等待和有限等待。相比而言,Dekker算法比較復(fù)雜,證明起來也比較困難,而Peterson算法較簡潔。第八頁8第九頁,共49頁?!纠?1】(2010年聯(lián)考第27題)進(jìn)程P0和P1的共享變量定義及其初值為: booleanfalg[2]; intturn=0; falg[0]=FALSE;falg[1]=FALSE;若進(jìn)程P0和P1訪問臨界資源的類C偽代碼實(shí)現(xiàn)如下:voidP0()//進(jìn)程P0{while(TRUE){flag[0]=TRUE;turn=1;while(flag[1]&&turn==1);臨界區(qū);flag[0]=FALSE;}}voidP1()//進(jìn)程P1{while(TRUE){flag[1]=TRUE;turn=0;while(flag[0]&&turn==0);臨界區(qū);flag[1]=FALSE;}}則并發(fā)執(zhí)行進(jìn)程P0和P1時(shí)產(chǎn)生的情形是A.不能保證進(jìn)程互斥進(jìn)入臨界區(qū)、會(huì)出現(xiàn)“饑餓”現(xiàn)象B.不能保證進(jìn)程互斥進(jìn)入臨界區(qū)、不會(huì)出現(xiàn)“饑餓”現(xiàn)象C.能保證進(jìn)程互斥進(jìn)入臨界區(qū)、會(huì)出現(xiàn)“饑餓”現(xiàn)象D.能保證進(jìn)程互斥進(jìn)入臨界區(qū)、不會(huì)出現(xiàn)“饑餓”現(xiàn)象00000000第九頁9第十頁,共49頁。3.信號(hào)量信號(hào)量機(jī)制由:信號(hào)量”“wait操作(P操作)、signal操作(V操作)”兩部分組成,可用來解決進(jìn)程的互斥與同步。P、V操作是原子操作,不可中斷。(1)整型信號(hào)量定義:表示資源的個(gè)數(shù)的整型量S。除初始化外,僅能通過以下兩個(gè)原子操作來訪問。
wait(S)(P操作):While(S<=0); S=S-1;
signal(S)(V操作): S=S+1;第十頁10第十一頁,共49頁。3.信號(hào)量(2)記錄型信號(hào)量 在記錄型信號(hào)量中,引入了代表資源數(shù)目的整型變量value和用于鏈接所有等待該資源的進(jìn)程鏈表L,記錄型數(shù)據(jù)結(jié)構(gòu)如下所示: Typedefstruct { intvalue; QueueL; }semaphore;
若有semaphoreS;相應(yīng)的wait(S)和signal(S)操作可描述為:wait(S){S.value=S.value-1;if(S.value<0)block(S.L);}signal(S){S.value=S.value+1;if(S.value<=0)wakeup(S.L);}第十一頁11第十二頁,共49頁。(1)一般考查對(duì)記錄型信號(hào)量的理解。信號(hào)量的物理含義:S.value>0表示有S.value個(gè)資源可用;S.value==0表示無資源可用;S.value<0則|S.value|表示等待隊(duì)列中的進(jìn)程個(gè)數(shù)。說明:根據(jù)以上信號(hào)量的物理意義,可以計(jì)算信號(hào)量的變化范圍。(2)S.value的初值表示系統(tǒng)中某類資源的數(shù)目,稱為資源信號(hào)量。若S.value的初值為1,表示只允許一個(gè)進(jìn)程訪問,此時(shí)信號(hào)量轉(zhuǎn)化為互斥信號(hào)量。(3)對(duì)信號(hào)量只能執(zhí)行wait、signal操作 wait(S)表示申請(qǐng)一個(gè)資源; signal(S)表示釋放一個(gè)資源。注意:整型信號(hào)量不會(huì)取負(fù)值,可由此判斷題目中的信號(hào)量是整型信號(hào)量還是記錄型信號(hào)量。掌握信號(hào)量的物理意義第十二頁12第十三頁,共49頁?!纠?】有m個(gè)進(jìn)程共享同一臨界資源,若使用信號(hào)量機(jī)制實(shí)現(xiàn)對(duì)一臨界資源的互斥訪問,則信號(hào)量的變化范圍是()。 A.1至-(m-1) B.1至m-1 C.1至-m D.1至m【答案】A第十三頁13第十四頁,共49頁?!纠?】設(shè)兩個(gè)進(jìn)程共用一個(gè)臨界資源的互斥信號(hào)量mutex,當(dāng)mutex=1時(shí)表示()。A.一個(gè)進(jìn)程進(jìn)入了臨界區(qū),另一個(gè)進(jìn)程等待B.沒有一個(gè)進(jìn)程進(jìn)入臨界區(qū)C.兩個(gè)進(jìn)程都進(jìn)入了臨界區(qū)D.兩個(gè)進(jìn)程都在等待【答案】B第十四頁14第十五頁,共49頁?!纠?】如果有三個(gè)進(jìn)程共享同一程序段,而且每次最多允許兩個(gè)進(jìn)程進(jìn)入該程序段,則信號(hào)量的初值應(yīng)設(shè)置為()。A.3B.1C.2D.0【答案】C【例8】當(dāng)一進(jìn)程因在記錄型信號(hào)量S上執(zhí)行P(S)操作而被阻塞后,S的值為()。A.>0B.<0C.>=0D.<=0【答案】B第十五頁15第十六頁,共49頁。4.
管程管程的定義:管程是關(guān)于共享資源的數(shù)據(jù)結(jié)構(gòu)及一組針對(duì)該資源的操作所構(gòu)成的軟件模塊。管程是一種編程語言的構(gòu)件,它的實(shí)現(xiàn)需要得到編譯器的支持。一個(gè)管程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程所運(yùn)行的一組操作,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù)。管程由三部分組成:局部于管程的共享數(shù)據(jù)說明;對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程;對(duì)局部于管程的數(shù)據(jù)設(shè)置初始值的語句。第十六頁16第十七頁,共49頁。生產(chǎn)者-消費(fèi)者問題讀者-寫者問題哲學(xué)家進(jìn)餐問題5.
經(jīng)典同步問題第十七頁17第十八頁,共49頁。利用信號(hào)量機(jī)制實(shí)現(xiàn)互斥的模式使多個(gè)進(jìn)程互斥的訪問某臨界資源:(1)首先,需為該資源設(shè)置一互斥信號(hào)量mutex, 并設(shè)其初始值為1;(2)然后,將各進(jìn)程訪問臨界資源的臨界區(qū)置于 wait(mutex)和signal(mutex)之間即可。例如,用記錄型信號(hào)量實(shí)現(xiàn)兩個(gè)進(jìn)程互斥地使用一臺(tái)打印機(jī)。semaphoremutex=1;main(){CobeginProcess1(){ … wait(mutex);criticalsectionsignal(mutex); … }Process2(){ … wait(mutex);criticalsectionsignal(mutex);… }Coend}說明:每個(gè)程序中用于實(shí)現(xiàn)互斥的wait(mutex)和 signal(mutex)必須成對(duì)地出現(xiàn)。第十八頁18第十九頁,共49頁。用信號(hào)量機(jī)制實(shí)現(xiàn)同步的模式P1執(zhí)行語句L1后P2才能開始語句L2的執(zhí)行,則P1和P2之間必須同步。設(shè)S為兩個(gè)并發(fā)進(jìn)程P1、P2的公共信號(hào)量,初值為0(其初值可以根據(jù)實(shí)際情況確定)。使用信號(hào)量解決進(jìn)程同步問題描述如下:semaphoreS=0;main(){CobeginP1(){ … L1;signal(S); …}P2(){ … wait(S); L2; …}Coend}第十九頁19第二十頁,共49頁。信號(hào)量機(jī)制操作實(shí)現(xiàn)互斥或同步的一般步驟:由問題給出條件,確定有幾個(gè)或幾類進(jìn)程;確定進(jìn)程間的制約關(guān)系是互斥還是同步;確定各進(jìn)程間通過哪些信號(hào)量實(shí)現(xiàn)彼此的制約,標(biāo)明信號(hào)量的含義和初值。用P、V操作寫出相應(yīng)的代碼段。驗(yàn)證代碼的正確性:設(shè)以不同的次序運(yùn)行各進(jìn)程,是否能保證問題的圓滿解決。切忌按固定順序執(zhí)行各進(jìn)程。第二十頁20第二十一頁,共49頁。在生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程中,signal操作的次序無關(guān)緊要,但兩個(gè)wait操作的次序卻不能顛倒,否則可能導(dǎo)致死鎖,即,應(yīng)先執(zhí)行對(duì)資源信號(hào)量的wait操作,再執(zhí)行對(duì)互斥信號(hào)量的wait操作,這一點(diǎn)要特別注意。第二十一頁21第二十二頁,共49頁。注意由于緩沖區(qū)有N個(gè),而且緩沖區(qū)又是臨界資源,因此,需要增加一個(gè)信號(hào)量mutex來實(shí)現(xiàn)對(duì)緩沖區(qū)的互斥訪問,其初始值為1。需要特別強(qiáng)調(diào)的是,這種情況下,mutex不能省略。對(duì)緩沖區(qū)的互斥訪問可以看作是對(duì)緩沖入口的互斥訪問,當(dāng)生產(chǎn)者使用緩沖區(qū)時(shí),不允許消費(fèi)者進(jìn)入緩沖區(qū),反之亦然。在每個(gè)程序中用于實(shí)現(xiàn)互斥的wait(mutex)和signal(mutex)必須成對(duì)地出現(xiàn);對(duì)資源信號(hào)量empty和full的wait和signal操作,同樣需要成對(duì)地出現(xiàn),但它們分別處于不同的程序中。在每個(gè)程序中的多個(gè)wait操作順序同樣不能顛倒,應(yīng)先執(zhí)行對(duì)資源信號(hào)量的wait操作,然后再執(zhí)行對(duì)互斥信號(hào)量的wait操作,否則可能引起進(jìn)程死鎖。第二十二頁22第二十三頁,共49頁?!纠?】如圖示,有多個(gè)PUT操作同時(shí)向Buff1放數(shù)據(jù),有一個(gè)MOVE操作不斷地將Buff1的數(shù)據(jù)移到Buff2,有多個(gè)GET操作不斷地從Buff2中將數(shù)據(jù)取走。Buff1的容量為m,Buff2的容量是n,PUT、MOVE、GET每次操作一個(gè)數(shù)據(jù),在操作的過程中要保證數(shù)據(jù)不丟失。試用P、V原語協(xié)調(diào)PUT、MOVE的操作,并說明每個(gè)信號(hào)量的含義和初值。第二十三頁23第二十四頁,共49頁。設(shè)置6個(gè)信號(hào)量full1、empty1、B-M1、full2、empty2、B-M2,它們的含義和初值如下:full1表示Buff1是否有數(shù)據(jù),初值為0;empty1表示Buff1有空間,初值為m;B-M1表示Buff1是否可操作,初值為1;Full2表示Buff2是否有數(shù)據(jù),初值為0;Empty2表示Buff2有空間,初值為n;B-M2表示Buff2是否可操作,初值為1;第二十四頁24第二十五頁,共49頁?!纠?0】(2009年第45題,7分)三個(gè)進(jìn)程P1、P2、P3互斥使用一個(gè)包含N(N>0)個(gè)單元的緩沖區(qū)。P1每次用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)這三個(gè)進(jìn)程的同步與互斥活動(dòng),并說明所定義的信號(hào)量的含義。要求用偽代碼描述?!痉治觥勘绢}目考查進(jìn)程的同步與互斥。本題目是蘋果-桔子問題的變形。進(jìn)程P1可以看做是生產(chǎn)者,進(jìn)程P2和P3可看做是消費(fèi)者,進(jìn)程P1和P2、P3共享大小為N的緩沖區(qū)。進(jìn)程P1、P2和P3需互斥使用緩沖區(qū),P1進(jìn)程需要與P2進(jìn)程、P3進(jìn)程同步。第二十五頁25第二十六頁,共49頁。第二十六頁26第二十七頁,共49頁。第二十七頁27第二十八頁,共49頁。第二十八頁28第二十九頁,共49頁。第二十九頁29第三十頁,共49頁?!纠?1】在一輛公共汽車上,司機(jī)和售票員各行其職,司機(jī)負(fù)責(zé)開車和到站停車;售票員負(fù)責(zé)售票和開、關(guān)門,當(dāng)售票員關(guān)好車門后,司機(jī)才能繼續(xù)開車行駛。試用P、V操作實(shí)現(xiàn)司機(jī)與售票員之間的同步。
【分析】這里存在兩種同步關(guān)系: 司機(jī)到站停車后,售票員才能開門; 售票員關(guān)好車門后,司機(jī)才能啟動(dòng)汽車。第三十頁30第三十一頁,共49頁。設(shè)初始狀態(tài)為停車,車門開。設(shè)信號(hào)量:close表示門是否已關(guān),能否啟動(dòng)車輛
stop表示車是否已停,能否開車門semaphoreclose=0,stop=1;main(){ Cobegin drive() {While(true){
P(close); 啟動(dòng)車輛; 正常行駛; 到站停車;
V(stop); } }Conductor() {While(true){ 關(guān)車門;
V(close);
售票;
P(stop); 開車門; 上下乘客; } } }第三十一頁31第三十二頁,共49頁?!纠?2】(2011年聯(lián)考第45題)某銀行提供一個(gè)服務(wù)窗口和10個(gè)供顧客等待的座位。顧客到達(dá)銀行時(shí),若有空座位則到取號(hào)機(jī)上領(lǐng)取一個(gè)號(hào),等待叫號(hào)。取號(hào)機(jī)每次僅允許一位顧客使用。當(dāng)營業(yè)員空閑時(shí),通過叫號(hào)選取一位顧客,并為其服務(wù)。顧客和營業(yè)員的活動(dòng)過程描述如下:Cobegin{Process顧客i{ 從取號(hào)機(jī)獲得一個(gè)號(hào)碼; 等待叫號(hào); 獲得服務(wù);}Process營業(yè)員{while(TRUE){ 叫號(hào); 為顧客服務(wù); }}}Coend請(qǐng)?zhí)砑颖匾男盘?hào)量和P、V(或wait()、signal())操作,實(shí)現(xiàn)上述過程中的互斥與同步。要求寫出完整過程,說明信號(hào)量的含義并賦初值?!痉治觥浚?)互斥關(guān)系:顧客需互斥使用取號(hào)機(jī),設(shè)一互斥信號(hào)量mutex,初值為1;(2)同步關(guān)系:顧客需要獲得空座位等待叫號(hào),當(dāng)營業(yè)員空閑時(shí),將選取一位顧客并為其服務(wù)。第三十二頁32第三十三頁,共49頁。Semaphoremutex=1;//互斥使用取號(hào)機(jī)Semaphoreempty=10;//空座位的數(shù)量Semaphorefull=0;//已占座位的數(shù)量Semaphoreservice=0;//等待叫號(hào)Cobegin{ process顧客i {
P(empty);
P(mutex); 從取號(hào)機(jī)獲得一個(gè)號(hào);
V(mutex); V(full);
P(service);
//等待叫號(hào) 獲得服務(wù); }process營業(yè)員{while(TRUE){ P(full);
V(empty);
V(service);
//叫號(hào)
為顧客服務(wù); }}第三十三頁33第三十四頁,共49頁?!纠?3】有橋如圖所示,車流如箭頭所示,橋上不允許兩車交匯,但允許同方向多輛車依次通過(即橋上可以有多個(gè)同方向的車)。用P、V操作實(shí)現(xiàn)交通管理以防止橋上堵塞。橋北南【分析】本題目類似“讀者—寫作”問題,但又有所不同。這個(gè)題目要解決:南、北互斥(橋上不允許兩車交匯,相當(dāng)于“讀、寫互斥”),需要設(shè)置一個(gè)互斥信號(hào)量mutex,初值為1;南、南共享(相當(dāng)于“讀、讀共享”),套用實(shí)現(xiàn)“讀、讀共享”的模式,需要設(shè)置一個(gè)共享變量south,用于記錄當(dāng)前橋上向南行駛過橋的車輛數(shù)目,初值為0,再設(shè)置一個(gè)互斥信號(hào)量smutex,實(shí)現(xiàn)對(duì)south的互斥訪問;北、北共享(也相當(dāng)于“讀、讀共享”),需要設(shè)置一個(gè)共享變量north,用于記錄當(dāng)前橋上向北行駛過橋的車輛數(shù)目,初值為0,再設(shè)置一個(gè)互斥信號(hào)量nmutex,實(shí)現(xiàn)對(duì)north的互斥訪問。第三十四頁34第三十五頁,共49頁。semaphoremutex=1,smutex=1,nmutex=1;intsouth=0,north=0;main(){ Cobegin Tosouth(); Tonorth(); Coend }Tosouth(){While(1){
P(smutex); if(south==0)P(mutex);/*當(dāng)?shù)?輛向南的車輛過橋時(shí),阻止向北車輛過橋*/ south++
V(smutex); 過橋;
P(smutex); south--; If(south==0)V(mutex);
/*當(dāng)最后1輛向南的車輛過橋后,允許向北車輛過橋*/
V(smutex);}}Tonorth(){While(1){ P(nmutex); If(north==0)P(mutex);
/*當(dāng)?shù)?輛向北的車輛過橋時(shí), 阻止向南車輛過橋*/ north++ V(nmutex); 過橋; P(nmutex); north--; If(north==0)V(mutex);
/*當(dāng)最后1輛向北的車輛過橋后, 允許向南車輛過橋*/ V(nmutex); }}第三十五頁35第三十六頁,共49頁。1.(2010年聯(lián)考第25題)設(shè)與某資源關(guān)聯(lián)的信號(hào)量初值為3,當(dāng)前值為1。若M表示該資源的可用個(gè)數(shù),N表示等待該資源的進(jìn)程數(shù),則M、N分別是()。 A.0、1B.1、0C.1、2D.2、0【答案】B練習(xí)第三十六頁36第三十七頁,共49頁。2.設(shè)兩個(gè)進(jìn)程共用一個(gè)臨界資源的互斥信號(hào)量mutex,當(dāng)mutex=-1時(shí)表示()。 A.一個(gè)進(jìn)程進(jìn)入了臨界區(qū),另一個(gè)進(jìn)程等待 B.沒有一個(gè)進(jìn)程進(jìn)入臨界區(qū) C.兩個(gè)進(jìn)程都進(jìn)入了臨界區(qū) D.兩個(gè)進(jìn)程都在等待【答案】A練習(xí)第三十七頁37第三十八頁,共49頁。3、(2011年聯(lián)考第32題)有兩個(gè)并發(fā)執(zhí)行的進(jìn)程P1和P2,共享初值為1的變量x。P1對(duì)x加1,P2對(duì)x減1。加1和減1操作的指令序列分別如下所示。//加1操作 //減1操作
LoadR1,x//取x到寄存器中 LoadR2,xIncR1 decR2Storex,R1//將R的內(nèi)容存入x Storex,R2兩個(gè)操作完成后,x的值()。 A.可能為-1B.只能為1 C.可能為0、1、2D.可能為-1、0、1、2【答案】C練習(xí)第三十八頁38第三十九頁,共49頁。4、某車站售票廳,任何時(shí)刻最多可容納20名購票者進(jìn)入,當(dāng)售票廳中少于20名購票者時(shí),則廳外的購票者可立即進(jìn)入,否則需在外面等待。若把一個(gè)購票者看作一個(gè)進(jìn)程,請(qǐng)回答下列問題:(1)用PV操作管理這些并發(fā)進(jìn)程時(shí),應(yīng)怎樣定義信號(hào)量,寫出信號(hào)量的初值以及信號(hào)量各種取值的含義。(2)根據(jù)所定義的信號(hào)量,利用PV操作寫出能正確并發(fā)執(zhí)行的進(jìn)程。(3)若欲購票者最多為n個(gè)人,寫出信號(hào)量可能的變化范圍(最大值和最小值)。第三十九頁39第四十頁,共49頁。4.【分析】本題目考查進(jìn)程的同步問題?!敬鸢浮?1)定義一信號(hào)量S,初始值為20。S>0S的值表示可繼續(xù)進(jìn)入售票廳的人數(shù)S=0表示售票廳中已有20名顧客(購票者)S<0|S|的值為等待進(jìn)入售票廳的人數(shù)(2)COBEGIN Pi(i=1,2,……){ P(S); 進(jìn)入售票廳; 購票; 退出; V(S);}COEND(3)S的最大值為20S的最小值為20-N第四十頁40第四十一頁,共49頁。5.在公共汽車上,司機(jī)負(fù)責(zé)開車、停車和駕駛,售票員負(fù)責(zé)門的開門、關(guān)門和售票?;静僮饕?guī)則是: 只有停車后,售票員才能開門; 只有售票員關(guān)門后,司機(jī)才能開車。 汽車初始狀態(tài)處于行駛之中。 當(dāng)只有1個(gè)司機(jī)、2個(gè)售票員、2個(gè)門、每個(gè)售票員負(fù)責(zé)一個(gè)門時(shí)的協(xié)調(diào)操作。請(qǐng)使用P、V原語實(shí)現(xiàn)售票員與司機(jī)之間的協(xié)調(diào)操作,說明每個(gè)信號(hào)量的含義、初值和值的范圍。第四十一頁41第四十二頁,共49頁。driver(){dowhileT{
P(Door1);P(Door2);
啟動(dòng)車輛;
正常行車;
到站停車;
}}busserver1(){dowhileT{
售票;
開前門;關(guān)前門;
}}busserver2(){dowhileT{
售票;
開后門;關(guān)后門;
}}【分析】本題目考查進(jìn)程的同步問題。司機(jī)的啟動(dòng)、停車操作需要與兩個(gè)售票員的關(guān)門、售票、開門操作同步.確定P、V操作的位置司機(jī)操作中,是否關(guān)前門?沒關(guān)則等待,這是一個(gè)P操作,P(Door1); 是否關(guān)后門?沒關(guān)則等待,這是一個(gè)P操作,P(Door2);第四十二頁42第四十三頁,共49頁。driver(){dowhileT{
P(Door1);P(Door2);
啟動(dòng)車輛;
正常行車;
到站停車;
}}busserver1(){dowhileT{
售票;
開前門;關(guān)前門;
V(Door1);}}busserver2(){dowhileT{
售票;
開后門;關(guān)后門;
V(Door2);}}【分析】本題目考查進(jìn)程的同步問題。司機(jī)的啟動(dòng)、停車操作需要與兩個(gè)售票員的關(guān)門、售票、開門操作同步.確定P、V操作的位置前門售票員關(guān)門操作中,設(shè)立關(guān)門標(biāo)志,這是一個(gè)V操作,V(Door1);后門售票員關(guān)門操作中,設(shè)立關(guān)門標(biāo)志,這是一個(gè)V操作,V(Door2);第四十三頁43第四十四頁,共49頁。driver(){dowhileT{
P(Door1);P(Door2);
啟動(dòng)車輛;
V(T1);V(T2);正常行車;
到站停車;
V(S1);V(S2);}}busserver1(){dowhileT{
售票;
開前門;關(guān)前門;
V(Door1);}}busserver2(){dowhileT{
售票;
開后門;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江蘇貨運(yùn)資格證考試題庫答案
- 小學(xué)二年級(jí)數(shù)學(xué)下學(xué)期競賽口算題
- 2025年天津貨運(yùn)從業(yè)資格考試題目及答案大全解析
- 2025年黑龍江貨運(yùn)資格證考試70題
- 電力技術(shù)轉(zhuǎn)讓合同(2篇)
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)上冊第六章數(shù)據(jù)的分析1平均數(shù)教案新版北師大版
- 2024年高中語文第一單元4碗花糕演練含解析粵教版選修4中國現(xiàn)代散文蚜
- 蘇人版道德與法治九年級(jí)上冊10.3《做一個(gè)成熟的消費(fèi)者》聽課評(píng)課記錄
- 骨干教師研修總結(jié)
- 食品代工合同范本
- 4地球-我們的家園《我們共同的責(zé)任》說課稿 -2023-2024學(xué)年道德與法治六年級(jí)下冊統(tǒng)編版
- 護(hù)理交接班改進(jìn)
- (一模)蕪湖市2024-2025學(xué)年度第一學(xué)期中學(xué)教學(xué)質(zhì)量監(jiān)控 英語試卷(含答案)
- 完整版秸稈炭化成型綜合利用項(xiàng)目可行性研究報(bào)告
- 詩經(jīng)楚辭文學(xué)常識(shí)單選題100道及答案
- AI輔助的慢性病監(jiān)測與管理系統(tǒng)
- 2025年小學(xué)蛇年寒假特色作業(yè)
- 2025中國海油春季校園招聘1900人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 膽汁淤積性肝硬化護(hù)理
- Unit 6 Is he your grandpa 第一課時(shí) (教學(xué)實(shí)錄) -2024-2025學(xué)年譯林版(三起)(2024)英語三年級(jí)上冊
- 《數(shù)據(jù)采集技術(shù)》課件-Scrapy 框架的基本操作
評(píng)論
0/150
提交評(píng)論