UC/OS基礎知識之任務

UC/OS基礎知識之任務

1.任務的組成
UC/OS操作系統內核的主要工作就是對任務進行管理和調度,任務由3部分組成:任務控制塊,任務堆棧和任務程序代碼。任務控制塊就是關聯了任務代碼的程序控制塊,記錄了任務的各個屬性;任務堆棧則用來保存任務的工作環境;任務程序代碼就是任務的執行部分。其結構示意圖如下圖所示:

2.任務的種類
UC/OS有兩種任務:用戶任務和系統任務。有應用程序設計者編寫的任務叫做用戶任務,由系統提供的任務叫做系統任務,UC/OS-2中,最多可以含有64個任務(包含用戶任務和系統任務)。操作系統有兩個系統任務,空閒任務和統計任務,其中空閒任務是每個應用程序必須要使用的,而統計任務則是可以根據實際需要選擇使用。統計任務每秒計算一次CPU在單位時間內被使用的時間,並把計算結果以百分比的形式存放在變量OSCPUsage中,以便其他應用程序來了解CPU的使用率。
3.任務的狀態
在UC/OS系統中,一個具體時刻只會有一個任務佔用CPU處於運行狀態,而其他任務只能處於其他狀態。UC/OS操作系統中任務共有五種狀態:睡眠,運行,就緒,中斷和等待。
睡眠狀態:任務只是以代碼的形式駐留在程序空間,還沒有交還給操作系統管理時的情況叫做睡眠狀態。簡單的說任務在沒有被配備任務控制塊或者被剝奪了任務控制塊的狀態叫做睡眠狀態
就緒狀態:如果系統爲任務分配了任務控制塊並且任務在任務就緒表中進行登記,則任務就具備了運行的充分天劍,這是的狀態就叫做就緒狀態
運行狀態:處於就緒狀態的任務,如果經調度器判斷獲得了CPU的使用權,則任務就進入了運行狀態。任何時刻只能有一個任務處於運行狀態,就緒的任務只有當所有優先級高於本任務的任務都轉爲等待狀態時,才能進入運行狀態。
等待狀態:正在運行的任務需要等待一段時間或者需要等待一個事件發生在運行時,該任務就會把CPU的使用權讓給其他任務而使任務處於等待狀態
中斷服務狀態:一個正在運行的任務一旦響應中斷而去執行中斷服務程序,這時任務的狀態就叫中斷服務狀態
5種狀態的切換如下圖所示

4.任務的優先權及優先級別
UC/OS採用優先級搶佔式原則,即系統中的每個任務都按其任務的重要性分配唯一的 優先級別,一個任務對應唯一的優先級別,優先級別高的任務先運行,優先級別低的任務後運行。由於大多數應用程序的任務數都小於64,爲了方便用戶定義任務數,UC/OS在配置文件OS_CFG.H中定義了一個用來表示最低優先級別的常數OS_LOWEST_PRIO,如果用戶爲其賦值,就意味着系統中可供使用的優先級別爲0,1,2,……….OS_LOWEST_PRIO,對應的任務的總數不超過OS_LOWEST_PRIO+1個。另外系統總是把最低優先級別OS_LOWEST_PRIO自動賦值給空閒任務,如果還使用了統計任務,系統會把優先級別OS_LOWEST_PRIO-1自動賦值給統計任務。
因此,用戶任務可使用的優先級別爲0,1,2………OS_LOWEST_PRIO-2,即用戶任務總數爲OS_LOWEST_PRIO-1個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章