概念解析
早期的嵌入式系統中沒有作業系統的概念,程式設計師編寫嵌入式程式通常直接面對裸機及裸設備。在這種情況下,通常把嵌入式程式分成兩部分,即前台程式和後台程式。
實現模式
應用程式是一個無限的循環,循環中調用相應的函式完成相應的操作,這部分可以看成後台行為。前台程式通過中斷來處理事件;後台程式則掌管整個嵌入式系統軟、硬體資源的分配、管理以及任務的調度,是一個系統管理調度程式。這就是通常所說的前後台系統。一般情況下,後台程式也叫事件處理任務或中斷級任務,前台程式也叫事件處理級程式。在程式運行時,後台程式檢查每個任務是否具備運行條件,通過一定的調度算法來完成相應的操作。對於實時性要求特別嚴格的操作通常由中斷來完成,僅在中斷服務程式中標記事件的發生,不再做任何工作就退出中斷,經過後台程式的調度,轉由前台程式完成事件的處理,這樣就不會造成在中斷服務程式中處理費時的事件而影響後續和其他中斷。
實際上,前後台系統的實時性比預計的要差。這是因為前後台系統認為所有的任務具有相同的優先權別,即是平等的,而且任務的執行又是通過FIFO佇列排隊,因而對那些實時性要求高的任務不可能立刻得到處理。另外,由於後台程式是一個無限循環的結構,一旦在這個循環體中正在處理的任務崩潰,使得整個任務佇列中的其他任務得不到機會被處理,從而造成整個系統的崩潰。由於這類系統結構簡單,幾乎不需要RAM/ROM的額外開銷,因而在簡單的嵌入式套用被廣泛使用。