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