優先權繼承協定 (PIP) 是即時作業系統中用於解決優先權反轉問題的同步機制。優先權反轉發生在高優先權任務被持有共享資源的低優先權任務阻塞,導致系統延遲和潛在錯過截止時間。
優先權反轉問題
考慮三個不同優先權任務:高 (H)、中 (M)、低 (L)。若任務 L 取得任務 H 需要的資源,而任務 M 正在執行,任務 H 必須等待 M 和 L 都完成。這違反基於優先權的排程原則。
優先權反轉問題 高 (H) 中 (M) 低 (L) 等待 L 持有的資源 執行中 (搶佔 L) 持有資源,被 M 阻塞 優先權反轉
優先權繼承協定如何運作
PIP 透過暫時將最高優先權被阻塞任務的優先權繼承給持有資源的任務,解決優先權反轉。這確保資源持有者能快速完成並釋放資源。
PIP 演算法步驟
- 當高優先權任務請求低優先權任務持有的資源時,低優先權任務繼承高優先權任務的優先權。
- 資源持有任務以繼承的較高優先權執行,直到釋放資源。
- 資源釋放後,任務優先權恢復原本等級。
- 高優先權任務現在可取得資源並繼續。
PIP 實際範例
優先權繼承協定時間軸 時間: 0 1 2 3 4 5 高: 阻塞 執行中 中: 執行中 (一般情況) 低: 持有 R 繼承優先權 圖例: R = 資源 無 PIP: H 等待 M 和 L 有 PIP: L 繼承 H 優先權
與其他技術比較
| 技術 | 方法 | 優點 | 缺點 |
|---|---|---|---|
| 優先權繼承 | 動態優先權提升 | 簡單、無死結 | 可能發生鏈式阻塞 |
| 優先權上限 | 固定上限優先權 | 防止死結 | 可能造成不必要阻塞 |
| 二進位號誌 | 僅互斥 | 實作簡單 | 易死結 |
PIP 優點
- 簡單性:易實作、額外開銷極小
- 透明性:任務不知情優先權變更
- 效率:不阻塞無關任務
- 可移植性:跨不同硬體平台運作
實際應用
PIP 廣泛用於任務關鍵系統:
- 航空太空系統:航空電子飛控軟體
- 醫療裝置:病患監測和生命維繫系統
- 工業自動化:機器人控製和製造流程
- 汽車:引擎控制單元和安全系統
VxWorks、QNX、FreeRTOS 等即時作業系統將 PIP 作為標準同步機制實作。
限制
- 鏈式阻塞:多重繼承鏈仍可能造成延遲
- 不可預測時機:繼承持續時間取決於臨界區長度
- 無死結預防:不內在防止循環等待條件
結論
優先權繼承協定透過暫時提升持有資源任務的優先權,有效解決即時系統中的優先權反轉。其簡潔性和效率使其成為嵌入式和即時應用中可預測任務執行至關重要的首選方案。
