新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 休眠的嵌入式操作系統(tǒng)啟動(dòng)自動(dòng)運(yùn)行目標(biāo)腳本和應(yīng)用程序

休眠的嵌入式操作系統(tǒng)啟動(dòng)自動(dòng)運(yùn)行目標(biāo)腳本和應(yīng)用程序

作者: 時(shí)間:2012-10-09 來(lái)源:網(wǎng)絡(luò) 收藏

  本文介紹了一種新方法,實(shí)現(xiàn)了基于的嵌入式操作后,可任何形式的目標(biāo)腳本和應(yīng)用程序。為了提高系統(tǒng)的啟動(dòng)速度,通常采用基于技術(shù)的方式來(lái)實(shí)現(xiàn)嵌入式系統(tǒng)的快速啟動(dòng)[1]。例如,在一些數(shù)字電視中,采用技術(shù)以后的啟動(dòng)時(shí)間要比原來(lái)的啟動(dòng)時(shí)間約快1/3[2]。但基于休眠技術(shù)的啟動(dòng)方法有其不足之處:在保存內(nèi)存內(nèi)容時(shí)只能把內(nèi)存中的信息以快照的形式保存到磁盤(pán)或其他外部存儲(chǔ)設(shè)備,原來(lái)系統(tǒng)內(nèi)某些正在運(yùn)行的動(dòng)態(tài)進(jìn)程及進(jìn)程本身的執(zhí)行過(guò)程不能被完全保存下來(lái),從而導(dǎo)致系統(tǒng)重新啟動(dòng)后此部分進(jìn)程不能正常運(yùn)行;基于休眠技術(shù)的啟動(dòng)方式一旦以快照的形式保存后其里面的內(nèi)容將無(wú)法改動(dòng)。

  1 休眠喚醒后程序的方法

  最新的Linux2.6內(nèi)核都支持休眠和待機(jī)機(jī)制,PC系統(tǒng)中的實(shí)現(xiàn)方式有suspend2、swsusp、TuxOnICe等技術(shù),既可以把鏡像文件保存到交換分區(qū),也可以保存到一個(gè)文件[3]。Linux中這些休眠的具體實(shí)現(xiàn)方式有內(nèi)核方式和軟件方式兩種,但兩種方式都把休眠過(guò)程分為兩個(gè)階段:(1)SUSPEND階段:保存當(dāng)前系統(tǒng)各種狀態(tài)到非易失性存儲(chǔ)設(shè)備并關(guān)機(jī);(2)RESUME階段:系統(tǒng)重新啟動(dòng),引導(dǎo)后恢復(fù)已保存的狀態(tài)[4]。一般嵌入式操作系統(tǒng)的休眠過(guò)程如圖1所示,休眠后恢復(fù)過(guò)程如圖2所示。


本文提出一種基于休眠開(kāi)關(guān)如圖3所示的喚醒后程序方法。此方法的系統(tǒng)整體框架分為自動(dòng)執(zhí)行引擎、開(kāi)關(guān)控制進(jìn)程、休眠開(kāi)關(guān)和配置文件4個(gè)部分。

1.1 自動(dòng)執(zhí)行引擎

自動(dòng)執(zhí)行引擎采用守護(hù)進(jìn)程實(shí)現(xiàn)的方式。所謂守護(hù)進(jìn)程就是Daemon進(jìn)程,是Linux中的后臺(tái)服務(wù)程序,是一個(gè)生存期較長(zhǎng)的進(jìn)程,通常獨(dú)立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理某些事件的發(fā)生[5]。守護(hù)進(jìn)程常常在系統(tǒng)引導(dǎo)裝入時(shí)啟動(dòng),在系統(tǒng)關(guān)閉時(shí)終止。把要運(yùn)行的目標(biāo)腳本和應(yīng)用程序放到守護(hù)進(jìn)程中,并定義一個(gè)全局變量Autoflg作為標(biāo)志位。運(yùn)用此模塊的目的是讓其在操作系統(tǒng)后臺(tái)運(yùn)行,通過(guò)標(biāo)志位實(shí)時(shí)監(jiān)控目標(biāo)腳本和應(yīng)用程序的運(yùn)行狀態(tài)。守護(hù)進(jìn)程的整體結(jié)構(gòu)圖如圖4所示。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉