與物理世界的互動可能很棘手?甚至危險!假設您有一個控制化學過程的物聯網 (IoT) 應用程序 - 可能是用于航空航天任務的外來化學品。物聯網設備包括溫度傳感器, 壓力, 流量, 和油箱液位以及泵的執行器, 加熱器和閥門 ?包括一個準備排放高壓的泄放閥。在這種情況下,您可能會運行分析和報告軟件,接收傳感器讀數,并控制各種泵、加熱器和閥門。借助物聯網,可以通過通常運行復雜應用程序的網關和控制器將計算推向邊緣。
現在,危險就在這里:讓我們假設化學反應可以在幾乎沒有警告的情況下失控,產生突然的災難性壓力峰值。為了使事情變得有趣,我們將添加一個高壓反應容器,該容器在壓力過大的情況下可能會發生災難性故障。事實上,如果壓力超過 5,000 psi,則必須在壓力事件發生后半秒內打開泄放閥以防止破裂。
通常,響應這種突然的壓力事件不會有問題。但是,如果這個控制系統負載很大 - 正在生成報告,垃圾收集器進程正在運行,接收正常溫度和壓力事件,并且用戶正在與系統交互 - 同時發生化學反應產生超壓情況,會發生什么?重載控制系統可能無法及時響應以防止損壞。
答案是使用操作系統和應用程序,這些操作系統和應用程序旨在使重要事件能夠搶占不太重要的活動。這就是Real-Time Linux(RT Linux)的用武之地:一個已經擴展到可預測地響應關鍵事件的Linux。
RT Linux 為開發人員、系統管理員和用戶提供了一個熟悉的環境。它使用標準的 Linux 驅動程序、設備、網絡和接口。RT Linux運行實時應用程序,在現代處理器上運行時滿足許多實時應用程序的要求。它提供了一個現代開發環境,并集成到現代分布式系統中。
從本質上講,實時的概念很簡單——在可預測的時間內響應高優先級事件。請注意,這不會說得很快,而是可以預見。成功的實時實施的秘訣是從可預測性開始,然后調整系統規模以提供所需的性能。
RT Linux 是標準 Linux 的擴展,它以多種方式解決可預測性問題。首先,它提供了廣泛的搶占支持,以便高優先級任務可以從低優先級任務接管對系統的控制。它還使用高分辨率計時器,以便更高優先級的任務可以控制系統的點之間的時間更少。最后,它采用增強的中斷,使關鍵事件優先于不太重要的事件。
在上面的例子中,RT Linux 將以通常的方式處理正常的工作負載——報告、分析、垃圾收集、用戶交互等的行為都與通常相同。來自傳感器和執行器的消息將優先于其他任務,以便在一致、可預測的時間內處理它們。緊急超壓消息和對泄放閥的命令將優先于其他一切,并立即處理 - 無論系統中發生什么其他事情。
如果Linux可以處理實時,你可能想知道為什么仍然使用專用的實時操作系統。專用的實時操作系統可以提供更強的確定性行為,尤其是在確定性硬件上。這在過去一直是一個強有力的因素。
然而,現代系統——具有豐富指令集的多核處理器、多問題/亂序處理、多級緩存和復雜的 I/O 子系統——在確定性行為方面存在問題。在這些系統上,使用傳統方法來證明任務將在指定的時間內完成是極其困難的。現代硬件也使用現代軟件 - 包括強大的編程語言,復雜的框架和庫,豐富的開發和調試工具 - 所有這些都使得難以證明確定性。
雖然現代系統很難使用形式化技術來證明確定性性能,但經驗表明它們可以在提供實時響應方面做得非常出色。仔細的設計、全面的測試和廣泛的基準測試是使系統能夠滿足實時應用程序需求的方法,即使使用傳統上用于分析實時系統的形式方法無法證明性能。
對于許多應用程序,我們可以重新考慮專用的實時操作系統,并利用RT Linux必須提供的標準化,功能和靈活性。事實上,問題不在于是否將Linux用于實時應用程序,而在于使用哪種RT Linux:用于嵌入式應用程序的精簡極簡Linux,用于復雜應用程序的全功能企業Linux,或者您可能已經有經驗。
審核編輯:郭婷
-
物聯網
+關注
關注
2931文章
46242瀏覽量
392383 -
Linux
+關注
關注
87文章
11511瀏覽量
213763
發布評論請先 登錄
一文讀懂:嵌入式Linux實時性進階
深度剖析 RT-Thread 線程調度流程

ADL5308可以通過軟件和硬件配置的參數,配置的優先級是什么?
TSN幀搶占測試:為數據傳輸打造“綠色通道”

一天一個嵌入式面試知識(1:中斷處理機制詳解)
深入Linux進程管理:提升效率與穩定性的關鍵方法

使用CH32V103C8TC設置中斷優先級分組時,編譯報錯的原因?
CH32V103 使用中斷優先級分組0時報錯
車載以太網交換機入門基本功(4)—優先級設計與VLAN測試

評論