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