日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rtthread学习-防止优先级翻转

發布時間:2024/3/26 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rtthread学习-防止优先级翻转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習視頻網址:
RT-Thread內核入門指南-線程的優先級翻轉問題

學習記錄。

第一次學這門課的時候,是覺得有點迷糊
課上講了ABC三個優先級的線程,A是需要使用C中的互斥量,而互斥量在C中鎖住了,所以A被掛起了,只有C釋放了mutex后A才能就緒,才能被任務調度器調度。在等待過程中,B線程就緒了,而B線程的優先級比C高,按道理,此時B應該需要先運行,運行完成之后才能運行C,C釋放了mutex之后A才能運行,此時就出現了個問題,明明A的優先級比B高,卻是B比A先運行。這就是優先級翻轉。
【整理】什么是優先級反轉+有何危害+如何避免和解決
這篇文章講的很好,然后我就了解了什么是優先級翻轉。

為了阻止這種事情的發生,互斥鎖里面有一種機制,可以繼承上一級的優先級,按照上述例子,即C可以繼承A的優先級
下面是互斥鎖的結構體定義,主要是通過指針owner和變量 original_priority實現的

/*** Mutual exclusion (mutex) structure*/ struct rt_mutex {struct rt_ipc_object parent; /**< inherit from ipc_object */rt_uint16_t value; /**< value of mutex */rt_uint8_t original_priority; /**< priority of last thread hold the mutex */rt_uint8_t hold; /**< numbers of thread hold the mutex */struct rt_thread *owner; /**< current owner of mutex */ };

如何繼承的呢? 在ipc.c中的731行開始

/* change the owner thread priority of mutex */if (thread->current_priority < mutex->owner->current_priority){/* change the owner thread priority */rt_thread_control(mutex->owner,RT_THREAD_CTRL_CHANGE_PRIORITY,&thread->current_priority);}

thread是當前的thread,即當線程A執行到這里的時候,這個thread->thread-A
mutex->owner 是thread-C,因為C還沒處理完

通過rt_thread_control這個函數,實現了把A的優先級賦值給了C

所以當B就緒的時候,因為C的優先級提高了,所以任務調度器會先執行C,再執行A,最后再執行B,防止先B后A導致優先級翻轉。

rt_thread_control這個函數也挺有意思,他會把舊的低優先級的C從任務隊列里面丟掉,給C賦予新的優先級后再把它插入任務隊列里面,具體可以進去看一看,原來RT-Thread里面是這樣干的。
注意if (thread->current_priority < mutex->owner->current_priority)之所以成成立,是因為A的優先級比C高 ,值越小優先級越高,剛好反過來的。所以A優先級的值比C小,所以能成立。

講完了這個視頻課程里面的例子,知道了什么是優先級翻轉之后,視頻課程里面對應的代碼如果是第一次看的話會讓人感覺疑惑。
代碼的設計是這樣的 ,設計了也是ABC三個線程,A線程優先級最高,依次遞減。
代碼里面是想通過B-C直接的互動來演示防止出現優先級翻轉的情況,而A只是作為一個監視者,因為A優先級最高可以一直打印他們的優先級。不用過于糾結A線程,重點是需要看BC之間的互動。

但是因為剛開始課件里面的例子也是ABC,所以很容易讓人混淆。
其實最好應該是在BC之間再添加一個X線程,BXC線程對應課件例子的ABC線程,這樣就不容易讓初學者產生誤解了。

總結

以上是生活随笔為你收集整理的rtthread学习-防止优先级翻转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产aⅴ精品一区二区三区久久 | 亚洲男女一区二区三区 | 99久久亚洲精品日本无码 | 成人羞羞国产免费动态 | 亚洲一区二区三区四区五区六区 | 色噜噜狠狠狠综合曰曰曰 | 在线播放一级片 | 五月婷婷六月激情 | 色噜噜视频 | 性色av一区二区三区免费 | 在线观看麻豆视频 | 在线观看的av网站 | 国产精品久久亚洲 | 欧美成人黑人猛交 | 成片在线观看 | 中文字幕精品视频 | xxxxx色| 综合精品久久 | 青青久操 | 午夜精品成人毛片非洲 | 亚洲精品成 | 又色又爽又黄无遮挡的免费视频 | 欧美激情性做爰免费视频 | 理论片国产 | 国产精品羞羞答答在线观看 | 国产熟妇搡bbbb搡bbbb | 四虎影库在线播放 | 体感预报日剧 | 久久97人妻无码一区二区三区 | 色99在线 | 99er热精品视频 | 亚洲日日干 | 在线观看视频免费 | 国外亚洲成av人片在线观看 | 天天操天天干天天干 | 欧美日韩一区二区区 | 热久久中文字幕 | 毛片大全 | 大香蕉精品一区 | 中文字幕一二三 | 国产黄色片视频 | 三级av免费看 | 国产精品久久久久久精 | 免费激情网站 | 欧美性狂猛xxxxxbbbbb | 伊人网在线视频 | 午夜寂寞剧场 | 亚洲国产成人精品女人久久 | 成人午夜免费网站 | 91视频h | 99青青草| 456亚洲影院 | 黄色wwwww | 日本精品三级 | 成年人看的黄色片 | 精品天堂 | 涩涩视频网址 | 久久香蕉精品视频 | 中文字幕日韩亚洲 | 人人妻人人澡人人爽精品 | 男人的天堂成人 | 日韩成人av一区 | 91麻豆国产视频 | 欧美精品v国产精品v日韩精品 | 国产在线999| 天天综合网天天综合 | 丁香婷婷激情五月 | 国产精品成人一区二区三区 | 丝袜一级片| 久久伊人影院 | 亚洲网站免费看 | 国产精品一区二区三区在线播放 | 森泽佳奈在线播放 | 色无极在线 | 禁久久精品乱码 | 国产精品日本 | 超碰2020| av5566| 成人wwxx免费观看 | 精品视频在线一区二区 | av一区二区三| 中文字幕午夜 | 免费三级大片 | 日韩欧美视频免费观看 | 三级精品视频 | 午夜性刺激免费视频 | 久操免费在线 | 免费欧美一级视频 | 免费在线视频一区二区 | 精品视频久久 | 乱人伦xxxx国语对白 | 丰满熟女一区二区三区 | 黑人精品无码一区二区三区 | 一本大道久久a久久综合婷婷 | 亚洲福利视频网 | 国产精品国产av | 特级精品毛片免费观看 | 污片网站在线观看 | 欧美乱妇日本无乱码特黄大片 |