實時操作系統與非實時操作系統(包含 硬實時和軟實時)

實時操作系統(RTOS)是指當外界事件或數據產生時,能夠接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統做出快速響應,調度一切可利用的資源完成實時任務,並控制所有實時任務協調一致運行的操作系統。提供及時響應和高可靠性是其主要特點。

特徵:

1)高精度計時系統
計時精度是影響實時性的一個重要因素。在實時應用系統中,經常需要精確確定實時地操作某個設備或執行某個任務,或精確的計算一個時間函數。這些不僅依賴於一些硬件提供的時鐘精度,也依賴於實時操作系統實現的高精度計時功能。
2)多級中斷機制
一個實時應用系統通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分。有的必須立即作出反應,有的則可以延後處理。因此,需要建立多級中斷嵌套處理機制,以確保對緊迫程度較高的實時事件進行及時響應和處理。
3)實時調度機制
實時操作系統不僅要及時響應實時事件中斷,同時也要及時調度運行實時任務。但是, 處理機調度並不能隨心所欲的進行,因爲涉及到兩個進程之間的切換,只能在確保“安全切換”的時間點上進行,實時調度機制包括兩個方面,一是在調度策略和算法上保證優先調度實時任務;二是建立更多“安全切換”時間點,保證及時調度實時任務。

實時操作系統與非實時操作系統區別:


一個實時操作系統面對變化的負載(從最小到最壞的情況)時必須確定性地保證滿足時間要求。

請注意,必須要滿足確定性,而不是要求速度足夠快!例如,如果使用足夠強大的CPU,Windows在CPU空閒時可以提供非常短的典型中斷響應,但是,當某些後臺任務正在運行時,有時候響應會變得非常漫長,以至於某一個簡單的讀取文件的任務會長時間無響應,甚至直接掛死。這是一個基本的問題:並不是Windows不夠快或效率不夠高,而是因爲它不能提供確定性,所以,Windows不是一個實時操作系統。
雖然Linux進程調度也支持實時優先級,但缺乏有效的實時任務的調度機制和調度算法


任務優先級和實時操作系統不是等同的,你有任務優先級,但你 能在極短的時間內中斷其他任務完成切換 麼?Windows同樣也有任務優先級是不是?Linux的任務調度算法不唯一,時間複雜度也不一樣,如果有實時性高的任務,Linux可以勉強實現軟實時調度,硬實時做不了


如何區分嵌入式系統實時操作系統與標準操作系統: 1、預測反應時間。強實時系統可以精確地在指定時間內做出反應。這些反應時間比典型的操作系統要快很多——它們的量度是在10個微秒(百萬分之一秒)的數量級上,而普通的操作系統反應時間只能在毫秒(千分之一秒)數量級上。 2、可調度性。一個強實時系統進程可以在非常精確的時間內被調度,進程切換時間非常精確。再次強調,時間精確到微秒級而不是毫秒級。 3、 強負載情況下的穩定性。在強實時系統中,處理器有可能被不同來源產生的大量信號所淹沒,而超出了處理能力。然而這些信號中一些比另外一些更重要,因此需要識別處理。能夠及時有效地識別信號優先級是一個好的實時系統的重要特點。

在實時操作系統中,系統必須在特定的時間內完成指定的應用,具有較強的“剛性”,而分時操作系統則注重將系統資源平均地分配給各個應用,不太在意各個應用的進度如何,什麼時間能夠完成。不過,就算是實時操作系統,其“剛性”和“柔性”的程度也有所不同,就好像是系統的“硬度”有所不同,因而有了所謂的“硬實時(hard realtime)”和“軟實時(soft realime)”。


硬實時和軟實時


在這裏插入圖片描述
硬實時系統有一個剛性的、不可改變的時間限制,它不允許任何超出時限的錯誤。超時錯誤會帶來損害甚至導致系統失敗、或者導致系統不能實現它的預期目標。
軟實時系統的時限是一個柔性靈活的,它可以容忍偶然的超時錯誤。失敗造成的後果並不嚴重,例如在網絡中僅僅是輕微地降低了系統的吞吐量。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章