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