2011-9第九課、嵌入式實(shí)時(shí)操作系統(tǒng).ppt_第1頁
2011-9第九課、嵌入式實(shí)時(shí)操作系統(tǒng).ppt_第2頁
2011-9第九課、嵌入式實(shí)時(shí)操作系統(tǒng).ppt_第3頁
2011-9第九課、嵌入式實(shí)時(shí)操作系統(tǒng).ppt_第4頁
2011-9第九課、嵌入式實(shí)時(shí)操作系統(tǒng).ppt_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、,1,嵌入式系統(tǒng) AnIntroductiontoEmbeddedSystem 第九課 嵌入式實(shí)時(shí)操作系統(tǒng) 浙江大學(xué)計(jì)算機(jī)學(xué)院 陳天洲 2011.4.27 2011夏學(xué)期,周三下午1-3節(jié),周四晚上1-3節(jié) 玉泉曹光彪西501,2,課程大綱,實(shí)時(shí)系統(tǒng)簡介 嵌入式實(shí)時(shí)調(diào)度 嵌入式實(shí)時(shí)操作系統(tǒng),實(shí)時(shí)系統(tǒng)概念,實(shí)時(shí)系統(tǒng)定義 能夠在指定或者確定的時(shí)間內(nèi)完成系統(tǒng)功能和外部或內(nèi)部、同步或異步時(shí)間做出響應(yīng)的系統(tǒng)。 POSIX 1003.b定義:指系統(tǒng)能夠在限定的響應(yīng)時(shí)間內(nèi)提供所需水平的服務(wù) 實(shí)時(shí)系統(tǒng)的正確性 不僅僅依賴于計(jì)算的邏輯結(jié)果 而且依賴于結(jié)果產(chǎn)生的時(shí)間 兩個(gè)特點(diǎn) 響應(yīng)時(shí)間限定 可預(yù)知 兩個(gè)能力 在事

2、先先定義的時(shí)間范圍內(nèi)識(shí)別和處理離散事件的能力 系統(tǒng)能夠處理和儲(chǔ)存控制系統(tǒng)所需要的大量數(shù)據(jù),3,實(shí)時(shí)系統(tǒng)的分類1,按任務(wù)到達(dá)分 周期性的系統(tǒng) 周期性任務(wù)periodic 任務(wù)必須在每個(gè)周期內(nèi)完成一次 可以在周期開始時(shí)啟動(dòng),也可以在周期開始以后啟動(dòng) 必須在周期結(jié)束前完成 非周期性系統(tǒng) 非周期性任務(wù)(aperiodic) 任務(wù)到達(dá)沒有規(guī)則的時(shí)間要求 必須有一個(gè)啟動(dòng)時(shí)間或完成時(shí)間,4,多任務(wù),實(shí)時(shí)任務(wù) 周期任務(wù) 偶發(fā)任務(wù) 非周期任務(wù) 非實(shí)時(shí)任務(wù) 實(shí)時(shí)任務(wù)要求要滿足時(shí)限 非實(shí)時(shí)任務(wù)要求要使其響應(yīng)時(shí)間盡可能短,5,實(shí)時(shí)系統(tǒng)的分類2,按實(shí)時(shí)性分(時(shí)間約束性) 硬實(shí)時(shí)系統(tǒng)-災(zāi)難后果 指應(yīng)用的時(shí)間需求能夠得到完

3、全滿足,否則就造成重大安全事故,甚至造成重大的生命財(cái)產(chǎn)損失和生態(tài)破壞 航空航天、軍事、核工業(yè)等 軟實(shí)時(shí)系統(tǒng)-性能下降 應(yīng)用雖提出時(shí)間需求,但實(shí)時(shí)任務(wù)偶爾違反這種需求對(duì)系統(tǒng)運(yùn)行及環(huán)境不會(huì)造成嚴(yán)重影響 視頻點(diǎn)播(Video-On-Demand,VOD)、監(jiān)控系統(tǒng)、信息采集系統(tǒng) 調(diào)度算法 通用系統(tǒng)中以大吞吐量為目標(biāo) 實(shí)時(shí)系統(tǒng) 滿足時(shí)間的正確性 提供高度動(dòng)態(tài)的,滿足在線需求的,適應(yīng)性的實(shí)時(shí)調(diào)度,6,實(shí)時(shí)系統(tǒng)的特點(diǎn):時(shí)間約束性time constraint,是最基本的目標(biāo) 系統(tǒng)應(yīng)該能夠提供對(duì)時(shí)間正確性進(jìn)行指定的方法 系統(tǒng)提供一種指定時(shí)間尺度的方法 通用系統(tǒng)的延時(shí)不能滿足 截止時(shí)間、時(shí)限(deadline

4、 ) 實(shí)時(shí)系統(tǒng)的任務(wù)具有一定的時(shí)間約束 時(shí)間約束是任何實(shí)時(shí)系統(tǒng)都固有的約束,7,相關(guān)定義,時(shí)限(deadline) 一個(gè)時(shí)間界限。它要求一個(gè)任務(wù)在該時(shí)刻之前完成 任務(wù)執(zhí)行時(shí)間 一個(gè)任務(wù)從啟動(dòng)到完成所花費(fèi)的時(shí)間。 分為平均任務(wù)執(zhí)行時(shí)間和最壞任務(wù)執(zhí)行時(shí)間 實(shí)時(shí)系統(tǒng)中一般指最壞任務(wù)執(zhí)行時(shí)間,考慮了可能的等待、阻塞等最不利的情況 任務(wù)余量(laxity) 時(shí)限減去任務(wù)執(zhí)行時(shí)間所得的值,反映了系統(tǒng)工作的從容程度 緊時(shí)間約束(tight time constraint) 在滿足任務(wù)時(shí)限的同時(shí),留給系統(tǒng)的時(shí)間比較緊張。由任務(wù)的余量小而引起 松時(shí)間約束(loose time constraint) 與緊時(shí)限概

5、念相反,指在滿足任務(wù)時(shí)限的同時(shí),留給系統(tǒng)的時(shí)間比較寬松,8,時(shí)限粒度(deadline granularity) 任務(wù)從啟動(dòng)時(shí)刻到時(shí)限之間的時(shí)間 當(dāng)這個(gè)值較小時(shí),稱為時(shí)限粒度小(或小粒度時(shí)限),反之稱為時(shí)限粒度大(或大粒度時(shí)限) 強(qiáng)實(shí)時(shí)(hard real-time)任務(wù) 強(qiáng)時(shí)限任務(wù),要求該任務(wù)在時(shí)限之前完成,否則其結(jié)果將失去可用性 弱實(shí)時(shí)(soft real-time)任務(wù) 弱時(shí)限任務(wù),若該任務(wù)不能在時(shí)限到來之前完成,其結(jié)果的可用性將逐漸下降 關(guān)鍵任務(wù)(critical tasks) 任務(wù)的重要程度,若任務(wù)在時(shí)限之前不能完成,則會(huì)產(chǎn)生災(zāi)難性后果 時(shí)限的嚴(yán)格性(strictness of de

6、adline) 當(dāng)一個(gè)任務(wù)的完成超過時(shí)限時(shí),所得到結(jié)果的可用性程度,9,實(shí)時(shí)系統(tǒng)分類3,實(shí)時(shí)過程控制系統(tǒng) 系統(tǒng)實(shí)時(shí)地從外界獲得被控系統(tǒng)的當(dāng)前狀態(tài),進(jìn)行預(yù)定的處理,根據(jù)處理結(jié)果對(duì)外界被控系統(tǒng)進(jìn)行及時(shí)控制,使其處于要求的狀態(tài)下 實(shí)時(shí)過程控制系統(tǒng)的模型是一個(gè)反饋環(huán)結(jié)構(gòu) 實(shí)時(shí)信息處理系統(tǒng) 系統(tǒng)僅從外界系統(tǒng)中獲得當(dāng)前狀態(tài)并進(jìn)行相應(yīng)處理 不直接控制外界系統(tǒng)的變化,10,實(shí)時(shí)系統(tǒng)的特點(diǎn):可預(yù)測性predictability,系統(tǒng)能夠?qū)?shí)時(shí)任務(wù)的執(zhí)行時(shí)間進(jìn)行判斷,確定是否能夠滿足任務(wù)的時(shí)限要求 是實(shí)時(shí)系統(tǒng)的重要性能要求 嵌入式系統(tǒng)的兩個(gè)可預(yù)測性 硬件延遲的可預(yù)測性 軟件系統(tǒng)的可預(yù)測性 應(yīng)用程序的響應(yīng)時(shí)間是可預(yù)

7、測的,即在有限的時(shí)間內(nèi)完成必須的工作 操作系統(tǒng)的可預(yù)測性,即實(shí)時(shí)原語、調(diào)度函數(shù)等運(yùn)行開銷應(yīng)是有界的,以保證應(yīng)用程序執(zhí)行時(shí)間的有界性 資源約束 指多個(gè)實(shí)時(shí)任務(wù)共享有限的資源時(shí),必須按照一定的資源訪問控制協(xié)議進(jìn)行同步,以避免死鎖和高優(yōu)先級(jí)任務(wù)被低優(yōu)先級(jí)任務(wù)堵塞的時(shí)間(即優(yōu)先級(jí)倒置時(shí)間)不可預(yù)測,11,實(shí)時(shí)系統(tǒng)的可靠性reliability,可靠性已成為衡量實(shí)時(shí)系統(tǒng)性能不可缺少的重要指標(biāo)。 采用靜態(tài)分析和保留資源的方法及冗余配置,使關(guān)鍵任務(wù)的要求總能滿足,系統(tǒng)在最壞情況下能正常工作或避免損失 穩(wěn)定性 嵌入式的要求:強(qiáng)穩(wěn)定性,弱交互性 容錯(cuò) 大部分針對(duì)硬件的容錯(cuò),也有軟件容錯(cuò) 分布式應(yīng)用 多機(jī)共享資源

8、,共同完成一個(gè)任務(wù) 困難 網(wǎng)絡(luò)的實(shí)時(shí)性:保證網(wǎng)絡(luò)傳輸時(shí)間是有界和可預(yù)測的 分布式系統(tǒng)的調(diào)度:負(fù)載平衡、信息傳送、減少開銷、任務(wù)粒度劃分等,12,實(shí)時(shí)系統(tǒng)的結(jié)構(gòu),CPU 高運(yùn)算速度 IO 實(shí)時(shí)時(shí)鐘的同步 高速中斷處理、高I/O吞吐率、合理的處理器和I/O設(shè)備的拓?fù)溥B接 高速可靠的和有時(shí)間約束的網(wǎng)絡(luò)通信 可靠性 體系結(jié)構(gòu)支持的出錯(cuò)處理 體系結(jié)構(gòu)的依賴性 體系結(jié)構(gòu)支持的調(diào)度、操作系統(tǒng) 實(shí)時(shí)編程 實(shí)時(shí)編程就是使用匯編語言、安排中斷優(yōu)先級(jí)、寫驅(qū)動(dòng)程序等 或采用Ada語言,F(xiàn)ORTH語言 分布式的實(shí)時(shí)數(shù)據(jù)庫,13,實(shí)時(shí)系統(tǒng)與通用系統(tǒng)的區(qū)別,通用系統(tǒng)- “劫富濟(jì)貧” 方便用戶管理計(jì)算機(jī)資源 追求系統(tǒng)資源最大

9、利用率 實(shí)時(shí)系統(tǒng)- “劫貧濟(jì)富” 調(diào)度的實(shí)時(shí)性 響應(yīng)時(shí)間可確定性 高可靠性,14,性能衡量標(biāo)準(zhǔn),對(duì)傳統(tǒng)的通用系統(tǒng) 大的系統(tǒng)吞吐量 合理的響應(yīng)速度 對(duì)每個(gè)系統(tǒng)用戶相對(duì)公平的進(jìn)行計(jì)算資源的分配,實(shí)時(shí)系統(tǒng) 實(shí)時(shí)的數(shù)據(jù)吞吐 取代了吞吐量 對(duì)硬實(shí)時(shí)應(yīng)用的優(yōu)先響應(yīng) 取代了恰當(dāng)?shù)姆磻?yīng)速度 系統(tǒng)的計(jì)算資源和其他外設(shè)資源必須優(yōu)先滿足實(shí)時(shí)應(yīng)用的要求 取代了公平,15,衡量指標(biāo),系統(tǒng)響應(yīng)時(shí)間(System response time ) 系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應(yīng)答信號(hào)的時(shí)間 任務(wù)切換時(shí)間(Context-switching time) 任務(wù)之間切換而使用的時(shí)間; 中斷延遲(Interrupt latency t

10、ime ) 計(jì)算機(jī)接收到中斷信號(hào)到操作系統(tǒng)作出響應(yīng),并完成換道轉(zhuǎn)入中斷服務(wù)程序的時(shí)間 兩個(gè)主要評(píng)價(jià)實(shí)時(shí)性的指標(biāo) 最大中斷禁止時(shí)間+任務(wù)切換時(shí)間,16,謬誤,“實(shí)時(shí)”等于“快速” X 實(shí)時(shí)不意味著時(shí)間約束是微秒或納秒,而首先要求的是可預(yù)測性 速度越快的系統(tǒng),實(shí)時(shí)應(yīng)用領(lǐng)域越廣,實(shí)時(shí)性越好 強(qiáng)實(shí)時(shí)任務(wù)等于關(guān)鍵任務(wù) X 強(qiáng)實(shí)時(shí)任務(wù)是緊時(shí)限任務(wù) X 強(qiáng)實(shí)時(shí)任務(wù)等同于小粒度時(shí)限任務(wù) X,17,18,課程大綱,實(shí)時(shí)系統(tǒng)簡介 嵌入式實(shí)時(shí)調(diào)度 嵌入式實(shí)時(shí)操作系統(tǒng),實(shí)時(shí)調(diào)度算法分類,周期任務(wù) 優(yōu)先級(jí)調(diào)度 非優(yōu)先級(jí)調(diào)度 非周期任務(wù)調(diào)度,19,周期任務(wù)的調(diào)度算法:優(yōu)先級(jí)調(diào)度,基于優(yōu)先級(jí)的調(diào)度 不事先計(jì)算任務(wù)的調(diào)度表,

11、而是在作業(yè)釋放以后,給它們分配優(yōu)先級(jí),并按照優(yōu)先級(jí)次序把作業(yè)放入就緒隊(duì)列 分為兩種 固定優(yōu)先級(jí)算法 為每個(gè)任務(wù)中的所有作業(yè)分配相同的優(yōu)先級(jí) 每個(gè)周期任務(wù)的優(yōu)先級(jí)相對(duì)于其他任務(wù)來說是固定不變的 動(dòng)態(tài)優(yōu)先級(jí)算法 給每個(gè)任務(wù)的單個(gè)作業(yè)分配不同的優(yōu)先級(jí) 作業(yè)釋放并完成時(shí),任務(wù)的優(yōu)先級(jí)相對(duì)于其他任務(wù)的優(yōu)先級(jí)要發(fā)生變化 大多數(shù)實(shí)用調(diào)度算法會(huì)給單個(gè)任務(wù)分配固定的優(yōu)先級(jí) 每當(dāng)作業(yè)釋放并準(zhǔn)備進(jìn)入就緒隊(duì)列時(shí),就給作業(yè)分配優(yōu)先級(jí),20,速度單調(diào)算法,速度單調(diào)算法(Rate Monotonic,RM算法) 1973年,最著名,算法簡單、有效、便于實(shí)現(xiàn) 屬于固定優(yōu)先級(jí)算法 任務(wù)假定 工作由定期任務(wù)組織,任務(wù)是周期性的

12、任務(wù)的相對(duì)時(shí)限等于它的周期 任務(wù)時(shí)間定長度 算法思想:使用頻率高的優(yōu)先級(jí)高,21,時(shí)限單調(diào)算法,時(shí)限單調(diào)算法(Deadline Monotonic),DM算法 屬于固定優(yōu)先級(jí)算法 設(shè)計(jì)思想 按照任務(wù)的相對(duì)時(shí)限來分配優(yōu)先級(jí) 相對(duì)時(shí)限越短,優(yōu)先級(jí)越高 蛻化 如果每個(gè)任務(wù)的相對(duì)時(shí)限與它的周期成正比,則RM算法與DM算法一致 當(dāng)相對(duì)時(shí)限是任意的時(shí)候,DM算法表現(xiàn)最好 此時(shí)DM算法有時(shí)有可能產(chǎn)生可行的調(diào)度表,RM算法缺不可以 如果DM算法不能產(chǎn)生可行的調(diào)度表,RM算法肯定也不能,22,EDF算法,最早時(shí)限優(yōu)先算法,截止期優(yōu)先調(diào)度算法,Earliest Deadline First,EDF 是使用最多的一

13、種動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法 按照作業(yè)的絕對(duì)時(shí)限為其分配優(yōu)先級(jí) 對(duì)于具有任意釋放時(shí)間和時(shí)限的作業(yè)集J,當(dāng)作業(yè)允許搶占,但作業(yè)并不競爭資源時(shí),當(dāng)且僅當(dāng)J存在可行的調(diào)度時(shí),EDF算法才能夠在單處理器上產(chǎn)生一個(gè)可行的調(diào)度 EDF算法是任務(wù)級(jí)/作業(yè)級(jí)動(dòng)態(tài)優(yōu)先級(jí)算法 一旦作業(yè)按照所分配的優(yōu)先級(jí)被放入就緒隊(duì)列,它相對(duì)于隊(duì)列中其他作業(yè)的次序就是固定的,23,LST算法,最小空閑時(shí)間優(yōu)先算法(Least Slack Time First,LST)、最短空閑時(shí)間優(yōu)先算法( Least Laxity First,LLF) 屬于動(dòng)態(tài)優(yōu)先級(jí)算法 按照空閑時(shí)間分配優(yōu)先級(jí) 空閑時(shí)間為已執(zhí)行過的時(shí)間長度 每次在新作業(yè)釋放時(shí),調(diào)度程

14、序檢查所有就緒作業(yè)的空閑時(shí)間 將新作業(yè)和現(xiàn)有作業(yè)重新排序 空閑時(shí)間越小,優(yōu)先級(jí)越高 LST需要監(jiān)視所有就緒作業(yè)的空閑時(shí)間 只要作業(yè)間空閑時(shí)間相對(duì)發(fā)生變化,調(diào)度程序就要向作業(yè)重新分配優(yōu)先級(jí),24,擴(kuò)展,以上均屬于單處理器調(diào)度,本課程不介紹多處理器調(diào)度 參見并行計(jì)算與多核程序設(shè)計(jì)、多核計(jì)算課程內(nèi)容 分布式實(shí)時(shí)調(diào)度 以RMS為基礎(chǔ)的廣義RMS調(diào)度 以風(fēng)車調(diào)度Sr為基礎(chǔ)的DSr調(diào)度,25,靜態(tài)優(yōu)先級(jí)vs動(dòng)態(tài)優(yōu)先級(jí),RMS算法 處理器利用率低 在最壞的情況下處理器的利用率要小于69% 一般情況下也要小于88% 處理非周期任務(wù)較難。 EDF算法 利用率接近于1 負(fù)載過載的可靠性、可預(yù)測性與穩(wěn)定性較差,26

15、,周期任務(wù)的調(diào)度算法:非優(yōu)先級(jí)算法,反向EDF算法,又稱為最遲釋放時(shí)間算法,Latest Release Time, LRT 非優(yōu)先級(jí)驅(qū)動(dòng)的算法 設(shè)計(jì)思想 當(dāng)調(diào)度的目標(biāo)是滿足作業(yè)的時(shí)限時(shí),早于必須的時(shí)間完成任一作業(yè)沒有好處 可能會(huì)因?yàn)槟撤N原因想推遲強(qiáng)實(shí)時(shí)作業(yè)的執(zhí)行 將釋放時(shí)間當(dāng)作時(shí)限,將時(shí)限當(dāng)作釋放時(shí)間 從后面調(diào)度作業(yè),按照“優(yōu)先級(jí)驅(qū)動(dòng)”的方式,從時(shí)限最遲的作業(yè)開始調(diào)度,直到當(dāng)前時(shí)間,27,非周期實(shí)時(shí)調(diào)度算法,非周期作業(yè)調(diào)度算法和偶發(fā)作業(yè)調(diào)度算法(aperiodic job and sporadic job scheduling algorithms) 根據(jù)每個(gè)新到達(dá)的偶發(fā)作業(yè)的執(zhí)行時(shí)間和時(shí)限

16、,調(diào)度程序決定接收還是拒絕這個(gè)作業(yè) 如果作業(yè)被接受,調(diào)度程序調(diào)度該作業(yè),使得該作業(yè)能夠及時(shí)完成,同時(shí)不會(huì)使周期性任務(wù)和前面已接收的偶發(fā)作業(yè)錯(cuò)過其時(shí)限 關(guān)鍵:如何進(jìn)行接收測試以及如何調(diào)度已接收的偶發(fā)作業(yè) 調(diào)度程序試圖盡可能快地完成每一個(gè)非周期作業(yè) 關(guān)鍵:在不引起周期性任務(wù)和已接受的偶發(fā)作業(yè)錯(cuò)過其時(shí)限的前提下,28,基于RMS 的非周期任務(wù)的調(diào)度,思想 將非周期任務(wù)轉(zhuǎn)化成周期任務(wù) 再利用RMS算法進(jìn)行調(diào)度 兩種實(shí)現(xiàn) 延遲服務(wù)器算法 隨機(jī)服務(wù)器算法 延遲服務(wù)器算法 用一個(gè)或幾個(gè)專用的周期任務(wù)執(zhí)行所有非周期任務(wù) 有固定優(yōu)先級(jí) 執(zhí)行時(shí)間稱為預(yù)算 隨機(jī)服務(wù)器算法 類似延遲服務(wù)器算法,差別在于 在預(yù)算消耗T

17、s時(shí)間之后再補(bǔ)充預(yù)算,29,其他非周期性調(diào)度算法,最優(yōu)的非周期性調(diào)度算法 使位于非周期性作業(yè)隊(duì)列頭部的非周期性作業(yè)響應(yīng)時(shí)間最小 或使得按給定排隊(duì)規(guī)則排列的非周期性作業(yè)的平均響應(yīng)時(shí)間最小 空閑挪用算法(slack stealing algorithm) 利用周期性作業(yè)和偶發(fā)作業(yè)的可用空閑時(shí)間,以盡早完成本次非周期性作業(yè) 保證周期性作業(yè)不會(huì)因?yàn)榉侵芷谛宰鳂I(yè)錯(cuò)過時(shí)限 采用中斷方式,也可以使用優(yōu)先級(jí)驅(qū)動(dòng)(更復(fù)雜) 輪詢算法 輪詢程序周期性的在輪詢周期的整數(shù)倍時(shí)刻就緒可執(zhí)行,并且按照給定的優(yōu)先級(jí)驅(qū)動(dòng)算法被調(diào)度 當(dāng)輪詢程序執(zhí)行時(shí),檢查非周期作業(yè)隊(duì)列,如果隊(duì)列非空,就執(zhí)行位于隊(duì)列頭的作業(yè) 帶寬保留服務(wù)器算法

18、(bandwidth preserving algorithm) 改進(jìn)的輪詢算法 非周期性作業(yè)隊(duì)列必須非空 服務(wù)器為非周期性作業(yè)保留資源 將非周期性任務(wù)與周期性任務(wù)一起調(diào)度,30,31,課程大綱,實(shí)時(shí)系統(tǒng)簡介 嵌入式實(shí)時(shí)調(diào)度 嵌入式實(shí)時(shí)操作系統(tǒng),嵌入式實(shí)時(shí)操作系統(tǒng)基本功能,操作系統(tǒng)基本功能 略 嵌入式操作系統(tǒng)可以分為兩類 面向控制、通信等領(lǐng)域的實(shí)時(shí)操作系統(tǒng),如windriver公司的vxworks、isi的psos、qnx系統(tǒng)軟件公司的qnx、ati的nucleus等 面向消費(fèi)電子產(chǎn)品的非實(shí)時(shí)操作系統(tǒng),這類產(chǎn)品包括個(gè)人數(shù)字助理(pda)、移動(dòng)電話、機(jī)頂盒、電子書、webphone等。 WinC

19、E、VxWorks、C/OS-等運(yùn)用較廣 Linux 作為通用操作系統(tǒng)開發(fā)的,linux核心在實(shí)時(shí)處理能力上先天不足 改造后能在一定程度上成為實(shí)時(shí)操作系統(tǒng),32,RTOS,開源,eCos Fiasco (L4 clone) FreeRTOS Phoenix-RTOS Nut/OS Prex RTAI RTEMS RTLinux SHaRK TRON Project Xenomai RT-Thread,不開源,Ardence RTX BeOS ChorusOS DNIX DMERT embOS (Segger) INTEGRITY ITRON LynxOS MERT MicroC/OS-II M

20、QX RTOS 6 Nucleus OS-9 OSE OSEK/VDX OSEKtime PDOS Phar Lap ETS,33,PikeOS Portos pSOS QNX RMX RSX-11 RT-11 RTOS-UH RTXC Salvo RTOS SINTRAN III Symbian OS ThreadX VRTX VxWorks Windows CE nOS UNIX-RTR REX HP-1000/RTE,實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) 首要目標(biāo)是提供保證實(shí)時(shí)性的方法 一系列的經(jīng)典問題的針對(duì)實(shí)時(shí)系統(tǒng)的解決方案 實(shí)現(xiàn)操作系統(tǒng)的低開銷 保證內(nèi)核以及其他關(guān)鍵的可重入性 嵌入式實(shí)時(shí)操作系統(tǒng)

21、RTOS中的相關(guān)概念 占先式內(nèi)核 可重入 優(yōu)先級(jí)反轉(zhuǎn),34,占先式/剝奪式,實(shí)時(shí)操作系統(tǒng)可分為可搶占型和不可搶占型兩類 占先式內(nèi)核preemptive 最高優(yōu)先級(jí)的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。 高優(yōu)先級(jí)的就緒任務(wù)可以打斷正在執(zhí)行的較低優(yōu)先級(jí)的任務(wù),進(jìn)入執(zhí)行態(tài);被搶占的較低優(yōu)先級(jí)任務(wù)進(jìn)入就緒任務(wù)隊(duì)列,等待下一次調(diào)度。 非占先式內(nèi)核 non-preemptive 內(nèi)核要求每個(gè)任務(wù)自我放棄CPU的所有權(quán)。 中斷可以使一個(gè)高優(yōu)先級(jí)的任務(wù)由掛起狀態(tài)變?yōu)榫途w態(tài),但中斷服務(wù)以后控制權(quán)還是回到原來被中斷的那個(gè)任務(wù),直到該任務(wù)主動(dòng)放棄CPU的使用權(quán)。 更高優(yōu)先權(quán)的任務(wù)不能打斷正在執(zhí)行的較低優(yōu)先權(quán)的任務(wù)

22、,直到較低優(yōu)先權(quán)任務(wù)主動(dòng)放棄CPU的控制權(quán),35,36,搶占式(preemptive) 當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用搶占式(preemptive)內(nèi)核 最高優(yōu)先級(jí)的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。 當(dāng)優(yōu)先級(jí)高的任務(wù)進(jìn)入了就緒態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個(gè)高優(yōu)先級(jí)的任務(wù)立刻得到了CPU的控制權(quán)。 中斷服務(wù)以后控制權(quán)不是回到原來被中斷了的那個(gè)任務(wù),而是高優(yōu)先級(jí)任務(wù)得到CPU使用權(quán),搶占式調(diào)度,37,搶占式任務(wù)切換過程,38,非搶占式調(diào)度,非搶占式(non-preemptive) 非占先式調(diào)度法也稱作合作型多任務(wù)(cooperative multitasking)

23、,各個(gè)任務(wù)彼此合作共享一個(gè)CPU。 中斷服務(wù)可以使一個(gè)高優(yōu)先級(jí)的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個(gè)任務(wù),直到改任務(wù)主動(dòng)放棄CPU的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)才能獲得CPU的使用權(quán)。,39,非搶占式任務(wù)切換過程,搶占式調(diào)度vs非搶占式調(diào)度,搶占式調(diào)度 優(yōu)點(diǎn)是實(shí)時(shí)性好、反應(yīng)快,調(diào)度算法相對(duì)簡單,可優(yōu)先保證高優(yōu)先級(jí)任務(wù)的時(shí)間約束 缺點(diǎn)是上下文切換多 非搶占式調(diào)度 優(yōu)點(diǎn)是上下文切換少 缺點(diǎn)是一般情況下,處理器有效資源利用率低,可調(diào)度性不好 通用內(nèi)核 調(diào)度策略:優(yōu)先級(jí)調(diào)度、時(shí)間片輪轉(zhuǎn)調(diào)度 調(diào)度方式:搶占式、不可搶占式、選擇可搶占式 時(shí)間片:定長時(shí)間片與變長時(shí)間片

24、 商業(yè)上銷售的實(shí)時(shí)內(nèi)核都是搶占式內(nèi)核,40,可重入性,可重入性 reentrancy 可重入型函數(shù)可以被一個(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞。 可重入型函數(shù)任何時(shí)候可以被中斷,一段時(shí)間后又可以執(zhí)行,而相應(yīng)的數(shù)據(jù)不會(huì)丟失。 可重入型函數(shù)只使用局部變量,即變量保存在CPU寄存器中或堆棧中。 在并行運(yùn)行環(huán)境中非常重要 可重入型函數(shù) 不可重入型函數(shù) 嵌入式軟件盡量寫成可重入函數(shù),41,優(yōu)先級(jí)反轉(zhuǎn)/優(yōu)先級(jí)倒置,高優(yōu)先級(jí)的任務(wù)在申請(qǐng)已經(jīng)被低優(yōu)先級(jí)任務(wù)占據(jù)的資源時(shí),高優(yōu)先級(jí)被迫進(jìn)入等待態(tài),如果有一個(gè)中優(yōu)先級(jí)的任務(wù)一直在執(zhí)行,則高優(yōu)先級(jí)將無法執(zhí)行,42,兩個(gè)解決方法 優(yōu)先級(jí)繼承(priority inhe

25、ritance) 設(shè)S為正占用著某項(xiàng)共享資源的進(jìn)程P以及所有正在等待占用這個(gè)資源的進(jìn)程的集合; 找出這個(gè)集合中的優(yōu)先級(jí)最高者,其優(yōu)先級(jí)為P 把進(jìn)程P的優(yōu)先級(jí)設(shè)置成P 優(yōu)先級(jí)封頂(priority ceiling) 設(shè)S為所有可能競爭使用某項(xiàng)共享資源的進(jìn)程的集合。事先為這個(gè)集合規(guī)定一個(gè)優(yōu)先級(jí)上限p,使得這個(gè)集合中所有進(jìn)程的優(yōu)先級(jí)都小于p。注意p并不一定是整個(gè)系統(tǒng)中的最好優(yōu)先級(jí)。 在創(chuàng)建保護(hù)該項(xiàng)資源的信號(hào)量或互斥量時(shí),將p作為一個(gè)參數(shù)。 每當(dāng)有進(jìn)程通過這個(gè)信號(hào)量或互斥量取得共享資源時(shí),就將此進(jìn)程的優(yōu)先級(jí)暫時(shí)提高到p,一直到釋放該項(xiàng)資源的時(shí)候才恢復(fù)其原有的優(yōu)先級(jí),43,RTOS基本結(jié)構(gòu),實(shí)時(shí)多任務(wù)c

26、ore 任務(wù)管理 多任務(wù)和基于優(yōu)先級(jí)的任務(wù)調(diào)度 定時(shí)器 系統(tǒng)的實(shí)時(shí)時(shí)鐘服務(wù),以及各個(gè)定時(shí)任務(wù)的調(diào)入等 Mem 管理系統(tǒng)的內(nèi)存資源,如DRAM,ROM,FLASHRAM等 資源管理 管理系統(tǒng)的各種資源如系統(tǒng)的各種設(shè)備,端口,中斷等; 事件和消息管理 管理各種系統(tǒng)級(jí)的事件,如實(shí)時(shí)中斷響應(yīng),各種異常等;任務(wù)間同步和通信(信號(hào)量和郵箱等)以及各種系統(tǒng)消息和應(yīng)用程序之間的通訊,44,操作系統(tǒng)實(shí)時(shí)性 一方面是多大程度上充分發(fā)揮硬件潛力,即綜合速度快慢的問題; 另一方面同時(shí)也是反映的速度在多大的程度上得到保證的問題。,45,中斷延遲(Interrupt Latency) 中斷不可嵌套 LINUX的Botto

27、m Half 中斷可嵌套:優(yōu)先級(jí)中斷 大多微處理器不支持; LINUX不支持; UNIX支持 與指令集有關(guān) DMA操作有關(guān) 保證系統(tǒng)調(diào)用的原子性有關(guān),46,調(diào)度延遲(Scheduling Latency) 中斷處理程序進(jìn)程處理 一般調(diào)度算法(Round Robin)不能及時(shí)選中 基于優(yōu)先級(jí)調(diào)度算法,一般能及時(shí)選中 如果目標(biāo)進(jìn)程優(yōu)先級(jí)低呢? 可剝奪調(diào)度和不可剝奪調(diào)度 LINUX是屬于什么調(diào)度?,47,Linux既不是完全的可剝奪,也不是完全的不可剝奪,上下文切換延遲(Context Switch Latency) 大小取決于CPU和操作系統(tǒng) 采用MMU 不采用MMU,48,只要發(fā)生調(diào)度,就能選中

28、目標(biāo)進(jìn)程嗎? 根據(jù)時(shí)間片的耗用調(diào)整優(yōu)先級(jí) 拉開距離,分等級(jí) 對(duì)實(shí)時(shí)進(jìn)程而言,“應(yīng)該沒有問題”不夠 要保證 是否可以不用中斷、也不用調(diào)度,回到最簡單的“監(jiān)控程序” ? 根據(jù)實(shí)際任務(wù)情況,多任務(wù)需要調(diào)度,任務(wù)越少越簡單,越建議用監(jiān)控程序,49,實(shí)時(shí)操作系統(tǒng)IO 需要有效的中斷處理能力來處理異步事件和高效的I/O能力來處理有嚴(yán)格時(shí)間限制的數(shù)據(jù)收發(fā)應(yīng)用 系統(tǒng)應(yīng)該有在事先定義的時(shí)間范圍內(nèi)識(shí)別和處理離散的事件的能力。 系統(tǒng)能夠處理和存儲(chǔ)控制系統(tǒng)所需要的大量的數(shù)據(jù)。,50,Kernel分為:微內(nèi)核與單內(nèi)核,微內(nèi)核 (microkernel) 設(shè)計(jì)思想:內(nèi)核盡量小 移植方便 有效利用內(nèi)存 內(nèi)核不提供操作系統(tǒng)相

29、關(guān)服務(wù),而提供實(shí)現(xiàn)這些服務(wù)的機(jī)制 包括:進(jìn)程管理、存儲(chǔ)管理、進(jìn)程間通信、中斷響應(yīng)框架 內(nèi)核態(tài):提供服務(wù)實(shí)現(xiàn)的機(jī)制部分 用戶態(tài):操作系統(tǒng)的服務(wù)、設(shè)備驅(qū)動(dòng)、文件系統(tǒng)和用戶界面: 一般的嵌入式操作系統(tǒng)都是微內(nèi)核,單內(nèi)核(monolithic kernel) 設(shè)計(jì)思想:內(nèi)核盡量全 一個(gè)很大的進(jìn)程 模塊間直接調(diào)用或函數(shù)調(diào)用 內(nèi)核提供完整的操作系統(tǒng)服務(wù) 內(nèi)核態(tài):文件系統(tǒng),進(jìn)程間通信,進(jìn)程調(diào)度器,內(nèi)存管理,設(shè)備驅(qū)動(dòng)程序 用戶態(tài):應(yīng)用程序 應(yīng)用程序通過內(nèi)核提供的“系統(tǒng)調(diào)用”使用操作系統(tǒng)提供的服務(wù) Linux和WinCE,51,微內(nèi)核是嵌入式操作系統(tǒng)的主流,可靠性好 不會(huì)因一個(gè)組件出現(xiàn)崩潰 實(shí)時(shí)性好 內(nèi)核較小,改造為搶占式、可重入方便 安全性 內(nèi)核小符合最小權(quán)限準(zhǔn)則 模塊多接口多導(dǎo)致安全降低 開發(fā)方便 小而且簡單,容易理解,容易維護(hù) 各模塊可以獨(dú)立開發(fā) 系統(tǒng)配置靈活方便 性能差 系統(tǒng)調(diào)用需

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論