新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux實時化技術

        嵌入式Linux實時化技術

        作者:黃武陵 中科院自動化所 何小慶 北京麥克泰軟件技術有限公司 艾云峰 中科院研究生院 時間:2010-03-02 來源:電子產品世界 收藏

          實時化技術及評價

        本文引用地址:http://www.104case.com/article/106458.htm

          2.6版本內核實時性能有一定增強,雙內核方式的實時化技術也在不斷發展中。原來由FSMLab維護的RTLinux,其版權在2007年2月被Wind River購買,RTAI支持x386等體系結構,但由于其代碼較難維護、bug較難調試等原因,許多開發者加入了Xenomai項目。Xenomai支持最新2.6版 Linux,相比之下代碼相對穩定和可維護,開發模式較活躍。

          內核補丁方式的Linux實時化技術在2.6版內核基礎上做了大量改進,使得內核中除了中斷關閉和IRQ線程分派、調度和上下文切換之外的絕大部分代碼都可以被搶占,不可搶占的自旋鎖保護臨界區從一千多個減少到幾十個,使得內核實時性得到極大的提高,獲得社區廣泛支持并逐漸成為Linux實時化主流技術。

          Linux內核實時化改進

          實時搶占內核補丁針對Linux各種延遲進行了實時化改進,主要包括了幾個方面的技術。

          ● 實時搶占內核

          為了實現內核完全可搶占,實時內核臨界區用高性能優先級繼承mutex替換原來自旋鎖(spin-lock)來進行保護,使得在臨界區內的執行也可被搶占。只有當線程想訪問一個其他線程正在訪問的臨界區時,才被調度至睡眠,直到所保護的臨界區被釋放時被喚醒。

          在實時搶占內核中通過優先級繼承機制(PI)在線程被一個低優先級線程所持有的資源阻塞時,低優先級線程通過繼承被阻塞線程優先級,盡快執行并釋放所持資源而不被其他線程所搶占。

          ● 新型鎖機制帶來內核性能提升

          實時搶占補丁替換了大內核鎖(BKL),將BKL從spin lock改成是mutex,持有BKL的線程也可以被搶占,減少了內核調度延遲。此外,實時搶占補丁通過mutex替代semaphore,避免了不必要的時間負載。實時搶占補丁實現了可搶占的RCU(Read- Copy Update)鎖和串行化讀寫鎖,保證了執行可預測性,提高了性能。

          ● 中斷線程化

          實時搶占補丁通過內核線程來實現一些硬件中斷和軟件中斷的服務程序。體系結構相關處理代碼設置IRQ狀態、檢查線程化的中斷是否使能,并喚醒相關線程。在中斷線程被調度執行后,進行中斷服務處理。在實時搶占內核中,用戶線程優先級可以高于設備中斷服務線程。實時任務無需等待設備驅動處理程序執行,減小了實時搶占延遲。

          ● 時鐘系統改進

          實時搶占內核的時鐘系統重新進行了設計,實現了高精度定時器。時鐘精度不再依賴jiffies,使POSIX定時器和nanosleep精度由具體硬件所能提供的精度決定,使得gettimeofday能夠提供實時系統所需的精確時間值。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        關鍵詞: 嵌入式 Linux 處理器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 仁怀市| 顺平县| 万州区| 邵阳县| 洮南市| 青田县| 黄骅市| 大竹县| 甘谷县| 清水河县| 武鸣县| 高雄县| 正蓝旗| 绍兴县| 柘城县| 中方县| 全南县| 法库县| 通州市| 龙井市| 贵德县| 贵州省| 武鸣县| 赤峰市| 湘阴县| 阿拉善右旗| 铁岭市| 西昌市| 衡水市| 永顺县| 房产| 淮北市| 静宁县| 偃师市| 昌江| 巴彦淖尔市| 怀集县| 昭苏县| 武川县| 绥中县| 察哈|