1.linux分時作業系統和rtos(實時作業系統)
我們知道,相對比vxworks,linux核心屬於非實時作業系統,原因主要是:
(1)實時任務搶占時間是不可預期的。
(2)為什麼搶占是不可預期的呢?這涉及到核心中的搶占點知識,其中spin_lock鎖,在unlock時是乙個搶占點,但是spinlock本身內部是不可以搶占的,這種api在核心中大量使用,事實上是spin_lock與spin_unlock之間臨界區**片段不可預期的。
實時作業系統的重要特性就是系統中的實時任務,要在乙個可預期的時間範圍內必須得到執行。當乙個高優先順序任務被喚醒執行,或主動執行時,他必須可以立即搶占其他任務,得到cpu的執行權,這段時間必須是可預期的。像我們所熟知的vxworks實時系統,可以做到10ns以內可預期。
實時作業系統(rtos)是指當外界事件或資料產生時,能夠接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統作出快速響應,並控制所有實時任務協調一致執行的作業系統。因而,提供及時響應和高可靠性是其主要特點。實時作業系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在作業系統設計時保證的;軟實時則只要按照任務的優先順序,盡可能快地完成操作即可。我們通常使用的作業系統在經過一定改變之後就可以變成實時作業系統。
我們的linux核心屬於單核心,和vxworks微核心設計思想不一樣,linux大量用在伺服器、嵌入式領域。伺服器更追求的是高密度計算,系統吞吐能力。很多產品、工程場景,並不要求有多麼精準的實時性。回到正題。我們怎麼提高linux實時性呢?其實kernel.org官方已經提供了相關補丁,我們只需要將開源linux核心打上rt補丁,就可以讓linux變成實時作業系統。前面已經分析過,spin_lock鎖會關掉cpu搶占排程,影響實時性。所以rt補丁將spin_lock鎖變成可以搶占了,這樣就不用等到unlock時才能排程到rt任務。
2.實時作業系統的特徵
1)多工;
2)有執行緒優先順序
3)多種中斷級別
分時作業系統和實時作業系統
分時作業系統將系統處理機時間與記憶體空間按一定的時間間隔 劃分時間片 採用輪轉執行方式輪流地切換給各終端使用者的程式使用 例如規定每個作業每次只能執行乙個時間片 由於時間間隔很短,每個使用者就感覺像獨佔全機一樣,這樣就解決了主機共享問題。而對於人機互動,為實現使用者鍵入命令後能對自己的作業及其執行及...
實時作業系統與分時作業系統
實時作業系統 real time operating system 是指當外界事件或資料產生時,能夠接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統做出快速響應,排程一切可利用的資源完成實時任務,並控制所有實時任務協調一致執行的作業系統。提供及時響應和高可靠性...
淺顯易懂的實時作業系統和分時作業系統原理和區別
對於實時作業系統 rtos 和非實時作業系統,你能分別列舉出來多少?實時作業系統 ucos vxworks rtlinux 非實時作業系統 linux windows osx 我也只能列舉出來這麼多了。重點不在這裡,重點在於他們之間的區別,詳見下圖 在上面的圖中右邊的任務優先順序高於左邊的任務,先看...