JP5416834B2 - オペレーティングシステム状態の取込み及びローディング - Google Patents

オペレーティングシステム状態の取込み及びローディング Download PDF

Info

Publication number
JP5416834B2
JP5416834B2 JP2012509829A JP2012509829A JP5416834B2 JP 5416834 B2 JP5416834 B2 JP 5416834B2 JP 2012509829 A JP2012509829 A JP 2012509829A JP 2012509829 A JP2012509829 A JP 2012509829A JP 5416834 B2 JP5416834 B2 JP 5416834B2
Authority
JP
Japan
Prior art keywords
state
session
file
operating system
computer
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
JP2012509829A
Other languages
English (en)
Other versions
JP2012526322A (ja
JP2012526322A5 (ja
Inventor
アブザリアン,デヴィッド
カーペンター,トッド・エル
クルカルニ,ハリッシュ・エス
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 Corp
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 JP2012526322A publication Critical patent/JP2012526322A/ja
Publication of JP2012526322A5 publication Critical patent/JP2012526322A5/ja
Application granted granted Critical
Publication of JP5416834B2 publication Critical patent/JP5416834B2/ja
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)

Description

本発明は、オペレーティングシステム状態の取込み及びローディングに関する。
[0001]
一貫性があり、かつ信頼性があるユーザー体験を確保するために、インターネットカフェ及び他の共用アクセスホストでは、コンピューティングセッションが終了する度に、共用コンピューターをベースラインシステム状態に復元することが望ましい。通常、これは、各セッション後にホストシステムをリブートして、ベースライン状態を復元することを必要とする。
[0002]ハイバネーションは、直前のコンピューティングセッションに関連付けられた状態をより迅速に復元するために、システムメモリー及びレジスターの内容(例えば、デバイスハードウエアレジスター状態、ページファイル/アプリケーション及びドライバー状態等)をハードディスクのような永続性記憶装置にセーブすることができるようにする。この機構(feature)は主に、次の起動時に、オペレーティングシステムがハイバネーションファイルから復元され、シャットダウンされた時点から再開するように、コンピューターのオペレーティングシステムをシャットダウンさせることができるようにするために用いられる。
[0003]このハイバネーション機構は通常単一のファイル(例えば、hiberfil.sys)を利用し、そのファイルは、その機構の開始時に書かれる。その後、ブートプロセスの一部として、ハイバネーションファイルを用いて、オペレーティングシステムをその以前の状態に復元する。
[0004]この概要は、詳細な説明において後に更に記述される概念の選択を簡略化された形で導入するために提供される。この概要は、特許請求される主題の重要な特徴又は不可欠な特徴を特定することを意図するものではなく、特許請求される主題の範囲を判断する際の助けとして用いられることを意図するものでもない。
[0005]本明細書において記述されるオペレーティングシステム状態取込み(捕捉)及びローディング技法は包括的には、ブートプロセス以外でベースラインシステム状態を少なくとも取り込むこと及びロードすることを含む。一実施の形態では、これは、将来の時点においてベースライン状態として復元することが望まれる、コンピューターのオペレーティングシステムメモリーの状態を最初に格納することによって成し遂げられる。ベースラインシステムメモリー状態が格納されると、そのコンピューターに関連付けられた永続化記憶装置に対する変更は許されない。代わりに、その後のコンピューティングセッション中に永続化記憶装置に加えられることになっていた変更は、それらの変更が防止されなかった場合には、別個のコンピューティングセッションファイルに格納される。コンピューティングセッションファイル内に格納された変更データは、永続化記憶装置に格納されるデータと組み合わせて、コンピューティングセッション中に利用される。
[0006]オペレーティングシステムを、コンピューティングセッションの終了時のような、そのベースライン状態に戻すことが望まれるときはいつでも、オペレーティングシステムメモリーの現在の状態の代わりに、格納されたベースラインシステムメモリー状態がオペレーティングシステムメモリーにロードされる。そのコンピューターに関連付けられた永続化記憶装置に対する変更は許されていなかったので、ここで、オペレーティングシステムはそのベースライン状態に復元される。
[0007]オペレーティングシステム状態を取り込む唯一の目的が、オペレーティングシステムをベースラインシステム状態に戻すことである場合には、一実施の形態において、コンピューティングセッションファイルは捨てられる。しかしながら、別の実施の形態では、コンピューティングセッションファイルは保持され、将来の時点においてロードされ、対応するコンピューティングセッションを中断されたところから再開することができる。
[0008]この後者の実施の形態は一般的には、各コンピューティングセッションの終了時に上記のようにベースライン状態を取り込み、復元することを伴う。しかしながら、現在のコンピューティングセッションが終了したと判断されるときにはいつでも、付加的な動作も行われる。すなわち、コンピューティングセッションが終了した時点において存在するコンピューターのオペレーティングシステムメモリーの状態を表すセッション状態ファイルが格納される。永続化記憶装置に対して加えられることなっていた取り込まれた変更も、コンピューティングセッションファイルに格納される。以前のコンピューティングセッションを再開するために、格納されたコンピューティングセッション状態がロードされる。これは最初に、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応する格納されたセッション状態ファイルにアクセスすることを伴う。アクセスされたセッション状態は、その後、オペレーティングシステムメモリーの現在の(すなわち、ベースライン)状態の代わりに、コンピューターのオペレーティングシステムメモリーにロードされる。さらに、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応するコンピューティングセッションファイルがアクセスされる。さらに、現在のコンピューティングセッション中に永続化記憶装置に加えられることなっていた変更が再び取り込まれる。取り込まれた変更は、そのコンピューティングセッションファイルに格納される。上記のように、取り込まれた変更、及び永続化記憶装置からの他のデータは、現在のコンピューティングセッション中に用いられる。
[0009]本開示の具体的な特徴、態様及び利点は、以下の説明、添付の特許請求の範囲及び添付の図面との関連で、更に理解が深まるであろう。
[0010]本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の一部を実施することができる、オペレーティングシステム状態管理アーキテクチャーの簡略化された図である。 [0011]ベースラインシステム状態を取り込み、ロードするためのプロセスの一実施形態を包括的に概説する流れ図である。 [0012]コンピューティングセッションシステム状態を取り込むためのプロセスの一実施形態を包括的に概説する流れ図である。 [0013]新たなコンピューティングセッションにおいて、以前のコンピューティングセッションを中断したところから再開するために、取り込まれたコンピューティングセッション状態をロードするためのプロセスの一実施形態を包括的に概説する流れ図である。 [0014]デバッグするためにコンピューティングセッション状態のインクリメンタルに(徐々に、増加的に)ロードを行うためのプロセスの一実施形態を包括的に概説する流れ図である。 デバッグするためにコンピューティングセッション状態のインクリメンタルにロードを行うためのプロセスの一実施形態を包括的に概説する流れ図である。 [0015]本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態を実施するための1つの例示的なシステムを構成するコンピューティングデバイスを示す図である。
[0016]
オペレーティングシステム状態取込み及びローディング技法実施形態の以下の説明では、本明細書の一部を形成し、本技法を実施することができる具体的な実施形態が例示される添付の図面が参照される。本技法の範囲から逸脱することなく、他の実施形態を利用することができること、及び構造的な変更を加えることができることは理解されたい。
[0017]1.0 オペレーティングシステム状態管理アーキテクチャー
オペレーティングシステム状態取込み(捕捉)及びローディング(ロード)技法実施形態が記述される前に、その一部を実施することができる適切なオペレーティングシステム状態管理アーキテクチャーの包括的な説明が記述される。一般的に、その技法実施形態は、この説明の後のセクションにおいて更に詳細に記述されることになる、数多くの汎用又は専用のコンピューティングシステム環境又は構成とともに使用することができる。
[0018]これらの汎用又は専用コンピューターは、或るオペレーティングシステムを利用する。オペレーティングシステムの目的のうちの1つは、コンピューターに関連付けられたオペレーティングシステムメモリー、及び永続化記憶装置の両方を管理することである。この管理方式の中心は、図1に示されるような、ファイルシステムモジュール100である。ファイルシステムモジュール100は、コンピューターに関連付けられた永続化記憶装置を制御するために、ボリューム管理モジュール102と通信し、ボリューム管理モジュール102を通して機能する。永続化記憶装置は、図1に示されるハードディスク106のような、任意の単数又は複数の不揮発性記憶デバイスとすることができる。通常、永続化記憶装置は、デバイス管理モジュールを介して管理される。図1の例では、これは、ディスク管理モジュール104の形をとり、ディスク管理モジュールはボリューム管理モジュール102と通信し、最終的にはファイルシステムモジュール100によって制御される。
[0019]コンピューターの現在のオペレーティングシステム状態は、オペレーティングシステムメモリーに格納され、コンピューター上で行われているコンピューティングセッションが進行するのに応じて変化する。通常、オペレーティングシステムメモリーは、不揮発性記憶デバイスの形をとる。例えば、図1の一例のアーキテクチャーでは、オペレーティングシステムメモリーはランダムアクセスメモリー(RAM)108である。現在のオペレーティングシステムメモリー状態は、ハイバネーションイメージファイルと呼ばれるファイルに取り込むことができる。このハイバネーション機構(mechanism)によって、迅速に復元するために、システムメモリー及びレジスターの状態を永続化記憶装置にセーブすることができるようになる。これは主に、コンピューター上でオペレーティングシステムをシャットダウンし、その後、オペレーティングシステムを再開する際に、ハイバネーションイメージファイルを用いて以前の状態を復元することができるようにするために用いられる。したがって、オペレーティングシステムは、シャットダウンされた時点から動作を再開することができる。現在のオペレーティングシステムでは、それを実施するためのユーザーコマンドに基づいて、シャットダウン中にハイバネーションイメージファイルが作成される。上記の状態復元プロセスは通常、オペレーティングシステムが再開されるときのブートパスの一部として行われる。図1の一例のアーキテクチャーとの関連では、ファイル管理モジュール100がハイバネーションモジュール110と通信する。ハイバネーションモジュール110は、通信するように命令されると、ハイバネーションイメージファイルを生成し、ファイルシステムモジュール100の助けを借りて、そのファイルを永続化記憶装置に格納する。オペレーティングシステムメモリー管理モジュール112を用いて、オペレーティングシステムメモリー(例えば、図1に示されるようなRAM108)の現在の状態を取り込み、その状態をハイバネーションモジュール110に引き渡す。
[0020]従来のオペレーティングシステム管理アーキテクチャーの一部ではないが、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、状態管理ファイルシステムフィルター114を用いて、通常であれば永続化記憶装置に対して加えられていた変更を「取り除き」、取り込む。図1の例示的なアーキテクチャーでは、状態管理ファイルシステムフィルター114はファイルシステム100と通信し、その助けを借りて、取り込まれた変更を、本明細書においてコンピューティングセッションファイルと呼ばれるファイルにおいて永続化記憶装置に格納する。フィルター114の動作及びコンピューティングセッションファイルの役割は、後のセクションにおいて更に詳細に記述される。
[0021]上記のオペレーティングシステム状態管理アーキテクチャーは適切なアーキテクチャーの一例にすぎず、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の使用又は機能の範囲に関していかなる制限を示唆することも意図していないことに留意されたい。そのオペレーティングシステム状態管理アーキテクチャーは、図1に示される構成要素のいずれか1つ又はいずれかの組み合わせに関していかなる依存性も要件も有しているものとして解釈されるべきでもない。
[0022]2.0 オペレーティングシステム状態取込み及びローディング
通常のオペレーティングシステムコンピューティングセッションは、上記のシステムメモリー及び永続化記憶装置の両方に対する変更を含む。一般的に、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、或る時点で永続化記憶装置及びシステムメモリーの両方の状態を取り込み、その後、取り込まれたシステム状態をロードすることができるようにする。これは、1つの実施態様では、ハイバネーションイメージファイルを用いてシステムメモリーの状態を取り込むことによって成し遂げられる。ハイバネーションイメージファイルが用いられる場合であっても、これは、オペレーティングシステムが、通常の場合のようにリブート手順を用いて復元されなければならないことを意味しないことに留意されたい。むしろ、後のセクションにおいて更に詳細に記述されるように、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、標準的なハイバネーションシャットダウン及びブートパス再開手順以外で動作する。
[0023]変更を取り込むことに関しては、一実施形態において、上記の状態管理ファイルシステムフィルターを用いて、通常であれば永続化記憶装置に対して加えられていた変更を取り込む。したがって、永続化記憶装置に対する変更は許されない。取り込まれたシステム状態をロードすることによって、オペレーティングシステムを、システム状態が取り込まれた時点の状態に戻す。これは、コンピューティングセッション中にシステムメモリーの状態が変更された場合にも当てはまる。永続化記憶装置の変更が防止されたので、永続化記憶装置はシステム状態が取り込まれた時点の状態に保持されることにも留意されたい。
[0024]一実施形態では、取り込まれたシステム状態はベースライン状態を表し、コンピューティングセッションの終了時に元に戻すことができる。これにより、各コンピューティングセッションの開始時に、既知のベースライン状態を用いて新たに開始することができるようになる。したがって、インターネットカフェ又は他の共用アクセスホストコンピューティング状況の場合に、各コンピューティングセッションが終了する度に、ベースラインシステム状態が復元され、一貫性があり、かつ信頼性があるユーザー体験を確保する。
[0025]別の実施形態では、システムの2つ以上の状態が取り込まれる。上記のように、ベースライン状態が取り込まれるが、それに加えて、コンピューティングセッションシステム状態が取り込まれる。これにより、ユーザーは、取り込まれたコンピューティングセッションシステム状態を将来の時点でロードし、以前のコンピューティングセッションにおいてユーザーが中断したところから継続することができるようになる。さらに、各コンピューティングセッションが終了する度に、オペレーティングシステムはそのベースライン状態に戻される。したがって、ユーザーが取り込まれたコンピューティングセッションシステム状態をロードするのが、その直後のコンピューティングセッションのためであるか、又は1つ若しくは複数の介在するセッションが行われた後に生じるコンピューティングセッションのためであるかは問題ではない。これも、インターネットカフェ又は他の共用アクセスホストコンピューティング状況の場合に好都合である。各コンピューティングセッション(通常複数のユーザーを関与させることになる)が終了する度にベースラインシステム状態が復元されるだけでなく、個々のユーザーが自分のコンピューティングセッションを取り込み、その後、将来の時点で、そのコンピューティングセッションに関連付けられたシステム状態に戻すことができる。
[0026]さらに別の実施形態では、オペレーティングシステム状態取込み及びローディング技法によれば、セッション状態のインクリメンタルな(増加的な)ローディングを使用することによって迅速にデバッグを行い、既知の良好なベースライン状態にすることができるようになる。例えば、オペレーティングシステムクラッシュが発生した場合、セッション状態ファイルとしてクラッシュダンプファイルを使用し、問題が見つかるまでインクリメンタルなロードを行うことができる。
[0027]上記の実施形態、及び他の実施形態は、後のセクションにおいて更に詳細に検討される。
[0028]2.1 ベースラインシステム状態の取込み及びローディング
ベースラインシステム状態の取込みを伴う、オペレーティングシステム状態取込み及びローディング技法実施形態は、図2に示されるような1つの実施態様において成し遂げることができる。最初に、将来の時点でロードすることが望まれるコンピューターのオペレーティングシステムメモリーの状態が格納される(200)。格納された状態は、ベースラインシステム状態と呼ぶことができる。1つのバージョンでは、オペレーティングシステムメモリー状態は、ハイバネーションイメージファイルとして格納される。しかしながら、所望により他のファイルタイプを用いることもできる。
[0029]この時点から、そのコンピューターに関連付けられた永続化記憶装置に対する変更は許されない(202)。代わりに、その後のコンピューティングセッション中に永続化記憶装置に対して加えられることなっていた変更は、それらの変更が防止されなかった場合には、別個のコンピューティングセッションファイルに格納される(204)。1つのバージョンでは、これは、上記の状態管理ファイルシステムフィルターを用いて成し遂げられ、それは、永続化記憶装置に対する変更をコンピューティングセッションファイルにリダイレクトする。そのコンピューティングセッションファイルのために任意のファイルタイプを用いることができる。例えば、好ましい選択は、仮想ハードディスク(VHD)ファイルタイプであろう。コンピューティングセッションファイル内に格納された変更データは、永続化記憶装置内に格納されるデータと組み合わせて、それらの変更が実際に永続化記憶装置に対して加えられたかのように、通常通りにコンピューティングセッション中に用いられる。
[0030]そのコンピューターに関連付けられた永続化記憶装置をコンピューティングセッション中に変更されないままにすることによって、格納されたベースラインシステム状態をシステムメモリーに単にロードするだけで、ベースラインシステム状態を復元することができるようになる。永続化記憶装置を再構成する必要はない。言い換えると、図2を再び参照すると、コンピューターオペレーティングシステムを、オペレーティングシステムメモリー状態が格納されたときのその元の状態に戻すことが望ましいか否かが判断される(206)。例えば、この判断のためのトリガーは、オペレーティングシステムをベースライン状態に復元するためのユーザーコマンドとすることができるか、又は現在のコンピューティングセッションの終了のためのいくつかの他の理由とすることができる。オペレーティングシステムがまだ復元されるべきでないと判断される場合には、プロセス動作206が繰り返される。しかしながら、オペレーティングシステムが以前の格納された状態に復元されるべきであると判断される場合には、オペレーティングシステムメモリーの現在の状態の代わりに、格納された状態がオペレーティングシステムメモリーにロードされる(208)。
[0031]オペレーティングシステム状態を取り込む唯一の目的が、オペレーティングシステムをベースラインシステム状態に戻すことである場合には、コンピューティングセッションの終了時に、コンピューティングセッションファイルは単に捨てられることに留意されたい。後のセクションにおいて記述されるように、他の実施形態はコンピューティングセッションファイルを利用する。これらの実施形態では、セッションファイルは、捨てられるのではなく、保持される。
[0032]ベースラインシステム状態が取り込まれた後の任意の時点において、それらの状態を現在のシステム状態によって置き換えて、新たなベースライン状態を生成することができることに更に留意されたい。このタスクを成し遂げるために、状態管理ファイルシステムフィルターは一時的に使用不能にされ、コンピューティングセッションファイル内に取り込まれた変更が、そのコンピューターに関連付けられた永続性記憶装置において実施される。これにより、永続化記憶装置を現在のオペレーティングシステムメモリー状態に同期させる。その後、新たなベースラインシステム状態を上記のように取り込むことができ、新たなオペレーティングシステムメモリー状態が以前に格納された状態の代わりに格納される。
[0033]2.2 コンピューティングセッション状態の取込み及びローディング
上記のように、ユーザーのコンピューティングセッション状態も取り込むことができる。これにより、ユーザーは、取り込まれたコンピューティングセッションシステム状態を将来の時点でロードすることができるようになり、以前のコンピューティングセッションにおいて中断したところから継続することができるようになる。依然としてベースライン状態も上記のように取り込まれるが、それに加えて、別個のコンピューティングセッションシステム状態も取り込まれる。
[0034]一実施態様では、上記のことは、図3に示されるように成し遂げられる。最初に、コンピューターユーザーによって指定される時点において存在するようなコンピューターのオペレーティングシステムメモリー状態が格納され、ベースライン状態として指定される(300)。その後、コンピューターの永続化記憶装置が保護され、コンピューティングセッション中に本来なら行われる変更が防止されるようにする(302)。したがって、上記のように、コンピューターの永続性記憶装置は、オペレーティングシステムのベースラインメモリー状態が取り込まれた時点と同じ状態のままである。代わりに、その後のコンピューティングセッション中に永続化記憶装置に対して加えられることになっていた変更は、それらの変更が防止されなかった場合には、上記のコンピューティングセッションファイルに格納される(304)。そのコンピューティングセッションファイルに格納された変更データは、永続化記憶装置に格納されたデータと組み合わせて、上記のように、コンピューティングセッション中に通常通りに用いられる。
[0035]次に、現在のコンピューティングセッションが終了したか否かが判断される(306)。そのセッションがまだ終了していないと判断される場合には、プロセス動作306が繰り返される。しかしながら、コンピューティングセッションが終了していたと判断される場合には、いくつかの動作が行われる。最初に、そのコンピューティングセッションが終了した時点で存在するコンピューターのオペレーティングシステムメモリーの状態を表すセッション状態ファイルが格納される(308)。ベースライン状態ファイルの場合と同様に、1つのバージョンでは、そのファイルはハイバネーションイメージファイルとして格納される。しかしながら、所望により、他のファイルタイプ利用することもできる。さらに、永続化記憶装置に加えられることになっていた取り込まれた変更が、コンピューティングセッションファイルに格納される(310)。ここで再び、コンピューティングセッションファイルのために、VHDファイルのような任意のファイルタイプを用いることができる。セッション状態ファイル及びコンピューティングセッションファイルは、ユーザー及び終了したコンピューティングセッションを特定する指示子に関連付けられることに留意されたい。コンピューティングセッション中に永続化記憶装置に対して加えられることになっていた変更の取込みも、この時点において中止される(312)。その後、コンピューターオペレーティングシステムがそのベースライン状態に戻される。これは、オペレーティングシステムメモリーの現在の状態の代わりに、格納されたベースライン状態をオペレーティングシステムメモリーにロードすること(314)を伴う。
[0036]上記の手順の結果として、コンピューターのオペレーティングシステムはそのベースライン状態になり、ユーザーのコンピューティングセッション状態は、セッション状態ファイル及びコンピューティングセッションファイルの形で取り込まれていることになる。これを前提として、ここで、ユーザーが最後のセッションにおいて中断したところから継続することができるように、ユーザーのコンピューティングセッション状態がいかにロードされるかが記述される。ユーザーが格納されたセッションを、コンピューター上で次に行われるセッションとしてロードするか、又はいくつかの他のセッションが完了した後にロードするかは問題ではないことに留意されたい。介在するセッションは、そのユーザーによって行われている必要もない。これは、誰が行っても、又はセッションがどの順番で行われても、各セッションが終了する度に、コンピューターのオペレーティングシステムが同じベースライン状態に戻されるためである。
[0037]ここで図4を参照すると、ユーザーの格納されたコンピューティングセッション状態が以下のようにロードされる。最初に、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応する格納されたセッション状態ファイルがアクセスされる(400)。アクセスされたセッション状態ファイルは、その後、オペレーティングシステムメモリーの現在の(すなわち、ベースライン)状態の代わりに、コンピューターのオペレーティングシステムメモリーにロードされる(402)。さらに、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応するコンピューティングセッションファイルがアクセスされる(404)。上記のファイルにアクセスする方法は、本記述において後に更に詳細に説明される。次に、状態管理ファイルシステムフィルターが起動され、現在のコンピューティングセッション中に永続化記憶装置に対して加えられることになっていた変更が、上記のようにして取り込まれる(406)。取り込まれた変更はコンピューティングセッションファイルに格納される。上記のように、取り込まれた変更、及び永続化記憶装置からの他のデータは、現在のコンピューティングセッション中に用いられる。
[0038]その終了時にコンピューティングセッションに関連付けられたセッション状態ファイル及びコンピューティングセッションファイルを格納すること、及びコンピューターのオペレーティングシステムをそのベースライン状態に戻すことに関連する、図3との関連で記述された動作は、現在のセッションが終了するときに再び実施されることになる。このようにして、ユーザーは、終了したばかりのセッションを将来のセッションにおいて再開することを選択することができる。コンピューティングセッションファイルを以前のセッションファイルと区別することができるように、コンピューティングセッションファイルは新たな名前で格納されることに留意されたい。この新たなコンピューティングセッションファイルは、終了したばかりのコンピューティングセッション中に取り込まれた変更を加えることによって更新される、以前にセーブされた最後のセッションファイルを表す。さらに、セッション状態ファイルは、各コンピューティングセッションの終了時にセーブされるので、ユーザーは、そのコンピューターによってアクセス可能である複数のセーブされたセッションから選択することができる。このために、一実施態様では、セッション状態ファイル及びコンピューティングセッションファイルの上記のアクセスは、コンピューティングセッションを開始しているユーザーに、アクセス可能なセッション状態ファイル及び対応するコンピューティングセッションファイルのリストを提供することを含む。そのリストからユーザーによって選択される、以前のコンピューティングセッションに関連付けられたセッション状態ファイル及びコンピューティングセッションファイルが、その後、アクセスされ、入力される。また、セッション状態ファイル及びコンピューティングセッションファイルは特定のユーザーに関連付けられるので、ユーザーを、従来の方法を介して最初に特定することができ、その後、そのユーザーに関連付けられたファイルのみが、そのリストにおいて提供されることになる。
[0039]上記の実施態様では、コンピューターはセッション状態ファイル及びコンピューティングセッションファイルを、そのハードドライブのような、そのコンピューターからアクセス可能なメモリーに格納する。しかしながら、代替の実施態様では、コンピューターは、これらのファイルのコピーを保持しない。例えば、インターネットカフェ又は他の共用アクセスホストの例では、顧客のセッション状態ファイル及びコンピューティングセッションファイルを共用コンピューター上に格納することが望ましくない場合がある。その代替の実施態様では、コンピューティングセッションの終了時に、そのセッションのための格納されたセッション状態ファイル及びコンピューティングセッションファイルは、ユーザーがダウンロードするために利用することができるようになる。その際、ユーザーは、これらのファイルをポータブルメモリーデバイス(例えば、フラッシュドライブ等)に格納するか、又は場合によっては、それらのファイルを、ネットワーク接続を介して(例えば、メールに添付して等)別のコンピューターに送信するというオプションを有する。ユーザーがファイルをダウンロードするか否かにかかわらず、それらのファイルはコンピューターからアクセス不可能になる。
[0040]セッション状態ファイル及びコンピューティングセッションファイルがコンピューターによって保持されない実施態様では、ユーザーが以前のコンピューティングセッションを再開するために、それらのファイルが与えられる必要がある。このために、これらのファイルにアクセスすることは、ユーザーが再開することを望むコンピューティングセッションに対応するセッション状態ファイル及びコンピューティングセッションファイルを入力するように、コンピューターがユーザーに要求することを伴う。その際、それらのファイルがいかに格納されたかに応じて、ユーザーは要求されたファイルを適切な方法で入力するであろう。
[0041]セッション状態ファイル及びコンピューティングセッションファイルがコンピューターによって保持されない実施態様では、ユーザーが以前のコンピューティングセッションを再開することを望む時点において、それらのファイルがそのコンピューターに依然として適合するか否かに関する疑問が生じることに更に留意されたい。例えば、入力されたセッション状態ファイル及びコンピューティングセッションファイルが取り込まれてから、コンピューターのベースラインシステム状態が変更されていた場合には、それらはもはや適合しない場合がある。適合性を確保するための1つの方法は、ベースラインシステム状態ファイルを、ベースライン状態が新しくなる度に変化するバージョン指示子(指標、インジケーター)と関連付けることである。このようにして、各ベースラインが一意に特定される。その後、終了したコンピューティングセッションに対応するセッション状態ファイル及びコンピューティングセッションファイルは、それらのファイルが格納された時点において検証情報と関連付けられる。検証情報は、それらのファイルが導出されたベースラインシステム状態のバージョンに対応する上記のベースラインバージョン指示子を含む。この指示子は、コンピューターによって現在用いられているベースラインシステム状態のベースラインバージョン指示子と比較されることになる。それらの指示子が一致する場合には、入力されたファイルは適合している(これは、コンピューターが、最後のコンピューティングセッションの終了時に、そのベースライン状態に復元されることになっていたため)。それらの指示子が一致しない場合には、ユーザーは、入力されたファイルに関連付けられたコンピューティングセッションが再開することができないことを通知されることになる。
[0042]ユーザーによってコンピューターに入力されたセッション状態ファイル及びコンピューティングセッションファイルが適合しない場合がある別の理由は、そのコンピューターが、それらのファイルを生成するために用いられたのと同じコンピューターでないということである。通常、異なるコンピューターは、異なるベースラインシステム状態を有することになる。しかしながら、2つ以上のコンピューターを、同じセッション状態ファイル及びコンピューティングセッションファイルセットに適合するように構成することもできる。これは、一実施態様において、関与する全てのコンピューター間で同じベースラインバージョン指示子を有する共通のベースラインシステム状態を作成することによって成し遂げることができる。このようにすれば、ファイルが導出されたベースラインシステム状態がいずれのコンピューターにおいても同じであるので、1つのコンピューターにおいて生成されたセッション状態ファイル及びコンピューティングセッションファイルセットが別のコンピューターに適合することになる。
[0043]上記のようなバージョン制御ベースラインシステム状態方式では、セッション状態ファイルのサイズを縮小する機会がある。このために、一実施態様では、オペレーティングシステムメモリーベースライン状態と、コンピューティングセッションが終了した時点で存在するオペレーティングシステムメモリーの状態との間の差が特定される。その後、オペレーティングシステムメモリー全体の現在の状態の代わりに、これらの差がセッション状態ファイルとして格納される。セッション状態ファイルのこの変形は、セッション状態差分ファイルと呼ぶことができる。この差分ファイルは、オペレーティングシステムメモリーをポピュレートするのに必要とされる状態のうちのいくつかを欠いているので、以前のコンピューティングセッションを再開するためにオペレーティングシステムメモリーにロードされる前に、ベースラインオペレーティングシステムメモリー状態ファイルに組み込んで、完全なコンピューティングセッション状態構成を再構成する。このために、入力セッション状態差分ファイルから、復元されたセッション状態ファイルが生成される。これは、有効性が検査される実施態様において、入力ファイルの適合性を検証するのに成功した後に行うことができる。セッション状態差分ファイルの差をオペレーティングシステムメモリーベースライン状態に適用することによって、復元されたセッション状態ファイルが生成される。言い換えると、差分ファイルにおいて見いだされる状態を用いて、ベースライン状態ファイル内の対応する状態を置き換えて、復元されたセッション状態ファイルを生成する。セッション状態ファイルが復元されると、上記のようにロードし、関連付けられたコンピューティングセッションを再開する。
[0044]2.3 デバッグするためのコンピューティングセッション状態の取込み及びインクリメンタルなローディング
上記のように、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態によれば、セッション状態のインクリメンタルなローディングを使用することによって、迅速にデバッグすることもできるようになる。一般的に、オペレーティングシステムメモリー状態の増分を既知の良好なベースライン状態に投入することによって、アプリケーション又はオペレーティングシステムをデバッグすることができる。ユーザーがアプリケーション又はシステムのデバッグを選択することもできるし、誤りに起因するシステムクラッシュによってデバッグプロセスを開始することもできる。この後者のシナリオでは、クラッシュの時点において生成されるクラッシュダンプファイルが、セッション状態ファイルとして用いられることになる。この実施形態を繰り返す度に、従来のデバッグ技法が用いられる。
[0045]一実施形態では、インクリメンタルなデバッグ方式は以下のように達成される。図5A及び図5Bを参照すると、そのプロセスは既知の良好なベースライン状態を確立することによって開始する。このために、コンピューターのユーザーによって指定される時点で存在するような、コンピューターのオペレーティングシステムメモリーの状態が格納される(500)。これらの状態はベースライン状態ファイルとして格納される。他の実施態様と同様に、コンピューティングセッション中にそのコンピューターに関連付けられた永続化記憶装置に対する変更が防止され(502)、代わりに、永続化記憶装置に対して加えられることになっていた変更が取り込まれる(504)。上記のように、取り込まれた変更及び永続化記憶装置からの他のデータは、そのコンピューティングセッション中に用いられる。
[0046]次に、現在のコンピューティングセッションが終了したか否か、例えば、ユーザーがそのセッションを終了してデバッグを開始する時点、又はシステムがクラッシュする時点等を判断する(506)。そのセッションがまだ終了していないと判断される場合には、プロセス動作506が繰り返される。しかしながら、そのコンピューティングセッションが終了したとき、そのコンピューティングセッションが終了した時点で存在するコンピューターのオペレーティングシステムメモリーの状態を表すセッション状態ファイルが格納される(508)。システムクラッシュのシナリオでは、このセッション状態ファイルは、クラッシュダンプファイルであろう。さらに、永続化記憶装置に対して加えられることになっていた変更の取込みが中止され、それらの変更がセーブされる(510)。その後、オペレーティングシステムメモリーの現在の状態の代わりに、格納されたベースライン状態をオペレーティングシステムメモリーにロードすることによって、コンピューターオペレーティングシステムは、そのオペレーティングシステムメモリーベースライン状態が格納されたときの状態に戻される(512)。
[0047]ベースライン状態が復元されると、インクリメンタルなデバッグプロセスを開始することができる。これは最初に、格納されたセッション状態ファイルからの状態の所定の部分にアクセスし、コンピューターのオペレーティングシステムメモリーの対応する現在の状態の代わりに、その所定の部分をコンピューターのオペレーティングシステムメモリーにロードすることを伴う(514)。その後、永続化記憶装置に対して加えられることになっていた変更の取込みが再開される(516)。コンピューターオペレーティングシステム又は特定のアプリケーションをデバッグするために、その後、これらの取り込まれた変更、並びに永続化記憶装置からの他のデータ及び以前にセーブされた変更が、現在のデバッグ反復中に用いられる(518)。デバッグ手順の終了時に、コンピューターのオペレーティングシステムがデバッグされたか否かが判断される(520)。デバッグされていると判断された場合には、そのプロセスは終了する。しかしながら、コンピューターのオペレーティングシステムがデバッグされていないと判断されるとき、現在のデバッグ反復が終了される(522)。現在のデバッグ反復中に永続化記憶装置に対して加えられることになっていた変更の取込みが中止され、取り込まれた変更がセーブされる(524)。オペレーティングシステムメモリーの現在の状態の代わりに、ベースライン状態ファイルからの格納された状態をオペレーティングシステムメモリーにロードすることによって、コンピューターオペレーティングシステムがそのベースライン状態に再び戻される(526)。次に、最後に終了したデバッグ反復から所定の増分だけ増加した、格納されたセッション状態ファイルからの状態の部分がアクセスされ、コンピューターのオペレーティングシステムメモリーの対応する現在の状態の代わりに、その部分がコンピューターのオペレーティングシステムメモリーにロードされる(528)。その後、コンピューターのオペレーティングシステムがデバッグされるまで、必要に応じてプロセス動作(516)〜(528)が繰り返される。
[0048]3.0 コンピューティング環境
ここで、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の部分を実施することができる適切なコンピューティング環境の簡潔な包括的説明が記述される。先に言及されたように、その技法実施形態は、数多くの汎用又は専用コンピューティングシステム環境又は構成とともに使用することができる。適している場合がある既知のコンピューティングシステム、環境及び/又は構成の例は、限定はしないが、パーソナルコンピューター、サーバーコンピューター、ハンドヘルド又はラップトップデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC,ミニコンピューター、メインフレームコンピューター、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境等を含む。
[0049]図6は、適切なコンピューティングシステム環境の一例を示す。そのコンピューティングシステム環境は、適切なコンピューティング環境の一例にすぎず、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の使用又は機能の範囲に関していかなる制限を示唆することも意図していない。そのコンピューティング環境は、例示的なオペレーティング環境において示される構成要素のいずれか1つ又はいずれかの組み合わせに関していかなる依存性も要件も有しているものとして解釈されるべきでもない。図6を参照すると、本明細書において記述される実施形態を実施するための1つの例示的なシステムが、コンピューティングデバイス10のようなコンピューティングデバイスを含む。コンピューティングデバイス10は通常、その最も基本的な構成では、少なくとも1つの処理ユニット12及びメモリー14を含む。メモリー14は、揮発性記憶装置(RAMなど)及び不揮発性記憶装置(ROM、フラッシュメモリー等)の組み合わせである。この最も基本的な構成が、図6において破線16によって示される。さらに、デバイス10は、付加的な機構/機能を有することもできる。例えば、デバイス10は、限定はしないが、磁気又は光ディスク若しくはテープを含む、付加的な記憶装置(取り外し可能な及び/又は取り外し不能な)も含むことができる。そのような付加的な記憶装置は、図6において、取り外し可能な記憶装置18及び取り外し不能な記憶装置20によって示される。コンピューター記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータのような情報を記憶するための任意の方法又は技術において実現される揮発性及び不揮発性、取り外し可能な及び取り外し不能な媒体を含む。メモリー14、取り外し可能な記憶装置18及び取り外し不能な記憶装置20は全てコンピューター記憶媒体の例である。コンピューター記憶媒体は、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリー又は他のメモリー技術、CD−ROM、デジタルバーサタイルディスク(DVD)又は他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶デバイス、或いは所望の情報を格納するために用いることができ、かつデバイス10によってアクセスすることができる任意の他の媒体を含む。任意のそのようなコンピューター記憶媒体は、デバイス10の一部とすることができる。
[0050]デバイス10は通信接続22も含むことができ、それにより、そのデバイスは他のデバイスと通信することができるようになる。また、デバイス10は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、カメラ等の入力デバイス24も有することができる。ディスプレイ、スピーカー、プリンター等の出力デバイス26も含めることができる。これらのデバイスは全て当該技術分野において既知であり、ここで長々と検討する必要はない。
[0051]本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、コンピューティングデバイスによって実行される、プログラムモジュールのようなコンピューター実行可能命令との一般的な関連において更に記述することができる。一般的に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本明細書において記述される実施形態は、分散コンピューティング環境において実施することもでき、その場合、タスクは、通信ネットワークを通してリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールを、メモリー記憶デバイスを含む、ローカル及びリモート両方のコンピューター記憶媒体内に配置することができる。
[0052]3.0 他の実施形態
本記述全体を通してこれまでに記述された実施形態のいずれか、又は全てが、更に別の混成実施形態を形成するために望まれる任意の組み合わせにおいて用いることができることに留意されたい。さらに、主題が構造的な特徴及び/又は方法的な動作に特有の用語において記述されてきたが、添付の特許請求の範囲において定められる主題は上記の具体的な特徴又は動作には必ずしも限定されないことは理解されたい。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実施する例示的な形態として開示される。

Claims (15)

  1. オペレーティングシステム状態を取り込み、ロードするための、コンピューターにより実施される方法であって、
    コンピューターを用いて以下の動作を実行するステップを含み、該動作は、
    前記コンピューターのユーザーによって指定された時点において存在する、前記コンピューターのオペレーティングシステムメモリーの状態を格納するステップであって、該状態は該オペレーティングシステムメモリーのベースライン状態として指定される、格納するステップと、
    コンピューティングセッション中に、前記コンピューターに関連付けられた永続化記憶装置に対する変更を防止するステップと、
    該変更が防止されなかった場合には前記コンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更を、取り込み、前記コンピューティングセッション中に、該取り込まれた変更及び前記永続化記憶装置からの他のデータを利用するステップと、
    前記コンピューティングセッションが終了するときはいつでも、
    前記コンピューティングセッションが終了した時点において存在する前記コンピューターの前記オペレーティングシステムメモリーの状態を表すセッション状態ファイルを格納し、該セッション状態ファイルを前記ユーザー及び前記終了したコンピューティングセッションに関連付けるステップと、
    前記取り込まれた変更を別個のコンピューティングセッションファイルに格納し、該コンピューティングセッションファイルを前記ユーザー及び前記終了したコンピューティングセッションに関連付けるステップと、
    前記コンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取込みを中止するステップと、
    前記コンピューターオペレーティングシステムを、前記オペレーティングシステムメモリーベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記格納さ
    れたベースライン状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
    前記コンピューターを前記コンピューティングセッションが終了したときの状態に戻し、現在のコンピューティングセッションを開始することが望まれるときはいつでも、
    コンピューティングセッションに対応する前記格納されたセッション状態ファイルにアクセスし、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップと、
    前記コンピューティングセッションに対応する前記コンピューティングセッションファイルにアクセスするステップと、
    前記コンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取込みを再開し、該取り込まれた変更を前記コンピューティングセッションファイルに格納するステップと、
    前記現在のコンピューティングセッション中に、前記取り込まれた変更及び前記永続化記憶装置からの他のデータを利用するステップと
    を含む、方法
  2. 前記変更を別個のセッションファイルに格納するステップは、仮想ハードディスク(VHD)ファイルフォーマットで前記変更を格納するステップを含む請求項1に記載の方法
  3. 前記オペレーティングシステムメモリーの状態を格納するステップは、前記状態をハイバネーションイメージファイルとして格納するステップを含む請求項1に記載の方法
  4. 前記現在のコンピューティングセッションが終了したときはいつでも、
    前記現在のコンピューティングセッションが終了した時点において存在する前記コンピューターの前記オペレーティングシステムメモリーの前記状態を表すセッション状態ファイルを格納し、該セッション状態ファイルを前記ユーザー及び前記終了した現在のコンピューティングセッションに関連付けるステップと、
    前記現在のコンピューティングセッション中に取り込まれた前記防止された永続化記憶装置変更を加えることによって、以前に格納された最後のセッションを更新する新たなコンピューティングセッションファイルを生成及び格納し、該新たなコンピューティングセッションファイルを前記ユーザー及び前記終了した現在のコンピューティングセッションに関連付けるステップと、
    前記現在のコンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取込みを中止するステップと、
    前記コンピューターオペレーティングシステムを、前記オペレーティングシステムメモリーベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記格納されたベースライン状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
    を更に含む、請求項1に記載の方法
  5. 複数のコンピューティングセッションに関連付けられたセッション状態ファイル及びコンピューティングセッションファイルが前記コンピューターによってアクセス可能であり、コンピューティングセッションに対応する前記格納されたセッション状態ファイルにアクセスし、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップ、及び前記コンピューティングセッションに対応する前記コンピューティングセッションファイルにアクセスするステップは、
    アクセス可能なセッション状態ファイル及びコンピューティングセッションファイルの
    リストを現在のコンピューティングセッションを開始しているユーザーに提供するステップと、
    前記ユーザーが前記現在のセッションとして再開することを望む以前のコンピューティングセッションに対応する、前記提供されたリストからの前記セッション状態ファイル及び前記コンピューティングセッションファイルのユーザー選択を入力するステップと、
    前記ユーザー選択によるセッション状態ファイル及びコンピューティングセッションファイルを使用して、前記コンピューターを前記以前のコンピューティングセッションが終了したときの状態に戻し、現在のコンピューティングセッションを開始するステップと、を含む、請求項4に記載の方法
  6. セッション状態ファイルを格納する前記ステップ及びコンピューティングセッションファイルを格納する前記ステップは、前記ファイルを、前記コンピューターによってアクセス可能な不揮発性メモリーに格納するステップを含む、請求項5に記載の方法
  7. 前記コンピューターオペレーティングシステムを、前記オペレーティングシステムメモリーベースライン状態が格納されたときの状態に戻す前記ステップは、
    最後に終了したコンピューティングセッションに対応する前記格納されたセッション状態ファイル及びコンピューティングセッションファイルを、前記ユーザーがダウンロードするために利用することができるようにするステップと、
    前記最後に終了したコンピューティングセッションに対応する前記格納されたセッション状態ファイル及びコンピューティングセッションファイルを、前記コンピューターによってアクセス可能な前記メモリーから削除するステップと、
    を更に含む、請求項4に記載の方法
  8. セッション状態ファイルにアクセスする前記ステップ及びコンピューティングセッションファイルにアクセスする前記ステップは、
    前記ユーザーに前記セッション状態ファイル及び前記コンピューティングセッションファイルを入力するように要求するステップと、
    前記ユーザーから受信するときに、前記セッション状態ファイル及び前記コンピューティングセッションファイルを入力するステップと、
    を含む、請求項7に記載の方法
  9. セッション状態ファイルを格納する前記ステップ及びコンピューティングセッションファイルを格納する前記ステップは、前記ファイルを、前記ファイルが導出された前記オペレーティングシステムメモリーベースライン状態のバージョンを特定するベースラインバージョン指示子を含む検証情報と関連付けるステップを含む、請求項8に記載の方法
  10. セッション状態ファイルにアクセスする前記ステップ及びコンピューティングセッションファイルにアクセスする前記ステップは、
    前記ファイルに関連付けられた前記検証情報に基づいて、前記セッション状態ファイル及び前記コンピューティングセッションファイルが、前記コンピューターによって利用される前記オペレーティングシステムの前記オペレーティングシステムメモリーベースライン状態から導出されたか否かを判断するステップと、
    前記セッション状態ファイル及び前記コンピューティングセッションファイルが、前記コンピューターによって利用される前記オペレーティングシステムの前記オペレーティングシステムメモリーベースライン状態から導出されたと判断されるときにはいつでも、前記セッション状態ファイル及び前記コンピューティングセッションファイルにアクセスするステップと、
    前記セッション状態ファイル及び前記コンピューティングセッションファイルが、前記コンピューターによって利用される前記オペレーティングシステムの前記オペレーティン
    グシステムメモリーベースライン状態から導出されなかったと判断されるときにはいつでも、前記セッション状態ファイル及び前記コンピューティングセッションファイルにアクセスすることができないことを前記ユーザーに通知するステップと、
    を更に含む、請求項9に記載の方法
  11. セッション状態ファイルを格納する前記ステップは、
    前記オペレーティングシステムメモリーベースライン状態と、最後に行われたコンピューティングセッションが終了した時点において存在する前記オペレーティングシステムメモリーの状態との間の差を特定するステップと、
    前記特定された差をセッション状態差分ファイルとして格納するステップと、
    を含む、請求項4に記載の方法
  12. 前記コンピューティングセッションに対応する前記格納されたセッション状態ファイルにアクセスする前記ステップは、
    前記セッション状態差分ファイル内の前記差を前記オペレーティングシステムメモリーベースライン状態に適用することによって、復元されたセッション状態ファイルを生成し格納するステップと、
    前記復元されたセッション状態ファイルを、アクセスされることになる前記格納されたセッション状態ファイルとして指定するステップと、
    を含む、請求項11に記載の方法
  13. オペレーティングシステム状態を取り込み、ロードするための、コンピューターにより実施される方法であって、
    コンピューターを用いて以下の動作を実行することを含み、該動作は、
    (a)前記コンピューターのユーザーによって指定される時点において存在する、前記コンピューターのオペレーティングシステムメモリーの状態を格納するステップであって、該状態はベースライン状態ファイルに格納される、格納するステップと、
    (b)コンピューティングセッション中に前記コンピューターに関連付けられた永続化記憶装置に対する変更を防止するステップと、
    (c)該変更が防止されなかった場合にコンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更を、取り込むステップと、
    (d)現在のコンピューティングセッション中に、前記取り込まれた変更及び前記永続化記憶装置からの他のデータを利用するステップと、
    (e)前記コンピューティングセッションが終了したときはいつでも、
    前記コンピューティングセッションが終了した時点において存在する前記コンピューターの前記オペレーティングシステムメモリーの状態を表すセッション状態ファイルを格納するステップと、
    前記現在のコンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取込みを中止し、前記取り込まれた変更をセーブするステップと、
    前記コンピューターオペレーティングシステムを、前記オペレーティングシステムメモリーベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記格納されたベースライン状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
    (f)前記格納されたセッション状態ファイルからの状態の所定の部分にアクセスし、前記コンピューターのオペレーティングシステムメモリーの対応する現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップと、
    (g)前記永続化記憶装置に対して加えられることになっていた変更の前記取込みを再開するステップと、
    (h)現在のデバッグ反復中に、前記取り込まれた変更並びに前記永続化記憶装置からの他のデータ及び前記セーブされた変更を利用して、前記コンピューターオペレーティングシステムをデバッグするステップと、
    (i)前記コンピューターのオペレーティングシステムがデバッグされたか否かを判断するステップと、
    (j)前記コンピューターのオペレーティングシステムがデバッグされなかったと判断されるときはいつでも、
    前記現在のデバッグ反復を終了するステップと、
    前記現在のデバッグ反復中に前記永続化記憶装置に対して加えられることになっていた変更の前記取込みを中止し、前記取り込まれた変更をセーブするステップと、
    前記コンピューターオペレーティングシステムを、前記オペレーティングシステムメモリーベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記ベースライン状態ファイルからの前記格納された状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
    最後に終了したデバッグ反復に対応する前記格納されたセッション状態ファイルからの前記状態の増加した部分にアクセスし、前記コンピューターのオペレーティングシステムメモリーの前記対応する現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップであって、前記格納されたセッション状態ファイルからの前記状態の前記増加した部分は、前記最後に終了したデバッグ反復においてロードされた前記格納されたセッション状態ファイルからの前記状態に加えて、前記格納されたセッション状態ファイルからの前記状態の所定の付加的な部分を含む、ロードするステップと、
    (k)前記コンピューターのオペレーティングシステムがデバッグされるまで、ステップ(g)乃至(j)を繰り返すステップと、
    を含む、方法
  14. 前記コンピューティングセッションは、誤りに起因して前記コンピューターのオペレーティングシステムによって自動的に終了され、前記セッション状態ファイルはクラッシュダンプファイルである、請求項13に記載の方法
  15. 前記コンピューティングセッションは、前記コンピューターのオペレーティングシステムをデバッグするために前記ユーザーによって終了される、請求項13に記載の方法
JP2012509829A 2009-05-05 2010-04-16 オペレーティングシステム状態の取込み及びローディング Active JP5416834B2 (ja)

Applications Claiming Priority (3)

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
PCT/US2010/031457 WO2010129159A2 (en) 2009-05-05 2010-04-16 Capturing and loading operating system states

Publications (3)

Publication Number Publication Date
JP2012526322A JP2012526322A (ja) 2012-10-25
JP2012526322A5 JP2012526322A5 (ja) 2013-03-28
JP5416834B2 true JP5416834B2 (ja) 2014-02-12

Family

ID=43050692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012509829A Active JP5416834B2 (ja) 2009-05-05 2010-04-16 オペレーティングシステム状態の取込み及びローディング

Country Status (9)

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

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

Family Cites Families (24)

* 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 株式会社日立製作所 情報処理装置
US6523125B1 (en) 1998-01-07 2003-02-18 International Business Machines Corporation System and method for providing a hibernation mode in an information handling system
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 情報処理装置及び記憶媒体
CN1293461C (zh) * 1999-07-30 2007-01-03 神基科技股份有限公司 一种将电脑系统状态挂起的方法
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 計算機の起動時間短縮方式
US7827558B2 (en) * 2004-06-30 2010-11-02 Devicevm, Inc. Mechanism for enabling a program to be executed while the execution of an operating system is suspended
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 情報処理システムおよび情報処理装置の割当管理方法
CN100377085C (zh) * 2006-03-31 2008-03-26 浙江大学 嵌入式操作系统硬件镜像启动优化的实现方法
US8352717B2 (en) * 2009-02-09 2013-01-08 Cs-Solutions, Inc. Recovery system using selectable and configurable snapshots

Also Published As

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

Similar Documents

Publication Publication Date Title
US10067835B2 (en) System reset
US9235474B1 (en) Systems and methods for maintaining a virtual failover volume of a target computing system
US10656845B2 (en) System and method for managing container image
JP5416834B2 (ja) オペレーティングシステム状態の取込み及びローディング
US20150032690A1 (en) Virtual synchronization with on-demand data delivery
US20090254591A1 (en) Manipulating Electronic Backups
EP3769224B1 (en) Configurable recovery states
JP2012526322A5 (ja)
EP3769225B1 (en) Free space pass-through
US11907102B2 (en) Dynamic debug log enabler for any protection failure jobs
TWI448967B (zh) 軟體更新方法與電腦可讀取媒體
JP5970984B2 (ja) 復元プログラムおよび復元装置
TWI416327B (zh) 資料備份方法
US9268576B1 (en) Physical replica utilizing replica virtual storage for computer system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130205

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130205

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130926

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131115

R150 Certificate of patent or registration of utility model

Ref document number: 5416834

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250