後台

嵌入式程序

後台分為徠前台和後台,早期的嵌入式系統中沒有操作系統的概念,程序員編寫嵌入式程序通常直接面對裸機及裸設備。在這種情況下,通常把嵌入式程序分成兩部分,即前台程序和後台程序。

基本介紹


前台程序通過終端來處理事件,其結構一般為無限循環;後台程序則掌管整個嵌入式系統軟、硬體資源的分配、管理以及任務的調度,是一個系統管理調度程序。這就是通常所說的前後台系統。一般情況下,後台程序也叫任務級程序,前台程序也叫事件處理級程序。在程序運行時,後台程序檢查每個任務是否具備運行條件,通過一定的調度演演算法來完成相應的操作。對於實時性要求特別嚴格的操作通常由終端來完成,僅在終端服務程序中標記事件的發生,不再做任何工作就退出中斷,經過後台程序的調度,轉由前台程序完成事件的處理,這樣就不會造成在中斷服務程序中處理費時的事件而影響後續和造成其他中斷。
實際上,前後台系統的實時性比預計的要差。這是因為前後台系統認為所有的任務具有相同的優先順序別,即是平等的,而且任務的執行又是通過FIFO隊列排隊,因而對那些實時性要求高的任務不可能立刻得到處理。另外,由於前台程序是一個無限循環的結構,一旦在這個循環體中正在處理的任務崩潰,使得整個任務隊列中的其他任務得不到機會被處理,從而造成整個系統的崩潰。由於這類系統結構簡單,幾乎不需要RAM/ROM的額外開銷,因而在簡單的嵌入式應用被廣泛使用。
徠後台實際可以有多種含義,比如手機上說的後台,其實就跟系統的最小化差不多,只是隱藏和縮小的概念,終端設備上的後台還不是很完善,你上了網頁,後台運行,有的會直接終止頁面的瀏覽,但瀏覽器卻還在,其實後台的的概念很簡單,就是實還在的,但卻是看不見,它還在運行,後台線程就是如此,碎片回收就是用後台線程的方式來執行。