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