Linux分時操作系統(tǒng)的實時性分析
2. 搶占式內(nèi)核體系結構的設計
為了解決Linux實現(xiàn)硬實時的最大障礙,使Linux內(nèi)核成為完全可被搶占實時內(nèi)核,典型的實現(xiàn)方案是雙核結構。使用實時核來運行實時任務,Linux內(nèi)核來運行非實時任務。例如:對于實時數(shù)據(jù)采樣分析而言,利用實時內(nèi)核運行一個實時任務來完成數(shù)據(jù)采集,另一個實時任務完成數(shù)據(jù)分析和控制輸出功能;同時利用Linux內(nèi)核上運行的界面來進行數(shù)據(jù)顯示。如圖1所示。
本文引用地址:http://m.butianyuan.cn/article/151227.htm
圖1 雙內(nèi)核結構
在Linux內(nèi)核和硬件之間加個小的實時核,由它管理中斷,提供一些必要的功能,如底層任務創(chuàng)建、中斷服務程序,并且為底層任務、ISR和Linux進程之間進行通信排隊;而Linux內(nèi)核本身則成為優(yōu)先級最低的Idletask。
對實時性要求強的應用編寫成實時任務,在實時內(nèi)核上直接運行。Linux內(nèi)核可以被優(yōu)先級更高的實時任務搶占。對于Linux內(nèi)核的修改主要集中在三方面:(1) 在Linux內(nèi)核中影響實時性的地方增加控制點,使內(nèi)核在控制點可以被搶占,減少內(nèi)核搶占延遲;(2) 將執(zhí)行時間較長的系統(tǒng)劃分為幾個甚至是十幾個較小的塊分別執(zhí)行,使實時任務隨時中斷非實時任務;(3) 根據(jù)實際需要,增加部分功能。
隨著嵌入式應用的深入,特別是在數(shù)字通信和網(wǎng)絡中的應用,多核結構的處理器也陸續(xù)上市。如:Motorola公司研發(fā)的MPC8260PowerQUICC||融合了兩個CPU-嵌入式PowerPC內(nèi)核和通信處理模塊(CPM);Infineon公司推出的TC10GP和增強型TC1130都是三核(TriCore)結構的微處理器,這些處理器的產(chǎn)生對于Linux應用中的實時性都大有幫助。 3. 實時調(diào)度的算法研究
常用的實時調(diào)度算法有:基于優(yōu)先級的調(diào)度算法(priority-drivenscheduling,PD);基于時間驅動的調(diào)度算法(time-drivenscheduling,TD);基于比例共享的調(diào)度算法(share-drivensched2uling,SD)。基于優(yōu)先級的調(diào)度算法 調(diào)度器以優(yōu)先級作為尋求下一個任務執(zhí)行的依據(jù)??煞譃槿缦聝煞N類型:
(1) 靜態(tài)優(yōu)先級調(diào)度算法:該算法給系統(tǒng)中所有進程都靜態(tài)的分配一個優(yōu)先級。靜態(tài)優(yōu)先級的分配可以根據(jù)應用的屬性來進行,例如任務的周期、用戶優(yōu)先級或者其他預先確定的策略。RM(RateMonotonic)是一種典型的靜態(tài)優(yōu)先級調(diào)度算法,它根據(jù)任務執(zhí)行周期的長短來決定調(diào)度優(yōu)先級,執(zhí)行周期小的任務具有較高的優(yōu)先級。
(2) 動態(tài)優(yōu)先級調(diào)度算法:這種算法根據(jù)任務的資源需求來動態(tài)的分配任務的優(yōu)先級。EDF(earliestdeadlinefirst)算法是一種典型的動態(tài)優(yōu)先級調(diào)度算法,該算法根據(jù)就緒隊列中各個任務的截止期限來分配優(yōu)先級,具有最近截止期限的任的優(yōu)先級最高。
基于時間驅動的調(diào)度算法
該算法本質上是一種設計時就確定下來的離線的靜態(tài)調(diào)度方法。在系統(tǒng)的設計階段,在明確系統(tǒng)中所有處理的情況下,對于各個任務的開始、切換以及結束時間等事先組出明確的安排和設計。
基于比例共享的調(diào)度算法
這是一種越來越受到關注的實時調(diào)度模式,基于GPS(generalprocessorscheduling)的算法,其基本思想就是按照一定的權重(CPU使用的比例)對一組需要調(diào)度的任務進行調(diào)度,使其執(zhí)行時間與權重完全成正比。可以通過兩種方法來實現(xiàn)比例共享調(diào)度算法:(1)是調(diào)節(jié)各個就緒進程出現(xiàn)在當前調(diào)度隊列隊首的頻率,并調(diào)度隊首的進程執(zhí)行;(2)是逐次調(diào)度就緒隊列中的各個進程投入運行,但根據(jù)分配的權重調(diào)節(jié)分配給每個進程的運行時間片。比例共享算法包括輪轉法、公平共享法、公平隊列法和彩票調(diào)度法等幾類。
每一種調(diào)度策略都有自己的優(yōu)越性和不足。在這里我們提出了一種宏觀調(diào)度結構,通過設計和構造多屬性和多調(diào)度器的選擇機制,使三種實時調(diào)度策略的應用都得到支持,相對于只對單種調(diào)度策略提供支持的方案,拓展了系統(tǒng)的可使用范圍。宏觀調(diào)度結構如圖2所示。
評論