chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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 甚至可以搶占正在運行的任務(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ù)并讓紅色運行。紅色任務(wù)嘗試獲取相同的二進(jìn)制信號量,但由于低優(yōu)先級綠色任務(wù)持有它而被阻止。

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

pYYBAGKyyLGAOwYtAAI9Uvf_ze8142.png

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

重要的是要意識到這里涉及的三項任務(wù)基本上是無能為力的。他們沒有人可以做任何事情來避免倒置,至少在沒有 RTOS 的支持的情況下是這樣。幸運的是,這種支持在許多 RTOS 中以具有優(yōu)先級繼承的互斥鎖的形式提供?;コ饬浚ɑコ獾目s寫)是一種用于保護(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ōu)先級繼承并不能真正治愈優(yōu)先級倒置,它只是在某些情況下將其影響最小化。硬實時應(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11250

    瀏覽量

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

    關(guān)注

    14

    文章

    10176

    瀏覽量

    91241
  • RTOS
    +關(guān)注

    關(guān)注

    25

    文章

    865

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    請問C0系列單片機中斷優(yōu)先級只有4嗎?

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

    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

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

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