Linux操作系統(tǒng)實時性分析及改進策略
電子論壇 您現(xiàn)在的位置:FIFO 的貨源和報價 FIFO 的相關(guān)技術(shù)信息 其他型號 香港天龍國際貿(mào)易有限公司聯(lián)系人:龍生 高生 james lung
電話:0755-82235138 >>更多供應(yīng)商 Linux操作系統(tǒng)實時性分析及改進策略 1前言
實時系統(tǒng)可以定義為"一個能夠在事先指定或確定的時間內(nèi)完成系統(tǒng)功能和對外部或內(nèi)部、同步或異步事件作出響應(yīng)的系統(tǒng)"。實時操作系統(tǒng) (Realtime OS)是實時系統(tǒng)中使用的操作系統(tǒng)。實時操作系統(tǒng)的任務(wù)不只是要求完成每一個工作,并且要按照給定的時限按時完成每一個工作,所以實時操作系統(tǒng)必須能夠確保其任務(wù)對時間的要求。
實時有硬實時和軟實時之分。硬實時和軟實時的區(qū)別就在于對外界的事件做出反應(yīng)的時間。硬實時系統(tǒng)必須是及時對事件做出反應(yīng),絕對不能錯過事件處理的deadline情況。在硬實時系統(tǒng)中如果出現(xiàn)了這樣的情況就意味著巨大的損失和災(zāi)難。比如說核電站中的堆芯溫度控制系統(tǒng),如果沒有對堆芯過熱做出及時的處理,后果不堪想象。軟實時系統(tǒng)是指,如果在系統(tǒng)負荷較重的時候,允許發(fā)生錯過deadline的情況而且不會造成太大的危害。比如說程控電話系統(tǒng)允許在105個電話中有一個接不通。
現(xiàn)有的Linux是一個通用的操作系統(tǒng),它是按照分時系統(tǒng)的目標設(shè)計的,進程調(diào)度強調(diào)平衡各進程之間的響應(yīng)時間來保證公平的CPU時間占用。雖然采用了許多技術(shù)來加快系統(tǒng)運行和反應(yīng)速度,但它本質(zhì)上不是一個實時操作系統(tǒng)。為了保證其實時性,必須采用一定的策略加以改進。
2影響Linux實時性能的主要因素
在Linux系統(tǒng)中,響應(yīng)中斷的過程如下:設(shè)備產(chǎn)生一個中斷、中斷處理函數(shù)開始執(zhí)行、喚醒任務(wù)并在運行隊列排隊、任務(wù)獲取CPU并開始執(zhí)行、任務(wù)執(zhí)行完畢。圖1為事件處理過程各個階段圖以及影響響應(yīng)時間的因素(每個階段下面的字母A~J表示這個階段中影響響應(yīng)時間的因素):
由圖中可以分析出導(dǎo)致Linux系統(tǒng)不能滿足實時系統(tǒng)短的響應(yīng)時間和確定的執(zhí)行行為的要求的主要因素有以下方面:
(1)Linux操作系統(tǒng)存在關(guān)中斷的機制。導(dǎo)致的結(jié)果是:如果低優(yōu)先級的進程由于進入臨界區(qū)或者為了盡快完成任務(wù)而關(guān)閉了中斷,那么即使有高優(yōu)先級實時進程的中斷發(fā)生系統(tǒng)也無法響應(yīng)。這種情況在實時系統(tǒng)中是不允許發(fā)生的。
(2)Linux操作系統(tǒng)內(nèi)核是禁止搶占的。一個進程一旦進入內(nèi)核,它將運行直到系統(tǒng)調(diào)用結(jié)束或進程被阻塞。這時候一個高優(yōu)先級的實時進程只能等待。這樣的設(shè)計是為了簡化任務(wù)調(diào)度,但對實時進程來說這樣的時間等待是不允許的。
FIFO技術(shù)。當insmod將rtl_FIFO.o驅(qū)動程序插入Linux內(nèi)核時,該驅(qū)動程序?qū)⒆约鹤詾镽TLinux的一部分,并成為Linux驅(qū)動程序。一旦插入Linux內(nèi)核,用戶空間進程和實時任務(wù)都可使用實時FIFO,如圖2所示。
任何硬實時任務(wù)都是在RTLinux的控制下運行的,該任務(wù)一般可執(zhí)行周期性任務(wù)、處理中斷并與I/O設(shè)備驅(qū)動程序通信,以采集或輸出模擬和數(shù)字信息。當實時任務(wù)需要告訴用戶進程有一個事件將發(fā)生時,它便將這一消息送給實時FIFO。每一個FIFO都是在一