嵌入式系統(tǒng)優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題分析
優(yōu)先級(jí)反轉(zhuǎn)發(fā)生在一個(gè)高優(yōu)先級(jí)的任務(wù)被迫等待一段不確定時(shí)間,等待一個(gè)低優(yōu)先級(jí)任務(wù)先完成。圖1中3個(gè)任務(wù)分別為task1、task2和task3,其優(yōu)先級(jí)由高到低。從圖1可知,當(dāng)task3占有由信號(hào)量(semaphore)保護(hù)的某種共享資源而進(jìn)入臨界區(qū)執(zhí)行時(shí),task1就緒,由于系統(tǒng)可搶占式PBP(Priority Based Preemptive)調(diào)度策略,因此task1搶占task3執(zhí)行。task1執(zhí)行一段時(shí)間后也進(jìn)入臨界區(qū),但此時(shí)task3仍占有此臨界資源的信號(hào)量,task1被阻塞,等待task3釋放此信號(hào)量。在經(jīng)過(guò)這么一段時(shí)間后,task2已處于就緒狀態(tài),于是系統(tǒng)調(diào)度task2執(zhí)行。如果task3在task2的執(zhí)行期間一直沒(méi)有能夠被調(diào)度執(zhí)行的話,那task1和task3將一直等到task2執(zhí)行完后才能執(zhí)行,task1更要等到task3釋放它所占有的信號(hào)量才能執(zhí)行;如果這段時(shí)間超出task1的Deadline,task1的調(diào)度出現(xiàn)了問(wèn)題,此時(shí)輕則任務(wù)被長(zhǎng)時(shí)間阻塞,重則造成系統(tǒng)崩潰。優(yōu)先級(jí)反轉(zhuǎn)原因可歸納為:高優(yōu)先級(jí)的任務(wù)task1由于要等待被低優(yōu)先級(jí)任務(wù)task3占有的臨界資源而被task2阻塞,而此時(shí)具有中優(yōu)先級(jí)的任務(wù)task2搶占了task3的CPU時(shí)間,導(dǎo)致task2先于task1執(zhí)行。此類優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題的解決方法大致有2種:一種被稱作優(yōu)先級(jí)繼承(priority inheritance);另一種被稱作優(yōu)先級(jí)極限(priority ceilings)。下面介紹本文所遇到的優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題。
版權(quán)與免責(zé)聲明:
1.凡本網(wǎng)注明"來(lái)源:歐亞貿(mào)易網(wǎng)"的所有作品,版權(quán)均屬于歐亞貿(mào)易網(wǎng),轉(zhuǎn)載請(qǐng)必須注明歐亞貿(mào)易網(wǎng)。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
2.企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
3.本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
4.如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系。