由于嵌入式實(shí)時(shí)操作系統(tǒng)與通用操作系統(tǒng)的基本設(shè)計(jì)原則差別很大,因此在很多資源調(diào)度策略的選擇上以及操作系統(tǒng)實(shí)現(xiàn)的方法上兩者都具有較大的差異,這些差異主要體現(xiàn)在以下幾點(diǎn):
(1)任務(wù)調(diào)度策略:
通用操作系統(tǒng)中的任務(wù)調(diào)度策略一般采用基于優(yōu)先級(jí)的搶先式調(diào)度策略,對(duì)于優(yōu)先級(jí)相同的進(jìn)程則采用時(shí)間片輪轉(zhuǎn)調(diào)度方式,用戶進(jìn)程可以通過系統(tǒng)調(diào)用動(dòng)態(tài)地調(diào)整自己的優(yōu)先級(jí),操作系統(tǒng)也可根據(jù)情況調(diào)整某些進(jìn)程的優(yōu)先級(jí)。
嵌入式實(shí)時(shí)操作系統(tǒng)中的任務(wù)調(diào)度策略目前使用最廣泛的主要可分為兩種,一種是靜態(tài)表驅(qū)動(dòng)方式,另一種是固定優(yōu)先級(jí)搶先式調(diào)度方式。
(2)內(nèi)存管理:
通用操作系統(tǒng)的虛存管理機(jī)制中由于采用了LRU等頁替換算法,使得大部分的訪存需求能夠快速地通過物理內(nèi)存完成。
為解決虛存給系統(tǒng)帶來的不可預(yù)測(cè)性,實(shí)時(shí)操作系統(tǒng)一般采用如下兩種方式:一是在原有虛存管理機(jī)制的基礎(chǔ)上增加頁面鎖功能,用戶可將關(guān)鍵頁面鎖定在內(nèi)存中,從而不會(huì)被swap程序?qū)⒃擁撁娼粨Q出內(nèi)存。二是采用靜態(tài)內(nèi)存劃分的方式,為每個(gè)實(shí)時(shí)任務(wù)劃分固定的內(nèi)存區(qū)域。
(3)中斷處理:
在通用操作系統(tǒng)中,大部分外部中斷都是開啟的,中斷處理一般由設(shè)備驅(qū)動(dòng)程序來完成。由于通用操作系統(tǒng)中的用戶進(jìn)程一般都沒有實(shí)時(shí)性要求,而中斷處理程序直接跟硬件設(shè)備交互,可能有實(shí)時(shí)性要求,因此中斷處理程序的優(yōu)先級(jí)被設(shè)定為高于任何用戶進(jìn)程。
但對(duì)于嵌入式實(shí)時(shí)操作系統(tǒng)采用上述的中斷處理機(jī)制是不合適的。一個(gè)實(shí)時(shí)任務(wù)在運(yùn)行時(shí)被中斷處理程序阻塞的時(shí)間開銷也是不可預(yù)測(cè)的,從而使任務(wù)的實(shí)時(shí)性得不到保證。
(4)共享資源的互斥訪問:
通用操作系統(tǒng)一般采用信號(hào)量機(jī)制來解決共享資源的互斥訪問問題。
對(duì)于實(shí)時(shí)操作系統(tǒng),如果任務(wù)調(diào)度采用靜態(tài)表驅(qū)動(dòng)方式,共享資源的互斥訪問問題在生成運(yùn)行時(shí)間表時(shí)已經(jīng)考慮到了,在運(yùn)行時(shí)無需再考慮。如果任務(wù)調(diào)度采用基于優(yōu)先級(jí)的方式,則傳統(tǒng)的信號(hào)量機(jī)制在系統(tǒng)運(yùn)行時(shí)很容易造成優(yōu)先級(jí)倒置問題,為了解決這一問題,嵌入式實(shí)時(shí)操作系統(tǒng)往往對(duì)傳統(tǒng)的信號(hào)量機(jī)制進(jìn)行了一些擴(kuò)展,引入了如優(yōu)先級(jí)繼承協(xié)儀、優(yōu)先級(jí)頂置協(xié)議等機(jī)制。
(5)系統(tǒng)調(diào)用以及系統(tǒng)內(nèi)部操作的時(shí)間開銷:
為保證系統(tǒng)的可預(yù)測(cè)性,實(shí)時(shí)操作系統(tǒng)中的所有系統(tǒng)調(diào)用以及系統(tǒng)內(nèi)部操作的時(shí)間開銷都應(yīng)是有界的,并且該界限是一個(gè)具體的量化數(shù)值。而在通用操作系統(tǒng)中對(duì)這些時(shí)間開銷則未做如此限制。
(6)系統(tǒng)的可重入性:
在通用操作系統(tǒng)中,核心態(tài)系統(tǒng)調(diào)用往往是不可重入的,當(dāng)一低優(yōu)先級(jí)任務(wù)調(diào)用核心態(tài)系統(tǒng)調(diào)用時(shí),在該時(shí)間段內(nèi)到達(dá)的高優(yōu)先級(jí)任務(wù)必須等到低優(yōu)先級(jí)的系統(tǒng)調(diào)用完成才能獲得CPU,這就降低了系統(tǒng)的可預(yù)測(cè)性。因此,嵌入式實(shí)時(shí)操作系統(tǒng)中的核心態(tài)系統(tǒng)調(diào)用往往設(shè)計(jì)為可重入的。
(7)輔助工具:
實(shí)時(shí)操作系統(tǒng)額外提供了一些輔助工具,如實(shí)時(shí)任務(wù)在最壞情況下的執(zhí)行時(shí)間估算工具、系統(tǒng)的實(shí)時(shí)性驗(yàn)證工具等,可幫助工程師進(jìn)行系統(tǒng)的實(shí)時(shí)性驗(yàn)證工作。
嵌入式的這兩種操作系統(tǒng)都有他們的用處,依靠嵌入式操作系統(tǒng)軟件移植性大大提高網(wǎng)絡(luò)協(xié)議更加豐富應(yīng)用功能塊邏輯清晰代碼易讀還能提供眾多的開源工具、庫(kù)以及軟件。