提高篇:嵌入式操作系統(tǒng)_第1頁
提高篇:嵌入式操作系統(tǒng)_第2頁
提高篇:嵌入式操作系統(tǒng)_第3頁
提高篇:嵌入式操作系統(tǒng)_第4頁
提高篇:嵌入式操作系統(tǒng)_第5頁
已閱讀5頁,還剩154頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用山東工商學院山東工商學院 電子信息系電子信息系 張守祥嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)一 實時系統(tǒng)簡介n一般而言具有實時性能的控制系統(tǒng)是實時系統(tǒng)。n實時表示一個非常短的時間間隔“time gap”(也可以認為表示時間框架“time frame”或者時間窗口“time window”),具有“立即”之含義。n當計算機進行實時處理時,要求在接收到數(shù)據(jù)的同時執(zhí)行操作并輸出計算結(jié)果,不能超出計算機系統(tǒng)

2、所能容忍的時限。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)的定義nIEEE(美國電氣電子工程師協(xié)會)給出的實時系統(tǒng)定義是“那些正確性不僅取決于計算的邏輯結(jié)果,也取決于產(chǎn)生結(jié)果所花費的時間的系統(tǒng)”。這就是說,實時系統(tǒng)運算能力具有及時與正確的雙重特征。n給出的實時系統(tǒng)(Real-Time System)定義是:對外來事件能在限定的響應時間內(nèi)做出預定質(zhì)量處理的計算機系統(tǒng)。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)的體系結(jié)構(gòu)實時系統(tǒng)的體系結(jié)構(gòu)必須滿足:n高運算速度n高速的中斷處理n高的I/O吞吐率n合理

3、的處理器和I/O設備的拓撲連接n高速可靠的和有時間約束的通信n體系結(jié)構(gòu)支持的出錯處理,n體系結(jié)構(gòu)支持的調(diào)度n體系結(jié)構(gòu)支持的操作系統(tǒng),n體系結(jié)構(gòu)支持的實時語言特性。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)n實時的調(diào)度理論。由于實時系統(tǒng)應用的特殊性,以往通用系統(tǒng)中以大吞吐量為目標的調(diào)度算法必須改進以適應實時應用的需要。主要要求是滿足時間的正確性,然后提供高度動態(tài)的,滿足在線需求的,強適應性的實時調(diào)度。n實時操作系統(tǒng)的設計和實現(xiàn)。在設計上首要目標是提供保證實時性的方法,包括一系列的經(jīng)典問題的針對實時系統(tǒng)的解決方案。實現(xiàn)上要求操作系統(tǒng)的低開銷,而且必須保證內(nèi)

4、核以及其他關鍵部件的可重入性。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)的主要特點n及時響應外部發(fā)生的隨機任務請求n在規(guī)定的時間范圍內(nèi)完成任務 任務執(zhí)行的時間限制類型截止時間任務執(zhí)行時間嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)截止時間: 一個時間界限。它要求一個任務在該時刻之前完成任務執(zhí)行時間 一個任務從啟動到完成所花費的時間。分為平均任務執(zhí)行時間和最壞任務執(zhí)行時間,實時系統(tǒng)中一般指最壞任務執(zhí)行時間,考慮了可能的等待、阻塞等最不利的情況。 任務余量:截止時間減去任務執(zhí)行時間所得的值,反映了系統(tǒng)工作的從

5、容程度。 緊時間約束 在滿足任務時限的同時,留給系統(tǒng)的時間比較緊張。由任務的余量小而 引起。松時間約束:與緊時限概念相反,指在滿足任務時限的同時,留給系統(tǒng)的時間比較寬松嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)的關鍵因素n計算機系統(tǒng)的實時性能主要由操作系統(tǒng)和運行在操作系統(tǒng)上的應用軟件決定,對于無操作系統(tǒng)的計算機則由控制程序決定。n具有實時性能的操作系統(tǒng)稱為實時操作系統(tǒng)(Real-Time Operating System, RTOS)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)與非實時系統(tǒng)的例子n

6、實時系統(tǒng)典型例子民用飛機的導航系統(tǒng)汽車的防剎車抱死系統(tǒng)n非實時系統(tǒng)典型例子銀行數(shù)據(jù)查詢處理系統(tǒng)視頻播放系統(tǒng)圖像掃描文字識別系統(tǒng)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)提高實時性能的因素盡量采用硬件處理優(yōu)化微處理器的中斷機制采用簡單的單線程循環(huán)程序采用基于實時操作系統(tǒng)的復雜多線程操作 可見硬件加速和RTOS應用是提高實時系統(tǒng)的兩個主要因素以下幾種途徑常常用來提高應用系統(tǒng)實時性能嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)的屬性和指標n實時系統(tǒng)的兩個基本屬性可預測性和可靠性n實時系統(tǒng)的實時性能主要根據(jù)其RT

7、OS的三個主要指標來衡量 響應時間(response time)吞吐量(throughput)生存時間(survival time)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)可預測性系統(tǒng)能夠?qū)崟r任務的執(zhí)行時間進行判斷,確定是否能夠滿足任務的時限要求。n嵌入式系統(tǒng)的兩個可預測性硬件延遲的可預測性、軟件系統(tǒng)的可預測性應用程序的響應時間是可預測的,即在有限時間內(nèi)完成必須的工作。操作系統(tǒng)的可預測性,即實時原語、調(diào)度函數(shù)等運行開銷應是有界的以保證應用程序執(zhí)行時間的有界性。資源約束指多個實時任務共享有限的資源時,必須按照一定的資源訪問控制協(xié)議進行同步,以避免死鎖

8、和高優(yōu)先級任務被低優(yōu)先級任務堵塞的時間(即優(yōu)先級反轉(zhuǎn)時間)不可預測。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)可靠性n可靠性已成為衡量實時系統(tǒng)性能不可缺少的重要指標。 采用靜態(tài)分析和保留資源的方法及冗余配置,使關鍵任務的要求總能滿足,系統(tǒng)在最壞情況下能正常工作或避免損失 一個系統(tǒng)的可靠性是由其組成元素共同決定的,這些元素包括硬件、板級開發(fā)包、RTOS和應用等。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)與通用系統(tǒng)區(qū)別 通用系統(tǒng)n方便用戶管理計算機資源n追求系統(tǒng)資源最大利用率 實時系統(tǒng)n調(diào)度的實時性n響應時

9、間可確定性n高可靠性嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)性能衡量對傳統(tǒng)的通用系統(tǒng)n大的系統(tǒng)吞吐量n合理的響應速度n對每個系統(tǒng)用戶相對公平的進行計算資源的分配實時系統(tǒng)n實時的數(shù)據(jù)吞吐取代了吞吐量n對硬實時應用的優(yōu)先響應取代了恰當?shù)姆磻俣萵系統(tǒng)的計算資源和其他外設資源必須優(yōu)先滿足實時應用的要求取代了公平嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)響應時間n計算機從識別一個外部事件到做出響應的時間 nRTOS響應時間的具體指標是:中斷延遲時間(Interrupt Latency)任務切換時間(Task Swit

10、ching Latency)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)響應時間nTCloseINT + TDoISR + TSaveReg + TStartServiceTCloseINT :關中斷的最長時間TDoISR :開始執(zhí)行中斷服務子程序的第一條指令的時間TSaveReg : 保存CPU內(nèi)部寄存器的時間TStartService :內(nèi)核進入中斷服務函數(shù)的執(zhí)行時間計算機接收到中斷信號到操作系統(tǒng)作出響應,并完成換道轉(zhuǎn)入中斷服務程序的時間中斷延遲時間嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)響應時間nT to

11、 Do B Task Time T to Pause A Task TimeT to Do B Task Time : 開始執(zhí)行B任務的時刻T to Pause A Task :暫停執(zhí)行A任務的時刻也就是CPU從停止一個任務執(zhí)行切換到執(zhí)行另一個任務所需要的時間任務切換時間嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)eCos嵌入式可配置操作系統(tǒng)內(nèi)核實時響應時間參考數(shù)據(jù)硬件測試環(huán)境中斷延遲時間任務切換時間ARM7TDMI(20MHz)22.10 ms49.14 msStrongARM(221.2MHz)3.25 ms1.85 msIntel Xcale(60

12、0MHz)1.87 ms0.87 ms嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng) 吞吐量 生存時間n指在指定時間內(nèi)系統(tǒng)可處理的事件總數(shù),例如通信控制器用每秒處理的字符數(shù)來表示他的吞吐量n是輸入數(shù)據(jù)的有效等待時間。如果在這段時間內(nèi)系統(tǒng)能接收到輸入數(shù)據(jù),就能給出有用的輸出時間。否則,即使接收到數(shù)據(jù),也給不出有效的輸出數(shù)據(jù)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)分類n硬實時系統(tǒng)-災難后果 指應用的時間需求能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產(chǎn)損失和生態(tài)破壞 航空航天、軍事、核工業(yè)等

13、n軟實時系統(tǒng)-性能下降 應用雖提出時間需求,但實時任務偶爾違反這種需求對系統(tǒng)運行及環(huán)境不會造成嚴重影響,如:視頻點播(Video-On-Demand,VOD)、監(jiān)控系統(tǒng)、信息采 集系統(tǒng)等。按實時性分嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)硬實時系統(tǒng)和軟實時系統(tǒng)時限效益嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)實時系統(tǒng)的分類強實時系統(tǒng):n其響應時間在毫秒級或微秒級普通實時系統(tǒng):n其響應時間一般幾秒弱實時系統(tǒng):n其響應時間一般在數(shù)十秒按照響應時間的快慢分類嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時

14、操作系統(tǒng)嵌入式實時操作系統(tǒng)實時過程控制系統(tǒng)系統(tǒng)實時地從外界獲得被控系統(tǒng)的當前狀態(tài),進行 預定的處理,根據(jù)處理結(jié)果對外界被控系統(tǒng)進行及 時控制,使其處于要求的狀態(tài)下n實時信息處理系統(tǒng)系統(tǒng)僅從外界系統(tǒng)中獲得當前狀態(tài)并進行相應處理不直接控制外界系統(tǒng)的變化嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式操作系統(tǒng)中的基本概念前后臺系統(tǒng)前后臺系統(tǒng)調(diào)度調(diào)度臨界區(qū)臨界區(qū)進程與線程進程與線程任務與多任務任務與多任務任務切換任務切換死鎖死鎖不可剝奪型內(nèi)核不可剝奪型內(nèi)核可剝奪型內(nèi)核可剝奪型內(nèi)核可重入性可重入性優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)事件事件互斥互斥同步同步對存儲器要求對存儲器要

15、求嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式操作系統(tǒng)基本概念前后臺系統(tǒng)前后臺系統(tǒng)調(diào)度調(diào)度臨界區(qū)臨界區(qū)進程與線程進程與線程任務與多任務任務與多任務任務切換任務切換死鎖死鎖不可剝奪型內(nèi)核不可剝奪型內(nèi)核可剝奪型內(nèi)核可剝奪型內(nèi)核可重入性可重入性優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)事件事件互斥互斥同步同步對存儲器要求對存儲器要求嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng) 前、后臺系統(tǒng)前后臺系統(tǒng)前后臺系統(tǒng)應用程序是一個無限應用程序是一個無限的循環(huán),循環(huán)中調(diào)用相的循環(huán),循環(huán)中調(diào)用相應的函數(shù)完成相應的操應的函數(shù)完成相應的操作,這部分可以

16、看成后作,這部分可以看成后臺行為臺行為(background)(background)。中斷服務程序處理異步中斷服務程序處理異步事件,可以看成前臺行事件,可以看成前臺行為(為(foregroundforeground)后臺也可以叫做任務級。后臺也可以叫做任務級。前臺也叫中斷級。前臺也叫中斷級。 嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)中斷中斷數(shù)據(jù)采集處理數(shù)據(jù)處理鍵盤顯示打印傳統(tǒng)前后臺系統(tǒng)編程傳統(tǒng)前后臺系統(tǒng)編程處理鍵盤RTOS數(shù)據(jù)采集處理數(shù)據(jù)顯示打印中斷基于基于RTOSRTOS編程編程 前后臺與操作系統(tǒng)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌

17、入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)調(diào)度 (Scheduler)n內(nèi)核的主要職責之一,決定任務運行的次序。內(nèi)核的主要職責之一,決定任務運行的次序。n 基本的調(diào)度算法有先來先服務基本的調(diào)度算法有先來先服務FCFSFCFS,優(yōu)先,優(yōu)先級法級法(Priority)(Priority),輪轉(zhuǎn)法,輪轉(zhuǎn)法(Round-Robin)(Round-Robin)等。等。n 調(diào)度的基本方式有可剝奪型和不可剝奪型。調(diào)度的基本方式有可剝奪型和不可剝奪型。n 多數(shù)實時內(nèi)核是基于優(yōu)先級調(diào)度的多種方多數(shù)實時內(nèi)核是基于優(yōu)先級調(diào)度的多種方法的復合。法的復合。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式

18、實時操作系統(tǒng)臨界資源和代碼臨界區(qū)n臨界資源指的是一段時間只允許一個進程訪問的資源。共享臨界資源的各個進程必須互斥的訪問臨界資源。它分為硬件臨界資源和軟件臨界資源。如打印機屬于硬件臨界資源而緩沖區(qū)和隊列屬于軟件臨界區(qū)。n代碼臨界區(qū)指處理時不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷介入,為確保臨界區(qū)代碼執(zhí)行,在進入臨界區(qū)之前必須關中斷,執(zhí)行完臨界區(qū)代碼之后要立即開中斷。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng) 代碼臨界區(qū)(Critical Section)指一段不可分割的代碼,一旦執(zhí)行,不能被中斷。指一段不可分割的代碼,一旦執(zhí)行,不能被中斷

19、。定義實現(xiàn)代碼臨界區(qū)的方法1、屏蔽中斷,通常在代碼執(zhí)行前關閉中斷,執(zhí)、屏蔽中斷,通常在代碼執(zhí)行前關閉中斷,執(zhí)行后打開中斷。行后打開中斷。2、通過信號量機制。、通過信號量機制。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式操作系統(tǒng)基本概念前后臺系統(tǒng)前后臺系統(tǒng)調(diào)度調(diào)度臨界區(qū)臨界區(qū)進程與線程進程與線程任務與多任務任務與多任務任務切換任務切換死鎖死鎖不可剝奪型內(nèi)核不可剝奪型內(nèi)核可剝奪型內(nèi)核可剝奪型內(nèi)核可重入性可重入性優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)事件事件互斥互斥同步同步對存儲器要求對存儲器要求嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時

20、操作系統(tǒng)進程1 1、行為的一個規(guī)則叫做程序,程序在處理器上、行為的一個規(guī)則叫做程序,程序在處理器上執(zhí)行時所發(fā)生的活動叫做進程。執(zhí)行時所發(fā)生的活動叫做進程。2 2、進程是可以與其它進程并發(fā)執(zhí)行的計算部分。、進程是可以與其它進程并發(fā)執(zhí)行的計算部分。3 3、進程是一個獨立的可以調(diào)度的活動。、進程是一個獨立的可以調(diào)度的活動。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)進程1 1、進程是程序的一次執(zhí)行過程,是一個動態(tài)的概念,、進程是程序的一次執(zhí)行過程,是一個動態(tài)的概念,而程序是指令的有序集合,是靜態(tài)的概念。而程序是指令的有序集合,是靜態(tài)的概念。2 2、進程具有生命

21、期,從創(chuàng)建時存在,到撤銷時消失,、進程具有生命期,從創(chuàng)建時存在,到撤銷時消失,其存在是暫時的,而程序是是靜態(tài)的,其存在可其存在是暫時的,而程序是是靜態(tài)的,其存在可以是永久的。以是永久的。3 3、進程具有結(jié)構(gòu)特征,由程序段、數(shù)據(jù)段、進程控、進程具有結(jié)構(gòu)特征,由程序段、數(shù)據(jù)段、進程控制塊三部分組成,而程序僅是指令的有序集合,制塊三部分組成,而程序僅是指令的有序集合,是進程的組成部分。是進程的組成部分。4 4、進程與程序之間不是一一對應的關系。一個程序、進程與程序之間不是一一對應的關系。一個程序可同時運行于不同的數(shù)據(jù)集合上,映射成多個進可同時運行于不同的數(shù)據(jù)集合上,映射成多個進程。程。進程與程序之間

22、的區(qū)別嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)線程 線程是進程內(nèi)一個相對獨立的可調(diào)度的線程是進程內(nèi)一個相對獨立的可調(diào)度的執(zhí)行單元實體。執(zhí)行單元實體。定義:定義:引入線程的優(yōu)點:引入線程的優(yōu)點:(1 1) 提高了程序并發(fā)執(zhí)行的程度,加快了系統(tǒng)的執(zhí)提高了程序并發(fā)執(zhí)行的程度,加快了系統(tǒng)的執(zhí)行速度。線程是比進程粒度更小的調(diào)度單位。一個行速度。線程是比進程粒度更小的調(diào)度單位。一個進程可以有多個線程。進程可以有多個線程。(2 2)大大降低了系統(tǒng)的開銷。線程不擁有自己的資)大大降低了系統(tǒng)的開銷。線程不擁有自己的資源,只共享進程的資源空間,創(chuàng)建、切換、撤銷的源,只共

23、享進程的資源空間,創(chuàng)建、切換、撤銷的開銷都很小。開銷都很小。(3 3)提高了資源的利用率。)提高了資源的利用率。(4 4)更好地為用戶提供服務。實現(xiàn)高質(zhì)量的人機交)更好地為用戶提供服務。實現(xiàn)高質(zhì)量的人機交互?;?。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)線程線程與進程的關系(1 1) 線程是進程的一個組成部分,進程創(chuàng)建時一線程是進程的一個組成部分,進程創(chuàng)建時一般只有一個線程,需要時可由這個線程創(chuàng)建其般只有一個線程,需要時可由這個線程創(chuàng)建其他線程。他線程。(2 2)一個進程可以有多個線程,這些共享進程的)一個進程可以有多個線程,這些共享進程的資源在進程的

24、空間中并發(fā)活動。資源在進程的空間中并發(fā)活動。(3 3)線程使用的資源是進程所分到的資源。)線程使用的資源是進程所分到的資源。(4 4)進程切換的開銷遠大于線程切換的開銷。)進程切換的開銷遠大于線程切換的開銷。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)任務 Taskn指擁有所有指擁有所有CPUCPU資源的簡單程序。資源的簡單程序。n任務即是一個進程,任務即是一個進程,UCOS-IIUCOS-II是多任務的可搶占是多任務的可搶占操作系統(tǒng),我們可以把一個復雜的事情分成多個操作系統(tǒng),我們可以把一個復雜的事情分成多個簡單的子任務簡單的子任務, ,每個作為一個進程

25、運行每個作為一個進程運行, ,這樣可以這樣可以簡化復雜程序的設計。簡化復雜程序的設計。n實時系統(tǒng)中的大部分任務是周期的,體現(xiàn)在編程實時系統(tǒng)中的大部分任務是周期的,體現(xiàn)在編程上每個任務則是一個典型的無限循環(huán)。上每個任務則是一個典型的無限循環(huán)。 n任務的狀態(tài):休眠態(tài)、就緒態(tài)、運行態(tài)、掛起態(tài)、任務的狀態(tài):休眠態(tài)、就緒態(tài)、運行態(tài)、掛起態(tài)、被中斷態(tài)被中斷態(tài) 。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)等待狀態(tài):等待狀態(tài):任務在等待某一事件的發(fā)生還不能運行的狀態(tài);被中斷狀態(tài):被中斷狀態(tài):因為中斷服務程序正在執(zhí)行而得不到CPU控制權(quán)的狀態(tài);睡眠狀態(tài):睡眠狀態(tài):任務駐

26、留在程序空間之中,還沒有交給C/OS-管理的狀態(tài),而將任務交給C/OS-管理是通過調(diào)用函數(shù)OSTaskCreate()實現(xiàn)的;就緒狀態(tài):就緒狀態(tài):任務已經(jīng)準備好,可以運行了,但由于該任務的優(yōu)先級比正在運行的任務的優(yōu)先級低,還暫時不能運行的狀態(tài)。在C/OS-中,當任務一旦建立,這個任務就進入就緒態(tài)準備運行;運行狀態(tài):運行狀態(tài):任務掌握了CPU的控制權(quán),正在運行中的狀態(tài)。任務的狀態(tài) 任務狀態(tài)描述任務 Task嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)任務 Taskn任務任務=程序代碼程序代碼+ +堆棧堆棧+ +任務控制塊任務控制塊n任務控制塊保存著所有與進

27、程相關的任務控制塊保存著所有與進程相關的信息信息, ,包括堆棧的指針和優(yōu)先級包括堆棧的指針和優(yōu)先級n任務的堆棧則用來保存任務分配的局任務的堆棧則用來保存任務分配的局部變量部變量, ,此外此外, ,當任務被切換出去時當任務被切換出去時, ,堆堆棧還保存當前寄存器的值棧還保存當前寄存器的值嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)多任務 多任務是指用戶多任務是指用戶可以在同一時間內(nèi)可以在同一時間內(nèi)運行多個應用程序,運行多個應用程序,每個應用程序是一每個應用程序是一個任務。個任務。 多任務運行的實多任務運行的實現(xiàn)實際上是靠現(xiàn)實際上是靠CPU(CPU(中央處理

28、單元中央處理單元) )在許多任務之間轉(zhuǎn)在許多任務之間轉(zhuǎn)換、調(diào)度換、調(diào)度。 嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)任務:example手持數(shù)據(jù)采集終端的打印手持數(shù)據(jù)采集終端的打印CreateTASK(myprintf, priority) ; CreateTASK(myprintf, priority) ; void myprintf( )void myprintf( ) for (;) for (;) 等待接收隊列信息;等待接收隊列信息; 往打印機發(fā)送打印信息;往打印機發(fā)送打印信息; 嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系

29、統(tǒng)嵌入式實時操作系統(tǒng)嵌入式操作系統(tǒng)基本概念前后臺系統(tǒng)前后臺系統(tǒng)調(diào)度調(diào)度臨界區(qū)臨界區(qū)進程與線程進程與線程任務與多任務任務與多任務任務切換任務切換死鎖死鎖不可剝奪型內(nèi)核不可剝奪型內(nèi)核可剝奪型內(nèi)核可剝奪型內(nèi)核可重入性可重入性優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)事件事件互斥互斥同步同步對存儲器要求對存儲器要求嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng) 任務切換(Context Switch)當多任務內(nèi)核決定運行另外的任務時,保當多任務內(nèi)核決定運行另外的任務時,保存正在運行任務的當前狀態(tài),即保存存正在運行任務的當前狀態(tài),即保存CPUCPU寄存寄存器中的全部內(nèi)容。器中的全部內(nèi)容。

30、這些內(nèi)容保存在任務自己的棧區(qū)之中。這些內(nèi)容保存在任務自己的棧區(qū)之中。入棧工作完成以后,就把下一個將要運行入棧工作完成以后,就把下一個將要運行的任務的當前狀態(tài)從任務的棧中重新裝入的任務的當前狀態(tài)從任務的棧中重新裝入CPUCPU的寄存器,并開始下一個任務的運行。的寄存器,并開始下一個任務的運行。這個過程就稱為任務切換。這個過程就稱為任務切換。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)死鎖是指各并發(fā)任務彼此等待對方所擁有的是指各并發(fā)任務彼此等待對方所擁有的資源,且這些并發(fā)任務在得到對方的資源之資源,且這些并發(fā)任務在得到對方的資源之前不會釋放自己所擁有的資源,

31、從而造成大前不會釋放自己所擁有的資源,從而造成大家都想得到資源而又都得不到資源,各并發(fā)家都想得到資源而又都得不到資源,各并發(fā)任務不能繼續(xù)向前推進的狀態(tài)。任務不能繼續(xù)向前推進的狀態(tài)。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)防止發(fā)生死鎖的方法內(nèi)核大多允許用戶在申請信號量時定義內(nèi)核大多允許用戶在申請信號量時定義等待超時,以化解死鎖。等待超時,以化解死鎖。等待時間超過了某一確定值,信號量還等待時間超過了某一確定值,信號量還是無效狀態(tài)時,就會返回某種形式的出現(xiàn)超是無效狀態(tài)時,就會返回某種形式的出現(xiàn)超時錯誤的代碼。這個出錯代碼告知該任務,時錯誤的代碼。這個出錯代

32、碼告知該任務,不是得到了資源使用權(quán),而是系統(tǒng)錯誤。不是得到了資源使用權(quán),而是系統(tǒng)錯誤。死鎖一般發(fā)生在大型多任務系統(tǒng)中,在死鎖一般發(fā)生在大型多任務系統(tǒng)中,在嵌入式系統(tǒng)中不易出現(xiàn)。嵌入式系統(tǒng)中不易出現(xiàn)。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)不可剝奪型內(nèi)核嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)不可剝奪型內(nèi)核1 1、任務在運行過程中,中斷來了。、任務在運行過程中,中斷來了。2 2、如果此時中斷是開著的,、如果此時中斷是開著的,CPUCPU由中斷向量進入中斷由中斷向量進入中斷服務子程序。服務子程序。3 3、中斷服

33、務子程序做事件處理,使一個有更高級的任、中斷服務子程序做事件處理,使一個有更高級的任務進入就緒態(tài)。務進入就緒態(tài)。4 4、中斷服務完成以后,中斷返回指令,、中斷服務完成以后,中斷返回指令,CPUCPU回到原來回到原來被中斷的任務。被中斷的任務。5 5、 接著執(zhí)行該任務被中斷了的代碼。接著執(zhí)行該任務被中斷了的代碼。6 6、直到該任務完成,調(diào)用一個內(nèi)核服務函數(shù)以釋放、直到該任務完成,調(diào)用一個內(nèi)核服務函數(shù)以釋放CPUCPU控制權(quán)??刂茩?quán)。7 7、內(nèi)核將控制權(quán)交給那個優(yōu)先級更高的、并已進入就、內(nèi)核將控制權(quán)交給那個優(yōu)先級更高的、并已進入就緒態(tài)的任務這個優(yōu)先級更高的任務才開始處理中斷服務程緒態(tài)的任務這個優(yōu)先

34、級更高的任務才開始處理中斷服務程序標識的事件。序標識的事件。 嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)可剝奪型內(nèi)核嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)可剝奪型內(nèi)核1 1、任務在運行過程中,中斷來了。、任務在運行過程中,中斷來了。2 2、如果此時中斷是開著的,、如果此時中斷是開著的,CPUCPU由中斷向量進入中由中斷向量進入中斷服務子程序。斷服務子程序。3 3、中斷服務子程序做事件處理,使一個有更高級的、中斷服務子程序做事件處理,使一個有更高級的任務進入就緒態(tài)。當任務進入就緒態(tài)。當ISRISR完成時,進入

35、內(nèi)核提供的一種完成時,進入內(nèi)核提供的一種服務(一個內(nèi)核提供的函數(shù)被調(diào)用)。服務(一個內(nèi)核提供的函數(shù)被調(diào)用)。4 4、該函數(shù)知道一個更重要的任務進入就緒態(tài),于是、該函數(shù)知道一個更重要的任務進入就緒態(tài),于是內(nèi)核進行任務切換,執(zhí)行更重要的任務的代碼。內(nèi)核進行任務切換,執(zhí)行更重要的任務的代碼。5. 5. 當該任務完成后,內(nèi)核提供另一個函數(shù)。當該任務完成后,內(nèi)核提供另一個函數(shù)。6. 6. 該函數(shù)使得內(nèi)核看到了低優(yōu)先級的任務要運行,該函數(shù)使得內(nèi)核看到了低優(yōu)先級的任務要運行,于是發(fā)生另一次任務切換,被中斷了的任務繼續(xù)運行。于是發(fā)生另一次任務切換,被中斷了的任務繼續(xù)運行。 嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提

36、高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)使用占先式內(nèi)核,最高優(yōu)先級的任務什使用占先式內(nèi)核,最高優(yōu)先級的任務什么時候可以執(zhí)行以及什么時候可以得到么時候可以執(zhí)行以及什么時候可以得到CPUCPU的控制權(quán)是可知的。使用占先式內(nèi)核使得任的控制權(quán)是可知的。使用占先式內(nèi)核使得任務級響應時間得以最優(yōu)化務級響應時間得以最優(yōu)化。使用占先式內(nèi)核時,應用程序不應該直使用占先式內(nèi)核時,應用程序不應該直接使用不可重入型函數(shù)。接使用不可重入型函數(shù)??蓜儕Z型內(nèi)核嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式操作系統(tǒng)中的基本概念前后臺系統(tǒng)前后臺系統(tǒng)調(diào)度調(diào)度臨界區(qū)臨界區(qū)進程與線

37、程進程與線程任務與多任務任務與多任務任務切換任務切換死鎖死鎖不可剝奪型內(nèi)核不可剝奪型內(nèi)核可剝奪型內(nèi)核可剝奪型內(nèi)核可重入性可重入性優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)事件事件互斥互斥同步同步對存儲器要求對存儲器要求嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)可重入性(Reentrant) 可重入型函數(shù)可以被一個以上的任務可重入型函數(shù)可以被一個以上的任務調(diào)用,而不必擔心數(shù)據(jù)的破壞??芍厝胄秃{(diào)用,而不必擔心數(shù)據(jù)的破壞??芍厝胄秃瘮?shù)任何時候都可以被中斷,一段時間以后又數(shù)任何時候都可以被中斷,一段時間以后又可以運行,而相應數(shù)據(jù)不會丟失。可以運行,而相應數(shù)據(jù)不會丟失。嵌入式系統(tǒng)及

38、應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)可重入性(Reentrant) strcpy(char *dest, char *src) while (*src!=0) *dest=*src; dest+; src+; *dest = 0; -可重入函數(shù)可重入函數(shù)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)可重入性(Reentrant) int Temp;void swap(int *x, int *y) Temp = *x; *x = *y; *y = Temp; -不可重入函數(shù)不可重入函數(shù)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提

39、高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)使函數(shù)具有可重入性的方法n把把temptemp定義為局部變量;定義為局部變量;n調(diào)用函數(shù)之前關中斷,調(diào)用后再開中斷;調(diào)用函數(shù)之前關中斷,調(diào)用后再開中斷;n用信號量禁止該函數(shù)在使用過程中被再用信號量禁止該函數(shù)在使用過程中被再次調(diào)用。次調(diào)用。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)優(yōu)先級(Priority) n 每個任務按其重要性被賦予一定的優(yōu)先級。每個任務按其重要性被賦予一定的優(yōu)先級。n 靜態(tài)優(yōu)先級與動態(tài)優(yōu)先級。靜態(tài)優(yōu)先級與動態(tài)優(yōu)先級。n 基于優(yōu)先級的系統(tǒng)會出現(xiàn)優(yōu)先級反轉(zhuǎn)(倒基于優(yōu)先級的系統(tǒng)會出現(xiàn)優(yōu)先級反

40、轉(zhuǎn)(倒置)的問題,一個好的實時內(nèi)核應該提供解置)的問題,一個好的實時內(nèi)核應該提供解決倒置的方法。決倒置的方法。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)優(yōu)先級反轉(zhuǎn)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)優(yōu)先級列表任務1任務2任務3高低共享資源 假設任務1和任務3共享一個資源,任務2為優(yōu)先級介于任務1和任務3之間的一個與該共享資源無關任務,分析優(yōu)先級反轉(zhuǎn)問題。任務2優(yōu)先級高于任務3而進入運行狀態(tài)任務1申請共享資源而處于等待狀態(tài) 此時,雖然任務1比任務2優(yōu)先級更高,但卻在任務2之后運行,這種現(xiàn)象就是優(yōu)先級反轉(zhuǎn)。任

41、務3得到共享資源而處于運行狀態(tài)優(yōu)先級反轉(zhuǎn)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)優(yōu)先級反轉(zhuǎn)問題的解決優(yōu)先級繼承優(yōu)先級繼承優(yōu)先級繼承(Priority inheritance)(Priority inheritance): 為防止發(fā)生優(yōu)先級反轉(zhuǎn)為防止發(fā)生優(yōu)先級反轉(zhuǎn), ,內(nèi)核能自動變換任務的內(nèi)核能自動變換任務的優(yōu)先級。優(yōu)先級。 將占用共享資源的低優(yōu)先級任務的優(yōu)先級提升將占用共享資源的低優(yōu)先級任務的優(yōu)先級提升到略高于等待共享資源的高優(yōu)先級任務的優(yōu)先級到略高于等待共享資源的高優(yōu)先級任務的優(yōu)先級。這個略高于高優(yōu)先級任務的優(yōu)先級稱為:優(yōu)先。這個略高于高優(yōu)先級任務

42、的優(yōu)先級稱為:優(yōu)先級繼承優(yōu)先級(級繼承優(yōu)先級(Priority Inheritance Priority,PIPPriority Inheritance Priority,PIP)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)優(yōu)先級列表優(yōu)先級繼承任務1任務2任務3高低共享資源任務3共享資源 假設任務1和任務3共享一個資源,定義優(yōu)先級繼承優(yōu)先級,任務2為優(yōu)先級介于任務1和任務3之間的一個與該共享資源無關任務。任務2優(yōu)先級不夠高無法獲得CPU任務1申請共享資源而處于等待狀態(tài)任務3 此時,任務2無法在任務1之前得到運行,不發(fā)生優(yōu)先級反轉(zhuǎn)共享資源任務1任務3獲得C

43、PU,且優(yōu)先級升到優(yōu)先級繼承優(yōu)先級任務1獲得CPU優(yōu)先級反轉(zhuǎn)問題的解決優(yōu)先級繼承嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式操作系統(tǒng)中的基本概念前后臺系統(tǒng)前后臺系統(tǒng)調(diào)度調(diào)度臨界區(qū)臨界區(qū)進程與線程進程與線程任務與多任務任務與多任務任務切換任務切換死鎖死鎖不可剝奪型內(nèi)核不可剝奪型內(nèi)核可剝奪型內(nèi)核可剝奪型內(nèi)核可重入性可重入性優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)事件事件互斥互斥同步同步對存儲器要求對存儲器要求嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)事件 一個任務或者中斷服務子程序可以通過一個任務或者中斷服務子程序可以通過內(nèi)核服務

44、來向另外的任務發(fā)信號,這里所內(nèi)核服務來向另外的任務發(fā)信號,這里所有的信號被看作事件(有的信號被看作事件(EventEvent)。)。 包括信號量、消息郵箱、消息隊列。包括信號量、消息郵箱、消息隊列。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)事件信號量 信號量是一種程序間的約定機制,這種約信號量是一種程序間的約定機制,這種約定決定哪個程序(任務)可以執(zhí)行。定決定哪個程序(任務)可以執(zhí)行。 信號量像是通行證,且通行證的數(shù)目是有信號量像是通行證,且通行證的數(shù)目是有限的。任務要運行下去,要先拿到通行證。限的。任務要運行下去,要先拿到通行證。如果信號量已被別的任

45、務占用,則該任務只如果信號量已被別的任務占用,則該任務只得被掛起,直到信號量被當前使用者釋放掉。得被掛起,直到信號量被當前使用者釋放掉。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng) 我們知道酒店的桌子數(shù)是固定的,因此可以這樣理解其最大桌子數(shù)就是計數(shù)器的初值,假設一人占用一張桌子,因此每進去一人,計數(shù)器就會自動減1,而只有出去一人時計數(shù)器才會自動加1。即就是說,如果計數(shù)器大于0,就可以進去吃飯,否則只好等待有人出來才能進去,這種計數(shù)信號就是信號量。酒店酒店人計數(shù)器計數(shù)器(能容納的人數(shù))(能容納的人數(shù))3 2 1 0人人人禁止其它客人進入人沒有空位,不能再容

46、納客人有空位,能再容納1位客人事件信號量嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)事件信號量初始化,也可稱做建立;初始化,也可稱做建立;等信號,也可稱做掛起;等信號,也可稱做掛起;給信號或發(fā)信號。給信號或發(fā)信號。信號量初始化時要給信號量賦初值,等待信信號量初始化時要給信號量賦初值,等待信號量的任務表應清為空。號量的任務表應清為空。對信號量只能實施三種操作嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)事件消息郵箱 通過內(nèi)核服務可以給任務發(fā)送消息。用一通過內(nèi)核服務可以給任務發(fā)送消息。用一個指針型變量,通過內(nèi)核服務,一個

47、任務或一個個指針型變量,通過內(nèi)核服務,一個任務或一個中斷服務程序可以把一則消息中斷服務程序可以把一則消息(即一個指針即一個指針)放到放到郵箱里去。同樣,一個或多個任務可以通過內(nèi)核郵箱里去。同樣,一個或多個任務可以通過內(nèi)核服務接收這則消息。服務接收這則消息。 用來傳遞消息緩沖區(qū)指針的數(shù)據(jù)結(jié)構(gòu)叫做消用來傳遞消息緩沖區(qū)指針的數(shù)據(jù)結(jié)構(gòu)叫做消息郵箱。息郵箱。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng) 消息是任務之間的一種通信手段,當同步過程需要傳輸具體內(nèi)容時就不能使用信號量,此時可以選擇消息郵箱,即通過內(nèi)核服務可以給任務發(fā)送帶具體內(nèi)容的消息。 通過上述圖解可知,

48、用來傳遞消息緩沖區(qū)指針的數(shù)據(jù)結(jié)構(gòu)就是消息郵箱。 消息消息緩存區(qū)緩存區(qū)消息郵箱PCPC一個郵箱只能存放一個消息指針 事件消息郵箱嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)事件消息隊列消息隊列用于給任務發(fā)消息。通過內(nèi)核消息隊列用于給任務發(fā)消息。通過內(nèi)核提供的服務,任務或中斷服務子程序可以將提供的服務,任務或中斷服務子程序可以將一條消息放入消息隊列。同樣,一個或多個一條消息放入消息隊列。同樣,一個或多個任務可以通過內(nèi)核服務從消息隊列中得到消任務可以通過內(nèi)核服務從消息隊列中得到消息。通常,消息隊列傳遞的是一個指針,以息。通常,消息隊列傳遞的是一個指針,以便任務

49、可以通過它發(fā)送和接收任意類型數(shù)據(jù)便任務可以通過它發(fā)送和接收任意類型數(shù)據(jù)(即消息,也就是指針指向的內(nèi)容)。(即消息,也就是指針指向的內(nèi)容)。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)n消息郵箱:實際上就是個數(shù)據(jù)結(jié)構(gòu),消息郵箱:實際上就是個數(shù)據(jù)結(jié)構(gòu),里面有個成員變量是個指針,該指針里面有個成員變量是個指針,該指針指向一條消息。指向一條消息。n消息隊列:和消息郵箱基本相同,只消息隊列:和消息郵箱基本相同,只是它可以放入多條消息,而郵箱通常是它可以放入多條消息,而郵箱通常只有一條消息。只有一條消息。事件消息隊列嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌

50、入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)互斥(mutual exclusion)n資源的使用必須獨占,叫做互斥。資源的使用必須獨占,叫做互斥。n解決辦法:解決辦法: 禁止中斷(關中斷)禁止中斷(關中斷) 禁止搶占(禁止做任務切換)禁止搶占(禁止做任務切換) 利用信號量利用信號量 測試并置位測試并置位嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)禁止中斷void Function (void)void Function (void) OS_ENTER_CRITICAL(); / OS_ENTER_CRITICAL(); /宏調(diào)用,關中斷宏調(diào)用,關中斷 / /* *

51、在這里處理共享數(shù)據(jù)在這里處理共享數(shù)據(jù)* */ / OS_EXIT_CRITICAL(); / OS_EXIT_CRITICAL(); /宏調(diào)用,開中斷宏調(diào)用,開中斷 嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)禁止搶占void Function (void)void Function (void) OSSchedLock(); / OSSchedLock(); /內(nèi)核函數(shù),調(diào)度上鎖內(nèi)核函數(shù),調(diào)度上鎖 / /* *在這里處理共享數(shù)據(jù)在這里處理共享數(shù)據(jù)( (中斷是開著的中斷是開著的) )* */ / OSSchedUnlock(); / OSSchedUnl

52、ock(); /內(nèi)核函數(shù),調(diào)度解鎖內(nèi)核函數(shù),調(diào)度解鎖 注意:這種辦法只能保證多個任務之間的互斥,不能注意:這種辦法只能保證多個任務之間的互斥,不能保證任務與中斷服務程序之間的互斥保證任務與中斷服務程序之間的互斥嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)同步一個工作的完成需要多個任務或者一個工作的完成需要多個任務或者 多個任多個任務與多個中斷共同完成,它們之間必須互相配合、務與多個中斷共同完成,它們之間必須互相配合、協(xié)調(diào)動作,甚至交換信息,這就要用到同步技術(shù)。協(xié)調(diào)動作,甚至交換信息,這就要用到同步技術(shù)。任務之間這種制約性的合作運行機制叫做任任務之間這種制

53、約性的合作運行機制叫做任務間的同步。系統(tǒng)中是依靠任務與任務之間相互務間的同步。系統(tǒng)中是依靠任務與任務之間相互發(fā)送消息來保證同步。發(fā)送消息來保證同步。定義同步方法信號量、事件標志組、消息郵箱、消息隊列信號量、事件標志組、消息郵箱、消息隊列嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)嵌入式操作系統(tǒng)中的基本概念前后臺系統(tǒng)前后臺系統(tǒng)調(diào)度調(diào)度臨界區(qū)臨界區(qū)進程與線程進程與線程任務與多任務任務與多任務任務切換任務切換死鎖死鎖不可剝奪型內(nèi)核不可剝奪型內(nèi)核可剝奪型內(nèi)核可剝奪型內(nèi)核可重入性可重入性優(yōu)先級反轉(zhuǎn)優(yōu)先級反轉(zhuǎn)事件事件互斥互斥同步同步對存儲器要求對存儲器要求嵌入式系統(tǒng)

54、及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)對存儲器的要求 代碼量代碼量 = = 應用程序代碼應用程序代碼 + + 內(nèi)核代碼內(nèi)核代碼 RAMRAM總需求總需求 = = 應用程序的應用程序的RAMRAM需求需求 + (+ (任任務棧需求務棧需求 + + 最大中斷嵌套棧需求最大中斷嵌套棧需求) ) * * 任務數(shù)任務數(shù)嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)使用RTOS的得失失 更方便開發(fā)復雜系統(tǒng)(通過將復雜任務分解為簡單子任更方便開發(fā)復雜系統(tǒng)(通過將復雜任務分解為簡單子任務,且每個任務的開發(fā)相對獨立,邏輯關系簡單);提供務

55、,且每個任務的開發(fā)相對獨立,邏輯關系簡單);提供更好的實時性,更強大的功能。更好的實時性,更強大的功能。 運行操作系統(tǒng)本身需要占用一定的運行操作系統(tǒng)本身需要占用一定的RAM,操作系統(tǒng),操作系統(tǒng)代碼也要占用一定程序代碼也要占用一定程序ROM(flash); 此外,運行內(nèi)核也會需要一定的此外,運行內(nèi)核也會需要一定的CPU時間時間得嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)1.什么是實時系統(tǒng)?2.什么是程序的可重入性?3.什么是事件?4.什么是前后臺系統(tǒng)?5.程序、進程和線程的區(qū)別?6.解釋一下信號量?7.什么叫消息郵箱?8.互斥是什么意思?作業(yè)嵌入式系統(tǒng)及

56、應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)內(nèi) 容nuCOS-II操作系統(tǒng)簡介nuCOS-II操作系統(tǒng)內(nèi)核結(jié)構(gòu)nuCOS-II操作系統(tǒng)任務管理nuCOS-II操作系統(tǒng)內(nèi)存管理nuCOS-II操作系統(tǒng)時間管理nuCOS-II操作系統(tǒng)任務間的通訊nuCOS-II操作系統(tǒng)移植嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)uC/OS-II簡介1、uC/OS-II是一個簡單、高效的嵌入式實時操作系統(tǒng)內(nèi)核。2、支持 x86、ARM、PowerPC、MIPS 等眾多體系結(jié)構(gòu)。3、可從www.ucos-網(wǎng)站上獲得全部源碼及其在各種體系結(jié)構(gòu)平臺上

57、的移植范例。1、uC/OS-II內(nèi)核具有可搶占的實時多任務調(diào)度功能。2、提供了許多系統(tǒng)服務,如信號量、消息隊列、郵箱、內(nèi)存管理、時間函數(shù)等。3、這些功能可以根據(jù)不同的需求進行裁減。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)C/OS-II的各種商業(yè)應用n全世界有數(shù)百種產(chǎn)品在應用:n醫(yī)療器械移動電話路由器工業(yè)控制GPS 導航系統(tǒng)智能儀器更多嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)uC/OS-II簡介 nC/OS 和C/OS-II 是專門為計算機的嵌入式應用設計的, 絕大部分代碼是用C語言編寫的。CPU 硬件相關部

58、分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)nuC/OS-II是一種基于優(yōu)先級的可搶先的硬實時內(nèi)核。自從年發(fā)布以來,在世界各地都獲得了廣泛的應用,它是一種專門為嵌入式設備設計的內(nèi)核,目前已經(jīng)被移植到多種不同結(jié)構(gòu)的CPU上,運行在從位到位的各種系統(tǒng)之上。n尤其值得一提的是,該系統(tǒng)自從.51版本之后,就通過了美國FAA認證,可以運行在諸如航天器等對安全要求極為苛刻的系統(tǒng)之上。鑒于uC/OS-II可以免費獲得代碼,對于嵌入式RTOS而言,選擇uC/OS

59、無疑是最經(jīng)濟的選擇。uC/OS-II簡介 嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)uC/OS-II嵌入式系統(tǒng)基本模型n嚴格地說uC/OS-II只是一個實時操作系統(tǒng)內(nèi)核,它僅僅包含了任務調(diào)度,任務管理,時間管理,任務調(diào)度,任務管理,時間管理,內(nèi)存管理和任務間的通信和同步內(nèi)存管理和任務間的通信和同步等基本功能。沒有提供輸入輸出管理,文件系統(tǒng),網(wǎng)絡等額外的服務。但由于uC/OS-II良好的可擴展性和源碼開放,這些非必須的功能完全可以由用戶自己根據(jù)需要分別實現(xiàn)。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)uC/OS操作

60、系統(tǒng)的特點nuC/OS是一個完成的,可移植、可固化、可裁減完成的,可移植、可固化、可裁減的搶占式實時的搶占式實時多任務操作系統(tǒng)內(nèi)核內(nèi)核。n主要用ANSI的C語言編寫,少部分代碼是匯編語言。嵌入式系統(tǒng)及應用嵌入式系統(tǒng)及應用-提高篇提高篇 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)搶占式內(nèi)核n內(nèi)核搶占(可搶占式內(nèi)核)內(nèi)核搶占(可搶占式內(nèi)核):即當進程位于內(nèi)核空間時,有一個更高優(yōu)先級的任務出現(xiàn)時,如果當前內(nèi)核允許搶占,則可以將當前任務掛起,執(zhí)行優(yōu)先級更高的進程。n非搶占式內(nèi)核非搶占式內(nèi)核:高優(yōu)先級的進程不能中止正在內(nèi)核中運行的低優(yōu)先級的進程而搶占CPU運行。進程一旦處于核心態(tài)(例如用戶進程執(zhí)行系統(tǒng)調(diào)用),

溫馨提示

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

評論

0/150

提交評論