專利名稱:快速計(jì)算機(jī)啟動(dòng)的制作方法
快速計(jì)算機(jī)啟動(dòng)
背景技術(shù):
計(jì)算機(jī)具有多種運(yùn)行模式,其范圍從完全運(yùn)行到完全關(guān)機(jī)。在完全運(yùn)行模式中,定義操作系統(tǒng)執(zhí)行部分的軟件已經(jīng)從非易失存儲(chǔ)器被加載到易失存儲(chǔ)器中,從該存儲(chǔ)器中它可以被更快速地執(zhí)行。計(jì)算機(jī)通過(guò)“啟動(dòng)”過(guò)程進(jìn)入這種完全運(yùn)行模式。啟動(dòng)過(guò)程配置硬件并加載計(jì)算機(jī)的操作系統(tǒng)。作為啟動(dòng)過(guò)程的一部分,安裝驅(qū)動(dòng)程序并且啟動(dòng)操作系統(tǒng)服務(wù)。一旦計(jì)算機(jī)準(zhǔn)備好由任意用戶操作,用戶可以登錄該計(jì)算機(jī)。這種登錄可能涉及基于特定于登錄用戶的簡(jiǎn)檔對(duì)計(jì)算機(jī)的進(jìn)一步配置。自動(dòng)地或者響應(yīng)于用戶輸入,應(yīng)用然后可以被加載,使得這些應(yīng)用可以利用計(jì)算設(shè)備的硬件和操作系統(tǒng)服務(wù)的能力來(lái)執(zhí)行。在加載軟件的過(guò)程中,無(wú)論對(duì)于操作系統(tǒng)還是應(yīng)用,可以分配存儲(chǔ)器,可以基于計(jì)算機(jī)的硬件配置或者用戶簡(jiǎn)檔來(lái)為軟件的參數(shù)賦值,并且可以執(zhí)行其它配置動(dòng)作。這些動(dòng)作建立計(jì)算設(shè)備的“狀態(tài)”。當(dāng)用戶提供命令以與正在執(zhí)行的應(yīng)用或操作系統(tǒng)服務(wù)交互時(shí),還可以對(duì)存儲(chǔ)器和定義其運(yùn)行狀態(tài)的其它系統(tǒng)參數(shù)做出進(jìn)一步的改變。在完全關(guān)機(jī)模式中,不向計(jì)算機(jī)的硬件組件供電。沒(méi)有軟件或者狀態(tài)信息被存儲(chǔ)在易失性存儲(chǔ)器中,因?yàn)檫@種存儲(chǔ)器在它斷電時(shí)不會(huì)保留信息。相反,稍后將被用于重新配置計(jì)算機(jī)為完全運(yùn)行模式的任何信息都被存儲(chǔ)在非易失性存儲(chǔ)器中。計(jì)算機(jī)通過(guò)被稱為關(guān)機(jī)的過(guò)程進(jìn)入關(guān)機(jī)模式。在關(guān)機(jī)期間,重新配置計(jì)算機(jī)可能所需的任何信息在其尚未被存儲(chǔ)在非易失存儲(chǔ)器中的情況下,可以被存儲(chǔ)在非易失存儲(chǔ)器中。從非易失存儲(chǔ)器復(fù)制到易失存儲(chǔ)器的軟件和其它配置信息不會(huì)被復(fù)制回非易失存儲(chǔ)器,因?yàn)樗梢栽陔S后的啟動(dòng)過(guò)程時(shí)被重新創(chuàng)建。然而,就易失存儲(chǔ)器緩存從非易失存儲(chǔ)器復(fù)制的、在復(fù)制之后被修改的數(shù)據(jù)(有時(shí)被稱作“臟”數(shù)據(jù))而言,在關(guān)機(jī)期間該數(shù)據(jù)被復(fù)制到非易失存儲(chǔ)器。另一種變化被稱作注銷(log off)。在支持用戶會(huì)話的計(jì)算機(jī)中,用戶可以登錄到計(jì)算機(jī)以便訪問(wèn)它的功能。雖然關(guān)機(jī)有效地注銷了用戶,但是單獨(dú)的注銷過(guò)程可以被執(zhí)行, 之后計(jì)算機(jī)不斷電。相反,操作系統(tǒng)保持被加載并且準(zhǔn)備好另一個(gè)用戶登錄。在注銷期間, 計(jì)算機(jī)“中斷”用戶會(huì)話。中斷用戶會(huì)話可能引起關(guān)閉用戶發(fā)起的應(yīng)用并且存儲(chǔ)還未處于非易失存儲(chǔ)器中的用戶特定數(shù)據(jù)。除了完全關(guān)機(jī)或注銷之外,還可以存在省電模式,在該模式中計(jì)算機(jī)的一些或全部硬件組件的電源被關(guān)閉。在有時(shí)被稱作睡眠模式的省電模式中,用于計(jì)算機(jī)處理器、網(wǎng)絡(luò)接口和可能的其它組件的電源被關(guān)閉。然而,保留了用于易失存儲(chǔ)器的電源。以這種方式, 在計(jì)算機(jī)啟動(dòng)或后續(xù)運(yùn)行期間創(chuàng)建的任何狀態(tài)信息被保留在易失存儲(chǔ)器中。當(dāng)再次向處理器供電時(shí),其可以恢復(fù)進(jìn)入睡眠模式時(shí)所中斷的狀態(tài)中的操作。另一種模式有時(shí)被稱為休眠模式。計(jì)算機(jī)通過(guò)被稱作休眠的過(guò)程進(jìn)入這個(gè)模式。 在休眠期間,捕獲計(jì)算機(jī)的運(yùn)行狀態(tài)的文件被創(chuàng)建并且被存儲(chǔ)在非易失存儲(chǔ)器中,該非易失存儲(chǔ)器典型地為硬盤。在從休眠恢復(fù)的過(guò)程期間,這個(gè)文件可以從盤中讀取并且被用于重新建立如在休眠時(shí)所存在的計(jì)算機(jī)狀態(tài)。從休眠恢復(fù)在易失存儲(chǔ)器中還原了在休眠時(shí)所存在的操作期間的軟件或者參數(shù)集合的副本,使得任意的用戶狀態(tài)也被還原。由于多個(gè)原因,從休眠中恢復(fù)可能比執(zhí)行完全啟動(dòng)更快速。一個(gè)原因是將休眠文件中的狀態(tài)信息復(fù)制到易失存儲(chǔ)器中重建了完全啟動(dòng)過(guò)程的結(jié)果,同時(shí)避免了執(zhí)行啟動(dòng)過(guò)程的步驟所花費(fèi)的時(shí)間,諸如CPU消耗、設(shè)備初始化和在啟動(dòng)(boot)期間必須進(jìn)行的許多其它類型的工作。另外,在啟動(dòng)期間訪問(wèn)的信息被存儲(chǔ)在許多不同的文件中,這些文件表示被訪問(wèn)以加載并配置可能潛在地是操作系統(tǒng)中數(shù)萬(wàn)個(gè)組件的東西的不同組件。這些組件以及被訪問(wèn)以配置它們的信息可以被隨機(jī)地分布在硬盤上。因?yàn)橛脖P驅(qū)動(dòng)以及一些其它形式的高容量存儲(chǔ)裝置在訪問(wèn)順序數(shù)據(jù)方面是最高效的,所以訪問(wèn)隨機(jī)地分布的數(shù)據(jù)可包括大量的盤訪問(wèn)時(shí)間,從而導(dǎo)致長(zhǎng)的啟動(dòng)過(guò)程。相比而言,在讀取休眠文件中的訪問(wèn)時(shí)間是較少的,因?yàn)樵谠撐募械男畔⒖杀豁樞虻卮鎯?chǔ)在盤上。從休眠恢復(fù)和啟動(dòng)之間的另一個(gè)不同在于休眠和之后的恢復(fù)還原(restore) 了計(jì)算機(jī)的完全狀態(tài),包括在計(jì)算機(jī)休眠時(shí)計(jì)算機(jī)用戶的任何用戶狀態(tài)。相比而言,直到用戶登錄,啟動(dòng)將通常為任意用戶配置計(jì)算機(jī)。特定用戶可以然后登錄,或者用其它方式采取動(dòng)作為他們自己配置計(jì)算機(jī)。出于這種原因,打算離開計(jì)算機(jī)一會(huì)兒但是還想返回該計(jì)算機(jī)的用戶通常選擇休眠。打算離開計(jì)算機(jī)較長(zhǎng)時(shí)間、可能根本不會(huì)返回該計(jì)算機(jī)或者預(yù)期其它用戶在該用戶返回之前可以使用該計(jì)算機(jī)的用戶通常使用關(guān)機(jī)。
發(fā)明內(nèi)容
為了改善用戶體驗(yàn),計(jì)算機(jī)可以被配置成響應(yīng)用戶命令通過(guò)進(jìn)入休眠模式關(guān)機(jī)。 在用戶提供命令以啟動(dòng)計(jì)算機(jī)后,這種計(jì)算機(jī)可以更快速地為用戶操作做好準(zhǔn)備。為了使得計(jì)算機(jī)能夠快速地為在與用戶期望一致的狀態(tài)中操作做好準(zhǔn)備,休眠文件捕獲實(shí)現(xiàn)用戶期望的目標(biāo)狀態(tài)。響應(yīng)于關(guān)機(jī)命令,計(jì)算機(jī)通過(guò)只執(zhí)行關(guān)機(jī)過(guò)程中的一部分步驟而在休眠之前創(chuàng)建這個(gè)目標(biāo)狀態(tài)。執(zhí)行的步驟可以將計(jì)算機(jī)置于目標(biāo)狀態(tài)中,該目標(biāo)狀態(tài)相應(yīng)于操作系統(tǒng)保持加載但是用戶會(huì)話已經(jīng)中斷的狀態(tài)。在接收到啟動(dòng)命令時(shí),計(jì)算機(jī)系統(tǒng)可以不通過(guò)加載和配置軟件來(lái)創(chuàng)建運(yùn)行狀態(tài), 而是通過(guò)將休眠文件復(fù)制到易失存儲(chǔ)器中來(lái)重建目標(biāo)狀態(tài)。然后計(jì)算機(jī)可以只執(zhí)行啟動(dòng)序列的一部分。這些部分可以包括在加載操作系統(tǒng)之后的啟動(dòng)序列期間將慣常發(fā)生的操作。 這些步驟可以包括例如與用戶交互以執(zhí)行用戶登錄并加載限定用戶狀態(tài)的應(yīng)用。在一些實(shí)施方式中,可以響應(yīng)于指示關(guān)機(jī)的用戶命令執(zhí)行條件處理。計(jì)算設(shè)備可以確定例如計(jì)算設(shè)備是否處于需要完全關(guān)機(jī)的運(yùn)行狀態(tài)或者響應(yīng)于后續(xù)的啟動(dòng)命令創(chuàng)建要使用的休眠文件是否是合適的。這種狀態(tài)可以以多種方式中的任一種來(lái)識(shí)別,所述方式包括通過(guò)確定一些已安裝組件的配置設(shè)置被改變并且將直到組件作為完全啟動(dòng)序列的一部分再次被加載時(shí)才被應(yīng)用。可替代地,可以提供允許應(yīng)用組件注冊(cè)為需要完全關(guān)機(jī)的編程接口。如果檢測(cè)到這種情況,則可以執(zhí)行常規(guī)的關(guān)機(jī)處理,直到計(jì)算設(shè)備完全斷電。如果沒(méi)有檢測(cè)到,則將執(zhí)行關(guān)機(jī)序列,直到計(jì)算設(shè)備處于目標(biāo)狀態(tài),從中可以制作休眠文件。在一些實(shí)施方式中,可以響應(yīng)于用戶啟動(dòng)命令執(zhí)行條件處理。該條件處理可以包括確定是否存在休眠文件。如果是,可以做出關(guān)于是否有可能在創(chuàng)建休眠文件的時(shí)間和接收啟動(dòng)命令的時(shí)間之間計(jì)算設(shè)備的目標(biāo)狀態(tài)可能已經(jīng)改變的進(jìn)一步檢查。如果檢測(cè)到可能
4已經(jīng)引起狀態(tài)改變的事件,則計(jì)算設(shè)備可以執(zhí)行完全啟動(dòng)序列。前述是本發(fā)明的非限制性發(fā)明內(nèi)容,其由所附權(quán)利要求限定。
附圖不旨在按比例繪制。在附圖中,各種圖中圖示的每個(gè)相同的或者近似相同的組件由同樣的數(shù)字表示。為了清楚的目的,不是每個(gè)組件都在每個(gè)圖中被標(biāo)注。在附圖中
圖1是示出計(jì)算設(shè)備中啟動(dòng)序列的概念框圖; 圖2是示出計(jì)算設(shè)備中從休眠序列恢復(fù)的功能框圖; 圖3是示出根據(jù)本發(fā)明的一些實(shí)施例的快速啟動(dòng)序列的功能框圖; 圖4是示出根據(jù)本發(fā)明的一些實(shí)施例響應(yīng)于啟動(dòng)命令而操作計(jì)算機(jī)的方法的流程圖; 圖5是根據(jù)本發(fā)明的一些實(shí)施例響應(yīng)于關(guān)機(jī)命令而操作計(jì)算設(shè)備的方法的流程圖; 圖6是根據(jù)本發(fā)明的一些實(shí)施例可以有條件地執(zhí)行的啟動(dòng)序列的一部分的流程圖; 圖7是圖形用戶界面的一部分的概略圖,通過(guò)該圖形用戶界面用戶可以在關(guān)機(jī)時(shí)在引起計(jì)算設(shè)備不同行為的命令之間做選擇;
圖8是示例性計(jì)算設(shè)備的框圖,其示出了本發(fā)明實(shí)施例可以運(yùn)行的環(huán)境。
具體實(shí)施例方式發(fā)明人已經(jīng)了解并認(rèn)識(shí)到,計(jì)算設(shè)備的用戶體驗(yàn)可以通過(guò)與計(jì)算設(shè)備的關(guān)機(jī)和/ 或啟動(dòng)序列的部分相結(jié)合地使用休眠文件來(lái)改善。這種文件可以在關(guān)機(jī)時(shí)被選擇性地創(chuàng)建并且在啟動(dòng)時(shí)被選擇性地使用,使得計(jì)算設(shè)備的性能匹配用戶期望。即使當(dāng)休眠文件被創(chuàng)建或使用時(shí),也可以執(zhí)行常規(guī)的關(guān)機(jī)或啟動(dòng)序列的部分。為了提供與用戶期望相一致的計(jì)算設(shè)備的操作,休眠可以與計(jì)算設(shè)備的傳統(tǒng)關(guān)機(jī)序列的部分(其將計(jì)算設(shè)備置于目標(biāo)狀態(tài)中)相結(jié)合地使用。那些部分可以包括在接收到關(guān)機(jī)命令時(shí)中斷用戶會(huì)話的操作。另外,作為響應(yīng)關(guān)機(jī)命令的部分,在用戶會(huì)話被中斷之后保留在易失存儲(chǔ)器中的、但意欲保留在非易失存儲(chǔ)器中的信息被移動(dòng)到非易失存儲(chǔ)器。例如, 可以執(zhí)行模仿在常規(guī)的關(guān)機(jī)期間執(zhí)行的那些傳統(tǒng)的緩存沖洗(cache flushing)操作。相反地,在處理啟動(dòng)命令時(shí),從休眠恢復(fù)可以隨同啟動(dòng)序列的一部分一起執(zhí)行。該序列可以包括在操作系統(tǒng)被加載并準(zhǔn)備好運(yùn)行之后發(fā)生的啟動(dòng)序列的任何部分。啟動(dòng)序列的該部分可以包括例如用戶登錄和應(yīng)用的加載。進(jìn)一步地,為了提供與用戶期望一致的操作,作為關(guān)機(jī)或啟動(dòng)的一部分的休眠文件的創(chuàng)建或使用可以取決于動(dòng)態(tài)地確定的事件。在操作會(huì)話期間組件已經(jīng)被重新配置使得直到下一次加載組件才應(yīng)用所述配置變化的情況下,沒(méi)有休眠文件可被創(chuàng)建。響應(yīng)于來(lái)自用戶的下一個(gè)啟動(dòng)命令,計(jì)算機(jī)將檢測(cè)沒(méi)有可用的休眠文件并且通過(guò)重新加載操作系統(tǒng)來(lái)創(chuàng)建目標(biāo)狀態(tài)。可替代地或此外,操作系統(tǒng)可以提供界面,其它組件可以通過(guò)該界面來(lái)注冊(cè)以表明它們需要完全關(guān)機(jī)或者啟動(dòng)有效地起作用。當(dāng)正在執(zhí)行組件被注冊(cè)時(shí),可以響應(yīng)于關(guān)機(jī)命令執(zhí)行完全關(guān)機(jī)序列。進(jìn)一步地,為了與用戶期望一致地操作,在一些實(shí)施例中,可以提供用戶界面,通過(guò)該用戶界面用戶可以指定是執(zhí)行常規(guī)的關(guān)機(jī)還是修改后的關(guān)機(jī)(在修改后的關(guān)機(jī)中,目標(biāo)狀態(tài)被創(chuàng)建然后執(zhí)行休眠過(guò)程)。這種用戶界面可以針對(duì)常規(guī)的關(guān)機(jī)和合并了休眠的修改后的關(guān)機(jī)序列呈現(xiàn)單獨(dú)的選項(xiàng)。計(jì)算設(shè)備可以響應(yīng)于標(biāo)記為常規(guī)關(guān)機(jī)命令的輸入有條件地調(diào)用修改后的關(guān)機(jī)序列。單獨(dú)的命令選項(xiàng)可以通過(guò)界面提供,用戶可以利用該界面指定常規(guī)的關(guān)機(jī)?,F(xiàn)在轉(zhuǎn)向圖1,圖示了完全啟動(dòng)序列的功能框圖。圖1圖示了可以適于根據(jù)發(fā)明實(shí)施例操作的計(jì)算設(shè)備100的功能框圖。在這個(gè)示例中,計(jì)算設(shè)備100包括易失存儲(chǔ)器120。易失存儲(chǔ)器120可以使用DRAM 或者任意其它合適的存儲(chǔ)器組件來(lái)實(shí)現(xiàn)。由計(jì)算設(shè)備100執(zhí)行的啟動(dòng)序列涉及在易失存儲(chǔ)器120中創(chuàng)建狀態(tài)信息,該易失存儲(chǔ)器允許計(jì)算設(shè)備100執(zhí)行本領(lǐng)域已知的計(jì)算操作。在這個(gè)示例中,該狀態(tài)信息被描繪為具有兩個(gè)部分,用戶狀態(tài)信息130和系統(tǒng)狀態(tài)信息140。系統(tǒng)狀態(tài)信息140表示為任意用戶操作而一般地配置計(jì)算設(shè)備100的狀態(tài)信息。相比而言,用戶狀態(tài)信息130表示可以在計(jì)算設(shè)備100由特定用戶操作或?yàn)樘囟ㄓ脩舨僮鞫渲脮r(shí)生成的狀態(tài)信息。根據(jù)本領(lǐng)域已知的啟動(dòng)序列,系統(tǒng)狀態(tài)信息140和用戶狀態(tài)信息130可以被創(chuàng)建在易失存儲(chǔ)器120中。圖1以簡(jiǎn)化的概念性方式圖示了常規(guī)的啟動(dòng)序列中的步驟。例如當(dāng)計(jì)算設(shè)備100被通電時(shí)或者其它表明啟動(dòng)的命令被提供時(shí),可以發(fā)起這種序列。計(jì)算設(shè)備100可以包括本領(lǐng)域已知的組件。那些組件可以包括處理器110。處理器110可以被實(shí)現(xiàn)為微處理器或者微處理器的集合或者處理器內(nèi)核,如本領(lǐng)域已知的。此處描述的操作可以是處理器110執(zhí)行軟件指令的結(jié)果。此外,計(jì)算設(shè)備100可以合并多個(gè)類型的計(jì)算存儲(chǔ)介質(zhì)。在這種情況中,那些類型包括易失存儲(chǔ)器和非易失存儲(chǔ)器。在這個(gè)示例中,圖示了易失存儲(chǔ)器120。各種類型的信息被存儲(chǔ)在非易失存儲(chǔ)器150和152中。啟動(dòng)存儲(chǔ)器巧4也是非易失存儲(chǔ)器。不同物理設(shè)備可以被用于實(shí)現(xiàn)非易失存儲(chǔ)器150和152以及啟動(dòng)存儲(chǔ)器154。例如,非易失存儲(chǔ)器150 可以是盤,諸如旋轉(zhuǎn)硬盤或者固態(tài)驅(qū)動(dòng)。非易失存儲(chǔ)器152類似地可以是盤,并且可以是與用于實(shí)現(xiàn)非易失存儲(chǔ)器150的相同的盤、同一盤上的不同分區(qū)或者完全不同的盤。非易失存儲(chǔ)器154同樣可以是用于實(shí)現(xiàn)非易失存儲(chǔ)器150和152的相同設(shè)備的一部分。但是,在圖示的實(shí)施例中,非易失存儲(chǔ)器巧4可以是連接至處理器110的非易失存儲(chǔ)器芯片。因此,應(yīng)當(dāng)認(rèn)識(shí)到圖1僅表示存儲(chǔ)器架構(gòu)的一個(gè)示例,并且可以使用任意合適的存儲(chǔ)器架構(gòu)。在這個(gè)示例中,圖示出了非易失和易失存儲(chǔ)器。這種配置表示傳統(tǒng)的計(jì)算機(jī)架構(gòu)。 不過(guò),使用這種特定架構(gòu)不是必需的。相反,易失存儲(chǔ)器120是操作存儲(chǔ)器的一個(gè)示例。在計(jì)算設(shè)備100的運(yùn)行期間,處理器110可以主要從易失存儲(chǔ)器120訪問(wèn)軟件和數(shù)據(jù)以執(zhí)行操作。這種存儲(chǔ)器可以是相對(duì)高速的,從而使得可以由處理器110快速地執(zhí)行操作。相比而言,非易失存儲(chǔ)器,諸如非易失存儲(chǔ)器150和152,可能能夠存儲(chǔ)大量數(shù)據(jù), 但可能比易失存儲(chǔ)器120更慢地運(yùn)行。通常,相比于在易失存儲(chǔ)器120中存儲(chǔ)信息的成本, 在這種非易失存儲(chǔ)器中存儲(chǔ)信息的成本可相對(duì)較小。為了達(dá)到成本效率,還有高速運(yùn)行,信息可在非易失存儲(chǔ)器和易失存儲(chǔ)器之間轉(zhuǎn)移。執(zhí)行這些轉(zhuǎn)移以在易失存儲(chǔ)器120中創(chuàng)建支持所期望的計(jì)算設(shè)備100的操作的狀態(tài)??梢源嬖谟?jì)算機(jī)系統(tǒng)的其它組件,但是為了簡(jiǎn)化而省略??赡茉谄渌鼘?shí)施方式中存在的組件的更多細(xì)節(jié)在下面結(jié)合圖8提供。然而,圖1中的簡(jiǎn)化圖示足以解釋啟動(dòng)過(guò)程。
響應(yīng)于啟動(dòng)命令,處理器110可以訪問(wèn)并執(zhí)行啟動(dòng)存儲(chǔ)器154中的指令。啟動(dòng)存儲(chǔ)器巧4可以包含指令,該指令使得處理器110訪問(wèn)非易失存儲(chǔ)器150和152并基于存儲(chǔ)在那些存儲(chǔ)器中的軟件和數(shù)據(jù)而在易失存儲(chǔ)器120中生成合適的狀態(tài)。在啟動(dòng)存儲(chǔ)器154中的指令可以使得處理器110從非易失存儲(chǔ)器150加載軟件。 作為加載軟件組件的一部分,處理器110可以將軟件指令轉(zhuǎn)移至易失存儲(chǔ)器120,該軟件可以從易失存儲(chǔ)器120被執(zhí)行。不過(guò),加載軟件可以包括其他操作,所述其他操作包括一些組件的執(zhí)行。來(lái)自易失存儲(chǔ)器120的一些組件的執(zhí)行可以將軟件從其被存儲(chǔ)的狀態(tài)轉(zhuǎn)換至其被使用的狀態(tài),或者使得其它組件從非易失存儲(chǔ)器轉(zhuǎn)移到易失存儲(chǔ)器120。在加載軟件的過(guò)程中,處理器110可以基于存儲(chǔ)在非易失存儲(chǔ)器152中的數(shù)據(jù)或者其它信息配置軟件。所述信息可以包括例如關(guān)于安裝在計(jì)算設(shè)備100中的硬件組件的信息。因此,圖1圖示了啟動(dòng)過(guò)程的第二和第三步驟可以是從非易失存儲(chǔ)器150獲取軟件和從非易失存儲(chǔ)器152獲取數(shù)據(jù)。在這個(gè)過(guò)程中加載的第一軟件可以建立系統(tǒng)狀態(tài)140。初始加載的軟件可以添加至系統(tǒng)狀態(tài)140驅(qū)動(dòng)器146 (其控制硬件組件)。在加載驅(qū)動(dòng)器之前,與計(jì)算設(shè)備100相關(guān)聯(lián)的硬件組件可以被識(shí)別并且可以選擇合適的驅(qū)動(dòng)器。一旦該驅(qū)動(dòng)器被安裝,操作系統(tǒng)服務(wù)和其它組件可以與通過(guò)該驅(qū)動(dòng)器控制的設(shè)備交互。然后操作系統(tǒng)服務(wù)142可以被加載。這種服務(wù)的一個(gè)示例是文件管理器114。文件管理器144可以組織在易失存儲(chǔ)器中的數(shù)據(jù),使得執(zhí)行的操作系統(tǒng)服務(wù)和應(yīng)用可以訪問(wèn)按照文件組織的非易失存儲(chǔ)器中的數(shù)據(jù)。由操作系統(tǒng)提供的其它服務(wù)可以包括與用戶接口交互,建立網(wǎng)絡(luò)連接或者發(fā)送信息至打印機(jī)。不過(guò),特定的操作系統(tǒng)服務(wù)142不是對(duì)發(fā)明的限制。此外,在建立系統(tǒng)狀態(tài)140的過(guò)程期間,處理器110可以存儲(chǔ)系統(tǒng)狀態(tài)數(shù)據(jù)148。 這種數(shù)據(jù)可以從諸如非易失存儲(chǔ)器152之類的非易失存儲(chǔ)器復(fù)制,或者可以通過(guò)執(zhí)行軟件組件而生成。數(shù)據(jù)例如可以在處理器110執(zhí)行發(fā)現(xiàn)安裝在計(jì)算設(shè)備100內(nèi)的設(shè)備的指令時(shí)被生成。作為特定的示例,在發(fā)現(xiàn)特定網(wǎng)絡(luò)接口卡時(shí),處理器110可以記錄網(wǎng)絡(luò)接口卡的類型或性能作為系統(tǒng)狀態(tài)數(shù)據(jù)148的一部分。然后這種數(shù)據(jù)可以在計(jì)算設(shè)備的運(yùn)行期間用于控制與網(wǎng)絡(luò)接口卡的交互。然而,應(yīng)當(dāng)理解,作為系統(tǒng)狀態(tài)數(shù)據(jù)148存儲(chǔ)的特定數(shù)據(jù)對(duì)于本發(fā)明不是關(guān)鍵的。不考慮特定的操作系統(tǒng)服務(wù)142和在系統(tǒng)狀態(tài)信息140中被創(chuàng)建的系統(tǒng)狀態(tài)數(shù)據(jù) 148,當(dāng)系統(tǒng)狀態(tài)信息140被創(chuàng)建時(shí),計(jì)算設(shè)備100可以準(zhǔn)備好由用戶操作。因此,啟動(dòng)序列可以繼續(xù)進(jìn)行有時(shí)被稱作用戶登錄的過(guò)程。作為用戶登錄的一部分,特定用戶可以被識(shí)別并且另一狀態(tài)信息可以被創(chuàng)建在易失存儲(chǔ)器120中以允許計(jì)算設(shè)備100執(zhí)行用于該用戶的操作。在這個(gè)示例中,用戶狀態(tài)信息130被圖示為包含應(yīng)用指令132和用戶狀態(tài)數(shù)據(jù)134。如同表示操作系統(tǒng)組件的指令和表示系統(tǒng)狀態(tài)的數(shù)據(jù)一樣,應(yīng)用指令132可以基于存儲(chǔ)在易失存儲(chǔ)器150上的軟件被載入存儲(chǔ)器。然而,加載軟件的過(guò)程可能需要執(zhí)行適當(dāng)?shù)嘏渲密浖蛴?jì)算設(shè)備以便運(yùn)行的功能。該配置可以依賴于系統(tǒng)狀態(tài)數(shù)據(jù)148或者用戶狀態(tài)數(shù)據(jù)134。僅作為一個(gè)示例,在加載實(shí)現(xiàn)網(wǎng)頁(yè)瀏覽器的應(yīng)用指令時(shí),處理器110可以從非易失存儲(chǔ)器152或者用戶狀態(tài)數(shù)據(jù)134訪問(wèn)表示用戶數(shù)據(jù)的信息,其識(shí)別用戶已經(jīng)標(biāo)識(shí)為“收藏夾(favorites)”的特定網(wǎng)頁(yè)。在這個(gè)示例中,建立用戶狀態(tài)數(shù)據(jù)130根據(jù)用戶偏好配置網(wǎng)頁(yè)瀏覽器以便執(zhí)行,其將包括呈現(xiàn)為已經(jīng)登錄至計(jì)算設(shè)備100的特定用戶定制的收藏夾的列表。一旦完成用戶登錄,然后用戶可以與計(jì)算設(shè)備100相交互。這些交互可以導(dǎo)致更多軟件被加載或者一些加載的應(yīng)用被關(guān)閉。另外,用戶交互可以設(shè)置參數(shù)或者采取能夠改變用戶狀態(tài)130或系統(tǒng)狀態(tài)140的其他動(dòng)作。這些交互可以繼續(xù)進(jìn)行直到用戶輸入指示終止會(huì)話的意圖的命令。所述會(huì)話可以以多種方式中的一種被終止。例如,當(dāng)用戶完成與計(jì)算設(shè)備100的交互的會(huì)話時(shí),用戶可以注銷和/或使計(jì)算設(shè)備100關(guān)機(jī)。注銷導(dǎo)致用戶會(huì)話被中斷,使得在存儲(chǔ)器120中用戶狀態(tài)信息130不再可用。注銷序列的部分可能需要從系統(tǒng)狀態(tài)140中移除用戶特定設(shè)置。以這種方式,第二用戶可以登錄至計(jì)算設(shè)備100而不被在先用戶影響或者不能夠訪問(wèn)由在先用戶生成的狀態(tài)信息。為實(shí)現(xiàn)該結(jié)果的操作有時(shí)被描述為中斷用戶會(huì)話。注銷之后,系統(tǒng)狀態(tài)140可以被保留,因?yàn)榇鎯?chǔ)器120的電源可以被維持。相比而言,關(guān)機(jī)可以導(dǎo)致用戶狀態(tài)130和系統(tǒng)狀態(tài)140都從易失存儲(chǔ)器120中移除。因?yàn)橐资Т鎯?chǔ)器120的電源被關(guān)閉,易失存儲(chǔ)器120中的任何信息在關(guān)機(jī)序列的末尾都將丟失。因此, 重建該狀態(tài)所需的任何信息在尚未存儲(chǔ)在非易失存儲(chǔ)器中的情況下可以被移動(dòng)至非易失存儲(chǔ)器。注銷和/或關(guān)機(jī)序列不必為啟動(dòng)序列的反過(guò)程,因?yàn)椴恍枰祷貜姆且资Т鎯?chǔ)器生成的任何信息??梢栽诤罄m(xù)的啟動(dòng)時(shí)再次生成該相同的信息。然而,在會(huì)話期間動(dòng)態(tài)地生成的并且不能從非易失存儲(chǔ)器中的信息重建的用戶狀態(tài)130的部分可以作為注銷或關(guān)機(jī)操作的一部分被記錄在非易失存儲(chǔ)器中。類似地,在關(guān)機(jī)時(shí),作為關(guān)機(jī)序列的一部分,在重新執(zhí)行啟動(dòng)序列時(shí)不能被重建的系統(tǒng)狀態(tài)數(shù)據(jù)148的部分可以被轉(zhuǎn)移至非易失存儲(chǔ)器。作為一個(gè)示例,系統(tǒng)狀態(tài)數(shù)據(jù)148可以包含高速緩存,其旨在充當(dāng)存儲(chǔ)在非易失存儲(chǔ)器152中的數(shù)據(jù)項(xiàng)的工作副本。高速緩存通過(guò)在易失存儲(chǔ)器中建立應(yīng)當(dāng)被保留在非易失存儲(chǔ)器中的信息的副本加速了計(jì)算設(shè)備100的操作。相比于訪問(wèn)非易失存儲(chǔ)器中的數(shù)據(jù),在更快速的易失存儲(chǔ)器位置讀取或?qū)懭胪瑯拥男畔⒓铀倭擞?jì)算設(shè)備的操作。當(dāng)易失存儲(chǔ)器中數(shù)據(jù)的副本被改變時(shí),其不再匹配非易失存儲(chǔ)器中相應(yīng)的數(shù)據(jù)。 在高速緩存中的數(shù)據(jù)被稱為“臟的”。為了保持非易失存儲(chǔ)器與高速緩存中的副本同步,臟數(shù)據(jù)不時(shí)地被復(fù)制至非易失存儲(chǔ)器中。通常,當(dāng)計(jì)算機(jī)在其它方面不再繁忙時(shí),臟數(shù)據(jù)被復(fù)制回去。然而,延遲臟數(shù)據(jù)的復(fù)制創(chuàng)建了以下可能性在關(guān)機(jī)時(shí)高速緩存中的數(shù)據(jù)將不匹配非易失存儲(chǔ)器中的數(shù)據(jù)。為了避免不一致,在計(jì)算設(shè)備100關(guān)機(jī)之前,可以執(zhí)行一種有時(shí)被稱為沖洗(flushing)臟數(shù)據(jù)的操作。在這個(gè)操作期間,臟數(shù)據(jù)被復(fù)制至非易失存儲(chǔ)器。雖然圖1中圖示的啟動(dòng)序列是期望的,因?yàn)樗渲糜?jì)算設(shè)備100以便用戶操作,但是在一些實(shí)例中,啟動(dòng)序列可能是令人失望的根源。用戶期望的操作系統(tǒng)和應(yīng)用可能共同地包含數(shù)千個(gè)或者數(shù)萬(wàn)個(gè)組件。因此啟動(dòng)序列可能需要多次從非易失存儲(chǔ)器150和152的讀取操作。因?yàn)檫@些存儲(chǔ)器通常緩慢地運(yùn)行,所以整個(gè)過(guò)程可能是相對(duì)較慢的。另外,除了存儲(chǔ)相關(guān)的操作之外,啟動(dòng)序列可能需要耗時(shí)的操作。此外,例如時(shí)間可能被花費(fèi)在CPU的計(jì)算或設(shè)備初始化上。圖2圖示了用于在易失存儲(chǔ)器中創(chuàng)建狀態(tài)信息的可替代的途徑。圖2圖示了在操作序列期間的計(jì)算設(shè)備100,其中狀態(tài)信息作為從休眠序列恢復(fù)的一部分被創(chuàng)建在易失存儲(chǔ)器120中。休眠是ー種運(yùn)行模式,其可以通過(guò)將狀態(tài)信息從易失存儲(chǔ)器復(fù)制至非易失存儲(chǔ)器創(chuàng)建。這種狀態(tài)信息可以以任何適當(dāng)?shù)姆绞浇M織。在圖2所圖示的實(shí)施例中,該狀態(tài)信息被圖示為存儲(chǔ)在非易失存儲(chǔ)器152的休眠文件210中。在休眠期間,處理器110可以將包括用戶狀態(tài)信息130和系統(tǒng)狀態(tài)信息140的狀態(tài)信息復(fù)制至休眠文件210中。然后通過(guò)關(guān)掉計(jì)算機(jī)系統(tǒng)100的全部或部分組件的電源而進(jìn)入休眠模式。當(dāng)電源被關(guān)掉吋,在易失存儲(chǔ)器120中的狀態(tài)信息丟失。然而,它可以通過(guò)將休眠文件復(fù)制至易失存儲(chǔ)器來(lái)重建為從休眠恢復(fù)。因此,圖2示出了可以通過(guò)處理器110訪問(wèn)存儲(chǔ)在啟動(dòng)存儲(chǔ)器154中的指令開始從休眠序列恢復(fù),其類似于圖1圖示的啟動(dòng)序列。那些指令使得處理器110檢查休眠文件 210的存在。在這個(gè)示例中,在檢測(cè)到休眠文件210吋,處理器110將休眠文件210的內(nèi)容復(fù)制至易失存儲(chǔ)器120。該復(fù)制可能需要直接復(fù)制或者可能需要處理以按照它被復(fù)制的某種方式轉(zhuǎn)換信息,諸如解壓縮該文件。不管是否作為處理的一部分而執(zhí)行處理,最終結(jié)果將導(dǎo)致還原狀態(tài)信息。一旦狀態(tài)信息被還原,用戶可以恢復(fù)在休眠時(shí)被中斷的計(jì)算會(huì)話。系統(tǒng)狀態(tài)數(shù)據(jù)148和用戶狀態(tài)數(shù)據(jù)134都將被返回至易失存儲(chǔ)器120。另外地,應(yīng)用132、操作系統(tǒng)服務(wù)142和驅(qū)動(dòng)器146同樣將被返回至易失存儲(chǔ)器120并準(zhǔn)備執(zhí)行。常常,從休眠恢復(fù)將比執(zhí)行結(jié)合圖1所圖示的完全啟動(dòng)序列更快速。雖然在從休眠恢復(fù)和完全啟動(dòng)期間相同數(shù)量的信息可能最終被放置在易失存儲(chǔ)器120中,但是簡(jiǎn)單地將那些信息從文件中復(fù)制可能比起通過(guò)加載軟件和配置數(shù)據(jù)來(lái)生成它更快速。然而,進(jìn)入休眠模式并然后從休眠中恢復(fù)并不總是適合代替執(zhí)行關(guān)機(jī)和之后的啟動(dòng)序列。申請(qǐng)人了解并認(rèn)識(shí)到響應(yīng)于用戶使計(jì)算設(shè)備關(guān)機(jī)的命令執(zhí)行休眠和隨后響應(yīng)于來(lái)自用戶的啟動(dòng)計(jì)算設(shè)備的命令從休眠中恢復(fù)可能不會(huì)導(dǎo)致滿足用戶期望的計(jì)算設(shè)備的操作。發(fā)明人已經(jīng)識(shí)別出ー種在不破壞現(xiàn)有用戶期望的情況下提供更快的操作體驗(yàn)的方式。圖3圖示了功能框圖,其中計(jì)算設(shè)備100可以有條件地將休眠合并到關(guān)機(jī)序列中。另外,計(jì)算設(shè)備可以有條件地在啟動(dòng)序列中合并從休眠恢復(fù)。在圖3圖示的實(shí)施例中,計(jì)算設(shè)備100被示出包含復(fù)制到非易失存儲(chǔ)器152中的狀態(tài)信息。在這個(gè)實(shí)施例中,狀態(tài)信息被格式化為休眠文件310。休眠文件310可以是如本領(lǐng)域已知的休眠文件的形式。然而應(yīng)當(dāng)理解可以使用任何合適的格式將狀態(tài)信息存儲(chǔ)在非易失存儲(chǔ)器中。與存儲(chǔ)在休眠文件210中的信息相比,休眠文件310包含系統(tǒng)狀態(tài)140。用戶狀態(tài) 130不需要被存儲(chǔ)為休眠文件310的一部分;不過(guò)在一些實(shí)施例,用戶狀態(tài)的部分可以被存儲(chǔ)。因此,當(dāng)用戶提供啟動(dòng)命令至計(jì)算設(shè)備100吋,處理器110可以開始執(zhí)行來(lái)自啟動(dòng)存儲(chǔ)器154的指令,類似于在圖2所圖示的操作模式中所發(fā)生的。在檢測(cè)到休眠文件310的存在吋,處理器110可以將休眠文件310的內(nèi)容復(fù)制到易失存儲(chǔ)器120中。該復(fù)制在易失存儲(chǔ)器120中重建系統(tǒng)狀態(tài)140。這個(gè)狀態(tài)可以模擬加載操作系統(tǒng)軟件后但是用戶登錄發(fā)生之前在圖1所圖示的啟動(dòng)序列期間計(jì)算設(shè)備100的狀態(tài)。因此,為了完成易失存儲(chǔ)器120中狀態(tài)信息的創(chuàng)建,處理器110可以執(zhí)行上面結(jié)合圖1所描述的創(chuàng)建系統(tǒng)狀態(tài)之后發(fā)生的啟動(dòng)序列的步驟。在這種情況下,那些操作可以包括加載應(yīng)用指令132和通過(guò)從非易失存儲(chǔ)器150讀取軟件指令來(lái)創(chuàng)建用戶狀態(tài)數(shù)據(jù)134以及基于非易失存儲(chǔ)器152中的數(shù)據(jù)配置它。在完成這些操作序列吋,易失存儲(chǔ)器120中的狀態(tài)信息可以與作為執(zhí)行上面結(jié)合圖1所描述的啟動(dòng)序列的結(jié)果而加載的那些狀態(tài)信息相比。然而,響應(yīng)使用圖3所圖示的序列的啟動(dòng)命令所需的時(shí)間可能短于執(zhí)行如結(jié)合圖1所描述的啟動(dòng)序列所需要的時(shí)間。在圖3所圖示的示例中,休眠文件310雖然具有與休眠文件210 (圖2)相同的格式,但是包含不同的信息。此外,休眠文件310以與休眠文件210不同的方式創(chuàng)建。如上面所描述的,在休眠指令吋,休眠文件210 (圖2)記錄如在易失存儲(chǔ)器120中所呈現(xiàn)的計(jì)算設(shè)備100的狀態(tài)。相比而言,響應(yīng)于關(guān)機(jī)命令,創(chuàng)建休眠文件310。然而,在休眠文件310中捕獲的狀態(tài)信息不表示在關(guān)機(jī)命令時(shí)計(jì)算設(shè)備100的完全狀態(tài)。相反,可以執(zhí)行一些處理以將計(jì)算設(shè)備100置于目標(biāo)狀態(tài),此時(shí)可以創(chuàng)建休眠文件310。在所圖示的實(shí)施例中,目標(biāo)狀態(tài)表示在加載操作系統(tǒng)但還沒(méi)有用戶登錄到計(jì)算設(shè)備 100時(shí)可能已生成的狀態(tài)??梢灾辽俨糠值赝ㄟ^(guò)執(zhí)行關(guān)機(jī)序列的一部分來(lái)創(chuàng)建這種目標(biāo)狀態(tài)。例如,所述一部分可以包括注銷計(jì)算設(shè)備100的一個(gè)或多個(gè)用戶,或者以其它方式中斷用戶連接。這種處理可以使用本領(lǐng)域已知的技術(shù)執(zhí)行??商娲鼗蛘叽送饪梢詧?zhí)行其它處理以將計(jì)算設(shè)備100置于目標(biāo)狀態(tài)。例如,處理可以包括從系統(tǒng)狀態(tài)數(shù)據(jù)148中沖洗臟數(shù)據(jù)。此外,如上面所記錄的,為了保存計(jì)算設(shè)備100對(duì)關(guān)機(jī)命令的反應(yīng)的用戶期望,涉及休眠的關(guān)機(jī)序列可以基于在那時(shí)可能存在的條件而有條件地執(zhí)行。類似地,啟動(dòng)序列可以有條件地涉及從休眠中恢復(fù)。圖4、5和6圖示了這種有條件的處理。圖4圖示了諸如可以由計(jì)算設(shè)備100響應(yīng)于啟動(dòng)命令而執(zhí)行的啟動(dòng)序列。啟動(dòng)命令可以例如通過(guò)用戶按壓按鈕、供應(yīng)電源給計(jì)算設(shè)備100或者以其它方式發(fā)起計(jì)算設(shè)備 100的操作而被提供給計(jì)算設(shè)備100。不管發(fā)起啟動(dòng)序列的方式如何,所述過(guò)程可開始于框410。在框410處,處理器110 可以從啟動(dòng)存儲(chǔ)器IM取得并執(zhí)行發(fā)起該過(guò)程的指令。然而,在該過(guò)程稍后的步驟中,指令可以從非易失存儲(chǔ)器150中取得或者從任何其它合適的來(lái)源處取得,包括從在網(wǎng)絡(luò)連接上取得。不管用于控制處理器110以發(fā)起啟動(dòng)序列的指令的來(lái)源如何,依賴于是否在非易失存儲(chǔ)器152中檢測(cè)到休眠文件,所述過(guò)程可在決策框412處分支。如果檢測(cè)到,則所述過(guò)程可以分支至端點(diǎn)A,以繼續(xù)如圖6中所圖示的過(guò)程。相反地,如果沒(méi)有休眠文件存在,則所述過(guò)程可以前進(jìn)到子過(guò)程450。子過(guò)程450可以表示實(shí)現(xiàn)通常如本領(lǐng)域已知的啟動(dòng)序列的操作序列。在這個(gè)示例中,在框420、422、424、426、428、430和432處的處理可以表示如已知的啟動(dòng)序列的處理。然而,應(yīng)當(dāng)理解,可以使用任何合適的技術(shù)來(lái)使用任何合適的操作序列。不管所使用的特定途徑如何,在子過(guò)程450內(nèi)的處理可開始于框420。在框420處,處理器110執(zhí)行操作系統(tǒng)加載器。這種加載器可以是軟件組件,當(dāng)其被執(zhí)行時(shí),將操作系統(tǒng)的組件從非易失存儲(chǔ)器150加載至易失存儲(chǔ)器120。在框422處,配置操作系統(tǒng)的作為系統(tǒng)狀態(tài)140的一部分而被創(chuàng)建的映像的操作可以被配置。這種配置可包含任何合適的處理,包括設(shè)置載入易失存儲(chǔ)器的組件的參數(shù)值或者執(zhí)行配置系統(tǒng)狀態(tài)140的其它方面的指令。同樣作為啟動(dòng)子過(guò)程450的一部分,計(jì)算設(shè)備100可以檢測(cè)設(shè)備。任何合適的設(shè)備可以被檢測(cè)到,諸如打印機(jī)、網(wǎng)絡(luò)接ロ或者其它連接至計(jì)算設(shè)備100的外圍設(shè)備?;跈z測(cè)到的設(shè)備,可以在框似6處執(zhí)行驅(qū)動(dòng)器加載器。驅(qū)動(dòng)器加載器可以是使用已知的技術(shù)構(gòu)造的軟件組件,其加載驅(qū)動(dòng)器。驅(qū)動(dòng)器加載器的執(zhí)行可以涉及識(shí)別并加載用于所檢測(cè)到的設(shè)備的驅(qū)動(dòng)器軟件。一旦驅(qū)動(dòng)器已經(jīng)被加載,它們可以在框4 處開始。這個(gè)處理可以使得所述驅(qū)動(dòng)器和它們控制的設(shè)備能夠由在計(jì)算設(shè)備100上加載的其它組件使用。所述過(guò)程可以繼續(xù)至框430,在此處可以開始操作系統(tǒng)服務(wù)。一旦設(shè)備和操作系統(tǒng)的服務(wù)可供使用,處理可前進(jìn)至框432。在框432處應(yīng)用組件可以被加載??梢栽谟脩舻卿涍^(guò)程部分處使用如本領(lǐng)域已知的技術(shù)或者以任何其它合適的方式來(lái)執(zhí)行該處理。隨著應(yīng)用組件被加載,圖4中圖示的過(guò)程可以根據(jù)在框432中加載的應(yīng)用組件的性質(zhì)而分支。在決策框444處的分支允許計(jì)算設(shè)備改善可能在當(dāng)計(jì)算設(shè)備100使用休眠而非常規(guī)的關(guān)機(jī)序列執(zhí)行關(guān)機(jī)序列時(shí)ー個(gè)或多個(gè)應(yīng)用組件沒(méi)有正確地運(yùn)行的情況下出現(xiàn)的問(wèn)題。一些組件可能需要重啟,意味著當(dāng)計(jì)算設(shè)備下次通電時(shí)執(zhí)行完全啟動(dòng)序列,使得將使用加載過(guò)程重建狀態(tài)。作為示例,如果如圖3中所圖示的合并了休眠的關(guān)機(jī)序列被執(zhí)行,則根據(jù)計(jì)算設(shè)備100啟動(dòng)的時(shí)間而執(zhí)行不同操作的應(yīng)用組件可以不按照用戶期望而執(zhí)行。對(duì)于那些組件,當(dāng)執(zhí)行后續(xù)啟動(dòng)吋,如果該啟動(dòng)基于從休眠中還原而被執(zhí)行,則所述應(yīng)用組件可基于從休眠文件310中還原的狀態(tài)信息而被配置。該狀態(tài)信息可以包含計(jì)算機(jī)上次執(zhí)行完全啟動(dòng)序列的時(shí)間的指示。因此,在基于該狀態(tài)信息而加載時(shí)配置的應(yīng)用組件將不被配置為具有表示發(fā)起圖4中所圖示的啟動(dòng)序列時(shí)的時(shí)間值。相比于可能的用戶期望,該組件將被配置為具有表示前次執(zhí)行完全啟動(dòng)序列時(shí)間的時(shí)間值。在這種情況下,應(yīng)用組件的行為將基干與用戶期望不同的時(shí)間,因?yàn)橛脩魧⑵谕麘?yīng)用組件基于圖4的過(guò)程開始時(shí)的時(shí)間而被配置。因此,當(dāng)這種應(yīng)用組件被加載在計(jì)算設(shè)備100上吋,可能期望確定組件響應(yīng)于來(lái)自用戶的關(guān)機(jī)命令需要完全關(guān)機(jī)序列。當(dāng)這種組件在執(zhí)行吋,計(jì)算設(shè)備可以通過(guò)執(zhí)行完全關(guān)機(jī)序列以響應(yīng)關(guān)機(jī)命令。以這種方式,在隨后接收到啟動(dòng)命令時(shí),將沒(méi)有休眠文件可用, 并且如例如圖1所圖示的完全啟動(dòng)序列將被執(zhí)行。在其他時(shí)候,如圖3中所圖示的,計(jì)算設(shè)備可以使用合并休眠的關(guān)機(jī)序列來(lái)響應(yīng)關(guān)機(jī)命令。為了支持這種與用戶期望一致的行為,可以為應(yīng)用程序提供ー種指明它需要執(zhí)行完全關(guān)機(jī)和完全啟動(dòng)序列的機(jī)制。在圖4的示例中,可以通過(guò)由計(jì)算設(shè)備100的操作系統(tǒng)支持的應(yīng)用編程接ロ(API)來(lái)實(shí)現(xiàn)該機(jī)制。即使在所有的實(shí)例中都不需要完全關(guān)機(jī)和完全啟動(dòng)序列的應(yīng)用組件也可以通過(guò)這種API放置調(diào)用。因此,如果在框440確定正在被加載的應(yīng)用組件需要重啟,則處理可以分支至框 442。在框442處,應(yīng)用編程接ロ可被調(diào)用以注冊(cè)該應(yīng)用組件。在這個(gè)示例中,API允許操作系統(tǒng)追蹤需要重啟的應(yīng)用組件在啟動(dòng)命令隨后被接收到時(shí)是否仍然在執(zhí)行。然而,應(yīng)當(dāng)理解,這種調(diào)用可以在任何時(shí)刻做出。例如被重新配置或者以其它方式遭遇其確定要執(zhí)行完全關(guān)機(jī)和完全啟動(dòng)序列的操作狀態(tài)的任何組件可以通過(guò)API進(jìn)行調(diào)用。如果沒(méi)有通過(guò)API進(jìn)行這種調(diào)用,則當(dāng)隨后接收到關(guān)機(jī)命令吋,如圖3中所示,操作系統(tǒng)可以確定合并了的休眠的關(guān)機(jī)序列可以被使用。相反地,如果已經(jīng)通過(guò)API做出了調(diào)用以表明請(qǐng)求完全關(guān)機(jī)和完全啟動(dòng)序列,則操作系統(tǒng)可以執(zhí)行完全關(guān)機(jī)序列,而不創(chuàng)建休眠文件,使得在隨后接收到啟動(dòng)命令吋,可以執(zhí)行完全啟動(dòng)序列。任何合適的機(jī)制可以被用來(lái)確定應(yīng)用組件是否需要重啟,該重啟涉及完全關(guān)機(jī)和后續(xù)的完全啟動(dòng)序列。作為ー個(gè)示例,應(yīng)用組件可以被編程以調(diào)用在框422指示的API??商娲兀僮飨到y(tǒng)可以包含計(jì)算機(jī)可執(zhí)行指令以在應(yīng)用組件被加載時(shí)分析應(yīng)用組件以識(shí)別可能需要重啟的功能。在那種情況下,在決策框440處的處理可以涉及在應(yīng)用組件被加載時(shí)分析每個(gè)應(yīng)用組件。然而,在決策框440處可以使用任何合適的技術(shù)以基于加載的應(yīng)用組件確定是否可能需要重啟。雖然圖4圖示了基于加載的應(yīng)用組件確定是否需要重啟,但是對(duì)于計(jì)算設(shè)備100 的其他元件可以執(zhí)行類似的處理。例如,對(duì)于操作系統(tǒng)組件可以執(zhí)行類似的處理??商娲鼗蛘叽送猓梢曰诎惭b在計(jì)算設(shè)備100中的設(shè)備或者計(jì)算設(shè)備100所連接的設(shè)備執(zhí)行類似的處理。不管在可以指示需要重啟的決策框440處所識(shí)別的條件如何,如果識(shí)別出那些條件,則處理可以分支至框442,在此處指示被存儲(chǔ)。該指示可以響應(yīng)于來(lái)自用戶的關(guān)機(jī)命令觸發(fā)完全關(guān)機(jī),或者可替代地或者此外,可以響應(yīng)于啟動(dòng)的用戶命令觸發(fā)完全啟動(dòng)序列,即使休眠文件是可得到的。如果沒(méi)有檢測(cè)到那些條件,處理可以前進(jìn)至框444。在框444處,數(shù)據(jù)可以被收集以允許計(jì)算設(shè)備100確定使用合并了休眠的啟動(dòng)序列的有效性。在這個(gè)示例中,在框444處的處理記錄執(zhí)行子過(guò)程450的時(shí)間,在這個(gè)示例中子過(guò)程450指示完全啟動(dòng)序列的執(zhí)行。該信息可以以任何合適的方式記錄。例如,關(guān)于啟動(dòng)時(shí)間的信息可以被記錄在非易失存儲(chǔ)器152中。信息可以被記錄為單獨(dú)的啟動(dòng)時(shí)間,指示每當(dāng)執(zhí)行這樣的完全啟動(dòng)序列時(shí)執(zhí)行完全啟動(dòng)序列所需的時(shí)間。可替代地,信息可以被記錄為在多個(gè)完全啟動(dòng)序列上的運(yùn)行平均值,或者以任何其他合適的方式記錄。在框444處,關(guān)于啟動(dòng)時(shí)間的信息可以任何合適的方式被確定。作為ー個(gè)示例,可以在發(fā)起子過(guò)程450時(shí)啟動(dòng)計(jì)時(shí)器,并且在處理到達(dá)框444時(shí)讀取。然而,其它時(shí)間測(cè)量技術(shù)是公知的并且可以被應(yīng)用在框444處。一旦記錄啟動(dòng)時(shí)間,處理前進(jìn)至框446。此處,可以發(fā)生計(jì)算設(shè)備100的常規(guī)操作。 這種操作可以持續(xù),直到接收到關(guān)機(jī)命令。圖5圖示了可以響應(yīng)于這種關(guān)機(jī)命令而執(zhí)行的處理。圖5中圖示的過(guò)程包括框 510,其表示使用本領(lǐng)域中已知技術(shù)運(yùn)行計(jì)算設(shè)備100。在運(yùn)行期間,可接收到關(guān)機(jī)命令 512。關(guān)機(jī)命令512可以由用戶以任何合適的方式輸入而生成,諸如通過(guò)圖形用戶界面或者硬件控制而生成。在一些實(shí)施方式中,計(jì)算設(shè)備100可以支持可以觸發(fā)關(guān)機(jī)序列的多種類型的用戶輸入。圖7是圖形用戶界面的圖示,用戶通過(guò)該圖形用戶界面可以輸入關(guān)機(jī)命令。在這個(gè)示例中,通過(guò)按壓出現(xiàn)在計(jì)算機(jī)操作系統(tǒng)所呈現(xiàn)的用戶界面上的標(biāo)記為“開始”的按鈕來(lái)調(diào)
12用圖形用戶界面710。然而,應(yīng)當(dāng)理解,不同的操作系統(tǒng)支持不同的界面,并且可以使用任何合適的技術(shù)調(diào)用用戶界面。響應(yīng)于按壓該按鈕,可以使用本領(lǐng)域的已知技術(shù)由操作系統(tǒng)呈現(xiàn)圖形用戶界面 710。通過(guò)圖形用戶界面710,計(jì)算設(shè)備100的用戶可以在多個(gè)可能的命令中選擇用于終止計(jì)算設(shè)備上的當(dāng)前會(huì)話。此處,示出了三個(gè)選項(xiàng)。此處命令714被標(biāo)記為“關(guān)機(jī)”。在許多計(jì)算設(shè)備上這種關(guān)機(jī)命令是常規(guī)的,并且已經(jīng)傳統(tǒng)地被用于指示計(jì)算設(shè)備應(yīng)當(dāng)執(zhí)行完全關(guān)機(jī)序列。然而,在圖5中所圖示的實(shí)施方式中,關(guān)機(jī)命令714的用戶選擇可導(dǎo)致計(jì)算設(shè)備100的操作系統(tǒng)確定是否改為執(zhí)行合并了休眠的部分關(guān)機(jī)序列。在這個(gè)實(shí)施方式中,,操作系統(tǒng)以一定方式使用對(duì)于用戶具有語(yǔ)義含義的命令的標(biāo)簽,該方式與該含義潛在地不一致。雖然如此,有條件地處理保存了用戶的期望。然而,如果用戶想要保證執(zhí)行完全關(guān)機(jī)序列,則為此原因可以提供具有不同標(biāo)簽的単獨(dú)的命令。如果用戶期望命令計(jì)算設(shè)備執(zhí)行完全關(guān)機(jī),而不創(chuàng)建休眠文件,以使得在隨后的啟動(dòng)命令時(shí)將通過(guò)從非易失存儲(chǔ)器150中加載軟件并使用來(lái)自非易失存儲(chǔ)器152的數(shù)據(jù)配置它來(lái)生成操作系統(tǒng)狀態(tài),則用戶可以選擇命令715。在這個(gè)示例中,命令715被標(biāo)記為“重啟”。這種標(biāo)記被用于向用戶標(biāo)識(shí)出將要執(zhí)行完全關(guān)機(jī)序列,以使得在隨后的啟動(dòng)命令時(shí)將執(zhí)行完全啟動(dòng)序列。在這種情況中,命令715執(zhí)行的動(dòng)作類似于常規(guī)的計(jì)算系統(tǒng)中在發(fā)出“關(guān)機(jī)”命令時(shí)所執(zhí)行的那些動(dòng)作。然而,在呈現(xiàn)圖形用戶界面710的該計(jì)算設(shè)備中, 與傳統(tǒng)的關(guān)機(jī)命令相關(guān)聯(lián)的語(yǔ)義標(biāo)簽已經(jīng)被應(yīng)用到命令714。因此,命令715被給予不同的標(biāo)簽。圖形用戶界面710還可以包含用于終止用戶會(huì)話的其它選項(xiàng)。在這個(gè)示例中,圖形用戶界面710包括命令716。在選擇命令716吋,計(jì)算設(shè)備100通過(guò)中斷用于指定的用戶的會(huì)話而響應(yīng)。計(jì)算設(shè)備的這種行為是本領(lǐng)域中已知的。在這種情況下,命令716可相應(yīng)于常規(guī)的注銷命令。然而,許多合適的命令選項(xiàng)可以被包括在圖形用戶界面710中,在所圖示的實(shí)施例中,只有命令714或者716的選擇導(dǎo)致發(fā)起圖5中所圖示的過(guò)程。不管接收關(guān)機(jī)命令的方式和它的性質(zhì)如何,響應(yīng)于該命令的接收,處理可以從框 510轉(zhuǎn)換至框514。在框514處,可以執(zhí)行關(guān)機(jī)序列的開始部分。在框514處執(zhí)行的關(guān)機(jī)序列的這部分可涉及常規(guī)處理。在這個(gè)示例中,在框514處的處理終止計(jì)算設(shè)備100上的任何用戶會(huì)話(ー個(gè)或多個(gè))。如上面結(jié)合圖1所描述的,這種處理可以涉及關(guān)閉應(yīng)用和保存用戶狀態(tài)數(shù)據(jù)134或者執(zhí)行任何其它合適的動(dòng)作。作為那些動(dòng)作的結(jié)果,從ー個(gè)用戶會(huì)話持續(xù)至下一個(gè)用戶會(huì)話的用戶狀態(tài)130中的任何信息從用戶狀態(tài)數(shù)據(jù)134移動(dòng)至非易失存儲(chǔ)器,諸如非易失存儲(chǔ)器152。不管用來(lái)終止用戶會(huì)話或其它持續(xù)用戶狀態(tài)數(shù)據(jù)134所采取的特定步驟如何,當(dāng)完成那些步驟時(shí),處理可以前進(jìn)至決策框516。在決策框516處,圖5的過(guò)程可以根據(jù)是否已經(jīng)請(qǐng)求重啟而分支??梢砸匀魏魏线m的方式執(zhí)行框516處的處理。在決策框516處可以應(yīng)用任何一個(gè)或多個(gè)標(biāo)準(zhǔn)以確定是否已經(jīng)請(qǐng)求重啟。作為ー個(gè)示例,在決策框516處可以使用用戶輸入來(lái)確定是否已經(jīng)請(qǐng)求重啟。例如,當(dāng)用戶選擇重啟命令715時(shí)(圖7),該用戶選擇可以充當(dāng)已經(jīng)請(qǐng)求重啟的指示。作為另ー個(gè)示例,結(jié)合圖4描述了應(yīng)用組件可以請(qǐng)求重啟,諸如通過(guò)在框442處調(diào)用API (圖4)。如果已經(jīng)做出了該調(diào)用,在決策框516處的處理可以確定已經(jīng)請(qǐng)求了重啟。 雖然在一些實(shí)施例中,在決策框516處的處理可取決于多個(gè)標(biāo)準(zhǔn)。例如,處理可以確定應(yīng)用組件已經(jīng)通過(guò)在框442處調(diào)用API而注冊(cè)了對(duì)重啟的請(qǐng)求。在決策框516處的另一處理可以確定這種請(qǐng)求是否應(yīng)當(dāng)被認(rèn)可。這種處理可以包括,例如確定在執(zhí)行圖5的過(guò)程的時(shí)候該請(qǐng)求的應(yīng)用組件是否仍然在執(zhí)行。可替代地或者此外,在決策框516處的處理可能需要確定請(qǐng)求的組件是否具有足夠的訪問(wèn)權(quán)限來(lái)命令重啟。不管在決策框516處執(zhí)行的處理的性質(zhì)如何,作為該處理的結(jié)果,如果確定已經(jīng)請(qǐng)求重啟,則過(guò)程分支至框530。在這種情況下,框530表示完全關(guān)機(jī)序列。這種完全關(guān)機(jī)序列可以按照本領(lǐng)域已知的方式執(zhí)行。其可能需要中斷用戶會(huì)話、沖洗臟數(shù)據(jù)并且使計(jì)算設(shè)備掉電。不管執(zhí)行關(guān)機(jī)序列所采取的特定步驟如何,在完成吋,圖5的過(guò)程可以終止,使計(jì)算設(shè)備100處于掉電狀態(tài)。相反地,如果在決策框516處沒(méi)有請(qǐng)求重啟,所述處理可以前進(jìn)至決策框518。在決策框518處的處理是有條件的處理的ー個(gè)示例,以確定是否應(yīng)當(dāng)執(zhí)行完全關(guān)機(jī)序列或者應(yīng)當(dāng)執(zhí)行跟隨有休眠的部分關(guān)機(jī)。一般地,在決策框518處的處理可能需要應(yīng)用任意合適的策略。在接收到關(guān)機(jī)命令時(shí)可評(píng)估這種策略。在圖示的示例中,應(yīng)用的策略涉及使用休眠實(shí)現(xiàn)的時(shí)間節(jié)約。在決策框518處,可確定是否通過(guò)從休眠中啟動(dòng)實(shí)現(xiàn)了時(shí)間節(jié)約??梢酝ㄟ^(guò)比較所記錄的信息來(lái)做出這種確定,所述信息是關(guān)于使用完全啟動(dòng)序列或者從跟隨有部分啟動(dòng)序列的休眠中恢復(fù)而將計(jì)算設(shè)備100置于運(yùn)行狀態(tài)的相對(duì)時(shí)間。關(guān)于用于執(zhí)行完全啟動(dòng)的時(shí)間的信息可以基于例如在框444處存儲(chǔ)的信息(圖4)。關(guān)于從休眠恢復(fù)之后將計(jì)算設(shè)備100置于運(yùn)行狀態(tài)所需要的時(shí)間的信息可以按照類似的方式基于在圖6的過(guò)程執(zhí)行的結(jié)尾處記錄的信息而確定。如果基于跟隨有部分啟動(dòng)的恢復(fù)創(chuàng)建運(yùn)行狀態(tài)的時(shí)間比執(zhí)行完全啟動(dòng)的時(shí)間更慢,則所述處理可從決策框518分支至子過(guò)程530。相反地,如果在決策框518的處理確定跟隨有啟動(dòng)序列的部分執(zhí)行的從休眠恢復(fù)是更優(yōu)選的,則所述處理可以前進(jìn)至決策框520。在決策框520處,可執(zhí)行進(jìn)一歩的有條件的處理以確定計(jì)算設(shè)備100是否處于適合于合并了休眠的部分關(guān)機(jī)序列的狀態(tài)。這種處理可能需要確定在當(dāng)前會(huì)話期間配置改變是否針對(duì)任何組件而被指定。如果這種配置改變要求重啟以變得有效,則涉及休眠的關(guān)機(jī)可能不會(huì)實(shí)現(xiàn)用戶對(duì)于計(jì)算設(shè)備100的行為的期望,因?yàn)檫x擇關(guān)機(jī)命令714 (圖7)與傳統(tǒng)地將引起計(jì)算設(shè)備在下次啟動(dòng)時(shí)應(yīng)用配置改變的標(biāo)簽相關(guān)聯(lián)。如果計(jì)算設(shè)備100響應(yīng)于具有傳統(tǒng)地用于指示完全啟動(dòng)的標(biāo)簽的命令而實(shí)現(xiàn)涉及休眠的關(guān)機(jī)序列,則在隨后啟動(dòng)吋,那些組件的狀態(tài)將恢復(fù)它們先前的狀態(tài)而不是基于配置改變的狀態(tài)。因此,可能存在一種情況,在該情況下調(diào)用可能在其它方面與完全關(guān)機(jī)序列相關(guān)聯(lián)的命令的用戶期望將不會(huì)表現(xiàn)出所期望的行為。為了避免計(jì)算設(shè)備100以與所期望的用戶行為不一致的方式運(yùn)行,圖5的過(guò)程可以根據(jù)計(jì)算設(shè)備是否自動(dòng)地確定應(yīng)當(dāng)執(zhí)行完全關(guān)機(jī)序列以便獲得與用戶期望一致的操作而進(jìn)行分支。如果是,則過(guò)程分支至子過(guò)程 530,此處如上面所描述,執(zhí)行完全關(guān)機(jī)序列。在所圖示的實(shí)施例中,通過(guò)確定在當(dāng)前會(huì)話期間是否任意組件已經(jīng)改變配置設(shè)置來(lái)識(shí)別將要在其下執(zhí)行完全關(guān)機(jī)序列的條件。如本領(lǐng)域已知的用于做出這種確定的技術(shù)可以被應(yīng)用在決策框520處。作為ー個(gè)示例,改變執(zhí)行組件的配置設(shè)置的處理可能需要設(shè)置標(biāo)志(flag)或者以其它方式記錄配置改變的指示。在那種情況下,在決策框520處的處理可能需要檢查狀態(tài)標(biāo)志的值。然而,可替代地或者此外可以使用其它合適的處理。例如,處理可能需要掃描ー個(gè)或多個(gè)存儲(chǔ)器位置以檢測(cè)未應(yīng)用的配置設(shè)置。不管在決策框520處如何做出確定,如果不存在需要完全關(guān)機(jī)和/或隨后完全啟動(dòng)的條件,則所述處理可以前進(jìn)至決策框522。在框522處,執(zhí)行將計(jì)算設(shè)備100完全置于目標(biāo)狀態(tài)的操作,從該目標(biāo)狀態(tài)發(fā)生休眠。如上面結(jié)合圖3所描述,那個(gè)目標(biāo)狀態(tài)可相應(yīng)于如下狀態(tài)在該狀態(tài)下,運(yùn)行系統(tǒng)狀態(tài)被保持但是所有用戶會(huì)話已經(jīng)中斷,并且在隨后的用戶登錄時(shí)所需要的任何用戶狀態(tài)已經(jīng)以合適的形式保存在非易失存儲(chǔ)器中??梢詧?zhí)行以實(shí)現(xiàn)這種目標(biāo)狀態(tài)的操作的ー個(gè)示例是沖洗臟數(shù)據(jù)??商娲鼗蛘叽送?,如果作為系統(tǒng)狀態(tài)數(shù)據(jù)148的一部分存儲(chǔ)的其它數(shù)據(jù)涉及已登錄用戶的會(huì)話,則在框 522處的處理可能需要將該數(shù)據(jù)存儲(chǔ)在非易失存儲(chǔ)器152中。不管執(zhí)行何種操作以完全地實(shí)現(xiàn)目標(biāo)狀態(tài),所述處理可隨后前進(jìn)至框524???524,稍后可被用于確認(rèn)休眠文件的適宜性的信息可以被采用,其中休眠文件用于在計(jì)算設(shè)備100上重建目標(biāo)狀態(tài)。作為ー個(gè)示例,ー些計(jì)算設(shè)備可以使用多種操作系統(tǒng)或者操作系統(tǒng)的多種實(shí)例來(lái)配置。作為操作系統(tǒng)的特定實(shí)例的關(guān)機(jī)的一部分而創(chuàng)建的休眠文件可以被用于僅響應(yīng)于啟動(dòng)操作系統(tǒng)的相同實(shí)例的命令而還原操作系統(tǒng)狀態(tài)。然而,計(jì)算設(shè)備可能使用不同于創(chuàng)建休眠文件時(shí)所使用的操作系統(tǒng)的操作系統(tǒng)操作的可能性產(chǎn)生了在休眠文件被創(chuàng)建的時(shí)間和將基于該文件觸發(fā)狀態(tài)重建的隨后的啟動(dòng)命令的時(shí)間之間操作系統(tǒng)將在計(jì)算設(shè)備上運(yùn)行的可能性。另ー個(gè)操作系統(tǒng)或者相同操作系統(tǒng)的實(shí)例進(jìn)行的介入操作可能產(chǎn)生以下可能性在休眠文件中捕獲的狀態(tài)不再表示應(yīng)當(dāng)被創(chuàng)建以便實(shí)現(xiàn)與用戶期望一致的操作的計(jì)算設(shè)備的狀態(tài)。例如,在利用第一操作系統(tǒng)進(jìn)行關(guān)機(jī)操作之后,如果用戶已經(jīng)加載了第二操作系統(tǒng)并且對(duì)由第一操作系統(tǒng)使用的任何數(shù)據(jù)或其它組件進(jìn)行改變,那么在這個(gè)實(shí)例中從休眠文件中恢復(fù)將導(dǎo)致創(chuàng)建不反映介入的用戶改變的狀態(tài)。因此,可以使用一種機(jī)制來(lái)確定在后續(xù)的啟動(dòng)命令時(shí)休眠文件是否適合于用來(lái)重建計(jì)算設(shè)備100的操作狀態(tài)。在圖5中所圖示的實(shí)施例中,那種機(jī)制需要存儲(chǔ)休眠文件被創(chuàng)建時(shí)的信息。在這個(gè)特定示例中,該信息是由文件系統(tǒng)維護(hù)的序列號(hào)。特別地,序列號(hào)可以由NTFS文件系統(tǒng)或者可以在計(jì)算設(shè)備上運(yùn)行的其它文件系統(tǒng)來(lái)保持。這種序列號(hào)可以在每當(dāng)盤存儲(chǔ)器的卷(volume)被加載時(shí)遞増。因此,在框5 處的處理可能需要存儲(chǔ)與包含休眠文件以及與操作系統(tǒng)關(guān)聯(lián)的其它數(shù)據(jù)的卷相關(guān)聯(lián)的NTFS序列號(hào)。這個(gè)值被存儲(chǔ)在非易失存儲(chǔ)器中,使得可以結(jié)合后續(xù)的啟動(dòng)命令訪問(wèn)它。不管在框5 處記錄以允許隨后確定休眠文件可用性的特定信息如何,所述處理可以前進(jìn)至子過(guò)程526。子過(guò)程5 可以涉及存儲(chǔ)休眠文件??梢允褂门c計(jì)算設(shè)備休眠相關(guān)聯(lián)的常規(guī)技術(shù)來(lái)執(zhí)行在框5 處的處理。然而,應(yīng)當(dāng)理解,可以使用執(zhí)行休眠文件的任何合適的技木。不管作為子過(guò)程526的一部分用于存儲(chǔ)休眠文件的特定技術(shù)如何,在存儲(chǔ)休眠文件吋,可以切斷計(jì)算設(shè)備100的電源。計(jì)算設(shè)備100可以停留在斷電狀態(tài)中,直到接收到啟動(dòng)命令。如圖4和圖6中所圖示,隨后的啟動(dòng)命令可以被處理。圖4圖示了響應(yīng)于接收到開始命令可以執(zhí)行的處理。該處理包括在框410處和在決策框412處的處理。當(dāng)處理到達(dá)決策框412吋,根據(jù)休眠文件是否存在(諸如如果在緊挨著地在前關(guān)機(jī)期間執(zhí)行了子過(guò)程5 則可能存在)所述過(guò)程可進(jìn)行分支。當(dāng)該休眠文件存在吋,圖4的過(guò)程可以通過(guò)標(biāo)記為A的連接器分支以繼續(xù)進(jìn)行圖6中所圖示的處理。圖6的處理圖示了當(dāng)休眠文件存在時(shí)可以執(zhí)行的過(guò)程。圖6的過(guò)程在框601處開始。在框601處,根據(jù)在決策框412 (圖4)處檢測(cè)到的休眠文件是否表示在關(guān)機(jī)期間捕獲了目標(biāo)狀態(tài)的休眠文件(諸如結(jié)合子過(guò)程5 所指示的),所述過(guò)程可進(jìn)行分支。如果是,所述過(guò)程可前進(jìn)至決策框610??商娲?,休眠文件可以表示常規(guī)的休眠文件,除了系統(tǒng)狀態(tài)信息之外,其合并了用戶狀態(tài)。可以根據(jù)常規(guī)的技術(shù)使用這種休眠文件以還原那種狀態(tài)。在子過(guò)程670處可以執(zhí)行常規(guī)的處理,其中休眠文件被用于重建在先前休眠時(shí)刻的計(jì)算設(shè)備的狀態(tài),其包括用戶狀態(tài)。在子過(guò)程670完成后,處理可繼續(xù)至框638。相反地,如果如決策框601所確定的休眠文件作為關(guān)機(jī)過(guò)程的一部分被記錄,則所述過(guò)程繼續(xù)至決策框610。在決策框610處開始,可執(zhí)行ー個(gè)或多個(gè)操作以確定響應(yīng)于啟動(dòng)命令是否應(yīng)當(dāng)執(zhí)行完全啟動(dòng)序列或者應(yīng)當(dāng)執(zhí)行跟隨有部分啟動(dòng)序列的從休眠中恢復(fù)。在這個(gè)示例中,檢查多個(gè)條件以確定是否應(yīng)當(dāng)執(zhí)行從休眠中恢復(fù),即使已確定存在休眠文件。 在決策框610處檢查的一個(gè)這種條件需要確定對(duì)于計(jì)算設(shè)備100是否已發(fā)生硬件配置的改變,使得從休眠中恢復(fù)可能導(dǎo)致重建與當(dāng)前計(jì)算機(jī)配置不匹配的狀態(tài)信息。這種改變可以任何合適的方式被檢測(cè)到,包括檢查在上次計(jì)算設(shè)備的會(huì)話期間創(chuàng)建并且存儲(chǔ)在非易失存儲(chǔ)器中的硬件組件的目錄。在隨后啟動(dòng)時(shí)計(jì)算設(shè)備的硬件配置可以被檢查以保證目錄中的每個(gè)項(xiàng)目被安裝。然而,應(yīng)當(dāng)理解檢查目錄只是可以如何執(zhí)行這種處理的ー個(gè)示例。不管如何做出確定,如果硬件配置已經(jīng)改變,則處理可從決策框610分支至子過(guò)程650。子過(guò)程 650可能需要重新加載操作系統(tǒng)。可以使用本領(lǐng)域的已知技術(shù)執(zhí)行在子過(guò)程650處的處理。 在子過(guò)程650中加載操作系統(tǒng)之后,所述過(guò)程可前進(jìn)至框632。相反地,如果在決策框610處的處理確定沒(méi)有硬件配置發(fā)生,處理可前進(jìn)至框 612。在框612處,可以執(zhí)行進(jìn)ー步的處理以動(dòng)態(tài)地確定計(jì)算設(shè)備100是否處在將要執(zhí)行從休眠恢復(fù)的狀態(tài)中。在這種情況中,在決策框612處的處理可以使用在框524 (圖5)處存儲(chǔ)的信息以確定在休眠文件的創(chuàng)建之間是否發(fā)生改變,使得如果執(zhí)行從休眠恢復(fù),則不會(huì)滿足用戶的期望。在這個(gè)示例中,在框612處的處理涉及檢查與包含休眠文件的卷相關(guān)聯(lián)的NTFS序列號(hào)。如果自從創(chuàng)建休眠文件以來(lái)該卷還沒(méi)有被加載,則在啟動(dòng)時(shí)在框612處讀取的序列號(hào)將與在框5M處存儲(chǔ)的序列號(hào)的差別為表示序列號(hào)中的機(jī)會(huì)的已知量。相反地,如果序列號(hào)的差別大于該已知量,在框612處的處理將識(shí)別出在休眠文件的創(chuàng)建時(shí)刻和觸發(fā)從休眠恢復(fù)的啟動(dòng)命令的時(shí)刻之間可能發(fā)生了改變。在決策框620處,所述過(guò)程可基于在框612處執(zhí)行的比較進(jìn)行分支。如果序列號(hào)不一致,過(guò)程分支至子過(guò)程750。當(dāng)序列號(hào)中的差別指示休眠文件可能不會(huì)建立與用戶期望一致的計(jì)算設(shè)備的操作狀態(tài)時(shí),可能發(fā)生這種分支。因此,執(zhí)行子過(guò)程650,其中通過(guò)重新加載操作系統(tǒng)軟件創(chuàng)建系統(tǒng)狀態(tài)140。相反地,如果在框612處執(zhí)行的比較指示序列號(hào)是一致的,則過(guò)程可前進(jìn)至子過(guò)程630。當(dāng)采取該分支吋,已經(jīng)確定休眠文件適合于重新建立計(jì)算設(shè)備的狀態(tài)。因此,子過(guò)程630需要從休眠文件中重新建立計(jì)算設(shè)備的目標(biāo)狀態(tài)。可以使用用于從休眠恢復(fù)的已知技術(shù)執(zhí)行子過(guò)程630。然而,在這種情況下,不是重新建立包括用戶狀態(tài)的計(jì)算設(shè)備的狀態(tài), 而是基于休眠文件的恢復(fù)重新創(chuàng)建休眠文件被創(chuàng)建時(shí)刻的目標(biāo)狀態(tài)。這個(gè)狀態(tài)例如可以表示在子過(guò)程526 (圖5)的開始處計(jì)算設(shè)備的狀態(tài)。然而,在其它實(shí)施例中,部分用戶狀態(tài)可以被存儲(chǔ)在休眠文件中,諸如當(dāng)操作系統(tǒng)預(yù)測(cè)應(yīng)用可能由用戶在完成啟動(dòng)序列時(shí)打開并且當(dāng)那些應(yīng)用仍然打開時(shí)存儲(chǔ)休眠文件以捕獲計(jì)算設(shè)備的狀態(tài)時(shí)發(fā)生。在完成子過(guò)程630時(shí),圖6的過(guò)程可前進(jìn)至框632。不管處理是通過(guò)子過(guò)程630還是650到達(dá)框632,在框632處響應(yīng)啟動(dòng)命令所需要的時(shí)間可以被記錄。記錄的值的含義可依賴于處理到達(dá)框632所經(jīng)過(guò)的路徑。當(dāng)處理通過(guò)子過(guò)程630到達(dá)框632吋,時(shí)間表示使用從休眠中恢復(fù)作為處理的部分的啟動(dòng)所用的時(shí)間,并且相應(yīng)地被記錄。相反地,當(dāng)處理通過(guò)子過(guò)程650到達(dá)框632吋,時(shí)間表示使用完全啟動(dòng)序列的啟動(dòng)所用的時(shí)間,并且相應(yīng)地被記錄。在框632處的處理可以任何合適的方式執(zhí)行,包括使用如結(jié)合框444 (圖4)所描述的技木。作為在框632處記錄信息的結(jié)果,在決策框518處(圖5)的處理可具有可用于將響應(yīng)于基于完全啟動(dòng)序列的啟動(dòng)命令的時(shí)間與響應(yīng)于基于包括從休眠恢復(fù)和啟動(dòng)序列的一部分的啟動(dòng)命令的時(shí)間相比較的信息。這個(gè)信息可以被記錄并且以任何合適的方式比較。然后處理可前進(jìn)至子過(guò)程634。在子過(guò)程634處,啟動(dòng)序列的一部分可以被執(zhí)行以創(chuàng)建所期望的計(jì)算設(shè)備的操作狀態(tài)。這部分可以包括登錄用戶。這個(gè)操作可以以已知的方式執(zhí)行并且可以包括自動(dòng)登錄或者可以包括呈現(xiàn)登錄屏幕,通過(guò)該屏幕用戶可以呈現(xiàn)信息以手動(dòng)地執(zhí)行登錄過(guò)程。在處理通過(guò)子過(guò)程650到達(dá)子過(guò)程634的情況下,在子過(guò)程650和子過(guò)程634處的處理的組合可以表示完全啟動(dòng)序列。相反地,如果處理通過(guò)子過(guò)程630到達(dá)子過(guò)程634,對(duì)啟動(dòng)命令的響應(yīng)涉及從休眠恢復(fù)以及啟動(dòng)序列的一部分。在這個(gè)示例中,啟動(dòng)序列的該部分表示在子過(guò)程634中登錄用戶。這種處理可以使用常規(guī)的技術(shù)執(zhí)行。然而,用于完成跟隨從休眠中恢復(fù)的啟動(dòng)序列的特定步驟可以是任何合適的技木。然后過(guò)程前進(jìn)至框638,此處休眠文件可被無(wú)效。處理還可以隨著子過(guò)程670到達(dá)框638。不管處理如何到達(dá)框638,休眠文件可以任何合適的方式被無(wú)效,其指示當(dāng)它可能重建錯(cuò)誤的操作狀態(tài)時(shí)休眠文件稍后不能被使用??梢酝ㄟ^(guò)例如以ー些方式改變它的內(nèi)容、在単獨(dú)存儲(chǔ)器結(jié)構(gòu)中記錄文件無(wú)效或者通過(guò)刪除該文件來(lái)無(wú)效休眠文件。圖6的過(guò)程然后可以終止。當(dāng)過(guò)程終止時(shí),計(jì)算設(shè)備100可被配置在運(yùn)行狀態(tài)中并且之后可以繼續(xù)運(yùn)行直到接收到關(guān)機(jī)或者重啟命令。圖8圖示了可實(shí)現(xiàn)本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境800的示例。計(jì)算系統(tǒng)環(huán)境800 只是合適的計(jì)算環(huán)境的ー個(gè)示例,并且不旨在暗示關(guān)于本發(fā)明的使用或者功能的范圍的任何限制。計(jì)算環(huán)境800不應(yīng)當(dāng)被解釋為具有與示例性運(yùn)行環(huán)境800中圖示的組件的任意一個(gè)或任意組合相關(guān)的任何依賴或者需要。本發(fā)明是可與許多其它通用或者專用計(jì)算系統(tǒng)環(huán)境或配置一起操作的??蛇m于本發(fā)明使用的公知計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)型電子設(shè)備、網(wǎng)絡(luò)PC、迷你計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上系統(tǒng)或設(shè)備的任ー個(gè)的分布式計(jì)算環(huán)境等寸。所述計(jì)算環(huán)境可以執(zhí)行計(jì)算機(jī)可執(zhí)行的指令,諸如程序模塊。通常,程序模塊包括執(zhí)行特定任務(wù)或者實(shí)現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明還可以在分布式計(jì)算環(huán)境中實(shí)踐,其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。參考圖8,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括計(jì)算機(jī)810形式的通用計(jì)算設(shè)備。計(jì)算機(jī)810的組件可以包括但不限于處理単元820、系統(tǒng)存儲(chǔ)器830以及將包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)組件耦合至處理單元820的系統(tǒng)總線821。系統(tǒng)總線821可以是若干類型的總線結(jié)構(gòu)的任一種,其包括存儲(chǔ)器總線或者存儲(chǔ)器控制器、外圍總線以及使用多種總線架構(gòu)的任意一種的本地總線。為了舉例而非限制,這樣的架構(gòu)包括エ業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線,微通道架構(gòu)(MCA)總線,增強(qiáng)ISA (EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)本地總線以及也被稱為Mezzanine總線的外圍組件互連(PCI)總線。計(jì)算機(jī)810典型地包括多種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是任何可用的介質(zhì),其可被計(jì)算機(jī)810訪問(wèn)并且包括易失和非易失介質(zhì)、可移除和非可移除介質(zhì)。為了舉例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)的易失和非易失、可移除和非可移除介質(zhì),用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它數(shù)據(jù)之類的信息。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于RAM、 ROM、EEPR0M、閃存或其他存儲(chǔ)器技術(shù)、⑶-ROM、數(shù)字多功能盤(DVD)或者其它光盤存儲(chǔ)裝置、 盒式磁帶、磁帶、磁盤存儲(chǔ)器或者其它磁存儲(chǔ)設(shè)備、或者能被用來(lái)存儲(chǔ)所期望的信息并且可被計(jì)算機(jī)810訪問(wèn)的任何其它介質(zhì)。通信介質(zhì)典型地包含已調(diào)制數(shù)據(jù)信號(hào)(諸如載波或者其它傳輸機(jī)制)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”意指ー種信號(hào),其特征中的ー個(gè)或多個(gè)特征按照編碼信號(hào)中的信息的方式來(lái)設(shè)置或改變。為了舉例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或者直接有線連接之類的有線介質(zhì),和諸如聲學(xué)、RF、紅外和其它無(wú)線介質(zhì)之類的無(wú)線介質(zhì)。上述任意的組合也應(yīng)當(dāng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。系統(tǒng)存儲(chǔ)器830包括易失和/或非易失存儲(chǔ)器的形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),諸如只讀存儲(chǔ)器(ROM) 831和隨機(jī)存取存儲(chǔ)器(RAM) 832。包含比如在啟動(dòng)期間幫助在計(jì)算機(jī)810 內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)833 (BIOS)典型地被存儲(chǔ)在ROM 831中。RAM 832典型地包含可由處理單元820即時(shí)訪問(wèn)的和/或當(dāng)前被其操作的數(shù)據(jù)和 /或程序模塊。為了舉例而非限制,圖8圖示了操作系統(tǒng)834、應(yīng)用程序835、其它程序模塊 836以及程序數(shù)據(jù)837。計(jì)算機(jī)810還可以包括其它可移除/非可移除、易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)。為了舉例而非限制,圖8圖示了從非可移除、非易失磁介質(zhì)中讀取或者向其寫入的硬盤驅(qū)動(dòng) 840,從可移除、非易失磁盤852中讀取或者向其寫入的磁盤驅(qū)動(dòng)851,和從諸如⑶-ROM或者其它光介質(zhì)之類的可移除、非易失光盤856中讀取或者向其寫入的光盤驅(qū)動(dòng)855。硬盤驅(qū)動(dòng)840可以被實(shí)現(xiàn)為旋轉(zhuǎn)的磁介質(zhì),其包含可以從磁介質(zhì)中讀取或向其寫入的一個(gè)或多個(gè)磁頭??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移除/非可移除、易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等。 硬盤驅(qū)動(dòng)841典型地通過(guò)諸如接ロ 840之類的非可移除存儲(chǔ)器接ロ連接至系統(tǒng)總線821,并且磁盤驅(qū)動(dòng)851和光盤驅(qū)動(dòng)855典型地通過(guò)諸如接ロ 850之類的可移除存儲(chǔ)器接ロ連接至系統(tǒng)總線821。上面討論并在圖8中圖示的驅(qū)動(dòng)和它們關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和用于計(jì)算機(jī)810的其它數(shù)據(jù)的存儲(chǔ)。在圖8中,例如,硬盤驅(qū)動(dòng)841被圖示為存儲(chǔ)操作系統(tǒng)844、應(yīng)用程序845、其它程序模塊846和程序數(shù)據(jù)847。注意到這些組件可以與操作系統(tǒng)834、應(yīng)用程序835、其它程序模塊836和程序數(shù)據(jù)837相同或者不同。操作系統(tǒng)844、應(yīng)用程序845、其它程序模塊846和程序數(shù)據(jù)847在此處被給予了不同的數(shù)字以圖示至少它們是不同的拷貝。用戶可以通過(guò)輸入設(shè)備將命令和信息輸入至計(jì)算機(jī)810,輸入設(shè)備諸如鍵盤862和通常被稱為鼠標(biāo)、軌跡球或觸摸板的指示設(shè)備861。其它輸入設(shè)備(未示出)可以包括麥克風(fēng)、操縱桿、游戲手柄、衛(wèi)星天線、掃描儀等。這些和其它輸入設(shè)備通常通過(guò)耦合至系統(tǒng)總線的用戶輸入接ロ 860連接至處理單元820,但是可以通過(guò)其它接口和總線結(jié)構(gòu)連接,諸如并行端ロ、游戲端ロ或者通用串行總線(USB)。監(jiān)視器891 或者其它類型的顯示設(shè)備也經(jīng)由諸如視頻接ロ 890之類的接ロ連接至系統(tǒng)總線821。除了監(jiān)視器之外,計(jì)算機(jī)還可以包括其它外圍輸出設(shè)備,諸如揚(yáng)聲器897和打印機(jī)896,其可以通過(guò)輸出外圍接ロ 895而連接。計(jì)算機(jī)810可以在使用到諸如遠(yuǎn)程計(jì)算機(jī)880之類的ー個(gè)或多個(gè)計(jì)算機(jī)的邏輯連接的聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)880可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或者其它常見網(wǎng)絡(luò)節(jié)點(diǎn),并且典型地包括上面相對(duì)于計(jì)算機(jī)810所描述的許多或者所有元件,雖然只有存儲(chǔ)器存儲(chǔ)設(shè)備881在圖8中被圖示出。圖8中描繪的邏輯連接包括局域網(wǎng)(LAN)871和廣域網(wǎng)(WAN)873,但是還可以包括其它網(wǎng)絡(luò)。這種聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)計(jì)算機(jī)網(wǎng)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是司空見慣的。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用吋,計(jì)算機(jī)810通過(guò)網(wǎng)絡(luò)接ロ或者適配器870連接至LAN 871。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用吋,計(jì)算機(jī)810典型地包括調(diào)制解調(diào)器872或者用于通過(guò)諸如互聯(lián)網(wǎng)之類的WAN 873建立通信的其它裝置。可以是內(nèi)部或者外部的調(diào)制解調(diào)器872可經(jīng)由用戶輸入接ロ 860或者其它合適的機(jī)構(gòu)連接至系統(tǒng)總線821。在聯(lián)網(wǎng)環(huán)境中,相對(duì)計(jì)算機(jī)810描述的程序模塊或其部分可以被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備上。為了舉例而非限制,圖8圖示了駐留在存儲(chǔ)設(shè)備881上的遠(yuǎn)程應(yīng)用程序885。應(yīng)當(dāng)理解,所示出的網(wǎng)絡(luò)連接是示例性的,并且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。因此已經(jīng)描述了本發(fā)明的至少ー個(gè)實(shí)施例的多個(gè)方面,應(yīng)當(dāng)理解,本領(lǐng)域技術(shù)人員將易于想到各種變化、改變和改進(jìn)。例如,描述了在啟動(dòng)時(shí)基于所觀察到的執(zhí)行每個(gè)序列的相對(duì)時(shí)間做出對(duì)于是執(zhí)行完全啟動(dòng)序列還是執(zhí)行跟隨有部分啟動(dòng)序列的從休眠中恢復(fù)的決定。應(yīng)當(dāng)理解在關(guān)機(jī)時(shí)可以執(zhí)行類似的處理。如果在關(guān)機(jī)時(shí)執(zhí)行,可以通過(guò)存儲(chǔ)或不存儲(chǔ)休眠文件實(shí)現(xiàn)決策。因此, 應(yīng)當(dāng)理解,在啟動(dòng)時(shí)發(fā)生的所述操作可替代地可以在關(guān)機(jī)時(shí)執(zhí)行,且反之亦然。上述的益處可以以其他方式實(shí)現(xiàn)。例如,除了避免由計(jì)算機(jī)的CPU和諸如盤的其它組件工作之外,在設(shè)置狀態(tài)的過(guò)程期間,這種方式允許數(shù)據(jù)響應(yīng)于關(guān)機(jī)命令被保存在休眠文件中,其將幫助在對(duì)隨后的啟動(dòng)命令的響應(yīng)期間和/或在啟動(dòng)命令的處理已經(jīng)完成之后加速用戶體驗(yàn)。例如,當(dāng)用戶登錄吋,多個(gè)應(yīng)用可以被發(fā)動(dòng)(例如WINDOWS EXPLORER網(wǎng)頁(yè)瀏覽器,啟動(dòng)應(yīng)用等)。操作系統(tǒng)可以明確地追蹤在完成啟動(dòng)命令的處理之后所定義的間隔期間用戶訪問(wèn)的文件(和它們的偏差)。那些應(yīng)用或其它組件能夠被讀入存儲(chǔ)器中以被保存在關(guān)機(jī)命令的隨后處理期間創(chuàng)建的休眠文件中。以這種方式,這些應(yīng)用或其它組件將被順序地從盤中讀取至內(nèi)存中,而不是作為發(fā)起那些應(yīng)用的一部分必須隨機(jī)地讀取它。同樣地,描述了用戶登錄和注銷。應(yīng)當(dāng)理解,可以在多個(gè)用戶登錄至計(jì)算機(jī)的情況下提供關(guān)機(jī)命令。如果部分地執(zhí)行關(guān)機(jī)序列并之后執(zhí)行休眠操作,則部分關(guān)機(jī)序列可以導(dǎo)致多個(gè)用戶的注銷,但是上述的技術(shù)仍然可以被應(yīng)用。例如,此處描述的技術(shù)可以被用于提供自動(dòng)化服務(wù)而不需要用戶干預(yù)。例如,通過(guò)執(zhí)行部分關(guān)機(jī)序列并然后休眠而響應(yīng)關(guān)機(jī)命令的計(jì)算設(shè)備可以被配置為在不期望用戶活動(dòng)的時(shí)刻自動(dòng)地醒來(lái),諸如在半夜。在醒來(lái)時(shí),計(jì)算設(shè)備可以執(zhí)行維護(hù)活動(dòng),諸如應(yīng)用軟件更新。對(duì)于用戶,它表現(xiàn)為在當(dāng)天結(jié)束時(shí)計(jì)算設(shè)備被關(guān)機(jī),使得維護(hù)活動(dòng)對(duì)于用戶是透明的。例如,如果計(jì)算設(shè)備響應(yīng)于關(guān)機(jī)命令檢測(cè)到它具有維護(hù)活動(dòng)或者補(bǔ)丁要應(yīng)用并且指示它自己在適宜的時(shí)間醒來(lái),可以實(shí)現(xiàn)這種能力。當(dāng)它醒來(lái)吋,計(jì)算設(shè)備執(zhí)行任何必要的維護(hù)活動(dòng),諸如應(yīng)用補(bǔ)丁。然后系統(tǒng)進(jìn)行完全重啟并然后再次執(zhí)行跟隨有休眠的部分關(guān)機(jī)。這種情況使得軟件賣方能夠提供一種解決方案,其使得維護(hù)活動(dòng)對(duì)于用戶是不可見的。這種能力能夠被應(yīng)用到消費(fèi)者和企業(yè)PC。除了改善用戶體驗(yàn),這種方法還可以節(jié)能,特別是對(duì)于企業(yè)用戶。這種變化、修改和改進(jìn)旨在作為本公開的一部分,并且旨在處于本發(fā)明的精神和范圍中。因此,前面的描述和附圖僅是舉例。本發(fā)明的上述實(shí)施例可以以多種方式實(shí)現(xiàn)。例如,可以使用硬件、軟件或其組合實(shí)現(xiàn)所述實(shí)施例。當(dāng)以軟件實(shí)現(xiàn)時(shí),軟件代碼可以在任何合適的處理器或者處理器集合上執(zhí)行,無(wú)論是在單個(gè)計(jì)算機(jī)中提供的還是在多個(gè)計(jì)算機(jī)中分布的。這種處理器可以實(shí)現(xiàn)為集成電路,在集成電路組件中帶有ー個(gè)或多個(gè)處理器。然而,處理器可以使用任何合適的格式的電路來(lái)實(shí)現(xiàn)。進(jìn)ー步地,應(yīng)當(dāng)理解,計(jì)算機(jī)可以多種形式中的任一種體現(xiàn),諸如安裝在架上的計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)或平板計(jì)算機(jī)。此外,計(jì)算機(jī)可以嵌入通常不被看做計(jì)算機(jī)但是具有合適的處理能力的設(shè)備中,包括個(gè)人數(shù)字助理(PDA)、智能手機(jī)或者任何其它合適的便攜式或固定的電子設(shè)備。而且,計(jì)算機(jī)可以具有ー個(gè)或多個(gè)輸入和輸出設(shè)備。這些設(shè)備尤其可以用于呈現(xiàn)用戶接ロ??梢员挥糜谔峁┯脩艚鹰淼妮敵鲈O(shè)備的示例包括用于視覺(jué)呈現(xiàn)輸出的打印機(jī)或顯示屏幕和用于聽覺(jué)呈現(xiàn)輸出的揚(yáng)聲器或者其它聲音生成設(shè)備??梢杂糜谟脩艚鹰淼妮斎朐O(shè)備的示例包括鍵盤,和諸如鼠標(biāo)、觸摸板和數(shù)字面板之類的指示設(shè)備。作為另ー個(gè)示例, 計(jì)算機(jī)可以通過(guò)語(yǔ)音識(shí)別或者其它可聽的格式接收輸入信息。這樣的計(jì)算機(jī)可以通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)以任何合適的方式被互連,所述網(wǎng)絡(luò)包括局域網(wǎng)或者廣域網(wǎng),諸如企業(yè)網(wǎng)絡(luò)或者因特網(wǎng)。這樣的網(wǎng)絡(luò)可以基于任何合適的技術(shù)并可以根據(jù)任何合適的協(xié)議來(lái)操作,并且可以包括無(wú)線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或者光纖網(wǎng)絡(luò)。而且,此處概述的各種方法或過(guò)程可以被編碼作為軟件,其可以在使用多種操作系統(tǒng)或平臺(tái)的任意一個(gè)的ー個(gè)或多個(gè)處理器上執(zhí)行。此外,這種軟件可以使用多種合適的編程語(yǔ)言和/或編程或腳本工具的任意一種來(lái)編寫,并且還可以被編譯為在主機(jī)或虛擬機(jī)上執(zhí)行的可執(zhí)行機(jī)器語(yǔ)言代碼或者中間代碼。在這個(gè)方面,本發(fā)明可以被體現(xiàn)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(或者多個(gè)計(jì)算機(jī)可讀介質(zhì))(例如計(jì)算機(jī)存儲(chǔ)器、一個(gè)或多個(gè)軟盤、高密度盤(CD)、光盤、數(shù)字視頻盤(DVD)、磁帶、閃存、在現(xiàn)場(chǎng)可編程門陣列或其它半導(dǎo)體設(shè)備中的電路配置、或者其它非瞬時(shí)性的有形計(jì)算機(jī)存儲(chǔ)介質(zhì)),其利用一個(gè)或多個(gè)程序來(lái)編碼,所述程序在一個(gè)或多個(gè)計(jì)算機(jī)或者其它處理器上執(zhí)行時(shí)、執(zhí)行實(shí)現(xiàn)上面討論的本發(fā)明各種實(shí)施例的方法。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或媒體可以是可傳送的,使得存儲(chǔ)在其上的ー個(gè)或多個(gè)程序能夠被加載至ー個(gè)或多個(gè)不同的計(jì)算機(jī)或者其它處理器上,以實(shí)現(xiàn)上面討論的本發(fā)明的各種方面。如此處使用的術(shù)語(yǔ)“非瞬態(tài)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”只包含可以被認(rèn)為是制造品(即制造的物品)或機(jī)器的計(jì)算機(jī)可讀介質(zhì)??商娲鼗蛘叽送?,本發(fā)明可以體現(xiàn)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)之外的計(jì)算機(jī)可讀介質(zhì),諸如傳播信號(hào)。術(shù)語(yǔ)“程序”或“軟件”在此以一般意義使用以指代可以用于編程計(jì)算機(jī)或者其它處理器以實(shí)現(xiàn)上面討論的本發(fā)明的各種方面的任意類型的計(jì)算機(jī)代碼或者計(jì)算機(jī)可執(zhí)行指令集。此外,應(yīng)當(dāng)理解,根據(jù)這個(gè)實(shí)施例的ー個(gè)方面,在執(zhí)行時(shí)執(zhí)行本發(fā)明的方法的ー個(gè)或多個(gè)計(jì)算機(jī)程序不需要駐留在單個(gè)計(jì)算機(jī)或者處理器之上,而是可以模塊化的方式分布在多個(gè)不同的計(jì)算機(jī)或處理器之中以實(shí)現(xiàn)本發(fā)明的各個(gè)方面。計(jì)算機(jī)可執(zhí)行指令可以有多種形式,諸如由一個(gè)或多個(gè)計(jì)算機(jī)或者其它設(shè)備執(zhí)行的程序模塊。通常,程序模塊包括執(zhí)行特定任務(wù)或者實(shí)現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、 對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。典型地,程序模塊的功能在各個(gè)實(shí)施例中可以按照期望的方式被組合或分布。而且,數(shù)據(jù)結(jié)構(gòu)可以任何合適的方式被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中。為了圖示的簡(jiǎn)明性,數(shù)據(jù)結(jié)構(gòu)可以被示出為具有通過(guò)數(shù)據(jù)結(jié)構(gòu)中的位置而相關(guān)聯(lián)的字段。這種關(guān)系同樣可以通過(guò)利用傳達(dá)字段間關(guān)系的計(jì)算機(jī)可讀介質(zhì)中的位置為字段分配存儲(chǔ)而實(shí)現(xiàn)。然而, 可以使用任何合適的機(jī)制來(lái)建立數(shù)據(jù)結(jié)構(gòu)的字段中信息之間的關(guān)系,包括通過(guò)使用指針、 標(biāo)簽或建立數(shù)據(jù)單元間關(guān)系的其它機(jī)制。本發(fā)明的各個(gè)方面可以被單獨(dú)地使用、組合地使用或者以前面描述的實(shí)施例中未特定討論的多種布置而使用,因此本發(fā)明的各個(gè)方面在其應(yīng)用方面不限于前面的描述或者附示中所提到的組件的細(xì)節(jié)和布置。例如,在一個(gè)實(shí)施例中描述的方面可以按照任意方式與其它實(shí)施例中描述的方面相結(jié)合。而且,本發(fā)明可以體現(xiàn)為方法,已經(jīng)提供了該方法的示例。作為方法的一部分執(zhí)行的動(dòng)作可以按照任何合適的方式被排序。因此,實(shí)施例可以被構(gòu)成為其中動(dòng)作按照與所圖示的不同的順序執(zhí)行,其可以包括同時(shí)地執(zhí)行ー些動(dòng)作,即使在圖示的實(shí)施例中示出為順序的動(dòng)作。在權(quán)利要求中修飾權(quán)利要求元素的諸如“第一”、“第二”、“第三”等次序術(shù)語(yǔ)的使用其自身并不意味著一個(gè)權(quán)利要求元素相對(duì)于另一個(gè)有任何優(yōu)先級(jí)、優(yōu)先權(quán)或順序,或者方法的動(dòng)作被執(zhí)行的時(shí)間次序,而是僅僅被用做區(qū)分具有特定名稱的一個(gè)權(quán)利要求元素與具有同樣名稱(若沒(méi)有次序術(shù)語(yǔ)的使用)的另ー個(gè)単元的標(biāo)記,從而區(qū)別權(quán)利要求元素。而且,此處使用的措辭和術(shù)語(yǔ)是為了描述的目的而不應(yīng)當(dāng)被認(rèn)為是限制。此處“包
21括”、“包含”或“具有”、“含有”、“涉及”及其變形的使用意指包含其后列出的項(xiàng)目及其等同物以及附加項(xiàng)目。
權(quán)利要求
1.一種操作包括多個(gè)硬件組件(110,870)的計(jì)算設(shè)備(100)的方法,該方法包括 接收使計(jì)算設(shè)備關(guān)機(jī)的命令(512);確定計(jì)算設(shè)備的條件;基于所確定的條件有條件地處理所接收到的關(guān)機(jī)命令(516,526),該有條件的處理包括當(dāng)所確定的條件是第一條件時(shí),將易失存儲(chǔ)器中的狀態(tài)信息復(fù)制到非易失存儲(chǔ)器中, 而不執(zhí)行完全關(guān)機(jī)序列(5 );和當(dāng)所確定的條件是第二條件時(shí),執(zhí)行完全關(guān)機(jī)序列(530)。
2.權(quán)利要求1的方法,其中確定條件是第二條件包括檢測(cè)計(jì)算組件,在當(dāng)前操作會(huì)話期間用于該計(jì)算組件的配置設(shè)置已改變(520)。
3.權(quán)利要求1的方法,其中 確定條件是第二條件包括檢測(cè)計(jì)算組件注冊(cè)了對(duì)于完全關(guān)機(jī)的請(qǐng)求(516);或者應(yīng)用存儲(chǔ)在計(jì)算設(shè)備上的策略。
4.權(quán)利要求1的方法,其中復(fù)制狀態(tài)信息包括將狀態(tài)信息復(fù)制到文件(5沈)。
5.權(quán)利要求4的方法,其中該文件是休眠文件。
6.一種實(shí)現(xiàn)計(jì)算設(shè)備的操作系統(tǒng)的設(shè)備,該操作系統(tǒng)包括多個(gè)組件,所述設(shè)備包括 用于執(zhí)行關(guān)機(jī)序列的一部分并將易失存儲(chǔ)器中的狀態(tài)信息復(fù)制至非易失存儲(chǔ)器(5 )的第一裝置;執(zhí)行關(guān)機(jī)序列(530)的第二裝置;通過(guò)在第一裝置和第二裝置間選擇并發(fā)起所選擇的裝置的執(zhí)行而響應(yīng)關(guān)機(jī)命令 (516,520)的第三裝置。
7.權(quán)利要求6的設(shè)備,其中第二裝置被配置為包括第一裝置(514)。
8.權(quán)利要求6的設(shè)備,其中第一裝置被配置為包括使計(jì)算設(shè)備休眠(5 )。
9.權(quán)利要求8的設(shè)備,其中第一裝置進(jìn)一步被配置為包括沖洗來(lái)自存儲(chǔ)器的臟數(shù)據(jù)(522 )。
10.權(quán)利要求6的設(shè)備,其中第三裝置通過(guò)檢查記錄已經(jīng)注冊(cè)為需要完全關(guān)機(jī)的安裝組件的數(shù)據(jù)存儲(chǔ)而在第一裝置和第二裝置間選擇(516)。
全文摘要
在接收到關(guān)機(jī)命令時(shí),通過(guò)記錄表示目標(biāo)狀態(tài)的狀態(tài)信息提供了快速計(jì)算機(jī)啟動(dòng)。在這個(gè)目標(biāo)狀態(tài)中,計(jì)算設(shè)備可能已經(jīng)關(guān)閉所有用戶會(huì)話,使得沒(méi)有用戶狀態(tài)信息被包括在目標(biāo)狀態(tài)中。然而,操作系統(tǒng)仍然可以在執(zhí)行。響應(yīng)于啟動(dòng)計(jì)算機(jī)的命令,這個(gè)目標(biāo)狀態(tài)可以從所記錄的目標(biāo)狀態(tài)信息被快速地重建??梢詧?zhí)行啟動(dòng)序列的部分以完成啟動(dòng)過(guò)程,包括建立用戶狀態(tài)。為了保護(hù)用戶期望而不管響應(yīng)于關(guān)機(jī)命令的改變,保持所記錄的狀態(tài)信息的文件的創(chuàng)建和使用可以取決于動(dòng)態(tài)確定的事件。而且,用戶和程序界面可以提供不考慮所記錄的狀態(tài)信息的創(chuàng)建或使用的選項(xiàng)。
文檔編號(hào)G06F9/445GK102567047SQ20111040047
公開日2012年7月11日 申請(qǐng)日期2011年12月6日 優(yōu)先權(quán)日2010年12月6日
發(fā)明者B.E.金, E.N.威爾遜, K.V.斯塔克, M.伊岡, N.賈因, P.L.斯特曼, S.張, V.卡拉古尼斯, Y.貝克 申請(qǐng)人:微軟公司