一:什么是RTOS
實時操作系統(tǒng) (RTOS) 是一種運行多線程應用程序并能滿足實時期限的操作系統(tǒng) (OS)(通常是輕量級操作系統(tǒng))。
包括調(diào)度程序、資源管理和設備驅(qū)動程序。請注意,當我們談論“最后期限”時,我們并不一定意味著“快”。相反,滿足最后期限表明了一定程度的確定性。
RTOS(Real-Time Operating System),實時操作系統(tǒng)。實時性是其最大特征,實時操作系統(tǒng)中都要包含一個實時任務調(diào)度器,這個任務調(diào)度器與其它操作系統(tǒng)的最大不同是強調(diào):嚴格按照優(yōu)先級來分配CPU時間,并且時間片輪轉(zhuǎn)不是實時調(diào)度器的一個必選項。
也可以這樣理解:
實時操作系統(tǒng)(RTOS)是指當外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)做出快速響應,調(diào)度一切可利用的資源完成實時任務,并控制所有實時任務協(xié)調(diào)一致運行的操作系統(tǒng)。
實時系統(tǒng)的正確性不僅依賴系統(tǒng)計算的邏輯結(jié)果,還依賴于產(chǎn)生這個結(jié)果的時間。
換句話說,系統(tǒng)設計時所有的事件都可以在指定的時間內(nèi)得到響應(時間確定性)。
如果系統(tǒng)關鍵任務響應時間都滿足這條標準,則這樣的實時系統(tǒng)可稱為硬實時系統(tǒng)。
提供及時響應和高可靠性是RTOS的主要特點。
二:RTOS與普通操作系統(tǒng)的區(qū)別
與通用的分時操作系統(tǒng)不同(Linux、Windows、Unix等),實時操作系統(tǒng)在航空航天、軍事與工業(yè)自動化領域更具優(yōu)勢,首先實時操作系統(tǒng)有著分時操作系統(tǒng)無法比擬的響應時間確定性,實時操作系統(tǒng)從調(diào)度器算法,到中斷響應系統(tǒng),到消息傳遞機制等所有的核心算法時間復雜度都是O(1),它表示系統(tǒng)的響應速度不依賴于系統(tǒng)任務的多少,負載的輕重,而只依賴于優(yōu)先級的設計,就算當前系統(tǒng)滿負荷運行,優(yōu)先級高的事件發(fā)生后,系統(tǒng)還將會在指定的時間內(nèi)立即響應事件。由于這種設計理念和算法上的優(yōu)勢,根據(jù)相關數(shù)學理論,分時系統(tǒng)在負載嚴重的情況下是不能通過提升處理器性能來獲得確定的響應時間。
這種算法上的優(yōu)勢是通用分時系統(tǒng)所難以比擬的,而通用分時系統(tǒng)則更多考慮的是系統(tǒng)易用性、平衡性和數(shù)據(jù)吞吐率。
實時系統(tǒng)與分時系統(tǒng)設計思想和應用領域完全不同,不存在替代關系,而是一種互補關系。
我們常用的Windows XP windows 7/8/10,等都是分時系統(tǒng),它打開文件,程序,不存在時間的確定性,而且快2秒,慢5秒不會對我們的生活和工作造成影響;
實時操作系統(tǒng)大部分是運行在芯片的底層,比如美國的Vx Works,RT-linux,我們國產(chǎn)的SylixOS,這些大型的實時操作系統(tǒng)實時的控制著最底層的應用,時間確定的執(zhí)行著設定任務,例如火箭發(fā)射中定是分離,調(diào)整軌道等;
三:什么是硬實時?什么是軟實時?
硬實時與軟實時之間最關鍵的差別在于,軟實時只能提供統(tǒng)計意義上的實時。例如,有的應用要求系統(tǒng)在95%的情況下都會確保在規(guī)定的時間內(nèi)完成某個動作,而不一定要求100%。
在許多情況下,這樣的“軟性”正確率已經(jīng)可以達到用戶期望的水平。比如,用戶在操作DVD播放機時,只要98%的情況都能正常播放,用戶可能就滿意了;
而發(fā)射衛(wèi)星、控制核反應堆的應用系統(tǒng),這些系統(tǒng)的實時性必須達到100%,是絕對不允許出現(xiàn)意外。
硬實時系統(tǒng)有一個剛性的、不可改變的時間限制,它不允許任何超出時限的錯誤。超時錯誤會帶來損害甚至導致系統(tǒng)失敗、或者導致系統(tǒng)不能實現(xiàn)它的預期目標。
軟實時系統(tǒng)的時限是一個柔性靈活的,它可以容忍偶然的超時錯誤。
實時操作系統(tǒng)就是在規(guī)定的時間內(nèi)必須正確地完成操作,完成操作的時間有操作系統(tǒng)的因素,也有用戶軟件的因素。
非實時操作系統(tǒng)指操作系統(tǒng)無法保證哪怕是最高優(yōu)先級任務開始執(zhí)行的最后時限。
只有“非屏蔽中斷+執(zhí)行時間確定的ISR”才可以稱為硬實時系統(tǒng),因為這個系統(tǒng)明確告訴我什么時候完成操作。