嵌入式系統(tǒng)基礎(chǔ)教程第18講第9章嵌入式操作系統(tǒng)概論課件_第1頁
嵌入式系統(tǒng)基礎(chǔ)教程第18講第9章嵌入式操作系統(tǒng)概論課件_第2頁
嵌入式系統(tǒng)基礎(chǔ)教程第18講第9章嵌入式操作系統(tǒng)概論課件_第3頁
嵌入式系統(tǒng)基礎(chǔ)教程第18講第9章嵌入式操作系統(tǒng)概論課件_第4頁
嵌入式系統(tǒng)基礎(chǔ)教程第18講第9章嵌入式操作系統(tǒng)概論課件_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)原理與開發(fā)第18講南京大學(xué)計算機(jī)系 俞建新主講2008年春季2008年6月24日1南京大學(xué)計算機(jī)系第9章 嵌入式操作系統(tǒng)概論本章主要介紹以下內(nèi)容:實時系統(tǒng)嵌入式操作系統(tǒng)的特點與分類RTOS常用調(diào)度算法啟動代碼Bootloader嵌入式操作系統(tǒng)uCOS-II2008年6月24日2南京大學(xué)計算機(jī)系9.1 實時系統(tǒng)什么是實時系統(tǒng)一般而言具有實時性能的控制系統(tǒng)是實時系統(tǒng)。實時表示一個非常短的時間間隔“time gap”(也可以認(rèn)為表示時間框架“time frame”或者時間窗口“time window”),具有“立即”之含義。當(dāng)計算機(jī)進(jìn)行實時處理時,要求在接收到數(shù)據(jù)的同時執(zhí)行操作并輸出計算結(jié)

2、果,不能超出計算機(jī)系統(tǒng)所能容忍的時限。2008年6月24日3南京大學(xué)計算機(jī)系實時系統(tǒng)的定義IEEE(美國電氣電子工程師協(xié)會)給出的實時系統(tǒng)定義是“那些正確性不僅取決于計算的邏輯結(jié)果,也取決于產(chǎn)生結(jié)果所花費的時間的系統(tǒng)”。這就是說,實時系統(tǒng)運算能力具有及時與正確的雙重特征。本教程給出的實時系統(tǒng)(Real-Time System)定義是:對外來事件能在限定的響應(yīng)時間內(nèi)做出預(yù)定質(zhì)量處理的計算機(jī)系統(tǒng)。2008年6月24日4南京大學(xué)計算機(jī)系實時系統(tǒng)的主要特點及時響應(yīng)外部發(fā)生的隨機(jī)任務(wù)請求在規(guī)定的時間內(nèi)完成任務(wù)任務(wù)執(zhí)行的時間限制類型和類型間關(guān)系截止時間(finish time)任務(wù)執(zhí)行預(yù)設(shè)時間(budge

3、t time)一個任務(wù)的截止時間通常大于任務(wù)執(zhí)行預(yù)設(shè)時間2008年6月24日5南京大學(xué)計算機(jī)系實時系統(tǒng)的關(guān)鍵因素計算機(jī)系統(tǒng)的實時性能主要由操作系統(tǒng)和運行在操作系統(tǒng)上的應(yīng)用軟件決定,對于無操作系統(tǒng)的計算機(jī)則由控制程序決定。具有實時性能的操作系統(tǒng)稱為實時操作系統(tǒng)(Real-Time Operating System, RTOS)2008年6月24日6南京大學(xué)計算機(jī)系實時系統(tǒng)與非實時系統(tǒng)的例子實時系統(tǒng)典型例子民用飛機(jī)的導(dǎo)航系統(tǒng)汽車的防剎車抱死系統(tǒng)(ABS)非實時系統(tǒng)典型例子銀行數(shù)據(jù)查詢處理系統(tǒng)視頻播放系統(tǒng)圖像掃描文字識別系統(tǒng)2008年6月24日7南京大學(xué)計算機(jī)系提高實時性能的因素以下幾種途徑常常用來

4、提高應(yīng)用系統(tǒng)實時性能盡量采用硬件處理優(yōu)化微處理器的中斷機(jī)制采用簡單的單線程循環(huán)程序采用基于實時操作系統(tǒng)的復(fù)雜多線程操作2008年6月24日8南京大學(xué)計算機(jī)系實時系統(tǒng)的屬性和指標(biāo)實時系統(tǒng)的兩個基本屬性可預(yù)測性和可靠性實時系統(tǒng)的實時性能主要根據(jù)其RTOS的三個主要指標(biāo)來衡量 響應(yīng)時間(response time)吞吐量(throughput)生存時間(survival time)2008年6月24日9南京大學(xué)計算機(jī)系響應(yīng)時間計算機(jī)從識別一個外部事件到做出響應(yīng)的時間 RTOS響應(yīng)時間的具體指標(biāo)是:中斷延遲時間(Interrupt Latency)任務(wù)切換時間(Task Switching Laten

5、cy)2008年6月24日10南京大學(xué)計算機(jī)系響應(yīng)時間(續(xù))兩個時間指標(biāo)的計算公式是:中斷延遲時間 = TCloseINT + TDoISR + TSaveReg + TStartServiceTCloseINT :關(guān)中斷的最長時間TDoISR :開始執(zhí)行中斷服務(wù)子程序的第一條指令的時間TSaveReg : 保存CPU內(nèi)部寄存器的時間TStartService :內(nèi)核進(jìn)入中斷服務(wù)函數(shù)的執(zhí)行時間任務(wù)切換時間: T to Do B Task Time T to Pause A Task TimeT to Do B Task Time : 開始執(zhí)行B任務(wù)的時刻T to Pause A Task :暫

6、停執(zhí)行A任務(wù)的時刻2008年6月24日11南京大學(xué)計算機(jī)系響應(yīng)時間(續(xù))任務(wù)的切換時間就是CPU從停止一個任務(wù)的執(zhí)行切換到另一個任務(wù)所需時間VxWorks是實時嵌入式系統(tǒng),內(nèi)核為Wind。下表給出了eCos操作系統(tǒng)內(nèi)核實時響應(yīng)時間參考數(shù)據(jù)硬件測試環(huán)境中斷延遲時間任務(wù)切換時間ARM7TDMI(20MHz)22.10 ms49.14 msStrongARM(221.2MHz)3.25 ms1.85 msIntel Xcale(600MHz)1.87 ms0.87 ms2008年6月24日12南京大學(xué)計算機(jī)系實時系統(tǒng)的分類根據(jù)響應(yīng)性能分硬實時系統(tǒng)系統(tǒng)未能在時限內(nèi)就某一事件做出響應(yīng)而失敗,并且該失敗被

7、認(rèn)為是一種全面的系統(tǒng)失敗,則可以認(rèn)為該系統(tǒng)是一個硬實時(hard real-time)系統(tǒng)。 軟實時系統(tǒng)非硬實時的實時系統(tǒng)可以歸類為軟實時系統(tǒng)。在一個軟實時(soft real-time)系統(tǒng)中,存在時限指標(biāo),但是如果輸出響應(yīng)超過時限,一般不會造成嚴(yán)重后果。2008年6月24日13南京大學(xué)計算機(jī)系硬實時系統(tǒng)和軟實時系統(tǒng)時限效益下面是兩種實時系統(tǒng)的時限效益圖2008年6月24日14南京大學(xué)計算機(jī)系實時系統(tǒng)的分類(續(xù))按照響應(yīng)時間的快慢分類:強實時系統(tǒng):其響應(yīng)時間在毫秒級或微秒級普通實時系統(tǒng):其響應(yīng)時間一般幾秒弱實時系統(tǒng):其響應(yīng)時間一般在數(shù)十秒2008年6月24日15南京大學(xué)計算機(jī)系9.2 嵌入式

8、操作系統(tǒng)的特點和分類操作系統(tǒng)可以最粗略地分為內(nèi)核(kernel)、設(shè)備驅(qū)動與外殼(shell)三大部分。通俗地講,內(nèi)核是操作系統(tǒng)的核心模塊,管理CPU的運行;而外殼是內(nèi)核的外圍模塊,對用戶發(fā)出的命令進(jìn)行解釋和處理。2008年6月24日16南京大學(xué)計算機(jī)系嵌入式系統(tǒng)內(nèi)核廣義解釋指裝入到存儲器的嵌入式軟件中的操作系統(tǒng)部分,在這種情況下,除了操作系統(tǒng)內(nèi)核之外,嵌入式軟件還包括板級支持包,驅(qū)動程序和應(yīng)用軟件 狹義解釋指嵌入式操作系統(tǒng)中負(fù)責(zé)多任務(wù)管理及任務(wù)之間進(jìn)行通信的多任務(wù)處理部分。它進(jìn)行任務(wù)管理(進(jìn)程管理),時鐘管理,內(nèi)存管理等 2008年6月24日17南京大學(xué)計算機(jī)系嵌入式操作系統(tǒng)的特點可移植性強

9、調(diào)實時性能內(nèi)核精簡,所占空間小搶占式內(nèi)核使用可重入函數(shù)可配置可裁剪高可靠性2008年6月24日18南京大學(xué)計算機(jī)系可移植性硬件平臺的多樣性以及提高代碼可重用性的雙重條件,導(dǎo)致嵌入式操作系統(tǒng)研發(fā)機(jī)構(gòu)力求做到嵌入式系統(tǒng)具有良好的可移植性??紤]到移植性,嵌入式系統(tǒng)通常分為兩部分硬件相關(guān)部分包括班級支持包(BSP)或硬件抽象層(HAL)硬件無關(guān)部分包括內(nèi)核、中間件和API2008年6月24日19南京大學(xué)計算機(jī)系強調(diào)實時性能傳統(tǒng)觀點嵌入式操作系統(tǒng)應(yīng)該具有強實時性能 現(xiàn)代由于手機(jī)和媒體播放器之類的軟實時嵌入式產(chǎn)品日益普及,導(dǎo)致一些嵌入式操作系統(tǒng)降低了實時性能 實時性能仍然被認(rèn)為是評價嵌入式操作系統(tǒng)的最重要

10、技術(shù)指標(biāo) 2008年6月24日20南京大學(xué)計算機(jī)系內(nèi)核精簡:所占空間小內(nèi)核是操作系統(tǒng)中靠近硬件并且享有最高特權(quán)的一層。為了適應(yīng)嵌入式計算機(jī)存儲空間小的限制,嵌入式操作系統(tǒng)的內(nèi)核都盡量小型化。2008年6月24日21南京大學(xué)計算機(jī)系典型的操作系統(tǒng)內(nèi)核空間尺寸VxWorks操作系統(tǒng)內(nèi)核最小可裁減到8KBNucleus Plus內(nèi)核在典型的CISC體系結(jié)構(gòu)上占據(jù)大約20KB空間,而在典型的RISC體系結(jié)構(gòu)上占據(jù)空間為40KB左右,其內(nèi)核數(shù)據(jù)結(jié)構(gòu)占據(jù)1.5KB空間QNX的內(nèi)核大約占12KB國產(chǎn)Hopen操作系統(tǒng)的內(nèi)核大約占10KBWinCE操作系統(tǒng)的內(nèi)核大約占25KB2008年6月24日22南京大學(xué)計

11、算機(jī)系搶占式內(nèi)核從內(nèi)核調(diào)度基本特點分類,嵌入式操作系統(tǒng)內(nèi)核分為搶占式內(nèi)核(preemptive kernel)和不可搶占式內(nèi)核(non-preemptive kernel)搶占式內(nèi)核的最大特點是最高優(yōu)先級任務(wù)能夠立即得到執(zhí)行,從而能夠保證系統(tǒng)具有高度實時性能。2008年6月24日23南京大學(xué)計算機(jī)系搶占式內(nèi)核(續(xù)1)不可搶占式內(nèi)核不可搶占式內(nèi)核稱為合作型多任務(wù)(進(jìn)程)處理,要求每個任務(wù)在程序代碼執(zhí)行完畢后自我放棄CPU的所有權(quán) 不可搶占式內(nèi)核的最大缺陷在于響應(yīng)時間。高優(yōu)先級的任務(wù)已經(jīng)進(jìn)入就緒態(tài),但還不能運行,直到當(dāng)前運行的任務(wù)釋放CPU為止。2008年6月24日24南京大學(xué)計算機(jī)系搶占式內(nèi)核(

12、續(xù)2)搶占式內(nèi)核的工作原理最高優(yōu)先級的任務(wù)就緒必然得到CPU的控制權(quán) 。當(dāng)一個運行著的任務(wù)使另一個比它優(yōu)先級高的任務(wù)進(jìn)入了就緒態(tài),則當(dāng)前任務(wù)的CPU控制權(quán)就會被搶占,那個高優(yōu)先級的任務(wù)立刻獲得CPU的控制權(quán)。 通常把最高優(yōu)先級指派給實時要求最高的任務(wù)。且絕大多數(shù)嵌入式操作系統(tǒng)的內(nèi)核采用搶占式調(diào)度策略2008年6月24日25南京大學(xué)計算機(jī)系使用可重入函數(shù)實時操作系統(tǒng)要求使用可重入函數(shù) 什么是可重入函數(shù)?如果一個函數(shù)的代碼能夠同時被多個任務(wù)并發(fā)地調(diào)用(分享),并且在調(diào)用該函數(shù)時這些任務(wù)之間不會產(chǎn)生數(shù)據(jù)干擾錯誤,那么這個函數(shù)就是可重入(reentrant)函數(shù)。2008年6月24日26南京大學(xué)計算機(jī)

13、系意義和準(zhǔn)則可重入函數(shù)的重要價值在于:任意時刻被中斷后再繼續(xù)運行不會丟失數(shù)據(jù) 可重入函數(shù)中使用變量有兩個準(zhǔn)則盡量使用局部變量,即把變量保存在CPU寄存器中或者棧區(qū)中如果使用全局變量,則要對全局變量進(jìn)行保護(hù)2008年6月24日27南京大學(xué)計算機(jī)系使用可重入函數(shù)(續(xù)1)不可重入函數(shù)的特征有函數(shù)體內(nèi)使用了靜態(tài)的數(shù)據(jù)結(jié)構(gòu)函數(shù)體內(nèi)調(diào)用了malloc()或者free()函數(shù)函數(shù)體內(nèi)調(diào)用了標(biāo)準(zhǔn)I/O函數(shù)搶占式內(nèi)核的函數(shù)必須是可重入的。在搶占式內(nèi)核控制之下,如果有兩個以上任務(wù)需要調(diào)用同一個不可可重入函數(shù),則必須使之滿足互斥條件。2008年6月24日28南京大學(xué)計算機(jī)系使用可重入函數(shù)(續(xù)2)為了保證編寫的函數(shù)具

14、有可重入性,其關(guān)鍵之處是應(yīng)當(dāng)做到以下幾點:使用本地數(shù)據(jù)。不返回指向靜態(tài)數(shù)據(jù)的指針,所有數(shù)據(jù)都由函數(shù)的調(diào)用者提供。 不為連續(xù)的調(diào)用持有靜態(tài)數(shù)據(jù)。通過制作全局?jǐn)?shù)據(jù)的本地拷貝來保護(hù)全局?jǐn)?shù)據(jù)。 不調(diào)用任何不可重入函數(shù)。2008年6月24日29南京大學(xué)計算機(jī)系可配置嵌入式操作系統(tǒng)必須具有良好的可配置功能,這也是嵌入式操作系統(tǒng)區(qū)別于通用操作系統(tǒng)的一個重要方面 最典型的可配置型嵌入式操作系統(tǒng)是eCos,在內(nèi)部設(shè)計了大量可以調(diào)節(jié)操作系統(tǒng)特性和性能的參數(shù),并為配置這些參數(shù)設(shè)計了專門的配置工具2008年6月24日30南京大學(xué)計算機(jī)系可裁剪指編譯之前對嵌入式操作系統(tǒng)功能部件進(jìn)行增加和刪除,可定制是可裁減的另外一種表

15、達(dá)方式 可以根據(jù)產(chǎn)品的資源限制和功能/性能需求對嵌入式操作系統(tǒng)的功能部件進(jìn)行增刪,將所有不必要的部件去除,同時把增強功能和提高性能的部件添加進(jìn)去,最終編譯成一個滿足特定設(shè)計要求的最小尺寸的操作系統(tǒng)目標(biāo)程序 2008年6月24日31南京大學(xué)計算機(jī)系高可靠性嵌入式系統(tǒng)往往在無人操作和值守的環(huán)境下運行,有的嵌入式系統(tǒng)運行時間長甚至是常年運行,因此對可靠性的要求就成為嵌入式操作系統(tǒng)的一個重要特點 VxWorks、C/OS-II等,都已經(jīng)經(jīng)過了多年應(yīng)用的考驗 ,一般來說這些操作系統(tǒng)都是穩(wěn)定和安全的,具有公認(rèn)的高可靠性 2008年6月24日32南京大學(xué)計算機(jī)系嵌入式操作系統(tǒng)分類按源代碼分類商用型和開源型按

16、實時性能分類強實時型和普通實時型按內(nèi)核結(jié)構(gòu)分類單內(nèi)核型和微內(nèi)核型2008年6月24日33南京大學(xué)計算機(jī)系單內(nèi)核單內(nèi)核(monolithic kernel)是傳統(tǒng)型操作系統(tǒng)內(nèi)核,有時也被稱為宏內(nèi)核(macro kernel)單內(nèi)核內(nèi)部包含I/O管理和設(shè)備管理、進(jìn)程管理、調(diào)度器、內(nèi)存管理、文件管理和時間管理等模塊各模塊之間的耦合度很緊,模塊之間的通信通過直接函數(shù)調(diào)用實現(xiàn),而不是消息傳遞 2008年6月24日34南京大學(xué)計算機(jī)系單內(nèi)核(續(xù))缺點占內(nèi)存空間大,缺乏可擴(kuò)展性,維護(hù)困難,排除故障和增加新功能需要重編譯 優(yōu)點系統(tǒng)花在內(nèi)核功能切換的開銷非常小,對外來事件反應(yīng)速度快 2008年6月24日35南京

17、大學(xué)計算機(jī)系單內(nèi)核/微內(nèi)核的內(nèi)部結(jié)構(gòu)圖解單內(nèi)核與微內(nèi)核操作系統(tǒng)模塊框架2008年6月24日36南京大學(xué)計算機(jī)系微內(nèi)核基本思想是在內(nèi)核模式中執(zhí)行基本的核心操作系統(tǒng)功能,非基本的服務(wù)和應(yīng)用構(gòu)筑在微內(nèi)核之上 微內(nèi)核用水平架構(gòu)代替了傳統(tǒng)的垂直分層架構(gòu) 設(shè)備驅(qū)動程序、文件系統(tǒng)、虛擬內(nèi)存管理程序和窗口系統(tǒng)等以服務(wù)器進(jìn)程方式工作。它們之間的相互作用變成了對等地通過微內(nèi)核傳遞消息 2008年6月24日37南京大學(xué)計算機(jī)系微內(nèi)核(續(xù))突出特點內(nèi)核小巧,通常微內(nèi)核只有任務(wù)管理、虛存管理和進(jìn)程間通信3個部分接口一致,所有進(jìn)程請求使用統(tǒng)一接口,進(jìn)程不需要區(qū)分內(nèi)核模式和用戶模式服務(wù)各個功能模塊之間松散耦合,只完成服務(wù)功

18、能,系統(tǒng)管理功能交給一個或多個特權(quán)服務(wù)程序基于客戶/服務(wù)器體系結(jié)構(gòu),在微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)中,任務(wù)間通信機(jī)制消息機(jī)制是系統(tǒng)的基礎(chǔ)微內(nèi)核功能擴(kuò)充方便,但是各個功能之間的切換而引起的開銷非常大。 2008年6月24日38南京大學(xué)計算機(jī)系9.3 RTOS常用的調(diào)度算法本節(jié)內(nèi)容基于優(yōu)先級的調(diào)度算法時鐘驅(qū)動調(diào)度算法基于比例共享的調(diào)度算法非周期任務(wù)的調(diào)度優(yōu)先級反轉(zhuǎn)和對策2008年6月24日39南京大學(xué)計算機(jī)系基于優(yōu)先級的調(diào)度算法大多數(shù)實時系統(tǒng)采用該算法該算法給每個任務(wù)分配一個優(yōu)先級,在每次任務(wù)調(diào)度時,總是執(zhí)行最高優(yōu)先級的任務(wù)。優(yōu)先級驅(qū)動算法是事件驅(qū)動算法在基于該算法調(diào)度的內(nèi)核中,保存就緒任務(wù)隊列的數(shù)據(jù)結(jié)構(gòu)

19、有幾種,可以是位圖,也可以是表格根據(jù)不同的優(yōu)先級指派方法,該調(diào)度算法可以分為靜態(tài)實時調(diào)度和動態(tài)實時調(diào)度兩種類型 2008年6月24日40南京大學(xué)計算機(jī)系靜態(tài)實時調(diào)度在系統(tǒng)編譯的時候就做出決定從就緒任務(wù)隊列中選擇哪個任務(wù)來運行 假設(shè)系統(tǒng)中實時任務(wù)特性是事先知道可以完全脫機(jī)的進(jìn)行可調(diào)度性分析 兩種靜態(tài)實時調(diào)度算法RMS算法 和 DMS 算法2008年6月24日41南京大學(xué)計算機(jī)系RMS算法全稱速率單調(diào)調(diào)度(Rate Monotonic Scheduling),它是由Liu和Layand在1973年提出來的靜態(tài)多任務(wù)調(diào)度算法,適用于那些響應(yīng)和處理周期性事件的實時任務(wù) 基本原理是任務(wù)的速率與其周期成反

20、比 2008年6月24日42南京大學(xué)計算機(jī)系RMS算法(續(xù))RMS算法基于嵌入式系統(tǒng)做出了如下5個模型假設(shè)所有的任務(wù)請求都是周期性的,必須在限定的時限內(nèi)完成;任務(wù)之間都是獨立的,每個任務(wù)的請求不依賴于其他任務(wù)請求的開始或完成; 每個任務(wù)的運行時間是不變的(不考慮中斷情況);所有的非周期性任務(wù)都在特殊的情況下運行搶占式調(diào)度,單處理器,任務(wù)切換的時間忽略不計。2008年6月24日43南京大學(xué)計算機(jī)系RMS算法(續(xù)1)RMS模型設(shè)S=S1, S2, S3, . Sn為一個含有n個周期性任務(wù)的集合,S集合中的任務(wù)用Si=Ti,Ci,Di,Pi,Ui(i=1,2,3,.n)來表示。其中:Ti表示任務(wù)的發(fā)

21、生周期,Ci表示任務(wù)的最長執(zhí)行時間,Di表示任務(wù)的相對截止時間,Pi表示任務(wù)在S中的優(yōu)先級(優(yōu)先級數(shù)值越小,優(yōu)先權(quán)越高),Ui表示任務(wù)的CPU利用率 整個任務(wù)集S的CPU利用率為:Un= 2008年6月24日44南京大學(xué)計算機(jī)系RMS算法(續(xù)2)RMS算法的任務(wù)優(yōu)先級 2008年6月24日45南京大學(xué)計算機(jī)系DMS算法全稱是截止時間單調(diào)調(diào)度(Deadline Monotonic Scheduling) DMS是在速率單調(diào)調(diào)度的基礎(chǔ)上發(fā)展起來的。不同的是任務(wù)Si的優(yōu)先級按相對截止時間Di來分配。相對截止時間短的任務(wù)優(yōu)先級高,相對截止時間長的任務(wù)優(yōu)先級低 2008年6月24日46南京大學(xué)計算機(jī)系動

22、態(tài)實時調(diào)度指調(diào)度器在運行期間才決定選擇哪個就緒任務(wù)來運行 主要算法最早截止時間優(yōu)先(EDF,Earliest Deadline First) 最小空閑時間優(yōu)先(LSF,Least Slack Time First)等 2008年6月24日47南京大學(xué)計算機(jī)系最早截止時間優(yōu)先算法1973年由Liu和Layland首先提出來的 是一個動態(tài)優(yōu)先級驅(qū)動的調(diào)度算法,其中分配給每個任務(wù)的優(yōu)先級根據(jù)它們當(dāng)前對截止時限的要求而定 離截止時限最短時間的就緒任務(wù)分配最高的優(yōu)先級,而離截止時限最長時間的任務(wù)被分配最低優(yōu)先級。2008年6月24日48南京大學(xué)計算機(jī)系最早截止時間優(yōu)先(續(xù))搶占式EDF調(diào)度算法基于如下的

23、假設(shè) 所有實時任務(wù)的啟動時間為零;所有的任務(wù)都是無關(guān)的,不存在先后次序的約束;任何任務(wù)不存在不可搶占的代碼段,且搶占的代價可以忽略;只有處理器請求是有意義的,內(nèi)存、I/O和其它資源請求可以忽略;任務(wù)的相對最終完成時限與它的周期相等 2008年6月24日49南京大學(xué)計算機(jī)系最小空閑時間優(yōu)先 是對經(jīng)典的動態(tài)優(yōu)先級算法EDF的改進(jìn)提出了空閑時間(也就是時間裕度)的概念,進(jìn)程的優(yōu)先級由空閑時間大小決定 LSF算法的缺點:由于等待任務(wù)的空閑時間是遞減的,其等待執(zhí)行的緩急程度也隨時間逝去越來越緊迫,因此在系統(tǒng)執(zhí)行過程中,等待任務(wù)隨時可能會搶占當(dāng)前執(zhí)行的任務(wù) 2008年6月24日50南京大學(xué)計算機(jī)系靜態(tài)的與

24、動態(tài)的基于優(yōu)先級調(diào)度算法比較 靜態(tài)調(diào)度算法適合于任務(wù)時間要素比較明確場合 靜態(tài)調(diào)度算法不適合用于任務(wù)時限未明確場合動態(tài)調(diào)度算法需要不斷地調(diào)整任務(wù)的優(yōu)先級別,以適應(yīng)任務(wù)時限變化的執(zhí)行環(huán)境 一般而言,動態(tài)優(yōu)先級調(diào)度算法對資源的利用率高于靜態(tài)優(yōu)先級調(diào)度算法2008年6月24日51南京大學(xué)計算機(jī)系時鐘驅(qū)動調(diào)度算法該算法是系統(tǒng)調(diào)度程序通過時鐘驅(qū)動,在事先確定的某些時刻做出調(diào)度決策作業(yè)的調(diào)度表可以脫機(jī)計算并保存下來 運行時的調(diào)度開銷可被最小化 調(diào)度時刻通常由一個硬件定時器的時鐘中斷產(chǎn)生 采用該算法的嵌入式操作系統(tǒng)可以是實時的,也可以是分時的2008年6月24日52南京大學(xué)計算機(jī)系基于比例共享的調(diào)度算法基本

25、思想就是按照一定的權(quán)重(比例)對一組需要調(diào)度的任務(wù)進(jìn)行調(diào)度,讓它們的執(zhí)行時間與它們的權(quán)重完全成正比 通過兩種方法來實現(xiàn)比例共享調(diào)度算 第一種方法是調(diào)節(jié)各個就緒進(jìn)程出現(xiàn)在調(diào)度隊列隊首的頻率,并調(diào)度隊首的進(jìn)程執(zhí)行 第二種做法就是逐次調(diào)度就緒隊列中的各個進(jìn)程投入運行,但根據(jù)分配的權(quán)重調(diào)節(jié)分配給每個進(jìn)程的運行時間片 2008年6月24日53南京大學(xué)計算機(jī)系非周期任務(wù)的調(diào)度非周期任務(wù)被實時系統(tǒng)用來響應(yīng)外部觸發(fā)事件,非周期任務(wù)完成的時間越快,系統(tǒng)的響應(yīng)性能越好 實時系統(tǒng)設(shè)計重要目標(biāo)之一是提高混合任務(wù)集的響應(yīng)性能,也就是說除了保證周期任務(wù)得到正確執(zhí)行外,還應(yīng)該減小非周期任務(wù)的響應(yīng)時間 非周期任務(wù)的調(diào)度三種方

26、法:后臺處理、中斷驅(qū)動執(zhí)行和周期查詢執(zhí)行。2008年6月24日54南京大學(xué)計算機(jī)系臨界資源和代碼臨界區(qū)臨界資源指在一段時間只允許一個進(jìn)程訪問的資源。硬件臨界資源和軟件臨界資源之分代碼臨界區(qū)指處理時不可分割的代碼進(jìn)入臨界區(qū)時必須關(guān)中斷執(zhí)行完臨界區(qū)代碼之后要立即開中斷2008年6月24日55南京大學(xué)計算機(jī)系優(yōu)先級反轉(zhuǎn)和對策優(yōu)先級翻轉(zhuǎn)現(xiàn)象由于多進(jìn)程共享資源,具有最高優(yōu)先權(quán)的進(jìn)程被低優(yōu)先級進(jìn)程阻塞,反而使具有中優(yōu)先級的進(jìn)程先于高優(yōu)先級的進(jìn)程執(zhí)行,導(dǎo)致系統(tǒng)的崩潰。解決該問題的方法優(yōu)先級封頂協(xié)議優(yōu)先級繼承協(xié)議2008年6月24日56南京大學(xué)計算機(jī)系9.4 啟動程序Bootloader本節(jié)講授以下內(nèi)容嵌入式

27、系統(tǒng)的啟動方式Bootloader的程序結(jié)構(gòu)與調(diào)試Bootloader人機(jī)交互接口設(shè)計常用Bootloader介紹2008年6月24日57南京大學(xué)計算機(jī)系啟動程序Bootloader屬于嵌入式軟件最底層的部分。從軟件角度(分兩部分)固件(fireware)中的引導(dǎo)代碼(可選)Bootloader2008年6月24日58南京大學(xué)計算機(jī)系嵌入式系統(tǒng)的啟動方式整個系統(tǒng)的加載啟動任務(wù)就完全由Bootloader完成。是嵌入式系統(tǒng)加電后運行的第一段軟件代碼,先于內(nèi)核以及用戶應(yīng)用程序運行。Bootloader初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境設(shè)定在一個正確的狀態(tài),以便接下來加載操

28、作系統(tǒng)內(nèi)核、運行用戶應(yīng)用程序。 2008年6月24日59南京大學(xué)計算機(jī)系Bootloader系統(tǒng)架構(gòu)用例分析2008年6月24日60南京大學(xué)計算機(jī)系Bootloader的安裝對于每一個嵌入式硬件電路板,需要開發(fā)人員單獨編寫該電路板所使用的Bootloader代碼 安裝統(tǒng)加電或復(fù)位后,所有的微處理器通常都從某個由CPU制造商預(yù)先安排的地址上取指令。通?;谖⑻幚砥鳂?gòu)建的嵌入式系統(tǒng)都有某種類型的固態(tài)存儲設(shè)備被映射到這個預(yù)先安排的地址上。而Bootloader則從這個地址開始固化到固態(tài)存儲設(shè)備中例如,基于ARM7TDMI核的微處理器在復(fù)位時都從地址0 x00000000取得它的第一條指令。2008年

29、6月24日61南京大學(xué)計算機(jī)系Bootloader的操作方式兩種操作模式啟動加載模式和下載模式啟動加載模式(boot loading)也稱自主(Autonomous)模式 ,是指Bootloader從目標(biāo)機(jī)上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到RAM中運行,整個過程并沒有用戶的介入是Bootloader的正常工作模式,在嵌入式產(chǎn)品完工交付時或者實際使用時,必須使得Bootloader工作在這種模式下 2008年6月24日62南京大學(xué)計算機(jī)系Bootloader的操作方式(續(xù)1)下載模式(downloading)目標(biāo)板上的Bootloader將先通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件 B

30、ootloader 的這種模式通常在開發(fā)過程中以及第一次安裝內(nèi)核與根文件系統(tǒng)時被使用,此外,以后的系統(tǒng)更新也會用到Bootloader的這種工作模式 這種模式下的Bootloader通常都會向它的終端用戶提供一個簡單的命令行接口 2008年6月24日63南京大學(xué)計算機(jī)系Bootloader通信接口及協(xié)議兩種通信方式串口通信常用的串口協(xié)議:XMODEM,YMODEM和ZMODEM以太網(wǎng)通信常用協(xié)議:TFTP2008年6月24日64南京大學(xué)計算機(jī)系Bootloader的程序結(jié)構(gòu)與調(diào)試Bootloader的實現(xiàn)依賴于CPU的體系結(jié)構(gòu),故大多數(shù)Bootloader都分為stage1和stage2兩大部

31、分 stage1的主要操作 基本的硬件初始化 為加載stage2準(zhǔn)備RAM空間拷貝stage2的執(zhí)行代碼到RAM中設(shè)置棧區(qū)指針SP跳轉(zhuǎn)到stage2的入口點2008年6月24日65南京大學(xué)計算機(jī)系Bootloader的程序結(jié)構(gòu)與調(diào)試(續(xù))stage2的主要操作初始化本階段要使用的硬件設(shè)備檢測系統(tǒng)的內(nèi)存映射Bootloader的調(diào)試交叉調(diào)試技術(shù)可分為硬件調(diào)試和源碼軟件調(diào)試2008年6月24日66南京大學(xué)計算機(jī)系Bootloader人機(jī)交互接口設(shè)計通過串口實現(xiàn)。用戶使用超級終端或minicom與目標(biāo)板通信U-Boot是目前廣泛使用的一個通用引導(dǎo)加載程序 2008年6月24日67南京大學(xué)計算機(jī)系常用Booloader介紹U-BootU-Boot全稱Universal Bootloader,是德國DENX軟件公司開發(fā)的,用于多種嵌入式CPU的Bootloader程序 U-Boot不僅支持嵌入式Linux系統(tǒng)的引導(dǎo),還能支持NetBSD、VxWorks、QNX、 RTEMS、ARTOS、LynxO、Windows CE、QNX等嵌入式操作系統(tǒng)的引導(dǎo) 2008年6月24日68南京大學(xué)計算機(jī)系常用Booloader介紹(續(xù)1)RedbootRedBoot,是基于eCos實時操作系統(tǒng)硬件抽象層實現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論