<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式實時操作系統優先級搶占式調度機制解析

麥克泰技術 ? 來源:麥克泰技術 ? 2024-04-05 05:22 ? 次閱讀

電電俠 想學習RTOS,奈何不知從何下手,唉 實時操作系統?我熟啊,且聽我慢慢給你道來

科科君

實時操作系統(RTOS)廣泛應用于消費電子、娛樂產品、家用電器、工業設備、醫療儀器、軍事武器和科研設備中,在航空航天控制系統、汽車工業、銀行金融、機器人系統、安全和電信以及交通控制等安全攸關領域發揮著關鍵作用。

電電俠 應用領域真廣啊,我還想知道學習RTOS的關鍵是什么 那必須是調度,調度調度驚起一番。。。

科科君

RTOS首先至少需支持優先級搶占式調度,任務間同步與通信應能避免優先級反轉, 并提供高精度定時器。RTOS往往運行在資源受限的設備,調度資源確定性與調度時間確 定性是重要需求,進而可以保證在事先確定的時間內使用系統資源。

電電俠 有點明白了,科科大大快快繼續講 接下來我們將探討基于優先級的搶占式調度

科科君

在我們的例子中,當一個優先級更高的任務進入就緒狀態時,當前的任務會停止運行。這意味著一個任務可以處在三個狀態之一:運行中(執行中)、就緒和掛起??梢杂萌缦聽顟B轉換圖描述任務在搶占式調度中的行為。

b4458ea8-ed82-11ee-a297-92fbcf53809c.png

電電俠 那什么時候任務處于運行狀態?什么時候處于就緒狀態? 只有在被RTOS調度時一個任務才能進入運行狀態,在此之前它必須處在就緒狀態,在基于優先級的系統中它還必須處在就緒隊列的第一位。

科科君

任務掛起或者被搶占時會離開運行狀態。當任務結束執行,或者因為某種原因無法繼續時,任務會掛起,比如在本例中任務需要進行特定時長的延時。當任務進入掛起狀態時會釋放處理器的使用權,從而允許其他任務運行(見下圖)。釋放可以是任務自行觸發的,也可以是 RTOS強制的。一個運行中的任務可以用兩種方式自行釋放處理器:其一,任務完成了必需的操作退出;其二,任務因為內部產生的信號(內部事件)放棄對處理器的控制。

下圖列舉了強制釋放處理器的原因

科科君

b460865e-ed82-11ee-a297-92fbcf53809c.png

電電俠 有沒有任務狀態模型可供參考呢 下圖即為任務狀態的一般模型,詳細過程如下所述

科科君

b4839a36-ed82-11ee-a297-92fbcf53809c.png

當搶占發生時,任務即使沒有完成也會被迫放棄處理器,此時任務并沒有被掛起,而是會返回就緒隊列。任務在隊列中的位置是由優先級決定的,它會在隊列中等待到下一次被調度。當條件滿足時任務會從掛起狀態進入就緒狀態,比如完成一個事件、經過特定的時間或者某種事件和時間的組合。不同的任務有不同的掛起狀態。

簡單示例

如果需要,任務模型可以進一步擴充并顯示任務的創建和刪除。在基于優先級的系統中,任務的就緒和再調度會變得很復雜,下圖是一個簡單的例子,圖中展示了優先級對任務在就緒和掛起隊列中位置的影響,以及當任務就緒時就緒隊列是如何變化的。

b4973488-ed82-11ee-a297-92fbcf53809c.png

電電俠 學習到了,不過還有一個小問題,可否解釋下“再調度(reschedule/rescheduling)”? 再調度是決定接下來要運行的任務的過程,也可翻譯為重新調度。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    18538

    瀏覽量

    223694
  • 嵌入式
    +關注

    關注

    5002

    文章

    18414

    瀏覽量

    291540
  • 操作系統
    +關注

    關注

    37

    文章

    6363

    瀏覽量

    122123
  • RTOS
    +關注

    關注

    20

    文章

    780

    瀏覽量

    118889

原文標題:嵌入式實時操作系統——基于優先級的搶占式調度

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于優先級調度嵌入式實時操作系統內核詳解(上)

    今日分享參加瑞薩RA MCU創意氛圍賽的選手項目——基于優先級的RTOS內核。本項目為基于優先級調度嵌入式實時
    發表于 09-04 14:12 ?385次閱讀

    嵌入式實時操作系統uCos

    嵌入式實時操作系統uCos:嵌入式實時操作系統μCOS -II一、RTOS基礎 
    發表于 12-10 14:35

    嵌入式領域linux作為實時操作系統的缺點

    `linux以自由和開發源碼贏得了許多工程師的青睞,現在許多嵌入式產品使用的是linux系統,然而linux內核作為實時操作系統有非常,明顯的幾個缺點1.任務
    發表于 01-06 13:31

    幾種嵌入式實時操作系統分析與比較

    實時操作系統采用基于優先級搶占調度與時間片輪轉調度
    發表于 06-11 09:14

    嵌入式操作系統FreeRTOS 的原理與實現

    的使用權后才能獲得運行,這樣可提高CPU的運行效率。2、FreeRTOS操作系統的原理與實現2.1任務調度機制的實現任務調度機制嵌入式實時
    發表于 06-23 08:00

    實時操作系統概念

    對很多嵌入式系統來說,一個設計良好的實時操作系統可以讓開發工程師把握系統執行任何任務或響應任何關鍵事件的時間,滿足
    發表于 07-19 06:18

    【案例分享】FreeRTOS的嵌入式實時操作系統的實現

    FreeRTOS是一個源碼公開的免費的嵌入式實時操作系統,通過研究其內核可以更好地理解嵌入式操作系統的實現原理.本文主要闡述FreeRTOS
    發表于 07-23 04:30

    嵌入式實時系統中的優先級反轉是什么?

    的可搶占調度策略。系統為每一個任務分配一個優先權,調度程序保證當前運行的進程是
    發表于 09-17 07:16

    適合STM32的三大嵌入式操作系統

    是針對實時系統的要求設計實現的,所以只支持基于固定優先級搶占調度;
    發表于 06-29 11:32

    嵌入式系統概論

    操作系統:多道批處理系統,分時操作系統,實時操作系統。5.實時
    發表于 10-27 08:09

    VxWorks操作系統具有哪些優點

    的控制采用優先級搶占和輪轉調度機制,充分保證了可靠的實時性?!た煽啃愿?,從而保證了用戶工作環境的穩定?!ぜ?/div>
    發表于 12-22 08:12

    嵌入式實時操作系統VxWorks內核調度機制研究

    嵌入式實時操作系統VxWorks內核調度機制研究
    發表于 03-29 12:26 ?13次下載

    高可信賴實時操作系統的防危調度機制

    為增強實時操作系統的防危性,在分析現有調度機制的基礎上,探討了最大關鍵度優先調度算法,該算法是一種混合型的
    發表于 05-16 11:52 ?10次下載

    嵌入式實時操作系統VxWorks內核調度機制分析

    本文簡要介紹了多任務內核,重點分析了嵌入式實時操作系統VxWorks的內核調度機制——優先級搶占
    發表于 12-11 16:15 ?14次下載

    基于優先級調度嵌入式實時操作系統內核詳解(下)

    基于優先級調度嵌入式實時操作系統內核詳解(下)
    的頭像 發表于 09-06 12:46 ?543次閱讀
    基于<b class='flag-5'>優先級</b><b class='flag-5'>調度</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>內核詳解(下)
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>