專利名稱:一種計算機(jī)及其快速啟動的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)領(lǐng)域,特別是指一種計算機(jī)及其快速啟動的方法。
背景技術(shù):
在計算機(jī)開關(guān)機(jī)的過程中,盡管計算機(jī)硬件運行速度越來越快,但操作系統(tǒng)的體 積也在不斷膨脹,使得計算機(jī)開、關(guān)機(jī)時,啟動、關(guān)閉的程序越來越多,花費時間也越來越 長。如Windows XP操作系統(tǒng)啟動時間為40秒時間,如果加上用戶的殺毒軟件和其他軟件 啟動過程長達(dá)2分鐘或者更長的時間。于是,隨著硬件和軟件的升級,操作系統(tǒng)開始引入了高級電源管理接口(Advanced Configuration and Power Management Interface, ACPI),其作用就是在電腦閑置時關(guān)閉 部分設(shè)備,ACPI共有六種狀態(tài),分別是SO到S5,它們代表的含義分別是SO,電腦正常工作,計算機(jī)的所有硬件設(shè)備全部處于打開或正常工作狀態(tài);Si,也稱為POS (Power on Suspend),CPU停止工作,其它的硬件設(shè)備仍然正常工 作;S2,CPU處于停止運作狀態(tài),總線時鐘也被關(guān)閉,但其余的硬件設(shè)備仍然運轉(zhuǎn);S3, STR(Suspend to RAM,掛起到內(nèi)存),把系統(tǒng)進(jìn)入STR狀態(tài)前的工作狀態(tài)數(shù)據(jù) 全部保存在內(nèi)存中,電源繼續(xù)為內(nèi)存供電,以確保數(shù)據(jù)為丟失,而其它的設(shè)備均處于關(guān)閉狀 態(tài);S4, STD (Suspend to Disk,掛起到硬盤),系統(tǒng)的工作狀態(tài)數(shù)據(jù)全部寫入硬盤,這 時系統(tǒng)主電源關(guān)閉,但是硬盤仍然帶電并可以被喚醒;S5,所有硬件設(shè)備(包括電源)全部關(guān)閉,即關(guān)機(jī)(shutdown)。其中,如果系統(tǒng)從S3狀態(tài)被喚醒,系統(tǒng)馬上從內(nèi)存中讀取數(shù)據(jù)并恢復(fù)到STR之前 的工作狀態(tài)。內(nèi)存的讀寫速度極快,因此系統(tǒng)從S3狀態(tài)啟動,僅需要幾秒鐘而已,但如果開 機(jī)時啟動的程序較多的情況下,有限的內(nèi)存無法存儲這些程序的啟動數(shù)據(jù),因此,這些程序 的啟動數(shù)據(jù)還需要存儲到硬盤中,由于硬盤的讀寫速度較慢,即使從S3狀態(tài)返回,開機(jī)也 依然需要很長時間;而S4狀態(tài),即STD (掛起到硬盤)與STR的原理完全一樣,只不過數(shù)據(jù) 是保存在硬盤中。由于硬盤的讀寫速度比較慢,因此系統(tǒng)啟動也依然需要很長時間。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題現(xiàn)有的計算機(jī)開機(jī)時間過長,給用戶帶來不好的體驗。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種計算機(jī)及其快速啟動的方法,使計算機(jī)能夠 快速啟動,給用戶帶來較好的體驗。為解決上述技術(shù)問題,本發(fā)明的實施例提供技術(shù)方案如下一方面,提供一種計算機(jī),包括硬件平臺,具有內(nèi)存和非易失性存儲設(shè)備;
操作系統(tǒng),運行在所述硬件平臺上;管理模塊,用于在所述操作系統(tǒng)關(guān)機(jī)時,將所述操作系統(tǒng)進(jìn)入S3狀態(tài)的運行狀態(tài) 數(shù)據(jù)保存在所述非易失性存儲設(shè)備中,并在所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè) 備中讀取所述S3狀態(tài)的啟動內(nèi)存段,截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存 的訪問,并根據(jù)所述訪問將所述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存 段,并設(shè)置所述啟動內(nèi)存段為可直接訪問的屬性,并將所述內(nèi)存段的訪問控制權(quán)返回給所 述操作系統(tǒng)。優(yōu)選的,所述管理模塊包括關(guān)機(jī)管理模塊,用于截獲所述操作系統(tǒng)關(guān)機(jī)進(jìn)入S3狀態(tài)時保存在所述內(nèi)存中的 運行狀態(tài)數(shù)據(jù),并將所述運行狀態(tài)數(shù)據(jù)保存在所述非易失性存儲設(shè)備中;開機(jī)管理模塊,用于在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中 讀取所述S3狀態(tài)的啟動內(nèi)存段,截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪 問,并根據(jù)所述訪問將所述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存段, 并設(shè)置所述啟動內(nèi)存段為可直接訪問的屬性,并將所述內(nèi)存段的訪問控制權(quán)返回給所述操 作系統(tǒng)。優(yōu)選的,所述開機(jī)管理模塊包括第一處理模塊,用于在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中 讀取所述S3狀態(tài)的啟動地址,并根據(jù)所述啟動地址跳轉(zhuǎn)到所述啟動內(nèi)存段;第二處理模塊,用于截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問, 并根據(jù)所述訪問將所述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存段,并設(shè) 置所述啟動內(nèi)存段為可直接訪問的屬性,并將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述操 作系統(tǒng)。優(yōu)選的,所述開機(jī)管理模塊還包括判斷模塊,用于判斷所述操作系統(tǒng)訪問的內(nèi)存是否全部恢復(fù),若是,則設(shè)置整個內(nèi) 存為所述操作系統(tǒng)可以直接訪問的屬性。優(yōu)選的,所述開機(jī)管理模塊還包括檢測模塊,用于在檢測到所述操作系統(tǒng)處于空閑狀態(tài)時,在所述操作系統(tǒng)的后臺 將沒有恢復(fù)的內(nèi)存段的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中,并設(shè)置整個內(nèi)存為 所述操作系統(tǒng)可以直接訪問的屬性。優(yōu)選的,所述管理模塊具體為虛擬機(jī)管理器,所述操作系統(tǒng)為至少兩個,所述操作 系統(tǒng)運行在所述虛擬機(jī)管理器上。另一方面,還提供一種計算機(jī)快速啟動的方法,包括在將計算機(jī)的操作系統(tǒng)關(guān)機(jī)時,將所述操作系統(tǒng)進(jìn)入S3狀態(tài)的運行狀態(tài)數(shù)據(jù)保 存在所述計算機(jī)的非易失性存儲設(shè)備中;在所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取所述S3狀態(tài)的啟動內(nèi) 存段;截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問,根據(jù)所述訪問將所 述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存段,并設(shè)置所述啟動內(nèi)存段為 可直接訪問的屬性;
將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述操作系統(tǒng)。優(yōu)選的,所述在所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取所述S3狀 態(tài)的啟動內(nèi)存段的步驟具體為在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取所述S3狀態(tài)的 啟動地址,并根據(jù)所述啟動地址跳轉(zhuǎn)到所述啟動內(nèi)存段。優(yōu)選的,所述將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述操作系統(tǒng)的步驟之后還 包括判斷所述操作系統(tǒng)要訪問的內(nèi)存是否全部恢復(fù),若是,則設(shè)置整個內(nèi)存為所述操 作系統(tǒng)可以直接訪問的屬性;或者在檢測到所述操作系統(tǒng)處于空閑狀態(tài)時,在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi) 存段的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中,并設(shè)置整個內(nèi)存為所述操作系統(tǒng)可 以直接訪問的屬性。優(yōu)選的,所述在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi)存段的數(shù)據(jù)從所述非易失性 存儲設(shè)備中讀取到內(nèi)存中的步驟具體為通過直接存儲器存取DMA方式在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi)存段的數(shù) 據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中。本發(fā)明的實施例具有以下有益效果上述方案通過將操作系統(tǒng)進(jìn)入S3狀態(tài)時寫入內(nèi)存的運行狀態(tài)數(shù)據(jù),寫入計算機(jī) 的非易失性存儲設(shè)備中,當(dāng)下次計算機(jī)開機(jī)時,將S3狀態(tài)的啟動內(nèi)存段先從非易失性存儲 設(shè)備中讀出,在操作系統(tǒng)從所述S3狀態(tài)返回時,截獲操作系統(tǒng)對內(nèi)存的訪問,根據(jù)該訪問 將運行狀態(tài)數(shù)據(jù)從非易失性存儲設(shè)備中讀出,并設(shè)置該啟動內(nèi)存段為“操作系統(tǒng)可直接訪 問的屬性”,這樣操作系統(tǒng)可以直接從內(nèi)存中讀取啟動數(shù)據(jù),就會快速啟動,大大提高了系 統(tǒng)的啟動速度。
圖1為本發(fā)明的實施例計算機(jī)的整體架構(gòu)示意圖;圖2為圖1所示計算機(jī)中管理模塊的結(jié)構(gòu)示意圖;圖3為圖2所示計算機(jī)的開機(jī)管理模塊的結(jié)構(gòu)示意圖;圖4為圖3所示計算機(jī)的開機(jī)管理模塊的另一結(jié)構(gòu)示意圖;圖5為本發(fā)明的實施例計算機(jī)快速啟動的方法流程示意圖;圖6為圖5所示方法的具體實現(xiàn)流程示意圖。
具體實施例方式為使本發(fā)明的實施例要解決的技術(shù)問題、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合 附圖及具體實施例進(jìn)行詳細(xì)描述。本發(fā)明的實施例針對現(xiàn)有技術(shù)中計算機(jī)開機(jī)啟動慢的問題,提供一種計算機(jī)及其 快速啟動的方法。如圖1所示,本發(fā)明的實施例計算機(jī),包括硬件平臺,具有內(nèi)存和非易失性存儲設(shè)備,該非易失性存儲設(shè)備可以為如硬盤等存儲設(shè)備;操作系統(tǒng),所述操作系統(tǒng)運行在所述硬件平臺上;管理模塊,用于在所述操作系統(tǒng)關(guān)機(jī)時,將所述操作系統(tǒng)進(jìn)入S3狀態(tài)的運行狀態(tài) 數(shù)據(jù)保存在所述非易失性存儲設(shè)備中,并在所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè) 備中讀取所述S3狀態(tài)的啟動內(nèi)存段,截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存 的訪問,并根據(jù)所述訪問將所述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取所述啟動內(nèi) 存段,并設(shè)置所述啟動內(nèi)存段為可直接訪問的屬性,并返回對所述啟動內(nèi)存段的訪問控制 權(quán)給所述操作系統(tǒng)。該實施例中,該計算機(jī)通過在操作系統(tǒng)與硬件平臺之間安裝一管理模塊,用于對 計算機(jī)的開關(guān)機(jī)管理,在計算機(jī)關(guān)機(jī)時,將操作系統(tǒng)進(jìn)入S3狀態(tài)時的運行狀態(tài)數(shù)據(jù),寫入 計算機(jī)的非易失性存儲設(shè)備中;在下次開機(jī)啟動時,該管理模塊啟動,將S3狀態(tài)的啟動內(nèi) 存段先從非易失性存儲設(shè)備中讀出,并截獲操作系統(tǒng)從S3狀態(tài)返回時,對內(nèi)存的訪問,根 據(jù)該訪問將運行狀態(tài)數(shù)據(jù)從非易失性存儲設(shè)備中讀到該啟動內(nèi)存段,并設(shè)置該啟動內(nèi)存段 的屬性為“操作系統(tǒng)可直接訪問”,使操作系統(tǒng)直接從該啟動內(nèi)存段中讀取S3狀態(tài)的運行 狀態(tài)數(shù)據(jù),而不是從非易失性存儲設(shè)備中讀取S3狀態(tài)的運行狀態(tài)數(shù)據(jù),這樣無論啟動的程 序有多少,操作系統(tǒng)都可以直接從內(nèi)存中讀取啟動數(shù)據(jù),大大提高了操作系統(tǒng)的啟動速度, 同時提高了用戶的體驗。如圖2所示,在上述圖1所示實施例的基礎(chǔ)上,上述管理模塊包括關(guān)機(jī)管理模塊,用于截獲所述操作系統(tǒng)關(guān)機(jī)進(jìn)入S3狀態(tài)時保存在所述內(nèi)存中的 運行狀態(tài)數(shù)據(jù),并將所述運行狀態(tài)數(shù)據(jù)保存在所述非易失性存儲設(shè)備中;操作系統(tǒng)在進(jìn)入 S3狀態(tài)時,會首先將進(jìn)入S3狀態(tài)之前的運行狀態(tài)數(shù)據(jù)保存在內(nèi)存中,這些運行狀態(tài)數(shù)據(jù) 如hiberf il. sys文件中存儲的信息,是計算機(jī)當(dāng)前運行時所有軟硬件的狀態(tài),包括開機(jī)時 設(shè)置的啟動程序的啟動數(shù)據(jù)信息,即這個運行狀態(tài)數(shù)據(jù)在被保存時,不會被壓縮,下次啟動 時,計算機(jī)的相關(guān)軟硬件會根據(jù)這個運行狀態(tài)數(shù)據(jù)從被保存時的狀態(tài)迅速返回;開機(jī)管理模塊,用于在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中 讀取所述S3狀態(tài)的啟動內(nèi)存段,截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪 問,并根據(jù)所述訪問將運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取所述啟動內(nèi)存段,并 設(shè)置所述啟動內(nèi)存段為可直接訪問的屬性,并將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述 操作系統(tǒng)。這樣操作系統(tǒng)就會直接從該內(nèi)存段中讀取啟動數(shù)據(jù),迅速啟動。如圖3所示,在上述圖2所示實施例的基礎(chǔ)上,上述開機(jī)管理模塊包括第一處理模塊,用于在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中 讀取所述S3狀態(tài)的啟動地址,并根據(jù)所述啟動地址跳轉(zhuǎn)到所述啟動內(nèi)存段,并開始讀取該 啟動內(nèi)存段的數(shù)據(jù);第二處理模塊,用于截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問, 并根據(jù)所述訪問將運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取所述啟動內(nèi)存段,并設(shè)置 所述啟動內(nèi)存段為可直接訪問的屬性,并將所述內(nèi)存段的訪問控制權(quán)返回給所述操作系 統(tǒng)。如圖4所示,在上述圖3所示實施例的基礎(chǔ)上,上述開機(jī)管理模塊中還可包括判斷模塊,用于判斷所述操作系統(tǒng)要訪問的內(nèi)存是否全部恢復(fù),若是,則設(shè)置整個內(nèi)存為所述操作系統(tǒng)可以直接訪問的屬性,否則,繼續(xù)截獲操作系統(tǒng)對內(nèi)存的訪問,并從非 易失性存儲設(shè)備中讀出該操作系統(tǒng)要訪問的內(nèi)存,直到所有內(nèi)存全部恢復(fù)。另外,當(dāng)操作系統(tǒng)處于IDLE(空閑)狀態(tài)的時候,如果還有沒有恢復(fù)的內(nèi)存段,則 管理模塊在后臺將剩余的沒有恢復(fù)的內(nèi)存段的數(shù)據(jù),通過DMA(直接存儲器存取)的方式從 非易失性存儲設(shè)備中拷貝到內(nèi)存中,并設(shè)置整個內(nèi)存為操作系統(tǒng)可以直接訪問的屬性,這 樣操作系統(tǒng)就能通過直接訪問內(nèi)存而快速啟動,因此,在上述所有實施例的基礎(chǔ)上,上述開 機(jī)管理模塊還可包括檢測模塊,用于在檢測到所述操作系統(tǒng)處于空閑狀態(tài)時,在所述操作系統(tǒng)的后臺 將沒有恢復(fù)的內(nèi)存段的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中,并設(shè)置整個內(nèi)存為 所述操作系統(tǒng)可以直接訪問的屬性。DMA是一種快速傳送數(shù)據(jù)的機(jī)制,數(shù)據(jù)傳遞可以從適配卡到內(nèi)存,從內(nèi)存到適配卡 或從一段內(nèi)存到另一段內(nèi)存,那么在本實施例中,利用DMA方式將數(shù)據(jù)從硬盤讀入內(nèi)存,在 數(shù)據(jù)傳送時不需要CPU的參與,這樣大大提高了從硬盤中讀取數(shù)據(jù)的速度和效率,進(jìn)而進(jìn) 一步提高了計算機(jī)操作系統(tǒng)啟動的速度。本發(fā)明的上述實施例即可以應(yīng)用到虛擬機(jī)架構(gòu)上,也可以應(yīng)用到單臺計算機(jī) 上,在應(yīng)用到虛擬機(jī)架構(gòu)上時,上述管理模塊具體為虛擬機(jī)管理器VMM (Virtual Machine Manager,),而位于該管理模塊之上的操作系統(tǒng)可以為至少兩個,這些操作系統(tǒng)可以為虛擬 出來的操作系統(tǒng),即虛擬機(jī),這些操作系統(tǒng)在啟動時,采用上述實施例中所述的關(guān)機(jī),開機(jī) 的方法,可以使操作系統(tǒng)能迅速啟動,提高用戶體驗。如圖5所示,本發(fā)明的實施例還提供一種計算機(jī)快速啟動的方法,包括步驟101,將計算機(jī)的操作系統(tǒng)關(guān)機(jī)時,將所述操作系統(tǒng)進(jìn)入S3狀態(tài)的運行狀態(tài) 數(shù)據(jù)保存在該計算機(jī)的非易失性存儲設(shè)備中;步驟102,在該操作系統(tǒng)開機(jī)時,從該非易失性存儲設(shè)備中讀取S3狀態(tài)的啟動內(nèi) 存段;步驟103,截獲該操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問,根據(jù)該訪問 將運行狀態(tài)數(shù)據(jù)從非易失性存儲設(shè)備中讀到該啟動內(nèi)存段,并設(shè)置該啟動內(nèi)存段為可直接 訪問的屬性;步驟104,將該啟動內(nèi)存段的訪問控制權(quán)返回給操作系統(tǒng)。上述步驟101在具體實現(xiàn)時,檢測到操作系統(tǒng)開機(jī)時,首先從非易失性存儲設(shè)備 中讀取所述S3狀態(tài)的啟動地址,并根據(jù)該啟動地址跳轉(zhuǎn)啟動內(nèi)存段,并開始讀取所述啟動 內(nèi)存段的數(shù)據(jù);在上述步驟103執(zhí)行時,該步驟之后還包括判斷所述操作系統(tǒng)要訪問的內(nèi)存是否全部恢復(fù),若是,則設(shè)置整個內(nèi)存為所述操 作系統(tǒng)可以直接訪問的屬性;或者在檢測到所述操作系統(tǒng)處于空閑狀態(tài)時,在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi) 存段的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中,并設(shè)置整個內(nèi)存為所述操作系統(tǒng)可 以直接訪問的屬性。而且在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi)存段的數(shù)據(jù)從所述非易失性存儲設(shè) 備中讀取到內(nèi)存中時,可以采用DMA方式在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi)存段的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中,并設(shè)置整個內(nèi)存為所述操作系統(tǒng)可以直接訪 問的屬性,這樣的更進(jìn)一步提高了系統(tǒng)啟動的速度。該方法中,通過在計算機(jī)關(guān)機(jī)時,將操作系統(tǒng)進(jìn)入S3狀態(tài)時寫入內(nèi)存的運行狀態(tài) 數(shù)據(jù),寫入計算機(jī)的非易失性存儲設(shè)備中;在下次開機(jī)啟動時,該管理模塊啟動,將S3狀態(tài) 的啟動內(nèi)存段先從非易失性存儲設(shè)備中讀出,并截獲操作系統(tǒng)從S3狀態(tài)返回時,對內(nèi)存的 訪問,根據(jù)該訪問將運行狀態(tài)數(shù)據(jù)從非易失性存儲設(shè)備中讀出,并設(shè)置該啟動內(nèi)存段的屬 性為“操作系統(tǒng)可直接訪問”,使操作系統(tǒng)直接從該啟動內(nèi)存段中讀取啟動數(shù)據(jù),而不是從 非易失性存儲設(shè)備中讀取啟動數(shù)據(jù),大大提高了操作系統(tǒng)的啟動速度,同時提高了用戶的 體驗。如圖6所示,下面就上述實施例的方法的具體實現(xiàn)過程進(jìn)行詳細(xì)描述系統(tǒng)開機(jī)時,啟動計算機(jī)的管理模塊,如啟動VMM ;該VMM從計算機(jī)的非易失性存儲設(shè)備中讀取S3狀態(tài)的啟動地址,并根據(jù)該啟動地 址從非易失性存儲設(shè)備中讀取S3啟動內(nèi)存段,跳轉(zhuǎn)到該啟動內(nèi)存段;在操作系統(tǒng)在系統(tǒng)從S3狀態(tài)返回過程中,操作系統(tǒng)會訪問內(nèi)存,第一次訪問的某 內(nèi)存段會被VMM截獲,VMM從非易失性存儲設(shè)備讀出相應(yīng)的內(nèi)存段(這些內(nèi)存段均可稱為 啟動內(nèi)存段,且該內(nèi)存段是計算機(jī)的整個內(nèi)存的一部分),并設(shè)置該內(nèi)存段為操作系統(tǒng)可以 直接訪問的屬性,并返回控制權(quán)給操作系統(tǒng);判斷是否所有內(nèi)存段都恢復(fù),如果所有內(nèi)存段已經(jīng)恢復(fù),則整個過程結(jié)束,VMM設(shè) 置操作系統(tǒng)可以直接訪問所有內(nèi)存;否則,重復(fù)截獲操作系統(tǒng)對內(nèi)存段的訪問,并從非易失 性存儲設(shè)備讀出相應(yīng)的內(nèi)存段,并設(shè)置該內(nèi)存段為操作系統(tǒng)可以直接訪問的屬性,并返回 控制權(quán)給操作系統(tǒng);另外,若操作系統(tǒng)處于空閑狀態(tài)的時候,VMM在后臺,可以將剩余的沒有恢復(fù)的內(nèi) 存段從非易失性存儲設(shè)備中拷貝到內(nèi)存中,并設(shè)置整個內(nèi)存為操作系統(tǒng)可以直接訪問的屬 性,整個過程結(jié)束。這樣操作系統(tǒng)可以直接從內(nèi)存中讀取啟動數(shù)據(jù),而不用再從非易失性存儲設(shè)備中 讀取,大大提高了操作系統(tǒng)的啟動速度,進(jìn)而提高用戶的體驗。以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員 來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也 應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種計算機(jī),包括硬件平臺,具有內(nèi)存和非易失性存儲設(shè)備;操作系統(tǒng),運行在所述硬件平臺上;其特征在于,所述計算機(jī)還包括管理模塊,用于在所述操作系統(tǒng)關(guān)機(jī)時,將所述操作系統(tǒng)進(jìn)入S3狀態(tài)的運行狀態(tài)數(shù)據(jù)保存在所述非易失性存儲設(shè)備中,并在所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取所述S3狀態(tài)的啟動內(nèi)存段,截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問,并根據(jù)所述訪問將所述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存段,并設(shè)置所述啟動內(nèi)存段為可直接訪問的屬性,并將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述操作系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的計算機(jī),其特征在于,所述管理模塊包括關(guān)機(jī)管理模塊,用于截獲所述操作系統(tǒng)關(guān)機(jī)進(jìn)入S3狀態(tài)時保存在所述內(nèi)存中的運行 狀態(tài)數(shù)據(jù),并將所述運行狀態(tài)數(shù)據(jù)保存在所述非易失性存儲設(shè)備中;開機(jī)管理模塊,用于在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取 所述S3狀態(tài)的啟動內(nèi)存段,截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問,并 根據(jù)所述訪問將所述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存段,并設(shè)置 所述啟動內(nèi)存段為可直接訪問的屬性,并將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述操作 系統(tǒng)。
3.根據(jù)權(quán)利要求2所述的計算機(jī),其特征在于,所述開機(jī)管理模塊包括第一處理模塊,用于在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取 所述S3狀態(tài)的啟動地址,并根據(jù)所述啟動地址跳轉(zhuǎn)到所述啟動內(nèi)存段;第二處理模塊,用于截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問,并根 據(jù)所述訪問將所述運行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存段,并設(shè)置所 述啟動內(nèi)存段為可直接訪問的屬性,并將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述操作系 統(tǒng)。
4.根據(jù)權(quán)利要求2或3所述的計算機(jī),其特征在于,所述開機(jī)管理模塊還包括判斷模塊,用于判斷所述操作系統(tǒng)訪問的內(nèi)存是否全部恢復(fù),若是,則設(shè)置整個內(nèi)存為 所述操作系統(tǒng)可以直接訪問的屬性。
5.根據(jù)權(quán)利要求2或3所述的計算機(jī),其特征在于,所述開機(jī)管理模塊還包括檢測模塊,用于在檢測到所述操作系統(tǒng)處于空閑狀態(tài)時,在所述操作系統(tǒng)的后臺將沒 有恢復(fù)的內(nèi)存段的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中,并設(shè)置整個內(nèi)存為所述 操作系統(tǒng)可以直接訪問的屬性。
6.根據(jù)權(quán)利要求1所述的計算機(jī),其特征在于,所述管理模塊具體為虛擬機(jī)管理器,所 述操作系統(tǒng)為至少兩個,所述操作系統(tǒng)運行在所述虛擬機(jī)管理器上。
7.一種計算機(jī)快速啟動的方法,其特征在于,包括在計算機(jī)的操作系統(tǒng)關(guān)機(jī)時,將所述操作系統(tǒng)進(jìn)入S3狀態(tài)的運行狀態(tài)數(shù)據(jù)保存在所 述計算機(jī)的非易失性存儲設(shè)備中;在所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取所述S3狀態(tài)的啟動內(nèi)存段;截獲所述操作系統(tǒng)從所述S3狀態(tài)返回過程中對內(nèi)存的訪問,根據(jù)所述訪問將所述運 行狀態(tài)數(shù)據(jù)從所述非易失性存儲設(shè)備讀到所述啟動內(nèi)存段,并設(shè)置所述啟動內(nèi)存段為可直接訪問的屬性;將所述啟動內(nèi)存段的訪問控制權(quán)返回給所述操作系統(tǒng)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述在所述操作系統(tǒng)開機(jī)時,從所述非易 失性存儲設(shè)備中讀取所述S3狀態(tài)的啟動內(nèi)存段的步驟具體為在檢測到所述操作系統(tǒng)開機(jī)時,從所述非易失性存儲設(shè)備中讀取所述S3狀態(tài)的啟動 地址,并根據(jù)所述啟動地址跳轉(zhuǎn)到所述啟動內(nèi)存段。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述將所述啟動內(nèi)存段的訪問控制權(quán) 返回給所述操作系統(tǒng)的步驟之后還包括判斷所述操作系統(tǒng)要訪問的內(nèi)存是否全部恢復(fù),若是,則設(shè)置整個內(nèi)存為所述操作系 統(tǒng)可以直接訪問的屬性;或者在檢測到所述操作系統(tǒng)處于空閑狀態(tài)時,在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi)存段 的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中,并設(shè)置整個內(nèi)存為所述操作系統(tǒng)可以直 接訪問的屬性。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述在所述操作系統(tǒng)的后臺將沒有恢復(fù) 的內(nèi)存段的數(shù)據(jù)從所述非易失性存儲設(shè)備中讀取到內(nèi)存中的步驟具體為通過直接存儲器存取DMA方式在所述操作系統(tǒng)的后臺將沒有恢復(fù)的內(nèi)存段的數(shù)據(jù)從 所述非易失性存儲設(shè)備中讀取到內(nèi)存中。
全文摘要
本發(fā)明提供一種計算機(jī)及其快速啟動的方法,其中,計算機(jī)包括硬件平臺,具有內(nèi)存和非易失性存儲設(shè)備;操作系統(tǒng),運行在硬件平臺上;管理模塊,用于將操作系統(tǒng)關(guān)機(jī)時進(jìn)入S3狀態(tài)的運行狀態(tài)數(shù)據(jù)保存在非易失性存儲設(shè)備中,并在操作系統(tǒng)開機(jī)時,從非易失性存儲設(shè)備中讀取S3狀態(tài)的啟動內(nèi)存段,截獲操作系統(tǒng)從S3狀態(tài)返回過程中對內(nèi)存的訪問,并根據(jù)訪問將所述運行狀態(tài)數(shù)據(jù)從非易失性存儲設(shè)備讀到該啟動內(nèi)存段,并設(shè)置該啟動內(nèi)存段為可直接訪問的屬性,并將啟動內(nèi)存段的訪問控制權(quán)返回給操作系統(tǒng)。本發(fā)明使計算機(jī)開機(jī)時,操作系統(tǒng)能夠快速啟動。
文檔編號G06F9/445GK101937344SQ20091008678
公開日2011年1月5日 申請日期2009年6月30日 優(yōu)先權(quán)日2009年6月30日
發(fā)明者湯良 申請人:聯(lián)想(北京)有限公司