快速计算机启动的制作方法

文档序号:6440136阅读:175来源:国知局
专利名称:快速计算机启动的制作方法
快速计算机启动
背景技术
计算机具有多种运行模式,其范围从完全运行到完全关机。在完全运行模式中,定义操作系统执行部分的软件已经从非易失存储器被加载到易失存储器中,从该存储器中它可以被更快速地执行。计算机通过“启动”过程进入这种完全运行模式。启动过程配置硬件并加载计算机的操作系统。作为启动过程的一部分,安装驱动程序并且启动操作系统服务。一旦计算机准备好由任意用户操作,用户可以登录该计算机。这种登录可能涉及基于特定于登录用户的简档对计算机的进一步配置。自动地或者响应于用户输入,应用然后可以被加载,使得这些应用可以利用计算设备的硬件和操作系统服务的能力来执行。在加载软件的过程中,无论对于操作系统还是应用,可以分配存储器,可以基于计算机的硬件配置或者用户简档来为软件的参数赋值,并且可以执行其它配置动作。这些动作建立计算设备的“状态”。当用户提供命令以与正在执行的应用或操作系统服务交互时,还可以对存储器和定义其运行状态的其它系统参数做出进一步的改变。在完全关机模式中,不向计算机的硬件组件供电。没有软件或者状态信息被存储在易失性存储器中,因为这种存储器在它断电时不会保留信息。相反,稍后将被用于重新配置计算机为完全运行模式的任何信息都被存储在非易失性存储器中。计算机通过被称为关机的过程进入关机模式。在关机期间,重新配置计算机可能所需的任何信息在其尚未被存储在非易失存储器中的情况下,可以被存储在非易失存储器中。从非易失存储器复制到易失存储器的软件和其它配置信息不会被复制回非易失存储器,因为它可以在随后的启动过程时被重新创建。然而,就易失存储器缓存从非易失存储器复制的、在复制之后被修改的数据(有时被称作“脏”数据)而言,在关机期间该数据被复制到非易失存储器。另一种变化被称作注销(log off)。在支持用户会话的计算机中,用户可以登录到计算机以便访问它的功能。虽然关机有效地注销了用户,但是单独的注销过程可以被执行, 之后计算机不断电。相反,操作系统保持被加载并且准备好另一个用户登录。在注销期间, 计算机“中断”用户会话。中断用户会话可能引起关闭用户发起的应用并且存储还未处于非易失存储器中的用户特定数据。除了完全关机或注销之外,还可以存在省电模式,在该模式中计算机的一些或全部硬件组件的电源被关闭。在有时被称作睡眠模式的省电模式中,用于计算机处理器、网络接口和可能的其它组件的电源被关闭。然而,保留了用于易失存储器的电源。以这种方式, 在计算机启动或后续运行期间创建的任何状态信息被保留在易失存储器中。当再次向处理器供电时,其可以恢复进入睡眠模式时所中断的状态中的操作。另一种模式有时被称为休眠模式。计算机通过被称作休眠的过程进入这个模式。 在休眠期间,捕获计算机的运行状态的文件被创建并且被存储在非易失存储器中,该非易失存储器典型地为硬盘。在从休眠恢复的过程期间,这个文件可以从盘中读取并且被用于重新建立如在休眠时所存在的计算机状态。从休眠恢复在易失存储器中还原了在休眠时所存在的操作期间的软件或者参数集合的副本,使得任意的用户状态也被还原。由于多个原因,从休眠中恢复可能比执行完全启动更快速。一个原因是将休眠文件中的状态信息复制到易失存储器中重建了完全启动过程的结果,同时避免了执行启动过程的步骤所花费的时间,诸如CPU消耗、设备初始化和在启动(boot)期间必须进行的许多其它类型的工作。另外,在启动期间访问的信息被存储在许多不同的文件中,这些文件表示被访问以加载并配置可能潜在地是操作系统中数万个组件的东西的不同组件。这些组件以及被访问以配置它们的信息可以被随机地分布在硬盘上。因为硬盘驱动以及一些其它形式的高容量存储装置在访问顺序数据方面是最高效的,所以访问随机地分布的数据可包括大量的盘访问时间,从而导致长的启动过程。相比而言,在读取休眠文件中的访问时间是较少的,因为在该文件中的信息可被顺序地存储在盘上。从休眠恢复和启动之间的另一个不同在于休眠和之后的恢复还原(restore) 了计算机的完全状态,包括在计算机休眠时计算机用户的任何用户状态。相比而言,直到用户登录,启动将通常为任意用户配置计算机。特定用户可以然后登录,或者用其它方式采取动作为他们自己配置计算机。出于这种原因,打算离开计算机一会儿但是还想返回该计算机的用户通常选择休眠。打算离开计算机较长时间、可能根本不会返回该计算机或者预期其它用户在该用户返回之前可以使用该计算机的用户通常使用关机。

发明内容
为了改善用户体验,计算机可以被配置成响应用户命令通过进入休眠模式关机。 在用户提供命令以启动计算机后,这种计算机可以更快速地为用户操作做好准备。为了使得计算机能够快速地为在与用户期望一致的状态中操作做好准备,休眠文件捕获实现用户期望的目标状态。响应于关机命令,计算机通过只执行关机过程中的一部分步骤而在休眠之前创建这个目标状态。执行的步骤可以将计算机置于目标状态中,该目标状态相应于操作系统保持加载但是用户会话已经中断的状态。在接收到启动命令时,计算机系统可以不通过加载和配置软件来创建运行状态, 而是通过将休眠文件复制到易失存储器中来重建目标状态。然后计算机可以只执行启动序列的一部分。这些部分可以包括在加载操作系统之后的启动序列期间将惯常发生的操作。 这些步骤可以包括例如与用户交互以执行用户登录并加载限定用户状态的应用。在一些实施方式中,可以响应于指示关机的用户命令执行条件处理。计算设备可以确定例如计算设备是否处于需要完全关机的运行状态或者响应于后续的启动命令创建要使用的休眠文件是否是合适的。这种状态可以以多种方式中的任一种来识别,所述方式包括通过确定一些已安装组件的配置设置被改变并且将直到组件作为完全启动序列的一部分再次被加载时才被应用。可替代地,可以提供允许应用组件注册为需要完全关机的编程接口。如果检测到这种情况,则可以执行常规的关机处理,直到计算设备完全断电。如果没有检测到,则将执行关机序列,直到计算设备处于目标状态,从中可以制作休眠文件。在一些实施方式中,可以响应于用户启动命令执行条件处理。该条件处理可以包括确定是否存在休眠文件。如果是,可以做出关于是否有可能在创建休眠文件的时间和接收启动命令的时间之间计算设备的目标状态可能已经改变的进一步检查。如果检测到可能已经引起状态改变的事件,则计算设备可以执行完全启动序列。前述是本发明的非限制性发明内容,其由所附权利要求限定。


附图不旨在按比例绘制。在附图中,各种图中图示的每个相同的或者近似相同的组件由同样的数字表示。为了清楚的目的,不是每个组件都在每个图中被标注。在附图中
图1是示出计算设备中启动序列的概念框图; 图2是示出计算设备中从休眠序列恢复的功能框图; 图3是示出根据本发明的一些实施例的快速启动序列的功能框图; 图4是示出根据本发明的一些实施例响应于启动命令而操作计算机的方法的流程图; 图5是根据本发明的一些实施例响应于关机命令而操作计算设备的方法的流程图; 图6是根据本发明的一些实施例可以有条件地执行的启动序列的一部分的流程图; 图7是图形用户界面的一部分的概略图,通过该图形用户界面用户可以在关机时在引起计算设备不同行为的命令之间做选择;
图8是示例性计算设备的框图,其示出了本发明实施例可以运行的环境。
具体实施例方式发明人已经了解并认识到,计算设备的用户体验可以通过与计算设备的关机和/ 或启动序列的部分相结合地使用休眠文件来改善。这种文件可以在关机时被选择性地创建并且在启动时被选择性地使用,使得计算设备的性能匹配用户期望。即使当休眠文件被创建或使用时,也可以执行常规的关机或启动序列的部分。为了提供与用户期望相一致的计算设备的操作,休眠可以与计算设备的传统关机序列的部分(其将计算设备置于目标状态中)相结合地使用。那些部分可以包括在接收到关机命令时中断用户会话的操作。另外,作为响应关机命令的部分,在用户会话被中断之后保留在易失存储器中的、但意欲保留在非易失存储器中的信息被移动到非易失存储器。例如, 可以执行模仿在常规的关机期间执行的那些传统的缓存冲洗(cache flushing)操作。相反地,在处理启动命令时,从休眠恢复可以随同启动序列的一部分一起执行。该序列可以包括在操作系统被加载并准备好运行之后发生的启动序列的任何部分。启动序列的该部分可以包括例如用户登录和应用的加载。进一步地,为了提供与用户期望一致的操作,作为关机或启动的一部分的休眠文件的创建或使用可以取决于动态地确定的事件。在操作会话期间组件已经被重新配置使得直到下一次加载组件才应用所述配置变化的情况下,没有休眠文件可被创建。响应于来自用户的下一个启动命令,计算机将检测没有可用的休眠文件并且通过重新加载操作系统来创建目标状态。可替代地或此外,操作系统可以提供界面,其它组件可以通过该界面来注册以表明它们需要完全关机或者启动有效地起作用。当正在执行组件被注册时,可以响应于关机命令执行完全关机序列。进一步地,为了与用户期望一致地操作,在一些实施例中,可以提供用户界面,通过该用户界面用户可以指定是执行常规的关机还是修改后的关机(在修改后的关机中,目标状态被创建然后执行休眠过程)。这种用户界面可以针对常规的关机和合并了休眠的修改后的关机序列呈现单独的选项。计算设备可以响应于标记为常规关机命令的输入有条件地调用修改后的关机序列。单独的命令选项可以通过界面提供,用户可以利用该界面指定常规的关机。现在转向图1,图示了完全启动序列的功能框图。图1图示了可以适于根据发明实施例操作的计算设备100的功能框图。在这个示例中,计算设备100包括易失存储器120。易失存储器120可以使用DRAM 或者任意其它合适的存储器组件来实现。由计算设备100执行的启动序列涉及在易失存储器120中创建状态信息,该易失存储器允许计算设备100执行本领域已知的计算操作。在这个示例中,该状态信息被描绘为具有两个部分,用户状态信息130和系统状态信息140。系统状态信息140表示为任意用户操作而一般地配置计算设备100的状态信息。相比而言,用户状态信息130表示可以在计算设备100由特定用户操作或为特定用户操作而配置时生成的状态信息。根据本领域已知的启动序列,系统状态信息140和用户状态信息130可以被创建在易失存储器120中。图1以简化的概念性方式图示了常规的启动序列中的步骤。例如当计算设备100被通电时或者其它表明启动的命令被提供时,可以发起这种序列。计算设备100可以包括本领域已知的组件。那些组件可以包括处理器110。处理器110可以被实现为微处理器或者微处理器的集合或者处理器内核,如本领域已知的。此处描述的操作可以是处理器110执行软件指令的结果。此外,计算设备100可以合并多个类型的计算存储介质。在这种情况中,那些类型包括易失存储器和非易失存储器。在这个示例中,图示了易失存储器120。各种类型的信息被存储在非易失存储器150和152中。启动存储器巧4也是非易失存储器。不同物理设备可以被用于实现非易失存储器150和152以及启动存储器154。例如,非易失存储器150 可以是盘,诸如旋转硬盘或者固态驱动。非易失存储器152类似地可以是盘,并且可以是与用于实现非易失存储器150的相同的盘、同一盘上的不同分区或者完全不同的盘。非易失存储器154同样可以是用于实现非易失存储器150和152的相同设备的一部分。但是,在图示的实施例中,非易失存储器巧4可以是连接至处理器110的非易失存储器芯片。因此,应当认识到图1仅表示存储器架构的一个示例,并且可以使用任意合适的存储器架构。在这个示例中,图示出了非易失和易失存储器。这种配置表示传统的计算机架构。 不过,使用这种特定架构不是必需的。相反,易失存储器120是操作存储器的一个示例。在计算设备100的运行期间,处理器110可以主要从易失存储器120访问软件和数据以执行操作。这种存储器可以是相对高速的,从而使得可以由处理器110快速地执行操作。相比而言,非易失存储器,诸如非易失存储器150和152,可能能够存储大量数据, 但可能比易失存储器120更慢地运行。通常,相比于在易失存储器120中存储信息的成本, 在这种非易失存储器中存储信息的成本可相对较小。为了达到成本效率,还有高速运行,信息可在非易失存储器和易失存储器之间转移。执行这些转移以在易失存储器120中创建支持所期望的计算设备100的操作的状态。可以存在计算机系统的其它组件,但是为了简化而省略。可能在其它实施方式中存在的组件的更多细节在下面结合图8提供。然而,图1中的简化图示足以解释启动过程。
响应于启动命令,处理器110可以访问并执行启动存储器154中的指令。启动存储器巧4可以包含指令,该指令使得处理器110访问非易失存储器150和152并基于存储在那些存储器中的软件和数据而在易失存储器120中生成合适的状态。在启动存储器154中的指令可以使得处理器110从非易失存储器150加载软件。 作为加载软件组件的一部分,处理器110可以将软件指令转移至易失存储器120,该软件可以从易失存储器120被执行。不过,加载软件可以包括其他操作,所述其他操作包括一些组件的执行。来自易失存储器120的一些组件的执行可以将软件从其被存储的状态转换至其被使用的状态,或者使得其它组件从非易失存储器转移到易失存储器120。在加载软件的过程中,处理器110可以基于存储在非易失存储器152中的数据或者其它信息配置软件。所述信息可以包括例如关于安装在计算设备100中的硬件组件的信息。因此,图1图示了启动过程的第二和第三步骤可以是从非易失存储器150获取软件和从非易失存储器152获取数据。在这个过程中加载的第一软件可以建立系统状态140。初始加载的软件可以添加至系统状态140驱动器146 (其控制硬件组件)。在加载驱动器之前,与计算设备100相关联的硬件组件可以被识别并且可以选择合适的驱动器。一旦该驱动器被安装,操作系统服务和其它组件可以与通过该驱动器控制的设备交互。然后操作系统服务142可以被加载。这种服务的一个示例是文件管理器114。文件管理器144可以组织在易失存储器中的数据,使得执行的操作系统服务和应用可以访问按照文件组织的非易失存储器中的数据。由操作系统提供的其它服务可以包括与用户接口交互,建立网络连接或者发送信息至打印机。不过,特定的操作系统服务142不是对发明的限制。此外,在建立系统状态140的过程期间,处理器110可以存储系统状态数据148。 这种数据可以从诸如非易失存储器152之类的非易失存储器复制,或者可以通过执行软件组件而生成。数据例如可以在处理器110执行发现安装在计算设备100内的设备的指令时被生成。作为特定的示例,在发现特定网络接口卡时,处理器110可以记录网络接口卡的类型或性能作为系统状态数据148的一部分。然后这种数据可以在计算设备的运行期间用于控制与网络接口卡的交互。然而,应当理解,作为系统状态数据148存储的特定数据对于本发明不是关键的。不考虑特定的操作系统服务142和在系统状态信息140中被创建的系统状态数据 148,当系统状态信息140被创建时,计算设备100可以准备好由用户操作。因此,启动序列可以继续进行有时被称作用户登录的过程。作为用户登录的一部分,特定用户可以被识别并且另一状态信息可以被创建在易失存储器120中以允许计算设备100执行用于该用户的操作。在这个示例中,用户状态信息130被图示为包含应用指令132和用户状态数据134。如同表示操作系统组件的指令和表示系统状态的数据一样,应用指令132可以基于存储在易失存储器150上的软件被载入存储器。然而,加载软件的过程可能需要执行适当地配置软件或计算设备以便运行的功能。该配置可以依赖于系统状态数据148或者用户状态数据134。仅作为一个示例,在加载实现网页浏览器的应用指令时,处理器110可以从非易失存储器152或者用户状态数据134访问表示用户数据的信息,其识别用户已经标识为“收藏夹(favorites)”的特定网页。在这个示例中,建立用户状态数据130根据用户偏好配置网页浏览器以便执行,其将包括呈现为已经登录至计算设备100的特定用户定制的收藏夹的列表。一旦完成用户登录,然后用户可以与计算设备100相交互。这些交互可以导致更多软件被加载或者一些加载的应用被关闭。另外,用户交互可以设置参数或者采取能够改变用户状态130或系统状态140的其他动作。这些交互可以继续进行直到用户输入指示终止会话的意图的命令。所述会话可以以多种方式中的一种被终止。例如,当用户完成与计算设备100的交互的会话时,用户可以注销和/或使计算设备100关机。注销导致用户会话被中断,使得在存储器120中用户状态信息130不再可用。注销序列的部分可能需要从系统状态140中移除用户特定设置。以这种方式,第二用户可以登录至计算设备100而不被在先用户影响或者不能够访问由在先用户生成的状态信息。为实现该结果的操作有时被描述为中断用户会话。注销之后,系统状态140可以被保留,因为存储器120的电源可以被维持。相比而言,关机可以导致用户状态130和系统状态140都从易失存储器120中移除。因为易失存储器120的电源被关闭,易失存储器120中的任何信息在关机序列的末尾都将丢失。因此, 重建该状态所需的任何信息在尚未存储在非易失存储器中的情况下可以被移动至非易失存储器。注销和/或关机序列不必为启动序列的反过程,因为不需要返回从非易失存储器生成的任何信息。可以在后续的启动时再次生成该相同的信息。然而,在会话期间动态地生成的并且不能从非易失存储器中的信息重建的用户状态130的部分可以作为注销或关机操作的一部分被记录在非易失存储器中。类似地,在关机时,作为关机序列的一部分,在重新执行启动序列时不能被重建的系统状态数据148的部分可以被转移至非易失存储器。作为一个示例,系统状态数据148可以包含高速缓存,其旨在充当存储在非易失存储器152中的数据项的工作副本。高速缓存通过在易失存储器中建立应当被保留在非易失存储器中的信息的副本加速了计算设备100的操作。相比于访问非易失存储器中的数据,在更快速的易失存储器位置读取或写入同样的信息加速了计算设备的操作。当易失存储器中数据的副本被改变时,其不再匹配非易失存储器中相应的数据。 在高速缓存中的数据被称为“脏的”。为了保持非易失存储器与高速缓存中的副本同步,脏数据不时地被复制至非易失存储器中。通常,当计算机在其它方面不再繁忙时,脏数据被复制回去。然而,延迟脏数据的复制创建了以下可能性在关机时高速缓存中的数据将不匹配非易失存储器中的数据。为了避免不一致,在计算设备100关机之前,可以执行一种有时被称为冲洗(flushing)脏数据的操作。在这个操作期间,脏数据被复制至非易失存储器。虽然图1中图示的启动序列是期望的,因为它配置计算设备100以便用户操作,但是在一些实例中,启动序列可能是令人失望的根源。用户期望的操作系统和应用可能共同地包含数千个或者数万个组件。因此启动序列可能需要多次从非易失存储器150和152的读取操作。因为这些存储器通常缓慢地运行,所以整个过程可能是相对较慢的。另外,除了存储相关的操作之外,启动序列可能需要耗时的操作。此外,例如时间可能被花费在CPU的计算或设备初始化上。图2图示了用于在易失存储器中创建状态信息的可替代的途径。图2图示了在操作序列期间的计算设备100,其中状态信息作为从休眠序列恢复的一部分被创建在易失存储器120中。休眠是一种运行模式,其可以通过将状态信息从易失存储器复制至非易失存储器创建。这种状态信息可以以任何适当的方式组织。在图2所图示的实施例中,该状态信息被图示为存储在非易失存储器152的休眠文件210中。在休眠期间,处理器110可以将包括用户状态信息130和系统状态信息140的状态信息复制至休眠文件210中。然后通过关掉计算机系统100的全部或部分组件的电源而进入休眠模式。当电源被关掉时,在易失存储器120中的状态信息丢失。然而,它可以通过将休眠文件复制至易失存储器来重建为从休眠恢复。因此,图2示出了可以通过处理器110访问存储在启动存储器154中的指令开始从休眠序列恢复,其类似于图1图示的启动序列。那些指令使得处理器110检查休眠文件 210的存在。在这个示例中,在检测到休眠文件210时,处理器110将休眠文件210的内容复制至易失存储器120。该复制可能需要直接复制或者可能需要处理以按照它被复制的某种方式转换信息,诸如解压缩该文件。不管是否作为处理的一部分而执行处理,最终结果将导致还原状态信息。一旦状态信息被还原,用户可以恢复在休眠时被中断的计算会话。系统状态数据148和用户状态数据134都将被返回至易失存储器120。另外地,应用132、操作系统服务142和驱动器146同样将被返回至易失存储器120并准备执行。常常,从休眠恢复将比执行结合图1所图示的完全启动序列更快速。虽然在从休眠恢复和完全启动期间相同数量的信息可能最终被放置在易失存储器120中,但是简单地将那些信息从文件中复制可能比起通过加载软件和配置数据来生成它更快速。然而,进入休眠模式并然后从休眠中恢复并不总是适合代替执行关机和之后的启动序列。申请人了解并认识到响应于用户使计算设备关机的命令执行休眠和随后响应于来自用户的启动计算设备的命令从休眠中恢复可能不会导致满足用户期望的计算设备的操作。发明人已经识别出一种在不破坏现有用户期望的情况下提供更快的操作体验的方式。图3图示了功能框图,其中计算设备100可以有条件地将休眠合并到关机序列中。另外,计算设备可以有条件地在启动序列中合并从休眠恢复。在图3图示的实施例中,计算设备100被示出包含复制到非易失存储器152中的状态信息。在这个实施例中,状态信息被格式化为休眠文件310。休眠文件310可以是如本领域已知的休眠文件的形式。然而应当理解可以使用任何合适的格式将状态信息存储在非易失存储器中。与存储在休眠文件210中的信息相比,休眠文件310包含系统状态140。用户状态 130不需要被存储为休眠文件310的一部分;不过在一些实施例,用户状态的部分可以被存储。因此,当用户提供启动命令至计算设备100时,处理器110可以开始执行来自启动存储器154的指令,类似于在图2所图示的操作模式中所发生的。在检测到休眠文件310的存在时,处理器110可以将休眠文件310的内容复制到易失存储器120中。该复制在易失存储器120中重建系统状态140。这个状态可以模拟加载操作系统软件后但是用户登录发生之前在图1所图示的启动序列期间计算设备100的状态。因此,为了完成易失存储器120中状态信息的创建,处理器110可以执行上面结合图1所描述的创建系统状态之后发生的启动序列的步骤。在这种情况下,那些操作可以包括加载应用指令132和通过从非易失存储器150读取软件指令来创建用户状态数据134以及基于非易失存储器152中的数据配置它。在完成这些操作序列时,易失存储器120中的状态信息可以与作为执行上面结合图1所描述的启动序列的结果而加载的那些状态信息相比。然而,响应使用图3所图示的序列的启动命令所需的时间可能短于执行如结合图1所描述的启动序列所需要的时间。在图3所图示的示例中,休眠文件310虽然具有与休眠文件210 (图2)相同的格式,但是包含不同的信息。此外,休眠文件310以与休眠文件210不同的方式创建。如上面所描述的,在休眠指令时,休眠文件210 (图2)记录如在易失存储器120中所呈现的计算设备100的状态。相比而言,响应于关机命令,创建休眠文件310。然而,在休眠文件310中捕获的状态信息不表示在关机命令时计算设备100的完全状态。相反,可以执行一些处理以将计算设备100置于目标状态,此时可以创建休眠文件310。在所图示的实施例中,目标状态表示在加载操作系统但还没有用户登录到计算设备 100时可能已生成的状态。可以至少部分地通过执行关机序列的一部分来创建这种目标状态。例如,所述一部分可以包括注销计算设备100的一个或多个用户,或者以其它方式中断用户连接。这种处理可以使用本领域已知的技术执行。可替代地或者此外可以执行其它处理以将计算设备100置于目标状态。例如,处理可以包括从系统状态数据148中冲洗脏数据。此外,如上面所记录的,为了保存计算设备100对关机命令的反应的用户期望,涉及休眠的关机序列可以基于在那时可能存在的条件而有条件地执行。类似地,启动序列可以有条件地涉及从休眠中恢复。图4、5和6图示了这种有条件的处理。图4图示了诸如可以由计算设备100响应于启动命令而执行的启动序列。启动命令可以例如通过用户按压按钮、供应电源给计算设备100或者以其它方式发起计算设备 100的操作而被提供给计算设备100。不管发起启动序列的方式如何,所述过程可开始于框410。在框410处,处理器110 可以从启动存储器IM取得并执行发起该过程的指令。然而,在该过程稍后的步骤中,指令可以从非易失存储器150中取得或者从任何其它合适的来源处取得,包括从在网络连接上取得。不管用于控制处理器110以发起启动序列的指令的来源如何,依赖于是否在非易失存储器152中检测到休眠文件,所述过程可在决策框412处分支。如果检测到,则所述过程可以分支至端点A,以继续如图6中所图示的过程。相反地,如果没有休眠文件存在,则所述过程可以前进到子过程450。子过程450可以表示实现通常如本领域已知的启动序列的操作序列。在这个示例中,在框420、422、424、426、428、430和432处的处理可以表示如已知的启动序列的处理。然而,应当理解,可以使用任何合适的技术来使用任何合适的操作序列。不管所使用的特定途径如何,在子过程450内的处理可开始于框420。在框420处,处理器110执行操作系统加载器。这种加载器可以是软件组件,当其被执行时,将操作系统的组件从非易失存储器150加载至易失存储器120。在框422处,配置操作系统的作为系统状态140的一部分而被创建的映像的操作可以被配置。这种配置可包含任何合适的处理,包括设置载入易失存储器的组件的参数值或者执行配置系统状态140的其它方面的指令。同样作为启动子过程450的一部分,计算设备100可以检测设备。任何合适的设备可以被检测到,诸如打印机、网络接口或者其它连接至计算设备100的外围设备。基于检测到的设备,可以在框似6处执行驱动器加载器。驱动器加载器可以是使用已知的技术构造的软件组件,其加载驱动器。驱动器加载器的执行可以涉及识别并加载用于所检测到的设备的驱动器软件。一旦驱动器已经被加载,它们可以在框4 处开始。这个处理可以使得所述驱动器和它们控制的设备能够由在计算设备100上加载的其它组件使用。所述过程可以继续至框430,在此处可以开始操作系统服务。一旦设备和操作系统的服务可供使用,处理可前进至框432。在框432处应用组件可以被加载。可以在用户登录过程部分处使用如本领域已知的技术或者以任何其它合适的方式来执行该处理。随着应用组件被加载,图4中图示的过程可以根据在框432中加载的应用组件的性质而分支。在决策框444处的分支允许计算设备改善可能在当计算设备100使用休眠而非常规的关机序列执行关机序列时一个或多个应用组件没有正确地运行的情况下出现的问题。一些组件可能需要重启,意味着当计算设备下次通电时执行完全启动序列,使得将使用加载过程重建状态。作为示例,如果如图3中所图示的合并了休眠的关机序列被执行,则根据计算设备100启动的时间而执行不同操作的应用组件可以不按照用户期望而执行。对于那些组件,当执行后续启动时,如果该启动基于从休眠中还原而被执行,则所述应用组件可基于从休眠文件310中还原的状态信息而被配置。该状态信息可以包含计算机上次执行完全启动序列的时间的指示。因此,在基于该状态信息而加载时配置的应用组件将不被配置为具有表示发起图4中所图示的启动序列时的时间值。相比于可能的用户期望,该组件将被配置为具有表示前次执行完全启动序列时间的时间值。在这种情况下,应用组件的行为将基于与用户期望不同的时间,因为用户将期望应用组件基于图4的过程开始时的时间而被配置。因此,当这种应用组件被加载在计算设备100上时,可能期望确定组件响应于来自用户的关机命令需要完全关机序列。当这种组件在执行时,计算设备可以通过执行完全关机序列以响应关机命令。以这种方式,在随后接收到启动命令时,将没有休眠文件可用, 并且如例如图1所图示的完全启动序列将被执行。在其他时候,如图3中所图示的,计算设备可以使用合并休眠的关机序列来响应关机命令。为了支持这种与用户期望一致的行为,可以为应用程序提供一种指明它需要执行完全关机和完全启动序列的机制。在图4的示例中,可以通过由计算设备100的操作系统支持的应用编程接口(API)来实现该机制。即使在所有的实例中都不需要完全关机和完全启动序列的应用组件也可以通过这种API放置调用。因此,如果在框440确定正在被加载的应用组件需要重启,则处理可以分支至框 442。在框442处,应用编程接口可被调用以注册该应用组件。在这个示例中,API允许操作系统追踪需要重启的应用组件在启动命令随后被接收到时是否仍然在执行。然而,应当理解,这种调用可以在任何时刻做出。例如被重新配置或者以其它方式遭遇其确定要执行完全关机和完全启动序列的操作状态的任何组件可以通过API进行调用。如果没有通过API进行这种调用,则当随后接收到关机命令时,如图3中所示,操作系统可以确定合并了的休眠的关机序列可以被使用。相反地,如果已经通过API做出了调用以表明请求完全关机和完全启动序列,则操作系统可以执行完全关机序列,而不创建休眠文件,使得在随后接收到启动命令时,可以执行完全启动序列。任何合适的机制可以被用来确定应用组件是否需要重启,该重启涉及完全关机和后续的完全启动序列。作为一个示例,应用组件可以被编程以调用在框422指示的API。可替代地,操作系统可以包含计算机可执行指令以在应用组件被加载时分析应用组件以识别可能需要重启的功能。在那种情况下,在决策框440处的处理可以涉及在应用组件被加载时分析每个应用组件。然而,在决策框440处可以使用任何合适的技术以基于加载的应用组件确定是否可能需要重启。虽然图4图示了基于加载的应用组件确定是否需要重启,但是对于计算设备100 的其他元件可以执行类似的处理。例如,对于操作系统组件可以执行类似的处理。可替代地或者此外,可以基于安装在计算设备100中的设备或者计算设备100所连接的设备执行类似的处理。不管在可以指示需要重启的决策框440处所识别的条件如何,如果识别出那些条件,则处理可以分支至框442,在此处指示被存储。该指示可以响应于来自用户的关机命令触发完全关机,或者可替代地或者此外,可以响应于启动的用户命令触发完全启动序列,即使休眠文件是可得到的。如果没有检测到那些条件,处理可以前进至框444。在框444处,数据可以被收集以允许计算设备100确定使用合并了休眠的启动序列的有效性。在这个示例中,在框444处的处理记录执行子过程450的时间,在这个示例中子过程450指示完全启动序列的执行。该信息可以以任何合适的方式记录。例如,关于启动时间的信息可以被记录在非易失存储器152中。信息可以被记录为单独的启动时间,指示每当执行这样的完全启动序列时执行完全启动序列所需的时间。可替代地,信息可以被记录为在多个完全启动序列上的运行平均值,或者以任何其他合适的方式记录。在框444处,关于启动时间的信息可以任何合适的方式被确定。作为一个示例,可以在发起子过程450时启动计时器,并且在处理到达框444时读取。然而,其它时间测量技术是公知的并且可以被应用在框444处。一旦记录启动时间,处理前进至框446。此处,可以发生计算设备100的常规操作。 这种操作可以持续,直到接收到关机命令。图5图示了可以响应于这种关机命令而执行的处理。图5中图示的过程包括框 510,其表示使用本领域中已知技术运行计算设备100。在运行期间,可接收到关机命令 512。关机命令512可以由用户以任何合适的方式输入而生成,诸如通过图形用户界面或者硬件控制而生成。在一些实施方式中,计算设备100可以支持可以触发关机序列的多种类型的用户输入。图7是图形用户界面的图示,用户通过该图形用户界面可以输入关机命令。在这个示例中,通过按压出现在计算机操作系统所呈现的用户界面上的标记为“开始”的按钮来调用图形用户界面710。然而,应当理解,不同的操作系统支持不同的界面,并且可以使用任何合适的技术调用用户界面。响应于按压该按钮,可以使用本领域的已知技术由操作系统呈现图形用户界面 710。通过图形用户界面710,计算设备100的用户可以在多个可能的命令中选择用于终止计算设备上的当前会话。此处,示出了三个选项。此处命令714被标记为“关机”。在许多计算设备上这种关机命令是常规的,并且已经传统地被用于指示计算设备应当执行完全关机序列。然而,在图5中所图示的实施方式中,关机命令714的用户选择可导致计算设备100的操作系统确定是否改为执行合并了休眠的部分关机序列。在这个实施方式中,,操作系统以一定方式使用对于用户具有语义含义的命令的标签,该方式与该含义潜在地不一致。虽然如此,有条件地处理保存了用户的期望。然而,如果用户想要保证执行完全关机序列,则为此原因可以提供具有不同标签的单独的命令。如果用户期望命令计算设备执行完全关机,而不创建休眠文件,以使得在随后的启动命令时将通过从非易失存储器150中加载软件并使用来自非易失存储器152的数据配置它来生成操作系统状态,则用户可以选择命令715。在这个示例中,命令715被标记为“重启”。这种标记被用于向用户标识出将要执行完全关机序列,以使得在随后的启动命令时将执行完全启动序列。在这种情况中,命令715执行的动作类似于常规的计算系统中在发出“关机”命令时所执行的那些动作。然而,在呈现图形用户界面710的该计算设备中, 与传统的关机命令相关联的语义标签已经被应用到命令714。因此,命令715被给予不同的标签。图形用户界面710还可以包含用于终止用户会话的其它选项。在这个示例中,图形用户界面710包括命令716。在选择命令716时,计算设备100通过中断用于指定的用户的会话而响应。计算设备的这种行为是本领域中已知的。在这种情况下,命令716可相应于常规的注销命令。然而,许多合适的命令选项可以被包括在图形用户界面710中,在所图示的实施例中,只有命令714或者716的选择导致发起图5中所图示的过程。不管接收关机命令的方式和它的性质如何,响应于该命令的接收,处理可以从框 510转换至框514。在框514处,可以执行关机序列的开始部分。在框514处执行的关机序列的这部分可涉及常规处理。在这个示例中,在框514处的处理终止计算设备100上的任何用户会话(一个或多个)。如上面结合图1所描述的,这种处理可以涉及关闭应用和保存用户状态数据134或者执行任何其它合适的动作。作为那些动作的结果,从一个用户会话持续至下一个用户会话的用户状态130中的任何信息从用户状态数据134移动至非易失存储器,诸如非易失存储器152。不管用来终止用户会话或其它持续用户状态数据134所采取的特定步骤如何,当完成那些步骤时,处理可以前进至决策框516。在决策框516处,图5的过程可以根据是否已经请求重启而分支。可以以任何合适的方式执行框516处的处理。在决策框516处可以应用任何一个或多个标准以确定是否已经请求重启。作为一个示例,在决策框516处可以使用用户输入来确定是否已经请求重启。例如,当用户选择重启命令715时(图7),该用户选择可以充当已经请求重启的指示。作为另一个示例,结合图4描述了应用组件可以请求重启,诸如通过在框442处调用API (图4)。如果已经做出了该调用,在决策框516处的处理可以确定已经请求了重启。 虽然在一些实施例中,在决策框516处的处理可取决于多个标准。例如,处理可以确定应用组件已经通过在框442处调用API而注册了对重启的请求。在决策框516处的另一处理可以确定这种请求是否应当被认可。这种处理可以包括,例如确定在执行图5的过程的时候该请求的应用组件是否仍然在执行。可替代地或者此外,在决策框516处的处理可能需要确定请求的组件是否具有足够的访问权限来命令重启。不管在决策框516处执行的处理的性质如何,作为该处理的结果,如果确定已经请求重启,则过程分支至框530。在这种情况下,框530表示完全关机序列。这种完全关机序列可以按照本领域已知的方式执行。其可能需要中断用户会话、冲洗脏数据并且使计算设备掉电。不管执行关机序列所采取的特定步骤如何,在完成时,图5的过程可以终止,使计算设备100处于掉电状态。相反地,如果在决策框516处没有请求重启,所述处理可以前进至决策框518。在决策框518处的处理是有条件的处理的一个示例,以确定是否应当执行完全关机序列或者应当执行跟随有休眠的部分关机。一般地,在决策框518处的处理可能需要应用任意合适的策略。在接收到关机命令时可评估这种策略。在图示的示例中,应用的策略涉及使用休眠实现的时间节约。在决策框518处,可确定是否通过从休眠中启动实现了时间节约。可以通过比较所记录的信息来做出这种确定,所述信息是关于使用完全启动序列或者从跟随有部分启动序列的休眠中恢复而将计算设备100置于运行状态的相对时间。关于用于执行完全启动的时间的信息可以基于例如在框444处存储的信息(图4)。关于从休眠恢复之后将计算设备100置于运行状态所需要的时间的信息可以按照类似的方式基于在图6的过程执行的结尾处记录的信息而确定。如果基于跟随有部分启动的恢复创建运行状态的时间比执行完全启动的时间更慢,则所述处理可从决策框518分支至子过程530。相反地,如果在决策框518的处理确定跟随有启动序列的部分执行的从休眠恢复是更优选的,则所述处理可以前进至决策框520。在决策框520处,可执行进一步的有条件的处理以确定计算设备100是否处于适合于合并了休眠的部分关机序列的状态。这种处理可能需要确定在当前会话期间配置改变是否针对任何组件而被指定。如果这种配置改变要求重启以变得有效,则涉及休眠的关机可能不会实现用户对于计算设备100的行为的期望,因为选择关机命令714 (图7)与传统地将引起计算设备在下次启动时应用配置改变的标签相关联。如果计算设备100响应于具有传统地用于指示完全启动的标签的命令而实现涉及休眠的关机序列,则在随后启动时,那些组件的状态将恢复它们先前的状态而不是基于配置改变的状态。因此,可能存在一种情况,在该情况下调用可能在其它方面与完全关机序列相关联的命令的用户期望将不会表现出所期望的行为。为了避免计算设备100以与所期望的用户行为不一致的方式运行,图5的过程可以根据计算设备是否自动地确定应当执行完全关机序列以便获得与用户期望一致的操作而进行分支。如果是,则过程分支至子过程 530,此处如上面所描述,执行完全关机序列。在所图示的实施例中,通过确定在当前会话期间是否任意组件已经改变配置设置来识别将要在其下执行完全关机序列的条件。如本领域已知的用于做出这种确定的技术可以被应用在决策框520处。作为一个示例,改变执行组件的配置设置的处理可能需要设置标志(flag)或者以其它方式记录配置改变的指示。在那种情况下,在决策框520处的处理可能需要检查状态标志的值。然而,可替代地或者此外可以使用其它合适的处理。例如,处理可能需要扫描一个或多个存储器位置以检测未应用的配置设置。不管在决策框520处如何做出确定,如果不存在需要完全关机和/或随后完全启动的条件,则所述处理可以前进至决策框522。在框522处,执行将计算设备100完全置于目标状态的操作,从该目标状态发生休眠。如上面结合图3所描述,那个目标状态可相应于如下状态在该状态下,运行系统状态被保持但是所有用户会话已经中断,并且在随后的用户登录时所需要的任何用户状态已经以合适的形式保存在非易失存储器中。可以执行以实现这种目标状态的操作的一个示例是冲洗脏数据。可替代地或者此外,如果作为系统状态数据148的一部分存储的其它数据涉及已登录用户的会话,则在框 522处的处理可能需要将该数据存储在非易失存储器152中。不管执行何种操作以完全地实现目标状态,所述处理可随后前进至框524。框 524,稍后可被用于确认休眠文件的适宜性的信息可以被采用,其中休眠文件用于在计算设备100上重建目标状态。作为一个示例,一些计算设备可以使用多种操作系统或者操作系统的多种实例来配置。作为操作系统的特定实例的关机的一部分而创建的休眠文件可以被用于仅响应于启动操作系统的相同实例的命令而还原操作系统状态。然而,计算设备可能使用不同于创建休眠文件时所使用的操作系统的操作系统操作的可能性产生了在休眠文件被创建的时间和将基于该文件触发状态重建的随后的启动命令的时间之间操作系统将在计算设备上运行的可能性。另一个操作系统或者相同操作系统的实例进行的介入操作可能产生以下可能性在休眠文件中捕获的状态不再表示应当被创建以便实现与用户期望一致的操作的计算设备的状态。例如,在利用第一操作系统进行关机操作之后,如果用户已经加载了第二操作系统并且对由第一操作系统使用的任何数据或其它组件进行改变,那么在这个实例中从休眠文件中恢复将导致创建不反映介入的用户改变的状态。因此,可以使用一种机制来确定在后续的启动命令时休眠文件是否适合于用来重建计算设备100的操作状态。在图5中所图示的实施例中,那种机制需要存储休眠文件被创建时的信息。在这个特定示例中,该信息是由文件系统维护的序列号。特别地,序列号可以由NTFS文件系统或者可以在计算设备上运行的其它文件系统来保持。这种序列号可以在每当盘存储器的卷(volume)被加载时递增。因此,在框5 处的处理可能需要存储与包含休眠文件以及与操作系统关联的其它数据的卷相关联的NTFS序列号。这个值被存储在非易失存储器中,使得可以结合后续的启动命令访问它。不管在框5 处记录以允许随后确定休眠文件可用性的特定信息如何,所述处理可以前进至子过程526。子过程5 可以涉及存储休眠文件。可以使用与计算设备休眠相关联的常规技术来执行在框5 处的处理。然而,应当理解,可以使用执行休眠文件的任何合适的技术。不管作为子过程526的一部分用于存储休眠文件的特定技术如何,在存储休眠文件时,可以切断计算设备100的电源。计算设备100可以停留在断电状态中,直到接收到启动命令。如图4和图6中所图示,随后的启动命令可以被处理。图4图示了响应于接收到开始命令可以执行的处理。该处理包括在框410处和在决策框412处的处理。当处理到达决策框412时,根据休眠文件是否存在(诸如如果在紧挨着地在前关机期间执行了子过程5 则可能存在)所述过程可进行分支。当该休眠文件存在时,图4的过程可以通过标记为A的连接器分支以继续进行图6中所图示的处理。图6的处理图示了当休眠文件存在时可以执行的过程。图6的过程在框601处开始。在框601处,根据在决策框412 (图4)处检测到的休眠文件是否表示在关机期间捕获了目标状态的休眠文件(诸如结合子过程5 所指示的),所述过程可进行分支。如果是,所述过程可前进至决策框610。可替代地,休眠文件可以表示常规的休眠文件,除了系统状态信息之外,其合并了用户状态。可以根据常规的技术使用这种休眠文件以还原那种状态。在子过程670处可以执行常规的处理,其中休眠文件被用于重建在先前休眠时刻的计算设备的状态,其包括用户状态。在子过程670完成后,处理可继续至框638。相反地,如果如决策框601所确定的休眠文件作为关机过程的一部分被记录,则所述过程继续至决策框610。在决策框610处开始,可执行一个或多个操作以确定响应于启动命令是否应当执行完全启动序列或者应当执行跟随有部分启动序列的从休眠中恢复。在这个示例中,检查多个条件以确定是否应当执行从休眠中恢复,即使已确定存在休眠文件。 在决策框610处检查的一个这种条件需要确定对于计算设备100是否已发生硬件配置的改变,使得从休眠中恢复可能导致重建与当前计算机配置不匹配的状态信息。这种改变可以任何合适的方式被检测到,包括检查在上次计算设备的会话期间创建并且存储在非易失存储器中的硬件组件的目录。在随后启动时计算设备的硬件配置可以被检查以保证目录中的每个项目被安装。然而,应当理解检查目录只是可以如何执行这种处理的一个示例。不管如何做出确定,如果硬件配置已经改变,则处理可从决策框610分支至子过程650。子过程 650可能需要重新加载操作系统。可以使用本领域的已知技术执行在子过程650处的处理。 在子过程650中加载操作系统之后,所述过程可前进至框632。相反地,如果在决策框610处的处理确定没有硬件配置发生,处理可前进至框 612。在框612处,可以执行进一步的处理以动态地确定计算设备100是否处在将要执行从休眠恢复的状态中。在这种情况中,在决策框612处的处理可以使用在框524 (图5)处存储的信息以确定在休眠文件的创建之间是否发生改变,使得如果执行从休眠恢复,则不会满足用户的期望。在这个示例中,在框612处的处理涉及检查与包含休眠文件的卷相关联的NTFS序列号。如果自从创建休眠文件以来该卷还没有被加载,则在启动时在框612处读取的序列号将与在框5M处存储的序列号的差别为表示序列号中的机会的已知量。相反地,如果序列号的差别大于该已知量,在框612处的处理将识别出在休眠文件的创建时刻和触发从休眠恢复的启动命令的时刻之间可能发生了改变。在决策框620处,所述过程可基于在框612处执行的比较进行分支。如果序列号不一致,过程分支至子过程750。当序列号中的差别指示休眠文件可能不会建立与用户期望一致的计算设备的操作状态时,可能发生这种分支。因此,执行子过程650,其中通过重新加载操作系统软件创建系统状态140。相反地,如果在框612处执行的比较指示序列号是一致的,则过程可前进至子过程630。当采取该分支时,已经确定休眠文件适合于重新建立计算设备的状态。因此,子过程630需要从休眠文件中重新建立计算设备的目标状态。可以使用用于从休眠恢复的已知技术执行子过程630。然而,在这种情况下,不是重新建立包括用户状态的计算设备的状态, 而是基于休眠文件的恢复重新创建休眠文件被创建时刻的目标状态。这个状态例如可以表示在子过程526 (图5)的开始处计算设备的状态。然而,在其它实施例中,部分用户状态可以被存储在休眠文件中,诸如当操作系统预测应用可能由用户在完成启动序列时打开并且当那些应用仍然打开时存储休眠文件以捕获计算设备的状态时发生。在完成子过程630时,图6的过程可前进至框632。不管处理是通过子过程630还是650到达框632,在框632处响应启动命令所需要的时间可以被记录。记录的值的含义可依赖于处理到达框632所经过的路径。当处理通过子过程630到达框632时,时间表示使用从休眠中恢复作为处理的部分的启动所用的时间,并且相应地被记录。相反地,当处理通过子过程650到达框632时,时间表示使用完全启动序列的启动所用的时间,并且相应地被记录。在框632处的处理可以任何合适的方式执行,包括使用如结合框444 (图4)所描述的技术。作为在框632处记录信息的结果,在决策框518处(图5)的处理可具有可用于将响应于基于完全启动序列的启动命令的时间与响应于基于包括从休眠恢复和启动序列的一部分的启动命令的时间相比较的信息。这个信息可以被记录并且以任何合适的方式比较。然后处理可前进至子过程634。在子过程634处,启动序列的一部分可以被执行以创建所期望的计算设备的操作状态。这部分可以包括登录用户。这个操作可以以已知的方式执行并且可以包括自动登录或者可以包括呈现登录屏幕,通过该屏幕用户可以呈现信息以手动地执行登录过程。在处理通过子过程650到达子过程634的情况下,在子过程650和子过程634处的处理的组合可以表示完全启动序列。相反地,如果处理通过子过程630到达子过程634,对启动命令的响应涉及从休眠恢复以及启动序列的一部分。在这个示例中,启动序列的该部分表示在子过程634中登录用户。这种处理可以使用常规的技术执行。然而,用于完成跟随从休眠中恢复的启动序列的特定步骤可以是任何合适的技术。然后过程前进至框638,此处休眠文件可被无效。处理还可以随着子过程670到达框638。不管处理如何到达框638,休眠文件可以任何合适的方式被无效,其指示当它可能重建错误的操作状态时休眠文件稍后不能被使用。可以通过例如以一些方式改变它的内容、在单独存储器结构中记录文件无效或者通过删除该文件来无效休眠文件。图6的过程然后可以终止。当过程终止时,计算设备100可被配置在运行状态中并且之后可以继续运行直到接收到关机或者重启命令。图8图示了可实现本发明的合适的计算系统环境800的示例。计算系统环境800 只是合适的计算环境的一个示例,并且不旨在暗示关于本发明的使用或者功能的范围的任何限制。计算环境800不应当被解释为具有与示例性运行环境800中图示的组件的任意一个或任意组合相关的任何依赖或者需要。本发明是可与许多其它通用或者专用计算系统环境或配置一起操作的。可适于本发明使用的公知计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费型电子设备、网络PC、迷你计算机、大型计算机、包括以上系统或设备的任一个的分布式计算环境等寸。所述计算环境可以执行计算机可执行的指令,诸如程序模块。通常,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。参考图8,用于实现本发明的示例性系统包括计算机810形式的通用计算设备。计算机810的组件可以包括但不限于处理单元820、系统存储器830以及将包括系统存储器的各种系统组件耦合至处理单元820的系统总线821。系统总线821可以是若干类型的总线结构的任一种,其包括存储器总线或者存储器控制器、外围总线以及使用多种总线架构的任意一种的本地总线。为了举例而非限制,这样的架构包括工业标准架构(ISA)总线,微通道架构(MCA)总线,增强ISA (EISA)总线、视频电子标准协会(VESA)本地总线以及也被称为Mezzanine总线的外围组件互连(PCI)总线。计算机810典型地包括多种计算机可读介质。计算机可读介质可以是任何可用的介质,其可被计算机810访问并且包括易失和非易失介质、可移除和非可移除介质。为了举例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的易失和非易失、可移除和非可移除介质,用于存储诸如计算机可读指令、数据结构、程序模块或者其它数据之类的信息。计算机存储介质包括但不限于RAM、 ROM、EEPR0M、闪存或其他存储器技术、⑶-ROM、数字多功能盘(DVD)或者其它光盘存储装置、 盒式磁带、磁带、磁盘存储器或者其它磁存储设备、或者能被用来存储所期望的信息并且可被计算机810访问的任何其它介质。通信介质典型地包含已调制数据信号(诸如载波或者其它传输机制)中的计算机可读指令、数据结构、程序模块或者其它数据,并且包括任何信息传递介质。术语“已调制数据信号”意指一种信号,其特征中的一个或多个特征按照编码信号中的信息的方式来设置或改变。为了举例而非限制,通信介质包括诸如有线网络或者直接有线连接之类的有线介质,和诸如声学、RF、红外和其它无线介质之类的无线介质。上述任意的组合也应当被包括在计算机可读介质的范围内。系统存储器830包括易失和/或非易失存储器的形式的计算机存储介质,诸如只读存储器(ROM) 831和随机存取存储器(RAM) 832。包含比如在启动期间帮助在计算机810 内的元件之间传输信息的基本例程的基本输入/输出系统833 (BIOS)典型地被存储在ROM 831中。RAM 832典型地包含可由处理单元820即时访问的和/或当前被其操作的数据和 /或程序模块。为了举例而非限制,图8图示了操作系统834、应用程序835、其它程序模块 836以及程序数据837。计算机810还可以包括其它可移除/非可移除、易失/非易失计算机存储介质。为了举例而非限制,图8图示了从非可移除、非易失磁介质中读取或者向其写入的硬盘驱动 840,从可移除、非易失磁盘852中读取或者向其写入的磁盘驱动851,和从诸如⑶-ROM或者其它光介质之类的可移除、非易失光盘856中读取或者向其写入的光盘驱动855。硬盘驱动840可以被实现为旋转的磁介质,其包含可以从磁介质中读取或向其写入的一个或多个磁头。可以在示例性操作环境中使用的其它可移除/非可移除、易失/非易失计算机存储介质包括但不限于盒式磁带、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等。 硬盘驱动841典型地通过诸如接口 840之类的非可移除存储器接口连接至系统总线821,并且磁盘驱动851和光盘驱动855典型地通过诸如接口 850之类的可移除存储器接口连接至系统总线821。上面讨论并在图8中图示的驱动和它们关联的计算机存储介质提供了计算机可读指令、数据结构、程序模块和用于计算机810的其它数据的存储。在图8中,例如,硬盘驱动841被图示为存储操作系统844、应用程序845、其它程序模块846和程序数据847。注意到这些组件可以与操作系统834、应用程序835、其它程序模块836和程序数据837相同或者不同。操作系统844、应用程序845、其它程序模块846和程序数据847在此处被给予了不同的数字以图示至少它们是不同的拷贝。用户可以通过输入设备将命令和信息输入至计算机810,输入设备诸如键盘862和通常被称为鼠标、轨迹球或触摸板的指示设备861。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口 860连接至处理单元820,但是可以通过其它接口和总线结构连接,诸如并行端口、游戏端口或者通用串行总线(USB)。监视器891 或者其它类型的显示设备也经由诸如视频接口 890之类的接口连接至系统总线821。除了监视器之外,计算机还可以包括其它外围输出设备,诸如扬声器897和打印机896,其可以通过输出外围接口 895而连接。计算机810可以在使用到诸如远程计算机880之类的一个或多个计算机的逻辑连接的联网环境中操作。远程计算机880可以是个人计算机、服务器、路由器、网络PC、对等设备或者其它常见网络节点,并且典型地包括上面相对于计算机810所描述的许多或者所有元件,虽然只有存储器存储设备881在图8中被图示出。图8中描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但是还可以包括其它网络。这种联网环境在办公室、企业计算机网、内联网和因特网中是司空见惯的。当在LAN联网环境中使用时,计算机810通过网络接口或者适配器870连接至LAN 871。当在WAN联网环境中使用时,计算机810典型地包括调制解调器872或者用于通过诸如互联网之类的WAN 873建立通信的其它装置。可以是内部或者外部的调制解调器872可经由用户输入接口 860或者其它合适的机构连接至系统总线821。在联网环境中,相对计算机810描述的程序模块或其部分可以被存储在远程存储器存储设备上。为了举例而非限制,图8图示了驻留在存储设备881上的远程应用程序885。应当理解,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它装置。因此已经描述了本发明的至少一个实施例的多个方面,应当理解,本领域技术人员将易于想到各种变化、改变和改进。例如,描述了在启动时基于所观察到的执行每个序列的相对时间做出对于是执行完全启动序列还是执行跟随有部分启动序列的从休眠中恢复的决定。应当理解在关机时可以执行类似的处理。如果在关机时执行,可以通过存储或不存储休眠文件实现决策。因此, 应当理解,在启动时发生的所述操作可替代地可以在关机时执行,且反之亦然。上述的益处可以以其他方式实现。例如,除了避免由计算机的CPU和诸如盘的其它组件工作之外,在设置状态的过程期间,这种方式允许数据响应于关机命令被保存在休眠文件中,其将帮助在对随后的启动命令的响应期间和/或在启动命令的处理已经完成之后加速用户体验。例如,当用户登录时,多个应用可以被发动(例如WINDOWS EXPLORER网页浏览器,启动应用等)。操作系统可以明确地追踪在完成启动命令的处理之后所定义的间隔期间用户访问的文件(和它们的偏差)。那些应用或其它组件能够被读入存储器中以被保存在关机命令的随后处理期间创建的休眠文件中。以这种方式,这些应用或其它组件将被顺序地从盘中读取至内存中,而不是作为发起那些应用的一部分必须随机地读取它。同样地,描述了用户登录和注销。应当理解,可以在多个用户登录至计算机的情况下提供关机命令。如果部分地执行关机序列并之后执行休眠操作,则部分关机序列可以导致多个用户的注销,但是上述的技术仍然可以被应用。例如,此处描述的技术可以被用于提供自动化服务而不需要用户干预。例如,通过执行部分关机序列并然后休眠而响应关机命令的计算设备可以被配置为在不期望用户活动的时刻自动地醒来,诸如在半夜。在醒来时,计算设备可以执行维护活动,诸如应用软件更新。对于用户,它表现为在当天结束时计算设备被关机,使得维护活动对于用户是透明的。例如,如果计算设备响应于关机命令检测到它具有维护活动或者补丁要应用并且指示它自己在适宜的时间醒来,可以实现这种能力。当它醒来时,计算设备执行任何必要的维护活动,诸如应用补丁。然后系统进行完全重启并然后再次执行跟随有休眠的部分关机。这种情况使得软件卖方能够提供一种解决方案,其使得维护活动对于用户是不可见的。这种能力能够被应用到消费者和企业PC。除了改善用户体验,这种方法还可以节能,特别是对于企业用户。这种变化、修改和改进旨在作为本公开的一部分,并且旨在处于本发明的精神和范围中。因此,前面的描述和附图仅是举例。本发明的上述实施例可以以多种方式实现。例如,可以使用硬件、软件或其组合实现所述实施例。当以软件实现时,软件代码可以在任何合适的处理器或者处理器集合上执行,无论是在单个计算机中提供的还是在多个计算机中分布的。这种处理器可以实现为集成电路,在集成电路组件中带有一个或多个处理器。然而,处理器可以使用任何合适的格式的电路来实现。进一步地,应当理解,计算机可以多种形式中的任一种体现,诸如安装在架上的计算机、台式计算机、膝上型计算机或平板计算机。此外,计算机可以嵌入通常不被看做计算机但是具有合适的处理能力的设备中,包括个人数字助理(PDA)、智能手机或者任何其它合适的便携式或固定的电子设备。而且,计算机可以具有一个或多个输入和输出设备。这些设备尤其可以用于呈现用户接口。可以被用于提供用户接口的输出设备的示例包括用于视觉呈现输出的打印机或显示屏幕和用于听觉呈现输出的扬声器或者其它声音生成设备。可以用于用户接口的输入设备的示例包括键盘,和诸如鼠标、触摸板和数字面板之类的指示设备。作为另一个示例, 计算机可以通过语音识别或者其它可听的格式接收输入信息。这样的计算机可以通过一个或多个网络以任何合适的方式被互连,所述网络包括局域网或者广域网,诸如企业网络或者因特网。这样的网络可以基于任何合适的技术并可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或者光纤网络。而且,此处概述的各种方法或过程可以被编码作为软件,其可以在使用多种操作系统或平台的任意一个的一个或多个处理器上执行。此外,这种软件可以使用多种合适的编程语言和/或编程或脚本工具的任意一种来编写,并且还可以被编译为在主机或虚拟机上执行的可执行机器语言代码或者中间代码。在这个方面,本发明可以被体现为计算机可读存储介质(或者多个计算机可读介质)(例如计算机存储器、一个或多个软盘、高密度盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、在现场可编程门阵列或其它半导体设备中的电路配置、或者其它非瞬时性的有形计算机存储介质),其利用一个或多个程序来编码,所述程序在一个或多个计算机或者其它处理器上执行时、执行实现上面讨论的本发明各种实施例的方法。计算机可读存储介质或媒体可以是可传送的,使得存储在其上的一个或多个程序能够被加载至一个或多个不同的计算机或者其它处理器上,以实现上面讨论的本发明的各种方面。如此处使用的术语“非瞬态的计算机可读存储介质”只包含可以被认为是制造品(即制造的物品)或机器的计算机可读介质。可替代地或者此外,本发明可以体现为计算机可读存储介质之外的计算机可读介质,诸如传播信号。术语“程序”或“软件”在此以一般意义使用以指代可以用于编程计算机或者其它处理器以实现上面讨论的本发明的各种方面的任意类型的计算机代码或者计算机可执行指令集。此外,应当理解,根据这个实施例的一个方面,在执行时执行本发明的方法的一个或多个计算机程序不需要驻留在单个计算机或者处理器之上,而是可以模块化的方式分布在多个不同的计算机或处理器之中以实现本发明的各个方面。计算机可执行指令可以有多种形式,诸如由一个或多个计算机或者其它设备执行的程序模块。通常,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、 对象、组件、数据结构等。典型地,程序模块的功能在各个实施例中可以按照期望的方式被组合或分布。而且,数据结构可以任何合适的方式被存储在计算机可读介质中。为了图示的简明性,数据结构可以被示出为具有通过数据结构中的位置而相关联的字段。这种关系同样可以通过利用传达字段间关系的计算机可读介质中的位置为字段分配存储而实现。然而, 可以使用任何合适的机制来建立数据结构的字段中信息之间的关系,包括通过使用指针、 标签或建立数据单元间关系的其它机制。本发明的各个方面可以被单独地使用、组合地使用或者以前面描述的实施例中未特定讨论的多种布置而使用,因此本发明的各个方面在其应用方面不限于前面的描述或者附示中所提到的组件的细节和布置。例如,在一个实施例中描述的方面可以按照任意方式与其它实施例中描述的方面相结合。而且,本发明可以体现为方法,已经提供了该方法的示例。作为方法的一部分执行的动作可以按照任何合适的方式被排序。因此,实施例可以被构成为其中动作按照与所图示的不同的顺序执行,其可以包括同时地执行一些动作,即使在图示的实施例中示出为顺序的动作。在权利要求中修饰权利要求元素的诸如“第一”、“第二”、“第三”等次序术语的使用其自身并不意味着一个权利要求元素相对于另一个有任何优先级、优先权或顺序,或者方法的动作被执行的时间次序,而是仅仅被用做区分具有特定名称的一个权利要求元素与具有同样名称(若没有次序术语的使用)的另一个单元的标记,从而区别权利要求元素。而且,此处使用的措辞和术语是为了描述的目的而不应当被认为是限制。此处“包括”、“包含”或“具有”、“含有”、“涉及”及其变形的使用意指包含其后列出的项目及其等同物以及附加项目。
权利要求
1.一种操作包括多个硬件组件(110,870)的计算设备(100)的方法,该方法包括 接收启动计算设备的命令;确定计算设备的条件(412,601,610,620);基于所确定的条件有条件地处理所接收到的启动命令,该有条件的处理包括 当所确定的条件是第一条件时,将状态信息从非易失存储器复制到易失存储器中,而不执行完全启动序列(630);以及当所确定的条件是第二条件时,执行完全启动序列(450)。
2.权利要求1的方法,其中确定所述条件是第一条件包括,至少部分地检测休眠文件(412)。
3.权利要求2的方法,其中确定所述条件是第一条件进一步包括,至少部分地检测休眠文件在创建之后未被修改 (620)。
4.权利要求2的方法,其中确定所述条件是第一条件进一步包括,至少部分地检测 在创建休眠文件之后包含休眠文件的卷未安装;或者计算设备的硬件配置在创建休眠文件之后改变(612)。
5.权利要求1的方法,进一步包括 接收使计算设备关机的命令响应于接收关机的命令,将易失存储器中的状态信息复制至非易失存储器,而不执行完全关机序列(5 );结合在非易失存储器中的状态信息记录序列号,该序列号与安装包含非易失存储器中复制的状态信息的卷相关联。
6.权利要求5的方法,其中有条件地处理包括确定与所述卷相关联的当前序列号相对于所记录的序列号的改变。
7.权利要求1的方法,进一步包括当确定的条件是第一条件时,记录通过从非易失存储器复制状态信息至易失存储器而不执行完全启动序列来响应启动命令的时间指示;当确定的条件是第二条件时,记录通过执行完全启动序列来响应启动命令的时间指示。
8.权利要求7的方法,进一步包括 响应于关机命令当先前记录的通过从非易失存储器复制状态信息至易失存储器而不执行完全启动序列的启动时间指示小于先前记录的通过执行完全启动序列的启动时间指示时,选择性地创建休眠文件。
9.一种实现计算设备的操作系统的设备,该操作系统包括多个组件,所述设备包括 用于执行启动序列的部分并将状态信息从非易失存储器中的休眠文件复制至易失存储器(630,6;34)的第一装置;执行启动序列的第二装置,启动序列包括加载操作系统(450)并建立用户状态(634); 通过在第一装置和第二装置之间选择并发起所选择的装置的执行来响应启动命令(412,601,610,620)的第三装置。
10.权利要求9的设备,其中 所述设备进一步被配置为记录当选择的装置包括第一装置时响应启动命令的第一时间指示(636);和记录当选择的装置包括第二装置时响应启动命令的第二时间指示(444)。
全文摘要
在接收到关机命令时,通过记录表示目标状态的状态信息提供了快速的计算机启动。在这个目标状态中,计算设备可能已经关闭所有用户会话,使得没有用户状态信息被包括在目标状态中。然而,操作系统仍然可以在执行。响应于启动计算机的命令,这个目标状态可以根据所记录的目标状态信息被快速地重建。可以执行启动序列的部分以完成启动过程,包括建立用户状态。为了保护用户期望不管响应于关机命令的改变,保持所记录的状态信息的文件的创建和使用可以取决于动态确定的事件。而且,用户和程序界面可以提供不考虑所记录的状态信息的创建或使用的选项。
文档编号G06F9/445GK102446111SQ20111040051
公开日2012年5月9日 申请日期2011年12月6日 优先权日2010年12月6日
发明者E. 金 B., N. 威尔逊 E., V. 斯塔克 K., 伊冈 M., 贾因 N., L. 斯特曼 P., 张 S., 卡拉古尼斯 V., 贝克 Y. 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1