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