第四章 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ù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論