RT Thread學習記錄10 執行緒的優先順序翻轉

2021-10-07 03:28:45 字數 589 閱讀 6078

1.優先順序翻轉

使用訊號量會導致的另乙個潛在問題是執行緒優先順序翻轉問題。所謂執行緒優先順序翻轉,即當乙個高優先順序執行緒試圖通過某種互斥ipc物件機制訪問共享資源時,如果該ipc物件已被低優先順序的執行緒所持有,而這個低優先順序執行緒在執行過程中可能又被其它一些  中等優先順序的執行緒搶占,因此造成高優先順序執行緒被許多具有較低優先順序的執行緒阻塞的情況。優先順序翻轉會造成高優先順序執行緒的實時性得不到保證。

2. 優先順序繼承

在rt-thread中,通過互斥量的優先順序繼承演算法,可以有效的解決優先順序翻轉問題。

優先順序繼承是指提高某個占有某種共享資源的低優先順序執行緒的優先順序,使之與所有等待該資源的執行緒中優先順序最高的那個執行緒的優先順序相等,從而得到更快的執行然後釋放共享資源,而 當這個低優先順序執行緒釋放該資源時,優先順序重新回到初始設定值。

繼承優先順序的執行緒避免了系統共享資源被任何中間優先順序的執行緒搶占。

3. 優先順序翻轉示例

在priority_inversion.c**中。

優先順序翻轉現象提醒程式設計人員對共享資源進行互斥訪問的**段應盡量短。

RT Thread學習記錄2 執行緒的建立

在rt thread中,與小任務對應的程式實體就叫做 執行緒 或任務 rt thread就是乙個能對這些小 執行緒 進行管理和排程的多 執行緒 作業系統。執行緒是實現任務的載體,它是rt thread中最基本的排程單位,它描述了乙個任務執行的執行環境,也描述 了這個任務所處的優先等級。rt thre...

RT Thread學習記錄12 郵箱的使用

1.郵箱的工作機制 rt thread作業系統的郵箱用於執行緒間通訊 郵箱具有資料互動功能,但互斥量 訊號量等ipc沒有資料互動功能 特點是開銷比較低,效率較高。郵箱中的每一封郵件只能容納 固定的4位元組內容 針對32位處理系統,指標的大小即為4個位元組,所以一封郵件恰好能夠容納乙個指標 執行緒或中...

Rtthread學習筆記

rt sem init rt sem create rt sem take 等待 訊號量 rt sem release 放出 訊號量 rt sem detach 訊號量脫離2.互斥量 與訊號量不同的是,互斥量只能由持有執行緒釋放,其他執行緒不可釋放 取得互斥量的執行緒與高優先度的優先順序相同 rt ...