嵌入式Linux實(shí)時化技術(shù)
引言
本文引用地址:http://www.ex-cimer.com/article/106458.htmLinux支持PowerPC、MIPS、ARM、DSP等多種嵌入式處理器,逐漸被用于多種關(guān)鍵性場合。其中實(shí)時多媒體處理、工業(yè)控制、汽車電子等特定應(yīng)用對Linux提出了強(qiáng)實(shí)時性需求。Linux提供了一些實(shí)時擴(kuò)展,但需要進(jìn)行實(shí)時性改造。本文針對嵌入式Linux實(shí)時化技術(shù)中的一些關(guān)鍵問題進(jìn)行了討論,如Linux內(nèi)核時延,實(shí)時化主流技術(shù)方案及其評價等。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
Linux內(nèi)核時延
主流Linux雖然部分滿足POSIX 1003.1b實(shí)時擴(kuò)展標(biāo)準(zhǔn),但還不完全是一個實(shí)時操作系統(tǒng),主要表現(xiàn)為:
● 任務(wù)調(diào)度與內(nèi)核搶占
2.6版本內(nèi)核添加了許多搶占點(diǎn),使進(jìn)程執(zhí)行在內(nèi)核代碼時也可被搶占。為支持內(nèi)核代碼可搶占,在2.6版內(nèi)核中通過采用禁用中斷的自旋鎖來保護(hù)臨界區(qū)。但此時如果有低優(yōu)先級進(jìn)程在臨界區(qū)中執(zhí)行,高優(yōu)先級進(jìn)程即使不訪問低優(yōu)先級所保護(hù)的臨界區(qū),也必須等待低優(yōu)先級進(jìn)程退出臨界區(qū)。
● 中斷延遲
在主流Linux內(nèi)核設(shè)計(jì)中,中斷可以搶占最高優(yōu)先級的任務(wù),使高優(yōu)先級任務(wù)被阻塞的最長時間不確定。而且,由于內(nèi)核為保護(hù)臨界區(qū)需要關(guān)閉中斷,更加增長了高優(yōu)先級任務(wù)阻塞時間。
● 時鐘精度
Linux通過硬件時鐘編程來產(chǎn)生毫秒級周期性時鐘中斷進(jìn)行內(nèi)核時間管理,無法滿足實(shí)時系統(tǒng)較高精度的調(diào)度要求。內(nèi)核定時器精度同樣也受限于時鐘中斷,無法滿足實(shí)時系統(tǒng)的高精度定時需求。
● 其他延遲
此外,Linux內(nèi)核其他子系統(tǒng)也存在多種延遲。比如為了增強(qiáng)內(nèi)核性能和減少內(nèi)存消耗,Linux僅在需要時裝載程序地址空間相應(yīng)的內(nèi)存頁。當(dāng)被存取內(nèi)容(如代碼)不在RAM中則內(nèi)存管理單元(MMU)將產(chǎn)生頁表錯誤(Page-Fault)觸發(fā)頁面裝載,造成實(shí)時進(jìn)程響應(yīng)時間不確定。
Linux實(shí)時化技術(shù)發(fā)展
主流Linux內(nèi)核1.x、2.2.x和2.4.x版本的Linux內(nèi)核無搶占支持,直到2.6版本的Linux內(nèi)核才支持可搶占內(nèi)核,支持臨界區(qū)外的內(nèi)核搶占和可搶占的大內(nèi)核鎖。在此基礎(chǔ)上,Linux采用了下列兩類實(shí)時化技術(shù)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論