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

2021-10-02 03:25:33 字數 1225 閱讀 9823

嵌入式作業系統分為實時系統和非實時系統兩類,常見的實時系統有:threadx、freertos、ucos;常見的非實時系統有:windows、linux、android。

兩類作業系統的主要區別在於任務排程處理方式不同,常用的任務排程方式有兩種:基於任務優先順序的任務排程方式和基於時間片的任務排程方式。

基於任務優先順序的排程方式:

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

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

實時作業系統:一般使用基於優先順序的排程方式,所以不同優先順序的任務,完全基於優先權原則來執行,一旦高優先的任務就緒他可以無條件的,搶占任何正在執行的,低於自己優先順序的程序,無論正在執行的程序是否已經進入核心排程。同時也存在基於時間片排程方式,如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。兩類作業系統的主要區別在於任務排程處理方式不同,常用的任務排程方式有兩種 基於任務優先順序的任務排程方式和基於時間片的任務排程方式...

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

實時是指計算機對於外來資訊能夠以足夠快的速度進行處理,並在被控物件允許的時間範圍內做出快速響應。因此,實時作業系統與分時作業系統的 第一點區別是互動性強弱不同,分時系統互動型強,實時系統互動性弱但可靠性要求高 第二點區別是對響應時間的敏感牲強,對隨機發生的外部事件必須在被控制物件規定的時間做出及時響...

實時系統與實時排程

一些概念 計算結果存在時效性,過期無意義,如新聞 2.11.1 實時任務分類 按有無截止時間 按有無週期 2.11.2 實時os特點 2.11.3 實時排程 靜態表排程 輸入週期性到達時間 執行時間 週期性的最後結束期限和每個任務的相對優先順序,輸出排程表,用於排程實時任務 靜態優先順序搶占排程 根...