嵌入式操作系統(tǒng)的種類(2)
時間: 2012-08-03 22:09
來源: 未知
作者: 秩名
點擊:
次
實時操作系統(tǒng)可分為可搶占型和不可搶占型兩類。對于基于優(yōu)先級的系統(tǒng)而言,可搶占型實時操作系統(tǒng)是指內(nèi)核可以搶占正在運行任務的cpu使用權并將使用權交給進入就緒態(tài)的優(yōu)先級更高的任務,是內(nèi)核搶了cpu讓別的任務運行。不可搶占型實時操作系統(tǒng)使用某種算法并決定讓某個任務運行后,就把cpu的控制權完全交給了該任務,直到它主動將cpu控制權還回來。中斷由中斷服務程序來處理,可以激活一個休眠態(tài)的任務,使之進入就緒態(tài);而這個進入就緒態(tài)的任務還不能運行,一直要等到當前運行的任務主動交出cpu的控制權。使用這種實時操作系統(tǒng)的實時性比不使用實時操作系統(tǒng)的系統(tǒng)性能好,其實時性取決于最長任務的執(zhí)行時間。不可搶占型實時操作系統(tǒng)的缺點也恰恰是這一點,如果最長任務的執(zhí)行時間不能確定,系統(tǒng)的實時性就不能確定。
可搶占型實時操作系統(tǒng)的實時性好,優(yōu)先級高的任務只要具備了運行的條件,或者說進入了就緒態(tài),就可以立即運行。也就是說,除了優(yōu)先級最高的任務,其他任務在運行過程中都可能隨時被比它優(yōu)先級高的任務中斷,讓后者運行。通過這種方式的任務調(diào)度保證了系統(tǒng)的實時性,但是,如果任務之間搶占cpu控制權處理不好,會產(chǎn)生系統(tǒng)崩潰、死機等嚴重后果。
b. 非實時操作系統(tǒng)
早期的嵌入式系統(tǒng)中沒有操作系統(tǒng)的概念,程序員編寫嵌入式程序通常直接面對裸機及裸設備。在這種情況下,通常把嵌入式程序分成兩部分,即前臺程序和后臺程序。前臺程序通過中段來處理事件,其結構一般為無限循環(huán);后臺程序則掌管整個嵌入式系統(tǒng)軟、硬件資源的分配、管理以及任務的調(diào)度,是一個系統(tǒng)管理調(diào)度程序。這就是通常所說的前后臺系統(tǒng)。一般情況下,后臺程序也叫任務級程序,前臺程序也叫事件處理級程序。在程序運行時,后臺程序檢查每個任務是否具備運行條件,通過一定的調(diào)度算法來完成相應的操作。對于實時性要求特別嚴格的操作通常由中斷來完成,僅在中斷服務程序中標記事件的發(fā)生,不再做任何工作就退出中斷,經(jīng)過后臺程序的調(diào)度,轉由前臺程序完成事件的處理,這樣就不會造成在中斷服務程序中處理費時的事件而影響后續(xù)和其他中斷。
實際上,前后臺系統(tǒng)的實時性比預計的要差。這是因為前后臺系統(tǒng)認為所有的任務具有相同的優(yōu)先級別,即是平等的,而且任務的執(zhí)行又是通過fifo隊列排隊,因而對那些實時性要求高的任務不可能立刻得到處理。另外,由于前臺程序是一個無限循環(huán)的結構,一旦在這個循環(huán)體中正在處理的任務崩潰,使得整個任務隊列中的其他任務得不到機會被處理,從而造成整個系統(tǒng)的崩潰。由于這類系統(tǒng)結構簡單,幾乎不需要ram/rom的額外開銷,因而在簡單的嵌入式應用被廣泛使用。