實時系統和非實時系統的區別

2021-08-26 02:46:37 字數 1340 閱讀 7641

嵌入式作業系統分為實時系統和非實時系統兩類,常見的實時系統有:threadx、freertos、ucos;常見的非實時系統有:windows、linux、android。兩類作業系統的主要區別在於任務排程處理方式不同,常用的任務排程方式有兩種:基於任務優先順序的任務排程方式和基於時間片的任務排程方式:

基於任務優先順序的排程方式:一旦核心把資源分配給某程序後,便讓該程序一直執行,直到該程序完成或發生某事件而被阻塞(常見的方式主動呼叫delay),才再把處理機分配給其他程序,否則高優先順序的任務會一直執行。所以這種情況下,如果某個高優先順序的任務執行時間過長最好有阻塞機制,來讓出cpu使其他低優先順序的任務也有機會執行。

基於時間片的排程方式:這種方式下,所有任務的優先順序相同,當核心給該程序分配的時間片結束後,核心會停止正在執行的這個程序,下乙個時間片分配給其他程序執行,即便這個任務沒有執行完也沒有主動delay自己

實時非實時任務排程的區別

實時作業系統:一般使用基於優先順序的排程方式,所以不同優先順序的任務,完全基於優先權原則來執行,一旦高優先的任務就緒他可以無條件的,搶占任何正在執行的,低於自己優先順序的程序,無論正在執行的程序是否已經進入核心排程。同時也存在基於時間片排程方式,如freertos系統也有時間片排程模式,當幾個任務的優先順序相同時,會按照時間片來管理,在優先順序相同的任務間切換執行。

非實時作業系統:一般情況下沒有任務優先順序的概念(例外情況見補充說明),所有任務預設優先順序相同,任務排程採用時間片排程方式。

補充說明

有些非實時系統也有優先順序的概念,如果非實時系統也定義了優先順序和實時作業系統的任務排程方式也是有區別的具體如下:

 任務排程原則不同:

前提task2 優先順序大於task1且task1先準備就緒並且已經開始執行

非實時系統:當task2準備就緒時,不會馬上切換到task2,要等待task1的時間片結束或者task1主動掛起後,task2才開始執行,然後一直執行,直到結束,系統才會再次給低優先順序的task1分配時間片。

實時系統:當task2準備就緒的那一刻開始,task1直接就被核心掛起,task2開始執行,直到結束,系統才會再次給低優先順序的task1分配時間片。

 任務排程的時間不同:

非實時系統:任務排程不是嚴格實時的,如linux排程時間的最小單位為10ms,windows系統時間片也只是ms級別。

實時系統:排程時間是us級的,而且一般小於10us。

 任務排程演算法不同:

實時系統:包含專有的任務排程演算法,而且這也是實時系統的核心所在。

非實時系統:無論是linux還是windows,都缺乏有效的實時任務的排程機制和排程演算法。

實時系統與非實時系統的區別

嵌入式作業系統分為實時系統和非實時系統兩類,常見的實時系統有 threadx freertos ucos 常見的非實時系統有 windows linux android。兩類作業系統的主要區別在於任務排程處理方式不同,常用的任務排程方式有兩種 基於任務優先順序的任務排程方式和基於時間片的任務排程方式...

實時作業系統 RTOS 和非實時作業系統

對於實時作業系統 rtos 和非實時作業系統,你能分別列舉出來多少?實時作業系統 ucos vxworks rtlinux 非實時作業系統 linux windows osx 我也只能列舉出來這麼多了。重點不在這裡,重點在於他們之間的區別,詳見下圖 在上面的圖中右邊的任務優先順序高於左邊的任務,先看...

軟實時和硬實時作業系統的區別

作業系統按硬體範疇的表現形式分 晶元級嵌入 含程式或演算法的處理器 模組級嵌入 系統中的某個核心模組 系統級嵌入。按軟體範疇實時性要求分 非實時系統 軟實時系統 硬實時系統。對實時系統,他的正確性不僅與系統的邏輯正確性相關,而且與系統響應時間相關,如果系統響應不能滿足時限的要求,即使它能得到正確的輸...