為了提高系統的啟動速度,通常採用基於休眠技術的方式來實現嵌入式系統的快速啟動[1]。例如,在一些數位電視中,採用休眠技術以後的啟動時間要比原來的啟動時間約快1/3[2]。但基於休眠技術的啟動方法有其不足之處:在保存內存內容時只能把內存中的信息以快照的形式保存到磁碟或其他外部存儲設備,原來系統內某些正在運行的動態進程及進程本身的執行過程不能被完全保存下來,從而導致系統重新啟動後此部分進程不能正常運行;基於休眠技術的啟動方式一旦以快照的形式保存後其裡面的內容將無法改動。基於此,本文運用一種新方法,實現了基於休眠的嵌入式作業系統啟動後,可自動運行任何形式的目標腳本和應用程式。
本文引用地址:http://www.eepw.com.cn/article/148374.htm1 休眠喚醒後程序自動運行的方法
最新的Linux2.6內核都支持休眠和待機機制,PC系統中的實現方式有suspend2、swsusp、TuxOnIce等技術,既可以把鏡像文件保存到交換分區,也可以保存到一個文件[3]。Linux中這些休眠的具體實現方式有內核方式和軟體方式兩種,但兩種方式都把休眠過程分為兩個階段:(1)SUSPEND階段:保存當前系統各種狀態到非易失性存儲設備並關機;(2)RESUME階段:系統重新啟動,引導後恢復已保存的狀態[4]。一般嵌入式作業系統的休眠過程如圖1所示,休眠後恢復過程如圖2所示。
本文提出一種基於休眠開關如圖3所示的喚醒後程序自動運行方法。此方法的系統整體框架分為自動執行引擎、開關控制進程、休眠開關和配置文件4個部分。
1.1 自動執行引擎
自動執行引擎採用守護進程實現的方式。所謂守護進程就是Daemon進程,是Linux中的後臺服務程序,是一個生存期較長的進程,通常獨立於控制終端並且周期性地執行某種任務或等待處理某些事件的發生[5]。守護進程常常在系統引導裝入時啟動,在系統關閉時終止。把要運行的目標腳本和應用程式放到守護進程中,並定義一個全局變量Autoflg作為標誌位。運用此模塊的目的是讓其在作業系統後臺運行,通過標誌位實時監控目標腳本和應用程式的運行狀態。守護進程的整體結構圖如圖4所示。
linux作業系統文章專題:linux作業系統詳解(linux不再難懂)
linux作業系統文章專題:linux作業系統詳解(linux不再難懂)linux相關文章:linux教程