CN102414658B - 捕捉和加载操作系统状态的方法 - Google Patents

捕捉和加载操作系统状态的方法 Download PDF

Info

Publication number
CN102414658B
CN102414658B CN2010800198582A CN201080019858A CN102414658B CN 102414658 B CN102414658 B CN 102414658B CN 2010800198582 A CN2010800198582 A CN 2010800198582A CN 201080019858 A CN201080019858 A CN 201080019858A CN 102414658 B CN102414658 B CN 102414658B
Authority
CN
China
Prior art keywords
session
file
operating system
calculating
state
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN2010800198582A
Other languages
English (en)
Other versions
CN102414658A (zh
Inventor
D.阿布扎里安
T.L.卡彭特
H.S.库尔卡尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102414658A publication Critical patent/CN102414658A/zh
Application granted granted Critical
Publication of CN102414658B publication Critical patent/CN102414658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/22Microcontrol or microprogram arrangements
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

给出了涉及捕捉和加载基线系统状态的操作系统状态捕捉和加载技术实施例。在一个实施例中,这通过存储期望在将来的时间处恢复的计算机的操作系统存储器的状态来实现。不允许对与该计算机相关联的持久性存储设备做出改变。相反,如果没有阻止在确保的计算会话期间会已经对该持久性存储设备的改变,则将这些改变存储在单独的计算会话文件中。每当期望将操作系统返回到其基线条件时,将所存储的基线系统存储器状态加载至操作系统存储器中,来代替操作系统存储器的当前状态。

Description

捕捉和加载操作系统状态的方法
背景技术
网吧和其他共享的接入主机期望在每次计算会话之后将共享的计算机恢复到基线系统条件,以保证一致和可靠的用户体验。典型地,这要求主机系统在每次会话之后重新启动,以恢复基线状态。 
休眠允许将系统存储器和寄存器(如设备硬件寄存器状态、页面文件/应用和驱动器状态等)的内容存储至诸如硬盘之类的持久性存储器中,以用于更快速恢复与最后一次计算会话相关联的条件的目的。这个特征主要用于允许关闭计算机的操作系统,以便在随后启动时,操作系统从休眠文件中恢复并从其关闭的点继续。 
这个休眠特征一般利用单个文件(如hiberfil.sys),该文件在该特征启动时写入。随后,该休眠文件用于将操作系统恢复至它之前的条件以作为启动过程的一部分。 
发明内容
提供本发明内容来以简化的形式引入概念摘选,这些概念在下文的具体实施方式中进一步描述。本发明内容不用来标识要求保护的主题的关键特征或者基本特征,也不用来作为在确定要求保护的主题的范围时的帮助。 
在此描述的操作系统状态捕捉和加载技术实施例通常至少涉及在启动过程之外的基线系统状态的捕捉和加载。在一个实施例中,这通过首先存储计算机操作系统存储器的各状态(期望在将来时间处恢复为基线条件)来实现。一旦该基线系统存储器状态被存储了,就不允许对与该计算机相关联的持久性存储器的改变。相反地,在保证的计算会话期间会已经对该持久性存储器做出的改变(如果它们没有被阻止)被存储在分离的计算会话文件中。在计算会话期间采用存储在该计算会话文件中的改变数据,以及存储在该持久性存储器中的数据。 
每当期望将该操作系统返回到其基线条件时(如在计算会话的终止时),将存储的基线系统存储器状态加载到该操作系统存储器中,来代替该操作系统存储器的当前状态。由于已经不允许对与该计算机相关联的持久性存储器的改变,该操作系统现在恢复到其基线条件。 
如果捕捉各操作系统状态的唯一目的是将该操作系统返回到基线系统状态,那么在一个实施例中放弃计算会话文件。然而在另一个实施例中,该计算会话文件可被保持并在将来的时间处加载,以从其中断的位置继续相应的计算会话。 
如上所述,后一个实施例通常需要在每个计算会话的结束时捕捉和恢复该基线条件。然而每当确定当前的计算会话已经终止时,也会发生另外的动作。即存储会话状态文件,该会话状态文件代表在该计算会话终止时计算机的操作系统存储器的状态。所捕捉的、会已经对该持久性存储设备做出的改变也存储在该计算会话文件中。为了继续之前的计算会话,加载存储的该计算会话状态。这首先需要访问与期望在新的会话中继续的计算会话相对应的所存储的计算会话文件。所访问的会话状态随后被加载到该计算机的操作系统存储器中,来代替该操作系统存储器的当前(即基线)状态。另外,访问与期望在该新的会话中继续的计算会话相对应的计算会话文件。进一步地,再次捕捉在该当前计算会话期间会已经对该持久性存储器做出的改变。所捕捉的改变存储在计算会话文件中。如前,在当前计算会话期间使用该捕捉的改变以及来自持久性存储设备的其他数据。 
附图说明
相对于下面的具体实施方式、附加的权利要求书和附图,本公开的特定特征、方面和优势会更好地被理解,其中: 
图1是操作系统状态管理的体系结构的简化图示,其中可实现部分在此描述的该操作系统状态的捕捉和加载技术实施例。
图2是概述捕捉和加载基线系统状态的处理的一个实施例的流程图。 
图3是概述捕捉计算会话系统状态的处理的一个实施例的流程图。 
图4是概述加载捕捉的计算会话状态,以在新的计算会话中从其中断的位置继续之前的计算会话的处理的一个实施例的流程图。 
图5A-B描述了概述为了调试目的而递增地加载计算会话状态的处理的一个实施例的流程图。 
图6是描述了构成用于实现在此描述的操作系统状态捕捉和加载技术实施例的典型系统的计算设备的图示。 
具体实施例
在下面对操作系统状态捕捉和加载技术实施例的描述中,参考形成本描述一部分的附图,其中通过说明性的方式示出了该技术可在其中实践的特定实施例。可以理解,可以利用其他实施例以及做出结构改变而不背离本技术的范围。 
1.0 操作系统状态管理体系结构 
在描述操作系统状态的捕捉和加载技术实施例之前,将会描述其中的部分可实现的合适的操作系统状态管理体系结构的大致描述。一般地,本技术实施例可利用许多通用或专用的计算系统环境或配置进行操作,这会在本描述的以后部分中更详细地描述。
这些通用或专用的计算机使用操作系统。该操作系统的目的之一是管理该操作系统存储器和与该计算机相关联的持久性存储设备。如图1所示,该管理方案的核心是文件系统模块100。该文件系统模块100与卷管理模块102进行通信并经其工作,来控制与该计算机相关联的持久性存储设备。该持久性存储设备可以是任意非易失性的存储设备(或者多个设备),诸如图1所示的硬盘106。典型地,该持久性存储设备通过设备管理模块来管理。在图1的示例中,这采用盘管理模块104的形式,它与卷管理模块102进行通信并最终由文件系统模块100来控制。 
该计算机的当前操作系统状态存储在操作系统存储器中,并随着在该计算机上实施的计算会话进展而改变。典型地,该操作系统存储器采用易失性存储设备的形式。例如,在图1的示例体系结构中,该操作系统存储器是随机存取存储器(RAM)108。可以在称为休眠映像文件的文件中捕捉当前的操作系统存储状态。为了快速恢复的目的,此休眠机制允许将该系统存储器和寄存器的状态保存至持久性存储设备。这主要用于允许该操作系统在计算机上关闭,并接着在重新开始该操作系统时,使用该休眠映像文件恢复之前的状态。因此,该操作系统可以从操作系统关闭的点来进行操作。在当前的操作系统中,该休眠映像文件在关闭期间基于要这样做的用户命令而创建。在该操作系统重新启动时,上述的状态恢复处理一般作为启动路径的部分而发生。在图1的示例体系结构的环境中,文件管理模块100与休眠模块110进行通信。当被指示这样做时,休眠模块110产生休眠映像文件并使用文件系统模块100的帮助来在持久性存储设备中存储该文件。操作系统存储器管理模块112用于捕捉该操作系统存储器(如图1所示的RAM 108)的各当前状态并将它们传送给休眠模块110。 
虽然不是传统的操作系统管理体系结构的一部分,但是在此描述的操作系统状态捕捉和加载技术实施例使用状态管理文件系统过滤器114以“过滤掉”和捕捉通常会对持久性存储设备做出的改变。在图1的示例体系结构中,状态管理文件系统过滤器114与文件系统100进行通信,并在将所捕捉的改变以文件(在此称为计算会话文件)存储至持久性存储设备中时采用文件系统100的帮助。该过滤器114的运作和计算会话文件的角色会在以下的部分中更详细地描述。 
要注意的是,前述的操作系统状态管理体系结构仅是一个合适体系结构的示例,并且不用来暗示任何关于在此描述的操作系统状态捕捉和加载技术实施例的使用或功能范围的限制。该操作系统状态管理体系结构也不应该解释为具有与图1示出的任意一个部件或部件组合有关的任意依赖性或要求。 
2.0 操作系统状态捕捉和加载 
典型的操作系统计算会话包括对前述的系统存储器和持久性存储设备二者的改变。一般地,在此描述的操作系统状态捕捉和加载技术实施例允许在一个时刻捕捉持久性存储设备和系统存储器二者的状态,并随后加载该捕捉的系统状态。这在一个使用休眠映像文件来捕捉系统存储器状态的实施例中实现了。要注意的是,尽管使用了休眠映像文件,但是这不意味着操作系统必须使用重新启动过程来恢复(典型地会是该情况)。相反,如以下的部分中更详细描述的那样,在此描述的操作系统状态捕捉和加载技术实施例在标准休眠关闭和启动路径重新开始过程之外进行操作。
至于捕捉改变,在一个实施例中使用前述的状态管理文件系统过滤器来捕捉通常会对持久性存储设备做出的改变。因此,不允许对持久性存储设备做出改变。加载捕捉的系统状态将该操作系统退回至系统状态被捕捉时操作系统的条件。这是真的,即使在计算会话期间该系统存储器的状态改变了也是如此。也要注意,由于持久性存储设备被阻止发生改变,它保持处于在该系统状态被捕捉时它的条件中。 
在一个实施例中,所捕捉的系统状态代表基线状态,在计算会话终止时可以返回到基线状态。这允许在每个计算会话的开始处利用已知基线状态的新启动。因此,在网吧或其他共享的访问主机计算情形的情况中,该基线系统状态在每个计算会话之后恢复,以保证一致和可靠的用户体验。 
在又一个实施例中,捕捉到多于一个的状态系统。基线状态如前所述被捕捉,但另外还捕捉计算会话系统状态。这允许用户在将来的时间处加载捕捉的计算会话系统状态并从在之前的计算会话中该用户中断的位置继续。该操作系统仍然在每个计算会话之后返回至其基线状态。因此,该用户是为下一个计算会话还是为在一个或多个干预会话已经发生了之后出现的计算会话加载捕捉的计算会话系统状态,都没有关系。这在网吧或其他共享的访问主机计算情形的情况下也有优势。不仅基线系统状态在每个计算会话(一般会涉及多个用户)之后被恢复,而且单独用户可以捕获他或她的计算会话,并然后在将来的时间处返回至与那个计算会话相关联的系统状态。 
在另一个实施例中,该操作系统状态捕捉和加载技术允许通过使用递增地加载会话状态到已知为好的基线状态中来进行快速调试。例如,在操作系统崩溃的情况下,崩溃转储文件可以用作会话状态文件,并被递增加载直到找到问题为止。 
前述的实施例,以及其他的会在以下的部分中更详细地讨论。 
2.1 捕捉和加载基线系统状态 
涉及捕捉基线系统状态的操作系统状态捕捉和加载技术实施例可以在如图2描述的一个实施例中实现。首先,存储(200)期望在将来的时间处加载的计算机的操作系统存储器的状态。该存储的状态可以被称为基线系统状态。在一个版本中,操作系统存储器状态被存储为休眠映像文件。然而,根据需要也可以采用其他文件类型。
从这个点开始,不允许对与该计算机相关的持久性存储设备的改变(202)。相反的,在保证的计算会话期间会已经对持久性存储设备做出的改变(如果它们没有被阻止),被存储在单独的计算会话文件中(204)。在一个版本中,这使用前述的状态管理文件系统过滤器来实现,其重定向持久性存储设备的改变至计算会话文件。任意文件类型都可以用于计算会话文件。例如,一种适当的选择会是虚拟硬盘(VHD)文件类型。在计算会话期间以正常方式采用存储在计算会话文件中的改变数据,并结合存储在持久性存储设备中的改变数据,就好像这些改变实际上对持久性存储设备做出那样。 
使与计算机相关联的持久性存储设备在计算会话期间不被改变,允许各基线系统状态通过仅仅加载所存储的基线系统状态至系统存储器中而恢复。持久性存储设备不需要重新配置。换句话说,再一次参考图2,确定是否期望将计算机操作系统返回至在存储该操作系统存储器状态时它的条件(206)。例如,这个确定的触发可以是用户命令将操作系统恢复至基线状态,或者一些其他的造成当前计算会话终止的原因。如果确定操作系统还不恢复,则重复处理动作206。然而如果确定操作系统要恢复至之前存储的状态,那么将存储的状态加载至操作系统存储器中,来代替操作系统存储器的当前状态(208)。 
要注意的是,如果捕捉操作系统状态的唯一目的是将操作系统返回至基线系统状态,那么在计算会话的结束处仅仅放弃该计算会话文件。如后面的部分会描述的那样,其他实施例会采用各计算会话文件。在这些实施例中,保持而不是放弃各会话文件。 
进一步要注意,在该基线系统状态被捕捉之后的任意时间处,它们可以被当前系统状态替换以生成新的基线状态。为了实现这个任务,状态管理文件系统过滤器被暂时无效,而且在计算会话文件中捕捉的改变在与计算机相关联的持久性存储设备中实现。这使得持久性存储设备与当前操作系统存储器状态同步。随后可以如前所述捕捉该新的基线系统状态,让新的操作系统存储器状态被存储来代替之前存储的状态。 
2.2 捕捉和加载计算会话状态 
如前所述,也可以捕捉用户的计算会话状态。这允许用户在将来的时间处加载捕捉的计算会话系统状态并从他或她在之前的计算会话中中断的位置继续。如上所述,仍然捕捉基线状态,但另外地,捕捉单独的计算会话系统状态。
在一个实现中,如图3所示实现前述内容。首先,存储计算机的操作系统存储器状态在由计算机用户指定的时间处存在时的状态,并将其指定为基线状态(300)。该计算机的持久性存储设备随后受保护以便阻止通常在计算会话期间发生的改变(302)。因此,如前所述,该计算机的持久性存储设备停留在与在捕捉操作系统的基线存储器状态时相同的条件下。相反的,在保证的计算会话期间会已经对持久性存储设备做出的改变(如果它们没有被阻止)存储在前述的计算会话文件中(304)。如前所述,在计算会话期间以正常方式采用存储在计算会话文件中的改变数据,并结合存储在持久性存储设备中的数据。 
接下来确定当前计算会话是否已经被终止了(306)。如果确定该会话还没有被终止,重复处理动作306。然而,如果确定该计算会话已经被终止了,则发生几个动作。首先,存储会话状态文件(308),该文件代表在计算会话被终止时计算机的操作系统存储器状态。在一个版本中,正如基线状态文件那样,该文件存储为休眠映像文件。然而,根据需要也可以采用其他文件类型。另外,将所捕捉的、会已经对持久性存储设备做出的改变存储在计算会话文件中(310)。这里再次,任意文件类型都可用于计算会话文件,如VHD文件。要注意的是,会话状态文件和计算会话文件与标识用户和终止的计算会话的指示符相关联。对在计算会话期间会已经对持久性存储设备做出的改变的捕捉也在这个点处中断(312)。计算机操作系统随后返回至其基线条件。这需要在操作系统存储器中加载存储的基线状态,来代替操作系统存储器的当前状态(314)。 
前述过程的结果是计算机的操作系统处于其基线条件下,且该用户的计算会话状态已经以会话状态文件和计算会话文件的形式被捕捉。给定这些,现在会描述如何加载用户的计算会话状态,以便该用户可以从他或她在前一个会话中中断的位置继续。要注意的是,该用户是加载所存储的会话作为计算机上下一步发生的会话,还是在几个其他会话已经完成之后加载所存储的会话,这都没有关系。这其中的会话甚至不需要已经由用户来实施。这是因为不管该用户是谁,或者各会话以什么顺序发生,计算机的操作系统都在每个会话之后返回至相同的基线条件。 
现在参考图4,用户存储的计算会话状态如下所述加载。首先,访问存储的会话状态文件(400),该文件与期望在新的会话中继续的计算会话相对应。所访问的会话状态文件随后被加载到计算机的操作系统存储器中,来代替该操作系统存储器的当前(即基线)状态(402)。另外,访问与期望在新的会话中继续的计算会话相对应的计算会话文件(404)。访问前述文件的方式稍后会在这个描述更详细地进行描述。接下来,激活状态管理文件系统过滤器,按照前述方式捕捉在当前计算会话期间会已经对持久性存储设备做出的改变(406)。所捕捉的改变存储在计算会话文件中。如前,在当前计算会话期间使用所捕捉的改变以及来自持久性存储设备的其他数据。 
结合图3而描述的,关于在计算会话终止时存储与之相关联的会话状态文件和计算会话文件,以及将计算机的操作系统返回至其基线条件的动作,会在当前会话终止时再次执行。以这种方式,用户可选择在未来的会话中继续刚终止的会话。要注意的是,计算会话文件在新命名下存储以便它可以区别于之前的会话文件。这个新的计算会话文件代表了添加了由在刚结束的计算会话期间捕捉的改变而更新的、最近保存的会话文件。进一步地,由于会话状态文件在每个计算会话结束时保存,该用户可以从可由计算机存取的多个保存的会话中挑选。为此,在一个实现中,前述的对会话状态文件和计算会话文件的访问,包括将可访问的会话状态文件和相应的计算会话文件的列表提供给开始计算会话的用户。然后访问并输入由用户从列表中选择的,与之前的计算会话相关联的会话状态文件和计算会话文件。由于该会话状态文件和计算会话文件也与特定的用户相关联,所以可以首先通过传统方法来识别该用户,并然后仅仅那些与那个用户相关联的文件会提供在该列表上。 
在前述的实现中,计算机将会话状态文件和计算会话文件存储至计算机可访问的存储器(如它的硬盘驱动器)中。然而,在另一个实现中,计算机不保持这些文件的副本。例如,在网吧或其他共享的访问主机的示例中,可能不期望将顾客的会话状态文件和计算会话文件存储在共享的计算机上。在这个替代实现中,在计算会话结束处,使得为该会话而存储的会话状态文件和计算会话文件可供该用户下载。随后该用户具有将这些文件存储在便携式存储设备(如闪存盘等)上或可能通过网络连接将各文件传送至另一台计算机上(如通过电子邮件附件等)的选项。不管该用户是否下载这些文件,都使得这些文件不可由该计算机访问。 
在会话状态文件和计算会话文件未被计算机保持的实现中,需要提供这些文件以便提供给用户来继续之前的计算会话。为此,访问这些文件需要计算机请求用户输入与该用户希望继续的计算会话相对应的会话状态文件和计算会话文件。该用户随后会根据请求的文件如何存储而通过合适的方法来输入它们。 
还要注意的是,在会话状态文件和计算会话文件没有被该计算机保持的实现中,在用户希望继续之前的计算会话时,出现关于各文件是否仍与该计算机兼容的问题。例如,如果自从被输入的会话状态文件和计算会话文件被捕捉之后,该计算机的基线系统状态已经改变了,则文件可能不再兼容。一个保证兼容性的方式是将该基线系统状态文件与随着每个新的基线条件而改变的版本指示符相关联。因此,唯一地标识每个基线。与终止的计算会话相对应的会话状态文件和计算会话文件随后与它们存储时的验证信息相关联。该验证信息包括前述的、与从中导出这些文件的基线系统状态的版本相对应的基线版本指示符。这个指示符会与当前计算机使用的基线系统状态的基线版本指示符相比较。如果它们匹配,则输入的文件是可兼容的(由于该计算机本在前一次计算会话结束处会已经恢复至其基线条件)。如果它们不匹配,则会通知该用户与所输入的各文件相关联的计算会话不能继续。 
由用户输入到计算机中的会话状态文件和计算会话文件可能不可兼容的另一个原因是该计算机不是用于生成各文件的同一台计算机。典型地,不同的计算机会有不同的基线系统状态。然而,可能将多于一台的计算机配置成可与相同的会话状态文件和计算会话文件集兼容。在一个实现中,这可以通过在所有涉及的计算机之间创建具有相同基线版本指示符的共同基线系统状态来实现。以这种方式,由于从中导出各文件的基线系统状态在两台计算机上都相同,所以一台计算机上生成的会话状态文件和计算会话文件集会与另一台计算机兼容。 
在如上所述控制了版本的基线系统状态方案中,存在缩小会话状态文件大小的机会。为此,在一个实现中,识别在操作系统存储器基线状态和在计算会话终止时存在的操作系统存储器的状态之间的差异。随后将这些不同之处存储为会话状态文件,而不是整个操作系统存储器的当前状态。会话状态文件的这个变体可以被称作会话状态差异文件。因为该差异文件遗失了一些填充该操作系统存储器所需要的状态,所以它在被加载到操作系统存储器中以继续之前的计算会话之前,被集成到基线操作系统存储器状态文件中以重构完整的计算会话状态配置。为此,恢复的会话状态文件根据输入的会话状态差异文件而生成。在核查有效性的实现中,这可以在成功验证该输入文件的兼容性之后进行。所恢复的会话状态文件通过将该会话状态差异文件中的差异应用到操作系统存储器基线状态中而生成。换句话说,这些在差异文件中找到的状态用于替换基线状态文件中的对应状态,以产生该恢复的会话状态文件。一旦恢复了该会话状态文件,则如前所述加载该文件以继续相关联的计算会话。 
2.3 为了调试目的而捕捉和递增加载计算会话状态 
如前所述,在此描述的本操作系统状态捕捉和加载技术实施例也允许通过使用会话状态的递增加载来快速调试。一般地,通过将该操作系统存储器状态的递增部分插入到已知为好的基线条件中,可以对应用或操作系统进行调试。用户可以选择对应用或系统进行调试,或者可以由因错误而导致的系统崩溃来启动该调试处理。在后一种情况下,在崩溃时生成的崩溃转储文件会用做会话状态文件。在这个实施例中的每次迭代中采用传统的调试技术。
在一个实现中,该递增调试方案如下实现。参考图5A-B,该处理通过建立已知为好的基线条件而开始。为此,存储计算机的操作系统存储器在该计算机的用户指定的时间处存在的状态(500)。这些状态存储在基线状态文件中。如在另一个实现中的那样,在计算会话期间阻止对与该计算机相关联的持久性存储设备的改变(502),并且代之以捕捉会已经对该持久性存储设备做出的改变(504)。如前,在计算会话期间使用该捕捉的改变以及该持久性存储设备中的其他数据。 
接下来确定当前计算会话是否已经被终止了(506)(诸如在用户终止会话以启动调试或系统崩溃时)。如果确定该会话还没有被终止,则重复处理动作506。然而,在计算会话被终止时,存储代表在该计算会话终止时存在的计算机的操作系统存储器的状态的会话状态文件(508)。在系统崩溃情况下,这个会话状态文件会是崩溃转储文件。另外,中断对会已经对持久性存储设备做出的改变的捕捉,并保存各改变(510)。然后通过在操作系统存储器中加载所存储的基线状态来代替该操作系统存储器的当前状态,计算机操作系统返回至在操作系统存储器基线状态被存储时的条件(512)。 
一旦恢复了该基线状态,则可以开始该递增调试处理。这首先需要访问存储的会话状态文件中各状态的规定部分,并将该规定部分加载至该计算机的操作系统存储器中,来代替该计算机操作系统存储器的相应当前状态(514)。随后重新启动对会已经对持久性存储设备做出的改变的捕捉(516)。这些捕捉的改变以及来自持久性存储设备的其他数据和之前保存的改变,随后在当前调试迭代期间被采用以对该计算机操作系统或特定应用进行调试(518)。在调试过程的结束处,确定该计算机的操作系统是否已经被调试完了(520)。如果确定,该处理结束。然而,如果确定该计算机的操作系统还没有被调试完,则终止当前的调试迭代(522)。中断对在当前调试迭代期间会已经对持久性存储设备做出的改变的捕捉,并保存所捕捉的改变(524)。该计算机操作系统再次通过从基线状态文件中加载所存储的状态到操作系统存储器中来代替该操作系统存储器的当前状态,以返回至其基线条件(526)。接下来,访问所存储的会话状态文件中的部分状态(这些状态由最后一次终止的调试迭代中规定的递增所增加),并将它们加载至计算机的操作系统存储器中,来代替该计算机操作系统存储器中对应当前状态(528)。然后恰当地重复处理动作(516)到(528),直到该计算机的操作系统已经被调试了为止。 
3.0 计算环境 
现在将描述其中可以实现在此描述的操作系统状态捕捉和加载技术的各部分的合适计算环境的简要大致的描述。如前所述,本技术实施例可利用通用或专用计算系统环境或配置进行操作。可能合适的众所周知的计算系统、环境,和/或配置的示例包括(但不限于)个人计算机、服务器计算机、手提式或膝上式设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费者电子产品、网络PC、迷你计算机、大型计算机、包括任意上述系统或设备的分布式计算环境等。
图6示出了合适的计算系统环境的示例。该计算系统环境只是合适的计算系统环境的一个示例,不用来暗示关于在此描述的操作系统状态捕捉和加载技术实施例的使用或功能范围的任何限制。该计算环境也不应该解释为具有与示范的操作环境中示出的各模块中的任意一个或模块组合有关的任意依赖性或要求。参考图6,用于实现在此描述的实施例的示范系统包括计算设备,如计算设备10。在其最基本的配置中,计算设备10典型地包括至少一个处理单元12和存储器14。存储器14是易失性(诸如RAM)和非易失性(诸如器ROM,闪存等)存储设备的组合。图6中用虚线16示出了这个最基本的配置。另外,设备10也可能具有另外的特征/功能。例如,设备10也可能包括另外的存储设备(可移除的和/或不可移除的),包括(但不限于)磁性或光学的盘或带。这种另外的存储设备在图6中以可移除的存储设备18和不可移除的存储设备20示出。计算机存储介质包括以任意方式或技术实现的易失性和不可易失性、可移除和不可移除的介质,以便存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息。存储器14、可移除的存储设备18和不可移除的存储设备20都是计算机存储介质的示例。计算机存储介质包括(但不限于),RAM、ROM、EEPROM、闪速存储器或其他存储技术、CD-ROM,数字通用盘(DVD)或其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁性存储设备,或任何其他可以用于存储想要的信息并能被设备10访问的介质。任意这样的计算机存储介质可以是设备10的一部分。 
设备10也可包含允许该设备与其他设备进行通信的通信连接(多个)22。设备10也可具有输入设备(多个)24,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、相机等。也可包括输出设备(多个)26,诸如显示器、扬声器、打印机等。所有这些设备在本领域都广为人知,并且在这里不需要详细地讨论。 
在此描述的操作系统状态捕捉和加载技术实施例可在计算机可执行的指令(如由计算设备执行的程序模块)的大背景中进一步描述。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。在此描述的实施例也可在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机存储介质中。 
3.0 其他实施例 
要注意的是,任意或所有本实施方式中的前述实施例可以任意结合地使用,来形成另外的混合实施例。另外,虽然本主题已经用结构特征和/或方法动作特定的语言进行了描述,但是要理解,在附加的权利要求书中定义的主题不一定限于上述具体特征或动作。相反,上述具体特征或行为公开为实现各权利要求的示例形式。 

Claims (19)

1.一种用于捕捉和加载操作系统状态的计算机实现的方法,包括:
使用计算机来执行以下方法动作:
存储期望在将来时间处加载的、该计算机的操作系统存储器的状态;
阻止在计算会话期间对与该计算机相关联的持久性存储设备的改变;
如果在计算会话期间已经对该持久性存储设备做出的改变未被阻止,则将所述改变存储到单独的会话文件中,并在计算会话期间采用存储在会话文件和持久性存储设备中的数据;
在计算会话的结束处,放弃该会话文件;以及
每当期望将该计算机操作系统返回到它在该操作系统存储器状态被存储时的条件时,将所存储的状态加载至该操作系统存储器中,来代替该操作系统存储器的当前状态。
2.权利要求1的方法,其中,将改变存储到单独的会话文件中的方法动作包括以虚拟硬盘(VHD)文件格式存储该改变的动作。
3.权利要求1的方法,其中,存储操作系统存储器的状态的方法动作包括将状态存储为休眠映像文件的动作。
4.一种用于捕捉和加载操作系统状态的计算机实现的方法,包括:
使用计算机来执行以下方法动作:
存储在计算机的用户指定的时间处存在的该计算机的操作系统存储器的状态,所述状态被指定为该操作系统存储器的基线状态;
阻止在计算会话期间对与该计算机相关联的持久性存储设备的改变;
如果在该计算会话期间已经对该持久性存储设备做出的改变没有被阻止,则捕捉这些改变,并在该计算会话期间采用所捕捉的改变以及来自该持久性存储设备的其他数据;以及
每当该计算会话终止时,
存储会话状态文件,该会话状态文件代表在该计算会话终止的时间处存在的该计算机的操作系统存储器的状态,并将该会话状态文件和该用户以及被终止的计算会话相关联,
在单独的计算会话文件中存储所捕捉的改变,并将该计算会话文件与该用户以及被终止的计算会话相关联,
中断对于在计算会话期间对持久性存储设备做出的改变的捕捉,
将该计算机操作系统返回至它在操作系统存储器基线状态被存储时的条件,所述返回包括将存储的基线状态加载至该操作系统存储器中,来代替该操作系统存储器的当前状态。
5.权利要求4的方法,其中,将改变存储到单独的计算会话文件中的方法动作包括以虚拟硬盘(VHD)文件格式存储该改变的动作。
6.权利要求4的方法,其中,存储操作系统存储器的状态的方法动作包括将状态存储为休眠映像文件的动作。
7.权利要求4的方法,进一步包括以下方法动作:
每当期望将该计算机返回至在所述计算会话终止时它的条件,并开始当前计算会话时,
访问所存储的与计算会话相应的会话状态文件并将其加载至该计算机的操作系统存储器中,来代替该操作系统存储器的当前状态,
访问与该计算会话相对应的计算会话文件,
重新启动对于在该计算会话期间已经对该持久性存储设备做出的改变的捕捉,并将所捕捉的改变存储至该计算会话文件中,以及
在当前计算会话期间,采用所捕捉的改变以及来自该持久性存储设备的其他数据。
8.权利要求7的方法,进一步包括以下方法动作:
每当当前计算会话终止时,
存储会话状态文件,该会话状态文件代表在当前计算会话终止的时间处存在的该计算机的操作系统存储器的状态,并将该会话状态文件与该用户和被终止的当前计算会话相关联,
生成并存储新的计算会话文件,该新的计算会话文件通过添加在当前计算会话期间所捕捉的、被阻止的持久性存储设备改变来更新先前最后一次存储的计算会话文件,并将该新的计算会话文件与该用户和被终止的当前计算会话相关联,
中断对于在当前计算会话期间已经对该持久性存储设备做出的改变的捕捉,以及
将该计算机操作系统返回至在操作系统存储器基线状态被存储时它的条件,所述返回包括将所存储的基线状态加载至该操作系统存储器中,来代替该操作系统存储器的当前状态。
9.权利要求8的方法,其中计算机可访问与多个计算会话相关联的会话状态文件和计算会话文件,以及其中访问与计算会话相应的所存储的会话状态文件,并将其加载至该计算机的操作系统存储器中,来代替该操作系统存储器的当前状态,并访问与该计算会话相应的计算会话文件的方法动作包括以下动作:
将可访问的会话状态文件和计算会话文件的列表提供给正在开始当前计算会话的用户;
输入从所提供列表中对会话状态文件和计算会话文件的用户选择,该用户选择与该用户期望重新打开以作为当前会话的之前的计算会话相对应;以及
使用该用户选择的会话状态文件和计算会话文件以将该计算机返回至所述之前的计算会话被终止时它的条件,并开始当前计算会话。
10.权利要求9的方法,其中所述存储会话状态文件和计算会话文件的方法动作包括将该会话状态文件和计算会话文件存储至该计算机可访问的非易失性存储器中的动作。
11.权利要求8的方法,其中所述将该计算机操作系统返回至在该操作系统存储器基线状态被存储时它的条件的方法动作还进一步包括以下动作:
使所存储的、与前一次终止的计算会话相应的会话状态文件和计算会话文件可供该用户下载;以及
从该计算机可访问的存储器中删除所存储的、与前一次终止的计算会话相应的会话状态文件和计算会话文件。
12.权利要求11的方法,其中所述访问会话状态文件和计算会话文件的方法动作包括以下动作:
请求该用户输入会话状态文件和计算会话文件;以及
当从该用户接收到会话状态文件和计算会话文件时,输入该会话状态文件和计算会话文件。
13.权利要求12的方法,其中存储会话状态文件和存储计算会话文件的方法动作包括将所述会话状态文件和计算会话文件与验证信息相关联的动作,所述验证信息包括标识从中导出所述会话状态文件和计算会话文件的操作系统存储器基线状态的版本的基线版本指示符。
14.权利要求13的方法,其中所述访问会话状态文件和计算会话文件的方法动作进一步包括以下动作:
根据与会话状态文件和计算会话文件相关的验证信息,确定会话状态文件和计算会话文件是否从该计算机采用的操作系统的该操作系统存储器基线状态中导出;
每当确定该会话状态文件和计算会话文件是从该计算机采用的操作系统的操作系统存储器基线状态中导出时,访问会话状态文件和计算会话文件;以及
每当确定该会话状态文件和计算会话文件不是从该计算机采用的操作系统的操作系统存储器基线状态中导出时,通知该用户该会话状态文件和计算会话文件不能被访问。
15.权利要求8的方法,其中存储会话状态文件的方法动作包括以下动作:
识别该操作系统存储器基线状态与前一次实施的计算会话被终止时存在的操作系统存储器的状态之间的差异;以及
将所识别的差异存储为会话状态差异文件。
16.权利要求15的方法,其中访问与该计算会话相对应的所存储的会话状态文件的方法动作包括以下动作:
通过将该会话状态差异文件中的差异应用至操作系统存储器基线状态来生成恢复的会话状态文件并存储所恢复的会话状态文件;以及
将所恢复的会话状态文件指定为要访问的所存储的会话状态文件。
17.一种用于捕捉和加载操作系统状态的计算机实现的方法,包括:
使用计算机执行以下方法动作:
(a)存储在该计算机的用户指定的时间处存在的计算机的操作系统存储器的状态,所述状态存储在基线状态文件中;
(b)阻止在计算会话期间对与该计算机相关联的持久性存储设备的改变;
(c)如果没有阻止在计算会话期间已经对该持久性存储设备做出的改变,则捕捉所述改变;
(d)在计算会话期间,采用所捕捉的改变以及来自该持久性存储设备的其他数据;
(e)每当该计算会话终止时,
存储会话状态文件,该会话状态文件代表在该计算会话终止的时间处存在的该计算机的操作系统存储器的状态,
中断对于在该计算会话期间已经对持久性存储设备做出的改变的捕捉,并保存所捕捉的改变,以及
将该计算机操作系统返回至该操作系统存储器基线状态被存储时它的条件,所述返回包括将所存储的基线状态加载至该操作系统存储器中,来代替该操作系统存储器的当前状态;
(f)访问来自所存储的会话状态文件中的状态的规定部分并将所述规定部分加载到该计算机的操作系统存储器中,来代替该计算机的操作系统存储器的相应的当前状态;
(g)重新开始对于已经对该持久性存储设备做出的改变的捕捉;
(h)在当前调试迭代中,采用所捕捉的改变以及来自该持久性存储设备的其他数据和保存的改变来对该计算机操作系统进行调试;
(i)确定该计算机的操作系统是否已经被调试完了;
(j)每当确定该计算机的操作系统还没有被调试完时,
终止当前的调试迭代,
中断对于在当前调试迭代期间已经对该持久性存储设备做出的改变的捕捉,并保存所捕捉的改变,
将该计算机操作系统返回至在该操作系统存储器基线状态被存储时它的条件,所述返回包括将基线状态文件中所存储的状态加载至该操作系统存储器,来代替该操作系统存储器的当前状态,
访问与前一次终止的调试迭代相对应的、所存储的会话状态文件中状态的增加部分,并将该增加部分加载至该计算机的操作系统存储器中,来代替该计算机的操作系统存储器的相应的当前状态,其中来自所存储的会话状态文件中状态的增加部分包括在前一次终止的调试迭代中加载的来自所存储的会话状态文件的状态,加上来自所存储的会话状态文件的状态的规定的附加部分,以及
(k)重复动作(g)到(j),直到该计算机的操作系统已经被调试完了为止。
18.权利要求17的方法,其中由于错误而由该计算机的操作系统自动终止该计算会话,以及其中该会话状态文件为崩溃转储文件。
19.权利要求17的方法,其中为了调试该计算机的操作系统的目的,由该用户终止该计算会话。
CN2010800198582A 2009-05-05 2010-04-16 捕捉和加载操作系统状态的方法 Active CN102414658B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/435,737 US8209501B2 (en) 2009-05-05 2009-05-05 Capturing and loading operating system states
US12/435,737 2009-05-05
US12/435737 2009-05-05
PCT/US2010/031457 WO2010129159A2 (en) 2009-05-05 2010-04-16 Capturing and loading operating system states

Publications (2)

Publication Number Publication Date
CN102414658A CN102414658A (zh) 2012-04-11
CN102414658B true CN102414658B (zh) 2013-10-30

Family

ID=43050692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800198582A Active CN102414658B (zh) 2009-05-05 2010-04-16 捕捉和加载操作系统状态的方法

Country Status (9)

Country Link
US (1) US8209501B2 (zh)
EP (1) EP2427823B1 (zh)
JP (1) JP5416834B2 (zh)
KR (1) KR101654398B1 (zh)
CN (1) CN102414658B (zh)
BR (1) BRPI1013993B1 (zh)
CA (1) CA2757636C (zh)
RU (1) RU2554851C2 (zh)
WO (1) WO2010129159A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012173814A (ja) * 2011-02-17 2012-09-10 Canon Inc 情報処理装置及び情報処理装置を制御する制御方法
US9495173B2 (en) * 2011-12-19 2016-11-15 Sandisk Technologies Llc Systems and methods for managing data in a device for hibernation states
TWI475402B (zh) * 2013-01-09 2015-03-01 Giga Byte Tech Co Ltd 遠端備份系統及其遠端備份方法
US20150120674A1 (en) * 2013-10-29 2015-04-30 Nvidia Corporation Virtual program installation and state restoration
US9572104B2 (en) * 2015-02-25 2017-02-14 Microsoft Technology Licensing, Llc Dynamic adjustment of user experience based on system capabilities
US10521218B2 (en) * 2017-10-09 2019-12-31 Microsoft Technology Licensing, Llc Enhanced techniques for updating software

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1282911A (zh) * 1999-07-30 2001-02-07 神基科技股份有限公司 一种将电脑系统状态挂起的方法
CN1629811A (zh) * 2004-06-30 2005-06-22 雅劲科技公司 实施于计算机系统中的方法及使用该方法的计算机系统
CN1825283A (zh) * 2006-03-31 2006-08-30 浙江大学 嵌入式操作系统硬件镜像启动优化的实现方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3597558B2 (ja) * 1994-03-18 2004-12-08 株式会社日立製作所 情報処理装置
US5715464A (en) * 1995-06-07 1998-02-03 International Business Machines Corporation Computer system having suspend once resume many sessions
JP3853941B2 (ja) * 1996-11-21 2006-12-06 株式会社日立製作所 情報処理装置
JP3266560B2 (ja) 1998-01-07 2002-03-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム及びその制御方法
US6209088B1 (en) 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
JP2001014050A (ja) * 1999-06-29 2001-01-19 Casio Comput Co Ltd 情報処理装置及び記憶媒体
JP2002324012A (ja) * 2001-04-25 2002-11-08 Ricoh Co Ltd 情報処理システム
KR20020096061A (ko) * 2001-06-14 2002-12-31 남 영 김 스프링장대 놀이기구
JP2004038546A (ja) * 2002-07-03 2004-02-05 Fuji Xerox Co Ltd 起動制御方法、起動制御装置、画像処理装置
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
CA2444685A1 (en) 2003-02-07 2004-08-07 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
US7073052B2 (en) 2003-05-22 2006-07-04 International Business Machines Corporation Method and system for storing active files and programs in a hibernation mode
US7600219B2 (en) 2003-12-10 2009-10-06 Sap Ag Method and system to monitor software interface updates and assess backward compatibility
KR101022468B1 (ko) 2003-12-30 2011-03-15 삼성전자주식회사 비정상 종료된 시스템의 재부팅 시간을 단축할 수 있는임베디드 컴퓨터 시스템
JP2005284491A (ja) * 2004-03-29 2005-10-13 Mitsubishi Electric Corp 計算機の起動時間短縮方式
CN1744039B (zh) * 2004-08-31 2012-01-25 华硕电脑股份有限公司 开机方法、计算机系统及其生产方法
US8024566B2 (en) * 2005-04-29 2011-09-20 Sap Ag Persistent storage implementations for session data within a multi-tiered enterprise network
US20070124573A1 (en) 2005-10-28 2007-05-31 Walker Phillip M Method for rapid startup of a computer system
US20070112899A1 (en) 2005-11-14 2007-05-17 Edwards Matthew F Method and apparatus for fast boot of an operating system
JP2007233815A (ja) * 2006-03-02 2007-09-13 Hitachi Ltd 情報処理システムおよび情報処理装置の割当管理方法
US8352717B2 (en) * 2009-02-09 2013-01-08 Cs-Solutions, Inc. Recovery system using selectable and configurable snapshots

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1282911A (zh) * 1999-07-30 2001-02-07 神基科技股份有限公司 一种将电脑系统状态挂起的方法
CN1629811A (zh) * 2004-06-30 2005-06-22 雅劲科技公司 实施于计算机系统中的方法及使用该方法的计算机系统
CN1825283A (zh) * 2006-03-31 2006-08-30 浙江大学 嵌入式操作系统硬件镜像启动优化的实现方法

Also Published As

Publication number Publication date
KR20120027219A (ko) 2012-03-21
CA2757636A1 (en) 2010-11-11
WO2010129159A2 (en) 2010-11-11
JP5416834B2 (ja) 2014-02-12
BRPI1013993A2 (pt) 2016-08-16
EP2427823B1 (en) 2018-10-03
US8209501B2 (en) 2012-06-26
RU2011144841A (ru) 2013-05-10
KR101654398B1 (ko) 2016-09-05
CA2757636C (en) 2017-01-17
RU2554851C2 (ru) 2015-06-27
US20100287344A1 (en) 2010-11-11
BRPI1013993B1 (pt) 2020-11-17
EP2427823A2 (en) 2012-03-14
CN102414658A (zh) 2012-04-11
WO2010129159A3 (en) 2011-02-17
EP2427823A4 (en) 2013-01-09
JP2012526322A (ja) 2012-10-25

Similar Documents

Publication Publication Date Title
US9823877B2 (en) Virtual machine backup from storage snapshot
CN102414658B (zh) 捕捉和加载操作系统状态的方法
US7805631B2 (en) Bare metal recovery from backup media to virtual machine
US9235474B1 (en) Systems and methods for maintaining a virtual failover volume of a target computing system
EP3769224B1 (en) Configurable recovery states
CN102262568B (zh) 抗掉电的Linux系统启动方法
CN102521289B (zh) 一种文件同步方法、装置及系统
CN103473065A (zh) 一种可快速还原系统盘的虚拟机创建方法
CN103198122B (zh) 重启内存数据库的方法和装置
US9933953B1 (en) Managing copy sessions in a data storage system to control resource consumption
EP3769225B1 (en) Free space pass-through
CN103440179A (zh) 存储设备配置信息的连续保存方法
CN108509252B (zh) 虚拟机启动装置、方法及主机
CN104461382A (zh) 运行多个文件系统的文件服务器的内部写方法和服务器
CN117033085B (zh) kvm虚拟机备份方法、装置、计算机设备及存储介质
KR102618274B1 (ko) 컨테이너에 포함된 데이터에 대한 관리 시스템 및 그 제어방법
CN113495882A (zh) 一种针对数据库的数据迁移方法及装置
CN115639967A (zh) 一种系统备份恢复工具部署方法及恢复系统的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.