資料介紹
μC/OS-II 是一種基于優先級的搶占式多任務實時操作系統,包含了實時內核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息 隊列)和內存管理等功能。它可以使各個任務獨立工作,互不干涉,很容易實現準時而且無誤執行,使實時應用程序的設計和擴展變得容易,使應用程序的設計過程大為減化。
1 μC/OS-II的任務調度算法分析
1.1 μC/OS-II任務就緒表的解讀
μC/OS操作系統采用優先級至上的任務調度原則,讓進入就緒態任務中優先級最高的那個任務,一進入就緒態就能立即運行。μC/OS操作系統實現了一種巧妙的查表算法,利用這種算法能快速實現任務調度原則。如何從任務就緒表中,查找優先級最高的那個任務?歸結起來:
兩個變量(OSrdyGrp、OSRdyTb1[])和兩張表(OSMapTb1[]、OSUnMaTb1[])。
μC/OS操作系統可支持64個任務,每個任務被賦予不同的優先級——從0級到最低優先級OS_LOWEST_PRIO,最末兩個為操作系統所用,分別為統計任務和空閑任務的優先級。μC/OS-II任務就緒表如圖1所示。判斷任務就緒同樣根據OSRdyTb1[]和OSRdyGrp兩個變量來完成:OSR-dyTb1[]按任務優先級分成8組(即每一組8個任務優先級),當任務處于就緒狀態時,對應的位為1,反之則為0;OSRdyTb1口組中任何一位為1時,對應的OSRdyGrp位置1。

圖1 μC/OS-II任務就緒表
使任務進入就緒狀態和脫離就緒狀態,都是通過OSRdyTb1[]和OSRdyGrp這兩個變量來查找OSMapTb1[]表完成的:
①進入就緒狀態。

任務優先級的低3位用于確定任務在總就緒表OSRdyTb1[]中的位置。緊接著前面的3位用于確定是OSRclyTb1[]數組的第幾個元素,兩個變量都置1。
②脫離就緒狀態。

代碼將就緒任務表數組OSRdyTb1[]中相應元素的相應位清0,而只有當這一組中的所有任務都為脫離就緒態時,OSRdyGrp變量才會為0。
1.2 高優先級任務的查找
從任務就緒表中查找最高優先級任務,即從OSRdyTb1[]變量中找到最低為1的位是第幾位(對應的就是最高優先級任務)。μC/OS-II采用查表的方式來找出處于就緒態的最高優先級任務,μC/OS-II中有一張256個單元的數據表OSUnMapTb1[],表中按一定規律有128個O,64個1,32個2,16個3,8個4,4個5,2個6,1個7,還有1個0,共256字節。
1 μC/OS-II的任務調度算法分析
1.1 μC/OS-II任務就緒表的解讀
μC/OS操作系統采用優先級至上的任務調度原則,讓進入就緒態任務中優先級最高的那個任務,一進入就緒態就能立即運行。μC/OS操作系統實現了一種巧妙的查表算法,利用這種算法能快速實現任務調度原則。如何從任務就緒表中,查找優先級最高的那個任務?歸結起來:
兩個變量(OSrdyGrp、OSRdyTb1[])和兩張表(OSMapTb1[]、OSUnMaTb1[])。
μC/OS操作系統可支持64個任務,每個任務被賦予不同的優先級——從0級到最低優先級OS_LOWEST_PRIO,最末兩個為操作系統所用,分別為統計任務和空閑任務的優先級。μC/OS-II任務就緒表如圖1所示。判斷任務就緒同樣根據OSRdyTb1[]和OSRdyGrp兩個變量來完成:OSR-dyTb1[]按任務優先級分成8組(即每一組8個任務優先級),當任務處于就緒狀態時,對應的位為1,反之則為0;OSRdyTb1口組中任何一位為1時,對應的OSRdyGrp位置1。

圖1 μC/OS-II任務就緒表
使任務進入就緒狀態和脫離就緒狀態,都是通過OSRdyTb1[]和OSRdyGrp這兩個變量來查找OSMapTb1[]表完成的:
①進入就緒狀態。

任務優先級的低3位用于確定任務在總就緒表OSRdyTb1[]中的位置。緊接著前面的3位用于確定是OSRclyTb1[]數組的第幾個元素,兩個變量都置1。
②脫離就緒狀態。

代碼將就緒任務表數組OSRdyTb1[]中相應元素的相應位清0,而只有當這一組中的所有任務都為脫離就緒態時,OSRdyGrp變量才會為0。
1.2 高優先級任務的查找
從任務就緒表中查找最高優先級任務,即從OSRdyTb1[]變量中找到最低為1的位是第幾位(對應的就是最高優先級任務)。μC/OS-II采用查表的方式來找出處于就緒態的最高優先級任務,μC/OS-II中有一張256個單元的數據表OSUnMapTb1[],表中按一定規律有128個O,64個1,32個2,16個3,8個4,4個5,2個6,1個7,還有1個0,共256字節。
任務調度
加入交流群
掃碼添加小助手
加入工程師交流群
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- μC/OS-II的多任務系統實時性解析 2次下載
- 基于ARM Cortex-M3的μCOS-II任務調度硬件指令實現 270次下載
- μC/OS-II 在Nios上的移植
- 基于μC/OS-II的無線監控終端設計與實現
- μC/OS-II在PC機上移植的設計與實現
- 基于μC/OS-II的無線調度策略分析與實現
- 輕型PPP協議在μC/OS-II操作系統中的實現
- EPA 通信協議在μC/OS-II嵌入式系統中的設計與實現
- 在μC OS-II中實現同優先級調度的方法
- μC OS-II 中擴充任務數的方法
- μC OS-II 在Nios 上的移植1
- μC OS-II 任務棧處理的一種改進方法
- μC/OS-II 任務調度機制的改進
- μC/OS-II 中擴充任務數的方法
- 基于μC/OS-II的嵌入式音頻系統設計
- 基于μC/OS-II和TMS320LF2407A實現集散式數據采集系統的設計 2.9k次閱讀
- 基于實時嵌入式操作系統mC/OS-II實現GPRS終端系統的設計 3.2k次閱讀
- 基于AT91R40008芯片和μC/OS-II實現EPA交換機的設計 4.6k次閱讀
- 基于MC9S12DP256芯片和μC/OS-II實現CCP軟件的設計 3.9k次閱讀
- 基于嵌入式工控模塊和μC/OS-II實現車載狀態監控系統的設計 2.8k次閱讀
- 基于μC/OS-II操作系統實現在P89V51RD2微控制器上運行 1.1k次閱讀
- 基于μC/OS-II操作系統在SPCE061A上的移植優化研研究 1.1k次閱讀
- 基于μC/OS-II嵌入式系統開發中低功耗系統的設計 3.7k次閱讀
- 51單片機對μC/OS-II實時操作系統的移植 3k次閱讀
- LPC213X通過μC/OS-II的多種移植方案 974次閱讀
- 淺論uC/OS-II 在電動車電池管理系統中的應用研究 1.8k次閱讀
- μC/OS-II系統基礎嵌入式開發編程教程 5.1k次閱讀
- LPC2119簡介 μC/OS-II在LPC2119上的移植 3.3k次閱讀
- 車輛調度系統的整體設計 UC/OS-II的內核調度機理 1.6k次閱讀
- 用AndesCore N1033A-S處理器實現μC/OS-II的移植 4.7k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關型降壓3.5A單節鋰電池充電管理電路技術手冊
- 0.74 MB | 1次下載 | 免費
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產品手冊
- 0.43 MB | 1次下載 | 免費
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創新應用
- 3.11 MB | 43次下載 | 免費
- 3RV1126B系列開發板產品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發板 四核異構、3路千兆網,賦能多元化工業場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯網、人工智能項目案例及入門學習資源包
- 10.55 MB | 8次下載 | 免費
- 7冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論