博客專欄

EEPW首頁 > 博客 > 實時和非實時操作系統(tǒng)有什么區(qū)別?

實時和非實時操作系統(tǒng)有什么區(qū)別?

發(fā)布人:xiaomaidashu 時間:2023-12-01 來源:工程師 發(fā)布文章
1 實時操作系統(tǒng)

實時操作系統(tǒng),當外界事件和數(shù)據(jù)產(chǎn)生時,系統(tǒng)能以足夠快的速度予以處理,其處理結果能在規(guī)定的時間內控制生產(chǎn)結果或對系統(tǒng)做出響應,并控制所有實時任務協(xié)調一致運行的操作系統(tǒng)。

在下圖中右邊的任務優(yōu)先級("優(yōu)先級")高于左邊的任務,先看實時操作系統(tǒng)的,當優(yōu)先級更高的任務2就緒的時候,即便任務1正在運行中,也必須立刻交出CPU的使用權,就跟中斷一樣,先執(zhí)行任務2,等任務2執(zhí)行完或者主動掛起(sleep)讓出CPU的時候,任務1才能接著運行。

實時操作系統(tǒng),一般分為硬實時和軟實時,硬實時指的是在規(guī)定的時間內必須完成任務操作,在操作系統(tǒng)設計時保證;

軟實時只要按照任務的優(yōu)先級,盡可能地完成任務操作即可。

硬實時操作系統(tǒng)

完全滿足在指定時間內完成關鍵行為

硬實時操作系統(tǒng)嚴格規(guī)定了限定時間內必須完成任務,否則會導致嚴重后果發(fā)生。如在自動駕駛場景下,車輛前置攝像頭模塊,短距長距雷達及助力轉向等模塊需要連續(xù)采集處理數(shù)據(jù),并通過算法輸出決策行為。其中,系統(tǒng)必須在指定時間內完成對輸入的采集數(shù)據(jù)完成運算及處理,并完成輸出。

假設方向盤轉角,節(jié)氣門等駕駛相關控制信號若無法確保實時性,自動駕駛系統(tǒng)的安全性將無法保證。

常見的硬實時操作系統(tǒng)有VxWorks,ThreadX、FreeRTOS、ucOS。

值得提一句的是,VxWorks是世界范圍內現(xiàn)役航天,航海,飛機,坦克自動化控制部分使用范圍最廣的實時操作系統(tǒng),包括國內網(wǎng)上熱度最高的幾種軍事設備也同使用了此系統(tǒng)。

軟實時操作系統(tǒng)

大多數(shù)情況下在指定時間內完成關鍵行為

軟實時系統(tǒng)對處理事件的時間要求是統(tǒng)計學預期,即使在處理過程中偶發(fā)出現(xiàn)了時間偏差,也不會對系統(tǒng)造成致命后果。

如IP電視解碼視頻流數(shù)據(jù)時,可能會出現(xiàn)數(shù)據(jù)幀的丟失,但即使了,僅是用戶視覺上的體驗影響,或通過抖動處理,就可以解決圖像上的視覺感知問題。

  • 多任務
    系統(tǒng)提供了多任務運行機制,系統(tǒng)內核通過調度讓CPU運行許多外部事件線程,實現(xiàn)任務的并發(fā)性。
  • 搶占調度
    系統(tǒng)具有繼承的優(yōu)先級和搶占式內核屬性,在執(zhí)行某一項任務的時候,若有更高優(yōu)先級的任務進入可執(zhí)行態(tài),系統(tǒng)將會立即搶占當前CPU資源,退出低優(yōu)先級任務,運行高優(yōu)先級任務。
  • 任務間的通訊和同步
    實時系統(tǒng)中,可能存在許多任務作為一個應用的部分執(zhí)行,系統(tǒng)必須提供這些任務間的通訊機制,有效地共享不可搶占的資源或者臨界區(qū)所需要的同步機制。
  • 任務與中斷之間的通信
    在真實應用場景中,事件通常作為中斷的方式到來,為了系統(tǒng)調度的穩(wěn)定、提供有效的排隊和減小中斷服務程序的開銷,通常希望在任務級線程處理相應工作,所以需要任務與中斷之間的通信。
2 非實時操作系統(tǒng)(分時操作系統(tǒng))

再看看我們的Linux/Windows/OSX這些基于時間片輪轉的操作系統(tǒng)遇到這種問題的時候會怎么樣呢,毫無疑問它們都是非實時的操作系統(tǒng),CPU是不可搶占的,從上圖可以看到,即便高優(yōu)先級的任務就緒了,也不能馬上中斷低優(yōu)先級任務而得到執(zhí)行,必須要等到低優(yōu)先級任務主動掛起(sleep)或者時間片結束才能得到執(zhí)行。

所以我們在使用PC的時候經(jīng)常會遇到應用程序無響應的問題。即硬件資源被其他任務占用,本任務得不到立即執(zhí)行。

圖片

學習過程中最常見的操作系統(tǒng)是通用操作系統(tǒng),即Windows、Unix、Linux等,此類系統(tǒng)由分時操作系統(tǒng)發(fā)展而來。

分時操作系統(tǒng)的基本設計原則是:盡量縮短系統(tǒng)的平均響應時間并提高系統(tǒng)的吞吐率,在單位時間內為盡可能多的用戶請求提供服務。

因而相比實時操作系統(tǒng),非實時操作系統(tǒng)更關注系統(tǒng)平均性能,在響應時間上,非實時操作系統(tǒng)注重所有任務的平均響應時間,也就是說,它注重所有任務的平均響應時間而不關心單個任務的響應時間,針對某單個任務,也是注重每次執(zhí)行的平均響應時間而不關心某次特定執(zhí)行的響應時間。

Windows作為最常使用的通用操作系統(tǒng),支持系統(tǒng)管理多用戶多進程的系統(tǒng)資源。

與實時操作系統(tǒng)的內核搶占機制不同的是,分時操作系統(tǒng)內核不可搶占,無論優(yōu)先級多高的任務,都必須等當前CPU任務完成或當前任務主動退出后才可以執(zhí)行。

想必都有體會的是,當CPU空閑時,電腦系統(tǒng)運行流暢,但當后臺執(zhí)行補丁下載或殺毒時,一旦CPU進入高負荷狀態(tài),操作系統(tǒng)就會出現(xiàn)運行卡頓甚至死機的問題。

計算機同時為多個用戶任務服務的操作系統(tǒng),操作系統(tǒng)以時間片輪詢的機制,將系統(tǒng)處理時間與內存按照一定是時間間隔,輪流執(zhí)行任務,實現(xiàn)任務的調度和執(zhí)行。

由于間隔時間很短,每個用戶的任務感覺獨占計算機一樣,保證用戶任務的響應和執(zhí)行。

  • 交互性
    用戶和系統(tǒng)進行人機對話。
  • 多路性
    多用戶在各自終端上使用同一個CPU。
  • 獨立性
    用戶可以獨立操作,互不干擾,互不混淆。
  • 及時性
    用戶在短時間內可以得到系統(tǒng)的及時應答。

兩類操作系統(tǒng)的主要區(qū)別在于任務調度處理方式不同,常用的任務調度方式有兩種:基于任務優(yōu)先級的任務調度方式和基于時間片的任務調度方式:

  1. 基于任務優(yōu)先級的調度方式:一旦內核把資源分配給某進程后,便讓該進程一直執(zhí)行,直到該進程完成或發(fā)生某事件而被阻塞(常見的方式主動調用delay),才再把處理機分配給其他進程,否則高優(yōu)先級的任務會一直運行。所以這種情況下,如果某個高優(yōu)先級的任務運行時間過長最好有阻塞機制,來讓出CPU使其他低優(yōu)先級的任務也有機會運行。

  2. 基于時間片的調度方式:這種方式下,所有任務的優(yōu)先級相同,當內核給該進程分配的時間片結束后,內核會停止正在執(zhí)行的這個進程,下一個時間片分配給其他進程執(zhí)行,即便這個任務沒有執(zhí)行完也沒有主動delay自己。

因此非實時操作系統(tǒng)與實時操作系統(tǒng)相比,最直接的差別:

當內核處于相對消耗狀態(tài)時,非實時操作系統(tǒng)處理延時會增加,甚至無法保證最高優(yōu)先級任務執(zhí)行的最后時限。

為滿足實時性與可靠性,車輛ECU目前絕大多數(shù)模塊都為實時操作系統(tǒng),近年來Infotainment,Tbox,ADAS部分處理模塊,中央網(wǎng)關及所謂的域控制器也逐步使用了Linux等分時系統(tǒng)來拓展部分功能,并配合相關實時操作系統(tǒng)來組合實現(xiàn)某些車載功能,使得車輛因引入了大數(shù)據(jù)分析,安全滲透分析等能力后實現(xiàn)了更深程度的智能化。


*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




相關推薦

技術專區(qū)

關閉