面向多媒體應(yīng)用的嵌入式Linux實(shí)時(shí)性研究
發(fā)布時(shí)間:2007/8/28 0:00:00 訪問(wèn)次數(shù):670
來(lái)源:電子技術(shù)應(yīng)用 作者:王建強(qiáng) 陳建安 劉鑰婷
摘要:首先對(duì)Linux系統(tǒng)的實(shí)時(shí)機(jī)制作了分析,然后根據(jù)多媒體應(yīng)用的特點(diǎn).通過(guò)改進(jìn)Linux系統(tǒng)的實(shí)時(shí)性,構(gòu)建了面向多媒體應(yīng)用的嵌入式Linux系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在實(shí)時(shí)性方面完全可以滿足多媒體應(yīng)用的需求。
關(guān)鍵詞:嵌入式系統(tǒng)實(shí)時(shí)性Linux多媒體應(yīng)用
當(dāng)今信息社會(huì),以多媒體為特征的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展及應(yīng)用對(duì)人類社會(huì)產(chǎn)生的影響和作用愈來(lái)愈明顯,愈來(lái)愈重要。多媒體技術(shù)的發(fā)展在很大程度上依賴于多媒體軟件開發(fā)的水平。目前不管是支撐多媒體的系統(tǒng)軟件,還是應(yīng)用軟件,都在能力和數(shù)量上難以滿足多媒體飛速發(fā)展的需要。特別是多媒體系統(tǒng)軟件的缺乏,一直是制約多媒體產(chǎn)業(yè)發(fā)展的瓶頸問(wèn)題之一。
Linux從1991年誕生之日起至今不過(guò)十來(lái)年,卻已發(fā)展成為一個(gè)功能強(qiáng)大、設(shè)計(jì)完善的操作系統(tǒng)。在嵌入式領(lǐng)域,Linux同樣獲得了飛速發(fā)展。Linux具有以下特點(diǎn):
(1)Linux操作系統(tǒng)的開放源碼易于定制剪裁,在價(jià)格上有競(jìng)爭(zhēng)力;
(2)Linux操作系統(tǒng)的內(nèi)核小、功能強(qiáng)大、運(yùn)行穩(wěn)定、系統(tǒng)強(qiáng)壯、效率高;
(3)Linux操作系統(tǒng)不僅支持X86 CPU,還可以支持其他數(shù)十種CPU芯片;
(4)Linux支持所有標(biāo)準(zhǔn)的因特網(wǎng)協(xié)議,幾乎所有的協(xié)議和網(wǎng)絡(luò)接口都定制在其中。
因此,Linux系統(tǒng)是多媒體終端操作系統(tǒng)的首選。
1 通用Linux實(shí)時(shí)性分析及其在實(shí)時(shí)性方面的不足
雖然目前Linux內(nèi)核在實(shí)時(shí)性方面有所增強(qiáng),但由于Linux系統(tǒng)本身是一個(gè)面向桌面的系統(tǒng),所以將它應(yīng)用于多媒體終端時(shí),在實(shí)時(shí)性方面仍存在一些問(wèn)題。
1.1 通用Linux系統(tǒng)的調(diào)度策略
通用Linux系統(tǒng)支持實(shí)時(shí)和非實(shí)時(shí)兩種進(jìn)程,實(shí)時(shí)進(jìn)程相對(duì)于普通進(jìn)程具有絕對(duì)的優(yōu)先級(jí)。對(duì)應(yīng)地,實(shí)時(shí)進(jìn)程采用SCHED_FIFO或者SCHED_RR調(diào)度策略,普通的進(jìn)程采用SCHED_OTTIER調(diào)度策略。
SCHED_OTHER調(diào)度策略本質(zhì)上是一種比例共享的調(diào)度策略,它的這種設(shè)計(jì)方法能夠保證進(jìn)程調(diào)度時(shí)的公平性:一個(gè)低優(yōu)先級(jí)的進(jìn)程在每一個(gè)epoch中也會(huì)得到自己應(yīng)得的那些CPU執(zhí)行時(shí)間,另外它也提拱了不同進(jìn)程的優(yōu)先級(jí)區(qū)分,具有高priority值的進(jìn)程能夠獲得更多的執(zhí)行時(shí)間。
對(duì)于實(shí)時(shí)進(jìn)程來(lái)說(shuō),它們使用基于實(shí)時(shí)優(yōu)先級(jí)rt_pnonty的優(yōu)先級(jí)調(diào)度策略,但根據(jù)不同的調(diào)度策略,同一實(shí)時(shí)優(yōu)先級(jí)的進(jìn)程之間的調(diào)度方法有所不同。
Linux調(diào)度時(shí),要遍歷運(yùn)行隊(duì)列,對(duì)隊(duì)列中的每一個(gè)進(jìn)程計(jì)算goodness值,goodness最大的進(jìn)程將被選中運(yùn)行。根據(jù)調(diào)度策略的不同,進(jìn)程的goodness值也要做不同的計(jì)算。普通進(jìn)程的gooclness值是在該進(jìn)程計(jì)數(shù)值counter基礎(chǔ)上略有浮動(dòng),其范圍是O~999。實(shí)時(shí)進(jìn)程的goodness值是將該進(jìn)程實(shí)時(shí)優(yōu)先級(jí)rt_priority加上1000。所以實(shí)時(shí)進(jìn)程的goodness總是大于非實(shí)時(shí)進(jìn)程,從而保證了實(shí)時(shí)進(jìn)程的優(yōu)先調(diào)度權(quán)。函數(shù)goodness()如下:
從上面的Soodness()函數(shù)可以看出普通Linux內(nèi)核的進(jìn)程調(diào)度算法只是軟實(shí)時(shí)的,并不是硬實(shí)時(shí)的。
1.2通用Linux實(shí)時(shí)性方面的缺陷
(1)Linux系統(tǒng)中的調(diào)度單位為lOms,所以它不能夠提供精確的定時(shí);
(2)當(dāng)一個(gè)進(jìn)程調(diào)用系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài)運(yùn)行時(shí),它是不可被搶占的;
(3)Linux內(nèi)核實(shí)現(xiàn)使用了大量的封中斷操作會(huì)造成中斷的丟失;
(4)由于使用虛擬內(nèi)存技術(shù),當(dāng)發(fā)生頁(yè)出錯(cuò)時(shí),需要從硬盤中讀取交換數(shù)據(jù),但硬盤讀寫由于存儲(chǔ)位置的隨機(jī)性會(huì)導(dǎo)致隨機(jī)的讀寫時(shí)間,這在某些情況下會(huì)影響一些實(shí)時(shí)任務(wù)的截止期限;
(5)雖然Linu~進(jìn)程調(diào)度也支持實(shí)時(shí)優(yōu)先級(jí),但缺乏有效的實(shí)時(shí)任務(wù)調(diào)度機(jī)制和調(diào)度算法;其網(wǎng)絡(luò)子系統(tǒng)的協(xié)議處理和其他設(shè)備的中斷處理都沒(méi)有與它對(duì)應(yīng)的進(jìn)程的調(diào)度關(guān)聯(lián)起來(lái),并且其自身也沒(méi)有明確的調(diào)度機(jī)制。
2 面向多媒體應(yīng)用的Linux實(shí)時(shí)性改進(jìn)
提高Linux的實(shí)時(shí)性一般有兩種方法:一種是對(duì)普通的Linux內(nèi)核的數(shù)據(jù)結(jié)構(gòu)、調(diào)度函數(shù)、中斷方式等進(jìn)行修改,使其能夠處理實(shí)時(shí)進(jìn)程。另一種是在Linux內(nèi)核之外,進(jìn)行實(shí)時(shí)性擴(kuò)展。也就是在普通Linux的基礎(chǔ)之上再設(shè)計(jì)一個(gè)用于專門處理實(shí)時(shí)進(jìn)程的內(nèi)核。為了提高Linux的實(shí)時(shí)性,并且使之能夠更好地滿足多媒體應(yīng)用系統(tǒng)的需求,本文采用第一種方法來(lái)提高系統(tǒng)的實(shí)時(shí)性。
2.1 提高系統(tǒng)所支持的時(shí)鐘精度
為了提高Linux系統(tǒng)的實(shí)時(shí)特性,必須提高系統(tǒng)所支持的時(shí)鐘精度。但如果僅僅簡(jiǎn)單地提高時(shí)鐘頻率,會(huì)引起調(diào)度負(fù)載的增加,從而嚴(yán)重降低系統(tǒng)的性能。為了解決這個(gè)矛盾,本文將時(shí)鐘芯片設(shè)置為單次觸發(fā)狀態(tài),即每次給時(shí)鐘芯片設(shè)置一個(gè)超時(shí)時(shí)間,然后到該超時(shí)事件發(fā)生時(shí)在時(shí)鐘中斷處理程序中再次根據(jù)需要給時(shí)鐘芯片設(shè)置一個(gè)超時(shí)時(shí)間。其基本思想是:一個(gè)精確的定時(shí)意味著時(shí)鐘中斷在一個(gè)比較精確的時(shí)間發(fā)生,但并非一定需要系統(tǒng)時(shí)鐘頻率達(dá)到此精度。它利用CPU的時(shí)鐘計(jì)數(shù)器來(lái)提供精度可
來(lái)源:電子技術(shù)應(yīng)用 作者:王建強(qiáng) 陳建安 劉鑰婷
摘要:首先對(duì)Linux系統(tǒng)的實(shí)時(shí)機(jī)制作了分析,然后根據(jù)多媒體應(yīng)用的特點(diǎn).通過(guò)改進(jìn)Linux系統(tǒng)的實(shí)時(shí)性,構(gòu)建了面向多媒體應(yīng)用的嵌入式Linux系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在實(shí)時(shí)性方面完全可以滿足多媒體應(yīng)用的需求。
關(guān)鍵詞:嵌入式系統(tǒng)實(shí)時(shí)性Linux多媒體應(yīng)用
當(dāng)今信息社會(huì),以多媒體為特征的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展及應(yīng)用對(duì)人類社會(huì)產(chǎn)生的影響和作用愈來(lái)愈明顯,愈來(lái)愈重要。多媒體技術(shù)的發(fā)展在很大程度上依賴于多媒體軟件開發(fā)的水平。目前不管是支撐多媒體的系統(tǒng)軟件,還是應(yīng)用軟件,都在能力和數(shù)量上難以滿足多媒體飛速發(fā)展的需要。特別是多媒體系統(tǒng)軟件的缺乏,一直是制約多媒體產(chǎn)業(yè)發(fā)展的瓶頸問(wèn)題之一。
Linux從1991年誕生之日起至今不過(guò)十來(lái)年,卻已發(fā)展成為一個(gè)功能強(qiáng)大、設(shè)計(jì)完善的操作系統(tǒng)。在嵌入式領(lǐng)域,Linux同樣獲得了飛速發(fā)展。Linux具有以下特點(diǎn):
(1)Linux操作系統(tǒng)的開放源碼易于定制剪裁,在價(jià)格上有競(jìng)爭(zhēng)力;
(2)Linux操作系統(tǒng)的內(nèi)核小、功能強(qiáng)大、運(yùn)行穩(wěn)定、系統(tǒng)強(qiáng)壯、效率高;
(3)Linux操作系統(tǒng)不僅支持X86 CPU,還可以支持其他數(shù)十種CPU芯片;
(4)Linux支持所有標(biāo)準(zhǔn)的因特網(wǎng)協(xié)議,幾乎所有的協(xié)議和網(wǎng)絡(luò)接口都定制在其中。
因此,Linux系統(tǒng)是多媒體終端操作系統(tǒng)的首選。
1 通用Linux實(shí)時(shí)性分析及其在實(shí)時(shí)性方面的不足
雖然目前Linux內(nèi)核在實(shí)時(shí)性方面有所增強(qiáng),但由于Linux系統(tǒng)本身是一個(gè)面向桌面的系統(tǒng),所以將它應(yīng)用于多媒體終端時(shí),在實(shí)時(shí)性方面仍存在一些問(wèn)題。
1.1 通用Linux系統(tǒng)的調(diào)度策略
通用Linux系統(tǒng)支持實(shí)時(shí)和非實(shí)時(shí)兩種進(jìn)程,實(shí)時(shí)進(jìn)程相對(duì)于普通進(jìn)程具有絕對(duì)的優(yōu)先級(jí)。對(duì)應(yīng)地,實(shí)時(shí)進(jìn)程采用SCHED_FIFO或者SCHED_RR調(diào)度策略,普通的進(jìn)程采用SCHED_OTTIER調(diào)度策略。
SCHED_OTHER調(diào)度策略本質(zhì)上是一種比例共享的調(diào)度策略,它的這種設(shè)計(jì)方法能夠保證進(jìn)程調(diào)度時(shí)的公平性:一個(gè)低優(yōu)先級(jí)的進(jìn)程在每一個(gè)epoch中也會(huì)得到自己應(yīng)得的那些CPU執(zhí)行時(shí)間,另外它也提拱了不同進(jìn)程的優(yōu)先級(jí)區(qū)分,具有高priority值的進(jìn)程能夠獲得更多的執(zhí)行時(shí)間。
對(duì)于實(shí)時(shí)進(jìn)程來(lái)說(shuō),它們使用基于實(shí)時(shí)優(yōu)先級(jí)rt_pnonty的優(yōu)先級(jí)調(diào)度策略,但根據(jù)不同的調(diào)度策略,同一實(shí)時(shí)優(yōu)先級(jí)的進(jìn)程之間的調(diào)度方法有所不同。
Linux調(diào)度時(shí),要遍歷運(yùn)行隊(duì)列,對(duì)隊(duì)列中的每一個(gè)進(jìn)程計(jì)算goodness值,goodness最大的進(jìn)程將被選中運(yùn)行。根據(jù)調(diào)度策略的不同,進(jìn)程的goodness值也要做不同的計(jì)算。普通進(jìn)程的gooclness值是在該進(jìn)程計(jì)數(shù)值counter基礎(chǔ)上略有浮動(dòng),其范圍是O~999。實(shí)時(shí)進(jìn)程的goodness值是將該進(jìn)程實(shí)時(shí)優(yōu)先級(jí)rt_priority加上1000。所以實(shí)時(shí)進(jìn)程的goodness總是大于非實(shí)時(shí)進(jìn)程,從而保證了實(shí)時(shí)進(jìn)程的優(yōu)先調(diào)度權(quán)。函數(shù)goodness()如下:
從上面的Soodness()函數(shù)可以看出普通Linux內(nèi)核的進(jìn)程調(diào)度算法只是軟實(shí)時(shí)的,并不是硬實(shí)時(shí)的。
1.2通用Linux實(shí)時(shí)性方面的缺陷
(1)Linux系統(tǒng)中的調(diào)度單位為lOms,所以它不能夠提供精確的定時(shí);
(2)當(dāng)一個(gè)進(jìn)程調(diào)用系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài)運(yùn)行時(shí),它是不可被搶占的;
(3)Linux內(nèi)核實(shí)現(xiàn)使用了大量的封中斷操作會(huì)造成中斷的丟失;
(4)由于使用虛擬內(nèi)存技術(shù),當(dāng)發(fā)生頁(yè)出錯(cuò)時(shí),需要從硬盤中讀取交換數(shù)據(jù),但硬盤讀寫由于存儲(chǔ)位置的隨機(jī)性會(huì)導(dǎo)致隨機(jī)的讀寫時(shí)間,這在某些情況下會(huì)影響一些實(shí)時(shí)任務(wù)的截止期限;
(5)雖然Linu~進(jìn)程調(diào)度也支持實(shí)時(shí)優(yōu)先級(jí),但缺乏有效的實(shí)時(shí)任務(wù)調(diào)度機(jī)制和調(diào)度算法;其網(wǎng)絡(luò)子系統(tǒng)的協(xié)議處理和其他設(shè)備的中斷處理都沒(méi)有與它對(duì)應(yīng)的進(jìn)程的調(diào)度關(guān)聯(lián)起來(lái),并且其自身也沒(méi)有明確的調(diào)度機(jī)制。
2 面向多媒體應(yīng)用的Linux實(shí)時(shí)性改進(jìn)
提高Linux的實(shí)時(shí)性一般有兩種方法:一種是對(duì)普通的Linux內(nèi)核的數(shù)據(jù)結(jié)構(gòu)、調(diào)度函數(shù)、中斷方式等進(jìn)行修改,使其能夠處理實(shí)時(shí)進(jìn)程。另一種是在Linux內(nèi)核之外,進(jìn)行實(shí)時(shí)性擴(kuò)展。也就是在普通Linux的基礎(chǔ)之上再設(shè)計(jì)一個(gè)用于專門處理實(shí)時(shí)進(jìn)程的內(nèi)核。為了提高Linux的實(shí)時(shí)性,并且使之能夠更好地滿足多媒體應(yīng)用系統(tǒng)的需求,本文采用第一種方法來(lái)提高系統(tǒng)的實(shí)時(shí)性。
2.1 提高系統(tǒng)所支持的時(shí)鐘精度
為了提高Linux系統(tǒng)的實(shí)時(shí)特性,必須提高系統(tǒng)所支持的時(shí)鐘精度。但如果僅僅簡(jiǎn)單地提高時(shí)鐘頻率,會(huì)引起調(diào)度負(fù)載的增加,從而嚴(yán)重降低系統(tǒng)的性能。為了解決這個(gè)矛盾,本文將時(shí)鐘芯片設(shè)置為單次觸發(fā)狀態(tài),即每次給時(shí)鐘芯片設(shè)置一個(gè)超時(shí)時(shí)間,然后到該超時(shí)事件發(fā)生時(shí)在時(shí)鐘中斷處理程序中再次根據(jù)需要給時(shí)鐘芯片設(shè)置一個(gè)超時(shí)時(shí)間。其基本思想是:一個(gè)精確的定時(shí)意味著時(shí)鐘中斷在一個(gè)比較精確的時(shí)間發(fā)生,但并非一定需要系統(tǒng)時(shí)鐘頻率達(dá)到此精度。它利用CPU的時(shí)鐘計(jì)數(shù)器來(lái)提供精度可
熱門點(diǎn)擊
- 嵌入式LwIP協(xié)議棧的內(nèi)存管理
- 基于嵌入式Linux的BACnet控制器軟件
- 面向多媒體應(yīng)用的嵌入式Linux實(shí)時(shí)性研究
- TLC320AIC23在音頻處理中的應(yīng)用
- 用GNU工具開發(fā)基于ARM的嵌入式系統(tǒng)
- 基于模型和產(chǎn)品代碼生成的汽車嵌入式系統(tǒng)設(shè)計(jì)
- 基于嵌入式Web的電子交警系統(tǒng)
- 基于T6963CFG的LCD在嵌入式系統(tǒng)中的
- 智能小區(qū)中嵌入式MP3流媒體網(wǎng)絡(luò)廣播系統(tǒng)設(shè)計(jì)
- 基于ET系列芯片的嵌入式多媒體導(dǎo)游系統(tǒng)的設(shè)計(jì)
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- 分立器件&無(wú)源元件選型及工作原
- 新一代“超越EUV”光刻系統(tǒng)參
- 最新品BAT激光器制造工藝設(shè)計(jì)
- 新款汽車SoC產(chǎn)品Malibo
- 新芯片品類FPCU(現(xiàn)場(chǎng)可編程
- 電動(dòng)汽車動(dòng)力總成系統(tǒng)̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究