休眠管理方法及相關裝置制造方法
【專利摘要】本發(fā)明提供一種休眠管理方法及相關裝置,該方法適用于一裝置,其中,裝置包括一存儲器以及多個執(zhí)行程序,每一執(zhí)行程序于存儲器中有一對應工作集。首先,接收一休眠指示。接著,相應休眠指示,對執(zhí)行程序執(zhí)行一設定工作集操作,用以調整每一執(zhí)行程序于存儲器的工作集的尺寸。之后,依據(jù)調整后的存儲器產生一休眠映像,并將休眠映像存儲至一存儲裝置。本發(fā)明可在不增加硬體成本的情況下,利用設定工作集操作來周期性地調整存儲器內執(zhí)行程序的工作集的容量,借此縮減整個存儲器映像的大小,使得休眠映像的尺寸變小,減少裝置由休眠狀態(tài)恢復系統(tǒng)時的拷貝時間,進而加速恢復時間,因此可增進快速開機的反應時間,讓使用者有更佳的使用經驗。
【專利說明】休眠管理方法及相關裝置
【技術領域】
[0001]本發(fā)明涉及一種休眠管理方法及其裝置,尤其涉及一種可自動調整休眠映像的大小的休眠管理方法及其裝置。
【背景技術】
[0002]在現(xiàn)存的作業(yè)系統(tǒng)中,為了省電的考慮,裝置,如電腦系統(tǒng)與手持式裝置可以選擇進入省電模式例如休眠(Hibernate)模式來關閉不必要的電源或關機。當裝置進入休眠模式時,作業(yè)系統(tǒng)會將目前動態(tài)存儲器內的數(shù)據(jù)存儲至硬盤上,成為一個與存儲器容量大小相同的圖像文件。而在裝置從休眠模式恢復為正常模式時,作業(yè)系統(tǒng)便會將此文件復制到存儲器中,使得使用者上次開機時或休眠前的工作畫面能夠快速的恢復并進行顯示。
[0003]由于新一代的電腦系統(tǒng)例如超極致電腦(Ultrabook)除了一般的電腦功能之外,也加入了隨時聯(lián)網(wǎng)、快速開機(Rapid Start Technology)功能,以更迎合使用者需要。快速開機功能可提供電腦系統(tǒng)在幾秒內快速從休眠狀態(tài)恢復到先前暫停的作業(yè)狀態(tài),其技術的原理將整個存儲器中正在執(zhí)行的系統(tǒng)狀態(tài)和應用程序的程序(Process),暫存到高速的存儲裝置例如固態(tài)硬盤(Solid State Disk, SSD)磁盤機中。
[0004]然而,目前的快速開機功能例如Intel公司的快速開機((Intel Rapid StartTechnology,簡稱iRST)服務僅是被動的等待使用者進入暫停(Suspend)模式且僅釋放待命頁面列表(standby page list),當系統(tǒng)從休眠狀態(tài)下進行恢復時,讀取硬盤中的文件仍非常耗時,因此,目前的快速開機所拷貝至休眠分割區(qū)(Hibernation partition)的存儲器映像(Memory image)容量仍然是有縮減的改進空間,同時目前的快速開機功能也無法動態(tài)的調整存儲器使用狀況。
【發(fā)明內容】
[0005]有鑒于此,為了克服現(xiàn)有技術的缺陷,本發(fā)明的目的之一為提供一種休眠管理方法及其裝置。
[0006]本發(fā)明實施例提供一種休眠管理方法,適用于一裝置,其中,裝置包括一存儲器以及多個執(zhí)行程序,每一執(zhí)行程序于存儲器中有一對應工作集。方法包括下列步驟。首先,接收一休眠指示。接著,相應休眠指示,對執(zhí)行程序執(zhí)行一設定工作集操作,用以調整每一執(zhí)行程序于存儲器的工作集的尺寸。之后,依據(jù)調整后的存儲器產生一休眠映像,并將休眠映像存儲至一存儲裝置。
[0007]本發(fā)明實施例還提供一種裝置,至少包括一存儲器、一存儲裝置以及一處理單元。存儲器包括多個執(zhí)行程序且每一執(zhí)行程序于存儲器中有一對應工作集。處理單元于接收一休眠指示時,相應休眠指示,對執(zhí)行程序執(zhí)行一設定工作集操作,用以調整每一執(zhí)行程序的工作集的尺寸,依據(jù)調整后的存儲器產生一休眠映像,且將休眠映像存儲至一存儲裝置。
[0008]本發(fā)明上述方法可以通過程序碼方式收錄于實體媒體中。當程序碼被機器載入且執(zhí)行時,機器變成用以實行本發(fā)明的裝置。[0009]綜上所述,依據(jù)本發(fā)明的休眠管理方法及其相關的裝置,可在不增加硬體成本的情況下,利用設定工作集操作來周期性地調整存儲器內執(zhí)行程序的工作集的容量,借此縮減整個存儲器映像的大小,使得休眠映像的尺寸變小,減少裝置由休眠狀態(tài)恢復系統(tǒng)時的拷貝時間,進而加速恢復時間,因此可增進快速開機的反應時間,讓使用者有更佳的使用經驗。
[0010]為使本發(fā)明的上述和其他目的、特征、和優(yōu)點能更明顯易懂,下文特舉出較佳實施例,并配合附圖,作詳細說明如下。
【專利附圖】
【附圖說明】
[0011]圖1是顯示依據(jù)本發(fā)明實施例的裝置架構的示意圖。
[0012]圖2是顯示依據(jù)本發(fā)明實施例的休眠管理方法的流程圖。
[0013]圖3是顯示依據(jù)本發(fā)明實施例的設定工作集操作前的各個執(zhí)行程序的工作集容量例子的示意圖。
[0014]圖4是顯示依據(jù)本發(fā)明實施例的設定工作集操作前的存儲器例子的示意圖。
[0015]圖5是顯示依據(jù)本發(fā)明實施例的設定工作集操作之后的各個執(zhí)行程序的工作集容量例子的示意圖。
[0016]圖6是顯 示依據(jù)本發(fā)明實施例的設定工作集操作之后的存儲器例子的示意圖。
[0017]圖7是顯示依據(jù)本發(fā)明實施例的系統(tǒng)恢復方法的流程圖。
[0018]其中,附圖標記說明如下:
[0019]100~裝置;
[0020]110- 存儲器;
[0021]120-存儲裝置;
[0022]122~休眠分割區(qū);
[0023]130~處理單元;
[0024]S210、S220、S230、S240、S250~執(zhí)行步驟;
[0025]S710、S720、S730~執(zhí)行步驟。
【具體實施方式】
[0026]本發(fā)明實施例中提供一種休眠管理方法及其裝置,可于裝置進入休眠狀態(tài)前周期性執(zhí)行設定工作集操作來調整位于存儲器內執(zhí)行的各程序工作集的尺寸,并在裝置進入休眠狀態(tài)時執(zhí)行設定工作集操作,再有選擇性的清理部分使用中區(qū)段的存儲器空間和整個待命區(qū)段的存儲器空間,可有效縮減由休眠模式恢復系統(tǒng)時的時間。
[0027]圖1是顯示依據(jù)本發(fā)明實施例的裝置架構的示意圖。依據(jù)本發(fā)明實施例的裝置100至少包括一存儲器110、一存儲裝置120、與一處理單元130。其中,裝置100可以是電腦系統(tǒng)如筆記本電腦、超極致電腦(Ultrabook)、與手持式裝置,如移動電話、智能手機、與個人數(shù)字助理(PDA)等等。存儲器110可以是裝置100的系統(tǒng)存儲器,用以存儲所有于裝置100上運作的系統(tǒng)程序或應用程序本身或其所需的數(shù)據(jù)。存儲裝置120可以是一硬盤,或非揮發(fā)性存儲器,如快閃存儲器(Flash Memory)或電子可抹除程序化只讀存儲器(EEPROM),用以存儲休眠時所產生的相關數(shù)據(jù)。特別來說,于一實施例中,存儲裝置120為一高速的存儲裝置例如一固態(tài)硬盤(Solid State Disk,簡稱SSD)磁盤機,使得存儲器中的數(shù)據(jù)可快速地寫入至SSD磁盤機中或者SSD磁盤機中的數(shù)據(jù)也可快速地寫回存儲器110。存儲裝置120可還包括一休眠分割區(qū)122,其可用以存儲對應于休眠狀態(tài)的一休眠映像。處理單元130用以進行本發(fā)明中裝置進行休眠與恢復的相關操作,其細節(jié)將于后進行說明。
[0028]值得注意的是,裝置100中可以設置一觸發(fā)模塊(圖中未顯示),如裝置100上的按鍵或是裝置100上的軟件程序,用以相應一休眠指示而產生休眠信號,從而致使裝置100進入休眠狀態(tài),或者也可用以相應一開機啟動指示而產生開機啟動信號,從而致使裝置100進入開機狀態(tài)。此外,裝置100中亦可設置一恢復模塊(圖中未顯示),用以相應一恢復指示而產生恢復信號,從而致使裝置100由休眠狀態(tài)中進行系統(tǒng)恢復。須注意的是,此處的休眠狀態(tài)泛指所有可以將目前存儲器的內容存儲至硬盤(suspend to disk)的各種省電狀態(tài)例如S4或iRST狀態(tài)等。
[0029]圖2為一流程圖顯示依據(jù)本發(fā)明實施例的休眠管理方法。
[0030]首先,如步驟S210,判斷是否接收到一休眠指示。若否(步驟S210的否),則如步驟S220,每隔一段時間周期性地對所有執(zhí)行程序執(zhí)行一設定工作集操作,用以調整每一執(zhí)行程序的工作集的尺寸并且繼續(xù)步驟S210的判斷。舉例來說,處理單元130可于尚未接收到休眠指示時,每隔一段既定時間周期(例如:一小時)對所有執(zhí)行程序執(zhí)行設定工作集操作,用以調整每一執(zhí)行程序的工作集的尺寸。值得注意的是,于一些實施例中,處理單元130可還判斷是否接收到一開機啟動啟示,若是,則于開機一段既定時間(例如:5分鐘)之后就先執(zhí)行一次設定工作集操作來對所有運行中的程序的工作集的尺寸進行初步調整。之后,處理單元130可周期性的喚醒負責微調程序工作集存儲器分頁的執(zhí)行緒去調整位于存儲器內運行的各程序工作集的尺寸。舉例來說,處理單元130可于裝置開機時接收到一開機啟動啟示,并于開機5分鐘之后自動對當前的執(zhí)行程序執(zhí)行初步的設定工作集操作,之后,每隔一小時再對所有執(zhí)行程序執(zhí)行一次設定工作集操作,借此調整各個執(zhí)行程序的工作集的尺寸。
[0031]若接收到休眠指示(步驟S210的是),亦即裝置準備進入休眠狀態(tài)時,則如步驟S230,相應休眠指示,于一既定時間(例如:5分鐘)之后對所有執(zhí)行程序執(zhí)行設定工作集操作,調整每一執(zhí)行程序的工作集的尺寸。其中,對所有執(zhí)行程序執(zhí)行設定工作集操作是將每個執(zhí)行程序在存儲器內所占用的工作集容量進行最佳化來縮減其工作集的尺寸。于一些實施例中,存儲器可至少包含一使用中(In used)區(qū)段、一已修改(Modified)區(qū)段以及一待命(Standby)區(qū)段,其中使用中區(qū)段、已修改區(qū)段以及待命區(qū)段分別包含一使用中存儲器分頁列表(page list)、一已修改存儲器分頁列表以及一待命存儲器分頁列表,而調整每一執(zhí)行程序的工作集的尺寸是將各個執(zhí)行程序對應的工作集于存儲器中的使用中區(qū)段的至少一數(shù)據(jù)/存儲器分頁搬移至存儲器的一待命區(qū)段,致使存儲器中的使用中區(qū)段的尺寸變小。舉例來說,調整每一執(zhí)行程序的工作集的尺寸是將某一執(zhí)行程序在存儲器的一使用中區(qū)段或已修改區(qū)段的存儲器分頁搬移至一待命區(qū)段中,但并不限于此。
[0032]圖3為一示意圖顯示設定工作集操作前的各個執(zhí)行程序的工作集容量例子。如圖所示,存儲器110中包含多個程序,每個程序有一對應工作集,其中每個工作集表示該程序所對應的存儲器分頁集合。其中,程序“dwm.exe”在執(zhí)行設定工作集操作前的工作集的尺寸為58,616千位元組(KB)。圖4為一示意圖顯示設定工作集操作前的存儲器配置情形例子。如圖4所示,存儲器110中的使用中區(qū)段約占了 2037百萬位元組(MB)的存儲器空間,其已修改區(qū)段約占了 20百萬位元組的存儲器空間,總共約2057百萬位元組的存儲器空間。也就是說,在不執(zhí)行設定工作集操作的情況下,需要將2057百萬位元組的存儲器數(shù)據(jù)寫入至存儲裝置120中。類似地,當裝置從休眠狀態(tài)恢復后需要將存儲裝置120中所存儲2057百萬位元組的數(shù)據(jù)寫回至存儲器110。
[0033]經過設定工作集操作之后,圖3中的執(zhí)行程序的工作集容量將變小,如圖5所示。其中,程序“dwm.exe”在執(zhí)行設定工作集操作之后的工作集的尺寸縮小為8,124千位元組(KB)。
[0034]圖6為一示意圖顯示設定工作集操作之后的存儲器配置情形例子。如圖6所示,經過設定工作集操作之后,存儲器110中的使用中區(qū)段從2037百萬位元組縮小為1640百萬位元組,其已修改區(qū)段則約占了 283百萬位元組的存儲器空間,總共約1923百萬位元組的存儲器空間。因此,在執(zhí)行設定工作集操作的情況下,只需要將1640百萬位元組的存儲器數(shù)據(jù)寫入至存儲裝置120中。在這種情況下,當裝置從休眠狀態(tài)恢復后只需要將存儲裝置120中所存儲1923百萬位元組的數(shù)據(jù)寫回至存儲器110,因此其恢復速度將比未執(zhí)行設定工作集操作時加快許多。
[0035]比較圖3與圖5以及圖4與圖6可知,通過執(zhí)行設定工作集操作調整各執(zhí)行程序的工作集后,明顯的縮小了存儲器內各程序所占用的工作集大小,使得原本在使用中區(qū)段的存儲器分頁也會被作業(yè)系統(tǒng)有選擇性的置換到已修改區(qū)段與待命區(qū)段的分頁列表(PageList)中,也因為存儲器分頁搬移到待命分頁列表中,當進入休眠模式或iRST模式時能夠移除更多的存儲器空間,借以縮短休眠模式或iRST的恢復時間。須注意的是,于一些實施例中,為了要能夠清除使用中存儲器空間區(qū)段且避免造成不必要的錯誤產生,可事先將執(zhí)行程序分類,設定一預設群組,其包含特定程序例如預期在系統(tǒng)狀態(tài)恢復時所必須立即執(zhí)行到的系統(tǒng)程序,而當處理單元130執(zhí)行步驟S230之前會先判斷各個執(zhí)行程序是否屬于此預設群組,當執(zhí)行程序屬于預設群組時,便不執(zhí)行設定工作集操作,亦即,預設群組內的程序將不會執(zhí)行設定工作集操作。舉例來說,預設群組可包括但不限于以下程序:
[0036]“smss.exe”、“csrss.exe”、“wininit.exe'“services.exe”、“svchost.exe,,、“l(fā)sass.exe,,、“l(fā)sm.exe,,、“winlogon.exe,,、“exploere.exe”、“dwm.exe”等系統(tǒng)程序或常駐程序。
[0037]于一些實施例中,執(zhí)行設定工作集操作采用微軟(Microsoft)Windows提供的SetProcessWorkingSetSize應用程序界面(Application Programming Interface, API)來作為調整工作集演算法的核心元件,挑選系統(tǒng)正在運行的執(zhí)行程序,對其可用的存儲器工作集做最佳化的調整。由于每個程序的存儲器工作集都有其最大允許值與最小必要值,可借此在不妨礙運行效能與安全性下,對工作集大小作最佳化。
[0038]接著,如步驟S240,依據(jù)整理后的存儲器產生一休眠映像(image)。于一些實施例中,依據(jù)調整的存儲器產生休眠映像的步驟可還包括清除存儲器中的待命區(qū)段的數(shù)據(jù),再依據(jù)清除后的存儲器產生休眠映像。舉例來說,如圖6所示,假設存儲器110的使用中區(qū)段的尺寸為1640百萬位元組,其已修改區(qū)段則約占了 283百萬位元組的存儲器空間,待命區(qū)段的尺寸約為1532百萬位元組,則處理單元130可先清除存儲器中的待命區(qū)段的數(shù)據(jù),得到清除后的存儲器,再依據(jù)清除后僅包含使用中區(qū)段以及已修改區(qū)段的存儲器產生休眠映像,因此休眠映像的大小約1923百萬位元組。
[0039]之后,如步驟S250,將休眠映像存儲至存儲裝置120。值得注意的是,存儲裝置120事先設定(preset) —休眠分割區(qū)122,使得休眠映像存儲至存儲裝置120的休眠分割區(qū)122 中。
[0040]圖7為一流程圖顯示依據(jù)本發(fā)明實施例的系統(tǒng)恢復方法。
[0041]首先,如步驟S710,判斷是否接收到一恢復指示。若否(步驟S710的否),則繼續(xù)步驟S710的判斷。若接收到恢復指示(步驟S710的是),則如步驟S720,由存儲裝置120中讀取休眠映像。其中,由存儲裝置120中讀取休眠映像是由存儲裝置120的休眠分割區(qū)122讀取休眠映像。如步驟S730,將讀出的休眠映像回存至存儲器110,使得裝置100恢復至進入休眠狀態(tài)前的系統(tǒng)狀態(tài)。
[0042]綜上所述,依據(jù)本發(fā)明的休眠管理方法及其相關的裝置,可在不增加硬體成本的情況下,利用設定工作集操作來周期性地調整存儲器內執(zhí)行程序的工作集的容量,借此縮減整個存儲器映像的大小,使得休眠映像的尺寸變小,減少裝置由休眠狀態(tài)恢復系統(tǒng)時的拷貝時間,進而加速恢復時間,因此可增進快速開機的反應時間,讓使用者有更佳的使用經驗。
[0043]本發(fā)明的方法,或特定型態(tài)或其部份,可以以程序碼的型態(tài)包含于實體媒體,如軟盤、光盤片、硬盤、或是任何其他機器可讀取(如電腦可讀取)存儲媒體,其中,當程序碼被機器,如電腦載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。本發(fā)明的方法與裝置也可以以程序碼型態(tài)通過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態(tài)進行傳送,其中,當程序碼被機器,如電腦接收、載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。當在一般用途處理器實作時,程序碼結合處理器提供一操作類似于應用特定邏輯電路的獨特裝置。
[0044]雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何本領域普通技術人員,在不脫離本發(fā)明的精神和范圍內,當可做些許更動與潤飾,因此本發(fā)明的保護范圍當視所附的權利要求所界定的范圍為準。
【權利要求】
1.一種休眠管理方法,適用于一裝置,該裝置包括一存儲器以及多個執(zhí)行程序,每一所述多個執(zhí)行程序于該存儲器中有一對應工作集,包括下列步驟: 接收一休眠指示; 相應該休眠指示,對所述多個執(zhí)行程序執(zhí)行一設定工作集操作,用以調整每一所述多個執(zhí)行程序于該存儲器的該工作集的尺寸; 依據(jù)調整后的該存儲器產生一休眠映像;以及 將該休眠映像存儲至一存儲裝置。
2.如權利要求1所述的休眠管理方法,其中調整每一所述多個執(zhí)行程序于該存儲器的該工作集的尺寸是將每一所述多個執(zhí)行程序的該工作集于該存儲器中的該使用中區(qū)段的至少一數(shù)據(jù)搬移至該存儲器的一待命區(qū)段。
3.如權利要求2所述的休眠管理方法,其中依據(jù)調整后的該存儲器產生該休眠映像的步驟還包括: 清除該存儲器中的該待 命區(qū)段的數(shù)據(jù);以及 依據(jù)清除后的該存儲器產生該休眠映像。
4.如權利要求1所述的休眠管理方法,還包括: 當未接收到該休眠指示之前,周期性對所述多個執(zhí)行程序執(zhí)行該設定工作集操作,以調整每一所述多個執(zhí)行程序于該存儲器的該工作集的尺寸。
5.如權利要求4所述的休眠管理方法,還包括: 判斷是否接收到一開機啟動指示;以及 于接收到該開機啟動指示一既定時間之后,對所述多個執(zhí)行程序執(zhí)行該設定工作集操作。
6.如權利要求4所述的休眠管理方法,其中相應該休眠指示,對所述多個執(zhí)行程序執(zhí)行該設定工作集操作,用以調整每一所述多個執(zhí)行程序的該工作集的尺寸的步驟還包括: 當所述多個執(zhí)行程序屬于一預設群組時,不對該預設群組的所述多個執(zhí)行程序執(zhí)行該設定工作集操作; 其中該預設群組包含恢復后預期會立即動作的所有程序。
7.如權利要求1所述的休眠管理方法,其中當該裝置接收一恢復指示時,由該存儲裝置中讀取該休眠映像,并將該休眠映像回存至該存儲器。
8.一種裝置,包括: 一存儲器,其包括多個執(zhí)行程序,每一所述多個執(zhí)行程序于該存儲器中有一對應工作集; 一存儲裝置;以及 一處理單元,當接收一休眠指示時,相應該休眠指示,對所述多個執(zhí)行程序執(zhí)行一設定工作集操作,用以調整每一所述多個執(zhí)行程序的該工作集的尺寸,依據(jù)調整后的該存儲器產生一休眠映像,且將該休眠映像存儲至一存儲裝置。
9.如權利要求8所述的裝置,其中該存儲器還包含一使用中區(qū)段以及一待命區(qū)段且該處理單元調整每一所述多個執(zhí)行程序的該工作集的尺寸是將每一所述多個執(zhí)行程序的該工作集于該存儲器中的該使用中區(qū)段的至少一數(shù)據(jù)搬移至該存儲器的該待命區(qū)段;其中該處理單元還清除該存儲器中的該待命區(qū)段的數(shù)據(jù),并且依據(jù)清除后的該存儲器產生該休眠映像;其中該處理單元還于未接收到該休眠指示之前,周期性對所述多個執(zhí)行程序執(zhí)行該設定工作集操作,以調整每一所述多個執(zhí)行程序的該工作集的尺寸。
10.如權利要求9所述的裝置,其中該處理單元還于所述多個執(zhí)行程序屬于一預設群組時,不對該預設群組的所述多個執(zhí)行程序執(zhí)行該設定工作集操作,其中該預設群組包含恢復后預期會有動作的所有程`序。
【文檔編號】G06F1/32GK103677202SQ201210363575
【公開日】2014年3月26日 申請日期:2012年9月26日 優(yōu)先權日:2012年9月26日
【發(fā)明者】黃尚毅, 王書涵, 劉郁明, 蔡孟達 申請人:宏碁股份有限公司