5分鐘搞清楚實時操作系統與非實時操作系統的區別

導語

談到實時操作系統,大家一定會提起VxWorks

在物聯網開發過程中,經常會聽到有人談起實時操作系統,比如VxWorks,uC-OS II, RTLinux等等,那究竟什麼才算是實時操作系統?我們平時用的操作系統,比如Windows,Linux,是否算是實時操作系統呢?看完這篇文章,相信大家就明白了。

什麼是實時操作系統

實時系統指系統的計算正確性不僅取決於計算的邏輯正確性,還取決於產生結果的時間。如果未滿足系統的時間約束,則認為系統失效。

——Donal Gillies 在 Realtime Computing FAQ 中提出的定義。

大家普遍的一種意識是實時性意味著速度快,實際上實時性與任務執行的速度快並不是一回事,實時性的真正含義是指任務的(最遲)完成時間(Deadline)是可確定預知的。

Advertisements

操作系統面對的負載通常是變化的,有時任務少,有時任務重,實時操作系統要求無論負載多少,都必須保證滿足時間要求。

所以實時操作系統追求的不是速度,而是任務執行時間的確定性。下面以Windows系統為例,說明實時性和速度不是一回事。

相信大家都有這樣的經歷,我們的Windows系統的電腦,配置有很高工作頻率的強大CPU,顯然在任務不多的時候,可以以非常快的處理速度執行任務。但是,當某些後台任務正在運行時,比如下載文件,或者是在殺毒,這時候前台的程序響應會變得非常漫長,甚至程序會失去響應。

並不是說Windows系統不夠快或效率不夠高,而是Windows系統不能提供確定性,所以,Windows不是一個實時操作系統。通常面向PC的操作系統都不是實時操作系統,比如Linux的桌面發行版、伺服器版,以及Mac OS等。

Advertisements

實時操作系統有哪些

實時操作系統根據其實時性的剛性要求程度不同,分為硬實時(hard realtime)軟實時(soft realtime)操作系統。

  • 硬實時系統指系統要在最壞情況(負載最重)下確保服務時間,即對於事件的響應時間的截止期限是無論如何都必須滿足。

  • 軟實時系統是從統計的角度,任何一個任務都能夠有一個預期的處理時間,但任務一旦超過截止期限,也並不會帶來致命的錯誤。

硬實時代表產品:VxWorks

好奇號火星探測車使用了VxWorks系統

對於一些涉及到人身安全或者非常重要的任務,必須使用硬實時操作系統,更多用於對實時性要求更高的工業製造領域。比如汽車安全氣囊的控制,晚一秒鐘打開可能就會喪生一條人命,這種場合必須使用硬實時系統。

WindRiver公司的VxWorks是硬實時操作系統的代表產品,以性能穩定而著稱。美國 F-16、FA-18戰鬥機、B-2 隱形轟炸機和愛國者導彈上,甚至連1997年4月在火星表面登陸的火星探測器、2008年5月登陸的鳳凰號,和2012年8月登陸的好奇號也都使用到了VxWorks。

VxWorks的缺點就是有點貴。但近年來各大廠商越來越強調成本,所以VxWorks不斷被其他一些開源的實時操作系統取代。華為多年來一直在自己的網路設備中購買和使用VxWorks,也會逐漸採用替代的系統。

軟實時代表產品:各種實時Linux

之前我們在《縱論物聯網(六):基於Linux的物聯網操作系統》介紹了很多Linux物聯網系統,其中有不少是在Linux基礎上做了實時性的改進,比如RTLinux等,這些系統都算是軟實時產品。

對於IPTV數字電視機頂盒,需要實時的解碼視頻流,所以需要使用實時操作系統。但即使丟失了幾個視頻幀,在短時間內視頻可能會有一些不流暢,但馬上就會恢復,不會造成什麼嚴重的後果。這種消費類電子產品,適合使用軟實時操作系統。

Advertisements

你可能會喜歡