新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux分時操作系統的實時性分析

        Linux分時操作系統的實時性分析

        作者: 時間:2010-12-12 來源:網絡 收藏

        2. 搶占式內核體系結構的設計

        為了解決實現硬實時的最大障礙,使內核成為完全可被搶占實時內核,典型的實現方案是雙核結構。使用實時核來運行實時任務,內核來運行非實時任務。例如:對于實時數據采樣而言,利用實時內核運行一個實時任務來完成數據采集,另一個實時任務完成數據和控制輸出功能;同時利用Linux內核上運行的界面來進行數據顯示。如圖1所示。

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


        圖1 雙內核結構

        在Linux內核和硬件之間加個小的實時核,由它管理中斷,提供一些必要的功能,如底層任務創建、中斷服務程序,并且為底層任務、ISR和Linux進程之間進行通信排隊;而Linux內核本身則成為優先級最低的Idletask。

        要求強的應用編寫成實時任務,在實時內核上直接運行。Linux內核可以被優先級更高的實時任務搶占。對于Linux內核的修改主要集中在三方面:(1) 在Linux內核中影響的地方增加控制點,使內核在控制點可以被搶占,減少內核搶占延遲;(2) 將執行時間較長的系統劃分為幾個甚至是十幾個較小的塊分別執行,使實時任務隨時中斷非實時任務;(3) 根據實際需要,增加部分功能。

        隨著嵌入式應用的深入,特別是在數字通信和網絡中的應用,多核結構的處理器也陸續上市。如:Motorola公司研發的MPC8260PowerQUICC||融合了兩個CPU-嵌入式PowerPC內核和通信處理模塊(CPM);Infineon公司推出的TC10GP和增強型TC1130都是三核(TriCore)結構的微處理器,這些處理器的產生對于Linux應用中的都大有幫助。 3. 實時調度的算法研究

        常用的實時調度算法有:基于優先級的調度算法(priority-drivenscheduling,PD);基于時間驅動的調度算法(time-drivenscheduling,TD);基于比例共享的調度算法(share-drivensched2uling,SD)。基于優先級的調度算法 調度器以優先級作為尋求下一個任務執行的依據。可分為如下兩種類型:

        (1) 靜態優先級調度算法:該算法給系統中所有進程都靜態的分配一個優先級。靜態優先級的分配可以根據應用的屬性來進行,例如任務的周期、用戶優先級或者其他預先確定的策略。RM(RateMonotonic)是一種典型的靜態優先級調度算法,它根據任務執行周期的長短來決定調度優先級,執行周期小的任務具有較高的優先級。

        (2) 動態優先級調度算法:這種算法根據任務的資源需求來動態的分配任務的優先級。EDF(earliestdeadlinefirst)算法是一種典型的動態優先級調度算法,該算法根據就緒隊列中各個任務的截止期限來分配優先級,具有最近截止期限的任的優先級最高。

        基于時間驅動的調度算法

        該算法本質上是一種設計時就確定下來的離線的靜態調度方法。在系統的設計階段,在明確系統中所有處理的情況下,對于各個任務的開始、切換以及結束時間等事先組出明確的安排和設計。

        基于比例共享的調度算法

        這是一種越來越受到關注的實時調度模式,基于GPS(generalprocessorscheduling)的算法,其基本思想就是按照一定的權重(CPU使用的比例)對一組需要調度的任務進行調度,使其執行時間與權重完全成正比??梢酝ㄟ^兩種方法來實現比例共享調度算法:(1)是調節各個就緒進程出現在當前調度隊列隊首的頻率,并調度隊首的進程執行;(2)是逐次調度就緒隊列中的各個進程投入運行,但根據分配的權重調節分配給每個進程的運行時間片。比例共享算法包括輪轉法、公平共享法、公平隊列法和彩票調度法等幾類。

        每一種調度策略都有自己的優越性和不足。在這里我們提出了一種宏觀調度結構,通過設計和構造多屬性和多調度器的選擇機制,使三種實時調度策略的應用都得到支持,相對于只對單種調度策略提供支持的方案,拓展了系統的可使用范圍。宏觀調度結構如圖2所示。

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南康市| 永清县| 廉江市| 沽源县| 宜宾县| 东乡族自治县| 新巴尔虎左旗| 新建县| 建阳市| 寿光市| 修水县| 内丘县| 石渠县| 秦安县| 隆回县| 常熟市| 永川市| 巴彦县| 若羌县| 咸宁市| 页游| 锡林郭勒盟| 康平县| 墨竹工卡县| 固阳县| 开阳县| 庆阳市| 敖汉旗| 寿阳县| 逊克县| 青冈县| 凤阳县| 上虞市| 兴和县| 迁安市| 康乐县| 怀化市| 瑞昌市| 望都县| 盐津县| 连江县|