TWI610163B - 利用分群以利於快速開關機之方法 - Google Patents

利用分群以利於快速開關機之方法 Download PDF

Info

Publication number
TWI610163B
TWI610163B TW105100112A TW105100112A TWI610163B TW I610163 B TWI610163 B TW I610163B TW 105100112 A TW105100112 A TW 105100112A TW 105100112 A TW105100112 A TW 105100112A TW I610163 B TWI610163 B TW I610163B
Authority
TW
Taiwan
Prior art keywords
page
pages
innocent
paging
common
Prior art date
Application number
TW105100112A
Other languages
English (en)
Other versions
TW201725473A (zh
Inventor
Xi-Wu Luo
Hong-Yi Lin
zheng-yuan Chen
Sheng-Da Xie
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 filed Critical
Priority to TW105100112A priority Critical patent/TWI610163B/zh
Priority to JP2016040999A priority patent/JP6074086B1/ja
Priority to US15/219,876 priority patent/US20170192794A1/en
Publication of TW201725473A publication Critical patent/TW201725473A/zh
Application granted granted Critical
Publication of TWI610163B publication Critical patent/TWI610163B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Description

利用分群以利於快速開關機之方法
本發明係為有關一種計算機系統開關機方法,特別是指將分頁分為常用及不常用,將常用分頁放入休眠檔,並對不常用分頁以以分群的方式加速開關機之利用分群以利於快速開關機之方法。
現有的休眠式快速開機的機制中,計算機裝置在關機的時候會將記憶體中所有可以換出的分頁全數換出,並區分為清白分頁或非清白分頁,所換出的分頁如果是非清白分頁,計算機裝置就會將非清白分頁寫入休眠檔儲存於儲存裝置之置換空間中或檔案系統中,但如果分頁是清白分頁,計算機裝置則可以將清白分頁儲存在檔案系統中、置換空間中或者不存儲。
雖上述的方法雖然可以加快開機的速度,但並非最佳的開機方法,因為開機所需的分頁可能在休眠時被換出,因而未被加入休眠檔中。因而導致開機的時候速度較慢。
有鑑於此,本發明遂針對上述習知技術之缺失,提出一種針對記憶體分頁提出更好的方法,如1. 將可換出的常用分頁放在休眠檔案,2. 將可換出的分頁,依照關聯性分資料群,每個資料群寫入儲存空間中連續的位置之利於快速開關機之方法,以有效克服上述之該等問題。
本發明之主要目的在提供一種利於快速開關機之方法,其可於計算機系統進入休眠時大量換出不常用的分頁,保留常用的分頁,以縮減休眠檔的大小,降低開機時讀取休眠檔時間,且藉由有邏輯的分群,將具有高度關聯性的分頁聚集在一起,由於作業系統通常連續讀取數個分頁,例如:Linux一次讀取八個分頁。每一個分頁讀取步驟,可以一次將與該分頁具有關聯性的分頁讀取進來,進而增進計算機系統恢復至全速工作的速度。
為達上述之目的,計算機系統區分至少一記憶體中複數的可換出分頁以及不可換出的分頁,並將複數不可換出分頁寫入休眠檔中,以儲存於至少一儲存裝置中;判斷複數不可換出分頁為常用分頁或不常用分頁,並將複數常用分頁加入休眠檔中;擷取至少一不常用分頁,將與不常用分頁相關連的分頁,加入至少一資料組,並將資料組放入儲存裝置之置換空間中,請注意這個相關連的分頁也可以是不常用分頁,並重複上述步驟,直到無法再擷取分頁。由於很多不常用分頁之間彼此有相連性,因此實際擷取的數量小於常用分頁的數量。當系統無法擷取更多分頁時,即表示系統已經將記憶體中所有的分頁至少屬於一個資料組。並將這些資料組以連續存取的方式放到置換空間。接著計算機系統重新啟動,使計算機系統由儲存裝置讀取休眠檔並將休眠檔回復儲存至記憶體中;最後計算機系統並從儲存裝置讀取置換空間之資料組,並載入資料組至記憶體中。
底下藉由具體實施例詳加說明,當更容易瞭解本發明之目的、技術內容、特點及其所達成之功效。
請參照第一圖,其係為本發明第一實施例之系統方塊圖,一計算機系統1包括有一處理器10,電性連接一記憶體12以及一儲存裝置14,其中儲存裝置14可供儲存休眠檔142、置換空間144以及檔案系統146,其中儲存裝置14係為快速隨機存取之記憶體裝置,如快閃記憶體,或具有快速隨機存取特性及快速連續存取之記憶體裝置,如混合式硬碟(hybrid hard drive),在混合式硬碟中,包含了快閃記憶體及硬碟。當只有一儲存裝置14時,儲存裝置14最佳實施例係為具有高速隨機存取之特性之記憶裝置,如快閃記憶體,以將休眠檔142、置換空間144以及檔案系統146儲存至此儲存裝置14中。當儲存裝置為混合式裝置時請參照第六圖,將休眠檔142及部分檔案系統146放置於儲存裝置中具有快速循序讀取特性的儲存裝置14,將置換空間162及部分檔案系統164放置於具有快速隨機存取特性的儲存裝置16。
接下來請參照第一圖至第三圖,以說明本發明之方法步驟流程,其搭配第一實施例之系統方塊圖(即第一圖)作為方法步驟的說明,其中為使閱讀上更加詳細明確,因此敘述方法步驟時請配合參照第二圖之樹狀圖,以利明瞭本案之技術內容,如第三圖所示,首先請參步驟S10,於一計算機系統1進入休眠模式,計算機系統1之處理器10區分至少一記憶體12中複數可換出分頁以及複數不可換出分頁,處理器10再將複數不可換出分頁寫入休眠檔142,並儲存於儲存裝置14中;接下來進入步驟S12,判斷系統中的所有分頁,包含在檔案系統146、在置換空間144、在記憶體12的所有分頁為常用分頁或不常用分頁,並將複數常用分頁加入休眠檔142中,若發現常用分頁若不在記憶體12中,則可從儲存裝置14中提取常用分頁並儲存至休眠檔142中。其中常用分頁係為計算機系統1開機時一定會使用到的分頁,或使用頻率以及機率較高之分頁,而不常用的分頁則可能是計算機系統1開機之後很少讀取到的分頁,也可能是不符合經濟效益的分頁,例如系統要花很多的時間、電力去儲存它,但是只減少一點點的開機時間就是不符合經濟效益的分頁。
再者,上述步驟S12在判斷複數不可換出分頁為常用分頁或不常用分頁之步驟,亦可利用一判斷方程式判斷,其中判斷方程式(1)係如下所示:
Figure TWI610163BD00001
……….… (1) 其中
Figure TWI610163BD00002
係為使用循序讀取的成本;
Figure TWI610163BD00003
係為隨機讀取的成本;
Figure TWI610163BD00004
係為被判斷之分頁的的預期存取機率;若判斷方程式(1)成立,表示被判斷之分頁為常用分頁,將常用分頁放置於休眠檔142中,但若上述判斷方程式(1)未成立,被判斷之分頁則為不常用分頁,其中上述之成本係為分頁讀寫所需要的時間、分頁讀寫所需要的能量(即:耗電量)。每個分頁的預期讀寫機率(即:access)可以藉由長時間的統計等方法推算出來。請注意,本公式之目的在於呈現某一分頁對某一系統是否為常用分頁與該系統的隨機讀取速度及循序讀取速度相關,當循序讀取與隨機讀取的能量成本越相近,則判斷一分頁為常用分頁的可能性就愈低。
除此之外,計算機系統1為了要強制換出記憶體12所有的不常用分頁,可採用底下四種策略或其他方法:1.呼叫作業系統的函數,將記憶體分頁寫出,例如:在核心作業系統(Linux)中可以呼叫記憶體管理程序shrink_all_memory,強制將不常用分頁換出。2.在作業系統當中配置大量的記憶體分頁,隨後釋放掉這些記憶體分頁,作業系統在大量配置記憶體分頁時,會間接的讓作業系統將不常用分頁寫出,待不常用分頁寫出後,作業系統隨後釋放掉這些記憶體分頁。3.在應用程式中配置大量的記憶體分頁,並對這些記憶體分頁寫入資料,隨後釋放掉這些記憶體分頁,會間接的讓作業系統將不常用分頁換出,待不常用分頁換出後,應用程式隨後釋放掉這些記憶體分頁。4.告訴作業系統,某一記憶體裝置將要離線,當大部份的記憶體都要拔除時,作業系統將釋放大部份的記憶體分頁,因此可有效換出不常用的分頁,或其他方法。
接下來請參步驟S14,區分複數不常用分頁係為清白分頁以及非清白分頁,可將清白分頁放入儲存裝置14之檔案系統146中或者不儲存該清白分頁;接著進入步驟S16,處理器10擷取不常用分頁,並重複將與不常用分頁相關聯的分頁加入至少一資料組,本實施例可將8個相關聯的分頁加入在一組資料組中,並將資料組放入儲存裝置14之置換空間144中,此時若與該分頁相關聯的分頁係存在儲存裝置14的時候,可將檔案系統146中的分頁複製一份副本到置換空間144的資料組中。在步驟S16中,亦可設定所擷取、關聯的分頁為非清白分頁,以最佳化置換空間的空間使用效率。步驟S16中,將一個不常用的非清白分頁的相關聯的非清白分頁加入至少一資料組,重複此步驟,直到無法再擷取到不常用的非清白分頁。換句話說,所有不常用分頁至少隸屬於一個資料組。由於很多不常用分頁之間彼此有相連性,因此實際擷取的數量小於常用分頁的數量。當處理器10無法擷取更多分頁時,即表示處理器10已經將記憶體12中所有的不常用非清白分頁至少屬於一個資料組。隨後將這些資料組以連續存取的方式放到置換空間144。
在步驟S16中,其中與不常用分頁關連的分頁可為常常與不常用分頁連續使用的分頁。也可以是邏輯位置或者實體分頁位址相鄰的分頁。亦可將高使用量分頁加入一資料組中,成為一群資料群。除此之外,可如第四圖所示,亦可透過所有分頁的使用頻率來分群,分群後更可依照使用頻率的高低來設定順位,以及如第五圖所示,透過所有分頁的使用機率來分群,每一群加入至少一資料組中。其中上述之使用機率、使用頻率、是否常常使用、是否常常連續使用,可以藉由側錄的方式統計,統計計算機系統1開機後的一段時間會常常讀寫的分頁,開機後的一段時間可為一特定秒數,如15秒。或者是每秒鐘置換入(swap-in)或置換出(swap-out)的數量少於一門檻值,如每秒換入換出次數少於10次。這些設定也可以依照使用者的感受來設定,在此並不以此為限。當然上述資料組也可也可以是在作業系統或硬體中的近期最少使用(LRU,least recent used)順序,將數個連續排列的分頁加入一資料組中。
藉由上述分群加入資料組的方法,計算機系統1的分頁快取(page cache)會變得非常有效率,將具有高度相關性的分頁聚集在一起,讓開機程序可以一次將這些具有相關性的分頁讀取進來,這樣可以進一步的提升開機速度。
接著請參照步驟S18,當計算機系統1重新啟動時,計算機系統1的處理器10由儲存裝置14讀取休眠檔142並將休眠檔142回復儲存至記憶體12;最後進入步驟S20,讀取完儲存裝置14休眠檔142的重要分頁後,處理器10從儲存裝置14讀取置換空間144之資料組,並載入資料組至記憶體12。
唯以上所述者,僅為本發明之較佳實施例而已,並非用來限定本發明實施之範圍。故即凡依本發明申請範圍所述之特徵及精神所為之均等變化或修飾,均應包括於本發明之申請專利範圍內。
1‧‧‧計算機系統
10‧‧‧處理器
12‧‧‧記憶體
14‧‧‧儲存裝置
142‧‧‧休眠檔
144‧‧‧置換空間
146‧‧‧檔案系統
16‧‧‧儲存裝置
162‧‧‧置換空間
164‧‧‧檔案系統
第一圖係為本發明使用架構之第一實施例系統方塊圖。 第二圖係為本發明之第一實施例之方法步驟樹狀圖。 第三圖係為本發明第一實施例之方法步驟流程圖。 第四圖係為本發明第一實施例之頻率分群示意圖。 第五圖係為本發明第一實施例之機率分群示意圖。 第六圖係為本發明使用架構之第二實施例系統方塊圖。

Claims (19)

  1. 一種休眠檔最佳化之方法,包括下列步驟: 於一計算機系統進入休眠模式,該計算機系統區分至少一記憶體中複數可換出分頁以及複數不可換出分頁,該計算機系統將該不可換出分頁寫入休眠檔,並儲存於至少一儲存裝置中;以及 判斷該等可換出分頁及位於該計算機系統之檔案系統及置換空間中的複數分頁,為常用分頁或不常用分頁,並將該等常用分頁加入該休眠檔中。
  2. 如請求項1所述之方法,其中該等常用分頁,係為該計算機系統開機時一定會使用到的分頁,或使用頻率以及機率較高之分頁。
  3. 如請求項1所述之方法,其中該常用的分頁不在記憶體中,則可由該儲存裝置中提取該常用分頁到該休眠檔中。
  4. 如請求項1所述之方法,其中在判斷該等可換出分頁為常用分頁或不常用分頁之步驟,係利用一判斷方程式判斷,其中該判斷方程式係如下所示:其中係為使用循序讀取的成本;係為隨機讀取的成本;係為被判斷之分頁的存取機率;若該判斷方程式成立,被判斷之分頁則為該常用分頁,若該判斷方程式未成立被判斷之該分頁則為該不常用分頁。
  5. 如請求項4所述之方法,其中該成本係為分頁讀寫所需要的時間或分頁讀寫所需要的耗電量或分頁傳輸的數據量。
  6. 一種最佳化快速開機之置換空間方法,包含下列步驟: 區分複數不常用分頁係為複數清白分頁以及非清白分頁;以及 擷取一該不常用分頁,並將與該不常用分頁關連的複數分頁,加入至少一資料組,並將該資料組以連續存放的方式放入一儲存裝置之置換空間中,重複上述步驟,直到所有該分頁都隸屬於至少一資料組為止,該置換空間係位於一具有高速隨機存取特性之裝置。
  7. 如請求項6所述之方法,其中與該不常用分頁關連的該等分頁,係為常連續使用的該等分頁。
  8. 如請求項6所述之方法,其中與該不常用分頁關連的該等分頁,係為LRU順序中相鄰的分頁,該LRU順序是在作業系統的記憶體管理中的LRU順序或硬體的記憶體管理單元(memory management unit,MMU)的LRU順序。
  9. 如請求項6所述之方法,其中與該不常用分頁具有關連性的該等分頁,係該等分頁之邏輯位址連續之分頁。
  10. 如請求項6所述之方法,其中與該不常用分頁具有關連性的該等分頁,係該等分頁之實體位址連續之分頁。
  11. 如請求項6所述之方法,其中與該不常用分頁具有關連性的該等分頁,為使用頻率相似之分頁。
  12. 如請求項6所述之方法,其中與該不常用分頁具有關連性的該等分頁,為使用機率相似之分頁。
  13. 一種最佳化快速開機之置換空間方法,包含下列步驟: 區分複數不常用分頁係為複數清白分頁以及非清白分頁;以及 擷取一該不常用之該非清白分頁,並重複將與該非清白分頁關連的該等非清白分頁,加入至少一資料組,並將資料組放入一儲存裝置之置換空間中,直到所有非清白分頁都隸屬於至少一資料組為止,該置換空間係位於一具有高速隨機存取特性之裝置。
  14. 如請求項13所述之方法,其中與該非清白分頁關連的該非清白分頁,係為常連續使用的該非清白分頁。
  15. 如請求項13所述之方法,其中與該非清白分頁關連的該非清白分頁,係為LRU順序中相鄰的分頁,該LRU順序是在作業系統的記憶體管理中的LRU順序或硬體的記憶體管理單元(memory management unit,MMU)的LRU順序。
  16. 如請求項13所述之方法,其中與該非清白分頁具有關連性的該非清白分頁,係分頁之邏輯位址連續之分頁。
  17. 如請求項13所述之方法,其中與該非清白分頁具有關連性的該非清白分頁,係分頁之實體位址連續之分頁。
  18. 如請求項13所述之方法,其中與該非清白分頁具有關連性的該非清白分頁,為使用頻率相似之分頁。
  19. 如請求項13所述之方法,其中與該非清白分頁具有關連性的該非清白分頁,為使用機率相似之分頁。
TW105100112A 2016-01-05 2016-01-05 利用分群以利於快速開關機之方法 TWI610163B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW105100112A TWI610163B (zh) 2016-01-05 2016-01-05 利用分群以利於快速開關機之方法
JP2016040999A JP6074086B1 (ja) 2016-01-05 2016-03-03 グループ分けによる快速な起動、シャットダウン方法
US15/219,876 US20170192794A1 (en) 2016-01-05 2016-07-26 Method for fast booting/shutting down a computing system by clustering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105100112A TWI610163B (zh) 2016-01-05 2016-01-05 利用分群以利於快速開關機之方法

Publications (2)

Publication Number Publication Date
TW201725473A TW201725473A (zh) 2017-07-16
TWI610163B true TWI610163B (zh) 2018-01-01

Family

ID=57937530

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105100112A TWI610163B (zh) 2016-01-05 2016-01-05 利用分群以利於快速開關機之方法

Country Status (3)

Country Link
US (1) US20170192794A1 (zh)
JP (1) JP6074086B1 (zh)
TW (1) TWI610163B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394304B2 (en) * 2016-12-07 2019-08-27 Microsoft Technology Licensing, Llc Optimized power transitions based on user or platform conditions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076644B2 (en) * 2002-11-12 2006-07-11 Mitac Technology Corp. System and method for quick boot and application switching for a computer system
US7590839B2 (en) * 2005-03-22 2009-09-15 Qnx Software Systems Gmbh & Co. Kg System employing fast booting of application programs
US8426740B2 (en) * 2008-05-29 2013-04-23 Denki Kagaku Kogyo Kabushiki Kaisha Metal base circuit board

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6609182B1 (en) * 2000-01-20 2003-08-19 Microsoft Corporation Smart hibernation on an operating system with page translation
US7794937B2 (en) * 2006-12-22 2010-09-14 Quest Diagnostics Investments Incorporated Cystic fibrosis transmembrane conductance regulator gene mutations
TW201327160A (zh) * 2011-12-21 2013-07-01 Ind Tech Res Inst 於休眠機制之方法及其電腦系統
TWI514278B (zh) * 2012-09-19 2015-12-21 Ind Tech Res Inst 開機之映像檔之大小縮減方法及運算裝置
JP6046978B2 (ja) * 2012-10-26 2016-12-21 キヤノン株式会社 情報処理装置およびその方法
JP2014194634A (ja) * 2013-03-28 2014-10-09 Sony Corp 情報処理装置、情報処理方法、並びに記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076644B2 (en) * 2002-11-12 2006-07-11 Mitac Technology Corp. System and method for quick boot and application switching for a computer system
US7590839B2 (en) * 2005-03-22 2009-09-15 Qnx Software Systems Gmbh & Co. Kg System employing fast booting of application programs
US8426740B2 (en) * 2008-05-29 2013-04-23 Denki Kagaku Kogyo Kabushiki Kaisha Metal base circuit board

Also Published As

Publication number Publication date
JP2017123135A (ja) 2017-07-13
TW201725473A (zh) 2017-07-16
US20170192794A1 (en) 2017-07-06
JP6074086B1 (ja) 2017-02-01

Similar Documents

Publication Publication Date Title
TWI632457B (zh) 用於資料儲存裝置的損耗平均方法
CN106951187B (zh) 一种固态存储静态磨损均衡的实现方法
TWI536163B (zh) 記憶體區塊之先佔式廢棄項目收集
JP6109316B2 (ja) アドレスマッピング
US10409502B2 (en) Method and apparatus for writing metadata into cache
CN108205473B (zh) 内存处理方法及装置、计算机装置及计算机可读存储介质
EP3059679B1 (en) Controller, flash memory device, method for identifying data block stability and method for storing data on flash memory device
CN103019962A (zh) 数据缓存处理方法、装置以及系统
CN108228341B (zh) 内存回收方法及装置、终端设备及计算机可读存储介质
JP2009163647A (ja) ディスクアレイ装置
Nisbet et al. A forensic analysis and comparison of solid state drive data retention with trim enabled file systems
WO2015058493A1 (zh) 一种存储数据处理方法及装置
CN102981979B (zh) 一种提高存储系统数据访问速度的方法
CN104503703A (zh) 缓存的处理方法和装置
CN108205501B (zh) 内存回收方法及装置、计算机装置及计算机可读存储介质
CN111737162A (zh) 一种快速恢复数据的固态硬盘使用方法及计算机可读存储介质
TWI610163B (zh) 利用分群以利於快速開關機之方法
Tan et al. Uimigrate: Adaptive data migration for hybrid non-volatile memory systems
CN108287761B (zh) 内存回收方法及装置、终端设备及计算机可读存储介质
US10083117B2 (en) Filtering write request sequences
CN109542351B (zh) 一种固态硬盘的功耗控制方法及固态硬盘
JP2013235530A5 (zh)
CN115756297A (zh) 一种预防读取错误的方法、系统及数据存储设备
CN108536619B (zh) 快速恢复ftl表的方法与装置
CN112433889B (zh) 基于ftl表的日志生成方法与装置