當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]實(shí)時(shí)操作系統(tǒng)(RTOS),在整個(gè)嵌入式系統(tǒng)中扮演著十分重要的角色,它就像人的大腦支配人的行為一樣,控制著整個(gè)系統(tǒng)的工作與運(yùn)轉(zhuǎn),一個(gè)RTOS性能的優(yōu)劣將對(duì)整個(gè)系統(tǒng)的性能產(chǎn)生直接的影響.衡量一個(gè)RTOS的好壞有多種標(biāo)準(zhǔn),實(shí)時(shí)性則為一個(gè)關(guān)鍵指標(biāo),并且隨著實(shí)時(shí)操作系統(tǒng)實(shí)際運(yùn)用的加深及拓廣,對(duì)RTOS提出了更加嚴(yán)格的要求.在系統(tǒng)限定時(shí)間內(nèi)響應(yīng)處理外部事件已經(jīng)成為了對(duì)RTOS的一個(gè)基本要求.

引言

實(shí)時(shí)操作系統(tǒng)(RTOS),在整個(gè)嵌入式系統(tǒng)中扮演著十分重要的角色,它就像人的大腦支配人的行為一樣,控制著整個(gè)系統(tǒng)的工作與運(yùn)轉(zhuǎn),一個(gè)RTOS性能的優(yōu)劣將對(duì)整個(gè)系統(tǒng)的性能產(chǎn)生直接的影響。衡量一個(gè)RTOS的好壞有多種標(biāo)準(zhǔn),實(shí)時(shí)性則為一個(gè)關(guān)鍵指標(biāo),并且隨著實(shí)時(shí)操作系統(tǒng)實(shí)際運(yùn)用的加深及拓廣,對(duì)RTOS提出了更加嚴(yán)格的要求。在系統(tǒng)限定時(shí)間內(nèi)響應(yīng)處理外部事件已經(jīng)成為了對(duì)RTOS的一個(gè)基本要求。

任務(wù)調(diào)度,是RTOS的核心所在,任務(wù)間的通信、外部事件的處理以及中斷處理等都離不開任務(wù)調(diào)度的參與。而且隨著系統(tǒng)功能的完善與增強(qiáng),任務(wù)間的關(guān)系變得更加復(fù)雜,需要與更多的外圍設(shè)備打交道,這就需要任務(wù)調(diào)度不斷地參與其中,從而導(dǎo)致系統(tǒng)性能的急劇下降、對(duì)事件實(shí)時(shí)響應(yīng)能力的降低。任務(wù)調(diào)度則成為了RTOS性能的瓶頸,提高RTOS的整體性能則首先應(yīng)當(dāng)從提高任務(wù)調(diào)度的性能著手。將任務(wù)調(diào)度硬件化,無疑可以提升任務(wù)調(diào)度的性能,從而提高整個(gè)RTOS的性能。本文討論了三種任務(wù)調(diào)度的實(shí)現(xiàn)方法,分別為:軟件調(diào)度器模型、協(xié)處理器調(diào)度模型、硬件調(diào)度器模型,并在文章最后對(duì)其性能進(jìn)行了測試。測試結(jié)果表明,硬件調(diào)度器模型具有良好的性能,相對(duì)協(xié)處理器方式需要更少的硬件實(shí)現(xiàn)邏輯單元。

系統(tǒng)功能的增強(qiáng),使得任務(wù)間的調(diào)度以及任務(wù)之間的通信變得更加復(fù)雜,必將導(dǎo)致系統(tǒng)性能急劇降低。而且,隨著系統(tǒng)不斷完善,在實(shí)時(shí)嵌入式系統(tǒng)中,計(jì)算結(jié)果的正確性已經(jīng)不再是整個(gè)系統(tǒng)追求的目標(biāo),而實(shí)時(shí)性則成為整個(gè)系統(tǒng)面對(duì)的首要難題。如果將RTOS的調(diào)度功能由原來的純軟件實(shí)現(xiàn)轉(zhuǎn)變?yōu)橛布?shí)現(xiàn),將極大的提高實(shí)時(shí)系統(tǒng)的實(shí)時(shí)性以及處理能力。

設(shè)計(jì)與實(shí)現(xiàn)

邏輯時(shí)序關(guān)系

圖1是操作系統(tǒng)以及應(yīng)用程序都由單CPU運(yùn)行的邏輯時(shí)序圖。由時(shí)序圖可以看出,在單CPU運(yùn)行RTOS以及應(yīng)用程序條件下,CPU不斷地在RTOS內(nèi)核以及應(yīng)用程序之間切換。即使在沒有外部中斷的情況下,CPU的運(yùn)行都將在確定的時(shí)刻執(zhí)行任務(wù)調(diào)度程序(由系統(tǒng)時(shí)鐘觸發(fā)),例如t2、t4、t6等時(shí)刻。每次的任務(wù)調(diào)度都至少執(zhí)行以下四步操作:(1) 當(dāng)前任務(wù)上下文內(nèi)容的保存;(2) 操作系統(tǒng)內(nèi)核態(tài)的恢復(fù);(3) 操作系統(tǒng)內(nèi)核態(tài)信息保存;(4) 新任務(wù)上下文內(nèi)容恢復(fù)。即便調(diào)度前后,例如t1與t3時(shí)刻,CPU執(zhí)行相同的任務(wù),也同樣要執(zhí)行上述的四步操作。很明顯,這樣的操作浪費(fèi)了大量的CPU處理時(shí)間,執(zhí)行了大量的無謂的內(nèi)容保存工作。

Ti為第i個(gè)任務(wù)運(yùn)行時(shí)間; CS+OS為任務(wù)上下文轉(zhuǎn)換時(shí)間以及RTOS所占用時(shí)間;INT中斷服務(wù)程序時(shí)間;C ST 為當(dāng)前任務(wù)上下文內(nèi)容保存時(shí)間; CR RTOS 為操作系統(tǒng)上下文恢復(fù)時(shí)間;RTOS為操作系統(tǒng)運(yùn)行內(nèi)核程序以及調(diào)度時(shí)間; CS RTOS 操作系統(tǒng)上下文保存時(shí)間; CR T 調(diào)度后新任務(wù)上下文恢復(fù)時(shí)間。

圖2為協(xié)處理器運(yùn)行調(diào)度程序,而應(yīng)用程序由主CPU運(yùn)行,這樣調(diào)度程序和應(yīng)用程序在時(shí)間上為并行執(zhí)行。當(dāng)主CPU需要進(jìn)行任務(wù)調(diào)度時(shí),將會(huì)引發(fā)中斷,通知協(xié)處理器。在完成中斷處理以及任務(wù)上下文保存與恢復(fù)之后,主CPU 繼續(xù)執(zhí)行新的任務(wù),這樣去除了RTOS進(jìn)出內(nèi)核態(tài)的上下文保存時(shí)間,無疑可以提升RTOS的整體性能。

設(shè)計(jì)實(shí)現(xiàn)

在上文中,已經(jīng)提到,將RTOS的調(diào)度以三種方式進(jìn)行實(shí)現(xiàn),分別為純軟件實(shí)現(xiàn)、協(xié)處理器實(shí)現(xiàn)以及純硬件實(shí)現(xiàn)。

為了實(shí)現(xiàn)這三種調(diào)度方法,采用了Xilinx公司的Virtex-II Pro系列的 XC2VP30 芯片,軟件平臺(tái)為EDK(embeded development kit)功能以及時(shí)序仿真采用Modelsim軟件。CPU采用EDK提供的MicroBlaze處理器模型,并集成64K的SRAM以及1M的FLASH建立一個(gè)最小的核心系統(tǒng),作為該調(diào)度算法的核心硬件平臺(tái)。MicroBlaze為32位的哈佛結(jié)構(gòu)的處理器,采用RISC指令集,為便于計(jì)算,設(shè)置其工作頻率為50MHz。

1.軟件調(diào)度模型實(shí)現(xiàn)

軟件調(diào)度模型系統(tǒng)由以下幾部分組成:1)MicroBlaze處理器;2)RAM存儲(chǔ)區(qū);3)片上總線;4)中斷以及時(shí)間控制模塊;5)監(jiān)控模塊;6)UART接口。MicroBlaze處理器用于運(yùn)行RTOS以及應(yīng)用程序。應(yīng)用程序的執(zhí)行具有周期性的特點(diǎn),而外部的中斷則將打斷這種周期性具有突發(fā)性的特點(diǎn)。MicroBlaze需實(shí)時(shí)處理兩種不同類型的事件,這與實(shí)際應(yīng)用情況相符合。監(jiān)控模塊是在EDK中一個(gè)特定模型的實(shí)現(xiàn),用于監(jiān)控外部單元與主CPU的通信過程(以中斷方式或者輪詢方式)。監(jiān)控模塊具有兩個(gè)特定功能,獲取當(dāng)前系統(tǒng)時(shí)間以及向CPU發(fā)送中斷信號(hào)。最后,將實(shí)測的調(diào)度時(shí)間數(shù)據(jù)通過UART接口發(fā)送至上位機(jī),進(jìn)行分析處理,以驗(yàn)證模型的性能。

2.協(xié)處理器調(diào)度模型實(shí)現(xiàn)

協(xié)處理器調(diào)度模型在軟件調(diào)度模型基礎(chǔ)上增加協(xié)處理器模塊。該模型中,將RTOS的任務(wù)調(diào)度模塊從主CPU中分離出來,并將該部分代碼完全運(yùn)行于協(xié)處理器中。協(xié)處理器需要完成任務(wù)狀態(tài)以及任務(wù)堆棧管理,并通過DMA方式與主內(nèi)存之間通信,實(shí)現(xiàn)同主CPU中任務(wù)各種狀態(tài)以及信息的同步。

在協(xié)處理器調(diào)度模式下,當(dāng)系統(tǒng)時(shí)鐘產(chǎn)生中斷時(shí),不需要進(jìn)行任務(wù)調(diào)度的工作,只有當(dāng)主CPU需要進(jìn)行任務(wù)調(diào)度時(shí),通知協(xié)處理器等待掛起的任務(wù)號(hào)以及其上下文內(nèi)容,協(xié)處理器將該任務(wù)完整保存之后,將處于最高優(yōu)先級(jí)的就緒態(tài)任務(wù)及其上下文內(nèi)容送入主CPU,完成任務(wù)調(diào)度。

由協(xié)處理器模式下調(diào)度的整個(gè)流程可以看出,任務(wù)的調(diào)度完全由主CPU發(fā)起,任務(wù)的調(diào)度只是發(fā)生在需要調(diào)度的時(shí)刻,同時(shí)由于協(xié)處理器參與了調(diào)度的工作,主CPU不需要進(jìn)入內(nèi)核態(tài)來實(shí)現(xiàn)任務(wù)調(diào)度,這極大的提高了主CPU的有效工作效率。

3.硬件調(diào)度器模型實(shí)現(xiàn)

硬件調(diào)度器模型將調(diào)度的功能完全用專用的硬件IP核實(shí)現(xiàn)。見圖3,整個(gè)系統(tǒng)包含圖3中去除協(xié)處理器的所有部分。調(diào)度模塊具有與協(xié)處理器相同的功能,但是調(diào)度模塊完全由時(shí)序以及邏輯模塊組成,不具有協(xié)處理器智能化的特性,其開發(fā)難度也相對(duì)較大。但是正是由于調(diào)度模塊采用的時(shí)序以及邏輯模塊組合的結(jié)構(gòu),其實(shí)現(xiàn)無需程序控制,故調(diào)度速度要高于協(xié)處理器調(diào)度模式。

整個(gè)調(diào)度模塊由三部分組成,見圖4:調(diào)度核、任務(wù)管理、通信接口。通信接口將CPU傳送過來以及調(diào)度核的指令進(jìn)行翻譯轉(zhuǎn)換,實(shí)現(xiàn)CPU與調(diào)度核之間的通信。調(diào)度核控制任務(wù)管理,將等待掛起的任務(wù)以及最高就緒態(tài)的任務(wù)號(hào)發(fā)送給任務(wù)管理器,同時(shí)與CPU交互信息,從CPU獲取系統(tǒng)時(shí)間等各種有用信息。任務(wù)管理則負(fù)責(zé)各種任務(wù)狀態(tài)的切換,將調(diào)度核發(fā)送過來的等待掛起的任務(wù)置入等待隊(duì)列,而將最高優(yōu)先級(jí)的任務(wù)標(biāo)志為運(yùn)行態(tài),交由調(diào)度核并發(fā)送給CPU。


性能測試及結(jié)論

為了驗(yàn)證三種調(diào)度模型的性能,采用了如下的測試方法。應(yīng)用程序由10個(gè)相同功能的任務(wù)組成,任務(wù)的序號(hào)分別為1到10,每個(gè)任務(wù)運(yùn)行確定時(shí)間之后,掛起自身而運(yùn)行任務(wù)號(hào)加1的任務(wù)。異步中斷通過外部按鍵人為觸發(fā),一個(gè)始終處于掛起態(tài)的任務(wù)用于接收按鍵消息,并處理。按鍵消息處理之后,任務(wù)將自身掛起。圖5為主機(jī)通過串口獲取的任務(wù)切換信息,并通過matlab繪制的圖形。從圖可以看出,三種調(diào)度器性能由低到高分別為軟件調(diào)度模型、協(xié)處理器調(diào)度模型、硬件調(diào)度模型。


結(jié)語

本文介紹了三種RTOS的調(diào)度器實(shí)現(xiàn)模型,軟件調(diào)度模型為當(dāng)前最常用的也最穩(wěn)定的調(diào)度模型,其實(shí)現(xiàn)簡單,且硬件成本低;協(xié)處理器調(diào)度模型具有較高的性能,但是由于采用協(xié)處理器的支持,無疑增加了硬件成本,RTOS的調(diào)度由協(xié)處理器完成,減輕了主CPU的負(fù)擔(dān),但是協(xié)處理器的調(diào)度過程實(shí)際上也由軟件實(shí)現(xiàn),其整體的調(diào)度速度不是很高,其性能提升 只是在減小主CPU的調(diào)度次數(shù)以及避免進(jìn)入內(nèi)核態(tài)上;硬件調(diào)度模型具有最高的效率,雖然模塊開發(fā)調(diào)試復(fù) 雜繁瑣,但是與協(xié)處理器調(diào)度模式相比,占用更少的硬件資源,而且效率高于協(xié)處理器方式,必將極大地提高系統(tǒng)性能。綜上所述,三種RTOS各具有自身特點(diǎn),在具體的實(shí)現(xiàn)過程中,需要考慮系統(tǒng)的特性折中選擇實(shí)現(xiàn)方式。與當(dāng)前流行的調(diào)度模式相比,硬件調(diào)度模型具有更高的性能,必將成為今后RTOS發(fā)展的一個(gè)方向。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉