TWI465889B - 休眠管理方法及相關裝置 - Google Patents

休眠管理方法及相關裝置 Download PDF

Info

Publication number
TWI465889B
TWI465889B TW101134406A TW101134406A TWI465889B TW I465889 B TWI465889 B TW I465889B TW 101134406 A TW101134406 A TW 101134406A TW 101134406 A TW101134406 A TW 101134406A TW I465889 B TWI465889 B TW I465889B
Authority
TW
Taiwan
Prior art keywords
memory
sleep
working set
programs
execution
Prior art date
Application number
TW101134406A
Other languages
English (en)
Other versions
TW201413429A (zh
Inventor
Shang Yi Huang
shu han Wang
Yu Ming Liu
Meng Ta Tsai
Original Assignee
Acer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Acer Inc filed Critical Acer Inc
Priority to TW101134406A priority Critical patent/TWI465889B/zh
Publication of TW201413429A publication Critical patent/TW201413429A/zh
Application granted granted Critical
Publication of TWI465889B publication Critical patent/TWI465889B/zh

Links

Landscapes

  • Stored Programmes (AREA)

Description

休眠管理方法及相關裝置
本發明係有關於一種休眠管理方法及其裝置,特別是於一種可自動調整休眠映像之大小之休眠管理方法及其裝置。
在現存的作業系統中,為了省電的考量,裝置,如電腦系統與手持式裝置可以選擇進入省電模式例如休眠(Hibernate)模式來關閉不必要的電源或關機。當裝置進入休眠模式時,作業系統會將目前動態記憶體內的資料儲存至硬碟上,成為一個與記憶體容量大小相同之影像檔案。而在裝置從休眠模式回復為正常模式時,作業系統便會將此檔案複製到記憶體中,使得使用者上次開機時或休眠前的工作畫面能夠快速的回復並進行顯示。
由於新一代的電腦系統例如超極緻電腦(Ultrabook)除了一般的電腦功能之外,也加入了隨時連網、快速開機(Rapid Start Technology)功能,以更迎合使用者需要。快速開機功能可提供電腦系統在幾秒內快速從休眠狀態恢復到先前暫停的作業狀態,其技術的原理係將整個記憶體中正在執行的系統狀態和應用程式的程序(Process),暫存到高速的儲存裝置例如固態硬碟(Solid State Disk,SSD)磁碟機中。
然而,目前的快速開機功能例如Intel公司的快速開機((Intel Rapid Start Technology,簡稱iRST)服務僅是被動 的等待使用者進入暫停(Suspend)模式且僅釋放待命頁面列表(standby page list),當系統從休眠狀態下進行回復時,讀取硬碟中之檔案仍非常耗時,因此,目前的快速開機所拷貝至休眠分割區(Hibernation partition)的記憶體映像(Memory image)容量仍然是有縮減的改進空間,同時目前的快速開機功能也無法動態的調整記憶體使用狀況。
有鑑於此,本發明之目的之一為提供一種休眠管理方法及其裝置。
本發明實施例提供一種休眠管理方法,適用於一裝置,其中,裝置包括一記憶體以及複數執行程序,每一執行程序於記憶體中有一對應工作集。方法包括下列步驟。首先,接收一休眠指示。接著,相應休眠指示,對執行程序執行一設定工作集操作,用以調整每一執行程序於記憶體之工作集之尺寸。之後,依據調整後之記憶體產生一休眠映像,並將休眠映像儲存至一儲存裝置。
本發明實施例另提供一種裝置,至少包括一記憶體、一儲存裝置以及一處理單元。記憶體包括複數執行程序且每一執行程序於記憶體中有一對應工作集。處理單元係於接收一休眠指示時,相應休眠指示,對執行程序執行一設定工作集操作,用以調整每一執行程序之工作集之尺寸,依據調整後之記憶體產生一休眠映像,且將休眠映像儲存至一儲存裝置。
本發明上述方法可以透過程式碼方式收錄於實體媒體 中。當程式碼被機器載入且執行時,機器變成用以實行本發明之裝置。
為使本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下。
本發明實施例中提供一種休眠管理方法及其裝置,可於裝置進入休眠狀態前週期性執行設定工作集操作來調整位於記憶體內執行的各程序工作集的尺寸,並在裝置進入休眠狀態時執行設定工作集操作,再有選擇性的清理部分使用中區段的記憶體空間和整個待命區段的記憶體空間,可有效縮減由休眠模式回復系統時的時間。
第1圖係顯示依據本發明實施例之裝置架構之示意圖。依據本發明實施例之裝置100至少包括一記憶體110、一儲存裝置120、與一處理單元130。其中,裝置100可以是電腦系統如筆記型電腦、超極緻電腦(Ultrabook)、與手持式裝置,如行動電話、智慧型手機、與個人數位助理(PDA)等等。記憶體110可以係裝置100之系統記憶體,用以儲存所有於裝置100上運作之系統程式或應用程式本身或其所需之資料。儲存裝置120可以係一硬碟,或非揮發性記憶體,如快閃記憶體(Flash Memory)或電子可抹除程式化唯讀記憶體(EEPROM),用以儲存休眠時所產生之相關資料。特別來說,於一實施例中,儲存裝置120係為一高速的儲存裝置例如一固態硬碟(Solid State Disk,簡稱SSD)磁碟 機,使得記憶體中的資料可快速地寫入至SSD磁碟機中或者SSD磁碟機中的資料也可快速地寫回記憶體110。儲存裝置120可更包括一休眠分割區122,其可用以儲存對應於休眠狀態的一休眠映像。處理單元130係用以進行本發明中裝置進行休眠與回復之相關操作,其細節將於後進行說明。
值得注意的是,裝置100中可以設置一觸發模組(圖中未顯示),如裝置100上之按鍵或是裝置100上之軟體程式,用以相應一休眠指示而產生休眠訊號,從而致使裝置100進入休眠狀態,或者也可用以相應一開機啟動指示而產生開機啟動訊號,從而致使裝置100進入開機狀態。此外,裝置100中亦可設置一回復模組(圖中未顯示),用以相應一回復指示而產生回復訊號,從而致使裝置100由休眠狀態中進行系統回復。須注意的是,此處的休眠狀態係泛指所有可以將目前記憶體的內容儲存至硬碟(suspend to disk)的各種省電狀態例如S4或iRST狀態等。
第2圖為一流程圖係顯示依據本發明實施例之休眠管理方法。
首先,如步驟S210,判斷是否接收到一休眠指示。若否(步驟S210的否),則如步驟S220,每隔一段時間週期性地對所有執行程序執行一設定工作集操作,用以調整每一執行程序的工作集的尺寸並且繼續步驟S210的判斷。舉例來說,處理單元130可於尚未接收到休眠指示時,每隔一段既定時間週期(例如:一小時)對所有執行程序執行設定工作集操作,用以調整每一執行程序的工作集的尺寸。值 得注意的是,於一些實施例中,處理單元130可更判斷是否接收到一開機啟動啟示,若是,則於開機一段既定時間(例如:5分鐘)之後就先執行一次設定工作集操作來對所有運行中的程序的工作集的尺寸進行初步調整。之後,處理單元130可週期性的喚醒負責微調程序工作集記憶體分頁的執行緒去調整位於記憶體內運行的各程序工作集的尺寸。舉例來說,處理單元130可於裝置開機時接收到一開機啟動啟示,並於開機5分鐘之後自動對當前的執行程序執行初步的設定工作集操作,之後,每隔一小時再對所有執行程序執行一次設定工作集操作,藉此調整各個執行程序的工作集的尺寸。
若接收到休眠指示(步驟S210的是),亦即裝置準備進入休眠狀態時,則如步驟S230,相應休眠指示,於一既定時間(例如:5分鐘)之後對所有執行程序執行設定工作集操作,調整每一執行程序的工作集的尺寸。其中,對所有執行程序執行設定工作集操作係將每個執行程序在記憶體內所佔用的工作集容量進行最佳化來縮減其工作集的尺寸。於一些實施例中,記憶體可至少包含一使用中(In used)區段、一已修改(Modified)區段以及一待命(Standby)區段,其中使用中區段、已修改區段以及待命區段分別包含一使用中記憶體分頁列表(page list)、一已修改記憶體分頁列表以及一待命記憶體分頁列表,而調整每一執行程序之工作集之尺寸係將各個執行程序對應的工作集於記憶體中之使用中區段之至少一資料/記憶體分頁搬移至記憶體之一待命區段,致使記憶體中之使用中區段之尺寸變小。舉例來說, 調整每一執行程序的工作集的尺寸係將某一執行程序在記憶體的一使用中區段或已修改區段的記憶體分頁搬移至一待命區段中,但並不限於此。
第3圖為一示意圖係顯示設定工作集操作前之各個執行程序之工作集容量例子。如圖所示,記憶體110中包含多個程序,每個程序有一對應工作集,其中每個工作集表示該程序所對應的記憶體分頁集合。其中,程序”dwm.exe”在執行設定工作集操作前的工作集之尺寸為58,616仟位元組(KB)。第4圖為一示意圖係顯示設定工作集操作前之記憶體配置情形例子。如第4圖所示,記憶體110中的使用中區段約佔了2037百萬位元組(MB)的記憶體空間,其已修改區段約佔了20百萬位元組的記憶體空間,總共約2057百萬位元組的記憶體空間。也就是說,在不執行設定工作集操作之情況下,需要將2057百萬位元組的記憶體資料寫入至儲存裝置120中。類似地,當裝置從休眠狀態回復後需要將儲存裝置120中所儲存2057百萬位元組的資料寫回至記憶體110。
經過設定工作集操作之後,第3圖中的執行程序之工作集容量將變小,如第5圖所示。其中,程序”dwm.exe”在執行設定工作集操作之後的工作集之尺寸縮小為8,124仟位元組(KB)。
第6圖為一示意圖係顯示設定工作集操作之後之記憶體配置情形例子。如第6圖所示,經過設定工作集操作之後,記憶體110中的使用中區段從2037百萬位元組縮小為1640百萬位元組,其已修改區段則約佔了283百萬位元組 的記憶體空間,總共約1923百萬位元組的記憶體空間。因此,在執行設定工作集操作之情況下,只需要將1640百萬位元組的記憶體資料寫入至儲存裝置120中。在這種情況下,當裝置從休眠狀態回復後只需要將儲存裝置120中所儲存1923百萬位元組的資料寫回至記憶體110,因此其回復速度將比未執行設定工作集操作時加快許多。
比較第3圖與第5圖以及第4圖與第6圖可知,透過執行設定工作集操作調整各執行程序的工作集後,明顯的縮小了記憶體內各程序所佔用的工作集大小,使得原本在使用中區段的記憶體分頁也會被作業系統有選擇性的置換到已修改區段與待命區段的分頁列表(Page List)中,也因為記憶體分頁搬移到待命分頁列表中,當進入休眠模式或iRST模式時能夠移除更多的記憶體空間,藉以縮短休眠模式或iRST的回復時間。須注意的是,於一些實施例中,為了要能夠清除使用中記憶體空間區段且避免造成不必要的錯誤產生,可事先將執行程序分類,設定一預設群組,其包含特定程序例如預期在系統狀態回復時所必須立即執行到的系統程序,而當處理單元130執行步驟S230之前會先判斷各個執行程序是否屬於此預設群組,當執行程序屬於預設群組時,便不執行設定工作集操作,亦即,預設群組內的程序將不會執行設定工作集操作。舉例來說,預設群組可包括但不限於以下程序:
”smss.exe”、”csrss.exe”、”wininit.exe”、”services.exe”、”svchost.exe”、”lsass.exe”、”lsm.exe”、”winlogon.exe”、”exploere.exe”、”dwm.exe”等系統程序或常駐程序。
於一些實施例中,執行設定工作集操作係採用微軟(Microsoft)Windows提供的SetProcessWorkingSetSize應用程式介面(Application Programming Interface,API)來作為調整工作集演算法的核心元件,挑選系統正在運行的執行程序,對其可用的記憶體工作集做最佳化的調整。由於每個程序的記憶體工作集都有其最大允許值與最小必要值,可藉此在不妨礙運行效能與安全性下,對工作集大小作最佳化。
接著,如步驟S240,依據整理後之記憶體產生一休眠映像(image)。於一些實施例中,依據調整之記憶體產生休眠映像之步驟可更包括清除記憶體中之待命區段之資料,再依據清除後之記憶體產生休眠映像。舉例來說,如第6圖所示,假設記憶體110之使用中區段之尺寸為1640百萬位元組,其已修改區段則約佔了283百萬位元組的記憶體空間,待命區段之尺寸約為1532百萬位元組,則處理單元130可先清除記憶體中之待命區段之資料,得到清除後之記憶體,再依據清除後僅包含使用中區段以及已修改區段之記憶體產生休眠映像,因此休眠映像之大小約1923百萬位元組。
之後,如步驟S250,將休眠映像儲存至儲存裝置120。值得注意的是,儲存裝置120係事先設定(preset)一休眠分割區122,使得休眠映像係儲存至儲存裝置120的休眠分割區122中。
第7圖為一流程圖係顯示依據本發明實施例之系統回復方法。
首先,如步驟S710,判斷是否接收到一回復指示。若否(步驟S710的否),則繼續步驟S710的判斷。若接收到回復指示(步驟S710的是),則如步驟S720,由儲存裝置120中讀取休眠映像。其中,由儲存裝置120中讀取休眠映像係由儲存裝置120的休眠分割區122讀取休眠映像。如步驟S730,將讀出的休眠映像回存至記憶體110,使得裝置100回復至進入休眠狀態前之系統狀態。
綜上所述,依據本發明之休眠管理方法及其相關之裝置,可在不增加硬體成本的情況下,利用設定工作集操作來週期性地調整記憶體內執行程序的工作集的容量,藉此縮減整個記憶體映像的大小,使得休眠映像的尺寸變小,減少裝置由休眠狀態回復系統時的拷貝時間,進而加速回復時間,因此可增進快速開機的反應時間,讓使用者有更佳的使用經驗。
本發明之方法,或特定型態或其部份,可以以程式碼的型態包含於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。本發明之方法與裝置也可以以程式碼型態透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理器實作時,程式碼結合處理器提供一操作類似於應用特定邏輯電路之獨特裝置。
雖然本發明已以較佳實施例揭露如上,然其並非用以 限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧裝置
110‧‧‧記憶體
120‧‧‧儲存裝置
122‧‧‧休眠分割區
130‧‧‧處理單元
S210、S220、S230、S240、S250‧‧‧執行步驟
S710、S720、S730‧‧‧執行步驟
第1圖係顯示依據本發明實施例之裝置架構之示意圖。
第2圖係顯示依據本發明實施例之休眠管理方法之流程圖。
第3圖係顯示依據本發明實施例之設定工作集操作前之各個執行程序之工作集容量例子之示意圖。
第4圖係顯示依據本發明實施例之設定工作集操作前之記憶體例子之示意圖。
第5圖係顯示依據本發明實施例之設定工作集操作之後之各個執行程序之工作集容量例子之示意圖。
第6圖係顯示依據本發明實施例之設定工作集操作之後之記憶體例子之示意圖。
第7圖係顯示依據本發明實施例之系統回復方法之流程圖。
S210、S220、S230、S240、S250‧‧‧執行步驟

Claims (10)

  1. 一種休眠管理方法,適用於一裝置,該裝置包括一記憶體以及複數執行程序,每一該等執行程序於該記憶體中有一對應工作集,包括下列步驟:接收一休眠指示;相應該休眠指示,對該等執行程序執行一設定工作集(set working set)操作,用以調整每一該等執行程序於該記憶體之該工作集之尺寸;依據調整後之該記憶體產生一休眠映像;以及將該休眠映像儲存至一儲存裝置。
  2. 如申請專利範圍第1項所述之休眠管理方法,其中調整每一該等執行程序於該記憶體之該工作集之尺寸係將每一該等執行程序之該工作集於該記憶體中之該使用中區段之至少一資料搬移至該記憶體之一待命區段(standby page list)。
  3. 如申請專利範圍第2項所述之休眠管理方法,其中依據調整後之該記憶體產生該休眠映像之步驟更包括:清除該記憶體中之該待命區段之資料;以及依據清除後之該記憶體產生該休眠映像。
  4. 如申請專利範圍第1項所述之休眠管理方法,更包括:當未接收到該休眠指示之前,週期性對該等執行程序執行該設定工作集操作,以調整每一該等執行程序於該記憶體之該工作集之尺寸。
  5. 如申請專利範圍第4項所述之休眠管理方法,更包 括:判斷是否接收到一開機啟動指示;以及於接收到該開機啟動指示一既定時間之後,對該等執行程序執行該設定工作集操作。
  6. 如申請專利範圍第4項所述之休眠管理方法,其中相應該休眠指示,對該等執行程序執行該設定工作集操作,用以調整每一該等執行程序之該工作集之尺寸之步驟更包括:當該等執行程序屬於一預設群組時,不對該預設群組之該等執行程序執行該設定工作集操作;其中該預設群組係包含回復後預期會立即動作之所有程序。
  7. 如申請專利範圍第1項所述之休眠管理方法,其中當該裝置接收一回復指示時,由該儲存裝置中讀取該休眠映像,並將該休眠映像回存至該記憶體。
  8. 一種裝置,包括:一記憶體,其包括複數執行程序,每一該等執行程序於該記憶體中有一對應工作集;一儲存裝置;以及一處理單元,當接收一休眠指示時,相應該休眠指示,對該等執行程序執行一設定工作集操作,用以調整每一該等執行程序之該工作集之尺寸,依據調整後之該記憶體產生一休眠映像,且將該休眠映像儲存至一儲存裝置。
  9. 如申請專利範圍第8項所述之裝置,其中該記憶體更包含一使用中區段以及一待命區段且該處理單元調整每 一該等執行程序之該工作集之尺寸係將每一該等執行程序之該工作集於該記憶體中之該使用中區段之至少一資料搬移至該記憶體之該待命區段;其中該處理單元更清除該記憶體中之該待命區段之資料,並且依據清除後之該記憶體產生該休眠映像;其中該處理單元更於未接收到該休眠指示之前,週期性對該等執行程序執行該設定工作集操作,以調整每一該等執行程序之該工作集之尺寸。
  10. 如申請專利範圍第9項所述之裝置,其中該處理單元更於該等執行程序屬於一預設群組時,不對該預設群組之該等執行程序執行該設定工作集操作,其中該預設群組係包含回復後預期會有動作之所有程序。
TW101134406A 2012-09-20 2012-09-20 休眠管理方法及相關裝置 TWI465889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101134406A TWI465889B (zh) 2012-09-20 2012-09-20 休眠管理方法及相關裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101134406A TWI465889B (zh) 2012-09-20 2012-09-20 休眠管理方法及相關裝置

Publications (2)

Publication Number Publication Date
TW201413429A TW201413429A (zh) 2014-04-01
TWI465889B true TWI465889B (zh) 2014-12-21

Family

ID=52575773

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101134406A TWI465889B (zh) 2012-09-20 2012-09-20 休眠管理方法及相關裝置

Country Status (1)

Country Link
TW (1) TWI465889B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201450A (zh) * 2015-05-07 2016-12-07 富泰华工业(深圳)有限公司 休眠窗与唤醒窗的呈现方法、系统与电子设备
TWI554945B (zh) * 2015-08-31 2016-10-21 晨星半導體股份有限公司 例行工作的分配方法及應用其之多核心電腦

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW321739B (en) * 1996-07-19 1997-12-01 Compaq Computer Corp dynamic hibernation time in a computer system
US20080082752A1 (en) * 2006-09-29 2008-04-03 Ram Chary Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state
US20090172439A1 (en) * 2007-12-28 2009-07-02 Intel Corporation System and method for fast platform hibernate and resume
TWI312111B (en) * 2005-01-18 2009-07-11 Acer Incorporate Hibernation method and device utilizing same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW321739B (en) * 1996-07-19 1997-12-01 Compaq Computer Corp dynamic hibernation time in a computer system
TWI312111B (en) * 2005-01-18 2009-07-11 Acer Incorporate Hibernation method and device utilizing same
US20080082752A1 (en) * 2006-09-29 2008-04-03 Ram Chary Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state
US20090172439A1 (en) * 2007-12-28 2009-07-02 Intel Corporation System and method for fast platform hibernate and resume

Also Published As

Publication number Publication date
TW201413429A (zh) 2014-04-01

Similar Documents

Publication Publication Date Title
CN102708064B (zh) 从休眠中多阶段恢复
US8898495B2 (en) Method and apparatus for switching an operating system by determining whether a boot-up mode is a general mode or a switch mode
US7930507B2 (en) Method of providing to a processor an estimated completion time of a storage operation
KR101799253B1 (ko) 다중 클러스터 이종 프로세서 아키텍처에서 동적 캐시 확장을 제공하기 위한 시스템 및 방법
US9110669B2 (en) Power management of a storage device including multiple processing cores
RU2599967C2 (ru) Управление жизненным циклом приложений
JP5340335B2 (ja) 情報処理装置
JP6691669B2 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
KR101780052B1 (ko) 정보처리 시스템에서 운영체제 전환방법
JP2013520744A (ja) 最小ブートイメージの生成方法及びその装置
KR101673299B1 (ko) 운영 시스템 복구 방법 및 장치, 그리고 단말기기
KR20130127465A (ko) 고속 컴퓨터 시동
CN105574141B (zh) 一种对数据库进行数据迁移的方法和装置
WO2018010596A1 (zh) 一种模式切换方法及装置
US20190227618A1 (en) Power Management for a Data Storage Apparatus
US20120331235A1 (en) Memory management apparatus, memory management method, control program, and recording medium
CN102736928B (zh) 快速唤醒计算机系统方法与计算机系统
TWI465889B (zh) 休眠管理方法及相關裝置
EP2757481B1 (en) Caching method and caching system using dual disks
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
JP6928263B2 (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム
CN109426563B (zh) 一种进程管理方法及装置
CN111090627B (zh) 基于池化的日志存储方法、装置、计算机设备及存储介质
CA2848683A1 (en) Working set adjustment in a managed environment
CN103677202A (zh) 休眠管理方法及相关装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees