《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式Linux實時性能提高方案
嵌入式Linux實時性能提高方案
摘要:  Linux作為一個通用操作系統,主要考慮的是調度的公平性和吞吐量等指標。然而,在實時方面它還不能很好地滿足實時系統方面的需要,其本身僅僅提供了一些實時處理的支持,這包括支持大部分POSIX標準中的實時功能,支持多任務、多線程,具有豐富的通信機制等;同時也提供了符合POSIX標準的調度策略,包括FIFO調度策略、時間片輪轉調度策略和靜態優先級搶占式調度策略。Linux區分實時進程和普通進程,并采用不同的調度策略。
Abstract:
Key words :

1 引言

  分析了Linux的實時性,針對其在實時應用中的技術障礙,在參考了與此相關研究基礎上,從三方面提出了改善Linux實時性能的改進措施。為提高嵌入式應用響應時間精度,提出兩種細化Linux時鐘粒度方法;為增強系統內核對實時任務的響應能力,采用插入搶占點和修改內核法增強Linux內核的可搶占性;為保證硬實時任務的時限要求,把原Linux的單運行隊列改為雙運行隊列,硬實時任務單獨被放在一個隊列中,并采用MLF調度算法代替原內核的FIFO" title="FIFO">FIFO調度算法。本文分析了標準Linux在實時應用中的技術障礙,參考了修改核方法的思想,從內核時鐘管理、內核的搶占性、內核調度算法三方面論述了改善標準Linux實時性能的方法。

  2 Linux 在實時應用中的技術障礙

  2.1 Linux的實時性分析

  Linux作為一個通用操作系統,主要考慮的是調度的公平性和吞吐量等指標。然而,在實時方面它還不能很好地滿足實時系統方面的需要,其本身僅僅提供了一些實時處理的支持,這包括支持大部分POSIX標準中的實時功能,支持多任務、多線程,具有豐富的通信機制等;同時也提供了符合POSIX標準的調度策略,包括FIFO調度策略、時間片輪轉調度策略和靜態優先級搶占式調度策略。Linux區分實時進程和普通進程,并采用不同的調度策略。

  為了同時支持實時和非實時兩種進程,Linux的調度策略簡單講就是優先級加上時間片。當系統中有實時進程到來時,系統賦予它最高的優先級。體現在實時性上,Linux采用了兩種簡單的調度策略,即先來先服務調度(SCHED-FIFO)和時間片輪轉調度(SCHED-RR)。具體是將所有處于運行狀態的任務掛接在一個run-queue 隊列中,并將任務分成實時和非實時任務,對不同的任務,在其任務控制塊task-struct中用一個policy屬性來確定其調度策略。對實時性要求較嚴的硬實時任務采用SCHED-FIFO調度,使之在一次調度后運行完畢。對普通非實時進程,Linux采用基于優先級的輪轉策略。

  2.2 Linux在實時應用中的技術障礙

  盡管Linux本身提供了一些支持實時性的機制,然而,由于Linux系統是以高的吞吐量和公平性為追求目標,基本上沒有考慮實時應用所要滿足的時間約束,它只是提供了一些相對簡單的任務調度策略。因此,實時性問題是將Linux應用于嵌入式系統開發的一大障礙,無法在硬實時系統中得到應用。 Linux在實時應用中的技術障礙具體表現在:

  (1)Linux系統時鐘精度太過粗糙,時鐘中斷周期為10ms,使得其時間粒度過大,加大了任務響應延遲。

  (2) Linux的內核是不可搶占的, 當一個任務通過系統調用進入內核態運行時,一個具有更高優先級的進程,只有等待處于核心態的系統調用返回后方能執行,這將導致優先級逆轉。實時任務執行時間的不確定性,顯然不能滿足硬實時應用的要求。

  (3) Linux采用對臨界區操作時屏蔽中斷的方式,在中斷處理中是不允許進行任務調度的,從而抑制了系統及時響應外部操作的能力。

  (4) 缺乏有效的實時任務調度機制和調度算法。

  針對這些問題,利用Linux作為底層操作系統,必須增強其內核的實時性能,從而構建出一個具有實時處理能力的嵌入式系統,適應嵌入式領域應用的需要。2.3 當前增強Linux內核實時性的主流技術

 

  近年來,人們對于Linux內核實時性改造提出了一些方法和設想,它們采用了不同的思路和技術方案。歸納總結,支持Linux的硬實時性一般有兩種策略[5]:一種是直接修改Linux內核,重新編寫一個由優先級驅動的實時調度器(Real-time Scheduler),替換原有內核中的進程調度器sched.c,KURT是采用這一方案較為成功的實時Linux操作系統;另外一種是在Linux內核之外, 以可加載內核模塊(Loadable Kernel Module)的形式添加實時內核,確保其高響應特性,實時內核接管來自硬件的所有中斷,并依據是否是實時任務決定是否直接響應。新墨西哥科技大學的 RT-Linux,就是基于這種策略而開發的。以上兩種策略有其借鑒之處,但如果綜合考慮任務響應、內核搶占性、實時調度策略等幾個影響操作系統實時性能的重要方面,它們還不能很好的滿足實時性問題。為了增強嵌入式Linux" title="嵌入式Linux">嵌入式Linux實時性能,下文將就內核時鐘精度、內核的搶占性以及內核調度算法等相關問題重點研究相應的解決方法。

  3 改善嵌入式Linux實時性能的方法

  針對Linux在實時應用中的技術障礙,將Linux改造成為支持實時任務的嵌入式操作系統, 主要從下面三個方面進行著手。

  3.1細化時鐘粒度

  精確的計時是實時調度器正確操作所必須的,調度器通常要求在一個特定的時刻進行任務切換,計時的錯誤將導致背離計劃的調度,引起任務釋放抖動。標準 Linux系統時鐘精度太過粗糙,時鐘中斷周期為10ms,不能滿足特定嵌入式應用領域中對于響應時間精度的要求。因此,在實時Linux應用中,需要細化其時鐘粒度,具體有兩種方式可以解決時鐘粒度問題:一是通過直接修改內核定時參數HZ的初值來細化時鐘粒度,如將標準Linux中內核定時參數HZ改為10000, 則時鐘粒度可以達到100us,這種方式雖然會增加一些系統開銷,但在強周期性環境下,對定時器的設置只需初始化一次,在一定程度上保證了處理效率;二是通過對可編程中斷定時器8254或先進的可編程中斷控制器進行編程來改進Linux時鐘機制,以提高其時鐘的分辨率,使毫秒級的粗粒度定時器變成微秒級的細粒度定時器。

  3.2 增強Linux內核的搶占性

  標準Linux內核是不可搶占的,導致較大的延遲,增強內核的可搶占性能,可提高系統內核對實時任務的響應能力。目前,有兩種方法修改Linux內核以提高實時任務搶占非實時任務的能力:一是在內核中增加搶占點的方法;二是直接將Linux內核改造成可搶占式內核。插入搶占點方法是在Linux內核中插入一些搶占點,當一個系統調用執行到搶占點時,如果有更高優先級的實時進程正在等待運行,那么正在執行系統調用的內核進程將會把CPU的控制權轉交給等待運行的實時進程;如果沒有更高優先級的實時進程等待,則當前進程將繼續執行,此時系統增加的開銷僅僅是檢測一下調度標志。將Linux內核改造成可搶占式內核方法的基本思想是產生運行調度器的機會,縮短任務發生到調度函數運行的時間間隔。這種方法修改了Linux源代碼中的自旋鎖宏以避免競爭,并在其中引入一個稱作搶占鎖計數器(PLC)的新的計數信號允許內核代碼搶占,當它為0時,允許搶占;當其為大于0的任何值時,禁止搶占。目前,針對這兩種修改 Linux內核的方法,已經有兩種比較成熟的Linux內核補丁被研制出來:搶占式補丁和低時延補丁。其中,搶占式補丁是Monta Vista開發的,它修改了內核代碼中的spinlock宏和中斷返回代碼,使得當前進程可被安全搶占,當自旋鎖釋放或者中斷線程完成時,調度器就有機會執行調度;低時延補丁是由Ingo Malnor提出,該方法只是在執行時間長的代碼塊上搶占,不采用強制式搶占,因此,如何找到延時長的代碼塊是解決問題的關鍵。

  3.3 改善Linux內核實時調度器的調度策略

  將進入系統的所有任務按實時性分成三類:硬實時、軟實時、非實時任務[6]。硬實時要求系統確保任務執行最壞情況下的執行時間,即必須滿足實時事件的響應時間的截止期限,否則,將引發致命的錯誤;軟實時是指統計意義上的實時,一般整體吞吐量大或整體響應速度快,但不能保證特定任務在指定時期內完成。針對不同的實時性任務,分別采用不同的調度方法進行處理。

  為了嚴格保證硬實時任務的時限要求,改善的Linux內核實時調度器采用了優先級調度算法,目前最小松弛時間優先調度算法MLF(Minimum- Laxity-First Scheduling Algorithm)是動態優先級調度最常見的實時調度策略。它在系統中為每一個任務設定松弛時間(任務的松弛時間等于任務的截止期減去任務執行時間、當前時間)即: laxity= deadline―current_time―CPU_time_needed,系統優先執行具有最小松弛時間的任務。根據就緒隊列的各任務的松弛時間來分配優先級,松弛時間最小的任務具有最高的優先級。為了提高Linux的實時性,我們設計了MLF調度器,并把它作為可加載模塊加入Linux內核中,在實現中需對內核進行相應的修改。為了區分任務的類型,對基本Linux的task_struct屬性進行改進,在其中增加SCHED_MLF調度策略,并按task_struct中的policy的取值來進行區分, 分別用SCHED_MLF,SCHED_RR,SCHED_OTHER來標識硬實時、軟實時、非實時任務。將處于運行狀態的三類任務放入兩個隊列,硬實時任務放入hard_real_queue隊列, 采用MLF調度算法,軟實時和非實時任務放入non_real_queue隊列(空閑任務也在其中),沿用原內核的RR調度算法。這兩個隊列可以用一個 run_queue[2]的指針數組來指向,如圖1 所示。

  

 

  圖1 雙對列任務運行

  雙隊列任務運行過程與原內核的單運行隊列執行流程的主要區別在:首先,各硬實時任務采用了MLF調度算法代替原內核的FIFO調度,提高了 Linux系統的實時性能。其次,在判斷是否有軟中斷需要處理之前需判斷硬實時任務隊列是否為空,如果不為空,即使存在中斷的后半部分需要處理,也要先調度硬實時任務投入運行,在硬實時隊列為空的條件下才去處理中斷的后半部分(因為中斷的后半部分沒有硬實時任務緊急)。最后,如果沒有硬實時任務存在,則說明只有run_queue [1]隊列中有軟實時或非實時任務存在,這時的處理方法和原內核對單運行隊列的處理方法相同。這樣改進后,可以明顯提高硬實時任務的調度效率,而在沒有硬實時任務時,系統性能沒有變化。

  4 結束語

  本文在分析Linux實時性的同時,探討了其本身提供的一些支持實時性的機制以及在實時應用中的技術障礙。而后,基于增強Linux內核實時性的主流技術,從細化時鐘粒度、增強內核搶占性及實時調度策略三方面入手,提出了改善Linux實時性能的優化方法。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲精品日韩精品| 女女同性精品视频| 欧美影院一区| 在线亚洲自拍| 亚洲手机视频| 老司机免费视频一区二区三区| 亚洲欧美制服另类日韩| 亚洲精品久久7777| 欧美日韩国产经典色站一区二区三区| 亚洲天堂久久| 一区二区欧美视频| 一区二区在线观看av| 欧美色视频日本高清在线观看| 久久久精品一区二区三区| 久久精品国产精品亚洲| 久久狠狠亚洲综合| 久久精品在线观看| 在线中文字幕不卡| 一区在线观看| 欧美日韩久久| 久久久久久亚洲精品杨幂换脸| 国产日本欧美在线观看| 国产精品成人一区| 国产亚洲成年网址在线观看| 激情亚洲网站| 欧美日韩免费在线视频| 久久久久女教师免费一区| 亚洲日本va午夜在线影院| 欧美在线不卡视频| 久久久美女艺术照精彩视频福利播放| 日韩视频免费观看高清完整版| 老牛国产精品一区的观看方式| 91久久久精品| 久久成人资源| 亚洲三级色网| 久久精品国产精品亚洲综合| 亚洲午夜在线视频| 国产精品区一区二区三区| 亚洲精品网址在线观看| 亚洲欧美日韩国产综合精品二区| 欧美一级淫片aaaaaaa视频| 欧美极品在线观看| 亚洲视频香蕉人妖| 欧美日韩国产成人| 欧美激情一区二区三区高清视频| 国产老女人精品毛片久久| 伊人天天综合| 伊人成人在线视频| 久久一区欧美| 欧美v日韩v国产v| 日韩亚洲欧美一区| 亚洲精品免费在线| 国产精品xxx在线观看www| 欧美精品123区| 午夜精品久久久久久久久久久久| 久久久久一区二区三区| 这里只有精品丝袜| 欧美在线视频在线播放完整版免费观看| 猛干欧美女孩| 亚洲精品视频二区| 欧美在线免费观看| 香蕉国产精品偷在线观看不卡| 亚洲三级免费电影| 国产精品三区www17con| 影音先锋中文字幕一区二区| 亚洲一区制服诱惑| 亚洲第一精品电影| 欧美日韩一区二区在线| 国语自产精品视频在线看一大j8| 亚洲二区视频| 激情综合中文娱乐网| 欧美日韩日日夜夜| 国产精品高潮粉嫩av| 国产区欧美区日韩区| 亚洲网站在线播放| 国产精品一区二区三区四区| 国产一区视频在线观看免费| 国产在线精品二区| 国产精品毛片va一区二区三区| 欧美日韩精品久久| 国产精品福利网| 久久亚洲精品伦理| 亚洲乱码精品一二三四区日韩在线| 欧美日韩综合精品| 国产一区二区视频在线观看| 中文精品99久久国产香蕉| 蜜臀av性久久久久蜜臀aⅴ| 国产精品天天摸av网| 国产一区二区精品| 噜噜噜久久亚洲精品国产品小说| 欧美午夜精品理论片a级按摩| 一区二区三区在线不卡| 亚洲美女在线视频| 久久躁狠狠躁夜夜爽| 欧美日一区二区三区在线观看国产免| 亚洲国产成人精品久久久国产成人一区| 一本一本久久a久久精品综合麻豆| 鲁鲁狠狠狠7777一区二区| 亚洲黄色在线看| 欧美日韩裸体免费视频| 欧美国产日韩一区| 国产日韩一级二级三级| 亚洲成人在线观看视频| 国产亚洲一二三区| 91久久精品一区| 午夜日韩福利| 亚洲精品久久| 亚洲欧洲日产国产网站| 亚洲欧美日韩综合| 中日韩男男gay无套| 欧美aⅴ99久久黑人专区| 亚洲精品免费在线播放| 亚洲激情欧美| 你懂的亚洲视频| 亚洲国产综合91精品麻豆| 亚洲人成毛片在线播放| 最新69国产成人精品视频免费| 久久精品色图| 久久精品在线播放| 国产欧美日韩一区| 国产精品青草久久| 欧美fxxxxxx另类| 欧美激情aⅴ一区二区三区| 韩日精品中文字幕| 久久久青草青青国产亚洲免观| 亚洲第一视频| 日韩视频专区| 国内在线观看一区二区三区| 免费试看一区| 国产精品国产馆在线真实露脸| 亚洲欧美日韩国产综合| 国产精品日韩欧美大师| 日韩一级视频免费观看在线| 欧美日韩三区四区| 蜜臀a∨国产成人精品| 夜夜爽av福利精品导航| 欧美一级二级三级蜜桃| 激情久久久久久| 精品av久久707| 亚洲欧美综合一区| 国产精品看片你懂得| 亚洲精品一区在线观看香蕉| 伊人久久综合97精品| 午夜欧美理论片| 午夜一区二区三视频在线观看| 亚洲欧美日韩视频二区| 国产精品久久久久永久免费观看| 国产精品制服诱惑| 欧美在线一区二区| 一本色道久久综合亚洲精品高清| 精品白丝av| 欧美日韩一区在线| 亚洲在线观看免费视频| 久久亚洲私人国产精品va媚药| 久久夜色精品一区| 国产精品国产三级国产| 亚洲视频在线二区| 国产精品视频免费在线观看| 久久久免费av| 国产欧美欧洲在线观看| 久色婷婷小香蕉久久| 亚洲精品国产精品国自产观看浪潮| 国产一区二区黄| 久久成人在线| 国产精品视频自拍| 欧美在线视频全部完| 欧美激情综合网| 午夜亚洲福利在线老司机| 国产精品视频你懂的| 国产精品欧美日韩一区二区| 国产精品综合不卡av| 亚洲成人在线网| 在线播放亚洲| 国产午夜亚洲精品羞羞网站| 久久久久久久综合狠狠综合| 久久国产精品99国产精| 亚洲最新视频在线播放| 国产精品捆绑调教| 欧美国产日韩一区二区三区| 黄色一区二区在线| 久久精品视频导航| 91久久中文| 国产精品高潮久久| 9人人澡人人爽人人精品| 在线观看av一区| 亚洲视频一区| 亚洲欧洲另类国产综合| 欧美国产日韩xxxxx| 欧美一区二区在线免费观看| 亚洲精品九九| 亚洲美女区一区| 国产精品免费一区豆花| 欧美精品偷拍| 免费观看成人www动漫视频| 亚洲一区免费网站| 国产精品狼人久久影院观看方式| 99国产欧美久久久精品| 最新热久久免费视频| 亚洲午夜在线观看视频在线| 99综合电影在线视频| 久久综合色天天久久综合图片| 久久综合伊人| 一区二区91| 亚洲精品一区二区在线| 国产精品久久久久久久久久免费看| 亚洲丁香婷深爱综合| 欧美一区二区三区另类| 韩国三级在线一区| 亚洲免费成人av| 激情成人av在线| 久久亚洲一区二区三区四区| 国产日韩久久| 欧美三级日本三级少妇99| 欧美国产日韩一区二区在线观看| 国产精品va| 亚洲免费观看高清完整版在线观看| 韩国三级电影一区二区| 国产一区二区日韩精品欧美精品| 99视频一区二区三区| 国内精品免费午夜毛片| 亚洲欧美经典视频| 久久精品91久久久久久再现| 亚洲欧美色一区| 欧美精品在线视频观看| 欧美性理论片在线观看片免费| 在线日韩电影| 国产欧亚日韩视频| 国产一区日韩一区| 欧美一区二区精品久久911| 欧美高清视频在线播放| 午夜在线播放视频欧美| 亚洲一区二区精品视频| 国产一区二区三区电影在线观看| 国产乱子伦一区二区三区国色天香| 欧美在线在线| 欧美一区二区视频免费观看| 蜜臀a∨国产成人精品| 国产一区欧美日韩| 国产精品麻豆va在线播放| 欧美成人网在线| 国产亚洲精品成人av久久ww| 亚洲欧美变态国产另类| 国产精品久久久久婷婷| 国产精品r级在线| 亚洲欧美国产高清| 亚洲视频一二区| 欧美精品一区在线| 一区二区在线视频观看| 亚洲调教视频在线观看| 国产精品一区在线观看你懂的| 国产毛片一区| 亚洲自拍另类| 136国产福利精品导航| 精品99视频| 欧美一级黄色网| 久久久777| 一区二区三区|亚洲午夜| 国产欧美日韩激情| 精品不卡一区二区三区| 欧美日韩精品福利| 亚洲精品久久久久久一区二区| 国产午夜精品一区二区三区视频| 红桃视频国产精品| 国产精品初高中精品久久| 欧美日韩精品一区二区三区| 狠狠色综合播放一区二区| 欧美精品一区二区三区在线看午夜| 黑人极品videos精品欧美裸| 国产一区深夜福利| 亚洲国产另类久久久精品极度| 亚洲欧美中文字幕| 黄色成人在线观看| 欧美性jizz18性欧美| 欧美激情第10页| 亚洲精品在线观| 国产精品卡一卡二| 国产综合欧美| 亚洲字幕在线观看| 国产精品美女久久久久久2018| 亚洲精品在线免费观看视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 午夜精品三级视频福利| 亚洲国产精品成人久久综合一区| 久久久www免费人成黑人精品| 亚洲一区免费| 亚洲国产成人久久综合| 国产一区二区成人久久免费影院| 激情成人综合网| 99re视频这里只有精品| 一区二区三区免费在线观看| 欧美日韩国产综合在线| 一区二区电影免费观看| 欧美成人一区二区三区片免费| 国产精品自在在线| 久久久久久穴| 永久免费毛片在线播放不卡| 欧美黑人国产人伦爽爽爽| 国产精品99久久久久久白浆小说| 一本久道久久久| 99在线热播精品免费| 欧美午夜精彩| 亚洲精品一区二区三区99| 久久精品二区三区| 欧美日韩在线播放三区| 亚洲毛片一区二区| 91久久精品久久国产性色也91| 亚洲美女在线国产| 一本久久知道综合久久| 在线看无码的免费网站| 亚洲大片在线观看| 一色屋精品视频在线观看网站| 久久成人综合网| 久久精品日韩一区二区三区| 亚洲桃色在线一区| 亚洲精品免费一区二区三区| 亚洲欧美综合国产精品一区| 在线一区二区三区做爰视频网站| 国产人妖伪娘一区91| 欧美在线不卡视频| 欧美一区二区黄| 亚洲黄色av一区| 亚洲国产欧美日韩另类综合| 国产精品久久久久天堂| 国产精品美女久久久久久免费| 欧美在线免费播放| 亚洲免费婷婷| 亚洲欧美综合网| 欧美 日韩 国产在线|