《Linux嵌入式實時應用開發實戰(原書第3版)》——1.2 什麼是實時

華章計算機發表於2017-07-03

本節書摘來自華章計算機《Linux嵌入式實時應用開發實戰(原書第3版)》一書中的第1章,第1.2節,作者:(美)Doug Abbott 更多章節內容可以訪問雲棲社群“華章計算機”公眾號檢視。

1.2 什麼是實時

實時的概念更難解釋。實時的基本含義是我們期望計算機對它的環境即時響應。但是什麼是“即時”呢?有人認為實時意味著真的很快,這並不完全正確。實時僅僅意味著在系統執行的環境裡足夠快。如果我們談論的是控制汽車發動機的計算機,那就是快!這個計算機需要決定每次發動機轉一圈時對燃料流量、點火時間的控制。
另一方面,考慮一個或多個計算機控制的化工廠,計算機系統負責控制過程和檢測潛在的破壞性故障。因為化學過程的時間常數最少在幾秒到幾分鐘之間,所以可以假設計算機系統可以有足夠的時間處理任何故障以避免造成損失。
但是假設當故障發生時,計算機正在列印一份關於上週生產情況的長篇報告或正在處理工資單,那麼它對潛在的緊急情況的反應有多快呢?
實時處理的本質不僅在於計算機對它的環境有足夠快速的響應,而且在於足夠快的可靠響應。發動機的控制計算機必須在發動機轉動的每一圈都調整燃料流量和點火時間。如果有所延遲,發動機就不能正常工作。化工廠的控制器必須有足夠的時間正確檢測和響應異常情況以避免事故,如果不能,這個控制器就是無效的。
我覺得下面這句話說得很恰當:
實時系統處理的正確性不僅要求處理的邏輯正確,也要求在規定時間內有結果。如果系統的時間約束不能被滿足,那麼可以說系統就失效了。
——Donald Gillies,實時處理常見問題
所以實時程式設計的藝術就是在隨機的非同步事件中,設計能可靠地滿足時間約束的系統。的確,這說起來容易做起來難,目前有很多研究實時系統原理的文獻和開發工作。


相關文章