<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>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 詳解FreeRTOS:嵌入式多任務(wù)系統的多任務(wù)機制(理論篇—2)

詳解FreeRTOS:嵌入式多任務(wù)系統的多任務(wù)機制(理論篇—2)

發(fā)布人:美男子玩編程 時(shí)間:2023-05-16 來(lái)源:工程師 發(fā)布文章

在詳解FreeRTOS:嵌入式軟件系統架構(理論篇—1)文章中,講解到輪詢(xún)系統架構、前后臺系統架構和多任務(wù)系統架構的特點(diǎn)和區別。從本篇文章開(kāi)始講一講嵌入式多任務(wù)系統架構的理論知識。

在單處理器(嵌入式MCU)的計算機系統中,在某一具體時(shí)刻處理器只能運行一個(gè)任務(wù),但是可以通過(guò)將處理器運行時(shí)間分成小的時(shí)間段,多個(gè)任務(wù)按照一定的原則分享這些時(shí)間段的方法,輪流加載執行各個(gè)任務(wù),從而從宏觀(guān)上看,有多個(gè)任務(wù)在處理器上同時(shí)執行,這就是單處理器系統上的多任務(wù)機制的原理,如下圖所示:

圖片


任務(wù)A和任務(wù)B按照等長(cháng)時(shí)間輪流占用處理器,在單處理器上造成多個(gè)任務(wù)同時(shí)運行的假象。

這里先聊一聊多任務(wù)系統架構的分割時(shí)間段。

將處理器運行時(shí)間分成小的時(shí)間段指明了把處理器時(shí)間以多大的頻率分割成固定長(cháng)度的時(shí)間片段,也叫做多任務(wù)系統架構的時(shí)鐘節拍。作為多任務(wù)系統運行的時(shí)間尺度,時(shí)鐘節拍是通過(guò)特定的硬件定時(shí)器產(chǎn)生的。硬件定時(shí)器會(huì )產(chǎn)生周期的中斷,在相應的中斷處理函數中,內核代碼得以運行,從而進(jìn)行任務(wù)調度和定時(shí)器時(shí)間處理等內核工作。


圖片


硬件定時(shí)器中斷的時(shí)間間隔取決于不同的內核設計,一般是毫秒級的。時(shí)鐘節拍越快,內核函數介入系統運行的幾率就越大,時(shí)鐘節拍中斷響應次數越多,內核占用的處理器時(shí)間越長(cháng)。相反,如果時(shí)鐘節拍太慢,則導致任務(wù)的切換間隔時(shí)間過(guò)長(cháng),進(jìn)而影響到系統對事件的響應效果。

舉個(gè)例子,如下圖所示,硬件定時(shí)器按照固定的時(shí)間間隔產(chǎn)生中斷,然后在時(shí)鐘節拍中斷ISR中(圖中以T標記)處理內核的工作。T0~T1這段時(shí)間是內核占用的時(shí)間(時(shí)鐘節拍處理程序),T1~T2這段時(shí)間是任務(wù)占用的時(shí)間。而T0~T2則是一次時(shí)鐘節拍的全部時(shí)間,可以看出,任務(wù)1的本輪執行占用了3個(gè)時(shí)鐘節拍。


圖片


因為不同任務(wù)的運行路徑不同,在某一時(shí)刻有些任務(wù)可能需要等待一些資源,這時(shí)可以通過(guò)某種方案,使當前任務(wù)讓出處理器,從而避免因為任務(wù)等待資源而長(cháng)期占有處理器而使其他任務(wù)無(wú)法運行。這樣多任務(wù)機制可以使處理器的利用率得到提高,并提高了系統的處理能力。

在多任務(wù)操作系統內核中必須提供解決并發(fā)任務(wù)的機制。通用操作系統一般以“進(jìn)程”、“線(xiàn)程"等為單位來(lái)管理用戶(hù)任務(wù)。

但在很多嵌入式操作系統中,并沒(méi)有區分進(jìn)程和線(xiàn)程,只是把整個(gè)操作系統當作一個(gè)大的運行實(shí)體,其中運行著(zhù)很多任務(wù)。任務(wù)通常作為調度的基本單位。


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: FreeRTOS 嵌入式

相關(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>