第四章 ucos操作系統(tǒng)概述.ppt_第1頁
第四章 ucos操作系統(tǒng)概述.ppt_第2頁
第四章 ucos操作系統(tǒng)概述.ppt_第3頁
第四章 ucos操作系統(tǒng)概述.ppt_第4頁
第四章 ucos操作系統(tǒng)概述.ppt_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第四章 C/OS-II操作系統(tǒng)概述,內(nèi)容,4.1 C/OS-II簡介 4.2 C/OS-II的特點 4.3 實時系統(tǒng)的概念,4.1 C/OS-II簡介,C/OS-II來源于術(shù)語Micro-Controller Operating System (微控制器操作系統(tǒng))。它通常也稱為MUCOS或者UCOS。 C/OS-II是Jean J.Labrosse在1990年前后編寫的一個實時操作系統(tǒng)內(nèi)核。 任務(wù)管理、任務(wù)調(diào)度、任務(wù)的同步與通信、時間管理、內(nèi)存管理 未包括輸入輸出管理、文件管理、網(wǎng)絡(luò)等服務(wù),由用戶提供 實時系統(tǒng)概念、多任務(wù)調(diào)度與管理、時間與內(nèi)存管理 主要應(yīng)用于高校教學(xué),4.2 C/OS-II的

2、特點,公開的源代碼: C/OS-II的源代碼共約5500行,由匯編語言和C語言編寫。 使用者使用的是C/OS-II的源程序而不是編譯后的程序文件。,4.2 C/OS-II的特點,可移植性: 可使用在多種處理器平臺的特性。 可移植性的基礎(chǔ)是編寫操作系統(tǒng)的語言的可移植性。 匯編語言編寫的與處理器特性相關(guān)的部分,必須經(jīng)過修改。 ANSI C語言編寫的部分通過不同的編譯器編譯鏈接后可直接使用。,4.2 C/OS-II的特點,可固化: C/OS-II通過編譯、鏈接后可以下載并固化在嵌入式設(shè)備中的存儲介質(zhì)中。 可裁減: 可以根據(jù)應(yīng)用的需求使用C/OS-II所提供的不同的服務(wù)。 C/OS-II通過條件編譯實

3、現(xiàn)裁減。,4.2 C/OS-II的特點,可搶占性: C/OS-II操作系統(tǒng)內(nèi)核是完全可搶占性實時內(nèi)核。 多任務(wù): C/OS-II可以管理最多64個任務(wù),根據(jù)任務(wù)的優(yōu)先級不同進(jìn)行管理。,4.2 C/OS-II的特點,可確定性: 函數(shù)調(diào)用和服務(wù)的執(zhí)行時間是可以確定的。 用戶可以知道C/OS-II的絕大多數(shù)函數(shù)和服務(wù)的執(zhí)行時間。,4.2 C/OS-II的特點,任務(wù)棧: C/OS-II允許每個任務(wù)都有單獨(dú)的棧空間。 系統(tǒng)服務(wù): C/OS-II提供許多系統(tǒng)服務(wù),比如信號量、互斥信號量、事件標(biāo)志、消息郵箱、消息隊列、時間管理等等,4.2 C/OS-II的特點,中斷管理: 中斷可以使正在執(zhí)行的任務(wù)暫時掛起。

4、如果優(yōu)先級更高的任務(wù)被該中斷喚醒,則高優(yōu)先級的任務(wù)在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可以達(dá)255層 穩(wěn)定性和可靠性: 比較可靠的嵌入式實時操作系統(tǒng),4.2 C/OS-II的特點,公開的源代碼 可移植性、可固化、可裁減、可搶占性、多任務(wù) 可確定性、任務(wù)棧、系統(tǒng)服務(wù)、穩(wěn)定性和可靠性,4.3 實時系統(tǒng)概念,4.3.1 系統(tǒng)級概念 4.3.2 代碼相關(guān)的概念 4.3.3 任務(wù)及內(nèi)核相關(guān)的概念 4.3.4 中斷相關(guān)的概念 4.3.5 時鐘節(jié)拍 4.3.6 對存儲器的需求 4.3.7 使用實時內(nèi)核的優(yōu)缺點,4.3.1 系統(tǒng)級概念,軟實時系統(tǒng): 使各個任務(wù)運(yùn)行得越快越好,并不要求限定某一任務(wù)的完成時

5、間。 硬實時系統(tǒng): 任務(wù)不僅要執(zhí)行無誤而且要準(zhǔn)時完成。,4.3.1 系統(tǒng)級概念,前后臺系統(tǒng)超循環(huán)系統(tǒng) 后臺(任務(wù)級):應(yīng)用程序是一個無限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作。 前臺(中斷級):中斷服務(wù)程序處理異步事件,4.3.2 代碼相關(guān)的概念,代碼的臨界段 也稱為臨界區(qū),指處理時不可分割的代碼。 一旦這部分代碼開始執(zhí)行,不允許任何中斷打斷執(zhí)行過程。 解決方法: 執(zhí)行前關(guān)中斷,執(zhí)行后開中斷。,4.3.2 代碼相關(guān)的概念,可重入性 一個函數(shù)可以被多個任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞。,int Temp; void swap(int *x, int *y) Temp = *x; *x = *y

6、; *y = Temp; ,4.3.2 代碼相關(guān)的概念,4.3.2 代碼相關(guān)的概念,使函數(shù)具有可重入性的方法 將Temp定義為局部變量 調(diào)用Swap()函數(shù)之前關(guān)中斷,調(diào)用后開中斷 用信號量禁止該函數(shù)在使用過程中被再次調(diào)用,4.3.3任務(wù)及內(nèi)核相關(guān)的概念,任務(wù)與多任務(wù) 內(nèi)核 調(diào)度 不可剝奪型內(nèi)核 可剝奪型內(nèi)核,任務(wù)優(yōu)先級 互斥條件 信號量 死鎖(或抱死) 同步 事件標(biāo)志任務(wù)間的通訊 消息郵箱 消息隊列,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,任務(wù) 一個任務(wù),也稱作一個線程,是一個簡單的程序,該程序可以認(rèn)為CPU完全只屬該程序自己。 每個任務(wù)被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的??臻g

7、。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,多任務(wù) 多任務(wù)運(yùn)行的實現(xiàn)實際上是靠CPU(中央處理單元)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。 CPU只有一個,輪番服務(wù)于一系列任務(wù)中的某一個。 多任務(wù)運(yùn)行使CPU的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,任務(wù)與多任務(wù) 實時應(yīng)用程序的設(shè)計過程,包括如何把問題分割成多個任務(wù),每個任務(wù)都是整個應(yīng)用的某一部分,每個任務(wù)被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的棧空間。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,內(nèi)核 內(nèi)核提供的基本服務(wù)是任務(wù)切換。 多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個任務(wù),或者說為每個任務(wù)分配CPU時間,并且負(fù)責(zé)任務(wù)之間的

8、通訊。 之所以使用實時內(nèi)核可以大大簡化應(yīng)用系統(tǒng)的設(shè)計,是因為實時內(nèi)核允許將應(yīng)用分成若干個任務(wù),由實時內(nèi)核來管理它們。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,調(diào)度 內(nèi)核的主要職責(zé)之一,就是要決定該輪到哪個任務(wù)運(yùn)行了。 多數(shù)實時內(nèi)核是基于優(yōu)先級調(diào)度法的。每個任務(wù)根據(jù)其重要程度的不同被賦予一定的優(yōu)先級。 基于優(yōu)先級的調(diào)度法指:CPU總是讓處在就緒態(tài)的優(yōu)先級最高的任務(wù)先運(yùn)行。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,不可剝奪型內(nèi)核 不可剝奪型內(nèi)核要求每個任務(wù)自我放棄CPU的所有權(quán)。 中斷服務(wù)可以使一個高優(yōu)先級的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個任務(wù),直到該任務(wù)主動放棄CP

9、U的使用權(quán)時,那個高優(yōu)先級的任務(wù)才能獲得CPU的使用權(quán)。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,任務(wù)在運(yùn)行過程之中 產(chǎn)生中斷 進(jìn)入中斷服務(wù)子程序,中斷服務(wù)子程序做事件處理 使一個有更高級的任務(wù)進(jìn)入就緒態(tài)。 中斷服務(wù)完成以后,中斷返回指令, 使CPU回到原來被中斷的任務(wù) 接著執(zhí)行該任務(wù)的代碼,直到該任務(wù)完成,調(diào)用一個內(nèi)核服務(wù)函數(shù)以釋放CPU控制權(quán), 由內(nèi)核將控制權(quán)交給那個優(yōu)先級更高的、并已進(jìn)入就緒態(tài)的任務(wù), 這個優(yōu)先級更高的任務(wù)才開始處理中斷服務(wù)程序標(biāo)識的事件,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,可剝奪型內(nèi)核 最高優(yōu)先級的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。 當(dāng)一個運(yùn)行著的任務(wù)使一個比它優(yōu)先級高的任

10、務(wù)進(jìn)入了就緒態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務(wù)立刻得到了CPU的控制權(quán)。 如果是中斷服務(wù)子程序使一個高優(yōu)先級的任務(wù)進(jìn)入就緒態(tài),中斷完成時,中斷了的任務(wù)被掛起,優(yōu)先級高的那個任務(wù)開始運(yùn)行。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,不可剝奪型內(nèi)核 高優(yōu)先級的任務(wù)已經(jīng)進(jìn)入就緒態(tài),也許要等很長時間,直到當(dāng)前運(yùn)行著的任務(wù)釋放CPU后才能執(zhí)行。 不可剝奪型內(nèi)核的任務(wù)級響應(yīng)時間是不確定的,不知道什么時候最高優(yōu)先級的任務(wù)才能拿到CPU的控制權(quán),完全取決于應(yīng)用程序什么時候釋放CPU。,可剝奪型內(nèi)核 高優(yōu)先級的任務(wù)進(jìn)入就緒態(tài),立刻能夠執(zhí)行。 最高優(yōu)

11、先級的任務(wù)的執(zhí)行時間是可知的。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,任務(wù)優(yōu)先級 表征任務(wù)的重要程度的量。任務(wù)的優(yōu)先級越高,賦予的優(yōu)先級就越高。 靜態(tài)優(yōu)先級:應(yīng)用程序執(zhí)行的過程中,任務(wù)的優(yōu)先級不變。 動態(tài)優(yōu)先級:應(yīng)用程序執(zhí)行過程中,任務(wù)的優(yōu)先級是可變的。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,互斥條件 保證系統(tǒng)處理共享數(shù)據(jù)或共享資源的排他性的方法。 關(guān)中斷 使用測試并置位指令 禁止任務(wù)切換 利用信號量,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,信號量 在多任務(wù)內(nèi)核中普遍使用的約定機(jī)制。 控制共享資源的使用權(quán)(滿足互斥條件) 標(biāo)志某時間的發(fā)生 使兩個任務(wù)的行為同步 二進(jìn)制型 計數(shù)型,4.3.3 任務(wù)及內(nèi)核相關(guān)的

12、概念,死鎖(或抱死) 指兩個任務(wù)無限期地互相等待對方控制著的資源。 設(shè)任務(wù)T1正獨(dú)享資源R1,任務(wù)T2在獨(dú)享資源R2,而此時T1又要獨(dú)享R2,T2也要獨(dú)享R1,于是哪個任務(wù)都沒法繼續(xù)執(zhí)行了,發(fā)生了死鎖。 先得到全部需要的資源再做下一步的工作 用同樣的順序去申請多個資源 釋放資源時使用相反的順序,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,同步 按照一定的時間順序執(zhí)行任務(wù)。 任務(wù)的執(zhí)行順序 單向同步 雙向同步 同步標(biāo)志用信號量實現(xiàn),4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,事件標(biāo)志 當(dāng)某任務(wù)要與多個事件同步時,要使用事件標(biāo)志。 若任務(wù)需要與任何事件之一發(fā)生同步,可稱為獨(dú)立型同步(即邏輯或關(guān)系)。 任務(wù)也可以與若干

13、事件都發(fā)生了同步,稱之為關(guān)聯(lián)型(邏輯與關(guān)系)。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,任務(wù)間的通訊 在任務(wù)進(jìn)行數(shù)據(jù)傳遞 全局變量 發(fā)送消息,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,消息郵箱 典型的消息郵箱也稱作交換消息,是用一個指針型變量,通過內(nèi)核服務(wù),一個任務(wù)或一個中斷服務(wù)程序可以把一則消息(即一個指針)放到郵箱里去。同樣,一個或多個任務(wù)可以通過內(nèi)核服務(wù)接收這則消息。發(fā)送消息的任務(wù)和接收消息的任務(wù)約定,該指針指向的內(nèi)容就是那則消息。,4.3.3 任務(wù)及內(nèi)核相關(guān)的概念,消息隊列 消息隊列實際上是郵箱陣列。通過內(nèi)核提供的服務(wù),任務(wù)或中斷服務(wù)子程序可以將一條消息(該消息的指針)放入消息隊列。同樣,一個或多個

14、任務(wù)可以通過內(nèi)核服務(wù)從消息隊列中得到消息。發(fā)送和接收消息的任務(wù)約定,傳遞的消息實際上是傳遞的指針指向的內(nèi)容。通常,先進(jìn)入消息隊列的消息先傳給任務(wù),也就是說,任務(wù)先得到的是最先進(jìn)入消息隊列的消息,即先進(jìn)先出原則(FIFO)。,4.3.4 中斷相關(guān)的概念,中斷 中斷延遲 中斷響應(yīng) 中斷恢復(fù)時間 中斷處理時間,4.3.4 中斷相關(guān)的概念,中斷 中斷是一種硬件機(jī)制,用于通知CPU有個異步事件發(fā)生了。 中斷一旦被識別,CPU保存部分(或全部)現(xiàn)場(Context)即部分或全部寄存器的值,跳轉(zhuǎn)到專門的子程序,稱為中斷服務(wù)子程序(ISR)。中斷服務(wù)子程序做事件處理,處理完成后,程序回到: 在前后臺系統(tǒng)中,程

15、序回到后臺程序 對不可剝奪型內(nèi)核而言,程序回到被中斷了的任務(wù) 對可剝奪型內(nèi)核而言,讓進(jìn)入就緒態(tài)的優(yōu)先級最高的任務(wù)開始運(yùn)行 關(guān)中斷和開中斷 中斷嵌套,也就是說在中斷服務(wù)期間,微處理器可以識別另一個更重要的中斷,并服務(wù)于那個更重要的中斷,4.3.4 中斷相關(guān)的概念,中斷延遲 所有實時系統(tǒng)在進(jìn)入臨界區(qū)代碼段之前都要關(guān)中斷,執(zhí)行完臨界代碼之后再開中斷。關(guān)中斷的時間越長,中斷延遲就越長。 中斷延遲 = 關(guān)中斷的最長時間 + 開始執(zhí)行中斷服務(wù)子程序的第一條指令的時間,4.3.4 中斷相關(guān)的概念,中斷響應(yīng) 中斷響應(yīng)時間定義為從中斷發(fā)生到開始執(zhí)行用戶的中斷服務(wù)子程序代碼來處理這個中斷的時間。 中斷響應(yīng)是系統(tǒng)在

16、最壞情況下的中斷響應(yīng)時間。 中斷響應(yīng)時間 = 中斷延遲 + 保存CPU內(nèi)部寄存器的時間 中斷響應(yīng)時間 = 中斷延遲 + 保存CPU內(nèi)部寄存器的時間 + 內(nèi)核的進(jìn)入中斷服務(wù)函數(shù)的執(zhí)行時間,4.3.4 中斷相關(guān)的概念,中斷恢復(fù)時間 中斷恢復(fù)時間定義為微處理器返回到被中斷了的程序代碼所需要的時間。 中斷恢復(fù)時間 = 恢復(fù)CPU內(nèi)部寄存器值的時間 + 執(zhí)行中斷返回指令的時間 中斷恢復(fù)時間 = 判定是否有優(yōu)先級更高的任務(wù)進(jìn)入了就緒態(tài)的時間 + 恢復(fù)那個優(yōu)先級更高任務(wù)的CPU內(nèi)部寄存器的時間 + 執(zhí)行中斷返回指令的時間,4.3.4 中斷相關(guān)的概念,中斷處理時間 中斷服務(wù)的處理時間應(yīng)該盡可能的短,但是對處理

17、時間并沒有絕對的限制。 如果中斷服務(wù)是在任何給定的時間開始,且中斷服務(wù)程序代碼是應(yīng)用程序中最重要的代碼,則中斷服務(wù)需要多長時間就應(yīng)該給它多長時間。 分析事件處理的時間和消息傳遞的時間。,4.3.5時鐘節(jié)拍,時鐘節(jié)拍 時鐘節(jié)拍是特定的周期性中斷。 中斷之間的時間間隔取決于不同的應(yīng)用,一般在10mS到200mS之間。 時鐘的節(jié)拍式中斷使得內(nèi)核可以將任務(wù)延時若干個整數(shù)時鐘節(jié)拍,以及當(dāng)任務(wù)等待事件發(fā)生時,提供等待超時的依據(jù)。時鐘節(jié)拍率越快,系統(tǒng)的額外開銷就越大(節(jié)拍服務(wù)子程序)。,4.3.6 對存儲器的需求,前后臺系統(tǒng),對存儲器容量的需求僅僅取決于應(yīng)用程序代碼。 使用多任務(wù)內(nèi)核 總代碼量 = 應(yīng)用程序代碼 + 內(nèi)核代碼 RAM總需求 = 應(yīng)用程序的RAM需求 + (任務(wù)棧需求 + 最大中斷嵌套棧

溫馨提示

  • 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

提交評論