資源描述:
《基于rtai實時linux研究和實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于RTAI實時LINUX研究和實現(xiàn)摘要:LINUX作為一種開放的操作系統(tǒng)已經(jīng)得到廣泛的應(yīng)用,但是LINUX是面向桌面的操作系統(tǒng),本身實時性并不是很出色,在很多應(yīng)用場合需要對它的實時性能進行改進。本文詳細(xì)分析了一種基于實時應(yīng)用接口的LINUX擴展方案,通過RTAI動態(tài)加載實時內(nèi)核,改善了LINUX系統(tǒng)的實時性。關(guān)鍵詞:操作系統(tǒng);應(yīng)用接口;內(nèi)核;實時中圖分類號:TP316.811引言實時系統(tǒng)是一種特殊的系統(tǒng),它主要特點是在規(guī)定時間內(nèi)一定能夠響應(yīng)任務(wù)的需求。這種特性就特別適合一些對時間要求嚴(yán)格的場合,比如控制列車運行的操作系統(tǒng)。因此實時系統(tǒng)目前主要應(yīng)用于過程控制自動化系統(tǒng)、辦公自動化、航空航天系
2、統(tǒng)、武器制導(dǎo)系統(tǒng)等領(lǐng)域,并且發(fā)揮著舉足輕重的作用。Linux的出現(xiàn)給我們帶來了新的契機,由于Linux系統(tǒng)本身的開源性,用戶可以根據(jù)自己的需求定制和修改以達到不同的效果。但是,大部分實時系統(tǒng),需要很短的響應(yīng)時間,需要操作系統(tǒng)的硬實時特性,而標(biāo)準(zhǔn)的Linux操作系統(tǒng)是達不到硬實時的要求。本論文分析了Linux2.6內(nèi)核實時性的不足以及RTAI底層實現(xiàn)機制,并構(gòu)建一個基于Linux和RTAI的實時系統(tǒng)。2Linux內(nèi)核實時性分析對一個操作系統(tǒng)而言,調(diào)度程序的效率將直接影響到系統(tǒng)的整體性能。在Linux中,調(diào)度策略分為三種:(1)SCHED_NORMAL:面向普通進程的時間片輪轉(zhuǎn)策略。(2)SCH
3、ED_FIFO:面向?qū)崟r性要求要求比較高,運行時間比較短的進程。用這種思想進行調(diào)度時,各進程按先入先出的順序獲得CPU。(3)SCHED_RR:面向于實時性要求比較高,運行時間比較長的進程。用這種思想進行調(diào)度時,各進程按時間片的方法輪流使用CPUo在2.6內(nèi)核中,對Linux的調(diào)度策略進行了很大的改進,有關(guān)進程調(diào)度最重要的改進是采用0(1)算法和內(nèi)核態(tài)的可搶占性。因此,我們利用Linux開源性的優(yōu)勢,對Linux內(nèi)核進行擴展,采用RTAI對Linux進行實時性改進以滿足實時任務(wù)的需求。3RTAI實時性分析RTAI是一種對Linux系統(tǒng)的硬實時擴展,它可以提供工業(yè)級的實時操作系統(tǒng)功能,達到了
4、硬實時性的要求,RTAI的功能都可以在Linux下訪問。RTAI采用了一種叫做ADE0S的思想進行實現(xiàn)。ADE0S在操作系統(tǒng)的底部插入一個微內(nèi)核,各個操作系統(tǒng)運行在微內(nèi)核之上,各個操作系統(tǒng)都可以操作控制硬件。Adeos把它管轄的各個操作系統(tǒng)稱為域,RTAI系統(tǒng)本身作為Adeos中的一個域存在,在Adeos管理下實現(xiàn)RTAI系統(tǒng)的初始化、中斷的申請、中斷服務(wù)程序的注冊等。在Adeos的調(diào)度策略里面,RTAI的優(yōu)先級是最高的,一旦RTAI有任務(wù)需要處理,Adeos立即進行調(diào)度,使RTAI能夠響應(yīng)相應(yīng)的實時任務(wù),只有當(dāng)RTAI處于空閑狀態(tài)時,Adeos才會調(diào)度Linux運行,這樣的調(diào)度思想就保證了
5、RTAI的實時任務(wù)響應(yīng)時間,從而提供了實時系統(tǒng)的可確定性,使系統(tǒng)達到硬實時的要求。RTAI的原理圖如圖1:從圖中我們可以看到,RTAI響應(yīng)的都是實時任務(wù),因此我們設(shè)置RTAI域的優(yōu)先級高于Linux域,這樣的策略保證所有的實時任務(wù)都優(yōu)先于Linux域的普通任務(wù),從而不會被linux影響。這樣,Adeos系統(tǒng)上的兩個操作系統(tǒng)在這種調(diào)度策略下就共同運行,它們可以共享兩個操作系統(tǒng)所有的公共資源,RTAI和Linux通過管道、共享內(nèi)存等模塊交換信息,調(diào)用彼此的系統(tǒng)服務(wù),也可以根據(jù)優(yōu)先級共享同一個中斷信號。4實時系統(tǒng)的實現(xiàn)下面是我構(gòu)建實時Linux系統(tǒng)的過程:軟件環(huán)境:ubuntu,gcc、g++、m
6、ake等。我們下載RTAI并解壓:#wget一no-check-certificatehttps://www.rtai.org/RTAI/rtai—3?6.tar?bz2#tarxvfrtai-3?6.tar.bz2我們下載一個RTAI支持的內(nèi)核并解壓出來:例如linux-2.6.20.tar.gz#tarxvflinux-2.6.20.tar.gz進入內(nèi)核目錄并應(yīng)用補?。?cd../linux-2.6.20#patch-pl~bCXX=/usr/bin/g++~#makeinstall最后我們在啟動grub的時候就可以選擇安裝了RTAI的ubuntu啟動。5結(jié)束語Linux作為一個開源性的
7、操作系統(tǒng)已經(jīng)應(yīng)用到各個領(lǐng)域,針對不同的應(yīng)用場合各行各業(yè)都會對linux進行改進。本文針對工業(yè)控制現(xiàn)場對操作系統(tǒng)的實時性需求,采用RTAI的方法對Linux進行實時性的改進,分析了RTAI實現(xiàn)機制并構(gòu)建一個基于RTAI和Linux的系統(tǒng)。參考文獻:[1]JoaoMonteiro.RTAIInstallationCompleteGuide,www.rtai.org[2]范海濤,王樹民?基于RTAI的uClinux