精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

什么是優(yōu)先級反轉

CHANBAEK ? 來源:硬件工程師技術干貨 ? 作者:硬件工程師技術干 ? 2023-04-24 13:01 ? 次閱讀

1、什么是優(yōu)先級反轉

假設現(xiàn)在有三個任務TaskA(優(yōu)先級高)、TaskB(優(yōu)先級中)、TaskC(優(yōu)先級低),一個信號量(Semaphore),此信號量用于任務之間爭奪某個資源。 在某一時刻,高優(yōu)先級的TaskA和中優(yōu)先級的TaskB由于其它原因掛起了,低優(yōu)先級的TaskC獲得信號量,正在獨享這個資源,這時候高優(yōu)先級TaskA就緒了,搶占了TaskC,高優(yōu)先級的TaskA運行一段時間后也想得到這個信號量,但是信號量被低優(yōu)先級的TaskC占用,無奈TaskA只能掛起等待,低優(yōu)先級的TaskC獲得CPU, 這時候TaskB就緒了,再次搶占TaskC,但是這個TaskB并不想使用這個資源,沒有辦法,直到TaskB掛起后,才能運行TaskC,TaskC釋放信號量之后高優(yōu)先級的TaskA才能執(zhí)行。 看起來高優(yōu)先級的TaskA還不如低優(yōu)先級的TaskC優(yōu)先級高,這就叫做優(yōu)先級反轉,TaskB的存在加劇了優(yōu)先級反轉。 這種優(yōu)先級反轉問題在實時操作系統(tǒng)中帶來的影響不容小覷,因此我們在編寫代碼時要避免出現(xiàn)優(yōu)先級翻轉影響實時性。

2、使用互斥信號量解決優(yōu)先級翻轉問題。

RTOS中可以使用互斥信號量解決優(yōu)先級問題,如FreeRTOSucos等。 互斥信號量原理:如果一個互斥信號量被一個低優(yōu)先級的TaskC獲得,此時如果高優(yōu)先級的TaskA也想獲得這個信號量,由于信號量被TaskC占用,只能掛起,掛起TaskA的同時RTOS會把TaskC的優(yōu)先級調整為和TaskA一樣,讓低優(yōu)先級的TaskC繼續(xù)執(zhí)行,直至TaskC釋放信號量,TaskC優(yōu)先級恢復之前的優(yōu)先級, 這時TaskA獲得信號量。 提升TaskC優(yōu)先級是為了讓TaskC盡快地執(zhí)行,執(zhí)行完趕緊釋放信號量,減少高優(yōu)先級任務的掛起時間。

//FreeRTOS
SemaphoreHandle_t xSemaphoreCreateMutex(void)


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

    關注

    22

    文章

    809

    瀏覽量

    119453
  • 實時操作系統(tǒng)

    關注

    1

    文章

    196

    瀏覽量

    30744
  • 信號量
    +關注

    關注

    0

    文章

    53

    瀏覽量

    8315
  • 優(yōu)先級反轉

    關注

    0

    文章

    2

    瀏覽量

    1117
  • 互斥信號量
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2018
收藏 人收藏

    評論

    相關推薦

    RTOS應用中的優(yōu)先級反轉問題

    在嵌入式系統(tǒng)中,如果使用基于優(yōu)先級調度算法的RTOS,系統(tǒng)中可能發(fā)生優(yōu)先級反轉現(xiàn)象。優(yōu)先級反轉用來描述系統(tǒng)中高
    發(fā)表于 12-14 11:00 ?1178次閱讀

    為什么UCOSII優(yōu)先級反轉與理想值不符?

    [START_STK_SIZE-1],START_TASK_PRIO); OSStart();}void high_task(void *pdata)//任務一,高優(yōu)先級任務{ u8 err; while(1
    發(fā)表于 07-31 21:23

    嵌入式實時系統(tǒng)中的優(yōu)先級反轉是什么?

    使具有中優(yōu)先級的進程先于高優(yōu)先級的進程執(zhí)行,導致系統(tǒng)的崩潰。這就是所謂的優(yōu)先級反轉(PriorityInversion)。
    發(fā)表于 09-17 07:16

    如何理解任務優(yōu)先級反轉

    嵌入式實時操作系統(tǒng)USCOSii中第四章 的 圖4-15中有描述 關于任務優(yōu)先級反轉示意圖:有疑問就是為什么 在C運行時候 A B都在等待,卻B獲得CPU的運行權限?
    發(fā)表于 11-04 03:57

    請問只有訪問共享資源時才會考慮優(yōu)先級反轉嗎?

    是不是當共享資源時就要考慮優(yōu)先級反轉的問題,任務同步不用考慮?互斥信號量是不是一般用在訪問共享資源的時候(普通信號量不能解決優(yōu)先級反轉問題),普通信號量是不是一般用于任務同步?
    發(fā)表于 05-25 10:12

    干貨 | RTOS應用中的優(yōu)先級反轉問題

    在嵌入式系統(tǒng)中,如果使用基于優(yōu)先級調度算法的RTOS,系統(tǒng)中可能發(fā)生優(yōu)先級反轉現(xiàn)象。優(yōu)先級反轉用來描述系統(tǒng)中高
    發(fā)表于 03-09 15:00

    嵌入式系統(tǒng)優(yōu)先級反轉問題,怎么解決這些問題?

    嵌入式系統(tǒng)優(yōu)先級反轉問題,怎么解決這些問題?
    發(fā)表于 04-26 06:33

    嵌入式實時系統(tǒng)中的優(yōu)先級反轉問題怎么解決?

    嵌入式實時系統(tǒng)中的優(yōu)先級反轉問題怎么解決?
    發(fā)表于 04-27 06:44

    RT-Thread v4.0.4版本中解決的使用互斥量導致優(yōu)先級反轉的問題探討

    的車出來時,將停車場大門打開,下一輛車才可以進入。(引用自 RTT 文檔)二、互斥量解決了什么問題2.1 線程優(yōu)先級反轉問題?假設當前有三條線程,分別是 A、B、C,它們的優(yōu)先級關系是 A &
    發(fā)表于 08-10 14:44

    實時控制系統(tǒng)中優(yōu)先級反轉問題的解決方法

    以實時操作系統(tǒng)μC/OS-II為例,分析了產(chǎn)生優(yōu)先級反轉的原因,提出了解決該問題的2種方法,即互斥信號量(Mutex)和實現(xiàn)時間片輪番調度法。在保證共享資源互斥訪問的前提下,將優(yōu)先
    發(fā)表于 10-15 09:29 ?13次下載

    嵌入式系統(tǒng)優(yōu)先級反轉問題的分析

    摘要: 本文介紹了嵌入式系統(tǒng)任務調度優(yōu)先級反轉的一個實例。通過實例的討論對嵌入式系統(tǒng)優(yōu)先級反轉有一個更深入的了解,有助于在編程中避免此類問題的發(fā)生。
    發(fā)表于 03-11 12:18 ?934次閱讀
    嵌入式系統(tǒng)<b class='flag-5'>優(yōu)先級</b><b class='flag-5'>反轉</b>問題的分析

    UCOS擴展例程-UCOSIII優(yōu)先級反轉

    UCOS擴展例程- UCOSIII優(yōu)先級反轉
    發(fā)表于 12-14 17:24 ?13次下載

    關于嵌入式系統(tǒng)優(yōu)先級反轉的原因及解決方法探討

    的任務。但在實際開發(fā)中,由于任務間資源共享,信號量及中斷的引入,往往會出現(xiàn)高優(yōu)先級任務被低優(yōu)先級任務長時間阻塞或阻塞一段不確定時間的現(xiàn)象,即所謂優(yōu)先級反轉(Priority Inver
    發(fā)表于 11-01 16:13 ?5339次閱讀
    關于嵌入式系統(tǒng)<b class='flag-5'>優(yōu)先級</b><b class='flag-5'>反轉</b>的原因及解決方法探討

    嵌入式系統(tǒng)中優(yōu)先級反轉的產(chǎn)生原因及2種解決方案

    ,反而使具有中優(yōu)先級的進程先于高優(yōu)先級的進程執(zhí)行,導致系統(tǒng)的崩潰。這就是所謂的優(yōu)先級反轉(Priority Inversion)。
    發(fā)表于 03-13 09:11 ?3907次閱讀
    嵌入式系統(tǒng)中<b class='flag-5'>優(yōu)先級</b><b class='flag-5'>反轉</b>的產(chǎn)生原因及2種解決方案

    uC/OS-II學習筆記——優(yōu)先級反轉優(yōu)先級繼承機制

    優(yōu)先級反轉,是指某同步資源被較低優(yōu)先級的進程/線程所擁有,較高優(yōu)先級的進程/線程競爭該同步資源未獲得該資源,而使得較高優(yōu)先級進程/線程反而推
    發(fā)表于 02-09 10:33 ?2次下載
    uC/OS-II學習筆記——<b class='flag-5'>優(yōu)先級</b><b class='flag-5'>反轉</b>與<b class='flag-5'>優(yōu)先級</b>繼承機制