《同步互斥與通信》PPT課件

《同步互斥與通信》PPT課件

ID:39436661

大小:689.10 KB

頁(yè)數(shù):66頁(yè)

時(shí)間:2019-07-03

《同步互斥與通信》PPT課件_第1頁(yè)
《同步互斥與通信》PPT課件_第2頁(yè)
《同步互斥與通信》PPT課件_第3頁(yè)
《同步互斥與通信》PPT課件_第4頁(yè)
《同步互斥與通信》PPT課件_第5頁(yè)
資源描述:

《《同步互斥與通信》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、嵌入式系統(tǒng)及應(yīng)用第六章同步、互斥與通信主要內(nèi)容概述信號(hào)量郵箱和消息隊(duì)列管道ISRxTaskyPOSTPEND任務(wù)與ISR之間的同步(單向)TaskxTaskyPOSTPENDPOSTPEND任務(wù)與任務(wù)之間的同步(雙向)任務(wù)與任務(wù)之間的同步(單向)TaskxTaskyPOSTPEND在單處理器平臺(tái)上,嵌入式操作系統(tǒng)內(nèi)核提供的同步、互斥與通信機(jī)制主要包括:信號(hào)量(semaphore),用于互斥與同步事件(組)(eventgroup),用于同步異步信號(hào)(asynchronoussignal),用于同步郵箱(

2、mailbox)、消息隊(duì)列(messagequeue),用于消息通信管道(pipe),提供非結(jié)構(gòu)化數(shù)據(jù)交換和實(shí)現(xiàn)同步以下一些機(jī)制也可用于同步與通信(在單處理器或多處理器系統(tǒng)中):全局變量共享內(nèi)存Sockets遠(yuǎn)程過(guò)程調(diào)用(RemoteProcedureCall)第一節(jié) 信號(hào)量信號(hào)量的種類及用途信號(hào)量的定義互斥信號(hào)量二值信號(hào)量計(jì)數(shù)信號(hào)量信號(hào)量機(jī)制的主要數(shù)據(jù)結(jié)構(gòu)典型的信號(hào)量操作什么是信號(hào)量信號(hào)量被定義為一個(gè)整形變量,在其上定義了以下三個(gè)操作:1、可以被初始化一個(gè)非負(fù)數(shù)2、wait操作(P操作)將信號(hào)量的

3、值減1后,若該值為負(fù),則執(zhí)行wait操作的任務(wù)等待3、signal操作(V操作)將信號(hào)量的值增1后,若該值為非正,則執(zhí)行signal操作的任務(wù)喚醒信號(hào)量用于實(shí)現(xiàn)任務(wù)與任務(wù)之間、任務(wù)與中斷處理程序之間的同步與互斥。信號(hào)量一般分為三種:信號(hào)量的種類及用途用于解決互斥問(wèn)題。它比較特殊,可能會(huì)引起優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題。用于解決同步問(wèn)題用于解決資源計(jì)數(shù)問(wèn)題將信號(hào)量進(jìn)行種類細(xì)分,可以根據(jù)其用途,在具體實(shí)現(xiàn)時(shí)做專門處理,提高執(zhí)行效率和可靠性。互斥信號(hào)量計(jì)數(shù)信號(hào)量二值信號(hào)量互斥信號(hào)量WaitB(S):/申請(qǐng)信號(hào)量ifS.v

4、alue1;/當(dāng)前沒有其他任務(wù)使用信號(hào)量thenS.value=S.value-1=0/將信號(hào)量值修改為0,獨(dú)占共享資源elsebeginInsert(CALLER,S.L);/如果當(dāng)前有其他任務(wù)使用信號(hào)量,將該任務(wù)放入等待隊(duì)列Block(CALLER);/修改該任務(wù)的狀態(tài)為等待態(tài)(阻塞任務(wù))endSignalB(S):/釋放信號(hào)量ifS.Lqueueisempty;/如果等待序列為空,沒有其他任務(wù)等待使用該共享資源thenS.value=1;/釋放信號(hào)量elsebeginRemove(S.L,id)

5、;/如果有其他任務(wù)等待使用該共享資源,則從等待隊(duì)列中將該任務(wù)移除wakeup(id);/將該任務(wù)的狀態(tài)改為就緒態(tài)(喚醒任務(wù))end用信號(hào)量實(shí)現(xiàn)任務(wù)間的互斥varmutex:SharedSemaphore;beginmutex:=1;parbeginP1:……P2:…………Pi:repeatWait(mutex);“進(jìn)程Pi的臨界代碼段”;Signal(mutex);foreverPn:……parendendTask1Task2共享資源互斥信號(hào)量狀態(tài)圖互斥信號(hào)量狀態(tài)圖開啟鎖定初始化值為1申請(qǐng)并獲得值為0

6、釋放值為1申請(qǐng)(遞歸)并獲得鎖定數(shù)加1釋放(遞歸)鎖定數(shù)減1各種互斥機(jī)制比較比較項(xiàng)目關(guān)中斷使用測(cè)試并置位指令禁止任務(wù)切換使用信號(hào)量鎖定范圍互斥力度最強(qiáng),鎖定所有外部可屏蔽中斷,凡是以中斷形式到達(dá)的外部事件以及與之相關(guān)聯(lián)的任務(wù)或處理過(guò)程均得不到執(zhí)行凡是使用該指令訪問(wèn)共享資源的代碼所有的任務(wù)只影響競(jìng)爭(zhēng)共享資源的任務(wù)對(duì)系統(tǒng)響應(yīng)時(shí)間的影響如果關(guān)中斷的時(shí)間較長(zhǎng),對(duì)系統(tǒng)的響應(yīng)性能有很大影響較小如果禁止切換的時(shí)間過(guò)長(zhǎng),則影響系統(tǒng)的響應(yīng)性能對(duì)系統(tǒng)響應(yīng)性能有一定影響,可能導(dǎo)致優(yōu)先級(jí)反轉(zhuǎn)實(shí)現(xiàn)時(shí)的系統(tǒng)開銷小小小較大注意事項(xiàng)

7、關(guān)中斷時(shí)間要盡量短不是所有的處理器都具備這種指令,影響可移植性關(guān)調(diào)度的時(shí)間要盡量短需采用一定的策略解決優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題二值信號(hào)量可獲得不可獲得申請(qǐng)并獲得(值為0)釋放(值為1)初始化值為0二值信號(hào)量狀態(tài)圖Task1(){……執(zhí)行一些操作;將信號(hào)量sem1置1;申請(qǐng)信號(hào)量sem2;…………}Task2(){……申請(qǐng)信號(hào)量sem1;執(zhí)行一些操作;將信號(hào)量sem2置1;…………}Task2申請(qǐng)信號(hào)量sem1失敗,系統(tǒng)切換到Task1sem1被置1后,Task2得到sem1并搶占Task1Task2運(yùn)行到某處時(shí)

8、因某種原因被阻塞,系統(tǒng)切換到Task1用二值信號(hào)量實(shí)現(xiàn)兩個(gè)任務(wù)之間的雙向同步Task2優(yōu)先級(jí)高于Task1sem1和sem2的初始值均為0二值信號(hào)量實(shí)現(xiàn)同步計(jì)數(shù)信號(hào)量Task1Task2共享資源實(shí)例nTaskm共享資源實(shí)例1…………計(jì)數(shù)信號(hào)量計(jì)數(shù)信號(hào)量狀態(tài)圖可獲得不可獲得初始化值大于0申請(qǐng)并獲得值為0釋放值為1申請(qǐng)并獲得值減1釋放值加1計(jì)數(shù)(一般)信號(hào)量同步原語(yǔ)Wait(S):S.value:=S.value-1;/有新任務(wù)來(lái)使用共享資源將信號(hào)量的值減1

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。