開機的映像文件的大小縮減方法及運算裝置制造方法
【專利摘要】本發(fā)明提供了一種開機的映像文件的大小縮減方法及運算裝置。此方法的一實施例包括以下步驟。響應(yīng)關(guān)機要求,判斷是否已啟用特殊開機模式,例如快速開機模式。若已啟用特殊開機模式,設(shè)定移除進程用的門限參數(shù)集合。若此運算裝置的第一存儲單元中存在符合移除進程的條件的進程,則移除符合此移除進程的條件的至少一進程,其中此移除進程的條件包括基于此設(shè)定的門限參數(shù)集合所界定的條件。進入休眠程序,其中此休眠程序產(chǎn)生開機的映像文件并存儲于此運算裝置的第二存儲單元,其中此映像文件包括經(jīng)過此移除步驟后保留于此第一存儲單元中的進程。
【專利說明】開機的映像文件的大小縮減方法及運算裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種開機的映像文件的大小縮減方法及運算裝置。
【背景技術(shù)】
[0002]一般以休眠式(hibernation)為基礎(chǔ)的開機模式下(例如快速開機模式)的關(guān)機流程,都需要將該系統(tǒng)的所有的狀態(tài)(status)都存成快照映像文件(snapshot image),并放在外部存儲空間。記錄全部的系統(tǒng)狀態(tài)并存放在外部存儲空間需要很多時間,因此于一些現(xiàn)有做法中,提出在休眠式快速開機的關(guān)機流程中,先將dirty pages寫入外部存儲空間上的互換分割區(qū)(swap partition),之后才繼續(xù)將快照映像文件寫至外部存儲空間。在啟用快速開機機制的開機流程中只需要加載working set的方法。這些文獻及專利都是以標準的Linux休眠機制為基礎(chǔ)。
[0003]這種快速開機機制,在休眠式快速開機的關(guān)機流程中在產(chǎn)生快照映像文件(snapshot image)時,會利用Linux內(nèi)存管理機制,先將可互換頁(swappable pages)寫出至外部存儲空間上的置換空間(swap space),且開機后啟用相關(guān)應(yīng)用進程也會以demandpaging的方式在互換分割區(qū)里加載執(zhí)行進程所需的頁(pages)。然而,這種方式在關(guān)機時會與外部存儲裝置有頻繁的1/0動作,可能會造成冗長的關(guān)機時間。
【發(fā)明內(nèi)容】
[0004]實施例提供有關(guān)于一種開機的映像文件的大小縮減方法及運算裝置。
[0005]根據(jù)一實施例,提供一種開機的映像文件的大小縮減方法,執(zhí)行于運算裝置,其包括以下步驟。響應(yīng)關(guān)機要求,判斷是否已啟用特殊開機模式。若已啟用特殊開機模式,設(shè)定移除進程用的門限參數(shù)集合。若此運算裝置的第一存儲單元中存在符合移除進程的條件的進程,則移除符合此移除進程的條件的至少一進程,其中此移除進程的條件包括基于此設(shè)定的門限參數(shù)集合所界定的條件。進入休眠程序,其中此休眠程序產(chǎn)生開機的映像文件并存儲于此運算裝置的第二存儲單元,其中此映像文件包括經(jīng)過此移除步驟后保留于此第一存儲單元中的進程。
[0006]根據(jù)一實施例,提供一種運算裝置可讀取記錄媒體,其中是記錄包括運算裝置可執(zhí)行的多個指令,當(dāng)運算裝置執(zhí)行這些指令后,此運算裝置用以執(zhí)行如上述的開機的映像文件的大小縮減方法的實施例。
[0007]根據(jù)一實施例,提供一種運算裝置,其包括:第一存儲單元、第二存儲單元以及處理單元。處理單元,響應(yīng)于關(guān)機要求,若已啟用特殊開機模式,此處理單元設(shè)定移除進程用的門限參數(shù)集合。若此運算裝置的第一存儲單元中存在符合移除進程的條件的進程,則此處理單元移除符合此移除進程的條件的至少一進程,其中此移除進程的條件包括基于此設(shè)定的門限參數(shù)集合所界定的條件。此處理單元響應(yīng)于此關(guān)機要求并令此運算裝置進入休眠狀態(tài),其中此運算裝置進入此休眠狀態(tài)前,此處理單元產(chǎn)生開機的映像文件并存儲于此第二存儲單元,其中此映像文件包括經(jīng)過此移除動作后保留于此第一存儲單元中的進程。[0008]為了對上述及其他方面有更佳的了解,下文舉實施例,并配合所附附圖,作詳細說明如下:
【專利附圖】
【附圖說明】
[0009]圖1是為依據(jù)一實施例的一種開機的映像文件的大小縮減方法的流程圖。
[0010]圖2是為一運算裝置的一實施例。
[0011]圖3是為使用一進程列表于圖1的方法的一實施例。
[0012]圖4是為使用一進程列表于圖1的方法的另一實施例。
[0013]圖5是為在進程列表中加入進程項目的一實施例。
[0014]圖6示意提供一用戶接口以讓用戶于進程列表中加入進程項目的一實施例。
[0015]【主要元件符號說明】
[0016]10:運算裝置;110:處理單元;
[0017]120:第一存儲器; 130:第二存儲器;
[0018]131:文件系統(tǒng);133:休眠文件;
[0019]135:互換空間;170:輸入單元;
[0020]180:顯示單元;190:通信單元;
[0021]700:用戶界面;701:進程名稱;
[0022]702:選取方塊711:進程列表;
[0023]712:占用存儲器大??; 713:執(zhí)行次數(shù);
[0024]S110-S140、S210-S220、S310-S330、S410-S430:步驟。
【具體實施方式】
[0025]實施例提供有關(guān)于一種開機的映像文件的大小縮減方法及運算裝置。在一些實施例中,可以產(chǎn)生數(shù)據(jù)量較小的映像文件,讓運算裝置得以利用此映像文件以開機。在另一些實施例中,還可依據(jù)進程列表,讓映像文件保留此進程列表中所指定的進程,讓開機后即能使用指定的進程。而一些實施例還包括在進程列表中設(shè)定進程項目的方式,例如利用統(tǒng)計方式或通過用戶接口設(shè)定。
[0026]圖1是為依據(jù)一實施例的一種開機的映像文件的大小縮減方法的流程圖。此方法能適用于例如各種計算機、行動裝置、嵌入式系統(tǒng)等的運算裝置中。例如圖2所示的運算裝置10包括處理單元110、第一存儲單元120 (例如主存儲器或依電性存儲器如RAM等)及第二存儲單元130 (例如副存儲器或非依電性存儲器如FLASH、硬盤等)。第二存儲單元130例如可用以存儲文件系統(tǒng)131、休眠文件(或映像文件)133以及互換空間135。此外,運算裝置10還可選擇性的包括其他元件,如輸入單元170、顯示單元180 (如顯示器或觸控屏幕)及通信單元190 (如支持2G、3G、LTE、4G、WiFi及GPS的有線、無線、寬帶的通信模式的至少一者)以實現(xiàn)不同需求,如智能型手機、平板計算機、智能型電視、多媒體播放器、筆記本電腦、車用計算機、桌面計算機等。運算裝置10具有正常開機或關(guān)機的模式,也具有特殊開機模式,其中特殊開機模式代表開機時,恢復(fù)之前一次以休眠程序產(chǎn)生的映像文件或稱休眠文件,其中包括足以在恢復(fù)后`正常運行的內(nèi)容,例如系統(tǒng)進程及某些特定用戶進程(如桌面管理進程)以至于其他恢復(fù)所需的內(nèi)容(如運算裝置的硬件的設(shè)定參數(shù)等)。而以下各實施例的步驟都可通過運算裝置10的處理單元110執(zhí)行。
[0027]請參考圖1,如步驟SllO所示,運算裝置,響應(yīng)關(guān)機要求(如由用戶所設(shè)定或運算裝置的系統(tǒng)所產(chǎn)生等),判斷是否已啟用特殊開機模式。步驟SllO也可視為運算裝置處于的關(guān)機過程中進行此判斷動作。如果并未啟用特殊開機模式,則如步驟S115所示,進入正常關(guān)機程序。若判斷為已啟用特殊開機模式,如步驟S120所示,設(shè)定移除進程用的門限參數(shù)集合。如步驟S130所示,執(zhí)行移除步驟,若運算裝置的第一存儲單元中存在符合移除進程的條件的進程,則移除符合此移除進程的條件的至少一進程,其中此移除進程的條件包括基于此設(shè)定的門限參數(shù)集合所界定的條件。經(jīng)過移除步驟之后,如步驟S140所示,進入休眠程序,其中此休眠程序產(chǎn)生開機的映像文件并存儲于此運算裝置的第二存儲單元,其中此映像文件至少包括經(jīng)過此移除步驟后保留于此第一存儲單元中的進程,例如是系統(tǒng)進程如核心進程以及某些特定用戶進程(如桌面管理進程)。而休眠程序結(jié)束后,運算裝置進入休眠狀態(tài),運算裝置關(guān)機。
[0028]在上述實施例中,步驟S130所示的移除步驟可利用不同方式實現(xiàn)。例如圖1的步驟S131所示,決定此運算裝置的第一存儲單元中是否存在符合移除進程的條件的進程。若是,則執(zhí)行步驟S135以移除符合此移除進程的條件的至少一進程。若第一存儲單元中已不存在符合此移除進程的條件的進程,則可執(zhí)行其他步驟。
[0029]如此,上述步驟S120所設(shè)定的門限參數(shù)集合能令此休眠程序產(chǎn)生的映像文件的大小得以減少。舉例而言,表一示意運算裝置的第一存儲單元中目前仍在進程的狀態(tài)。表一說明了第一存儲單元中進程Pn至ΡΝ+1(Ι的進程屬性、優(yōu)先權(quán)和占用存儲器大小,其中進程Pn至ΡΝ+2為系統(tǒng)進程其優(yōu)先權(quán)最高(例如以O(shè)表示),其余都為用戶進程且其優(yōu)先權(quán)較低(例如為6,12,18等)。另外,最后一橫列表示可用存儲器(free memory)大小為60MB。步驟S120的設(shè)定的門限參數(shù)集合具有的門限參數(shù)例如是有關(guān)于優(yōu)先權(quán)門限值(如系統(tǒng)警戒門限值),在執(zhí)行上述步驟S130的移除步驟時,令符合此移除進程的條件的該至少一進程因優(yōu)先權(quán)而被移除(例如是優(yōu)先權(quán)較低的進程,如其優(yōu)先權(quán)值大于O),并保留優(yōu)先權(quán)不符合此移除進程的條件的進程。如此,經(jīng)過步驟S130之后,例如優(yōu)先權(quán)值為O以下的進程都被刪除,因此可用存儲器大小增加至85MB,占用的存儲器(active memory)大小減少至15MB。而步驟S140中產(chǎn)生的映像文件至少包括經(jīng)過步驟S130之后保留于此第一存儲單元中的進程,也就是映像文件的大小至少為15MB。而依據(jù)未執(zhí)行步驟S130以前的現(xiàn)用存儲器所制作的映像文件的大小至少為40MB,應(yīng)用圖1的實施例的方法于表一的例子所得到的映像文件的大小減少了 62.5%。
[0030]
【權(quán)利要求】
1.一種開機的映像文件的大小縮減方法,其特征在于,執(zhí)行于運算裝置,包括: 響應(yīng)關(guān)機要求,判斷是否已啟用特殊開機模式; 若已啟用該特殊開機模式,設(shè)定移除進程用的門限參數(shù)集合; 若該運算裝置的第一存儲單元中存在符合移除進程的條件的進程,則移除符合該移除進程的條件的至少一進程,其中該移除進程的條件包括基于該門限參數(shù)集合所界定的條件;以及 進入休眠程序,其中該休眠程序產(chǎn)生開機的映像文件并存儲于該運算裝置的第二存儲單元,其中該映像文件包括經(jīng)過該移除步驟后保留于該第一存儲單元中的進程。
2.根據(jù)權(quán)利要求1所述的開機的映像文件的大小縮減方法,其中在該移除步驟中,符合該移除進程的條件的至少一進程是為系統(tǒng)進程以外的進程。
3.根據(jù)權(quán)利要求1所述的開機的映像文件的大小縮減方法,其中該設(shè)定的門限參數(shù)集合具有的優(yōu)先權(quán)門限值,在執(zhí)行該移除步驟時,令符合該移除進程的條件的該至少一進程因優(yōu)先權(quán)而被移除。
4.根據(jù)權(quán)利要求1所述的開機的映像文件的大小縮減方法,其中該設(shè)定的門限參數(shù)集合具有的可用存儲器大小門限值,在執(zhí)行該移除步驟時,令符合該移除進程的條件的該至少一進程因優(yōu)先權(quán)而被移除。
5.根據(jù)權(quán)利要求1所述的開機的映像文件的大小縮減方法,其中在該移除步驟前,該方法還包括: 決定該運算裝置目前的進程是否存在于進程列表中; 若是,提升至少一存在于該進程列表`中的目前的進程的優(yōu)先權(quán)。`
6.根據(jù)權(quán)利要求5所述的開機的映像文件的大小縮減方法,其中該提升步驟,使該至少一目前的進程的優(yōu)先權(quán)提升后于該移除步驟后得以保留于該映像文件中。
7.根據(jù)權(quán)利要求6所述的開機的映像文件的大小縮減方法,其中該提升步驟,使該至少一目前的進程的優(yōu)先權(quán)等同于該運算裝置的核心進程的優(yōu)先權(quán),以于該移除步驟后得以保留于該映像文件中。
8.根據(jù)權(quán)利要求1所述的開機的映像文件的大小縮減方法,其中在該移除步驟中,該移除進程的條件還包括基于進程列表所界定的條件,若該運算裝置的該第一存儲單元中的進程是為符合該基于該設(shè)定的門限參數(shù)集合所界定的條件且不存在于該進程列表中,則該進程得以被移除。
9.根據(jù)權(quán)利要求5至8項中任一項所述的開機的映像文件的大小縮減方法,其中在該判斷是否已啟用特殊開機模式的步驟以前,該方法還包括: 記錄該運算裝置的進程的執(zhí)行次數(shù)作為記錄數(shù)據(jù); 若該記錄數(shù)據(jù)中的進程的執(zhí)行次數(shù)滿足基于次數(shù)門限的條件,則令該記錄數(shù)據(jù)中的該進程加入至該進程列表中。
10.根據(jù)權(quán)利要求5至8項中任一項所述的開機的映像文件的大小縮減方法,其中在該判斷是否已啟用特殊開機模式的步驟以前,該方法還包括: 提供用戶接口,該用戶接口呈現(xiàn)該運算裝置的至少一進程; 響應(yīng)選取動作,將該至少一進程中的被選取者加入該進程列表中。
11.根據(jù)權(quán)利要求10所述的開機的映像文件的大小縮減方法,其中該用戶接口還呈現(xiàn)該運算裝置運行中的各該至少一進程的至少一占用存儲器大小和執(zhí)行次數(shù)之一者。
12.根據(jù)權(quán)利要求10所述的開機的映像文件的大小縮減方法,其中該用戶接口還呈現(xiàn)該進程列表。
13.根據(jù)權(quán)利要求1所述的開機的映像文件的大小縮減方法,其中該移除步驟是呼叫該運算裝置的操作系統(tǒng)的存儲器移除進程進行移除的處理。
14.一種運算裝置可讀取記錄媒體,其特征在于,其中系記錄包括運算裝置可執(zhí)行的多個指令,當(dāng)運算裝置執(zhí)行該些指令后,該運算裝置用以執(zhí)行根據(jù)權(quán)利要求第I項的開機的映像文件的大小縮減方法。
15.一種運算裝置,其特征在于,包括: 第一存儲單元; 第二存儲單元;以及 處理單元,響應(yīng)于關(guān)機要求,若已啟用特殊開機模式,該處理單元設(shè)定移除進程用的門限參數(shù)集合;若該運算裝置的第一存儲單元中存在符合移除進程的條件的進程,則該處理單元移除符合該移除進程的條件的至少一進程,其中該移除進程的條件包括基于該門限參數(shù)集合所界定的條件; 其中該處理單元響應(yīng)于該關(guān)機要求更令該運算裝置進入休眠狀態(tài),其中該運算裝置進入該休眠狀態(tài)前,該處理單元產(chǎn)生開機的映像文件并存儲于該第二存儲單元,其中該映像文件包括經(jīng)過該移除動作后保留于該第一存儲單元中的進程。
16.根據(jù)權(quán)利要求15所述的運算裝置,其中在該移除動作中,符合該移除進程的條件的該至少一進程為系統(tǒng)進程以外的進程。`
17.根據(jù)權(quán)利要求15所述的運算裝置,其中在該移除動作前,該處理單元還用作提升存在于進程列表中的至少一目前的進程的優(yōu)先權(quán),使該至少一目前的進程的優(yōu)先權(quán)提升后得以保留于該映像文件中。
18.根據(jù)權(quán)利要求15所述的運算裝置,其中該移除進程的條件還包括基于進程列表所界定的條件,若該運算裝置的該第一存儲單元中的進程是為符合該基于該設(shè)定的門限參數(shù)集合所界定的條件且不存在于該進程列表中,則陔處理單元移除陔進程。
19.根據(jù)權(quán)利要求17或18所述的運算裝置,其中該處理單元,在平常運行狀態(tài)中,還用作: 記錄該運算裝置的進程的執(zhí)行次數(shù)作為記錄數(shù)據(jù); 若該記錄數(shù)據(jù)中的進程的執(zhí)行次數(shù)滿足基于次數(shù)門限的條件,則令該記錄數(shù)據(jù)中的該進程加入至該進程列表中。
20.根據(jù)權(quán)利要求17或18所述的運算裝置,其特征在于,還包括顯示單元,其中該處理單元在平常運行狀態(tài)中更用作: 提供用戶接口于該顯示單元,該用戶接口呈現(xiàn)該運算裝置的至少一進程; 響應(yīng)選取動作,將該至少一進程中的被選取者加入該進程列表中。
【文檔編號】G06F9/445GK103677893SQ201310421207
【公開日】2014年3月26日 申請日期:2013年9月16日 優(yōu)先權(quán)日:2012年9月19日
【發(fā)明者】林祐慶, 林國弘 申請人:財團法人工業(yè)技術(shù)研究院