摘 要:在分析目前Linux的各種實時化方法的基礎(chǔ)上,提出了基于APIC時鐘修改的方法,以獲得更高的硬實時性能。對APIC中斷函數(shù)進行修改,將APIC中斷和8254中斷排序,使得硬實時中斷的優(yōu)先級大于普通8254中斷,從而獲得了更高的實時性能。多組仿真實驗驗證了該方法的有效性。
關(guān)鍵詞:嵌入式系統(tǒng); 實時化改造;Linux; APIC
中圖分類號:TN911; TP311 文獻標(biāo)識碼:A 文章編號:1004-373X(2010)14-0193-03
Real-time Improvement for Embedded Linux Based on APIC Clock
HOU Feng, TONG Xiao-yang
(School of Electrical Engineering, Southwest Jiaotong University, Chengdu 610031, China)
Abstract: The method based on APIC (high-quality programmable controller)clock modification is proposed to obtain more hard real-time performance by analyzing the present method of real-time Linux. To modify the interrupt function of APIC, and sort the APIC interrupt and 8254 interrupt, the priority of the hard real-time is higher than the normal8254 interrupt, a better real-time performance is gained. Multiple sets of simulation results verify the effectiveness of the method.
Keywords: embedded system; real-time transformation; Linux; APIC
0 引 言
嵌入式Linux是指對Linux進行剪裁后,將其固化在單片機或者存儲器中,應(yīng)用于特定場合的專用Linux系統(tǒng)[1]。嵌入式系統(tǒng)要求實時性能高,但Linux為分時系統(tǒng)設(shè)計的操作系統(tǒng),盡管最新的內(nèi)核在實時性能方面有所提高,但它仍然不是一個實時系統(tǒng),在很多場合不能滿足實時性要求。
一般地,通過改造Linux的內(nèi)核以提高其實時性能有2種策略:一種是采用底層編程的方法對Linux內(nèi)核進行修改(如調(diào)度算法、時鐘修改等),典型的系統(tǒng)有Kansas大學(xué)開發(fā)的KURT。文獻[2]提出了搶占式內(nèi)核調(diào)度算法,容易引起內(nèi)核優(yōu)先級翻轉(zhuǎn),文獻[3]針對非搶占式內(nèi)核,增加搶占點,該方法需要優(yōu)秀的調(diào)度算法。另一種途徑是Linux的外部實時性擴展,在原有Linux基礎(chǔ)上再設(shè)計一個用于專門處理實時進程的內(nèi)核,典型的系統(tǒng)有RTLinux、RTAI等。此方法的不足是RTLinux現(xiàn)在已經(jīng)停止了更新,目前的開源版本僅支持2.4內(nèi)核,RTAI的設(shè)計原理和RTLinux類似,也是一個實時性應(yīng)用接口。
本文采用APIC時鐘修改的方法對Linux內(nèi)核進行實時化改造,修改APIC中斷函數(shù),將APIC中斷和8254中斷排序,使得硬實時中斷的優(yōu)先級大于普通8254中斷。通過多組仿真實驗,驗證了該改造方法是有效的?!?br>