伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

pYYBAGKyyLGAOwYtAAI9Uvf_ze8142.png

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

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

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

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

審核編輯:郭婷

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

    關(guān)注

    68

    文章

    11316

    瀏覽量

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

    關(guān)注

    14

    文章

    10334

    瀏覽量

    91706
  • RTOS
    +關(guān)注

    關(guān)注

    25

    文章

    868

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    LTC4420:雙輸入微功耗電源路徑優(yōu)先級(jí)器的全方位解析

    LTC4420:雙輸入微功耗電源路徑優(yōu)先級(jí)器的全方位解析 在電子設(shè)備的電源管理領(lǐng)域,確保在各種電源狀況下為關(guān)鍵電路提供穩(wěn)定的電力供應(yīng)至關(guān)重要。LTC4420 作為一款雙輸入單片式 PowerPath
    的頭像 發(fā)表于 02-09 10:20 ?182次閱讀

    CS32L010系列能否支持串口的發(fā)送和接收中斷單獨(dú)配置?不同中斷的中斷優(yōu)先級(jí)如何設(shè)置?

    1、串口能否配置成阻塞式發(fā)送和中斷式接收。 2、不同中斷的中斷優(yōu)先級(jí)如何設(shè)置?我在開啟中斷函數(shù)代碼中看到說中斷優(yōu)先級(jí)配置需要先調(diào)用NVIC_PriorityGroupConfig()函數(shù),但此函數(shù)無(wú)定義,全局搜索不到。
    發(fā)表于 12-10 18:46

    搶占優(yōu)先級(jí)和子優(yōu)先級(jí)

    關(guān)于搶占優(yōu)先級(jí)和子優(yōu)先級(jí): 1)具有高搶占式優(yōu)先級(jí)的中斷可以在具有低搶占式優(yōu)先級(jí)的中斷服務(wù)
    發(fā)表于 12-03 07:11

    電能質(zhì)量在線監(jiān)測(cè)裝置的暫態(tài)數(shù)據(jù)補(bǔ)傳的優(yōu)先級(jí)如何在實(shí)際應(yīng)用中進(jìn)行動(dòng)態(tài)調(diào)整?

    電能質(zhì)量在線監(jiān)測(cè)裝置的暫態(tài)數(shù)據(jù)補(bǔ)傳優(yōu)先級(jí)在實(shí)際應(yīng)用中通過 事件驅(qū)動(dòng)、主站指令、資源狀態(tài)感知和動(dòng)態(tài)策略調(diào)整 等多層機(jī)制實(shí)現(xiàn)靈活調(diào)控,確保關(guān)鍵數(shù)據(jù)的實(shí)時(shí)性與可靠性。以下是具體實(shí)現(xiàn)方式和典型場(chǎng)景的動(dòng)態(tài)調(diào)整
    的頭像 發(fā)表于 11-06 14:10 ?376次閱讀

    電能質(zhì)量在線監(jiān)測(cè)裝置的暫態(tài)數(shù)據(jù)補(bǔ)傳的優(yōu)先級(jí)是怎樣的?

    電能質(zhì)量在線監(jiān)測(cè)裝置的暫態(tài)數(shù)據(jù)補(bǔ)傳優(yōu)先級(jí)設(shè)計(jì)遵循 事件驅(qū)動(dòng)、主站指令優(yōu)先、資源動(dòng)態(tài)分配 的原則,結(jié)合行業(yè)標(biāo)準(zhǔn)和設(shè)備機(jī)制,形成以下多層級(jí)優(yōu)先級(jí)體系: 一、最高優(yōu)先級(jí):緊急事件驅(qū)動(dòng)補(bǔ)傳 1
    的頭像 發(fā)表于 11-06 14:02 ?394次閱讀

    FreeRTOS任務(wù)調(diào)度優(yōu)先級(jí)問題

    都有容錯(cuò),但是心里沒底,想向大家了解一下實(shí)際工作中有沒有遇到到類似的問題,如果有又是怎么解決的呢? 另外有前輩可以分享一下任務(wù)的優(yōu)先級(jí)在實(shí)際項(xiàng)目中該基于什么原則來(lái)劃分呢?
    發(fā)表于 11-06 02:18

    優(yōu)先級(jí)線程無(wú)法調(diào)度怎么解決?

    1,設(shè)置了3,5,6,8幾個(gè)優(yōu)先級(jí),設(shè)備在現(xiàn)場(chǎng)正常運(yùn)行了一年多后,顯示、前端、后端這3個(gè)低優(yōu)先級(jí)線程異常了,表現(xiàn)為屏幕不動(dòng),前端采集數(shù)據(jù)沒有變化等,其他高優(yōu)先級(jí)的線程如通訊,按鍵都能正常運(yùn)行,通訊有喂狗操作,停止通訊,會(huì)看門狗復(fù)
    發(fā)表于 09-25 07:33

    什么是RTOS中的優(yōu)先級(jí)反轉(zhuǎn)

    當(dāng)一個(gè)高優(yōu)先級(jí)任務(wù)正在等待一個(gè)資源,但一個(gè)低優(yōu)先級(jí)任務(wù)正在持有它,一個(gè)中等優(yōu)先級(jí)任務(wù)繼續(xù)在中間運(yùn)行時(shí),就會(huì)發(fā)生優(yōu)先級(jí)反轉(zhuǎn)——阻止低優(yōu)先級(jí)任務(wù)
    的頭像 發(fā)表于 09-09 14:50 ?1161次閱讀

    求助,關(guān)于MS51設(shè)置中斷優(yōu)先級(jí)問題求解

    我確實(shí)發(fā)現(xiàn)在庫(kù)代碼和 TRM 之間設(shè)置中斷優(yōu)先級(jí)有一些差異,如下圖所示。 Could you check what's wrong with me?
    發(fā)表于 08-25 07:01

    揭秘!基于RT-Thread探究“優(yōu)先級(jí)反轉(zhuǎn)”下的任務(wù)調(diào)度究竟是什么樣的?| 技術(shù)集結(jié)

    本文將基于RT-Thread,結(jié)合RT-Trace調(diào)試器細(xì)化到實(shí)際任務(wù)調(diào)度的粒度,來(lái)調(diào)試并逐步講解“優(yōu)先級(jí)反轉(zhuǎn)”的調(diào)度和運(yùn)行邏輯。如果對(duì)RT-Trace感興趣的可以看這篇文章:國(guó)產(chǎn)嵌入式調(diào)試器之光
    的頭像 發(fā)表于 08-17 10:07 ?3426次閱讀
    揭秘!基于RT-Thread探究“<b class='flag-5'>優(yōu)先級(jí)</b>反轉(zhuǎn)”下的任務(wù)<b class='flag-5'>調(diào)度</b>究竟是什么樣的?| 技術(shù)集結(jié)

    請(qǐng)問STM32的內(nèi)部Flash操作是不是優(yōu)先級(jí)最高?

    STM32的內(nèi)部Flash操作是不是優(yōu)先級(jí)最高?目前在內(nèi)部Flash的單獨(dú)一頁(yè)存儲(chǔ)了數(shù)據(jù),發(fā)現(xiàn)在進(jìn)行頁(yè)擦除的時(shí)候正常工作的定時(shí)器中斷無(wú)法進(jìn)入了
    發(fā)表于 08-13 07:03

    TLe9893怎么調(diào)整外設(shè)的中斷優(yōu)先級(jí)

    你好林工,我該怎么調(diào)整外設(shè)的中斷優(yōu)先級(jí)?是否可以通過工具調(diào)整?默認(rèn)設(shè)置下,是不是Brdv的在中斷優(yōu)先級(jí)高于T20和can?
    發(fā)表于 08-01 06:20

    請(qǐng)問C0系列單片機(jī)中斷優(yōu)先級(jí)只有4級(jí)嗎?

    C0系列單片機(jī)中斷優(yōu)先級(jí)只有4級(jí)?C071在配置的時(shí)候只能配置0-3
    發(fā)表于 07-23 08:00

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

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

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

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