同步中的優先順序繼承協議 (PIP)


在一個支援多工的作業系統下,許多程序可以在單個CPU上同時執行。同步策略用於協調對共享資源的訪問。然而,優先順序反轉是指高優先順序程序被持有共享資源的低優先順序程序阻塞的情況,這可能是由同步引起的。本文將解釋優先順序繼承協議 (PIP),這是一種用於解決優先順序反轉問題的同步方法。

優先順序繼承協議 (PIP) 是一種用於解決優先順序反轉問題的同步方法。PIP 將持有共享資源的任務的優先順序暫時提升到所有等待該資源的任務中最高的優先順序。這種優先順序繼承使得高優先順序程序能夠訪問共享資源,而不會被低優先順序任務阻塞。PIP 的重要性在於它能夠在不影響任務層次結構的優先順序順序的情況下防止優先順序反轉。換句話說,除非任務使用共享資源,否則其優先順序不會改變。即時作業系統,如 VxWorks、QNX 和 eCos,通常使用 PIP。

克服優先順序反轉問題的辦法

在 PIP 之前,用於克服優先順序反轉問題的兩種方法是二元訊號量和優先順序上限。優先順序上限在任務使用共享資源時提升任務的優先順序到優先順序上限,並賦予它一個固定的優先順序。另一方面,二元訊號量一次只允許一個程序訪問共享資源。然而,這些方法確實有一些缺點。

優先順序上限可能導致“上限優先順序反轉”現象,其中持有具有較高優先順序上限的共享資源的低優先順序任務阻塞了高優先順序任務。當兩個或多個任務等待另一個程序持有的資源時,二元訊號量可能會導致稱為“死鎖”的條件。因此,PIP 的建立是為了克服這些限制。

解決優先順序反轉問題的其他技術

除了 PIP 之外,還有一些方法用於解決優先順序反轉問題。“帶有繼承的優先順序上限”方法是其中一種方法,它將持有資源的任務的優先順序提升到所有等待共享資源的任務中具有最高優先順序的任務的優先順序。這種方法同樣也為共享資源設定優先順序上限,但優先順序上限可以提高到與等待該資源的最高優先順序任務的優先順序相匹配。

另一種方法是“優先順序繼承上限”技術,它是 PIP 的一個變體。它將持有資源的任務的優先順序提升到優先順序上限,併為共享資源設定優先順序上限。與 PIP 不同的是,它還會提高任何等待資源的任務的優先順序。

PIP 相對於其他方法的優勢

與其他解決優先順序反轉問題的辦法相比,PIP 提供了許多優勢。一個優勢是它能夠在不干擾任務層次結構優先順序順序的情況下避免優先順序反轉。PIP 確保任務的優先順序在它使用共享資源之前不會改變。此功能保護高優先順序程序免受低優先順序程序的阻塞。

PIP 的另一個優勢是易於實現且開銷很小。PIP 只需在作業系統排程程式中新增少量額外的指令即可有效地實現優先順序繼承。PIP 也易於在各種硬體平臺上部署,因為它不需要任何硬體修改或專門的硬體支援。

PIP 也很高效,不會顯著影響效能。PIP 確保高優先順序程序可以自由地使用共享資源,而不會被低優先順序任務阻塞,並且不會增加很多開銷或延遲。它的效率使得系統能夠有效地執行並滿足其即時需求。

PIP 演算法

PIP 演算法的工作原理如下:

  • 如果高優先順序程序試圖訪問由低優先順序程序持有的共享資源,則低優先順序程序的優先順序將臨時提升到高優先順序程序的優先順序。

  • 共享資源由低優先順序程序持有,但其優先順序與高優先順序程序相同。這種優先順序繼承允許高優先順序程序使用共享資源,而不會被低優先順序任務阻塞。

  • 當低優先順序任務釋放共享資源時,高優先順序程序的優先順序將恢復。

PIP 在同步作業系統中的用例

同步作業系統使用 PIP 來防止低優先順序操作阻止高優先順序任務訪問共享資源。在即時系統中,錯過截止日期或延遲可能產生嚴重後果時,此功能非常有用。

在嵌入式系統中,即時約束至關重要,PIP 經常被使用。例如,在醫療裝置中,PIP 可以確保關鍵操作(例如監測患者的生命體徵或輸送藥物)不會被不太重要的操作阻塞或延遲。

PIP 實現的真實案例

PIP 已應用於許多現實世界的場景,例如:

  • 航空航天和國防 - PIP 用於航空電子系統,以確保關鍵程序(如飛行控制)不會被不太重要的程序減慢或阻止。

  • 工業自動化 - PIP 用於工業自動化系統,以確保關鍵操作(例如控制機械臂或監控生產過程)不會被不太重要的操作阻塞或延遲。

  • 醫療裝置 - PIP 用於醫療裝置,以確保關鍵操作(例如監測患者的生命體徵或輸送藥物)不會被不太重要的操作減慢或阻止。

PIP 與其他同步技術的比較

PIP 在許多方面優於其他解決優先順序反轉問題的同步方法。與優先順序上限不同,PIP 透過確保任務的優先順序在其使用共享資源之前保持不變來防止上限優先順序反轉。與二元訊號量不同,PIP 允許多個任務同時訪問共享資源,從而提高系統性能。

與其他同步方法相比,PIP 也有一些缺點。與帶有繼承的優先順序上限不同,PIP 不會將優先順序上限提高到等待資源的最高優先順序任務的優先順序。與優先順序繼承上限不同,PIP 不會提高任何等待資源的任務的優先順序。

PIP 的分析

PIP 是一種有效且高效的同步策略,用於解決即時系統中的優先順序反轉問題。PIP 確保高優先順序任務能夠使用共享資源,而不會被低優先順序程序阻塞,同時保持任務層次結構的優先順序。

PIP 易於實現且開銷很小,適用於各種硬體平臺。PIP 的實際應用包括航空航天和國防、工業自動化和醫療裝置。

與其他同步方法相比,PIP 也有一些缺點。與帶有繼承的優先順序上限不同,PIP 不會將優先順序上限提高到等待資源的最高優先順序任務的優先順序。與優先順序繼承上限不同,PIP 不會提高任何等待資源的任務的優先順序。

PIP 通常是一種對優先順序反轉問題非常有用且有效的解決方法。雖然與其他同步方法相比,它有一些顯著的缺點,但由於其簡單性、效率和易於實現,它經常被即時系統選擇。

結論

在同步作業系統中,優先順序反轉是一個常見問題,可能導致延遲和錯過截止日期。PIP 是一種即時系統用於解決優先順序反轉問題的同步方法。PIP 確保高優先順序任務能夠使用共享資源,而不會被低優先順序程序阻塞,同時保持任務層次結構的優先順序。

PIP 易於實現且開銷很小,適用於各種硬體平臺。PIP 的實際應用包括航空航天和國防、工業自動化和醫療裝置。儘管與其他同步策略相比有一些缺點,但由於其簡單性、效率和易於實現,PIP 仍然是即時系統的常用選擇。

更新於:2023年7月19日

瀏覽量:632

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.