欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
采用雙內核機制基于uClinux的實(shí)時(shí)操作系統分析與實(shí)現

言:本文提出了一種基于Linux操作系統實(shí)時(shí)性的新型方案" target=_blank>uClinux的實(shí)時(shí)操作系統,在對于資源要求苛刻而應用場(chǎng)合多變的嵌入式領(lǐng)域很有優(yōu)勢。該系統采用了雙內核機制、借助實(shí)時(shí)硬件抽象層(RTHAL)概念、利用模塊動(dòng)態(tài)加載,對普通uClinux進(jìn)行了實(shí)時(shí)性改進(jìn),實(shí)驗表明完全滿(mǎn)足實(shí)時(shí)系統的時(shí)限約束。

嵌入式Linux以代碼開(kāi)放、價(jià)格低廉、功能強大又易于移植的特性正在被廣泛應用,為嵌入式操作系統提供了一個(gè)極具吸引力的選擇。uClinux是專(zhuān)門(mén)針對無(wú)存儲器管理單元(MMU)處理器設計的嵌入式Linux,非常適合中低端嵌入式系統的需求,在工業(yè)控制領(lǐng)域有著(zhù)廣闊的應用前景。

但許多實(shí)際應用要求對外部事件在限定的時(shí)間內做出反應,而普通uClinux并不是一種實(shí)時(shí)操作系統,所以本文提出了一種基于uClinux的實(shí)時(shí)性解決方案,經(jīng)測試可以嚴格滿(mǎn)足實(shí)時(shí)應用的時(shí)限約束,有良好的應用價(jià)值。

基于uClinux的實(shí)時(shí)方案分析

1.uClinux實(shí)時(shí)性缺陷

uClinux雖然符合POSIX1003.1b關(guān)于實(shí)時(shí)擴展部分的標準,例如支持SCHED_FIFO和SCHED_RR實(shí)時(shí)調度策略、實(shí)時(shí)信號等實(shí)時(shí)功能,但由于其最初的設計目標為通用分時(shí)操作系統,因此在實(shí)時(shí)性支持方面,uClinux仍存在如下缺陷:

a.非搶占式內核。uClinux有用戶(hù)態(tài)和核心態(tài)兩種模式,當進(jìn)程運行在用戶(hù)態(tài)時(shí),可以被優(yōu)先級更高的進(jìn)程搶占;在內核中,一個(gè)進(jìn)程可以通過(guò)schedule()函數自愿地啟動(dòng)一次調度。除此之外,非自愿的強制調度只能發(fā)生在每次從系統調用返回前,或每次從中斷或異常處理返回到用戶(hù)空間前。

B.公平的調度算法。普通uClinux作為一個(gè)分時(shí)系統,其調度算法的目標是提供一種公平的調度機制,平衡系統響應時(shí)間和吞吐量,這與實(shí)時(shí)應用要求的低延遲和高度的可預測性相矛盾。實(shí)時(shí)操作系統必須保證目前運行的任務(wù)的優(yōu)先級是可運行任務(wù)中最高的。

 

 

 

 

 

 

 

 

圖1:嵌入式實(shí)時(shí)uClinux的體系結構圖。

圖3:普通uClinux的中斷處理示意圖。

圖5:SamSung4510b時(shí)鐘示意圖。

 

C.頻繁地關(guān)中斷操作。uClinux為了保證核心數據的完整性,在對關(guān)鍵數據結構進(jìn)行修改前,通常采用"關(guān)中斷"的方式。而非周期實(shí)時(shí)任務(wù)大多是由中斷作出響應,周期性實(shí)時(shí)任務(wù)也需要調度模塊來(lái)調度運行,而調度模塊的執行也要由時(shí)鐘中斷觸發(fā)。所以,頻繁的關(guān)中斷會(huì )導致實(shí)時(shí)任務(wù)不能被及時(shí)調度執行。

D.時(shí)鐘粒度粗糙。時(shí)鐘管理是操作系統的脈搏,是進(jìn)程調度的重要依據。普通uClinux的時(shí)鐘粒度被設置為10ms,而實(shí)時(shí)應用一般都需要微秒級的響應精度。

2. uClinux實(shí)時(shí)解決方案

uClinux支持硬實(shí)時(shí)性的策略有以下兩種:

a. 直接修改內核法

將內核中的進(jìn)程調度、中斷處理、時(shí)鐘等部分遵循POSIX標準進(jìn)行改寫(xiě),在源代碼級的基礎上使uClinux變成一個(gè)實(shí)時(shí)操作系統。這種策略雖然可以獲得高的執行效率,但實(shí)現難度大、周期比較長(cháng),而且對原有內核太強的依賴(lài)性使得升級工作繁重而不方便。

b. 雙內核方法

在同一硬件平臺上采用了兩個(gè)相互配合、共同工作的系統內核,一個(gè)內核提供精確的實(shí)時(shí)多任務(wù)管理,另一個(gè)內核提供復雜的非實(shí)時(shí)通用功能。由于uClinux支持內核模塊動(dòng)態(tài)加載,因此實(shí)時(shí)內核可在需要時(shí)以模塊的形式載入。雙內核機制避免了大規模結構改造,以較小的代價(jià)提供了強實(shí)時(shí)性,新系統可使用幾乎所有常規uClinux操作系統提供的功能。

本文提出的嵌入式實(shí)時(shí)操作系統采用雙內核的設計思想,在普通uClinux基礎上,通過(guò)增加一個(gè)實(shí)時(shí)內核實(shí)現了調度的可搶占性,同時(shí)在系統中實(shí)現了硬件抽象層RTHAL,避免了頻繁關(guān)中斷所導致的實(shí)時(shí)任務(wù)不能被及時(shí)調度執行的缺陷。最后,對系統時(shí)鐘進(jìn)行了改進(jìn),滿(mǎn)足了實(shí)時(shí)應用微秒級的響應精度。

基于uClinux的實(shí)時(shí)操作系統設計

1. 搶占式實(shí)時(shí)內核

實(shí)時(shí)內核完全掌握了硬件層,而把非實(shí)時(shí)內核作為一個(gè)優(yōu)先級最低的普通任務(wù)運行于自己之上。實(shí)時(shí)內核采用了搶占式調度算法,非實(shí)時(shí)內核也通過(guò)RTHAL獲得實(shí)時(shí)內核所用的替代函數,這就為應用雙內核機制實(shí)現可搶占式內核奠定了基礎。

實(shí)時(shí)內核將各種功能以模塊形式實(shí)現,在系統運行時(shí)可以方便地加載、卸載,從而大大減少核心代碼的規模,節省內核空間并方便進(jìn)行動(dòng)態(tài)配置。圖1是雙內核結構的嵌入式實(shí)時(shí)uClinux的體系結構圖??梢钥闯?,在RTHAL架構下實(shí)時(shí)內核主要由中斷分發(fā)器和實(shí)時(shí)調度器構成,這是實(shí)時(shí)內核最基本的功能。同時(shí)還將實(shí)時(shí)SHM、實(shí)時(shí)FIFO、RTCOM和SFLIB設計成模塊的形式,可以靈活地根據應用需求進(jìn)行加載。

實(shí)時(shí)SHM和實(shí)時(shí)FIFO是實(shí)時(shí)內核任務(wù)和非實(shí)時(shí)內核任務(wù)之間的通信橋梁。SFLIB是浮點(diǎn)運算軟件模擬的功能模塊,為了解決處理器不支持內核浮點(diǎn)運算而設計的。RTCOM則可以提供實(shí)時(shí)串口通信功能。

圖2:實(shí)時(shí)調度處理流程圖。

搶占式內核提供多種實(shí)時(shí)調度策略,包括FIFO、RR、RM、EDF算法,同時(shí)還允許使用者根據應用需要編寫(xiě)自己的調度算法。任務(wù)調度的時(shí)機有兩種,一種是主動(dòng)調度,即在程序中主動(dòng)調用rt_schedule()函數來(lái)讓出運行權;另一種是被動(dòng)調度,即在時(shí)鐘中斷處理函數rt_timer_handler()中進(jìn)行調度。以上兩個(gè)函數的算法基本相同,故僅給出rt_schedule()的流程圖(圖2)。

2.RTHAL

從Linux2.1版開(kāi)始提出了實(shí)時(shí)硬件抽象層(RTHAL)的概念,而uClinux本身并不具有RTHAL。這里借鑒RTHAL的思想,對uClinux核心進(jìn)行改動(dòng),將其與中斷控制器隔離,核心中的所有中斷操作指令都被替換成相應的宏??梢院?jiǎn)單地理解為,這時(shí)的開(kāi)中斷、關(guān)中斷指令實(shí)際上僅僅變更一個(gè)中斷狀態(tài)標志的值,并不真正改變中斷狀態(tài)。通過(guò)RTHAL這一機制,避免了頻繁關(guān)中斷所導致的實(shí)時(shí)任務(wù)不能被及時(shí)調度執行的缺陷。

1.RTHAL數據結構

將所有需要的內部數據及函數的指針集成為一個(gè)結構體RTHAL,這樣就能方便地捕獲全部與實(shí)時(shí)應用緊密相關(guān)的內核函數。當需要響應硬實(shí)時(shí)事件時(shí),實(shí)時(shí)內核可以動(dòng)態(tài)地把這些函數切換到相應的軟件模擬函數上。

2.RTHAL作用

為了更好地說(shuō)明RTHAL的作用,下面詳細說(shuō)明實(shí)時(shí)模塊加載前后內核所發(fā)生的變化。

A.實(shí)時(shí)模塊加載前

首先解釋一下硬件支撐層(HSL)的概念:在linux代碼樹(shù)中HSL一般是由匯編語(yǔ)言編寫(xiě)的與底層硬件密切相關(guān)的部分,它的作用是在中斷發(fā)生時(shí)保存現場(chǎng)并跳轉到內核中相應的中斷處理函數入口,在中斷返回時(shí)恢復現場(chǎng),同時(shí)還起著(zhù)進(jìn)程切換的作用。

如圖3所示,改動(dòng)前uClinux內核可以通過(guò)開(kāi)/關(guān)中斷操作直接打開(kāi)或關(guān)閉所有中斷,也可以通過(guò)屏蔽/解屏蔽操作關(guān)閉和打開(kāi)特定的中斷。由于中斷處理、系統調用和異常處理需要經(jīng)常關(guān)閉中斷,頻繁的關(guān)中斷會(huì )導致實(shí)時(shí)任務(wù)不能被及時(shí)調度執行,從而使系統響應時(shí)間增長(cháng),實(shí)時(shí)性降低。

這時(shí)uClinux直接與硬件層打交道,例如關(guān)中斷指令cli的宏定義為:

#define __cli() __asm__ __volatile__("cli": : :"memory")

即uClinux內核直接通過(guò)cli匯編指令控制硬件。

B.實(shí)時(shí)內核加載后

當系統實(shí)現了RTHAL后,如圖4所示,uClinux的開(kāi)/關(guān)中斷操作被分別指向RTHAL的disint( )和enint()函數。disint( )指向實(shí)時(shí)模塊的_linux _cli( )函數,作用是設置中斷標志位為關(guān)中斷狀態(tài);enint()函數指向實(shí)時(shí)模塊的_linux_sti()函數,作用是設置中斷標志位為開(kāi)中斷狀態(tài),并處理掛起的uClinux中斷請求;而屏蔽/解屏蔽操作被分別指向實(shí)時(shí)模塊的linux_irq_mask( )函數和linux_irq_unmask()函數。

當中斷通過(guò)HSL調用RTHAL中的do_IRQ( )函數,這個(gè)函數指向實(shí)時(shí)模塊的dispatch_irq()函數。其作用是判斷當前中斷是否是實(shí)時(shí)中斷,如果是實(shí)時(shí)中斷,則實(shí)時(shí)模塊處理這個(gè)中斷;如果是非實(shí)時(shí)的,則將這個(gè)中斷掛到uClinux中斷請求隊列中,由uClinux內核的來(lái)處理非實(shí)時(shí)中斷。

例如,linux_cli()函數在加載實(shí)時(shí)內核后被改寫(xiě)為:

static void linux_cli(void)

{

processor[hard_cpu_id()].intr_flag = 0;

}

即當uClinux要關(guān)中斷時(shí),實(shí)時(shí)模塊的處理只是僅僅設置了中斷標志位,并沒(méi)有真正的去關(guān)硬件中斷。由此,實(shí)時(shí)模塊實(shí)現了對硬件層的接管,而把非實(shí)時(shí)內核作為一個(gè)優(yōu)先級最低的普通任務(wù)運行,這樣就可以充分保證實(shí)時(shí)中斷的及時(shí)響應,從而保證了系統的實(shí)時(shí)性。

3. 細粒度時(shí)鐘的實(shí)現

對于時(shí)鐘機制的改造,可以通過(guò)提高系統時(shí)鐘精度來(lái)增強系統的實(shí)時(shí)性,特別是對外部中斷的響應。在系統中引入兩種定時(shí)器模式:Periodic(周期性)和Oneshot(一次性)。

A.Periodic模式

對于周期性實(shí)時(shí)任務(wù)應用這種模式,只需要在初始化時(shí)對定時(shí)器進(jìn)行設置,保證了處理效率。

B.Oneshot模式

對于非周期實(shí)時(shí)任務(wù)應用這種模式。在任何時(shí)刻,時(shí)鐘的下一次中斷間隔由所有定時(shí)器中到期最早的一個(gè)來(lái)決定。一旦定時(shí)器到期,內核便能夠立刻響應,因此內核的響應開(kāi)銷(xiāo)只由中斷服務(wù)的時(shí)間所決定,大約只有幾個(gè)微秒。

圖4:實(shí)時(shí)模塊加載后中斷處理示意圖。

在i386體系結構中,有TSC(時(shí)間標簽計數器)計數器,這個(gè)計數器是64位的寄存器,可以精確到1/主頻。在s3c4510b處理器上沒(méi)有這個(gè)寄存器,但精確計時(shí)又是必要的,為了解決這一問(wèn)題,可以采用計時(shí)器2(timer1)來(lái)模擬TSC的功能。每來(lái)一個(gè)時(shí)鐘脈沖,timer1的TCNT1寄存器減1,減到零后產(chǎn)生時(shí)鐘中斷,再從TDATA1中讀TCNT1的值,往復運行。由于TCNT1寄存器僅32位,s3c4510b的主頻為50MHz,置TDATA的值為0xffffffff時(shí),僅運行8分多鐘就溢出了。于是設置一個(gè)32位全局變量tsc.hltsc,timer1每次中斷到來(lái)時(shí)將這個(gè)全局變量加1,為了使系統更精確,必須將timer1中斷設置為最高優(yōu)先級,這樣就可以模擬64位的TSC寄存器。

實(shí)驗結果及結論

該系統平臺為:以ARM7TDMI為核心的Samsung4510B處理器、2M閃存和16MRAM,處理器運行頻率為50MHz。經(jīng)驗證,未加載實(shí)時(shí)內核前,中斷延遲雖大多數在30us(1500個(gè)時(shí)鐘脈沖@50MHz)以下,但是并不十分穩定,有時(shí)超過(guò)200us(10000時(shí)鐘脈沖@50MHz),最高的甚至達到430us(21525個(gè)時(shí)鐘脈沖@50MHz)。實(shí)時(shí)系統以最大中斷延遲作為衡量指標,因此這對于實(shí)時(shí)應用來(lái)講是不能忍受的。加載了實(shí)時(shí)模塊后,中斷延遲時(shí)間大約為10us~30us,而且結果十分穩定,完全滿(mǎn)足實(shí)時(shí)系統的相關(guān)要求。

本文小結

本文提出的嵌入式實(shí)時(shí)操作系統采用雙內核機制、實(shí)現了RTHAL的概念,使得直接修改內核的部分減至最小。同時(shí)實(shí)時(shí)內核充分利用模塊動(dòng)態(tài)加載機制,在系統運行時(shí)方便地加添加、刪除各個(gè)功能模塊,從而大大減少核心代碼的規模、節省內核空間、方便進(jìn)行動(dòng)態(tài)配置,對于資源要求苛刻而應用場(chǎng)合多變的嵌入式領(lǐng)域很有優(yōu)勢。

參考文獻:

[1] Anon. Embedded Linux gains high-availability framework [J]. Electronic Design, 2001,49(21):36.

[2] Bollinger. Survey of Linux applications [J]. IEEE Software,1999,16(1): 72~79.

[3] Ludwick, Scott. Linux for data acquisition [J]. EE: Evaluation Engineering, 2002,41(2): 12~14.

[4] 王濟勇,林濤.一種嵌入式系統實(shí)時(shí)性能分析的融合機制[J].計算機科學(xué),2004,31(1):157~161.

[5] 屈浩然,李鳳華.一種嵌入式實(shí)時(shí)Linux系統設計與實(shí)現[J].計算機工程與應用,2004:119~120.

[6] Barabanov M,Yodaiken V. Introducing real-time Linux. Linux Journal[J], 1997, (34):19~23.

[7] Lui S, Rajkumar R, Lehoczky J. Priority inheritanceprotocols: An approach to real-time synchronization. IEEE Transactionson Computers[J], 1990,39(9):1175~1185.

作者:崔珂, EMAIL: ck_summersun@163.com

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
uc-OS和linux
嵌入式操作系統的簡(jiǎn)化及其在電力保護系統中的應用
RTLinux的介紹—嵌入式學(xué)院(華清遠見(jiàn)旗下品牌)
Linux進(jìn)程調度
如何選擇一個(gè)合適的嵌入式操作系統?Linux操作系統實(shí)時(shí)性分析
IPTV機頂盒嵌入式系統研究 - 中華論文網(wǎng)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久