實時操作系統(tǒng):ucOS/VxWorks/RTLinux
非實時操作系統(tǒng):Linux/Windows/OSX
1 實時操作系統(tǒng)
實時操作系統(tǒng),當外界事件和數(shù)據(jù)產(chǎn)生時,系統(tǒng)能以足夠快的速度予以處理,其處理結(jié)果能在規(guī)定的時間內(nèi)控制生產(chǎn)結(jié)果或?qū)ο到y(tǒng)做出響應(yīng),并控制所有實時任務(wù)協(xié)調(diào)一致運行的操作系統(tǒng)。
在下圖中右邊的任務(wù)優(yōu)先級("優(yōu)先級")高于左邊的任務(wù),先看實時操作系統(tǒng)的,當優(yōu)先級更高的任務(wù)2就緒的時候,即便任務(wù)1正在運行中,也必須立刻交出CPU的使用權(quán),就跟中斷一樣,先執(zhí)行任務(wù)2,等任務(wù)2執(zhí)行完或者主動掛起(sleep)讓出CPU的時候,任務(wù)1才能接著運行。
實時操作系統(tǒng),一般分為硬實時和軟實時,硬實時指的是在規(guī)定的時間內(nèi)必須完成任務(wù)操作,在操作系統(tǒng)設(shè)計時保證;
軟實時只要按照任務(wù)的優(yōu)先級,盡可能地完成任務(wù)操作即可。
硬實時操作系統(tǒng)
完全滿足在指定時間內(nèi)完成關(guān)鍵行為
硬實時操作系統(tǒng)嚴格規(guī)定了限定時間內(nèi)必須完成任務(wù),否則會導(dǎo)致嚴重后果發(fā)生。如在自動駕駛場景下,車輛前置攝像頭模塊,短距長距雷達及助力轉(zhuǎn)向等模塊需要連續(xù)采集處理數(shù)據(jù),并通過算法輸出決策行為。其中,系統(tǒng)必須在指定時間內(nèi)完成對輸入的采集數(shù)據(jù)完成運算及處理,并完成輸出。
假設(shè)方向盤轉(zhuǎn)角,節(jié)氣門等駕駛相關(guān)控制信號若無法確保實時性,自動駕駛系統(tǒng)的安全性將無法保證。
常見的硬實時操作系統(tǒng)有VxWorks,ThreadX、FreeRTOS、ucOS。
值得提一句的是,VxWorks是世界范圍內(nèi)現(xiàn)役航天,航海,飛機,坦克自動化控制部分使用范圍最廣的實時操作系統(tǒng),包括國內(nèi)網(wǎng)上熱度最高的幾種軍事設(shè)備也同使用了此系統(tǒng)。
軟實時操作系統(tǒng)
大多數(shù)情況下在指定時間內(nèi)完成關(guān)鍵行為
軟實時系統(tǒng)對處理事件的時間要求是統(tǒng)計學預(yù)期,即使在處理過程中偶發(fā)出現(xiàn)了時間偏差,也不會對系統(tǒng)造成致命后果。
如IP電視解碼視頻流數(shù)據(jù)時,可能會出現(xiàn)數(shù)據(jù)幀的丟失,但即使了,僅是用戶視覺上的體驗影響,或通過抖動處理,就可以解決圖像上的視覺感知問題。
多任務(wù)
系統(tǒng)提供了多任務(wù)運行機制,系統(tǒng)內(nèi)核通過調(diào)度讓CPU運行許多外部事件線程,實現(xiàn)任務(wù)的并發(fā)性。
搶占調(diào)度
系統(tǒng)具有繼承的優(yōu)先級和搶占式內(nèi)核屬性,在執(zhí)行某一項任務(wù)的時候,若有更高優(yōu)先級的任務(wù)進入可執(zhí)行態(tài),系統(tǒng)將會立即搶占當前CPU資源,退出低優(yōu)先級任務(wù),運行高優(yōu)先級任務(wù)。
任務(wù)間的通訊和同步
實時系統(tǒng)中,可能存在許多任務(wù)作為一個應(yīng)用的部分執(zhí)行,系統(tǒng)必須提供這些任務(wù)間的通訊機制,有效地共享不可搶占的資源或者臨界區(qū)所需要的同步機制。
任務(wù)與中斷之間的通信
在真實應(yīng)用場景中,事件通常作為中斷的方式到來,為了系統(tǒng)調(diào)度的穩(wěn)定、提供有效的排隊和減小中斷服務(wù)程序的開銷,通常希望在任務(wù)級線程處理相應(yīng)工作,所以需要任務(wù)與中斷之間的通信。
2 非實時操作系統(tǒng)(分時操作系統(tǒng))
再看看我們的Linux/Windows/OSX這些基于時間片輪轉(zhuǎn)的操作系統(tǒng)遇到這種問題的時候會怎么樣呢,毫無疑問它們都是非實時的操作系統(tǒng),CPU是不可搶占的,從上圖可以看到,即便高優(yōu)先級的任務(wù)就緒了,也不能馬上中斷低優(yōu)先級任務(wù)而得到執(zhí)行,必須要等到低優(yōu)先級任務(wù)主動掛起(sleep)或者時間片結(jié)束才能得到執(zhí)行。
所以我們在使用PC的時候經(jīng)常會遇到應(yīng)用程序無響應(yīng)的問題。即硬件資源被其他任務(wù)占用,本任務(wù)得不到立即執(zhí)行。
學習過程中最常見的操作系統(tǒng)是通用操作系統(tǒng),即Windows、Unix、Linux等,此類系統(tǒng)由分時操作系統(tǒng)發(fā)展而來。
分時操作系統(tǒng)的基本設(shè)計原則是:盡量縮短系統(tǒng)的平均響應(yīng)時間并提高系統(tǒng)的吞吐率,在單位時間內(nèi)為盡可能多的用戶請求提供服務(wù)。
因而相比實時操作系統(tǒng),非實時操作系統(tǒng)更關(guān)注系統(tǒng)平均性能,在響應(yīng)時間上,非實時操作系統(tǒng)注重所有任務(wù)的平均響應(yīng)時間,也就是說,它注重所有任務(wù)的平均響應(yīng)時間而不關(guān)心單個任務(wù)的響應(yīng)時間,針對某單個任務(wù),也是注重每次執(zhí)行的平均響應(yīng)時間而不關(guān)心某次特定執(zhí)行的響應(yīng)時間。
Windows作為最常使用的通用操作系統(tǒng),支持系統(tǒng)管理多用戶多進程的系統(tǒng)資源。
與實時操作系統(tǒng)的內(nèi)核搶占機制不同的是,分時操作系統(tǒng)內(nèi)核不可搶占,無論優(yōu)先級多高的任務(wù),都必須等當前CPU任務(wù)完成或當前任務(wù)主動退出后才可以執(zhí)行。
想必都有體會的是,當CPU空閑時,電腦系統(tǒng)運行流暢,但當后臺執(zhí)行補丁下載或殺毒時,一旦CPU進入高負荷狀態(tài),操作系統(tǒng)就會出現(xiàn)運行卡頓甚至死機的問題。
計算機同時為多個用戶任務(wù)服務(wù)的操作系統(tǒng),操作系統(tǒng)以時間片輪詢的機制,將系統(tǒng)處理時間與內(nèi)存按照一定是時間間隔,輪流執(zhí)行任務(wù),實現(xiàn)任務(wù)的調(diào)度和執(zhí)行。
由于間隔時間很短,每個用戶的任務(wù)感覺獨占計算機一樣,保證用戶任務(wù)的響應(yīng)和執(zhí)行。
交互性
用戶和系統(tǒng)進行人機對話。
多路性
多用戶在各自終端上使用同一個CPU。
獨立性
用戶可以獨立操作,互不干擾,互不混淆。
及時性
用戶在短時間內(nèi)可以得到系統(tǒng)的及時應(yīng)答。
兩類操作系統(tǒng)的主要區(qū)別在于任務(wù)調(diào)度處理方式不同,常用的任務(wù)調(diào)度方式有兩種:基于任務(wù)優(yōu)先級的任務(wù)調(diào)度方式和基于時間片的任務(wù)調(diào)度方式:
基于任務(wù)優(yōu)先級的調(diào)度方式:一旦內(nèi)核把資源分配給某進程后,便讓該進程一直執(zhí)行,直到該進程完成或發(fā)生某事件而被阻塞(常見的方式主動調(diào)用delay),才再把處理機分配給其他進程,否則高優(yōu)先級的任務(wù)會一直運行。所以這種情況下,如果某個高優(yōu)先級的任務(wù)運行時間過長最好有阻塞機制,來讓出CPU使其他低優(yōu)先級的任務(wù)也有機會運行。
基于時間片的調(diào)度方式:這種方式下,所有任務(wù)的優(yōu)先級相同,當內(nèi)核給該進程分配的時間片結(jié)束后,內(nèi)核會停止正在執(zhí)行的這個進程,下一個時間片分配給其他進程執(zhí)行,即便這個任務(wù)沒有執(zhí)行完也沒有主動delay自己。
因此非實時操作系統(tǒng)與實時操作系統(tǒng)相比,最直接的差別:
當內(nèi)核處于相對消耗狀態(tài)時,非實時操作系統(tǒng)處理延時會增加,甚至無法保證最高優(yōu)先級任務(wù)執(zhí)行的最后時限。
為滿足實時性與可靠性,車輛ECU目前絕大多數(shù)模塊都為實時操作系統(tǒng),近年來Infotainment,Tbox,ADAS部分處理模塊,中央網(wǎng)關(guān)及所謂的域控制器也逐步使用了Linux等分時系統(tǒng)來拓展部分功能,并配合相關(guān)實時操作系統(tǒng)來組合實現(xiàn)某些車載功能,使得車輛因引入了大數(shù)據(jù)分析,安全滲透分析等能力后實現(xiàn)了更深程度的智能化。
文章來源:小麥大叔
-
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211578 -
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209326 -
WINDOWS
+關(guān)注
關(guān)注
3文章
3541瀏覽量
88622 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6801瀏覽量
123283 -
實時操作系統(tǒng)
+關(guān)注
關(guān)注
1文章
197瀏覽量
30753
原文標題:實時和非實時操作系統(tǒng)有什么區(qū)別?
文章出處:【微信號:玩轉(zhuǎn)嵌入式,微信公眾號:玩轉(zhuǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論