<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1381字,需瀏覽 3分鐘

           ·

          2023-05-14 17:27

          b27a042a580ee045f17343947af24c83.webp

          點(diǎn)擊上方藍(lán)色字體,關(guān)注我們

          感興趣的朋友,請(qǐng)到CSDN查看詳解FreeRTOS系列專欄文章


          詳解FreeRTOS:嵌入式軟件系統(tǒng)架構(gòu)(理論篇—1)文章中,講解到輪詢系統(tǒng)架構(gòu)、前后臺(tái)系統(tǒng)架構(gòu)和多任務(wù)系統(tǒng)架構(gòu)的特點(diǎn)和區(qū)別。從本篇文章開始講一講嵌入式多任務(wù)系統(tǒng)架構(gòu)的理論知識(shí)。


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


          9a0c8e1aebd7e7a5c94f21e1c82ff100.webp


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


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


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


          0e4d8a77bb2f98a5f8de3b90c21e423a.webp


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


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


          2cafef81172afbafa34952c9068e5a04.webp


          因?yàn)椴煌蝿?wù)的運(yùn)行路徑不同,在某一時(shí)刻有些任務(wù)可能需要等待一些資源,這時(shí)可以通過某種方案,使當(dāng)前任務(wù)讓出處理器,從而避免因?yàn)槿蝿?wù)等待資源而長期占有處理器而使其他任務(wù)無法運(yùn)行。這樣多任務(wù)機(jī)制可以使處理器的利用率得到提高,并提高了系統(tǒng)的處理能力。


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


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


          5828e62f9503cf526177c1a7b9c8c51a.webp往期推薦



          0cbc9c2edfe6c7b919cbf87946c298d6.webp點(diǎn)擊閱讀原文,更精彩~
          瀏覽 52
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产豆花在线 | 骚婷婷在线观看 | 一级黄色A∨ | 国产又粗又长又大在线免费观看 | 操逼com |