電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>基于標(biāo)準(zhǔn)Linux2.6內(nèi)核的實(shí)時(shí)性增強(qiáng)方案

基于標(biāo)準(zhǔn)Linux2.6內(nèi)核的實(shí)時(shí)性增強(qiáng)方案

2017-11-01 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

Linux以其功能強(qiáng)大、源代碼開(kāi)放、支持多種硬件平臺(tái)、模塊化設(shè)計(jì)方案以及豐富的開(kāi)發(fā)工具支持等特點(diǎn)廣泛應(yīng)用在嵌入式系統(tǒng)領(lǐng)域。作為嵌入式產(chǎn)品操作系統(tǒng)平臺(tái),具有較好的實(shí)時(shí)性、系統(tǒng)可靠性、任務(wù)處理隨機(jī)性是系統(tǒng)追求的目標(biāo),目前商業(yè)嵌入式操作系統(tǒng)實(shí)時(shí)性能可以滿(mǎn)足嵌入式領(lǐng)域的需求,但由于其價(jià)格昂貴,應(yīng)用受到了限制[1]。而嵌入式Linux以其非常低廉的價(jià)格,可以大大地降低成本,逐漸成為嵌入式操作系統(tǒng)的首選。但由于其在實(shí)時(shí)應(yīng)用領(lǐng)域的技術(shù)障礙,要應(yīng)用在嵌入式領(lǐng)域,還必須對(duì)Linux內(nèi)核作必要的改進(jìn)。本文以S3C2410+Linux作為移動(dòng)機(jī)器人操作平臺(tái),為了提高機(jī)器人任務(wù)處理的實(shí)時(shí)性,針對(duì)影響Linux OS實(shí)時(shí)性能的若干方面進(jìn)行研究,并利用相應(yīng)的解決方法基于標(biāo)準(zhǔn)Linux2.6內(nèi)核加以實(shí)現(xiàn),最后通過(guò)測(cè)試,驗(yàn)證了此改進(jìn)方法的效果。
  1 Linux內(nèi)核實(shí)時(shí)性分析
  1.1 Linux內(nèi)核制約實(shí)時(shí)性的因素
  衡量操作系統(tǒng)實(shí)時(shí)性的指標(biāo)主要有中斷延遲和搶占延遲。嵌入式系統(tǒng)中很多實(shí)時(shí)任務(wù)是靠中斷驅(qū)動(dòng)的,中斷事件必須在限定的時(shí)限內(nèi)處理,否則將產(chǎn)生災(zāi)難性的后果。大多數(shù)實(shí)時(shí)系統(tǒng)都是處理一些周期性的或非周期性的重復(fù)事件,事件產(chǎn)生的頻度就確定了任務(wù)的執(zhí)行時(shí)限,因此每次事件發(fā)生時(shí),相應(yīng)的處理任務(wù)必須及時(shí)響應(yīng)處理,否則將無(wú)法滿(mǎn)足時(shí)限[2]。搶占延遲就反映了系統(tǒng)的響應(yīng)及時(shí)程度。針對(duì)Linux內(nèi)核,中斷關(guān)閉及中斷優(yōu)先級(jí)執(zhí)行機(jī)制、內(nèi)核不可搶占性、自旋鎖(spinlock)及大內(nèi)核鎖及一些O(n)的任務(wù)調(diào)度算法影響了系統(tǒng)的實(shí)時(shí)性能。
  1.2 現(xiàn)存增強(qiáng)Linux內(nèi)核實(shí)時(shí)性的技術(shù)
  多年來(lái),Linux實(shí)時(shí)性改進(jìn)技術(shù)的發(fā)展主要有兩種技術(shù)方案:(1)直接修改Linux內(nèi)核。針對(duì)內(nèi)核數(shù)據(jù)結(jié)構(gòu)、調(diào)度函數(shù)、中斷方式進(jìn)行改動(dòng),重新設(shè)計(jì)一個(gè)由優(yōu)先級(jí)驅(qū)動(dòng)的實(shí)時(shí)調(diào)度器,替換原有Linux內(nèi)核中的進(jìn)程調(diào)度器sched.c。這一方案主要是針對(duì)中斷機(jī)制、任務(wù)調(diào)度算法進(jìn)行改進(jìn)的,較為成功的案例為Kansas大學(xué)開(kāi)發(fā)的Kurt-Linux。Kurt提高了Linux系統(tǒng)中的實(shí)時(shí)精度,將時(shí)鐘芯片設(shè)置為單觸發(fā)狀態(tài)。對(duì)于實(shí)時(shí)任務(wù)的調(diào)度,Kurt-Linux采用基于時(shí)間的靜態(tài)實(shí)時(shí)CPU調(diào)度算法。實(shí)時(shí)任務(wù)在設(shè)計(jì)階段就需要明確地說(shuō)明其實(shí)時(shí)事件要發(fā)生的時(shí)間。這種調(diào)度算法對(duì)于那些循環(huán)執(zhí)行的任務(wù)能夠取得較好的調(diào)度效果;(2)在Linux內(nèi)核之外進(jìn)行實(shí)時(shí)性擴(kuò)展,添加一個(gè)實(shí)時(shí)內(nèi)核。實(shí)時(shí)內(nèi)核接管硬件所有中斷,并依據(jù)是否為實(shí)時(shí)任務(wù)給予響應(yīng)。Fsm Labs公司開(kāi)發(fā)的RTLinux就是依據(jù)這種策略開(kāi)發(fā)設(shè)計(jì)的[3]。以上論述的兩種技術(shù)方案有其可借鑒之處,但如果綜合考慮任務(wù)響應(yīng)、內(nèi)核可搶占性、實(shí)時(shí)調(diào)度策略等都將影響操作系統(tǒng)的實(shí)時(shí)性能,因此,這兩種技術(shù)還不能很好地滿(mǎn)足實(shí)時(shí)性要求。為了增強(qiáng)嵌入式Linux實(shí)時(shí)性能,下面將介紹中斷機(jī)制、內(nèi)核的搶占性以及大內(nèi)核鎖等相關(guān)問(wèn)題。
  2 Linux實(shí)時(shí)性改進(jìn)方法
  Linux2.4及以前版本內(nèi)核是不可搶占的,在Linux2.6中,內(nèi)核已經(jīng)可以搶占,實(shí)時(shí)性有所增強(qiáng)。但是內(nèi)核中仍然有不可搶占的區(qū)域,如自旋鎖spinlock保護(hù)的臨界區(qū)等。另外,影響內(nèi)核實(shí)時(shí)性能的因素還有中斷運(yùn)行機(jī)制、大內(nèi)核鎖機(jī)制以及調(diào)度算法等。
  2.1 中斷運(yùn)行機(jī)制改進(jìn)
  在Linux標(biāo)準(zhǔn)內(nèi)核中,中斷是最高優(yōu)先級(jí)的執(zhí)行單元,硬件架構(gòu)決定了硬件中斷到來(lái)的時(shí)候在該中斷沒(méi)有被屏蔽的條件下必須處理。不管內(nèi)核當(dāng)時(shí)處理什么,即便是Linux中最高優(yōu)先級(jí)的實(shí)時(shí)進(jìn)程,只要有中斷發(fā)生,系統(tǒng)將立即響應(yīng)該事件并執(zhí)行相應(yīng)的中斷處理程序,這就大大削弱了Linux的實(shí)時(shí)性能。特別是系統(tǒng)有嚴(yán)重的網(wǎng)絡(luò)或I/O負(fù)載時(shí),中斷將非常頻繁,實(shí)時(shí)任務(wù)將很難有機(jī)會(huì)運(yùn)行,這對(duì)于Linux的實(shí)時(shí)應(yīng)用來(lái)說(shuō)是不可接受的。Linux采用的關(guān)中斷技術(shù)在關(guān)中斷區(qū)域使相應(yīng)實(shí)時(shí)任務(wù)得不到響應(yīng),增加了實(shí)時(shí)任務(wù)的中斷延遲。Linux實(shí)時(shí)化后自旋鎖變?yōu)榛コ怄i的技術(shù),但由于自旋鎖的中斷處理不能及時(shí)響應(yīng),降低了系統(tǒng)的實(shí)時(shí)性能。因此,借鑒Ingo Molnar實(shí)時(shí)補(bǔ)丁的實(shí)時(shí)化方法,采用中斷線(xiàn)程化技術(shù)改進(jìn)中斷運(yùn)行機(jī)制,中斷將作為內(nèi)核線(xiàn)程運(yùn)行而且賦予不同的實(shí)時(shí)優(yōu)先級(jí),實(shí)時(shí)任務(wù)可以有比中斷線(xiàn)程更高的優(yōu)先級(jí),這樣,實(shí)時(shí)任務(wù)就可以作為最高優(yōu)先級(jí)的執(zhí)行單元來(lái)運(yùn)行了,即使在嚴(yán)重負(fù)載下仍有實(shí)時(shí)性保證。另一方面,中斷處理線(xiàn)程也可以因?yàn)樵趦?nèi)核同步中得不到鎖而掛載到鎖的等待隊(duì)列中,很多關(guān)中斷就不必真正的禁止硬件中斷了,而是禁止內(nèi)核進(jìn)程搶占,從而減小了中斷延遲[4]。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)