第1章 嵌入式實時操作系統(tǒng)基本概念_第1頁
第1章 嵌入式實時操作系統(tǒng)基本概念_第2頁
第1章 嵌入式實時操作系統(tǒng)基本概念_第3頁
第1章 嵌入式實時操作系統(tǒng)基本概念_第4頁
第1章 嵌入式實時操作系統(tǒng)基本概念_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第1章章 嵌入式實時操作系統(tǒng)的基本概念嵌入式實時操作系統(tǒng)的基本概念本章內(nèi)容本章內(nèi)容n嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念n嵌入式操作系統(tǒng)的基本概念嵌入式操作系統(tǒng)的基本概念n實時操作系統(tǒng)的概念實時操作系統(tǒng)的概念nuCOS-II簡介簡介嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念n嵌入式系統(tǒng)出現(xiàn)的原因嵌入式系統(tǒng)出現(xiàn)的原因n設(shè)備智能化的要求設(shè)備智能化的要求n處理器應(yīng)用領(lǐng)域擴展的要求處理器應(yīng)用領(lǐng)域擴展的要求n嵌入式系統(tǒng)的含義嵌入式系統(tǒng)的含義n嵌入到對象系統(tǒng)中,實現(xiàn)智能化控制的計算機系統(tǒng)嵌入到對象系統(tǒng)中,實現(xiàn)智能化控制的計算機系統(tǒng)有別于有別于通用的計算機系統(tǒng)通用的計算機系統(tǒng)n具有較強的處理能力,一般為

2、具有較強的處理能力,一般為32位單片機位單片機有別于單片機機有別于單片機機系統(tǒng)系統(tǒng)n三要素:嵌入性、專用性、計算機系統(tǒng)三要素:嵌入性、專用性、計算機系統(tǒng)n構(gòu)造方法構(gòu)造方法n以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),采用可剪裁的軟硬件,以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),采用可剪裁的軟硬件,適用于對功能、可靠性、成本,體積功耗等有嚴(yán)格要求的專適用于對功能、可靠性、成本,體積功耗等有嚴(yán)格要求的專用計算機系統(tǒng),用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等用計算機系統(tǒng),用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能功能嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念n嵌入式系統(tǒng)的發(fā)展方向嵌入式系統(tǒng)的發(fā)展方向n高性能,可靠性,低功

3、耗,廉價高性能,可靠性,低功耗,廉價嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念n嵌入式系統(tǒng)的發(fā)展歷程嵌入式系統(tǒng)的發(fā)展歷程n嵌入式系統(tǒng)出現(xiàn)于嵌入式系統(tǒng)出現(xiàn)于20世紀(jì)世紀(jì)60年代,年代,40多年來多年來隨著計算機技術(shù)、電子信息技術(shù)的發(fā)展,嵌入隨著計算機技術(shù)、電子信息技術(shù)的發(fā)展,嵌入式系統(tǒng)的各項技術(shù)蓬勃發(fā)展,市場迅猛擴大,式系統(tǒng)的各項技術(shù)蓬勃發(fā)展,市場迅猛擴大,已深入到生產(chǎn)和生活的各個角落已深入到生產(chǎn)和生活的各個角落n嵌入式系統(tǒng)發(fā)展的三個階段嵌入式系統(tǒng)發(fā)展的三個階段n嵌入式系統(tǒng)的出現(xiàn)和興起(嵌入式系統(tǒng)的出現(xiàn)和興起(1960-1970)n嵌入式系統(tǒng)走向成熟、軟件、硬件不斷完善(嵌入式系統(tǒng)走向成熟、軟件、

4、硬件不斷完善(1971-1989)n嵌入式系統(tǒng)向縱深化方向發(fā)展(嵌入式系統(tǒng)向縱深化方向發(fā)展(1990-現(xiàn)在)現(xiàn)在)嵌入式系統(tǒng)的出現(xiàn)和興起嵌入式系統(tǒng)的出現(xiàn)和興起1960-1970n第一代電子管計算機(第一代電子管計算機(1946-1957),無法滿足嵌入式計),無法滿足嵌入式計算所要求的體積小、重量輕、耗電小、可靠性高、實時性算所要求的體積小、重量輕、耗電小、可靠性高、實時性強等要求強等要求n60年代,第二代晶體管計算機系統(tǒng)開始應(yīng)用:年代,第二代晶體管計算機系統(tǒng)開始應(yīng)用:n第一臺機載專用數(shù)字計算機是美國海軍為轟炸機第一臺機載專用數(shù)字計算機是美國海軍為轟炸機“民團團員民團團員”號研號研制的多功能數(shù)

5、字分析器制的多功能數(shù)字分析器(Verdan)n1962年美國乙烯廠實現(xiàn)了工業(yè)裝置中的第一個直接數(shù)字控制系統(tǒng)年美國乙烯廠實現(xiàn)了工業(yè)裝置中的第一個直接數(shù)字控制系統(tǒng)n1965-1970年,第三代集成電路化計算機系統(tǒng)的應(yīng)用年,第三代集成電路化計算機系統(tǒng)的應(yīng)用n第一次使用機載數(shù)字計算機控制:第一次使用機載數(shù)字計算機控制:1965年發(fā)射的年發(fā)射的Gemini3號號n第一次通過容錯來提高可靠性:第一次通過容錯來提高可靠性:1968年阿波羅年阿波羅4號、土星號、土星5號號嵌入式系統(tǒng)走向成熟嵌入式系統(tǒng)走向成熟1971-1989n嵌入式系統(tǒng)大發(fā)展是在微處理器問世以后嵌入式系統(tǒng)大發(fā)展是在微處理器問世以后n1971年

6、年11月,月,Intel公司推出了第一片微處理器公司推出了第一片微處理器Intel4004n人門再也不必為設(shè)計一臺專用機而研制專用的電路、專用人門再也不必為設(shè)計一臺專用機而研制專用的電路、專用的運算器,只需要以微處理器為基礎(chǔ)進(jìn)行設(shè)計的運算器,只需要以微處理器為基礎(chǔ)進(jìn)行設(shè)計n1976年,第一個單片機年,第一個單片機Intel8048出現(xiàn)出現(xiàn)n1982年第一個年第一個DSP出現(xiàn),比同期的出現(xiàn),比同期的CPU運算速度運算速度快快10-50倍倍n80年代后期,第三代年代后期,第三代DSP出現(xiàn)出現(xiàn)n軟件技術(shù)的進(jìn)步使嵌入式系統(tǒng)不斷完善軟件技術(shù)的進(jìn)步使嵌入式系統(tǒng)不斷完善n早期采用匯編語言,不采用操作系統(tǒng)早期

7、采用匯編語言,不采用操作系統(tǒng)n現(xiàn)在使用高級語言,采用操作系統(tǒng)現(xiàn)在使用高級語言,采用操作系統(tǒng)嵌入式系統(tǒng)向縱深化方向發(fā)展嵌入式系統(tǒng)向縱深化方向發(fā)展n應(yīng)用充分普及:工業(yè)控制、數(shù)字化通訊、應(yīng)用充分普及:工業(yè)控制、數(shù)字化通訊、數(shù)字化家電數(shù)字化家電n汽車:汽車:50個以上的嵌入式微處理器個以上的嵌入式微處理器n飛機:飛機:70個以上嵌入式系統(tǒng)個以上嵌入式系統(tǒng)n嵌入式微處理器嵌入式微處理器32位、位、64位位n嵌入式系統(tǒng)開發(fā)工具十分豐富嵌入式系統(tǒng)開發(fā)工具十分豐富n形成了嵌入式系統(tǒng)開發(fā)產(chǎn)業(yè)形成了嵌入式系統(tǒng)開發(fā)產(chǎn)業(yè)嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(1)n嵌入式系統(tǒng)中運行的任務(wù)是專用而確定的

8、嵌入式系統(tǒng)中運行的任務(wù)是專用而確定的n心臟監(jiān)視嵌入式系統(tǒng),只需要運行信號輸入、處理、心臟監(jiān)視嵌入式系統(tǒng),只需要運行信號輸入、處理、心電圖顯示的任務(wù)心電圖顯示的任務(wù)n如果要更改任務(wù),需要對整個系統(tǒng)進(jìn)行重新設(shè)計如果要更改任務(wù),需要對整個系統(tǒng)進(jìn)行重新設(shè)計n桌面通用系統(tǒng)需要支持大量的、需求多樣的應(yīng)桌面通用系統(tǒng)需要支持大量的、需求多樣的應(yīng)用程序用程序n對系統(tǒng)中運行的程序不作假設(shè)對系統(tǒng)中運行的程序不作假設(shè)n程序升級、更新方便程序升級、更新方便嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(2)n嵌入式系統(tǒng)往往對實時性提出很高的要求嵌入式系統(tǒng)往往對實時性提出很高的要求n實時系統(tǒng):指系統(tǒng)能夠在限定的響

9、應(yīng)時間實時系統(tǒng):指系統(tǒng)能夠在限定的響應(yīng)時間中,提供所需水平的服務(wù)中,提供所需水平的服務(wù)n嵌入式實時系統(tǒng)可分為:嵌入式實時系統(tǒng)可分為:n強實時型:強實時型:us-ms級級n一般實時型:一般實時型:ms-s級級n弱實時型:弱實時型:s級以上級以上嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(3)n嵌入式系統(tǒng)中使用的一般是實時操作系統(tǒng)嵌入式系統(tǒng)中使用的一般是實時操作系統(tǒng)n嵌入式實時操作系統(tǒng)數(shù)量眾多嵌入式實時操作系統(tǒng)數(shù)量眾多nVxWorksnWindows CEnpSOSnuCOSn國產(chǎn)嵌入式實時操作系統(tǒng)國產(chǎn)嵌入式實時操作系統(tǒng)nHOPENnDeltaOSnSmartOS嵌入式系統(tǒng)與通用系統(tǒng)的

10、區(qū)別(嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(4)n嵌入式系統(tǒng)運行需要高可靠性保障,比嵌入式系統(tǒng)運行需要高可靠性保障,比桌面系統(tǒng)的故障容忍能力要弱很多桌面系統(tǒng)的故障容忍能力要弱很多n嵌入式系統(tǒng)需要忍受長時間、無人值守嵌入式系統(tǒng)需要忍受長時間、無人值守條件下的運行條件下的運行n嵌入式系統(tǒng)運行環(huán)境惡劣嵌入式系統(tǒng)運行環(huán)境惡劣嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(5)n嵌入式系統(tǒng)大都有功耗約束嵌入式系統(tǒng)大都有功耗約束n手機、手機、PDA等需要有盡可能長的待機時間等需要有盡可能長的待機時間n引入間歇工作方式,降低功耗,節(jié)約能量引入間歇工作方式,降低功耗,節(jié)約能量嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(嵌入式系

11、統(tǒng)與通用系統(tǒng)的區(qū)別(6)n嵌入式系統(tǒng)比桌面通用系統(tǒng)可用資源少得多嵌入式系統(tǒng)比桌面通用系統(tǒng)可用資源少得多n為降低系統(tǒng)的成本,降低功耗,系統(tǒng)資源配置采用夠為降低系統(tǒng)的成本,降低功耗,系統(tǒng)資源配置采用夠用應(yīng)行的原則用應(yīng)行的原則n嵌入式系統(tǒng)開發(fā)要使用專用的工具和特殊的方法嵌入式系統(tǒng)開發(fā)要使用專用的工具和特殊的方法n開發(fā):交叉編譯器,交叉鏈接器開發(fā):交叉編譯器,交叉鏈接器n調(diào)試:仿真器、虛擬機調(diào)試:仿真器、虛擬機n更新:在線升級更新:在線升級嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(嵌入式系統(tǒng)與通用系統(tǒng)的區(qū)別(7)n嵌入式系統(tǒng)開發(fā)是一項綜合的計算機應(yīng)嵌入式系統(tǒng)開發(fā)是一項綜合的計算機應(yīng)用技術(shù)用技術(shù)n系統(tǒng)結(jié)構(gòu):處理器中的

12、控制寄存器系統(tǒng)結(jié)構(gòu):處理器中的控制寄存器n匯編語言:操縱外部設(shè)備、端口匯編語言:操縱外部設(shè)備、端口n操作系統(tǒng):設(shè)置運行任務(wù)、通訊、互斥操作系統(tǒng):設(shè)置運行任務(wù)、通訊、互斥n編譯原理:交叉編譯、編譯原理:交叉編譯、bootloader加載加載嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念n嵌入式系統(tǒng)的特點嵌入式系統(tǒng)的特點n集軟硬件于一體的,可獨立工作的計算機系統(tǒng)集軟硬件于一體的,可獨立工作的計算機系統(tǒng)n可編程的電子器件可編程的電子器件n使宿主設(shè)備具有智能性使宿主設(shè)備具有智能性n專用性強專用性強n可裁減性好可裁減性好n實時性與可靠性好實時性與可靠性好n功耗低功耗低n嵌入式系統(tǒng)的構(gòu)成嵌入式系統(tǒng)的構(gòu)成n微處理

13、器微處理器n存儲器存儲器-EEPROM、FLASH、SDRAMn外設(shè)器件外設(shè)器件nI/O端口端口嵌入式系統(tǒng)常用芯片嵌入式系統(tǒng)常用芯片嵌入式微處理器的應(yīng)用范圍嵌入式微處理器的應(yīng)用范圍嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n計算機的構(gòu)成計算機的構(gòu)成應(yīng)用的角度應(yīng)用的角度n硬件系統(tǒng)(裸機):中央微處理器硬件系統(tǒng)(裸機):中央微處理器(CPU),存儲器、接口及外部物理設(shè)備存儲器、接口及外部物理設(shè)備n軟件系統(tǒng):實現(xiàn)計算機具體功能的程序軟件系統(tǒng):實現(xiàn)計算機具體功能的程序n操作系統(tǒng):負(fù)責(zé)對計算機硬件資源的管理,常用操作系統(tǒng):負(fù)責(zé)對計算機硬件資源的管理,常用的操作系統(tǒng)有的操作系統(tǒng)有window xp,vista,Linu

14、x等等n應(yīng)用軟件:實現(xiàn)具體操作的程序,例如應(yīng)用軟件:實現(xiàn)具體操作的程序,例如Word,Excel等等等等嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n應(yīng)用軟件、操作系統(tǒng)、計算機硬件的關(guān)系應(yīng)用軟件、操作系統(tǒng)、計算機硬件的關(guān)系n下層是上層的基礎(chǔ),上層是下層的的擴展下層是上層的基礎(chǔ),上層是下層的的擴展嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n操作系統(tǒng)的作用操作系統(tǒng)的作用n計算機硬件系統(tǒng)與應(yīng)用程序之間的接口,提計算機硬件系統(tǒng)與應(yīng)用程序之間的接口,提供了操作計算機硬件的供了操作計算機硬件的API函數(shù)函數(shù)n文件讀寫文件讀寫n計算機硬件的軟件包裝,提供了性能穩(wěn)定、計算機硬件的軟件包裝,提供了性能穩(wěn)定、安全、效率高,便于使用的虛擬機安全

15、、效率高,便于使用的虛擬機(Virtual Machine)嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n操作系統(tǒng)的功能操作系統(tǒng)的功能n處理器的管理處理器的管理n中斷的管理中斷的管理n多任務(wù)的調(diào)度多任務(wù)的調(diào)度n存儲的管理存儲的管理n設(shè)備的管理設(shè)備的管理n文件的管理文件的管理n網(wǎng)絡(luò)通信的管理網(wǎng)絡(luò)通信的管理n提供用戶接口提供用戶接口嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n嵌入式操作系統(tǒng)的概念嵌入式操作系統(tǒng)的概念n運行在嵌入式硬件平臺上,對整個系統(tǒng)及其運行在嵌入式硬件平臺上,對整個系統(tǒng)及其操作的部件、裝置等資源進(jìn)行統(tǒng)一協(xié)調(diào)、指操作的部件、裝置等資源進(jìn)行統(tǒng)一協(xié)調(diào)、指揮和控制的系統(tǒng)軟件揮和控制的系統(tǒng)軟件嵌入式操作系統(tǒng)嵌入式操作系

16、統(tǒng)n嵌入式操作系統(tǒng)的特點嵌入式操作系統(tǒng)的特點n微型化微型化嵌入式系統(tǒng)資源有限嵌入式系統(tǒng)資源有限n可裁剪性可裁剪性適用于不同的應(yīng)用適用于不同的應(yīng)用n實時性實時性n高可靠性高可靠性n易移植性易移植性嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n嵌入式操作系統(tǒng)的分類嵌入式操作系統(tǒng)的分類n通用型分類通用型分類n通用型嵌入式操作系統(tǒng)通用型嵌入式操作系統(tǒng)用于多種不同的應(yīng)用中,用于多種不同的應(yīng)用中,用于多種不同的芯片構(gòu)架中,例如用于多種不同的芯片構(gòu)架中,例如Window CE,VxWorks,Linux,uCOS等等n專用型嵌入式操作系統(tǒng)專用型嵌入式操作系統(tǒng)用于特定應(yīng)用或特定芯用于特定應(yīng)用或特定芯片構(gòu)架,例如片構(gòu)架,例如S

17、ymbian,Palm OSn開源型分類開源型分類n開源型嵌入式操作系統(tǒng)開源型嵌入式操作系統(tǒng)Linux,uCOSn非開源型嵌入式操作系統(tǒng)非開源型嵌入式操作系統(tǒng)VxWorks嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n響應(yīng)事件方式分類響應(yīng)事件方式分類n實時操作系統(tǒng)實時操作系統(tǒng)n必須對事件進(jìn)行正確的響應(yīng)必須對事件進(jìn)行正確的響應(yīng)n必須在一定的時間事件進(jìn)行響應(yīng)必須在一定的時間事件進(jìn)行響應(yīng)n響應(yīng)的時間可以計算響應(yīng)的時間可以計算n按響應(yīng)的時間分為硬實時系統(tǒng)與軟實時系統(tǒng)按響應(yīng)的時間分為硬實時系統(tǒng)與軟實時系統(tǒng)n分時操作系統(tǒng)分時操作系統(tǒng)n必須對事件進(jìn)行正確的響應(yīng)必須對事件進(jìn)行正確的響應(yīng)n按時間片響應(yīng)事件,事件響應(yīng)的時間沒有要

18、求按時間片響應(yīng)事件,事件響應(yīng)的時間沒有要求嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n大多數(shù)嵌入式系統(tǒng)都是實時操作系統(tǒng)大多數(shù)嵌入式系統(tǒng)都是實時操作系統(tǒng)n實時操作系統(tǒng)的特點實時操作系統(tǒng)的特點n使用優(yōu)先級實現(xiàn)多任務(wù)的調(diào)度使用優(yōu)先級實現(xiàn)多任務(wù)的調(diào)度n任務(wù)的切換時間與任務(wù)數(shù)無關(guān)任務(wù)的切換時間與任務(wù)數(shù)無關(guān)n系統(tǒng)負(fù)荷不大于系統(tǒng)負(fù)荷不大于70%n中斷延時時間是可預(yù)知的中斷延時時間是可預(yù)知的n中斷延時時間:中斷延時時間:CPU響應(yīng)中斷到執(zhí)行中斷服務(wù)響應(yīng)中斷到執(zhí)行中斷服務(wù)程序之間的時間程序之間的時間嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n嵌入式操作系統(tǒng)的發(fā)展現(xiàn)狀嵌入式操作系統(tǒng)的發(fā)展現(xiàn)狀n使用使用“微內(nèi)核微內(nèi)核”模式,外圍功能如窗口系統(tǒng)

19、、模式,外圍功能如窗口系統(tǒng)、文件管理、通信協(xié)議以模塊的形式加載文件管理、通信協(xié)議以模塊的形式加載n提供三項服務(wù)來輔助開發(fā)人員提供三項服務(wù)來輔助開發(fā)人員n內(nèi)存管理內(nèi)存管理n多任務(wù)管理多任務(wù)管理n外圍資源管理外圍資源管理嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)n使用嵌入式操作系統(tǒng)優(yōu)缺點使用嵌入式操作系統(tǒng)優(yōu)缺點n優(yōu)點優(yōu)點n程序設(shè)計與擴展變得容易,維護(hù)成本大大降低程序設(shè)計與擴展變得容易,維護(hù)成本大大降低n系統(tǒng)效率大大提高,程序可靠性增強系統(tǒng)效率大大提高,程序可靠性增強n便于程序的移植便于程序的移植n缺點缺點n額外的額外的ROM、RAM的要求的要求n增加增加2%-4%的的CPU負(fù)擔(dān)負(fù)擔(dān)n增加產(chǎn)品的成本增加產(chǎn)品的成本

20、嵌入式操作系統(tǒng)概念嵌入式操作系統(tǒng)概念n嵌入式操作系統(tǒng)中常用的概念嵌入式操作系統(tǒng)中常用的概念n編程模式編程模式n任務(wù)任務(wù)n代碼臨界段代碼臨界段n資源共享資源共享n互斥互斥n死鎖死鎖n任務(wù)間通信任務(wù)間通信n時鐘節(jié)拍時鐘節(jié)拍n內(nèi)核調(diào)度類型內(nèi)核調(diào)度類型n調(diào)度算法調(diào)度算法n可重入函數(shù)可重入函數(shù)編程模式編程模式n傳統(tǒng)的單片機采用循環(huán)傳統(tǒng)的單片機采用循環(huán)+中斷模式中斷模式前后臺系統(tǒng)前后臺系統(tǒng)n嵌入式系統(tǒng)采用多任務(wù)模式嵌入式系統(tǒng)采用多任務(wù)模式形式形式1:void main() 系統(tǒng)初始化系統(tǒng)初始化; while(1) 函數(shù)函數(shù)1 函數(shù)函數(shù)2 函數(shù)函數(shù)3 形式形式2:void main() 系統(tǒng)初始化系統(tǒng)初始化

21、; while(1);ISR1()函數(shù)函數(shù)1;ISR2()函數(shù)函數(shù)2;ISR3()函數(shù)函數(shù)3;任務(wù)任務(wù)n嵌入式操作系統(tǒng)的任務(wù)嵌入式操作系統(tǒng)的任務(wù)n嵌入式操作系統(tǒng)中,具體的工作以任務(wù)的形式來完成嵌入式操作系統(tǒng)中,具體的工作以任務(wù)的形式來完成n系統(tǒng)完成的工作是由許多不同的任務(wù)組成,系統(tǒng)負(fù)責(zé)系統(tǒng)完成的工作是由許多不同的任務(wù)組成,系統(tǒng)負(fù)責(zé)在任務(wù)間進(jìn)行切換,任務(wù)輪流執(zhí)行在任務(wù)間進(jìn)行切換,任務(wù)輪流執(zhí)行n應(yīng)用程序的設(shè)計過程,就是任務(wù)的設(shè)計,以及如何把應(yīng)用程序的設(shè)計過程,就是任務(wù)的設(shè)計,以及如何把問題分割成多個任務(wù)問題分割成多個任務(wù)n一個任務(wù),也稱作一個線程,是一個簡單的程序一個任務(wù),也稱作一個線程,是一個簡

22、單的程序n程序可以認(rèn)為程序可以認(rèn)為CPU完全只屬該程序自己完全只屬該程序自己n每個任務(wù)都是整個應(yīng)用的某一部分,每個任務(wù)被賦予每個任務(wù)都是整個應(yīng)用的某一部分,每個任務(wù)被賦予一定的優(yōu)先級,有它自己的一套一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的寄存器和自己的??臻g??臻g 任務(wù)示意圖任務(wù)示意圖void mytask1(void *pdata) for(;) 用戶編寫的代碼 放棄CPU; void mytask2(void *pdata) while(1) 用戶編寫的代碼 放棄CPU; 任務(wù)任務(wù)n任務(wù)的特點任務(wù)的特點n具有無限循環(huán)結(jié)構(gòu),具有無限循環(huán)結(jié)構(gòu),永不返回永不返回n具有優(yōu)先級,輪流具有優(yōu)先

23、級,輪流運行,高優(yōu)先級任運行,高優(yōu)先級任務(wù)會主動放棄務(wù)會主動放棄CPU控制權(quán)控制權(quán)n任務(wù)間具有通信機任務(wù)間具有通信機制,互相通信協(xié)調(diào)制,互相通信協(xié)調(diào)工作工作nuCOS最多支持最多支持64個任務(wù),每個任務(wù)個任務(wù),每個任務(wù)有有5種狀態(tài)之一種狀態(tài)之一代碼臨界段代碼臨界段n代碼的臨界段也稱為臨界區(qū),指處理時不可代碼的臨界段也稱為臨界區(qū),指處理時不可分割的代碼,一旦這部分代碼開始執(zhí)行,則分割的代碼,一旦這部分代碼開始執(zhí)行,則不允許被任何程序中斷不允許被任何程序中斷n為確保臨界段代碼的執(zhí)行,在進(jìn)入臨界段之為確保臨界段代碼的執(zhí)行,在進(jìn)入臨界段之前要關(guān)中斷,而臨界段代碼執(zhí)行完以后要立前要關(guān)中斷,而臨界段代碼執(zhí)

24、行完以后要立即開中斷即開中斷 OS_ENTER_CRITICAL(); if (OSTCBPrioTblprio = (OS_TCB *)0) OSTCBPrioTblprio = (OS_TCB *)1; OS_EXIT_CRITICAL(); 資源共享資源共享n資源:任何任務(wù)所占用的實體,輸入輸出設(shè)備,資源:任何任務(wù)所占用的實體,輸入輸出設(shè)備,例如打印機、鍵盤、顯示器,資源也可以是一例如打印機、鍵盤、顯示器,資源也可以是一個變量,一個結(jié)構(gòu)或一個數(shù)組等個變量,一個結(jié)構(gòu)或一個數(shù)組等 n可以被一個以上任務(wù)使用的資源叫做共享資源??梢员灰粋€以上任務(wù)使用的資源叫做共享資源。為了防止數(shù)據(jù)被破壞,每個任

25、務(wù)在與共享資源為了防止數(shù)據(jù)被破壞,每個任務(wù)在與共享資源打交道時,必須獨占該資源。這叫做互斥打交道時,必須獨占該資源。這叫做互斥(mutual exclusion)n例如例如n任務(wù)任務(wù)1輸出輸出Hellon任務(wù)任務(wù)2輸出輸出Worldn正常:正常:Hello World 不正常時:不正常時:HeWorllold 互斥互斥n與共享資源打交道時,必須保證每個任與共享資源打交道時,必須保證每個任務(wù)在處理共享數(shù)據(jù)時的排它性,以避免務(wù)在處理共享數(shù)據(jù)時的排它性,以避免競爭和數(shù)據(jù)的破壞使之滿足互斥條件競爭和數(shù)據(jù)的破壞使之滿足互斥條件 n互斥的方法互斥的方法n關(guān)中斷關(guān)中斷n使用測試并置位指令使用測試并置位指令n

26、禁止做任務(wù)切換禁止做任務(wù)切換n利用信號量利用信號量互斥互斥n關(guān)中斷關(guān)中斷處理共享數(shù)據(jù)時保證互斥,最處理共享數(shù)據(jù)時保證互斥,最簡便快捷的辦法是關(guān)中斷和開中斷簡便快捷的辦法是關(guān)中斷和開中斷n必須十分小心,關(guān)中斷的時間不能太長,必須十分小心,關(guān)中斷的時間不能太長,因為它影響整個系統(tǒng)的中斷響應(yīng)時間,因為它影響整個系統(tǒng)的中斷響應(yīng)時間,即中斷延遲時間即中斷延遲時間 Disable interrupts; /*關(guān)中斷關(guān)中斷*/Access the resource (read/write from/to variables); / /* *讀讀/ /寫變量寫變量* */ /Reenable interrup

27、ts; /*重新允許中斷重新允許中斷*/互斥互斥n測試并置位測試并置位(Test-And-Set)n當(dāng)兩個任務(wù)共享一個當(dāng)兩個任務(wù)共享一個資源時,先測試某一資源時,先測試某一全程變量,如果該變?nèi)套兞?,如果該變量是量?,允許該任務(wù)使,允許該任務(wù)使用共享資源用共享資源nTAS操作是微處理器操作是微處理器的單獨一條不會被中的單獨一條不會被中斷的指令,或者是在斷的指令,或者是在程序中關(guān)中斷做程序中關(guān)中斷做TAS操作再開中斷操作再開中斷 程序清單程序清單2.5 利用測試并置位處理共享資源利用測試并置位處理共享資源Disable interrupts; 關(guān)中斷關(guān)中斷if (Access Variable

28、 is 0) 如果資源可用,標(biāo)志為如果資源可用,標(biāo)志為0 0 Set variable to 1; 置資源不可用,標(biāo)志為置資源不可用,標(biāo)志為1 1 Reenable interrupts; 重開中斷重開中斷 Access the resource; 處理該資源處理該資源 Disable interrupts; 關(guān)中斷關(guān)中斷 Set the Access Variable back to 0; 資源可用,標(biāo)志為資源可用,標(biāo)志為0 0 Reenable interrupts; 重新開中斷重新開中斷 else 否則否則 Reenable interrupts; 開中斷開中斷/* You dont h

29、ave access to the resource, try back later; */* 資源不可使用,以后再試資源不可使用,以后再試; */互斥互斥n禁止禁止,然后允許任務(wù)然后允許任務(wù)切換切換n任務(wù)不與中斷服務(wù)任務(wù)不與中斷服務(wù)子程序共享變量或子程序共享變量或數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu),可以使用可以使用禁止、然后允許任禁止、然后允許任務(wù)切換務(wù)切換 實現(xiàn)資源共實現(xiàn)資源共享享程序清單程序清單2.6 2.6 用給任務(wù)切換上鎖,然后開鎖的方法實現(xiàn)用給任務(wù)切換上鎖,然后開鎖的方法實現(xiàn)數(shù)據(jù)共享數(shù)據(jù)共享.void Function (void) OSSchedLock(); . . /* You can acc

30、ess shared data in here (interrupts are recognized) */. / /* *在這里處理共享數(shù)據(jù)在這里處理共享數(shù)據(jù)( (中斷是開著的中斷是開著的) )* */ / OSSchedUnlock();互斥互斥n信號量信號量(Semaphores)n信號像是一把鑰匙,要訪問共享資源,得先拿到這信號像是一把鑰匙,要訪問共享資源,得先拿到這把鑰匙。如果信號已被別的任務(wù)占用,該任務(wù)只得把鑰匙。如果信號已被別的任務(wù)占用,該任務(wù)只得被掛起,直到信號被當(dāng)前使用者釋放被掛起,直到信號被當(dāng)前使用者釋放 n信號量可以是二值的,也可以是計數(shù)的信號量可以是二值的,也可以是計數(shù)

31、的n對信號量只能實施三種操作:初始化對信號量只能實施三種操作:初始化(INITIALIZE),也可稱作建立,也可稱作建立(CREATE);等信;等信號號(WAIT)也可稱作掛起也可稱作掛起(PEND);給信號;給信號(SIGNAL)或發(fā)信號或發(fā)信號(POST) n共享資源最好的方式共享資源最好的方式互斥互斥n信號量的例子信號量的例子死鎖死鎖n死鎖也稱作抱死,指兩個任務(wù)無限期地死鎖也稱作抱死,指兩個任務(wù)無限期地互相等待對方控制著的資源互相等待對方控制著的資源n例子:設(shè)任務(wù)例子:設(shè)任務(wù)T1正獨享資源正獨享資源R1,任務(wù),任務(wù)T2在在獨享資源獨享資源R2,而此時,而此時T1又要獨享又要獨享R2,T2

32、也要獨享也要獨享R1n避免的方法避免的方法n一次性得到全部需要的資源,否則就釋放一次性得到全部需要的資源,否則就釋放n用同樣的順序去申請多個資源用同樣的順序去申請多個資源n釋放資源時使用相反的順序釋放資源時使用相反的順序任務(wù)間通信任務(wù)間通信n中斷服務(wù)與任務(wù)、任務(wù)與任務(wù)之間傳遞中斷服務(wù)與任務(wù)、任務(wù)與任務(wù)之間傳遞數(shù)據(jù),稱為任務(wù)間的通訊數(shù)據(jù),稱為任務(wù)間的通訊n數(shù)據(jù)采集數(shù)據(jù)采集-數(shù)據(jù)處理數(shù)據(jù)處理-數(shù)據(jù)顯示數(shù)據(jù)顯示n任務(wù)間通信的方法任務(wù)間通信的方法n通過全程變量通過全程變量任務(wù)不知道消息的到來任務(wù)不知道消息的到來n發(fā)消息給另一個任務(wù)發(fā)消息給另一個任務(wù)較好的方法較好的方法n消息郵箱消息郵箱只有一個消息只有

33、一個消息n消息隊列消息隊列有多個消息有多個消息n傳遞指向傳遞指向void的指針的指針任務(wù)間通信任務(wù)間通信n消息郵箱消息郵箱n消息隊列消息隊列時鐘節(jié)拍時鐘節(jié)拍n時鐘節(jié)拍是特定的周期性中斷,這個中斷可以時鐘節(jié)拍是特定的周期性中斷,這個中斷可以看作是系統(tǒng)心臟的脈動,系統(tǒng)依靠該節(jié)拍來調(diào)看作是系統(tǒng)心臟的脈動,系統(tǒng)依靠該節(jié)拍來調(diào)度任務(wù),計算延遲時間度任務(wù),計算延遲時間n時鐘節(jié)拍率越快,延時分辨率越高,但系統(tǒng)的時鐘節(jié)拍率越快,延時分辨率越高,但系統(tǒng)的額外開銷就越大額外開銷就越大n中斷之間的時間間隔取決于不同的應(yīng)用,一般中斷之間的時間間隔取決于不同的應(yīng)用,一般在在10mS到到200mS之間之間n使用最小時鐘節(jié)

34、拍進(jìn)行延時,設(shè)置的延時數(shù)要使用最小時鐘節(jié)拍進(jìn)行延時,設(shè)置的延時數(shù)要+1,n例如時鐘節(jié)拍每例如時鐘節(jié)拍每20ms發(fā)生一次,現(xiàn)在要至少延遲發(fā)生一次,現(xiàn)在要至少延遲20ms,假設(shè),假設(shè)Delay(x)是延遲時針節(jié)拍數(shù)函數(shù),則是延遲時針節(jié)拍數(shù)函數(shù),則要設(shè)置為要設(shè)置為Delay(2)時鐘節(jié)拍時鐘節(jié)拍內(nèi)核調(diào)度類型內(nèi)核調(diào)度類型n內(nèi)核:負(fù)責(zé)管理各個任務(wù),為每個任務(wù)內(nèi)核:負(fù)責(zé)管理各個任務(wù),為每個任務(wù)分配分配CPU時間,并且負(fù)責(zé)任務(wù)之間的通時間,并且負(fù)責(zé)任務(wù)之間的通訊,內(nèi)核提供的基本服務(wù)是任務(wù)切換訊,內(nèi)核提供的基本服務(wù)是任務(wù)切換 n分類分類n不可剝型內(nèi)核不可剝型內(nèi)核n可剝奪型內(nèi)核可剝奪型內(nèi)核內(nèi)核調(diào)度類型內(nèi)核調(diào)度類

35、型n不可剝奪型內(nèi)核不可剝奪型內(nèi)核n每個任務(wù)主動放棄每個任務(wù)主動放棄CPU的所有的所有權(quán)權(quán)n合作型多任務(wù),各個任務(wù)彼此合作型多任務(wù),各個任務(wù)彼此合作共享一個合作共享一個CPU n不可剝奪型內(nèi)核的一個優(yōu)點是不可剝奪型內(nèi)核的一個優(yōu)點是響應(yīng)中斷快響應(yīng)中斷快 n不需要使用信號量保護(hù)共享數(shù)不需要使用信號量保護(hù)共享數(shù)據(jù),可以調(diào)用非可重入性函數(shù)據(jù),可以調(diào)用非可重入性函數(shù)n不可剝奪型內(nèi)核的最大缺陷在不可剝奪型內(nèi)核的最大缺陷在于其響應(yīng)時間,高優(yōu)先級的任于其響應(yīng)時間,高優(yōu)先級的任務(wù)已經(jīng)進(jìn)入就緒態(tài),但還不能務(wù)已經(jīng)進(jìn)入就緒態(tài),但還不能運行運行 內(nèi)核調(diào)度類型內(nèi)核調(diào)度類型n可剝奪型內(nèi)核可剝奪型內(nèi)核n高優(yōu)先級的任務(wù)一旦就緒,

36、高優(yōu)先級的任務(wù)一旦就緒,掛起當(dāng)前低優(yōu)先級任務(wù),掛起當(dāng)前低優(yōu)先級任務(wù),得到得到CPU的控制權(quán)的控制權(quán)n使用資源與不可重入函數(shù)使用資源與不可重入函數(shù)時要進(jìn)行互斥保護(hù)時要進(jìn)行互斥保護(hù)n當(dāng)系統(tǒng)響應(yīng)時間很重要時,當(dāng)系統(tǒng)響應(yīng)時間很重要時,要使用可剝奪型內(nèi)核要使用可剝奪型內(nèi)核n實時操作系統(tǒng)都采用這種實時操作系統(tǒng)都采用這種內(nèi)核類型內(nèi)核類型優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)n由于共享資源互斥使用的問題,使高優(yōu)由于共享資源互斥使用的問題,使高優(yōu)先級的任務(wù)優(yōu)先級降低的現(xiàn)象先級的任務(wù)優(yōu)先級降低的現(xiàn)象n在實時操作系統(tǒng)中,該現(xiàn)象會降低系統(tǒng)在實時操作系統(tǒng)中,該現(xiàn)象會降低系統(tǒng)的實時性,要盡可能的避免的實時性,要盡可能的避免n可以采用動態(tài)提

37、升優(yōu)先級的方法來避免可以采用動態(tài)提升優(yōu)先級的方法來避免優(yōu)先級反轉(zhuǎn)的發(fā)生優(yōu)先級反轉(zhuǎn)的發(fā)生優(yōu)先級反轉(zhuǎn)的例子優(yōu)先級反轉(zhuǎn)的例子優(yōu)先級反轉(zhuǎn)的例子優(yōu)先級反轉(zhuǎn)的例子可重入函數(shù)可重入函數(shù)n可重入型函數(shù)可以被一個以上的任務(wù)調(diào)可重入型函數(shù)可以被一個以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞用,而不必?fù)?dān)心數(shù)據(jù)的破壞n可重入型函數(shù)任何時候都可以被中斷,可重入型函數(shù)任何時候都可以被中斷,一段時間以后又可以運行,而相應(yīng)數(shù)據(jù)一段時間以后又可以運行,而相應(yīng)數(shù)據(jù)不會丟失不會丟失n可重入型函數(shù)可重入型函數(shù)只使用局部變量,沒有使只使用局部變量,沒有使用全局變量用全局變量,即函數(shù)的變量都保存在,即函數(shù)的變量都保存在CPU寄存器中或堆棧中寄存器中或堆棧中可重入函數(shù)的例子可重入函數(shù)的例子void strcpy(char *dest, char *src) while (*dest+ = *src+) ; *dest = NULL;不可重入函數(shù)的例子不可重入函數(shù)的例子int Temp;void swap(int *x, int *y) Temp = *x; *x = *y; *y = Temp;uCOS

溫馨提示

  • 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

提交評論