一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

具有固定優(yōu)先級調(diào)度程序RTOS的優(yōu)先級倒置

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

掃碼添加小助手

加入工程師交流群

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

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

在下面的時間線圖中,使用 Tracealyzer 捕獲,我們有一個低優(yōu)先級任務(wù)(綠色)正在執(zhí)行。它需要一個二進(jìn)制信號量來保護(hù)某些臨界區(qū)并繼續(xù)在臨界區(qū)內(nèi)執(zhí)行代碼。當(dāng)高優(yōu)先級任務(wù)(紅色)進(jìn)入就緒狀態(tài)時,RTOS 搶占綠色任務(wù)并讓紅色運(yùn)行。紅色任務(wù)嘗試獲取相同的二進(jìn)制信號量,但由于低優(yōu)先級綠色任務(wù)持有它而被阻止。

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

pYYBAGKyyLGAOwYtAAI9Uvf_ze8142.png

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

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

優(yōu)先級繼承并不能真正治愈優(yōu)先級倒置,它只是在某些情況下將其影響最小化。硬實(shí)時應(yīng)用程序仍應(yīng)仔細(xì)設(shè)計,以便一開始就不會發(fā)生優(yōu)先級反轉(zhuǎn)。

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

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11083

    瀏覽量

    217183
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9797

    瀏覽量

    88042
  • RTOS
    +關(guān)注

    關(guān)注

    24

    文章

    851

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    ADL5308可以通過軟件和硬件配置的參數(shù),配置的優(yōu)先級是什么?

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

    CyU3PDebugPrint的最高優(yōu)先級和最低優(yōu)先級是什么?

    [i]CyU3PDebugPrint的最高優(yōu)先級和最低優(yōu)先級是什么?
    發(fā)表于 05-13 08:22

    TPS2124 具有無縫切換功能的 2.8V 至 22V 優(yōu)先功率多路復(fù)用器數(shù)據(jù)手冊

    TPS2124 器件是一款雙輸入、單輸出 (DISO) 功率多路復(fù)用器 (MUX),非常適合具有多個電源的各種系統(tǒng)。該設(shè)備將自動檢測、選擇并在可用輸入之間無縫轉(zhuǎn)換。 可以自動將優(yōu)先級分配給最高
    的頭像 發(fā)表于 05-09 10:42 ?280次閱讀
    TPS2124 <b class='flag-5'>具有</b>無縫切換功能的 2.8V 至 22V <b class='flag-5'>優(yōu)先</b>功率多路復(fù)用器數(shù)據(jù)手冊

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

    導(dǎo)語: 在復(fù)雜多變的汽車、工業(yè)控制等領(lǐng)域中,數(shù)據(jù)傳輸?shù)臅r效性和確定性至關(guān)重要。在TAS或CQF等調(diào)度整形機(jī)制中,將不同優(yōu)先級業(yè)務(wù)映射到不同隊列中,使高優(yōu)先級業(yè)務(wù)在發(fā)送時不會受到低優(yōu)先級
    的頭像 發(fā)表于 04-23 15:31 ?250次閱讀
    TSN幀搶占測試:為數(shù)據(jù)傳輸打造“綠色通道”

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

    , ENABLE); TIM_Cmd(TIM2, ENABLE); } 明日預(yù)告:RTOS任務(wù)調(diào)度原理與實(shí)現(xiàn)(含優(yōu)先級反轉(zhuǎn)解決方案)
    發(fā)表于 03-21 10:18

    配電柜—斷電危機(jī)?配電柜故障排查優(yōu)先級指南

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

    深入Linux進(jìn)程管理:提升效率與穩(wěn)定性的關(guān)鍵方法

    3.1Linux進(jìn)程調(diào)度與多任務(wù) 3.2進(jìn)程優(yōu)先級 3.3相對優(yōu)先級 3.4nice級別與權(quán)限 3.5進(jìn)程優(yōu)先級調(diào)整 1.1進(jìn)程的組成部分 1.2進(jìn)程的環(huán)境 1.3進(jìn)程的產(chǎn)生 1.4
    的頭像 發(fā)表于 11-22 11:05 ?789次閱讀
    深入Linux進(jìn)程管理:提升效率與穩(wěn)定性的關(guān)鍵方法

    技術(shù)干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運(yùn)算符與優(yōu)先級

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

    瑞芯微RK3399開發(fā)板Android7.1修改網(wǎng)絡(luò)優(yōu)先級方法,觸覺智能SBC3968開發(fā)板演示

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

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

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

    使用CH32V103C8TC設(shè)置中斷優(yōu)先級分組時,編譯報錯的原因?

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

    CH32V103 使用中斷優(yōu)先級分組0時報錯

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

    車載以太網(wǎng)交換機(jī)入門基本功(4)—優(yōu)先級設(shè)計與VLAN測試

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

    在汽車區(qū)域模塊中使用理想二極管的優(yōu)先級電源多路復(fù)用器

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

    freertos中斷優(yōu)先級在哪設(shè)置

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