“硬實時”爲Linux系統注入新活力

將Linux作爲電子設備的軟件開發和運行平臺,這早已成爲設備軟件領域的熱門話題,這的確可以爲電子產品製造企業帶來不少好處。然而,由於Linux一直都只能提供軟實時(soft real-time)性能,而在汽車控制、工業控制、電信基礎建設等諸多需要硬實時性能的應用中,都無法採用只有“軟實時”能力的Linux,這就使得許多對時間較爲敏感的應用都成爲Linux難以涉入的禁地。

“硬實時”爲Linux系統注入新活力

最近,美國風河系統公司從FSMLabs購買了硬實時Linux技術——RTLinux,並將其與風河全球領先的Linux設備軟件平臺的結合,爲電子設備製造商提供一套成熟、可靠的全新技術,用於開發和部署各種基於Linux的下一代應用,滿足電子設備製造商們對“硬實時(hard real-time)”特性的需求,例如功能型手機、需要高容量流媒體的數字圖像應用以及包括車輛避撞系統在內的各類車載應用等。其中,集成RTLinux技術的Wind River Platform for Consumer Devices, Linux Edition可以把各種基於Linux的高速包交換設備軟件應用提升到一個全新的高性能級別。

那麼,就讓我們一起來了解一下,“硬實時”和“軟實時”有什麼樣的區別,哪些場合必須有“硬實時”的軟件系統來實現,以及怎樣才能獲得真正具有“硬實時”特性的Linux平臺。歡迎閱讀!

  實時性的“軟”和“硬”

實時操作系統 (Real-time OS) 是相對於分時操作系統 (Time-Sharing OS) 的一個概念。在一個分時操作系統中,計算機資源會被平均地分配給系統內所有的工作。在分時系統中,各項任務需要花多長時間來完成,這一點並不重要;而在一個實時操作系統之中,最關注的是每個任務在多長時間內可以完成。簡單地說,實時和分時操作系統最大的不同在於 “時限(deadline)”這個概念。

從上述區別中可以看出,在實時操作系統中,系統必須在特定的時間內完成指定的應用,具有較強的“剛性”,而分時操作系統則注重將系統資源平均地分配給各個應用,不太在意各個應用的進度如何,什麼時間能夠完成。不過,就算是實時操作系統,其“剛性”和“柔性”的程度也有所不同,就好像是系統的“硬度”有所不同,因而有了所謂的“硬實時(hard real-time)”和“軟實時 ( soft real-time)”。硬實時系統有一個剛性的、不可改變的時間限制,它不允許任何超出時限的錯誤。超時錯誤會帶來損害甚至導致系統失敗、或者導致系統不能實現它的預期目標。軟實時系統的時限是一個柔性靈活的,它可以容忍偶然的超時錯誤。失敗造成的後果並不嚴重,例如在網絡中僅僅是輕微地降低了系統的吞吐量。

當你從事設備軟件開發時,首先需要知道該系統究竟屬於硬實時、軟實時還是非實時系統,這一點很重要。這三種系統所要求的編程技術和規範存在很大差別。

風河公司認爲,硬實時與軟實時之間最關鍵的差別在於,軟實時只能提供統計意義上的實時。例如,有的應用要求系統在95%的情況下都會確保在規定的時間內完成某個動作,而不一定要求100%。在許多情況下,這樣的“軟性”正確率已經可以達到用戶期望的水平。比如,用戶在操作DVD播放機時,只要98%的情況都能正常播放,用戶可能就滿意了;而發射衛星、控制核反應堆的應用系統,這些系統的實時性必須達到100%,是絕對不允許出現意外的。

  何時需要“硬實時”?

幾乎在每個行業垂直市場都有大量的`應用系統要求必須採用硬實時才能達到。例如,在網絡基礎設施市場,電信應用的關鍵業務常常就對硬實時、軟實時和超高速包傳輸提出了綜合性的要求。在許多對服務水平有特定要求的話音和其它媒體流傳輸應用中,對硬實時的要求顯然超出了市場上現有通用操作系統所能提供的水平。高吞吐量以及高密度數據交換網絡也會令簡單的網絡堆棧和傳統In-House的嵌入式操作系統陷入性能拙劣的泥潭。

即使在當今的消費電子市場,移動電話中的調制解調器控制和應用處理都離不開硬實時技術,以便減少芯片組的數量,降低硬件成本。特別是手機設計者希望採用單核處理器來實現這些功能的時候就更是如此。在數字音響和視頻設備中,更是不乏硬實時技術的大量應用。數碼相機的快門只要被按下,就必須跟隨一連串確定的動作,否則就無法拍出高質量的照片。

更嚴重的情況是,在有些領域系統出錯可能導致重大的損失,甚至是人命關天的。例如航空與國防應用中的指令控制、導航、安全、武器控制等,還有飛機駕駛模擬系統等應用,都需要將複雜的計算、存儲、顯示和機電控制系統有條不紊地協調起來。工業生產流水線,特別是在化工、電力、交通等行業,都有許多精確度極高的機電控制系統。所有這些應用,毫無疑問都必須建立在硬實時技術的基礎之上。