如果任務(wù)之間由于有共享資源出現(xiàn)了競(jìng)爭(zhēng)或者死鎖,是會(huì)嚴(yán)重影響系統(tǒng)安全的。因此uC/OS對(duì)共享資源提供了保護(hù)機(jī)制。一般情況下使用的是信號(hào)量方法。創(chuàng)建一個(gè)信號(hào)量并對(duì)他進(jìn)行初始化,當(dāng)一個(gè)任務(wù)需要使用一個(gè)共享資源時(shí),他必須先申請(qǐng)得到這個(gè)信號(hào)量。在這個(gè)過(guò)程中即使有優(yōu)先權(quán)更高的任務(wù)進(jìn)入了就緒態(tài),因?yàn)闊o(wú)法得到信號(hào)量,也不能使用該資源。在uC/OS中稱(chēng)為優(yōu)先級(jí)反轉(zhuǎn)。簡(jiǎn)單地說(shuō),就是高優(yōu)先級(jí)任務(wù)必須等待低優(yōu)先級(jí)任務(wù)的完成。
優(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í)占有就直接升到最高。
本文出自 “Cvolatile” 博客,請(qǐng)務(wù)必保留此出處http://mengqiucheng.blog.51cto.com/3917331/721837
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。