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