admin 發表於 2023-5-14 01:58:44

Ceiling Priority Protocol與Priority-Inheritance Protocol

Ceiling Priority Protocol(CPP,天花板優先級協議)和Priority-Inheritance Protocol(PIP,優先級繼承協議)都是用於解決實時系統中的優先級反轉問題的協議。優先級反轉是指低優先級任務阻止高優先級任務執行的情況。

Ceiling Priority Protocol(CPP):
在Ceiling Priority Protocol中,每個共享資源(通常使用mutex互斥量保護)都有一個與之關聯的優先級。此優先級稱為資源的天花板優先級,通常設置為需要訪問該資源的所有任務中具有最高優先級的任務的優先級。當一個任務獲得互斥量時,它的優先級會提升到與互斥量關聯的天花板優先級。這可以防止具有中間優先級的任務在高優先級任務等待互斥量時運行,從而降低了優先級反轉的影響。

Priority-Inheritance Protocol(PIP):
在Priority-Inheritance Protocol中,當高優先級任務因等待互斥量而被阻塞(blocking)時,持有互斥量的低優先級任務會繼承高優先級任務的優先級。這可以防止高優先級任務被低優先級任務無限期阻塞。當低優先級任務釋放互斥量後,其優先級恢復為原始優先級。

兩者之間的主要差異如下:

預防方法:CPP是一種預防性協議,因為它在任務獲得互斥量時立即提高優先級,而不需要等待高優先級任務阻塞。相反,PIP是一種治療性協議,因為它僅在高優先級任務阻塞時才提高低優先級任務的優先級。

優先級分配:在CPP中,互斥量的優先級是固定的,即與需要訪問該資源的最高優先級任務相同。而在PIP中,
頁: [1]
查看完整版本: Ceiling Priority Protocol與Priority-Inheritance Protocol