在本文討論的實(shí)施方式涉及智能設(shè)備以及交換(swap)方法。
背景技術(shù):
智能設(shè)備(例如智能電話或者智能手表)的空閑模式的時(shí)段比智能設(shè)備在運(yùn)行期間的時(shí)間長(zhǎng)。例如,智能手表在有限的場(chǎng)合(例如當(dāng)智能電話向智能手表通知事件時(shí)或者當(dāng)用戶改變?cè)O(shè)置時(shí))運(yùn)行,并且智能手表在剩余時(shí)段內(nèi)處于空閑模式。圖16是用于解釋智能手表操作的圖。
如圖16所示,例如當(dāng)處于ble(藍(lán)牙(注冊(cè)商標(biāo))低功耗)待機(jī)空閑模式的智能手表8從智能電話9接收事件時(shí),智能手表8通過使用例如振動(dòng)或led燈向用戶通知事件。智能手表8執(zhí)行例如根據(jù)用戶的操作傳送電子郵件消息的操作,然后返回空閑模式。
如上所述,智能設(shè)備的空閑模式的時(shí)段長(zhǎng),并且因此減小空閑模式期間的功耗使得能夠延長(zhǎng)電池的運(yùn)行時(shí)間。為此,有一種用于使得智能設(shè)備的模式從空閑模式轉(zhuǎn)換至休眠模式的技術(shù)。圖17是用于解釋通過使用休眠來減小功耗的圖。
如圖17所示,雖然智能設(shè)備處于活動(dòng)模式時(shí)功耗增加,但是活動(dòng)模式的時(shí)段比空閑模式的時(shí)段短。為此,通過使用休眠降低空閑模式的功耗使得能夠減小智能設(shè)備的功耗。在圖17中,“空閑模式功率(舊)”代表在沒有執(zhí)行休眠的情況下空閑模式的功耗,“空閑模式功率(新)”代表在執(zhí)行休眠的情況下空閑模式的功耗。
為了使得智能設(shè)備的模式轉(zhuǎn)換至休眠模式,需要將數(shù)據(jù)保存在中央處理單元(cpu)和存儲(chǔ)器中,并且當(dāng)智能設(shè)備進(jìn)入活動(dòng)模式時(shí)需要恢復(fù)保存的數(shù)據(jù)。
如圖18所示,智能手表8在由活動(dòng)模式轉(zhuǎn)換至休眠模式之前執(zhí)行數(shù)據(jù)保存處理,并且當(dāng)從休眠模式恢復(fù)時(shí),在從休眠模式恢復(fù)之前執(zhí)行數(shù)據(jù)恢復(fù)處理。為此,在休眠時(shí),重要的是盡可能多地縮短保存數(shù)據(jù)的時(shí)間以及恢復(fù)數(shù)據(jù)的時(shí)間。
有一種技術(shù),該技術(shù)給智能設(shè)備提供預(yù)活動(dòng)模式(pre-activemode)以縮短從休眠模式恢復(fù)的恢復(fù)處理。圖19是為了說明預(yù)活動(dòng)模式的圖。如圖19所示,智能手表8在從休眠模式轉(zhuǎn)換至活動(dòng)模式之前轉(zhuǎn)換至預(yù)活動(dòng)模式,然后從預(yù)活動(dòng)模式轉(zhuǎn)換至活動(dòng)模式。
在轉(zhuǎn)換至休眠模式的保存處理中,智能手表8將數(shù)據(jù)劃分為在其從休眠模式恢復(fù)時(shí)重新啟動(dòng)用戶處理所需的數(shù)據(jù)和在其從休眠模式恢復(fù)時(shí)重新啟動(dòng)用戶處理所不需要的數(shù)據(jù),并且將數(shù)據(jù)集保存在存儲(chǔ)裝置中。換言之,智能手表8在交換區(qū)域中保存在其從休眠模式恢復(fù)時(shí)重新啟動(dòng)用戶處理所不需要的數(shù)據(jù),以及在休眠區(qū)域中保存在其從休眠模式恢復(fù)時(shí)重新啟動(dòng)用戶處理所需的數(shù)據(jù)。
在從休眠模式恢復(fù)的恢復(fù)處理中,智能手表8僅恢復(fù)休眠區(qū)域中的數(shù)據(jù)并且轉(zhuǎn)換至預(yù)活動(dòng)模式。在預(yù)活動(dòng)模式中,智能手表8重新啟動(dòng)用戶處理,并且通過使用換入(swap-in)來恢復(fù)交換區(qū)域中的數(shù)據(jù),以及當(dāng)交換區(qū)域中的所有數(shù)據(jù)被恢復(fù)時(shí)轉(zhuǎn)換至活動(dòng)模式。
有另一種技術(shù),該技術(shù)在執(zhí)行休眠開始處理時(shí),通過將存儲(chǔ)器管理區(qū)域的大小約束為內(nèi)核初始化所需的大小并且與硬件初始化并行地讀取休眠鏡像(hibernationimage)來縮短啟動(dòng)時(shí)間。
還有另一種技術(shù),該技術(shù)通過在重新供給電力時(shí),在主存儲(chǔ)器中重新讀取通過使用休眠功能被保存在硬盤設(shè)備中的初始啟動(dòng)數(shù)據(jù)來實(shí)現(xiàn)在初始模式下啟動(dòng),從而縮短在重新上電時(shí)的處理時(shí)間。
還有另一種技術(shù),該技術(shù)通過在從休眠模式恢復(fù)時(shí)僅將主存儲(chǔ)器中的操作系統(tǒng)(os)恢復(fù)為運(yùn)行模式然后將os上的每個(gè)處理恢復(fù)為運(yùn)行模式來縮短用戶的感覺延遲時(shí)間。
專利文獻(xiàn)1:日本第2012-252576號(hào)特許專利公開
專利文獻(xiàn)2:日本第2004-38546號(hào)特許專利公開
專利文獻(xiàn)3:日本第2010-250512號(hào)特許專利公開
當(dāng)提供圖19所示的預(yù)活動(dòng)模式時(shí),存在以下問題:在預(yù)活動(dòng)模式中不能夠標(biāo)識(shí)從交換區(qū)域恢復(fù)其數(shù)據(jù)的存儲(chǔ)器區(qū)域,即,在轉(zhuǎn)換至休眠模式時(shí)其數(shù)據(jù)被保存在交換區(qū)域中的存儲(chǔ)器區(qū)域。圖20是用于說明當(dāng)標(biāo)識(shí)在轉(zhuǎn)換至休眠模式時(shí)其數(shù)據(jù)被保存在交換區(qū)域中的存儲(chǔ)器區(qū)域時(shí)發(fā)生的問題圖。
如圖20所示,存儲(chǔ)器區(qū)域5包括:由內(nèi)核使用的區(qū)域5a,由重新啟動(dòng)處理所需的進(jìn)程使用的區(qū)域5b,由其他進(jìn)程使用的區(qū)域5c以及自由區(qū)域。三個(gè)區(qū)域交疊的區(qū)域是在這些進(jìn)程之間共享的存儲(chǔ)器區(qū)域。由其他進(jìn)程使用的區(qū)域5c中的、不與內(nèi)核使用的區(qū)域5a或者重新啟動(dòng)處理所需的進(jìn)程使用的區(qū)域5b交疊的陰影區(qū)域是重新啟動(dòng)處理所不需要的區(qū)域。換言之,陰影區(qū)域是在轉(zhuǎn)換至休眠模式時(shí)其數(shù)據(jù)被保存在交換區(qū)域中的存儲(chǔ)器區(qū)域。
從使用中的存儲(chǔ)器區(qū)域中標(biāo)識(shí)由內(nèi)核使用的區(qū)域5a和由重新啟動(dòng)處理所需的進(jìn)程使用的區(qū)域5b,從而使得能夠標(biāo)識(shí)重新啟動(dòng)處理所不需要的區(qū)域。然而,當(dāng)如在智能設(shè)備的情況下那樣能夠另外安裝應(yīng)用時(shí),不能夠提前標(biāo)識(shí)重新啟動(dòng)處理所需的進(jìn)程,并且因此不能標(biāo)識(shí)由重新啟動(dòng)處理所需的進(jìn)程使用的區(qū)域5b。
因此,本發(fā)明的實(shí)施方式的一個(gè)方面的目的是標(biāo)識(shí)在轉(zhuǎn)換至休眠模式時(shí)要將其數(shù)據(jù)保存在交換區(qū)域中的存儲(chǔ)器區(qū)域,以及將標(biāo)識(shí)的存儲(chǔ)器區(qū)域的數(shù)據(jù)保存在交換區(qū)域中。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)實(shí)施方式的一方面,一種設(shè)備包括存儲(chǔ)器以及耦接至存儲(chǔ)器的處理器,該處理器被配置成創(chuàng)建在從功耗低的休眠模式恢復(fù)而重新啟動(dòng)用戶處理時(shí)要執(zhí)行的進(jìn)程的列表;被配置成創(chuàng)建標(biāo)識(shí)保存區(qū)域的標(biāo)識(shí)信息,所述保護(hù)區(qū)域是通過從使用中的存儲(chǔ)器的整個(gè)存儲(chǔ)器區(qū)域中排除以下存儲(chǔ)器區(qū)域來獲得的:由包括在進(jìn)程的列表中的進(jìn)程使用的存儲(chǔ)器區(qū)域以及由處理器執(zhí)行的操作系統(tǒng)的內(nèi)核所使用的存儲(chǔ)器區(qū)域;以及被配置成在交換區(qū)域中保存由第二創(chuàng)建方器創(chuàng)建的標(biāo)識(shí)信息所標(biāo)識(shí)的存儲(chǔ)器區(qū)域的數(shù)據(jù)。
附圖說明
圖1是示出根據(jù)第一實(shí)施方式的智能設(shè)備的模式的轉(zhuǎn)換的圖;
圖2是根據(jù)第一實(shí)施方式的智能設(shè)備的功能性配置的圖;
圖3是示例性設(shè)置信息存儲(chǔ)單元的圖;
圖4是用于說明通過使用特權(quán)用戶id和服務(wù)進(jìn)程id來標(biāo)識(shí)非保存對(duì)象進(jìn)程的方法的圖;
圖5是由非保存對(duì)象進(jìn)程列表創(chuàng)建器執(zhí)行的處理的流程的流程圖;
圖6是非保存列表創(chuàng)建處理的流程的流程圖;
圖7是由保存對(duì)象存儲(chǔ)器列表創(chuàng)建器執(zhí)行的處理的流程的流程圖;
圖8是根據(jù)第二實(shí)施方式的智能設(shè)備的功能性配置的圖;
圖9是由非保存對(duì)象進(jìn)程列表創(chuàng)建器執(zhí)行的處理的流程的流程圖;
圖10是由保存對(duì)象存儲(chǔ)器列表創(chuàng)建器執(zhí)行的處理的流程的流程圖;
圖11是根據(jù)第三實(shí)施方式的智能設(shè)備的功能性配置的圖;
圖12是由保存對(duì)象存儲(chǔ)器列表創(chuàng)建器執(zhí)行的處理的流程的流程圖;
圖13是由數(shù)據(jù)保存單元執(zhí)行的處理的流程的流程圖;
圖14是用于說明非易失性存儲(chǔ)器的使用的圖;
圖15是根據(jù)第一實(shí)施方式至第三實(shí)施方式的執(zhí)行交換程序的計(jì)算機(jī)的硬件配置的圖;
圖16是用于說明智能手表的操作的圖;
圖17是用于說明通過使用休眠來減小功耗的圖;
圖18是用于說明數(shù)據(jù)保存和數(shù)據(jù)恢復(fù)的圖;
圖19是用于說明預(yù)活動(dòng)模式的圖;以及
圖20是用于說明當(dāng)標(biāo)識(shí)在預(yù)活動(dòng)模式中要從交換區(qū)域恢復(fù)其數(shù)據(jù)的存儲(chǔ)器區(qū)域時(shí)出現(xiàn)的問題的圖。
具體實(shí)施方式
將參考附圖說明本發(fā)明的優(yōu)選實(shí)施方式。注意,實(shí)施方式不限于本文公開的技術(shù)。
[a]第一實(shí)施方式
首先,將描述根據(jù)第一實(shí)施方式的智能設(shè)備的模式的轉(zhuǎn)換。圖1是示出根據(jù)第一實(shí)施方式的智能設(shè)備的模式的轉(zhuǎn)換的圖。如圖1所示,當(dāng)使得處于活動(dòng)模式的智能設(shè)備休眠的事件發(fā)生時(shí)(t1),在保存處理的前一半中,智能設(shè)備創(chuàng)建執(zhí)行中的進(jìn)程當(dāng)中的、當(dāng)重新啟動(dòng)處理時(shí)需要運(yùn)行的進(jìn)程的列表(t2)。
然后,智能設(shè)備創(chuàng)建由所創(chuàng)建的列表中的進(jìn)程使用的存儲(chǔ)器區(qū)域的列表lp(t3)。智能設(shè)備還創(chuàng)建由os的內(nèi)核使用的存儲(chǔ)器的列表lk(t4)。智能設(shè)備基于存儲(chǔ)器使用狀態(tài)來創(chuàng)建使用中的存儲(chǔ)器的列表lall(t5),以及從lall中刪除(lp∪lk)(t6),其中(lp∪lk)是lp和lk的和的集合。智能設(shè)備換出(swapout)存儲(chǔ)器列表中剩余的存儲(chǔ)器塊(t7)。
在保存處理的后一半中,智能設(shè)備在休眠區(qū)域中保存存儲(chǔ)器中在使用的剩余區(qū)域(t8)并且斷電(t9)。然后,智能設(shè)備轉(zhuǎn)換至休眠模式。當(dāng)喚醒智能設(shè)備的事件發(fā)生時(shí)(t10),電源接通(t11)。
在恢復(fù)處理中,智能設(shè)備將在存儲(chǔ)裝置的休眠區(qū)域中的數(shù)據(jù)加載進(jìn)存儲(chǔ)器(t12),并且轉(zhuǎn)換至預(yù)活動(dòng)模式。智能設(shè)備重新啟動(dòng)用戶處理(t13),以及將在存儲(chǔ)裝置的交換區(qū)域中的數(shù)據(jù)加載進(jìn)存儲(chǔ)器(t14)。當(dāng)完成將交換區(qū)域中的數(shù)據(jù)加載進(jìn)存儲(chǔ)器時(shí),智能設(shè)備轉(zhuǎn)換至活動(dòng)模式。
如上所述,在保存處理的前一半中,根據(jù)第一實(shí)施方式的智能設(shè)備從lall刪除(lp∪lk),并且換出存儲(chǔ)器列表中的剩余存儲(chǔ)器塊,并且因此能夠在交換區(qū)域中創(chuàng)建要在預(yù)活動(dòng)模式下恢復(fù)的數(shù)據(jù)。
本文將描述根據(jù)第一實(shí)施方式的智能設(shè)備的功能性配置。圖2是根據(jù)第一實(shí)施方式的智能設(shè)備的功能性配置的圖。如圖2所示,智能設(shè)備1包括:存儲(chǔ)器管理器2、進(jìn)程管理器3、終端模式控制器4以及交換單元10。
存儲(chǔ)器管理器2是os內(nèi)核的模塊,并且根據(jù)每個(gè)存儲(chǔ)器塊管理存儲(chǔ)器5。存儲(chǔ)器管理器2根據(jù)來自交換單元10的請(qǐng)求向交換單元10通知存儲(chǔ)器分配狀態(tài)。當(dāng)存儲(chǔ)器5出現(xiàn)不足時(shí),存儲(chǔ)器管理器2向交換單元10通知存儲(chǔ)器不足。
進(jìn)程管理器3是os內(nèi)核的模塊,并且管理進(jìn)程。進(jìn)程管理器3根據(jù)來自交換單元10的請(qǐng)求向交換單元10通知執(zhí)行中的進(jìn)程的列表。執(zhí)行中的進(jìn)程的列表包括進(jìn)程之間的父子關(guān)系的信息。
終端模式控制器4管理智能設(shè)備1的模式。智能設(shè)備1的模式包括活動(dòng)模式、休眠模式以及預(yù)活動(dòng)模式。在智能設(shè)備1的模式轉(zhuǎn)換時(shí),終端模式控制器4向交換單元10通知模式轉(zhuǎn)換。
交換單元10通過使用換出將存儲(chǔ)器5的數(shù)據(jù)保存在存儲(chǔ)裝置6中,以及在存儲(chǔ)器5中恢復(fù)保存在存儲(chǔ)裝置6中的數(shù)據(jù)。交換單元10包括:非保存對(duì)象進(jìn)程列表創(chuàng)建器11、設(shè)置信息存儲(chǔ)單元11c、保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12、保存對(duì)象選擇單元13以及數(shù)據(jù)保存單元14。
當(dāng)通過終端模式控制器4通知休眠模式轉(zhuǎn)換時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11創(chuàng)建當(dāng)重新啟動(dòng)用戶處理時(shí)需要運(yùn)行的進(jìn)程的列表,作為非保存對(duì)象進(jìn)程列表。非保存對(duì)象進(jìn)程列表創(chuàng)建器11從進(jìn)程管理器3獲取執(zhí)行中的進(jìn)程的列表,并且基于獲得的進(jìn)程列表和設(shè)置信息存儲(chǔ)單元11c來創(chuàng)建非保存對(duì)象進(jìn)程列表。注意,非保存對(duì)象進(jìn)程列表是進(jìn)程id的列表。
設(shè)置信息存儲(chǔ)單元11c存儲(chǔ)用于創(chuàng)建非保存對(duì)象進(jìn)程列表的設(shè)置信息。如圖3所示,設(shè)置信息存儲(chǔ)單元11c彼此相關(guān)聯(lián)地存儲(chǔ)類別和內(nèi)容。類別代表設(shè)置信息的類型。類別包括:特權(quán)用戶標(biāo)識(shí)符(id)、服務(wù)進(jìn)程id、添加進(jìn)程名稱以及排除進(jìn)程名稱。內(nèi)容是關(guān)于與類別相關(guān)聯(lián)的進(jìn)程的信息。
特權(quán)用戶id是根據(jù)管理器授權(quán)運(yùn)行的特權(quán)進(jìn)程的標(biāo)識(shí)符。根據(jù)圖3,“0”和“100”是特權(quán)用戶id,并且“0”是管理器授權(quán)的用戶id,例如路由進(jìn)程的標(biāo)識(shí)符,并且“100”是控制圖形用戶界面(gui)和數(shù)據(jù)庫(kù)的os模塊的用戶id。
服務(wù)進(jìn)程id是根據(jù)例如系統(tǒng)管理器的服務(wù)授權(quán)而運(yùn)行的服務(wù)進(jìn)程的標(biāo)識(shí)符。根據(jù)圖3,“52”是服務(wù)進(jìn)程id,例如運(yùn)行os所需的中間件的進(jìn)程id。
添加進(jìn)程名稱是標(biāo)識(shí)符不同于特權(quán)用戶id和服務(wù)器進(jìn)程id的進(jìn)程當(dāng)中的、被添加至非保存對(duì)象進(jìn)程列表的進(jìn)程的名稱。根據(jù)圖3,“電池電量剩余監(jiān)測(cè)”、“無線電強(qiáng)度測(cè)量”和“時(shí)鐘”是添加的進(jìn)程的名稱。
排除進(jìn)程名稱是標(biāo)識(shí)符被分類為特權(quán)用戶id或服務(wù)進(jìn)程id的進(jìn)程當(dāng)中的、從非保存對(duì)象進(jìn)程列表排除的進(jìn)程的名稱。根據(jù)圖3,“打印機(jī)后臺(tái)處理程序(printerspooler)”是排除的進(jìn)程的名稱,并且“打印機(jī)后臺(tái)處理程序”被從非保存對(duì)象進(jìn)程列表排除,因?yàn)椤按蛴C(jī)后臺(tái)處理程序”是在重新啟動(dòng)用戶處理時(shí)不需要運(yùn)行的進(jìn)程。
圖4是用于說明通過使用特權(quán)用戶id和服務(wù)進(jìn)程id來標(biāo)識(shí)非保存對(duì)象進(jìn)程的方法的圖。根據(jù)圖4,空白圓代表特權(quán)進(jìn)程,填充圓代表服務(wù)進(jìn)程,以及陰影圓代表根據(jù)另一類型的一般應(yīng)用授權(quán)而運(yùn)行的一般進(jìn)程。
非保存對(duì)象進(jìn)程列表創(chuàng)建器11從進(jìn)程管理器3獲取執(zhí)行中的進(jìn)程的列表,并且通過分析進(jìn)程之間的父子關(guān)系來創(chuàng)建樹。圖4(a)示出了通過使用執(zhí)行中的所有進(jìn)程而創(chuàng)建的示例性樹。
如圖4(b)所示,非保存對(duì)象進(jìn)程列表創(chuàng)建器11從通過使用執(zhí)行中的所有進(jìn)程而創(chuàng)建的樹中排除一般進(jìn)程。如圖4(c)所示,然后非保存對(duì)象進(jìn)程列表創(chuàng)建器11排除所排除的一般進(jìn)程的孩子進(jìn)程。其原因在于,因?yàn)楫?dāng)重新啟動(dòng)用戶處理時(shí)不需要運(yùn)行一般進(jìn)程,所以當(dāng)重新啟動(dòng)用戶處理時(shí)不需要運(yùn)行僅從一般進(jìn)程生成的進(jìn)程,不管其類型如何。
如圖4(d)所示,非保存對(duì)象進(jìn)程列表創(chuàng)建器11將剩余的進(jìn)程當(dāng)作非保存對(duì)象進(jìn)程。
非保存對(duì)象進(jìn)程列表創(chuàng)建器11也從如上所述的非保存對(duì)象進(jìn)程中排除一般進(jìn)程的孩子進(jìn)程,并且因此當(dāng)重新啟動(dòng)用戶處理時(shí)能夠適當(dāng)?shù)貥?biāo)識(shí)需要運(yùn)行的進(jìn)程。
通過使用非保存對(duì)象進(jìn)程列表,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12從使用中的全部存儲(chǔ)器區(qū)域中刪除由內(nèi)核以及重新啟動(dòng)用戶處理時(shí)需要運(yùn)行的進(jìn)程所使用的區(qū)域,并且創(chuàng)建保存區(qū)域的存儲(chǔ)器塊的列表。保存區(qū)域是在轉(zhuǎn)換至休眠模式時(shí)其數(shù)據(jù)被保存在交換區(qū)域中的存儲(chǔ)器區(qū)域,即其數(shù)據(jù)在從休眠模式恢復(fù)之后在預(yù)活動(dòng)模式中被恢復(fù)的存儲(chǔ)器區(qū)域。保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12將作為保存對(duì)象存儲(chǔ)器塊列表的所創(chuàng)建的列表傳遞至數(shù)據(jù)保存單元14。保存對(duì)象存儲(chǔ)器塊列表是標(biāo)識(shí)存儲(chǔ)器塊的標(biāo)識(shí)符的列表。
當(dāng)從存儲(chǔ)器管理器2接收到存儲(chǔ)器不足的通知時(shí),保存對(duì)象選擇單元13創(chuàng)建其數(shù)據(jù)要被保存在存儲(chǔ)裝置6中的存儲(chǔ)器塊,并且將保存對(duì)象存儲(chǔ)器塊列表傳遞至數(shù)據(jù)保存單元14。
當(dāng)接收到保存對(duì)象存儲(chǔ)器塊列表時(shí),數(shù)據(jù)保存單元14將來自存儲(chǔ)器5的保存對(duì)象存儲(chǔ)器塊的數(shù)據(jù)保存在存儲(chǔ)裝置6中。
本文將會(huì)描述由非保存對(duì)象進(jìn)程列表創(chuàng)建器11執(zhí)行的處理的流程。圖5是由非保存對(duì)象進(jìn)程列表創(chuàng)建器11執(zhí)行的處理的流程的流程圖。如圖5所示,非保存對(duì)象進(jìn)程列表創(chuàng)建器11等待轉(zhuǎn)換至休眠模式的事件(步驟s1)。
然后,非保存對(duì)象進(jìn)程列表創(chuàng)建器11接收轉(zhuǎn)換至休眠模式的事件(步驟s2),以及從進(jìn)程管理器3獲取執(zhí)行中的進(jìn)程的列表(步驟s3)。
非保存對(duì)象進(jìn)程列表創(chuàng)建器11執(zhí)行創(chuàng)建非保存對(duì)象進(jìn)程列表的非保存列表創(chuàng)建進(jìn)程(步驟s4),以及將非保存對(duì)象進(jìn)程列表發(fā)送至保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12(步驟s5)。
非保存對(duì)象進(jìn)程列表創(chuàng)建器11創(chuàng)建非保存對(duì)象進(jìn)程列表,并且將非保存對(duì)象進(jìn)程列表發(fā)送至如上所述的保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12,并且因此保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12能夠創(chuàng)建保存對(duì)象存儲(chǔ)器塊列表。
圖6是非保存列表創(chuàng)建處理的流程的流程圖。如圖6所示,非保存對(duì)象進(jìn)程列表創(chuàng)建器11訪問設(shè)置信息存儲(chǔ)單元11c,并且創(chuàng)建特權(quán)進(jìn)程的列表(步驟s11)。
然后,非保存對(duì)象進(jìn)程列表創(chuàng)建器11訪問設(shè)置信息存儲(chǔ)單元11c,并且將服務(wù)進(jìn)程添加至列表(步驟s12)。然后,非保存對(duì)象進(jìn)程列表創(chuàng)建器11c訪問設(shè)置信息存儲(chǔ)單元11c,并且添加由添加進(jìn)程名稱指定的進(jìn)程(步驟s13)。
非保存對(duì)象進(jìn)程列表創(chuàng)建器11訪問設(shè)置信息存儲(chǔ)單元11c,并且刪除由排除進(jìn)程名稱指定的進(jìn)程(步驟s14)。非保存對(duì)象進(jìn)程列表創(chuàng)建器11通過使用執(zhí)行中的進(jìn)程的列表來分析進(jìn)程之間的父子關(guān)系,并且相應(yīng)地從該列表刪除作為一般進(jìn)程的孩子進(jìn)程的特權(quán)進(jìn)程和服務(wù)進(jìn)程(步驟s15)。
如上所述,當(dāng)創(chuàng)建非保存對(duì)象進(jìn)程列表時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11從列表排除作為一般進(jìn)程的孩子進(jìn)程的特權(quán)進(jìn)程和服務(wù)進(jìn)程。因此,非保存對(duì)象進(jìn)程列表創(chuàng)建器11能夠適當(dāng)?shù)貥?biāo)識(shí)當(dāng)重新啟動(dòng)用戶處理時(shí)需要運(yùn)行的進(jìn)程。
將描述由保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12執(zhí)行的處理的流程。圖7是由保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12執(zhí)行的處理的流程的流程圖。如圖7所示,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12等待接收非保存對(duì)象進(jìn)程列表(步驟s21)。
當(dāng)接收到非保存對(duì)象進(jìn)程列表時(shí)(步驟s22),保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12創(chuàng)建由包含在非保存對(duì)象進(jìn)程列表中的所有進(jìn)程使用的存儲(chǔ)器塊的列表作為列表1(步驟s23)。然后,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12創(chuàng)建由內(nèi)核使用的存儲(chǔ)器塊的列表作為列表2(步驟s24),以及創(chuàng)建當(dāng)前在使用的全部存儲(chǔ)器塊的列表作為列表3(步驟s25)。
然后,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12通過對(duì)列表1和列表2進(jìn)行or(邏輯或)運(yùn)算來創(chuàng)建列表4(步驟s26),以及通過從列表3中刪除列表4的全部元素來創(chuàng)建列表5(步驟s27)。保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12將作為保存對(duì)象存儲(chǔ)器塊列表的列表5發(fā)送至數(shù)據(jù)保存單元14(步驟s28)。
保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12創(chuàng)建如上所述的保存對(duì)象存儲(chǔ)器塊列表,并且因此數(shù)據(jù)保存單元14能夠在交換區(qū)域中保存當(dāng)啟動(dòng)用戶處理時(shí)不需要的數(shù)據(jù)。
如上所述,在第一實(shí)施方式中,非保存對(duì)象進(jìn)程列表創(chuàng)建器11基于執(zhí)行中的進(jìn)程的列表和設(shè)置信息存儲(chǔ)單元11c來創(chuàng)建非保存對(duì)象進(jìn)程列表。然后,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12基于非保存對(duì)象進(jìn)程列表來創(chuàng)建保存對(duì)象存儲(chǔ)器塊列表。然后,數(shù)據(jù)保存單元14基于保存對(duì)象存儲(chǔ)器塊列表將數(shù)據(jù)保存在交換區(qū)域中。
因此,智能設(shè)備1能夠標(biāo)識(shí)在智能設(shè)備轉(zhuǎn)換至休眠模式時(shí)其數(shù)據(jù)要被保存在交換區(qū)域中的存儲(chǔ)器區(qū)域,以及將所標(biāo)識(shí)的存儲(chǔ)器區(qū)域的數(shù)據(jù)保存在交換區(qū)域中。換言之,在智能設(shè)備轉(zhuǎn)換至休眠模式時(shí),智能設(shè)備1能夠?qū)⒋鎯?chǔ)器的適當(dāng)區(qū)域的數(shù)據(jù)保存在交換區(qū)域中。
在第一實(shí)施方式中,非保存對(duì)象進(jìn)程列表創(chuàng)建器11創(chuàng)建包括特權(quán)進(jìn)程和服務(wù)進(jìn)程的非保存對(duì)象進(jìn)程列表。因此,智能設(shè)備1能夠防止在智能設(shè)備1從休眠模式恢復(fù)時(shí)需要運(yùn)行的進(jìn)程所使用的存儲(chǔ)器區(qū)域的數(shù)據(jù)被保存在交換區(qū)域中,以及能夠在預(yù)活動(dòng)模式下重新啟動(dòng)用戶處理。
在第一實(shí)施方式中,非保存對(duì)象進(jìn)程列表創(chuàng)建器11創(chuàng)建排除了以下進(jìn)程的非保存對(duì)象進(jìn)程列表:作為一般進(jìn)程的孩子進(jìn)程運(yùn)行的特權(quán)進(jìn)程和服務(wù)進(jìn)程。因此,智能設(shè)備1能夠準(zhǔn)確地標(biāo)識(shí)當(dāng)重新啟動(dòng)用戶處理時(shí)需要運(yùn)行的進(jìn)程。
在第一實(shí)施方式中,非保存對(duì)象進(jìn)程列表創(chuàng)建器11通過添加或者排除特定名稱的進(jìn)程來創(chuàng)建非保存對(duì)象進(jìn)程列表。因此,智能設(shè)備1能夠適當(dāng)?shù)乜刂飘?dāng)重新啟動(dòng)用戶處理時(shí)需要運(yùn)行的進(jìn)程。
[b]第二實(shí)施方式
第一實(shí)施方式描述了在轉(zhuǎn)換至休眠模式時(shí)創(chuàng)建非保存對(duì)象進(jìn)程列表的智能設(shè)備1。智能設(shè)備也可以保持更新非保存對(duì)象進(jìn)程列表。第二實(shí)施方式將描述保持更新非保存對(duì)象進(jìn)程列表的智能設(shè)備。
圖8是根據(jù)第二實(shí)施方式的智能設(shè)備的功能性配置的圖。為了便于描述,使用與圖2相同的附圖標(biāo)記來表示與圖2所示的單元起到相同作用的功能性單元,并且下面將省略其詳細(xì)描述。
如圖8所示,與圖2所示的智能設(shè)備1不同之處在于:智能設(shè)備1a包括進(jìn)程管理器3a而不是進(jìn)程管理器3,包括終端模式控制器4a而不是終端模式控制器4,以及包括交換單元10a而不是交換單元10。
雖然進(jìn)程管理器3a具有與進(jìn)程管理器3相同的功能,但是進(jìn)程管理器3a向交換單元10a通知新啟動(dòng)和結(jié)束的進(jìn)程,而不是通知執(zhí)行中的進(jìn)程的列表。雖然終端模式控制器4a具有與終端模式控制器4相同的功能,但是被通知模式轉(zhuǎn)換的元件不同。具體地,向下面將描述的保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a通知模式轉(zhuǎn)換。
雖然交換單元10a具有與交換單元10相同的功能,但交換單元10a包括非保存對(duì)象進(jìn)程列表創(chuàng)建器11a而不是非保存對(duì)象進(jìn)程列表創(chuàng)建器11,以及包括保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a而不是保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12。交換單元10a另外包括非保存對(duì)象進(jìn)程存儲(chǔ)單元15a。
非保存對(duì)象進(jìn)程存儲(chǔ)單元15a存儲(chǔ)非保存對(duì)象進(jìn)程列表。當(dāng)從進(jìn)程管理器3a接收到新啟動(dòng)或者結(jié)束的進(jìn)程時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11a創(chuàng)建非保存對(duì)象進(jìn)程列表,并且更新非保存對(duì)象進(jìn)程存儲(chǔ)單元15a。換言之,當(dāng)新啟動(dòng)或者結(jié)束進(jìn)程時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11a創(chuàng)建非保存對(duì)象進(jìn)程列表。
當(dāng)被終端模式控制器4a通知轉(zhuǎn)換至休眠模式時(shí),保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a訪問非保存對(duì)象進(jìn)程存儲(chǔ)單元15a,并且創(chuàng)建保存對(duì)象存儲(chǔ)器塊列表。
圖9是由非保存對(duì)象進(jìn)程列表創(chuàng)建器11a執(zhí)行的處理的流程的流程圖。如圖9所示,非保存對(duì)象進(jìn)程列表創(chuàng)建器11a等待來自進(jìn)程管理器3a的關(guān)于進(jìn)程的通知(步驟s31)。在接收到關(guān)于進(jìn)程的通知時(shí)(步驟s32),非保存對(duì)象進(jìn)程列表創(chuàng)建器11a確定通知的內(nèi)容是什么(步驟s33)。
作為結(jié)果,當(dāng)通知內(nèi)容是進(jìn)程啟動(dòng)時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11a確定是否需要在預(yù)活動(dòng)模式下運(yùn)行所通知的進(jìn)程(步驟s34)。當(dāng)不需要在預(yù)活動(dòng)模式下運(yùn)行進(jìn)程時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11a返回至步驟s31。另一方面,當(dāng)需要在預(yù)活動(dòng)模式下運(yùn)行進(jìn)程時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11a將進(jìn)程id添加至非保存對(duì)象進(jìn)程列表(步驟s35),更新非保存對(duì)象進(jìn)程存儲(chǔ)單元15a,并且返回至步驟s31。
當(dāng)通知內(nèi)容是進(jìn)程結(jié)束并且所通知的進(jìn)程的進(jìn)程id被包含在非保存對(duì)象進(jìn)程列表中時(shí),非保存對(duì)象進(jìn)程列表創(chuàng)建器11a從非保存對(duì)象進(jìn)程列表中刪除該進(jìn)程id(步驟s36)。然后,非保存對(duì)象進(jìn)程列表創(chuàng)建器11a更新非保存對(duì)象進(jìn)程存儲(chǔ)單元15a,并且返回至步驟s31。
當(dāng)進(jìn)程啟動(dòng)或者結(jié)束時(shí)非保存對(duì)象進(jìn)程列表創(chuàng)建器11a更新非保存對(duì)象進(jìn)程列表,并且因此在轉(zhuǎn)換至休眠模式時(shí)非保存對(duì)象進(jìn)程列表創(chuàng)建器11a不需要?jiǎng)?chuàng)建非保存對(duì)象進(jìn)程列表。
圖10是由保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a執(zhí)行的處理的流程的流程圖。如圖10所示,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a等待接收模式轉(zhuǎn)換通知(步驟s41)。
然后,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a接收模式轉(zhuǎn)換通知(步驟s42),并且從非保存對(duì)象進(jìn)程存儲(chǔ)單元15a讀取非保存對(duì)象進(jìn)程列表(步驟s43)。保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a創(chuàng)建由包含在非保存對(duì)象進(jìn)程列表中的所有進(jìn)程使用的存儲(chǔ)器塊的列表作為列表1(步驟s44)。
保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a創(chuàng)建由內(nèi)核使用的存儲(chǔ)器塊的列表作為列表2(步驟s45),并且創(chuàng)建當(dāng)前在使用的整個(gè)存儲(chǔ)器的塊的列表作為列表3(步驟s46)。
保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a通過對(duì)列表1和列表2進(jìn)行or運(yùn)算來創(chuàng)建列表4(步驟s47),以及通過從列表3中刪去列表4的全部元素來創(chuàng)建列表5(步驟s48)。保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a將作為保存對(duì)象存儲(chǔ)器塊列表的列表5發(fā)送至數(shù)據(jù)保存單元14(步驟s49)。
保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a訪問非保存對(duì)象進(jìn)程存儲(chǔ)單元15a,并且創(chuàng)建保存對(duì)象存儲(chǔ)器塊列表,并且因此在轉(zhuǎn)換至休眠模式時(shí)不需要?jiǎng)?chuàng)建非保存對(duì)象進(jìn)程列表的處理。
如上所述,在第二實(shí)施方式中,智能設(shè)備1a保持更新非保存對(duì)象進(jìn)程列表,并且因此當(dāng)其轉(zhuǎn)換至休眠模式時(shí)不需要?jiǎng)?chuàng)建非保存對(duì)象進(jìn)程列表,并且因此能夠縮短保存數(shù)據(jù)的時(shí)間。
[c]第三實(shí)施方式
第二實(shí)施方式描述了保持更新非保存對(duì)象進(jìn)程列表的情況。此外,可以保持更新保存對(duì)象存儲(chǔ)器塊列表。第三實(shí)施方式將描述保持更新保存對(duì)象存儲(chǔ)器塊列表的智能設(shè)備。
圖11是根據(jù)第三實(shí)施方式的智能設(shè)備的功能性配置的圖。為了便于描述,使用與圖8相同的附圖標(biāo)記表示與圖8所述的功能單元起到相同作用的功能單元,并且下面將省略其詳細(xì)描述。
如圖11所示,與圖8中所示的智能設(shè)備1a不同之處在于:智能設(shè)備1b包括終端模式控制器4b而不是終端模式控制器4a,以及包括交換單元10b而不是交換單元10a。雖然終端模式控制器4b具有與終端模式控制器4a相同的功能,但是被通知模式轉(zhuǎn)換的元件不同。具體地,向下面將描述的數(shù)據(jù)保存單元14b通知模式轉(zhuǎn)換。
不同于交換單元10a,交換單元10b包括保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b而不是保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12a,以及包括數(shù)據(jù)保存單元14b而不是數(shù)據(jù)保存單元14。交換單元10b另外包括保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b。
保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b存儲(chǔ)保存對(duì)象存儲(chǔ)器塊列表。當(dāng)更新非保存對(duì)象進(jìn)程列表時(shí),保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b訪問非保存對(duì)象進(jìn)程存儲(chǔ)單元15a,創(chuàng)建保存對(duì)象存儲(chǔ)器塊列表,以及更新保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b。
雖然數(shù)據(jù)保存單元14b具有與數(shù)據(jù)保存單元14相同的功能,但是當(dāng)接收到來自終端模式控制器4b的模式轉(zhuǎn)換通知時(shí),數(shù)據(jù)保存單元14b訪問保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b,并且保存包含在保存對(duì)象存儲(chǔ)器塊列表中的存儲(chǔ)器塊的數(shù)據(jù)。
圖12是由保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b執(zhí)行的處理的流程的流程圖。如圖12所示,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b等待非保存對(duì)象進(jìn)程列表的更新(步驟s51)。
當(dāng)檢測(cè)到非保存對(duì)象進(jìn)程列表的更新時(shí)(步驟s52),保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b從非保存對(duì)象進(jìn)程存儲(chǔ)單元15a讀取非保存對(duì)象進(jìn)程列表(步驟s53)。然后,保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b創(chuàng)建由包含在非保存對(duì)象進(jìn)程列表中的所有進(jìn)程使用的存儲(chǔ)器塊的列表作為列表1(步驟s54)。
保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b創(chuàng)建由內(nèi)核使用的存儲(chǔ)器塊的列表作為列表2(步驟s55),以及創(chuàng)建當(dāng)前在使用的整個(gè)存儲(chǔ)器的塊的列表作為列表3(步驟s56)。
保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b通過對(duì)列表1和列表2進(jìn)行or運(yùn)算來創(chuàng)建列表4(步驟s57),以及通過從列表3中刪去列表4的全部元素來創(chuàng)建列表5(步驟s58)。保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b將作為保存對(duì)象存儲(chǔ)器塊列表的列表5寫入保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b(步驟s59)。
如上所述,當(dāng)非保存對(duì)象進(jìn)程列表被更新時(shí),保存對(duì)象存儲(chǔ)器列表創(chuàng)建器12b訪問非保存對(duì)象進(jìn)程存儲(chǔ)單元15a,創(chuàng)建保存對(duì)象存儲(chǔ)器塊列表,以及將保存對(duì)象存儲(chǔ)器塊列表寫入保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b。因此,當(dāng)轉(zhuǎn)換至休眠模式時(shí),智能設(shè)備1b不需要?jiǎng)?chuàng)建保存對(duì)象存儲(chǔ)器塊列表的處理。
圖13是由數(shù)據(jù)保存單元14b執(zhí)行的處理的流程的流程圖。如圖13所示,數(shù)據(jù)保存單元14b等待接收事件(步驟s61),以及當(dāng)接收到事件時(shí)確定接收的內(nèi)容是什么(步驟s62)。
作為結(jié)果,當(dāng)接收的內(nèi)容是模式轉(zhuǎn)換通知時(shí),數(shù)據(jù)保存單元14b從保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b讀取保存對(duì)象存儲(chǔ)器塊列表(步驟s63)。然后,數(shù)據(jù)保存單元14b在存儲(chǔ)裝置6中保存保存對(duì)象存儲(chǔ)器塊列表中的存儲(chǔ)器塊的數(shù)據(jù)(步驟s64),并且返回至步驟s61。
另一方面,當(dāng)接收的內(nèi)容是保存對(duì)象存儲(chǔ)器塊列表時(shí),數(shù)據(jù)保存單元14b在存儲(chǔ)裝置6中保存該保存對(duì)象存儲(chǔ)器塊列表中的存儲(chǔ)器塊的數(shù)據(jù)(步驟s64),并且返回至步驟s61。
數(shù)據(jù)保存單元14b從如上所述的保存對(duì)象存儲(chǔ)器塊存儲(chǔ)單元16b讀取保存對(duì)象存儲(chǔ)器塊列表,并且因此能夠立即開始保存數(shù)據(jù)。
如上所述,在第三實(shí)施方式中,智能設(shè)備1b保持更新保存對(duì)象存儲(chǔ)器塊列表,并且因此在其轉(zhuǎn)換至休眠模式時(shí)能夠進(jìn)一步縮短保存數(shù)據(jù)的時(shí)間。
根據(jù)第一實(shí)施方式至第三實(shí)施方式,智能設(shè)備將數(shù)據(jù)保存在存儲(chǔ)裝置6中,存儲(chǔ)裝置6例如是閃存或者硬盤驅(qū)動(dòng)器(hdd)。注意,存儲(chǔ)裝置6可以是非易失性存儲(chǔ)器如磁阻隨機(jī)存取存儲(chǔ)器(mram),如圖14所示。
替選地,存儲(chǔ)裝置6可以部分地是非易失性存儲(chǔ)器。例如,休眠區(qū)域可以被設(shè)置為mram,交換區(qū)域可以被設(shè)置為閃存。休眠區(qū)域設(shè)置為mram使得能夠快速轉(zhuǎn)換至預(yù)活動(dòng)模式。
根據(jù)第一實(shí)施方式至第三實(shí)施方式的交換單元由計(jì)算機(jī)通過執(zhí)行與交換單元具有相同功能的交換程序來實(shí)現(xiàn)。這里將描述執(zhí)行交換程序的計(jì)算機(jī)。
圖15是根據(jù)第一實(shí)施方式至第三實(shí)施方式的執(zhí)行交換程序的計(jì)算機(jī)的硬件配置的圖。如圖15所示,計(jì)算機(jī)50包括:cpu50a、閃存50b,存儲(chǔ)器50c、顯示單元50d以及無線通信單元50e。
cpu50a是讀取和執(zhí)行被存儲(chǔ)在存儲(chǔ)器50c中的應(yīng)用和程序(如交換程序)的處理設(shè)備。閃存50b是存儲(chǔ)例如應(yīng)用和交換程序的非易失性存儲(chǔ)器。閃存50b對(duì)應(yīng)于圖2、圖8和圖11中所示的存儲(chǔ)裝置6。
存儲(chǔ)器50c是存儲(chǔ)例如從閃存50b中讀取的應(yīng)用和交換程序的ram。存儲(chǔ)器50c存儲(chǔ)例如執(zhí)行交換程序所需的數(shù)據(jù)以及執(zhí)行交換程序的中間結(jié)果。存儲(chǔ)器50c對(duì)應(yīng)于圖2、圖8和圖11中所示的存儲(chǔ)器5。
顯示單元50d是顯示由應(yīng)用輸出的畫面的設(shè)備,并且例如是液晶顯示設(shè)備。顯示單元50d接受用戶的觸摸操作,并且將接受的數(shù)據(jù)傳遞給cpu50a。
無線通信單元50e是執(zhí)行無線通信(如經(jīng)由局域網(wǎng)(lan)、藍(lán)牙(注冊(cè)商標(biāo))以及移動(dòng)電話的通信)的模塊。無線通信單元50e可以具有多個(gè)無線通信功能。
根據(jù)實(shí)施方式的一方面,當(dāng)轉(zhuǎn)換至休眠模式時(shí)可以將存儲(chǔ)器的適當(dāng)區(qū)域的數(shù)據(jù)保存在交換區(qū)域中。