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