實時系統必須尊重時間限制,以確保其執行具有功能意義。它必須是確定性的,確保系統進程的執行先驗。在分析了實時配置的一般特征后,我們將重點關注商業和市場方面,并以實時 Linux 嵌入式操作系統 (OS) 為例。
實時操作系統 (RTOS) 可以描述為滿足其控制下的進程的時序要求的系統。Linux 并非旨在提供實時性能。對于相對耗時的實時應用程序,如果環境得到適當控制(固定數量的進程、測試的驅動程序等)可能就足夠了。另一方面,標準 Linux 內核對于需要極快響應時間或硬實時的應用程序來說是不夠的。但是,標準 Linux 的當前開發版本可用于軟實時和硬實時應用程序。前者可以承受不尊重時間限制,即使樣本持續時間只有幾十毫秒。一個例子是視頻處理,其中偶爾的閃爍通常是可以接受的。硬實時應用,另一方面,需要嚴格的確定性和快速的時間。自 1997 年以來,適用于此類應用程序的 Linux 實時變體已經出現,這要歸功于來自新墨西哥理工大學、米蘭理工大學和堪薩斯大學的研究小組,這些研究小組制作了廣泛分布并成功商業化的開源版本。修改作為操作系統核心的標準 Linux 內核有兩種基本方法。這些中的每一個都作為標準內核的補丁分發。第一種方法:微內核,即在硬件和標準內核之間插入一個新的、高效的代碼層。稱為微內核的附加代碼層負責所有這些實時功能,包括中斷、調度和高時間分辨率。微內核(圖 1)將標準內核作為后臺任務進行管理。第二種方法:IEEE 1003.1d 內核,它在標準 Linux 內核框架內實現對 POSIX.1 的實時擴展。這些擴展將計時器、編程和搶占式邏輯直接添加到單個單片內核中。較新版本的標準內核表現出大約 1 ms 的延遲(中斷的延遲時間)和抖動(周期性事件的時序變化)。Linux 的實時版本在數百兆赫的處理器上運行時具有大約幾微秒的延遲和抖動。單片內核。較新版本的標準內核表現出大約 1 ms 的延遲(中斷的延遲時間)和抖動(周期性事件的時序變化)。Linux 的實時版本在數百兆赫的處理器上運行時具有大約幾微秒的延遲和抖動。單片內核。較新版本的標準內核表現出大約 1 ms 的延遲(中斷的延遲時間)和抖動(周期性事件的時序變化)。Linux 的實時版本在數百兆赫的處理器上運行時具有大約幾微秒的延遲和抖動。
實時:關鍵方面和參數
通常,操作系統負責管理計算機的硬件資源,該計算機承載在計算機上運行的應用程序。RTOS 執行這些任務,但也專門設計用于運行具有非常精確的時序和高度可靠性的應用程序。這在停機或程序延遲可能導致安全隱患的測量和自動化系統中尤為重要。
操作系統必須對其執行的每個關鍵操作都有一個已知的最大時間,才能被視為“實時”。其中一些操作包括操作系統調用和中斷處理(圖 2)。能夠絕對保證這些操作的最大時間的操作系統通常被稱為“硬實時”,而能夠保證大部分時間的系統被稱為“軟實時”。
許多開發人員嘗試添加對 Linux 的實時支持,從而填補其作為嵌入式系統功能的空白。即使某些應用程序需要實時,某些系統也可以在沒有它的情況下運行。Linux 實時系統的總體思路是在 Linux 下運行一個小的實時內核,這意味著實時內核的優先級高于標準的 Linux 內核。實時任務由實時內核執行,普通Linux程序可以在沒有實時操作的情況下執行。因為實時內核具有更高的優先級,所以當實時任務準備好運行時,普通的 Linux 進程會被搶占。
通常,實時系統是這樣一種系統,其中計算的準確性不僅取決于相應的計算邏輯,還取決于創建結果的時刻。由于能夠量化事件激活和處理時間之間可能發生的延遲,因此及時性是操作的決定性因素。這種延遲通常稱為“延遲”。中斷延遲是中斷和相應中斷處理程序執行之間的延遲。
許多事情可能會延遲中斷處理,包括系統總線爭用、DMA 操作,或者僅僅是對中斷本身的屏蔽。內核軟件在處理關鍵代碼片段時需要后者,以便在內核處理特定數據結構時沒有中斷處理程序可以更改特定數據結構。類似地,中斷處理程序可以將任務放入隊列中,以便隨后在時間關鍵的上下文中執行和處理從設備接收到的待處理數據。
此后,內核可能需要一些時間來完成其當前功能,然后再將 CPU 交給下一個任務。這種延遲稱為運輸延遲或調度延遲。要測量基于 Linux 的操作系統的實時性能,可能需要調查其他問題,包括最壞情況下的執行時間和抖動。抖動是接受和完成申請所需的時間。硬 RTOS 的抖動小于軟 RTOS。另一方面,最壞情況執行時間通常用于可靠的實時系統,其中最壞情況的理解對于系統可靠性很重要。
例如,在監控車輛發動機行為的系統中,可能需要在特定時間段內響應輸入。如果可以在最壞的情況下確定軟件的運行時間,那么系統設計人員可以將其與調度分析等其他技術結合使用,以確保系統響應足夠快。
通常,RTOS 需要以下特性:多任務處理、具有相對優先級的進程以及足夠數量的中斷級別。小型嵌入式操作系統通常需要 RTOS,這些嵌入式操作系統封裝為微設備的一部分。一些內核適用于 RTOS。但是,由于特定解決方案通常需要其他組件,例如設備驅動程序,因此 RTOS 通常比內核更大。
圖 1:帶有微內核的 Linux 實時系統
圖 2:實時系統中的中斷管理示例
RTOS 與通用操作系統
兩種操作系統的主要區別如下:
確定性:通用操作系統和實時操作系統之間的主要區別在于“確定性”時序行為。這意味著操作系統系統只消耗已知和預定量的時間。
任務調度:通用操作系統經過優化,可以同時運行各種應用程序和進程,從而確保所有任務至少獲得一些處理時間。因此,低優先級任務可以被提升到設計人員可能不想要的其他優先級任務。但是,RTOS 使用基于優先級的搶占式調度,這使它們能夠始終如一地滿足其最后期限。所有系統調用都是確定性的,這意味著所有操作的正常運行時間都是有限的。這在嵌入式系統中尤為重要,因為延遲可能會帶來安全風險。
搶占式內核:在 RTOS 中,所有內核操作都是可搶占式的。
優先級顛倒:RTOS 具有避免優先級顛倒的機制。
用途:RTOS 通常用于嵌入式應用程序,而通用操作系統用于臺式 PC 或其他 PC。
實時 Ubuntu
Ubuntu愛好者應該知道,通過安裝相應的軟件包可以使其“實時”。桌面系統廣泛應用于嵌入式系統,例如最流行的樹莓派:一種用于廣泛工業應用的微型計算機。可用于較新 Ubuntu 版本的 Linux 實時軟件包可以為 Ubuntu Linux 帶來實時功能。實時 Linux (RTLinux) 可以安裝在 12.04 和更早版本的 Ubuntu 發行版上。對于 Ubuntu 12.04,您可以直接從以下命令添加 PPA:
$ sudo add-apt-repository ppa: abogani / realtime.
對于 Ubuntu 11.10 或更高版本,您需要編輯 sources.list 文件以手動添加存儲庫:$ sudo gedit /etc/apt/sources.list。在文件末尾添加以下行:
deb http://ppa.launchpad.net/abogani/realtime/ubuntu
deb-src http://ppa.launchpad.net/abogani/realtime/ubuntu
保存文件并更新 apt 存儲庫: $ Sudo apt-get update。完成后,您可以在 Ubuntu 系統上安裝 RTLinux: $ Sudo apt-get install linux-realtime。
最后兩個步驟也適用于 Ubuntu 12.04 中的 PPA 方法。
看市場
QNX Neutrino(圖 3)是市場上最傳統的 RTOS 之一。它具有微內核架構,完全兼容 POSIX 標準,并通過了 FAA DO-278 和 MIL-STD-1553 標準的認證。在該架構中,內核只實現了四個基本任務:任務調度、任務間通信、底層網絡通信和中斷處理。系統的所有剩余部分(包括設備驅動程序)都作為用戶任務實現,從而使內核快速、可靠且體積小。
與其他類型的內核相比,微內核的優勢之一是即使發生嚴重錯誤(例如在文件系統中),系統的所有其他部分也不受影響。這意味著微內核架構提供了比其他操作系統更健壯的環境,盡管它的問題是開銷,這是由必須非常頻繁地使用的內存保護引起的。
Neutrino 支持 ARM、MIPS、PowerPC、SH4 和 PC 架構。自適應分區是該操作系統的一項新功能,允許在處理器活動中創建限制。
VxWorks(來自 Wind River)是嵌入式系統行業中使用最廣泛的 RTOS(圖 4)。使用 VxWorks 的一個應用示例是著名的 NASA 機器人漫游者 Spirit。該 RTOS 已通過各種國際機構和標準的可靠性和關鍵安全應用認證。許多其他產品都基于 VxWorks:VxWorks 653 的設計遵循航空航天和國防工業的完整 ARINC 6532 合規性規范,以及關鍵任務應用的安全要求。VxWorks MILS 3 還專為航空航天和國防而設計,為安全數據傳輸提供高度保障。VxWorks MILS 使系統能夠以不同的安全級別運行應用程序,同時確保共享或不共享安全和通信級別,按照嚴格的標準。另一個操作系統是 LynxOS-178 RTOS,現在是第三代,用于硬實時確定性安全關鍵應用程序。所有互聯安全市場都受益于 LynxOS-178,包括民用和軍用航空、鐵路、運輸和陸地車輛。LynxOS-178 2.2.3 為開發人員提供了實現最高級別的可靠性和安全性所需的認證證書和當前工具。
圖 3:QNX Neutrino 架構
圖 4:VxWorks 6.2 架構
圖 5:影響嵌入式系統設計/選擇的因素
結論
Wind River 著名的 QNX Neutrino 和 VxWorks 系統已經證明了確定性和可靠性。然而,兩個未被廣泛使用的新系統,Windows CE 和 Linux RTAI 也顯示出有希望的特性。RTAI 提供了使用免費軟件實時構建可靠系統的可能性,并具有 Linux 社區的所有優勢。
思科系統公司預測,到 2020 年,預計將有 500 億臺物聯網設備投入使用。智能手機、平板電腦和其他使用應用處理器和通用操作系統(如 Linux、Android 和 Windows)的消費類設備占其中的 20%單位。其他 80% 將根深蒂固并依賴于微控制器。正是在這 80% 中,RTOS 發揮了重要作用。
云技術認真考慮了穩定性、數據量、連接性和網絡設備等方面,這大大加快了開發時間。構成物聯網的數十億智能設備和系統必須提供決策和解決問題的功能,以及完美的用戶體驗。RTOS(圖 5)處于物聯網的最前沿,因為它們提供無故障的可靠性、實時功能以及支持數百種新興協議的能力。它們還支持所有有線和無線通信標準,包括 CAN、藍牙、ZigBee、Wi-Fi 和以太網。
靈活且可擴展的 RTOS 有助于提高投資回報、降低開發成本,進而縮短上市時間。盡管嵌入式系統歷來完全圍繞 8 位和 16 位 MCU 構建,但 32 位 MCU 的價格迅速下降,使其成為基本產品。因此,它們在嵌入式設備中的受歡迎程度飆升。網絡嵌入式系統的一個常見技術解決方案是在設備中使用兩個處理器。在這種安排中,8 位或 16 位 MCU 用于傳感器或執行器,而 32 位處理器用于網絡接口。第二個處理器在不斷發展和設計中運行在 RTOS 上。
審核編輯:郭婷
評論
查看更多