發(fā)布時間:2021-10-28 15:39:43來源:有考培訓網綜合
長沙有沒有好一點的嵌入式培訓班?小編為大家推薦達內教育。嵌入式實時系統(tǒng)中由于多任務共享資源,通常會出現(xiàn)一些奇怪的現(xiàn)象。本文就什么是優(yōu)先級反轉及其產生原因進行分析,并提出2個行之有效的解決方案。接下來就和嵌入式培訓班一起來看一下吧!
長沙有沒有好一點的嵌入式培訓班?
達內教育隸屬于加拿大達內IT培訓集團,于2002年成立 ,是達內IT培訓集團直屬學院。學院成立旨在建立軟件高級人才培養(yǎng)的通道,促進我國信息產業(yè)迅速發(fā)展。依托達內集團國內持平的課程體系(TTS6.0),雄厚的師資力量,廣闊的就業(yè)平臺,迄今為止已與國內上萬家IT企業(yè)進行人才輸送合作,其中緊密合作企業(yè)4000余家、深入合作企業(yè)200余家、訂單輸送聯(lián)盟企業(yè)107家。
什么是優(yōu)先級反轉?
RTOS普遍具有2個特點:實時性和多任務。實時是指系統(tǒng)的響應時間必須在規(guī)定的時間內,超出這個時間限制將會使系統(tǒng)出現(xiàn)致命的錯誤;同時,實時性還要求對時間要求非常急迫的任務要先于對時間不是很緊急的任務執(zhí)行。正是由于這2個原因,RTOS的進程調度普遍采用的是基于優(yōu)先級的可選擇式PBP(Priority Based Preemptive)的調度策略。多任務是嵌入式系統(tǒng)的內在要求。
如今的嵌入式系統(tǒng)普遍要求具有多任務并發(fā)執(zhí)行的能力,因此RTOS中也必須提供多任務并發(fā)執(zhí)行的支持。由于多任務并發(fā),必然會導致多個任務共享資源。如有2個任務task1和task2并發(fā)執(zhí)行,都需要向打印機輸出結果。由于只有1臺打印機,所以在某個時間段內只能有1個任務,如task1占有打印機并向打印機輸出,而這時另一個任務task2處于等待狀態(tài)。當task1輸出完畢后,task2由等待轉為就緒,當RTOS再次調度它時,方可占有打印機向打印機輸出。
試想如果不采取這種方式,不對打印機這種共享資源加以控制,而讓task1和task2同時向打印機輸出,這時候打印機打印的結果誰也看不懂,是一堆亂七八糟的東西。因此,大多數的RTOS采用了一種稱作信號量(semaphore)的機制來實現(xiàn)對共享資源的管理。任何一個想使用臨界資源(如打印機等共享資源)的進程在進入臨界區(qū)(如task1或task2中訪問臨界資源的代碼)之前必須擁有使用臨界資源的信號量,否則不可以執(zhí)行臨界區(qū)代碼。
假設系統(tǒng)中有3個任務,分別為task1、task2和task3。task1的優(yōu)先權高于task2,而task2的優(yōu)先權高于task3。恰在此時task1和task2 因某種原因被阻塞,這時候系統(tǒng)調度task3執(zhí)行。task3執(zhí)行一段時間后,task1被喚醒。由于采取的是PBP的調度策略,因此task1選擇task3的CPU, task1執(zhí)行。task1執(zhí)行一段時間后要進入臨界區(qū),但此時task3占有此臨界資源的信號量。
更多培訓課程: 長沙嵌入式 更多學校信息: 長沙岳麓區(qū)河西CBD達內IT教育培訓 咨詢電話: