
實(shí)時(shí)系統(tǒng)指系統(tǒng)的計(jì)算正確性不僅取決于計(jì)算的邏輯正確性,還取決于產(chǎn)生結(jié)果的時(shí)間。如果未滿足系統(tǒng)的時(shí)間約束,則認(rèn)為系統(tǒng)失效。換句話說(shuō),系統(tǒng)面對(duì)變化的負(fù)載(從最小到最壞的情況)時(shí)必須確定性地保證滿足時(shí)間要求。
注意,實(shí)時(shí)性與速度關(guān)系不大:它與可預(yù)見(jiàn)性有關(guān)。例如,使用快速的現(xiàn)代處理器時(shí),Linux 可以提供 20 μ 微秒的典型中斷響應(yīng),但有時(shí)候響應(yīng)會(huì)變得很長(zhǎng)。這是一個(gè)基本的問(wèn)題:并不是 Linux 不夠快或效率不夠高,而是因?yàn)樗荒芴峁┐_定性。
當(dāng)中斷到達(dá)時(shí)(event),CPU 發(fā)生中斷并轉(zhuǎn)入中斷處理。執(zhí)行一些工作以確定發(fā)生了什么事件,然后執(zhí)行少量工作分配必需的任務(wù)以處理此事件(上下文切換)。中斷到達(dá)與分發(fā)必需任務(wù)之間的時(shí)間(假設(shè)分配的是優(yōu)先級(jí)最高的任務(wù))稱為響應(yīng)時(shí)間。對(duì)于實(shí)時(shí)性要求,響應(yīng)時(shí)間應(yīng)是確定的并應(yīng)當(dāng)在已知的最壞情況的時(shí)間內(nèi)完成。因此,對(duì)于某些高安全性的場(chǎng)合,操作系統(tǒng)應(yīng)快速地分配任務(wù),并且不允許其他非實(shí)時(shí)處理進(jìn)行干擾。晚一秒鐘響應(yīng)比沒(méi)有響應(yīng)的情況更糟糕。
除為中斷處理提供確定性外,實(shí)時(shí)處理也需要支持周期性間隔的任務(wù)調(diào)度。大量控制系統(tǒng)要求周期性采樣與處理。某個(gè)特定任務(wù)必須按照固定的周期(p)執(zhí)行,從而確保系統(tǒng)的穩(wěn)定性。在某些控制場(chǎng)合下,為了保持控制系統(tǒng)的正常工作,傳感器的采樣與控制必須按照一定的周期間隔。這意味著必須搶占其他處理,以便特定任務(wù)能按照期望的周期執(zhí)行。
能夠在指定的期限完成實(shí)時(shí)任務(wù)(即便在最壞的處理負(fù)載下也能如此)的操作系統(tǒng)稱為硬實(shí)時(shí) 系統(tǒng)。但并不是任何情況下都需要硬實(shí)時(shí)支持。如果操作系統(tǒng)在平均情況下能支持任務(wù)的執(zhí)行期限,則稱它為軟實(shí)時(shí) 系統(tǒng)。硬實(shí)時(shí)系統(tǒng)指超過(guò)截止期限后將造成災(zāi)難性后果(例如展開(kāi)氣囊過(guò)晚或制動(dòng)壓力產(chǎn)生的滑行距離過(guò)長(zhǎng))的系統(tǒng)。軟實(shí)時(shí)系統(tǒng)超過(guò)截止期限后并不會(huì)造成系統(tǒng)整體失。ㄈ鐏G失視頻中的一幀)。
Linux 架構(gòu)支持通過(guò)以下幾種方式實(shí)現(xiàn)硬實(shí)時(shí)。
1. 瘦內(nèi)核方法
瘦內(nèi)核(或微內(nèi)核)方法使用了第二個(gè)內(nèi)核作為硬件與 Linux 內(nèi)核間的抽象接口。非實(shí)時(shí) Linux 內(nèi)核在后臺(tái)運(yùn)行,作為瘦內(nèi)核的一項(xiàng)低優(yōu)先級(jí)任務(wù)托管全部非實(shí)時(shí)任務(wù)。實(shí)時(shí)任務(wù)直接在瘦內(nèi)核上運(yùn)行。