在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

具有固定優先級調度程序RTOS的優先級倒置

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Johan Kraft ? 2022-06-22 15:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

具有固定優先級調度程序的 RTOS 的核心思想是高優先級任務應該在低優先級任務之前調度。如有必要,RTOS 甚至可以搶占正在運行的任務,迫使它讓 CPU 執行更高優先級的任務。然而,作為開發人員,您必須注意可能導致較高優先級任務必須等待較低優先級任務的編程缺陷——這種情況稱為優先級倒置。

優先級反轉可以與互斥體、消息隊列或其他類型的同步對象一起發生。描述問題的最佳方式可能是通過一個示例來逐步說明。

在下面的時間線圖中,使用 Tracealyzer 捕獲,我們有一個低優先級任務(綠色)正在執行。它需要一個二進制信號量來保護某些臨界區并繼續在臨界區內執行代碼。當高優先級任務(紅色)進入就緒狀態時,RTOS 搶占綠色任務并讓紅色運行。紅色任務嘗試獲取相同的二進制信號量,但由于低優先級綠色任務持有它而被阻止。

到目前為止,一切都很好——這是預期的行為。一般來說,綠色任務現在會運行并快速釋放信號量,此時它再次被搶占,紅色任務可以獲取信號量并繼續。然而,這一次發生了反轉。出于某種原因,可能是定時等待已過期,中等優先級(橙色)任務已進入就緒狀態并被允許在綠色任務之前執行。由于橙色任務不知道有爭議的信號量,它很高興地運行完成。只有這樣,綠色任務才會最終運行,以便它可以釋放信號量并將執行權交給紅色的高優先級任務。

pYYBAGKyyLGAOwYtAAI9Uvf_ze8142.png

因此,高優先級任務被阻塞,必須等待不確定的時間,而中等優先級任務運行完成。這就是工作中的優先級倒置。

重要的是要意識到這里涉及的三項任務基本上是無能為力的。他們沒有人可以做任何事情來避免倒置,至少在沒有 RTOS 的支持的情況下是這樣。幸運的是,這種支持在許多 RTOS 中以具有優先級繼承的互斥鎖的形式提供。互斥量(互斥的縮寫)是一種用于保護共享資源的信號量。優先級繼承意味著如果一個高優先級的任務在試圖獲得一個低優先級任務當前持有的互斥鎖時阻塞,那么持有該互斥鎖的任務的優先級會暫時提高到被阻塞任務的優先級。在我們的場景中,當紅色任務被阻塞時,綠色任務將被提升為紅色優先級,從而有效地阻止了橙色任務的運行。

優先級繼承并不能真正治愈優先級倒置,它只是在某些情況下將其影響最小化。硬實時應用程序仍應仔細設計,以便一開始就不會發生優先級反轉。

通常,盡可能避免阻塞共享資源。例如,如果您的任務將數據寫入消息隊列(可能已滿),您可以改為使用足夠大但未滿的隊列,作為額外的預防措施,以非阻塞方式寫入并檢查任何失敗寫入的返回值。而不是使用分散在代碼中的多個關鍵部分(共享互斥鎖),您可以創建一個“服務器”任務,該任務執行對資源的所有直接操作,并使用消息隊列從“客戶端”任務中獲取請求,在非-阻塞方式。服務器可以通過請求中指定的其他消息隊列發送任何回復,這些消息隊列由客戶端任務擁有。

審核編輯:郭婷

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

    關注

    68

    文章

    11063

    瀏覽量

    216490
  • 服務器
    +關注

    關注

    13

    文章

    9753

    瀏覽量

    87568
  • RTOS
    +關注

    關注

    24

    文章

    845

    瀏覽量

    120942
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ADL5308可以通過軟件和硬件配置的參數,配置的優先級是什么?

    你好,麻煩問一下ADL5308可以通過軟件和硬件配置的參數,配置的優先級是什么?有沒有更詳細的寄存器配置手冊,截距配置的步進是多少?
    發表于 06-10 06:39

    CyU3PDebugPrint的最高優先級和最低優先級是什么?

    [i]CyU3PDebugPrint的最高優先級和最低優先級是什么?
    發表于 05-13 08:22

    TSN幀搶占測試:為數據傳輸打造“綠色通道”

    導語: 在復雜多變的汽車、工業控制等領域中,數據傳輸的時效性和確定性至關重要。在TAS或CQF等調度整形機制中,將不同優先級業務映射到不同隊列中,使高優先級業務在發送時不會受到低優先級
    的頭像 發表于 04-23 15:31 ?194次閱讀
    TSN幀搶占測試:為數據傳輸打造“綠色通道”

    一天一個嵌入式面試知識(1:中斷處理機制詳解)

    , ENABLE); TIM_Cmd(TIM2, ENABLE); } 明日預告:RTOS任務調度原理與實現(含優先級反轉解決方案)
    發表于 03-21 10:18

    配電柜—斷電危機?配電柜故障排查優先級指南

    在排查配電柜故障過程中,合理安排排查優先級至關重要。下面聊一下如何科學合理安排配電柜故障排查優先級順序。
    的頭像 發表于 03-06 18:55 ?365次閱讀
    配電柜—斷電危機?配電柜故障排查<b class='flag-5'>優先級</b>指南

    深入Linux進程管理:提升效率與穩定性的關鍵方法

    3.1Linux進程調度與多任務 3.2進程優先級 3.3相對優先級 3.4nice級別與權限 3.5進程優先級調整 1.1進程的組成部分 1.2進程的環境 1.3進程的產生 1.4
    的頭像 發表于 11-22 11:05 ?736次閱讀
    深入Linux進程管理:提升效率與穩定性的關鍵方法

    技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運算符與優先級

    在C語言的學習過程中,運算符的使用是不可忽視的重要環節。本文將繼續深入探討C語言中的運算符,重點介紹位運算符、賦值運算符及其優先級。掌握這些運算符的用法,將幫助你在編程過程中實現更加高效的代碼操作
    的頭像 發表于 10-13 08:09 ?596次閱讀
    技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運算符與<b class='flag-5'>優先級</b>

    瑞芯微RK3399開發板Android7.1修改網絡優先級方法,觸覺智能SBC3968開發板演示

    本文介紹Android7.1修改網絡優先級方法,基于觸覺智能SBC3968主板,搭載瑞芯微RK3399芯片,底板具備千兆網口、USB、HDMI、TYPE-C、音頻等接口。可適用于工業主機、物聯網設備、醫療健康設備、廣告機、互動自助終端、教學實驗平臺、顯示控制、車載安防和人臉識別等多個領域。
    的頭像 發表于 10-09 11:37 ?580次閱讀
    瑞芯微RK3399開發板Android7.1修改網絡<b class='flag-5'>優先級</b>方法,觸覺智能SBC3968開發板演示

    PCM9211的默認模式下,ADC和RXIN2( 光纖輸入)是自動識別的嗎,并且光纖具有輸入優先級

    咨詢一下,PCM9211的默認模式下,ADC和RXIN2( 光纖輸入)是自動識別的嗎,并且光纖具有輸入優先級
    發表于 09-29 06:44

    使用CH32V103C8TC設置中斷優先級分組時,編譯報錯的原因?

    使用CH32V103C8TC設置中斷優先級分組時,設置為NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);編譯報錯 而使用NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); 卻不會報錯 這是什么原因呢??
    發表于 09-27 06:03

    CH32V103 使用中斷優先級分組0時報錯

    使用CH32V103C8TC設置中斷優先級分組時,設置為NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);而使用NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);卻不會報錯
    發表于 09-23 13:52

    車載以太網交換機入門基本功(4)—優先級設計與VLAN測試

    VLAN通過報文Tag、交換機端口屬性、交換機端口過濾功能得以實現,并通過優先級和隊列實現轉發的有效調度。為了驗證交換機芯片的功能實現,需要參考OPEN聯盟的TC11交換機芯片測試規范,包括通用測試、地址解析、VLAN等9個方面,此外,實時更進規范修改方案并與讀者分享。
    的頭像 發表于 09-06 14:45 ?890次閱讀
    車載以太網交換機入門基本功(4)—<b class='flag-5'>優先級</b>設計與VLAN測試

    在汽車區域模塊中使用理想二極管的優先級電源多路復用器

    電子發燒友網站提供《在汽車區域模塊中使用理想二極管的優先級電源多路復用器.pdf》資料免費下載
    發表于 09-05 11:08 ?0次下載
    在汽車區域模塊中使用理想二極管的<b class='flag-5'>優先級</b>電源多路復用器

    freertos中斷優先級在哪設置

    FreeRTOS是一個流行的實時操作系統,它廣泛應用于嵌入式系統開發。在FreeRTOS中,中斷優先級是一個重要的概念,因為它決定了中斷處理的順序和響應時間。 1. 理解中斷優先級 在討論如何設置
    的頭像 發表于 09-02 14:17 ?1495次閱讀

    通過I2C PWM IC控制伺服,可以為伺服控制進行高優先級中斷嗎?

    () 大約需要 100 毫秒才能完成請求。 我怎樣才能避免那里的事情。 我可以為伺服控制進行高優先級中斷嗎? 使用 Arduino IDE。
    發表于 07-12 06:20
    主站蜘蛛池模板: 国产精品嫩草影院一二三区入口 | 欧美性网 | 最新色视频 | 色伊人久久 | 亚洲精品免费视频 | 亚洲伊人久久大香线蕉结合 | 亚洲免费在线观看 | 日韩免费高清一级毛片在线 | 丁香午夜 | 奇米影视婷婷 | 四虎影院在线免费 | 日韩三级中文字幕 | 婷婷色香五月激情综合2020 | 五月天激情丁香 | 天天爽夜夜操 | 日本免费小视频 | 国产美女作爱全过程免费视频 | 四虎最新免费网址 | 亚洲人成网站999久久久综合 | 琪琪午夜免费影院在线观看 | 精品人人 | 中文在线 | 中文 | 免费一级毛片清高播放 | 奇米久草| 就去色播 | 99午夜| 日本黄色短片 | 两性色午夜视频免费国产 | 手机精品在线 | 四虎必出精品亚洲高清 | 亚洲一区免费视频 | 狠狠干精品 | 美女网站一区二区三区 | 天堂网在线看 | 久久9热| 久久久久999 | 亚洲偷图色综合色就色 | 久久久精品免费国产四虎 | 天堂成人一区二区三区 | 在线观看高清免费播放 | 黄视频网站免费看 |