定義:高優(yōu)先級任務(wù)需要等待低優(yōu)先級任務(wù)釋放資源,而低優(yōu)先級任務(wù)又正在等待中等優(yōu)先級任務(wù)的現(xiàn)象叫做優(yōu)先級反轉(zhuǎn)。 此時(shí)高優(yōu)先級任務(wù)和中等優(yōu)先級任務(wù)之間沒有任何共享資源但執(zhí)行順序卻發(fā)生了倒置,這種情況稱為優(yōu)先級反轉(zhuǎn),而高優(yōu)先級任務(wù)因?yàn)榈却蛢?yōu)先級任務(wù)釋放資源而阻塞的情況則不稱為優(yōu)先級反轉(zhuǎn) 兩種經(jīng)典的防止反轉(zhuǎn)的方法: 優(yōu)先級繼承策略(Priority inheritance):繼承現(xiàn)有被阻塞任務(wù)的最高優(yōu)先級作為其優(yōu)先級,任務(wù)退出臨界區(qū),恢復(fù)初始優(yōu)先級。 在上述例子中體現(xiàn)為當(dāng)高優(yōu)先級任務(wù)需要等待低優(yōu)先級任務(wù)釋放資源而阻塞時(shí),就將低優(yōu)先級任務(wù)的優(yōu)先級升為高優(yōu)先級任務(wù)的優(yōu)先級,當(dāng)它退出臨界區(qū)后就將其優(yōu)先級恢復(fù)為初始優(yōu)先級 優(yōu)先級天花板策略(Priority ceilings): 優(yōu)先級天花板是指將申請(占有)某資源的任務(wù)的優(yōu)先級提升到可能訪問該資源的所有任務(wù)中最高優(yōu)先級任務(wù)的優(yōu)先級.(這個優(yōu)先級稱為該資源的優(yōu)先級天花板) 。在上述例子中體現(xiàn)為當(dāng)?shù)蛢?yōu)先級任務(wù)申請占有某資源時(shí)就將這個低優(yōu)先級任務(wù)的優(yōu)先級升為能訪問該資源的所有任務(wù)中最高優(yōu)先級任務(wù)的優(yōu)先級。 優(yōu)先級繼承策略對任務(wù)執(zhí)行流程的影響相對較小,因?yàn)橹挥挟?dāng)高優(yōu)先級任務(wù)申請已被低優(yōu)先級任務(wù)占有的臨界資源這一事實(shí)發(fā)生時(shí),才抬升低優(yōu)先級任務(wù)的優(yōu)先級。而天花板策略是誰占有就直接升到最高。 |
|