版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)回顧訂票問(wèn)題和主存管理問(wèn)題訂票問(wèn)題:多個(gè)售票進(jìn)程交叉訪問(wèn)了共享變量Aj主存管理問(wèn)題:borrow和returrn共享了表示主存物理資源的變量x因此,對(duì)于具有競(jìng)爭(zhēng)關(guān)系的若干進(jìn)程并發(fā)執(zhí)行必須加以限制回顧訂票問(wèn)題和主存管理問(wèn)題訂票問(wèn)題:多個(gè)售票進(jìn)程交叉訪問(wèn)了共臨界區(qū)的基本概念臨界區(qū)(CriticalSection):并發(fā)進(jìn)程中與共享變量有關(guān)的程序段臨界資源(CriticalResource):共享變量代表的資源,如獨(dú)占型硬件,被共享的數(shù)據(jù)結(jié)構(gòu)和文件臨界區(qū)的基本概念臨界區(qū)(CriticalSection)臨界區(qū)管理的問(wèn)題主要問(wèn)題:與同一變量有關(guān)的臨界區(qū)分散在各進(jìn)程的程序段中,而各進(jìn)程的執(zhí)行速度不可預(yù)知。必須加以管理和限制:保證進(jìn)程在臨界區(qū)執(zhí)行時(shí),不讓另一個(gè)進(jìn)程進(jìn)入臨界區(qū),就不會(huì)造成與時(shí)間有關(guān)的錯(cuò)誤。(實(shí)現(xiàn)對(duì)共享變量的互斥訪問(wèn))臨界區(qū)管理的問(wèn)題主要問(wèn)題:與同一變量有關(guān)的臨界區(qū)分散在各進(jìn)程臨界區(qū)調(diào)度的原則(1)一次至多有一個(gè)進(jìn)程進(jìn)入臨界區(qū)執(zhí)行;(2)如果已經(jīng)有進(jìn)程在臨界區(qū)中,試圖進(jìn)入此臨界區(qū)的其他進(jìn)程應(yīng)等待(3)進(jìn)入臨界區(qū)內(nèi)的進(jìn)程應(yīng)在有限時(shí)間內(nèi)退出,以便讓等待隊(duì)列中的一個(gè)進(jìn)程進(jìn)入互斥使用,有空讓進(jìn);忙則等待,有限等待,讓權(quán)等待;擇一而入,算法可行。臨界區(qū)調(diào)度的原則(1)一次至多有一個(gè)進(jìn)程進(jìn)入臨界區(qū)執(zhí)行;互3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)臨界區(qū)管理的嘗試引入進(jìn)程標(biāo)志,分別指示進(jìn)程進(jìn)入臨界區(qū)的情況第一種嘗試,先測(cè)試,后置位不能保證同一時(shí)間只有一個(gè)進(jìn)程進(jìn)入臨界區(qū)第二種嘗試,先置位,后測(cè)試會(huì)出現(xiàn)死循環(huán)的情況,永遠(yuǎn)等待臨界區(qū)管理的嘗試引入進(jìn)程標(biāo)志,分別指示進(jìn)程進(jìn)入臨界區(qū)的臨界區(qū)管理的嘗試一inside1,inside2:Booleaninside1:=false;/*P1不在其臨界區(qū)內(nèi)*/inside2:=false;/*P2不在其臨界區(qū)內(nèi)*/cobegin processP1 Begin
①whileinside2dobeginend;
②inside1:=true;
③臨界區(qū);
④inside1:=false;end;processP2Begin
①whileinside1dobeginend;
②inside2=true;
③臨界區(qū);
④inside2:=false;end;coend問(wèn)題:P1和P2有可能同時(shí)進(jìn)入臨界區(qū)臨界區(qū)管理的嘗試一inside1,inside2:Booleinside1,inside2:Booleaninside1:=false;/*P1不在其臨界區(qū)內(nèi)*/inside2:=false;/*P2不在其臨界區(qū)內(nèi)*/cobegin processP1 Begin
①inside1:=true;
②whileinside2dobeginend;
③臨界區(qū);
④inside1:=false;end;processP2Begin
①inside2=true;
②whileinside1dobeginend;
③臨界區(qū);
④inside2:=false;end;coend臨界區(qū)管理的嘗試二問(wèn)題:P1和P2有可能永遠(yuǎn)進(jìn)不了臨界區(qū)inside1,inside2:Boolean臨界區(qū)管理的嘗3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)實(shí)現(xiàn)臨界區(qū)管理的軟件算法(1)Dekker算法算法復(fù)雜難以理解(2)Peterson算法:實(shí)現(xiàn)臨界區(qū)管理的軟件算法(1)Dekker算法Peterson算法的具體實(shí)現(xiàn)//變量定義及初始化boolinside[2]inside[0]=false;inside[1]=false;enum{0,1}turn;cobeginprocessP0(){①inside[0]=true;
②turn=1;
③
while(inside[1]andturn=1);④{臨界區(qū)};
⑤inside[0]:=false;}processP1(){①inside[1]:=true;②turn:=0;③
while(inside[0]andturn=0);
④{臨界區(qū)};⑤inside[1]:=false;}coend.進(jìn)入臨界區(qū)的條件:對(duì)方不在臨界區(qū)或不想進(jìn)入臨界區(qū)Peterson算法的具體實(shí)現(xiàn)//變量定義及初始化proc基本思想:用對(duì)turn的置值和while語(yǔ)句來(lái)限制每次只有一個(gè)進(jìn)程進(jìn)入臨界區(qū);進(jìn)程執(zhí)行完臨界區(qū)程序后,修改insidei狀態(tài)使等待進(jìn)入臨界區(qū)的進(jìn)程可在有限時(shí)間內(nèi)進(jìn)入。算法滿足臨界區(qū)管理的三個(gè)條件?;舅枷耄很浖夥ǖ娜秉c(diǎn)1.忙等待(busywaiting)2.實(shí)現(xiàn)過(guò)于復(fù)雜,需要高的編程技巧軟件解法的缺點(diǎn)1.忙等待(busywaiting)回顧:順序程序設(shè)計(jì)有哪些特征?什么是并發(fā)程序設(shè)計(jì)?進(jìn)程之間有哪些關(guān)系?什么是同步與互斥?有關(guān)的進(jìn)程如果不加控制,會(huì)出現(xiàn)哪些錯(cuò)誤?什么是臨界區(qū)和臨界資源?臨界區(qū)管理有哪些原則?回顧:順序程序設(shè)計(jì)有哪些特征?3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)臨界區(qū)管理的前兩個(gè)嘗試之所以不能正確管理臨界區(qū),問(wèn)題在于:
測(cè)試和上鎖這兩個(gè)動(dòng)作分開了,因?yàn)閳?zhí)行過(guò)程中可能被中斷whileinside2dobeginend;inside1:=true;inside1:=true;whileinside2dobeginend;關(guān)鍵點(diǎn):保證不被中斷或者測(cè)試完立即上瑣臨界區(qū)管理的前兩個(gè)嘗試之所以不能正確管理臨界區(qū),問(wèn)題在于:w硬件方法1.關(guān)中斷2.測(cè)試并建立指令3.對(duì)換指令硬件方法1.關(guān)中斷1.關(guān)中斷基本方法:在進(jìn)程進(jìn)入臨界區(qū)時(shí)關(guān)中斷,進(jìn)程退出臨界區(qū)時(shí)開中斷(阻止進(jìn)程交替執(zhí)行)特點(diǎn):簡(jiǎn)單,有效;不通用,關(guān)中斷時(shí)間過(guò)長(zhǎng)會(huì)影響系統(tǒng)性能;不適用于多處理器;1.關(guān)中斷基本方法:在進(jìn)程進(jìn)入臨界區(qū)時(shí)關(guān)中斷,進(jìn)程退出臨2.測(cè)試并建立指令基本方法:借助于機(jī)器指令TS,TS指令能使測(cè)試和上瑣不分離//TS指令的處理過(guò)程boolTS(bool&x){if(x){x=false;returntrue;}elsereturnfalse;}//TS指令實(shí)現(xiàn)互斥bools=true;cobeginprocessPi(){while(!TS(s));{臨界區(qū)};s=true;}coend2.測(cè)試并建立指令基本方法:借助于機(jī)器指令TS,TS指令能3.對(duì)換指令基本方法:借助于對(duì)換指令SWAP//swap實(shí)現(xiàn)過(guò)程voidSWAP(bool&a,bool&b){booltemp=a;a=b;b=temp;}//對(duì)換指令實(shí)現(xiàn)進(jìn)程互斥boollock=false;cobeginprocessPi(){boolkeyi=true;do{SWAP(keyi,lock);}while(keyi);{臨界區(qū)};SWAP(keyi,lock);}coend3.對(duì)換指令基本方法:借助于對(duì)換指令SWAP//swap3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)回顧訂票問(wèn)題和主存管理問(wèn)題訂票問(wèn)題:多個(gè)售票進(jìn)程交叉訪問(wèn)了共享變量Aj主存管理問(wèn)題:borrow和returrn共享了表示主存物理資源的變量x因此,對(duì)于具有競(jìng)爭(zhēng)關(guān)系的若干進(jìn)程并發(fā)執(zhí)行必須加以限制回顧訂票問(wèn)題和主存管理問(wèn)題訂票問(wèn)題:多個(gè)售票進(jìn)程交叉訪問(wèn)了共臨界區(qū)的基本概念臨界區(qū)(CriticalSection):并發(fā)進(jìn)程中與共享變量有關(guān)的程序段臨界資源(CriticalResource):共享變量代表的資源,如獨(dú)占型硬件,被共享的數(shù)據(jù)結(jié)構(gòu)和文件臨界區(qū)的基本概念臨界區(qū)(CriticalSection)臨界區(qū)管理的問(wèn)題主要問(wèn)題:與同一變量有關(guān)的臨界區(qū)分散在各進(jìn)程的程序段中,而各進(jìn)程的執(zhí)行速度不可預(yù)知。必須加以管理和限制:保證進(jìn)程在臨界區(qū)執(zhí)行時(shí),不讓另一個(gè)進(jìn)程進(jìn)入臨界區(qū),就不會(huì)造成與時(shí)間有關(guān)的錯(cuò)誤。(實(shí)現(xiàn)對(duì)共享變量的互斥訪問(wèn))臨界區(qū)管理的問(wèn)題主要問(wèn)題:與同一變量有關(guān)的臨界區(qū)分散在各進(jìn)程臨界區(qū)調(diào)度的原則(1)一次至多有一個(gè)進(jìn)程進(jìn)入臨界區(qū)執(zhí)行;(2)如果已經(jīng)有進(jìn)程在臨界區(qū)中,試圖進(jìn)入此臨界區(qū)的其他進(jìn)程應(yīng)等待(3)進(jìn)入臨界區(qū)內(nèi)的進(jìn)程應(yīng)在有限時(shí)間內(nèi)退出,以便讓等待隊(duì)列中的一個(gè)進(jìn)程進(jìn)入互斥使用,有空讓進(jìn);忙則等待,有限等待,讓權(quán)等待;擇一而入,算法可行。臨界區(qū)調(diào)度的原則(1)一次至多有一個(gè)進(jìn)程進(jìn)入臨界區(qū)執(zhí)行;互3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)臨界區(qū)管理的嘗試引入進(jìn)程標(biāo)志,分別指示進(jìn)程進(jìn)入臨界區(qū)的情況第一種嘗試,先測(cè)試,后置位不能保證同一時(shí)間只有一個(gè)進(jìn)程進(jìn)入臨界區(qū)第二種嘗試,先置位,后測(cè)試會(huì)出現(xiàn)死循環(huán)的情況,永遠(yuǎn)等待臨界區(qū)管理的嘗試引入進(jìn)程標(biāo)志,分別指示進(jìn)程進(jìn)入臨界區(qū)的臨界區(qū)管理的嘗試一inside1,inside2:Booleaninside1:=false;/*P1不在其臨界區(qū)內(nèi)*/inside2:=false;/*P2不在其臨界區(qū)內(nèi)*/cobegin processP1 Begin
①whileinside2dobeginend;
②inside1:=true;
③臨界區(qū);
④inside1:=false;end;processP2Begin
①whileinside1dobeginend;
②inside2=true;
③臨界區(qū);
④inside2:=false;end;coend問(wèn)題:P1和P2有可能同時(shí)進(jìn)入臨界區(qū)臨界區(qū)管理的嘗試一inside1,inside2:Booleinside1,inside2:Booleaninside1:=false;/*P1不在其臨界區(qū)內(nèi)*/inside2:=false;/*P2不在其臨界區(qū)內(nèi)*/cobegin processP1 Begin
①inside1:=true;
②whileinside2dobeginend;
③臨界區(qū);
④inside1:=false;end;processP2Begin
①inside2=true;
②whileinside1dobeginend;
③臨界區(qū);
④inside2:=false;end;coend臨界區(qū)管理的嘗試二問(wèn)題:P1和P2有可能永遠(yuǎn)進(jìn)不了臨界區(qū)inside1,inside2:Boolean臨界區(qū)管理的嘗3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)實(shí)現(xiàn)臨界區(qū)管理的軟件算法(1)Dekker算法算法復(fù)雜難以理解(2)Peterson算法:實(shí)現(xiàn)臨界區(qū)管理的軟件算法(1)Dekker算法Peterson算法的具體實(shí)現(xiàn)//變量定義及初始化boolinside[2]inside[0]=false;inside[1]=false;enum{0,1}turn;cobeginprocessP0(){①inside[0]=true;
②turn=1;
③
while(inside[1]andturn=1);④{臨界區(qū)};
⑤inside[0]:=false;}processP1(){①inside[1]:=true;②turn:=0;③
while(inside[0]andturn=0);
④{臨界區(qū)};⑤inside[1]:=false;}coend.進(jìn)入臨界區(qū)的條件:對(duì)方不在臨界區(qū)或不想進(jìn)入臨界區(qū)Peterson算法的具體實(shí)現(xiàn)//變量定義及初始化proc基本思想:用對(duì)turn的置值和while語(yǔ)句來(lái)限制每次只有一個(gè)進(jìn)程進(jìn)入臨界區(qū);進(jìn)程執(zhí)行完臨界區(qū)程序后,修改insidei狀態(tài)使等待進(jìn)入臨界區(qū)的進(jìn)程可在有限時(shí)間內(nèi)進(jìn)入。算法滿足臨界區(qū)管理的三個(gè)條件?;舅枷耄很浖夥ǖ娜秉c(diǎn)1.忙等待(busywaiting)2.實(shí)現(xiàn)過(guò)于復(fù)雜,需要高的編程技巧軟件解法的缺點(diǎn)1.忙等待(busywaiting)回顧:順序程序設(shè)計(jì)有哪些特征?什么是并發(fā)程序設(shè)計(jì)?進(jìn)程之間有哪些關(guān)系?什么是同步與互斥?有關(guān)的進(jìn)程如果不加控制,會(huì)出現(xiàn)哪些錯(cuò)誤?什么是臨界區(qū)和臨界資源?臨界區(qū)管理有哪些原則?回顧:順序程序設(shè)計(jì)有哪些特征?3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)3.2.2臨界區(qū)管理的嘗試3.2.3實(shí)現(xiàn)臨界區(qū)管理的軟件方法3.2.4實(shí)現(xiàn)臨界區(qū)管理的硬件設(shè)施3.2臨界區(qū)管理3.2.1互斥與臨界區(qū)臨界區(qū)管理的前兩個(gè)嘗試之所以不能正確管理臨界區(qū),問(wèn)題在于:
測(cè)試和上鎖這兩個(gè)動(dòng)作分開了,因?yàn)閳?zhí)行過(guò)程中可能被中斷whileinside2dobeginend;inside1:=true;inside1:=true;whileinside2dobeginend;關(guān)鍵點(diǎn):保證不被中斷或者測(cè)試完立即上瑣臨界區(qū)管理的前兩個(gè)嘗試之所以不能正確管理臨界區(qū),問(wèn)題在于:w
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026上海金橋經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管理委員會(huì)文員公開招聘1人考試參考題庫(kù)及答案解析
- 2026年河南應(yīng)用技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題帶答案解析
- 2026上海愛(ài)樂(lè)樂(lè)團(tuán)招聘5人考試備考題庫(kù)及答案解析
- 碳市場(chǎng)系列研究報(bào)告之六:轉(zhuǎn)型金融助力高碳企業(yè)低碳發(fā)展-
- 2026湖北武漢市光谷喻家山學(xué)校校聘教師招聘5人(一)考試參考試題及答案解析
- 2026上海寶山區(qū)行知科創(chuàng)學(xué)院“蓄電池計(jì)劃”招募考試備考試題及答案解析
- 2026年州市中醫(yī)院招募第一批青年見(jiàn)習(xí)11人考試參考試題及答案解析
- 2026年永安市人民政府辦公室(永安市國(guó)防動(dòng)員辦公室)關(guān)于公開招聘編外聘用人員備考題庫(kù)及一套參考答案詳解
- 2026年長(zhǎng)沙市林業(yè)局公開招聘中級(jí)雇員備考題庫(kù)有答案詳解
- 2026年格爾木市公安局面向社會(huì)公開招聘警務(wù)輔助人員46人備考題庫(kù)含答案詳解
- GB/T 39597-2020出租汽車綜合服務(wù)區(qū)規(guī)范
- 蒂森克虜伯無(wú)機(jī)房MC2安裝說(shuō)明
- 四年級(jí)數(shù)學(xué)下冊(cè)解決問(wèn)題練習(xí)題
- 《康復(fù)評(píng)定技術(shù)》考試復(fù)習(xí)題庫(kù)(含答案)
- 幼兒園四季交替課件
- 指骨骨折課件
- 初中物理教師新課程標(biāo)準(zhǔn)測(cè)試題及答案五套
- 《單位工程施工組織設(shè)計(jì)》實(shí)訓(xùn)任務(wù)書及指導(dǎo)書
- 2022年牡丹江市林業(yè)系統(tǒng)事業(yè)單位招聘考試《林業(yè)基礎(chǔ)知識(shí)》題庫(kù)及答案解析
- KTV接待收銀前臺(tái)員工培訓(xùn)資料
- 中波天饋線系統(tǒng)介紹
評(píng)論
0/150
提交評(píng)論