<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 實(shí)時(shí)操作系統軟件調度器/硬件調度器的設計與實(shí)現

實(shí)時(shí)操作系統軟件調度器/硬件調度器的設計與實(shí)現

作者: 時(shí)間:2012-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏
引言

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

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

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

設計與實(shí)現

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

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

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

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

設計實(shí)現

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

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

1.模型實(shí)現

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

2.協(xié)模型實(shí)現

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

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

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>