資料介紹
μ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實現集散式數據采集系統的設計 2344次閱讀
- 基于實時嵌入式操作系統mC/OS-II實現GPRS終端系統的設計 2408次閱讀
- 基于AT91R40008芯片和μC/OS-II實現EPA交換機的設計 3754次閱讀
- 基于MC9S12DP256芯片和μC/OS-II實現CCP軟件的設計 2882次閱讀
- 基于嵌入式工控模塊和μC/OS-II實現車載狀態監控系統的設計 2064次閱讀
- 基于μC/OS-II操作系統實現在P89V51RD2微控制器上運行 810次閱讀
- 基于μC/OS-II操作系統在SPCE061A上的移植優化研研究 850次閱讀
- 基于μC/OS-II嵌入式系統開發中低功耗系統的設計 3138次閱讀
- 51單片機對μC/OS-II實時操作系統的移植 2507次閱讀
- LPC213X通過μC/OS-II的多種移植方案 677次閱讀
- 淺論uC/OS-II 在電動車電池管理系統中的應用研究 1437次閱讀
- μC/OS-II系統基礎嵌入式開發編程教程 4547次閱讀
- LPC2119簡介 μC/OS-II在LPC2119上的移植 2847次閱讀
- 車輛調度系統的整體設計 UC/OS-II的內核調度機理 1207次閱讀
- 用AndesCore N1033A-S處理器實現μC/OS-II的移植 4140次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論