18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

3天內不再提示

I2C子系統(tǒng)優(yōu)先級翻轉與優(yōu)先級繼承

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-22 15:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

優(yōu)先級翻轉與優(yōu)先級繼承

優(yōu)先級翻轉在可剝奪內核中是非常常見的,例子如下(H:High、M:Middle、L:Low)

圖片

任務 H 和任務 M 處于掛起狀態(tài),等待某一事件的發(fā)生,任務 L 正在運行。

某一時刻任務 L 想要訪問共享資源,在此之前它必須先獲得對應該資源的信號量。

任務 L 獲得信號量并開始使用該共享資源。

由于任務 H 優(yōu)先級高,它等待的事件發(fā)生后便剝奪了任務 L 的 CPU 使用權。

任務 H 開始運行。

任務 H 運行過程中也要使用任務 L 正在使用著的資源,由于該資源的信號量還被任務L 占用著,任務 H 只能進入掛起狀態(tài),等待任務 L
釋放該信號量。

任務 L 繼續(xù)運行。

由于任務 M 的優(yōu)先級高于任務 L,當任務 M 等待的事件發(fā)生后,任務 M 剝奪了任務L 的 CPU 使用權。

任務 M 處理該處理的事。

任務 M 執(zhí)行完畢后,將 CPU 使用權歸還給任務 L。

任務 L 繼續(xù)運行。

最終任務 L 完成所有的工作并釋放了信號量,到此為止,由于實時內核知道有個高優(yōu)先級的任務在等待這個信號量,故內核做任務切換。

任務 H 得到該信號量并接著運行。

在這種情況下,任務 H 的優(yōu)先級實際上降到了任務 L 的優(yōu)先級水平。因為任務 H 要一直等待直到任務 L 釋放其占用的那個共享資源。由于任務 M剝奪了任務 L 的 CPU 使用權,使得任務 H 的情況更加惡化,這樣就相當于任務 M 的優(yōu)先級高于任務 H,導致優(yōu)先級翻轉。

Linux 用 rt_mutex 來解決該問題,rt_mutex 是帶優(yōu)先級繼承的互斥鎖。

當一個 rt_mutex 正在被一個低優(yōu)先級的任務使用,而此時有個高優(yōu)先級的任務也嘗試獲取這個 rt_mutex的話就會被阻塞。不過這個高優(yōu)先級的任務會將低優(yōu)先級任務的優(yōu)先級提升到與自己相同的優(yōu)先級,這就是優(yōu)先級繼承。優(yōu)先級繼承盡可能的降低了高優(yōu)先級任務處于阻塞態(tài)的時間,并且將已經出現(xiàn)的“優(yōu)先級翻轉”的影響降到最低。

優(yōu)先級繼承并不能完全的消除優(yōu)先級翻轉,它只是盡可能的降低優(yōu)先級翻轉帶來的影響。

rt_mutex 不能用于中斷服務函數(shù)中,原因如下:

rt_mutex 有優(yōu)先級繼承的機制,所以只能用在任務中,不能用于中斷服務函數(shù)。

中斷服務函數(shù)中不能因為要等待 rt_mutex 而設置阻塞時間進入阻塞態(tài)。

i2c_transfer 調用 __i2c_transfer 之前,就加了 rt_mutex,保證 I2C 傳輸盡快執(zhí)行。

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

    關注

    4

    文章

    1432

    瀏覽量

    42334
  • 子系統(tǒng)

    關注

    0

    文章

    115

    瀏覽量

    13143
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1543

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式技術中如何定義進程優(yōu)先級

    靜態(tài)優(yōu)先級是所有相關優(yōu)先級的計算的起點,要么繼承自父進程,要么用戶空間自行設定。一旦修改了靜態(tài)優(yōu)先級,那么normal priority和動態(tài)優(yōu)先級
    發(fā)表于 09-18 16:08 ?1856次閱讀
    嵌入式技術中如何定義進程<b class='flag-5'>優(yōu)先級</b>

    基于優(yōu)先級搶占系統(tǒng)的QNX調度算法

    調度算法,是基于優(yōu)先級的。QNX的線程優(yōu)先級,是一個0-255的數(shù)字,數(shù)字越大優(yōu)先級越高。所以,優(yōu)先級0是內核中的idle線程。同時,優(yōu)先級
    發(fā)表于 10-31 09:17 ?1271次閱讀

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

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

    uC/OS-II中優(yōu)先級翻轉問題

    本文著重分析優(yōu)先級翻轉問題的產生和影響,以及在uC/OS-II中的解決方案,在嵌入式系統(tǒng)的應用中,實時性是一個重要的指標,而優(yōu)先級翻轉是影響
    發(fā)表于 01-06 16:53 ?2661次閱讀

    開發(fā)過程中是什么原因導致優(yōu)先級翻轉的?

    最近在開發(fā)過程中,遇到一個問題線程優(yōu)先級翻轉的問題。那什么原因導致優(yōu)先級翻轉呢? 在RTOS開發(fā)中,優(yōu)先級
    的頭像 發(fā)表于 05-28 15:28 ?2873次閱讀
    開發(fā)過程中是什么原因導致<b class='flag-5'>優(yōu)先級</b><b class='flag-5'>翻轉</b>的?

    cortex M內核優(yōu)先級設置

    Cortex M內核中每個中斷都有一個8位的優(yōu)先級設置寄存器這個8位的寄存器可以分為搶占優(yōu)先級和子優(yōu)先級兩個部分(通過設置優(yōu)先級組設置)搶占優(yōu)先級
    發(fā)表于 12-01 11:51 ?4次下載
    cortex M內核<b class='flag-5'>優(yōu)先級</b>設置

    2.FreeRTOS中斷優(yōu)先級和任務優(yōu)先級

    FreeRTOS中斷優(yōu)先級和任務優(yōu)先級架構:Cortex-M3版本:FreeRTOS V9.0.0前言:最開始,我并沒有搞清楚什么是中斷優(yōu)先級和任務優(yōu)先級,但看了部分資料后發(fā)現(xiàn)這兩個并
    發(fā)表于 12-04 20:21 ?9次下載
    <b class='flag-5'>2</b>.FreeRTOS中斷<b class='flag-5'>優(yōu)先級</b>和任務<b class='flag-5'>優(yōu)先級</b>

    STM32F103芯片中斷優(yōu)先級以及FreeRTOS優(yōu)先級設置

    STM32F103只用了4個位來表達優(yōu)先級,因此最多支持16的可編程優(yōu)先級(0~15),15為最低優(yōu)先級
    發(fā)表于 01-25 18:59 ?1次下載
    STM32F103芯片中斷<b class='flag-5'>優(yōu)先級</b>以及FreeRTOS<b class='flag-5'>優(yōu)先級</b>設置

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

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

    中斷優(yōu)先級處理的原則及配置 搶占優(yōu)先級和響應優(yōu)先級的區(qū)別

    首先我們需要知道什么是中斷優(yōu)先級:中斷優(yōu)先級是CPU響應中斷的先后順序
    的頭像 發(fā)表于 05-18 15:10 ?3.1w次閱讀
    中斷<b class='flag-5'>優(yōu)先級</b>處理的原則及配置 搶占<b class='flag-5'>優(yōu)先級</b>和響應<b class='flag-5'>優(yōu)先級</b>的區(qū)別

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

      優(yōu)先級繼承并不能真正治愈優(yōu)先級倒置,它只是在某些情況下將其影響最小化。硬實時應用程序仍應仔細設計,以便一開始就不會發(fā)生優(yōu)先級反轉。
    的頭像 發(fā)表于 06-22 15:45 ?1786次閱讀
    具有固定<b class='flag-5'>優(yōu)先級</b>調度程序RTOS的<b class='flag-5'>優(yōu)先級</b>倒置

    FreeRTOS任務的優(yōu)先級示例

    任務的優(yōu)先級:0~24之間。數(shù)字越大,任務優(yōu)先等級越高。高優(yōu)先級的任務優(yōu)先執(zhí)行。
    的頭像 發(fā)表于 09-15 11:13 ?3539次閱讀

    Free RTOS的優(yōu)先級翻轉

    優(yōu)先級翻轉簡介:就是高優(yōu)先級的任務運行起來的效果好像成了低優(yōu)先級,而低優(yōu)先級比高優(yōu)先級先運行;
    的頭像 發(fā)表于 02-10 15:31 ?2019次閱讀
    Free RTOS的<b class='flag-5'>優(yōu)先級</b><b class='flag-5'>翻轉</b>

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

    ,才能運行TaskC,TaskC釋放信號量之后高優(yōu)先級的TaskA才能執(zhí)行??雌饋砀?b class='flag-5'>優(yōu)先級的TaskA還不如低優(yōu)先級的TaskC優(yōu)先級高,這就叫做優(yōu)
    的頭像 發(fā)表于 04-24 13:01 ?3060次閱讀
    什么是<b class='flag-5'>優(yōu)先級</b>反轉

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

    中斷優(yōu)先級之前,我們需要理解中斷優(yōu)先級的概念。在嵌入式系統(tǒng)中,中斷是硬件或軟件事件,它們可以打斷CPU的當前執(zhí)行流程,讓CPU去處理更緊急的任務。中斷優(yōu)先級用于確定多個中斷請求之間的處
    的頭像 發(fā)表于 09-02 14:17 ?1957次閱讀