<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式操作系統(tǒng)休眠喚醒后自動運行程序的方法

          嵌入式操作系統(tǒng)休眠喚醒后自動運行程序的方法

          作者: 時間:2012-10-03 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/148374.htm


          1 休眠運行的


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



          嵌入式操作系統(tǒng)休眠喚醒后自動運行程序的方法


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


          1.1 自動執(zhí)行引擎


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



          嵌入式操作系統(tǒng)休眠喚醒后自動運行程序的方法

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();