(57)【特許請求の範囲】
【請求項１】
オペレーティングシステム状態を取り込み、ロードするための、コンピューターにより実施される方法であって、
コンピューターを用いて以下の動作を実行するステップを含み、該動作は、
前記コンピューターのユーザーによって指定された時点において存在する、前記コンピューターのオペレーティングシステムメモリーの状態を格納するステップであって、該状態は該オペレーティングシステムメモリーのベースライン状態として指定される、格納するステップと、
コンピューティングセッション中に、前記コンピューターに関連付けられた永続化記憶装置に対する変更を防止するステップと、
該変更が防止されなかった場合には前記コンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更を、取り込み、前記コンピューティングセッション中に、該取り込まれた変更及び前記永続化記憶装置からの他のデータを利用するステップと、
前記コンピューティングセッションが終了するときはいつでも、
前記コンピューティングセッションが終了した時点において存在する前記コンピューターの前記オペレーティングシステムメモリーの状態を表すセッション状態ファイルを格納し、該セッション状態ファイルを前記ユーザー及び前記終了したコンピューティングセッションに関連付けるステップと、
前記取り込まれた変更を別個のコンピューティングセッションファイルに格納し、該コンピューティングセッションファイルを前記ユーザー及び前記終了したコンピューティングセッションに関連付けるステップと、
前記コンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取り込みを中止するステップと、
前記コンピューターのオペレーティングシステムを、前記オペレーティングシステムメモリーのベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記格納さ
れたベースライン状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
前記コンピューターを前記コンピューティングセッションが終了したときの状態に戻し、現在のコンピューティングセッションを開始することが望まれるときはいつでも、
コンピューティングセッションに対応する前記格納されたセッション状態ファイルにアクセスし、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップと、
前記コンピューティングセッションに対応する前記コンピューティングセッションファイルにアクセスするステップと、
前記コンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取り込みを再開し、該取り込まれた変更を前記コンピューティングセッションファイルに格納するステップと、
前記現在のコンピューティングセッション中に、前記取り込まれた変更及び前記永続化記憶装置からの他のデータを利用するステップと
を含む、方法。
【請求項２】
前記変更を別個のセッションファイルに格納するステップは、仮想ハードディスク（ＶＨＤ）ファイルフォーマットで前記変更を格納するステップを含む請求項１に記載の方法。
【請求項３】
前記オペレーティングシステムメモリーの状態を格納するステップは、前記状態をハイバネーションイメージファイルとして格納するステップを含む請求項１に記載の方法。
【請求項４】
前記現在のコンピューティングセッションが終了したときはいつでも、
前記現在のコンピューティングセッションが終了した時点において存在する前記コンピューターの前記オペレーティングシステムメモリーの前記状態を表すセッション状態ファイルを格納し、該セッション状態ファイルを前記ユーザー及び前記終了した現在のコンピューティングセッションに関連付けるステップと、
前記現在のコンピューティングセッション中に取り込まれた前記防止された永続化記憶装置変更を加えることによって、以前に格納された最後のセッションを更新する新たなコンピューティングセッションファイルを生成及び格納し、該新たなコンピューティングセッションファイルを前記ユーザー及び前記終了した現在のコンピューティングセッションに関連付けるステップと、
前記現在のコンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取り込みを中止するステップと、
前記コンピューターのオペレーティングシステムを、前記オペレーティングシステムメモリーのベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記格納されたベースライン状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
を更に含む、請求項１に記載の方法。
【請求項５】
複数のコンピューティングセッションに関連付けられたセッション状態ファイル及びコンピューティングセッションファイルが前記コンピューターによってアクセス可能であり、コンピューティングセッションに対応する前記格納されたセッション状態ファイルにアクセスし、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップ、及び前記コンピューティングセッションに対応する前記コンピューティングセッションファイルにアクセスするステップは、
アクセス可能なセッション状態ファイル及びコンピューティングセッションファイルの
リストを現在のコンピューティングセッションを開始しているユーザーに提供するステップと、
前記ユーザーが前記現在のセッションとして再開することを望む以前のコンピューティングセッションに対応する、前記提供されたリストからの前記セッション状態ファイル及び前記コンピューティングセッションファイルのユーザー選択を入力するステップと、
前記ユーザー選択によるセッション状態ファイル及びコンピューティングセッションファイルを使用して、前記コンピューターを前記以前のコンピューティングセッションが終了したときの状態に戻し、現在のコンピューティングセッションを開始するステップと、を含む、請求項４に記載の方法。
【請求項６】
セッション状態ファイルを格納する前記ステップ及びコンピューティングセッションファイルを格納する前記ステップは、前記ファイルを、前記コンピューターによってアクセス可能な不揮発性メモリーに格納するステップを含む、請求項５に記載の方法。
【請求項７】
前記コンピューターのオペレーティングシステムを、前記オペレーティングシステムメモリーのベースライン状態が格納されたときの状態に戻す前記ステップは、
最後に終了したコンピューティングセッションに対応する前記格納されたセッション状態ファイル及びコンピューティングセッションファイルを、前記ユーザーがダウンロードするために利用することができるようにするステップと、
前記最後に終了したコンピューティングセッションに対応する前記格納されたセッション状態ファイル及びコンピューティングセッションファイルを、前記コンピューターによってアクセス可能な前記メモリーから削除するステップと、
を更に含む、請求項４に記載の方法。
【請求項８】
セッション状態ファイルにアクセスする前記ステップ及びコンピューティングセッションファイルにアクセスする前記ステップは、
前記ユーザーに前記セッション状態ファイル及び前記コンピューティングセッションファイルを入力するように要求するステップと、
前記ユーザーから受信するときに、前記セッション状態ファイル及び前記コンピューティングセッションファイルを入力するステップと、
を含む、請求項７に記載の方法。
【請求項９】
セッション状態ファイルを格納する前記ステップ及びコンピューティングセッションファイルを格納する前記ステップは、前記ファイルを、前記ファイルが導出された前記オペレーティングシステムメモリーのベースライン状態のバージョンを特定するベースラインバージョン指示子を含む検証情報と関連付けるステップを含む、請求項８に記載の方法。
【請求項１０】
セッション状態ファイルにアクセスする前記ステップ及びコンピューティングセッションファイルにアクセスする前記ステップは、
前記ファイルに関連付けられた前記検証情報に基づいて、前記セッション状態ファイル及び前記コンピューティングセッションファイルが、前記コンピューターによって利用される前記オペレーティングシステムの前記オペレーティングシステムメモリーのベースライン状態から導出されたか否かを判断するステップと、
前記セッション状態ファイル及び前記コンピューティングセッションファイルが、前記コンピューターによって利用される前記オペレーティングシステムの前記オペレーティングシステムメモリーのベースライン状態から導出されたと判断されるときにはいつでも、前記セッション状態ファイル及び前記コンピューティングセッションファイルにアクセスするステップと、
前記セッション状態ファイル及び前記コンピューティングセッションファイルが、前記コンピューターによって利用される前記オペレーティングシステムの前記オペレーティン
グシステムメモリーのベースライン状態から導出されなかったと判断されるときにはいつでも、前記セッション状態ファイル及び前記コンピューティングセッションファイルにアクセスすることができないことを前記ユーザーに通知するステップと、
を更に含む、請求項９に記載の方法。
【請求項１１】
セッション状態ファイルを格納する前記ステップは、
前記オペレーティングシステムメモリーのベースライン状態と、最後に行われたコンピューティングセッションが終了した時点において存在する前記オペレーティングシステムメモリーの状態との間の差を特定するステップと、
前記特定された差をセッション状態差分ファイルとして格納するステップと、
を含む、請求項４に記載の方法。
【請求項１２】
前記コンピューティングセッションに対応する前記格納されたセッション状態ファイルにアクセスする前記ステップは、
前記セッション状態差分ファイル内の前記差を前記オペレーティングシステムメモリーのベースライン状態に適用することによって、復元されたセッション状態ファイルを生成し格納するステップと、
前記復元されたセッション状態ファイルを、アクセスされることになる前記格納されたセッション状態ファイルとして指定するステップと、
を含む、請求項１１に記載の方法。
【請求項１３】
オペレーティングシステム状態を取り込み、ロードするための、コンピューターにより実施される方法であって、
コンピューターを用いて以下の動作を実行することを含み、該動作は、
（ａ）前記コンピューターのユーザーによって指定される時点において存在する、前記コンピューターのオペレーティングシステムメモリーの状態を格納するステップであって、該状態はベースライン状態ファイルに格納される、格納するステップと、
（ｂ）コンピューティングセッション中に前記コンピューターに関連付けられた永続化記憶装置に対する変更を防止するステップと、
（ｃ）該変更が防止されなかった場合にコンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更を、取り込むステップと、
（ｄ）現在のコンピューティングセッション中に、前記取り込まれた変更及び前記永続化記憶装置からの他のデータを利用するステップと、
（ｅ）前記コンピューティングセッションが終了したときはいつでも、
前記コンピューティングセッションが終了した時点において存在する前記コンピューターの前記オペレーティングシステムメモリーの状態を表すセッション状態ファイルを格納するステップと、
前記現在のコンピューティングセッション中に前記永続化記憶装置に対して加えられることになっていた変更の前記取り込みを中止し、前記取り込まれた変更をセーブするステップと、
前記コンピューターのオペレーティングシステムを、前記オペレーティングシステムメモリーのベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記格納されたベースライン状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
（ｆ）前記格納されたセッション状態ファイルからの状態の所定の部分にアクセスし、前記コンピューターのオペレーティングシステムメモリーの対応する現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップと、
（ｇ）前記永続化記憶装置に対して加えられることになっていた変更の前記取り込みを再開するステップと、
（ｈ）現在のデバッグ反復中に、前記取り込まれた変更並びに前記永続化記憶装置からの他のデータ及び前記セーブされた変更を利用して、前記コンピューターのオペレーティングシステムをデバッグするステップと、
（ｉ）前記コンピューターのオペレーティングシステムがデバッグされたか否かを判断するステップと、
（ｊ）前記コンピューターのオペレーティングシステムがデバッグされなかったと判断されるときはいつでも、
前記現在のデバッグ反復を終了するステップと、
前記現在のデバッグ反復中に前記永続化記憶装置に対して加えられることになっていた変更の前記取り込みを中止し、前記取り込まれた変更をセーブするステップと、
前記コンピューターのオペレーティングシステムを、前記オペレーティングシステムメモリーのベースライン状態が格納されたときの状態に戻すステップであって、該戻すステップは、前記オペレーティングシステムメモリーの現在の状態の代わりに、前記ベースライン状態ファイルからの前記格納された状態を前記オペレーティングシステムメモリーにロードするステップを含む、戻すステップと、
最後に終了したデバッグ反復に対応する前記格納されたセッション状態ファイルからの前記状態の増加した部分にアクセスし、前記コンピューターのオペレーティングシステムメモリーの前記対応する現在の状態の代わりに、前記コンピューターのオペレーティングシステムメモリーにロードするステップであって、前記格納されたセッション状態ファイルからの前記状態の前記増加した部分は、前記最後に終了したデバッグ反復においてロードされた前記格納されたセッション状態ファイルからの前記状態に加えて、前記格納されたセッション状態ファイルからの前記状態の所定の付加的な部分を含む、ロードするステップと、
（ｋ）前記コンピューターのオペレーティングシステムがデバッグされるまで、ステップ（ｇ）乃至（ｊ）を繰り返すステップと、
を含む、方法。
【請求項１４】
前記コンピューティングセッションは、誤りに起因して前記コンピューターのオペレーティングシステムによって自動的に終了され、前記セッション状態ファイルはクラッシュダンプファイルである、請求項１３に記載の方法。
【請求項１５】
前記コンピューティングセッションは、前記コンピューターのオペレーティングシステムをデバッグするために前記ユーザーによって終了される、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステム状態の取込み及びローディングに関する。
【背景技術】
【０００２】
[0001]
一貫性があり、かつ信頼性があるユーザー体験を確保するために、インターネットカフェ及び他の共用アクセスホストでは、コンピューティングセッションが終了する度に、共用コンピューターをベースラインシステム状態に復元することが望ましい。通常、これは、各セッション後にホストシステムをリブートして、ベースライン状態を復元することを必要とする。
【０００３】
[0002]ハイバネーションは、直前のコンピューティングセッションに関連付けられた状態をより迅速に復元するために、システムメモリー及びレジスターの内容（例えば、デバイスハードウエアレジスター状態、ページファイル／アプリケーション及びドライバー状態等）をハードディスクのような永続性記憶装置にセーブすることができるようにする。この機構（feature）は主に、次の起動時に、オペレーティングシステムがハイバネーションファイルから復元され、シャットダウンされた時点から再開するように、コンピューターのオペレーティングシステムをシャットダウンさせることができるようにするために用いられる。
【０００４】
[0003]このハイバネーション機構は通常単一のファイル（例えば、ｈｉｂｅｒｆｉｌ．ｓｙｓ）を利用し、そのファイルは、その機構の開始時に書かれる。その後、ブートプロセスの一部として、ハイバネーションファイルを用いて、オペレーティングシステムをその以前の状態に復元する。
【発明の概要】
【０００５】
[0004]この概要は、詳細な説明において後に更に記述される概念の選択を簡略化された形で導入するために提供される。この概要は、特許請求される主題の重要な特徴又は不可欠な特徴を特定することを意図するものではなく、特許請求される主題の範囲を判断する際の助けとして用いられることを意図するものでもない。
【０００６】
[0005]本明細書において記述されるオペレーティングシステム状態取込み（捕捉）及びローディング技法は包括的には、ブートプロセス以外でベースラインシステム状態を少なくとも取り込むこと及びロードすることを含む。一実施の形態では、これは、将来の時点においてベースライン状態として復元することが望まれる、コンピューターのオペレーティングシステムメモリーの状態を最初に格納することによって成し遂げられる。ベースラインシステムメモリー状態が格納されると、そのコンピューターに関連付けられた永続化記憶装置に対する変更は許されない。代わりに、その後のコンピューティングセッション中に永続化記憶装置に加えられることになっていた変更は、それらの変更が防止されなかった場合には、別個のコンピューティングセッションファイルに格納される。コンピューティングセッションファイル内に格納された変更データは、永続化記憶装置に格納されるデータと組み合わせて、コンピューティングセッション中に利用される。
【０００７】
[0006]オペレーティングシステムを、コンピューティングセッションの終了時のような、そのベースライン状態に戻すことが望まれるときはいつでも、オペレーティングシステムメモリーの現在の状態の代わりに、格納されたベースラインシステムメモリー状態がオペレーティングシステムメモリーにロードされる。そのコンピューターに関連付けられた永続化記憶装置に対する変更は許されていなかったので、ここで、オペレーティングシステムはそのベースライン状態に復元される。
【０００８】
[0007]オペレーティングシステム状態を取り込む唯一の目的が、オペレーティングシステムをベースラインシステム状態に戻すことである場合には、一実施の形態において、コンピューティングセッションファイルは捨てられる。しかしながら、別の実施の形態では、コンピューティングセッションファイルは保持され、将来の時点においてロードされ、対応するコンピューティングセッションを中断されたところから再開することができる。
【０００９】
[0008]この後者の実施の形態は一般的には、各コンピューティングセッションの終了時に上記のようにベースライン状態を取り込み、復元することを伴う。しかしながら、現在のコンピューティングセッションが終了したと判断されるときにはいつでも、付加的な動作も行われる。すなわち、コンピューティングセッションが終了した時点において存在するコンピューターのオペレーティングシステムメモリーの状態を表すセッション状態ファイルが格納される。永続化記憶装置に対して加えられることなっていた取り込まれた変更も、コンピューティングセッションファイルに格納される。以前のコンピューティングセッションを再開するために、格納されたコンピューティングセッション状態がロードされる。これは最初に、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応する格納されたセッション状態ファイルにアクセスすることを伴う。アクセスされたセッション状態は、その後、オペレーティングシステムメモリーの現在の（すなわち、ベースライン）状態の代わりに、コンピューターのオペレーティングシステムメモリーにロードされる。さらに、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応するコンピューティングセッションファイルがアクセスされる。さらに、現在のコンピューティングセッション中に永続化記憶装置に加えられることなっていた変更が再び取り込まれる。取り込まれた変更は、そのコンピューティングセッションファイルに格納される。上記のように、取り込まれた変更、及び永続化記憶装置からの他のデータは、現在のコンピューティングセッション中に用いられる。
【００１０】
[0009]本開示の具体的な特徴、態様及び利点は、以下の説明、添付の特許請求の範囲及び添付の図面との関連で、更に理解が深まるであろう。
【図面の簡単な説明】
【００１１】
【図１】[0010]本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の一部を実施することができる、オペレーティングシステム状態管理アーキテクチャーの簡略化された図である。
【図２】[0011]ベースラインシステム状態を取り込み、ロードするためのプロセスの一実施形態を包括的に概説する流れ図である。
【図３】[0012]コンピューティングセッションシステム状態を取り込むためのプロセスの一実施形態を包括的に概説する流れ図である。
【図４】[0013]新たなコンピューティングセッションにおいて、以前のコンピューティングセッションを中断したところから再開するために、取り込まれたコンピューティングセッション状態をロードするためのプロセスの一実施形態を包括的に概説する流れ図である。
【図５Ａ】[0014]デバッグするためにコンピューティングセッション状態のインクリメンタルに（徐々に、増加的に）ロードを行うためのプロセスの一実施形態を包括的に概説する流れ図である。
【図５Ｂ】デバッグするためにコンピューティングセッション状態のインクリメンタルにロードを行うためのプロセスの一実施形態を包括的に概説する流れ図である。
【図６】[0015]本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態を実施するための１つの例示的なシステムを構成するコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【００１２】
[0016]
オペレーティングシステム状態取込み及びローディング技法実施形態の以下の説明では、本明細書の一部を形成し、本技法を実施することができる具体的な実施形態が例示される添付の図面が参照される。本技法の範囲から逸脱することなく、他の実施形態を利用することができること、及び構造的な変更を加えることができることは理解されたい。
【００１３】
[0017]１．０  オペレーティングシステム状態管理アーキテクチャー
オペレーティングシステム状態取込み（捕捉）及びローディング（ロード）技法実施形態が記述される前に、その一部を実施することができる適切なオペレーティングシステム状態管理アーキテクチャーの包括的な説明が記述される。一般的に、その技法実施形態は、この説明の後のセクションにおいて更に詳細に記述されることになる、数多くの汎用又は専用のコンピューティングシステム環境又は構成とともに使用することができる。
【００１４】
[0018]これらの汎用又は専用コンピューターは、或るオペレーティングシステムを利用する。オペレーティングシステムの目的のうちの１つは、コンピューターに関連付けられたオペレーティングシステムメモリー、及び永続化記憶装置の両方を管理することである。この管理方式の中心は、図１に示されるような、ファイルシステムモジュール１００である。ファイルシステムモジュール１００は、コンピューターに関連付けられた永続化記憶装置を制御するために、ボリューム管理モジュール１０２と通信し、ボリューム管理モジュール１０２を通して機能する。永続化記憶装置は、図１に示されるハードディスク１０６のような、任意の単数又は複数の不揮発性記憶デバイスとすることができる。通常、永続化記憶装置は、デバイス管理モジュールを介して管理される。図１の例では、これは、ディスク管理モジュール１０４の形をとり、ディスク管理モジュールはボリューム管理モジュール１０２と通信し、最終的にはファイルシステムモジュール１００によって制御される。
【００１５】
[0019]コンピューターの現在のオペレーティングシステム状態は、オペレーティングシステムメモリーに格納され、コンピューター上で行われているコンピューティングセッションが進行するのに応じて変化する。通常、オペレーティングシステムメモリーは、不揮発性記憶デバイスの形をとる。例えば、図１の一例のアーキテクチャーでは、オペレーティングシステムメモリーはランダムアクセスメモリー（ＲＡＭ）１０８である。現在のオペレーティングシステムメモリー状態は、ハイバネーションイメージファイルと呼ばれるファイルに取り込むことができる。このハイバネーション機構（mechanism）によって、迅速に復元するために、システムメモリー及びレジスターの状態を永続化記憶装置にセーブすることができるようになる。これは主に、コンピューター上でオペレーティングシステムをシャットダウンし、その後、オペレーティングシステムを再開する際に、ハイバネーションイメージファイルを用いて以前の状態を復元することができるようにするために用いられる。したがって、オペレーティングシステムは、シャットダウンされた時点から動作を再開することができる。現在のオペレーティングシステムでは、それを実施するためのユーザーコマンドに基づいて、シャットダウン中にハイバネーションイメージファイルが作成される。上記の状態復元プロセスは通常、オペレーティングシステムが再開されるときのブートパスの一部として行われる。図１の一例のアーキテクチャーとの関連では、ファイル管理モジュール１００がハイバネーションモジュール１１０と通信する。ハイバネーションモジュール１１０は、通信するように命令されると、ハイバネーションイメージファイルを生成し、ファイルシステムモジュール１００の助けを借りて、そのファイルを永続化記憶装置に格納する。オペレーティングシステムメモリー管理モジュール１１２を用いて、オペレーティングシステムメモリー（例えば、図１に示されるようなＲＡＭ１０８）の現在の状態を取り込み、その状態をハイバネーションモジュール１１０に引き渡す。
【００１６】
[0020]従来のオペレーティングシステム管理アーキテクチャーの一部ではないが、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、状態管理ファイルシステムフィルター１１４を用いて、通常であれば永続化記憶装置に対して加えられていた変更を「取り除き」、取り込む。図１の例示的なアーキテクチャーでは、状態管理ファイルシステムフィルター１１４はファイルシステム１００と通信し、その助けを借りて、取り込まれた変更を、本明細書においてコンピューティングセッションファイルと呼ばれるファイルにおいて永続化記憶装置に格納する。フィルター１１４の動作及びコンピューティングセッションファイルの役割は、後のセクションにおいて更に詳細に記述される。
【００１７】
[0021]上記のオペレーティングシステム状態管理アーキテクチャーは適切なアーキテクチャーの一例にすぎず、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の使用又は機能の範囲に関していかなる制限を示唆することも意図していないことに留意されたい。そのオペレーティングシステム状態管理アーキテクチャーは、図１に示される構成要素のいずれか１つ又はいずれかの組み合わせに関していかなる依存性も要件も有しているものとして解釈されるべきでもない。
【００１８】
[0022]２．０  オペレーティングシステム状態取込み及びローディング
通常のオペレーティングシステムコンピューティングセッションは、上記のシステムメモリー及び永続化記憶装置の両方に対する変更を含む。一般的に、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、或る時点で永続化記憶装置及びシステムメモリーの両方の状態を取り込み、その後、取り込まれたシステム状態をロードすることができるようにする。これは、１つの実施態様では、ハイバネーションイメージファイルを用いてシステムメモリーの状態を取り込むことによって成し遂げられる。ハイバネーションイメージファイルが用いられる場合であっても、これは、オペレーティングシステムが、通常の場合のようにリブート手順を用いて復元されなければならないことを意味しないことに留意されたい。むしろ、後のセクションにおいて更に詳細に記述されるように、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、標準的なハイバネーションシャットダウン及びブートパス再開手順以外で動作する。
【００１９】
[0023]変更を取り込むことに関しては、一実施形態において、上記の状態管理ファイルシステムフィルターを用いて、通常であれば永続化記憶装置に対して加えられていた変更を取り込む。したがって、永続化記憶装置に対する変更は許されない。取り込まれたシステム状態をロードすることによって、オペレーティングシステムを、システム状態が取り込まれた時点の状態に戻す。これは、コンピューティングセッション中にシステムメモリーの状態が変更された場合にも当てはまる。永続化記憶装置の変更が防止されたので、永続化記憶装置はシステム状態が取り込まれた時点の状態に保持されることにも留意されたい。
【００２０】
[0024]一実施形態では、取り込まれたシステム状態はベースライン状態を表し、コンピューティングセッションの終了時に元に戻すことができる。これにより、各コンピューティングセッションの開始時に、既知のベースライン状態を用いて新たに開始することができるようになる。したがって、インターネットカフェ又は他の共用アクセスホストコンピューティング状況の場合に、各コンピューティングセッションが終了する度に、ベースラインシステム状態が復元され、一貫性があり、かつ信頼性があるユーザー体験を確保する。
【００２１】
[0025]別の実施形態では、システムの２つ以上の状態が取り込まれる。上記のように、ベースライン状態が取り込まれるが、それに加えて、コンピューティングセッションシステム状態が取り込まれる。これにより、ユーザーは、取り込まれたコンピューティングセッションシステム状態を将来の時点でロードし、以前のコンピューティングセッションにおいてユーザーが中断したところから継続することができるようになる。さらに、各コンピューティングセッションが終了する度に、オペレーティングシステムはそのベースライン状態に戻される。したがって、ユーザーが取り込まれたコンピューティングセッションシステム状態をロードするのが、その直後のコンピューティングセッションのためであるか、又は１つ若しくは複数の介在するセッションが行われた後に生じるコンピューティングセッションのためであるかは問題ではない。これも、インターネットカフェ又は他の共用アクセスホストコンピューティング状況の場合に好都合である。各コンピューティングセッション（通常複数のユーザーを関与させることになる）が終了する度にベースラインシステム状態が復元されるだけでなく、個々のユーザーが自分のコンピューティングセッションを取り込み、その後、将来の時点で、そのコンピューティングセッションに関連付けられたシステム状態に戻すことができる。
【００２２】
[0026]さらに別の実施形態では、オペレーティングシステム状態取込み及びローディング技法によれば、セッション状態のインクリメンタルな（増加的な）ローディングを使用することによって迅速にデバッグを行い、既知の良好なベースライン状態にすることができるようになる。例えば、オペレーティングシステムクラッシュが発生した場合、セッション状態ファイルとしてクラッシュダンプファイルを使用し、問題が見つかるまでインクリメンタルなロードを行うことができる。
【００２３】
[0027]上記の実施形態、及び他の実施形態は、後のセクションにおいて更に詳細に検討される。
【００２４】
[0028]２．１  ベースラインシステム状態の取込み及びローディング
ベースラインシステム状態の取込みを伴う、オペレーティングシステム状態取込み及びローディング技法実施形態は、図２に示されるような１つの実施態様において成し遂げることができる。最初に、将来の時点でロードすることが望まれるコンピューターのオペレーティングシステムメモリーの状態が格納される（２００）。格納された状態は、ベースラインシステム状態と呼ぶことができる。１つのバージョンでは、オペレーティングシステムメモリー状態は、ハイバネーションイメージファイルとして格納される。しかしながら、所望により他のファイルタイプを用いることもできる。
【００２５】
[0029]この時点から、そのコンピューターに関連付けられた永続化記憶装置に対する変更は許されない（２０２）。代わりに、その後のコンピューティングセッション中に永続化記憶装置に対して加えられることなっていた変更は、それらの変更が防止されなかった場合には、別個のコンピューティングセッションファイルに格納される（２０４）。１つのバージョンでは、これは、上記の状態管理ファイルシステムフィルターを用いて成し遂げられ、それは、永続化記憶装置に対する変更をコンピューティングセッションファイルにリダイレクトする。そのコンピューティングセッションファイルのために任意のファイルタイプを用いることができる。例えば、好ましい選択は、仮想ハードディスク（ＶＨＤ）ファイルタイプであろう。コンピューティングセッションファイル内に格納された変更データは、永続化記憶装置内に格納されるデータと組み合わせて、それらの変更が実際に永続化記憶装置に対して加えられたかのように、通常通りにコンピューティングセッション中に用いられる。
【００２６】
[0030]そのコンピューターに関連付けられた永続化記憶装置をコンピューティングセッション中に変更されないままにすることによって、格納されたベースラインシステム状態をシステムメモリーに単にロードするだけで、ベースラインシステム状態を復元することができるようになる。永続化記憶装置を再構成する必要はない。言い換えると、図２を再び参照すると、コンピューターオペレーティングシステムを、オペレーティングシステムメモリー状態が格納されたときのその元の状態に戻すことが望ましいか否かが判断される（２０６）。例えば、この判断のためのトリガーは、オペレーティングシステムをベースライン状態に復元するためのユーザーコマンドとすることができるか、又は現在のコンピューティングセッションの終了のためのいくつかの他の理由とすることができる。オペレーティングシステムがまだ復元されるべきでないと判断される場合には、プロセス動作２０６が繰り返される。しかしながら、オペレーティングシステムが以前の格納された状態に復元されるべきであると判断される場合には、オペレーティングシステムメモリーの現在の状態の代わりに、格納された状態がオペレーティングシステムメモリーにロードされる（２０８）。
【００２７】
[0031]オペレーティングシステム状態を取り込む唯一の目的が、オペレーティングシステムをベースラインシステム状態に戻すことである場合には、コンピューティングセッションの終了時に、コンピューティングセッションファイルは単に捨てられることに留意されたい。後のセクションにおいて記述されるように、他の実施形態はコンピューティングセッションファイルを利用する。これらの実施形態では、セッションファイルは、捨てられるのではなく、保持される。
【００２８】
[0032]ベースラインシステム状態が取り込まれた後の任意の時点において、それらの状態を現在のシステム状態によって置き換えて、新たなベースライン状態を生成することができることに更に留意されたい。このタスクを成し遂げるために、状態管理ファイルシステムフィルターは一時的に使用不能にされ、コンピューティングセッションファイル内に取り込まれた変更が、そのコンピューターに関連付けられた永続性記憶装置において実施される。これにより、永続化記憶装置を現在のオペレーティングシステムメモリー状態に同期させる。その後、新たなベースラインシステム状態を上記のように取り込むことができ、新たなオペレーティングシステムメモリー状態が以前に格納された状態の代わりに格納される。
【００２９】
[0033]２．２  コンピューティングセッション状態の取込み及びローディング
上記のように、ユーザーのコンピューティングセッション状態も取り込むことができる。これにより、ユーザーは、取り込まれたコンピューティングセッションシステム状態を将来の時点でロードすることができるようになり、以前のコンピューティングセッションにおいて中断したところから継続することができるようになる。依然としてベースライン状態も上記のように取り込まれるが、それに加えて、別個のコンピューティングセッションシステム状態も取り込まれる。
【００３０】
[0034]一実施態様では、上記のことは、図３に示されるように成し遂げられる。最初に、コンピューターユーザーによって指定される時点において存在するようなコンピューターのオペレーティングシステムメモリー状態が格納され、ベースライン状態として指定される（３００）。その後、コンピューターの永続化記憶装置が保護され、コンピューティングセッション中に本来なら行われる変更が防止されるようにする（３０２）。したがって、上記のように、コンピューターの永続性記憶装置は、オペレーティングシステムのベースラインメモリー状態が取り込まれた時点と同じ状態のままである。代わりに、その後のコンピューティングセッション中に永続化記憶装置に対して加えられることになっていた変更は、それらの変更が防止されなかった場合には、上記のコンピューティングセッションファイルに格納される（３０４）。そのコンピューティングセッションファイルに格納された変更データは、永続化記憶装置に格納されたデータと組み合わせて、上記のように、コンピューティングセッション中に通常通りに用いられる。
【００３１】
[0035]次に、現在のコンピューティングセッションが終了したか否かが判断される（３０６）。そのセッションがまだ終了していないと判断される場合には、プロセス動作３０６が繰り返される。しかしながら、コンピューティングセッションが終了していたと判断される場合には、いくつかの動作が行われる。最初に、そのコンピューティングセッションが終了した時点で存在するコンピューターのオペレーティングシステムメモリーの状態を表すセッション状態ファイルが格納される（３０８）。ベースライン状態ファイルの場合と同様に、１つのバージョンでは、そのファイルはハイバネーションイメージファイルとして格納される。しかしながら、所望により、他のファイルタイプ利用することもできる。さらに、永続化記憶装置に加えられることになっていた取り込まれた変更が、コンピューティングセッションファイルに格納される（３１０）。ここで再び、コンピューティングセッションファイルのために、ＶＨＤファイルのような任意のファイルタイプを用いることができる。セッション状態ファイル及びコンピューティングセッションファイルは、ユーザー及び終了したコンピューティングセッションを特定する指示子に関連付けられることに留意されたい。コンピューティングセッション中に永続化記憶装置に対して加えられることになっていた変更の取込みも、この時点において中止される（３１２）。その後、コンピューターオペレーティングシステムがそのベースライン状態に戻される。これは、オペレーティングシステムメモリーの現在の状態の代わりに、格納されたベースライン状態をオペレーティングシステムメモリーにロードすること（３１４）を伴う。
【００３２】
[0036]上記の手順の結果として、コンピューターのオペレーティングシステムはそのベースライン状態になり、ユーザーのコンピューティングセッション状態は、セッション状態ファイル及びコンピューティングセッションファイルの形で取り込まれていることになる。これを前提として、ここで、ユーザーが最後のセッションにおいて中断したところから継続することができるように、ユーザーのコンピューティングセッション状態がいかにロードされるかが記述される。ユーザーが格納されたセッションを、コンピューター上で次に行われるセッションとしてロードするか、又はいくつかの他のセッションが完了した後にロードするかは問題ではないことに留意されたい。介在するセッションは、そのユーザーによって行われている必要もない。これは、誰が行っても、又はセッションがどの順番で行われても、各セッションが終了する度に、コンピューターのオペレーティングシステムが同じベースライン状態に戻されるためである。
【００３３】
[0037]ここで図４を参照すると、ユーザーの格納されたコンピューティングセッション状態が以下のようにロードされる。最初に、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応する格納されたセッション状態ファイルがアクセスされる（４００）。アクセスされたセッション状態ファイルは、その後、オペレーティングシステムメモリーの現在の（すなわち、ベースライン）状態の代わりに、コンピューターのオペレーティングシステムメモリーにロードされる（４０２）。さらに、新たなセッションにおいて再開することが望まれるコンピューティングセッションに対応するコンピューティングセッションファイルがアクセスされる（４０４）。上記のファイルにアクセスする方法は、本記述において後に更に詳細に説明される。次に、状態管理ファイルシステムフィルターが起動され、現在のコンピューティングセッション中に永続化記憶装置に対して加えられることになっていた変更が、上記のようにして取り込まれる（４０６）。取り込まれた変更はコンピューティングセッションファイルに格納される。上記のように、取り込まれた変更、及び永続化記憶装置からの他のデータは、現在のコンピューティングセッション中に用いられる。
【００３４】
[0038]その終了時にコンピューティングセッションに関連付けられたセッション状態ファイル及びコンピューティングセッションファイルを格納すること、及びコンピューターのオペレーティングシステムをそのベースライン状態に戻すことに関連する、図３との関連で記述された動作は、現在のセッションが終了するときに再び実施されることになる。このようにして、ユーザーは、終了したばかりのセッションを将来のセッションにおいて再開することを選択することができる。コンピューティングセッションファイルを以前のセッションファイルと区別することができるように、コンピューティングセッションファイルは新たな名前で格納されることに留意されたい。この新たなコンピューティングセッションファイルは、終了したばかりのコンピューティングセッション中に取り込まれた変更を加えることによって更新される、以前にセーブされた最後のセッションファイルを表す。さらに、セッション状態ファイルは、各コンピューティングセッションの終了時にセーブされるので、ユーザーは、そのコンピューターによってアクセス可能である複数のセーブされたセッションから選択することができる。このために、一実施態様では、セッション状態ファイル及びコンピューティングセッションファイルの上記のアクセスは、コンピューティングセッションを開始しているユーザーに、アクセス可能なセッション状態ファイル及び対応するコンピューティングセッションファイルのリストを提供することを含む。そのリストからユーザーによって選択される、以前のコンピューティングセッションに関連付けられたセッション状態ファイル及びコンピューティングセッションファイルが、その後、アクセスされ、入力される。また、セッション状態ファイル及びコンピューティングセッションファイルは特定のユーザーに関連付けられるので、ユーザーを、従来の方法を介して最初に特定することができ、その後、そのユーザーに関連付けられたファイルのみが、そのリストにおいて提供されることになる。
【００３５】
[0039]上記の実施態様では、コンピューターはセッション状態ファイル及びコンピューティングセッションファイルを、そのハードドライブのような、そのコンピューターからアクセス可能なメモリーに格納する。しかしながら、代替の実施態様では、コンピューターは、これらのファイルのコピーを保持しない。例えば、インターネットカフェ又は他の共用アクセスホストの例では、顧客のセッション状態ファイル及びコンピューティングセッションファイルを共用コンピューター上に格納することが望ましくない場合がある。その代替の実施態様では、コンピューティングセッションの終了時に、そのセッションのための格納されたセッション状態ファイル及びコンピューティングセッションファイルは、ユーザーがダウンロードするために利用することができるようになる。その際、ユーザーは、これらのファイルをポータブルメモリーデバイス（例えば、フラッシュドライブ等）に格納するか、又は場合によっては、それらのファイルを、ネットワーク接続を介して（例えば、メールに添付して等）別のコンピューターに送信するというオプションを有する。ユーザーがファイルをダウンロードするか否かにかかわらず、それらのファイルはコンピューターからアクセス不可能になる。
【００３６】
[0040]セッション状態ファイル及びコンピューティングセッションファイルがコンピューターによって保持されない実施態様では、ユーザーが以前のコンピューティングセッションを再開するために、それらのファイルが与えられる必要がある。このために、これらのファイルにアクセスすることは、ユーザーが再開することを望むコンピューティングセッションに対応するセッション状態ファイル及びコンピューティングセッションファイルを入力するように、コンピューターがユーザーに要求することを伴う。その際、それらのファイルがいかに格納されたかに応じて、ユーザーは要求されたファイルを適切な方法で入力するであろう。
【００３７】
[0041]セッション状態ファイル及びコンピューティングセッションファイルがコンピューターによって保持されない実施態様では、ユーザーが以前のコンピューティングセッションを再開することを望む時点において、それらのファイルがそのコンピューターに依然として適合するか否かに関する疑問が生じることに更に留意されたい。例えば、入力されたセッション状態ファイル及びコンピューティングセッションファイルが取り込まれてから、コンピューターのベースラインシステム状態が変更されていた場合には、それらはもはや適合しない場合がある。適合性を確保するための１つの方法は、ベースラインシステム状態ファイルを、ベースライン状態が新しくなる度に変化するバージョン指示子（指標、インジケーター）と関連付けることである。このようにして、各ベースラインが一意に特定される。その後、終了したコンピューティングセッションに対応するセッション状態ファイル及びコンピューティングセッションファイルは、それらのファイルが格納された時点において検証情報と関連付けられる。検証情報は、それらのファイルが導出されたベースラインシステム状態のバージョンに対応する上記のベースラインバージョン指示子を含む。この指示子は、コンピューターによって現在用いられているベースラインシステム状態のベースラインバージョン指示子と比較されることになる。それらの指示子が一致する場合には、入力されたファイルは適合している（これは、コンピューターが、最後のコンピューティングセッションの終了時に、そのベースライン状態に復元されることになっていたため）。それらの指示子が一致しない場合には、ユーザーは、入力されたファイルに関連付けられたコンピューティングセッションが再開することができないことを通知されることになる。
【００３８】
[0042]ユーザーによってコンピューターに入力されたセッション状態ファイル及びコンピューティングセッションファイルが適合しない場合がある別の理由は、そのコンピューターが、それらのファイルを生成するために用いられたのと同じコンピューターでないということである。通常、異なるコンピューターは、異なるベースラインシステム状態を有することになる。しかしながら、２つ以上のコンピューターを、同じセッション状態ファイル及びコンピューティングセッションファイルセットに適合するように構成することもできる。これは、一実施態様において、関与する全てのコンピューター間で同じベースラインバージョン指示子を有する共通のベースラインシステム状態を作成することによって成し遂げることができる。このようにすれば、ファイルが導出されたベースラインシステム状態がいずれのコンピューターにおいても同じであるので、１つのコンピューターにおいて生成されたセッション状態ファイル及びコンピューティングセッションファイルセットが別のコンピューターに適合することになる。
【００３９】
[0043]上記のようなバージョン制御ベースラインシステム状態方式では、セッション状態ファイルのサイズを縮小する機会がある。このために、一実施態様では、オペレーティングシステムメモリーベースライン状態と、コンピューティングセッションが終了した時点で存在するオペレーティングシステムメモリーの状態との間の差が特定される。その後、オペレーティングシステムメモリー全体の現在の状態の代わりに、これらの差がセッション状態ファイルとして格納される。セッション状態ファイルのこの変形は、セッション状態差分ファイルと呼ぶことができる。この差分ファイルは、オペレーティングシステムメモリーをポピュレートするのに必要とされる状態のうちのいくつかを欠いているので、以前のコンピューティングセッションを再開するためにオペレーティングシステムメモリーにロードされる前に、ベースラインオペレーティングシステムメモリー状態ファイルに組み込んで、完全なコンピューティングセッション状態構成を再構成する。このために、入力セッション状態差分ファイルから、復元されたセッション状態ファイルが生成される。これは、有効性が検査される実施態様において、入力ファイルの適合性を検証するのに成功した後に行うことができる。セッション状態差分ファイルの差をオペレーティングシステムメモリーベースライン状態に適用することによって、復元されたセッション状態ファイルが生成される。言い換えると、差分ファイルにおいて見いだされる状態を用いて、ベースライン状態ファイル内の対応する状態を置き換えて、復元されたセッション状態ファイルを生成する。セッション状態ファイルが復元されると、上記のようにロードし、関連付けられたコンピューティングセッションを再開する。
【００４０】
[0044]２．３  デバッグするためのコンピューティングセッション状態の取込み及びインクリメンタルなローディング
上記のように、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態によれば、セッション状態のインクリメンタルなローディングを使用することによって、迅速にデバッグすることもできるようになる。一般的に、オペレーティングシステムメモリー状態の増分を既知の良好なベースライン状態に投入することによって、アプリケーション又はオペレーティングシステムをデバッグすることができる。ユーザーがアプリケーション又はシステムのデバッグを選択することもできるし、誤りに起因するシステムクラッシュによってデバッグプロセスを開始することもできる。この後者のシナリオでは、クラッシュの時点において生成されるクラッシュダンプファイルが、セッション状態ファイルとして用いられることになる。この実施形態を繰り返す度に、従来のデバッグ技法が用いられる。
【００４１】
[0045]一実施形態では、インクリメンタルなデバッグ方式は以下のように達成される。図５Ａ及び図５Ｂを参照すると、そのプロセスは既知の良好なベースライン状態を確立することによって開始する。このために、コンピューターのユーザーによって指定される時点で存在するような、コンピューターのオペレーティングシステムメモリーの状態が格納される（５００）。これらの状態はベースライン状態ファイルとして格納される。他の実施態様と同様に、コンピューティングセッション中にそのコンピューターに関連付けられた永続化記憶装置に対する変更が防止され（５０２）、代わりに、永続化記憶装置に対して加えられることになっていた変更が取り込まれる（５０４）。上記のように、取り込まれた変更及び永続化記憶装置からの他のデータは、そのコンピューティングセッション中に用いられる。
【００４２】
[0046]次に、現在のコンピューティングセッションが終了したか否か、例えば、ユーザーがそのセッションを終了してデバッグを開始する時点、又はシステムがクラッシュする時点等を判断する（５０６）。そのセッションがまだ終了していないと判断される場合には、プロセス動作５０６が繰り返される。しかしながら、そのコンピューティングセッションが終了したとき、そのコンピューティングセッションが終了した時点で存在するコンピューターのオペレーティングシステムメモリーの状態を表すセッション状態ファイルが格納される（５０８）。システムクラッシュのシナリオでは、このセッション状態ファイルは、クラッシュダンプファイルであろう。さらに、永続化記憶装置に対して加えられることになっていた変更の取込みが中止され、それらの変更がセーブされる（５１０）。その後、オペレーティングシステムメモリーの現在の状態の代わりに、格納されたベースライン状態をオペレーティングシステムメモリーにロードすることによって、コンピューターオペレーティングシステムは、そのオペレーティングシステムメモリーベースライン状態が格納されたときの状態に戻される（５１２）。
【００４３】
[0047]ベースライン状態が復元されると、インクリメンタルなデバッグプロセスを開始することができる。これは最初に、格納されたセッション状態ファイルからの状態の所定の部分にアクセスし、コンピューターのオペレーティングシステムメモリーの対応する現在の状態の代わりに、その所定の部分をコンピューターのオペレーティングシステムメモリーにロードすることを伴う（５１４）。その後、永続化記憶装置に対して加えられることになっていた変更の取込みが再開される（５１６）。コンピューターオペレーティングシステム又は特定のアプリケーションをデバッグするために、その後、これらの取り込まれた変更、並びに永続化記憶装置からの他のデータ及び以前にセーブされた変更が、現在のデバッグ反復中に用いられる（５１８）。デバッグ手順の終了時に、コンピューターのオペレーティングシステムがデバッグされたか否かが判断される（５２０）。デバッグされていると判断された場合には、そのプロセスは終了する。しかしながら、コンピューターのオペレーティングシステムがデバッグされていないと判断されるとき、現在のデバッグ反復が終了される（５２２）。現在のデバッグ反復中に永続化記憶装置に対して加えられることになっていた変更の取込みが中止され、取り込まれた変更がセーブされる（５２４）。オペレーティングシステムメモリーの現在の状態の代わりに、ベースライン状態ファイルからの格納された状態をオペレーティングシステムメモリーにロードすることによって、コンピューターオペレーティングシステムがそのベースライン状態に再び戻される（５２６）。次に、最後に終了したデバッグ反復から所定の増分だけ増加した、格納されたセッション状態ファイルからの状態の部分がアクセスされ、コンピューターのオペレーティングシステムメモリーの対応する現在の状態の代わりに、その部分がコンピューターのオペレーティングシステムメモリーにロードされる（５２８）。その後、コンピューターのオペレーティングシステムがデバッグされるまで、必要に応じてプロセス動作（５１６）〜（５２８）が繰り返される。
【００４４】
[0048]３．０  コンピューティング環境
ここで、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の部分を実施することができる適切なコンピューティング環境の簡潔な包括的説明が記述される。先に言及されたように、その技法実施形態は、数多くの汎用又は専用コンピューティングシステム環境又は構成とともに使用することができる。適している場合がある既知のコンピューティングシステム、環境及び／又は構成の例は、限定はしないが、パーソナルコンピューター、サーバーコンピューター、ハンドヘルド又はラップトップデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ，ミニコンピューター、メインフレームコンピューター、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境等を含む。
【００４５】
[0049]図６は、適切なコンピューティングシステム環境の一例を示す。そのコンピューティングシステム環境は、適切なコンピューティング環境の一例にすぎず、本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態の使用又は機能の範囲に関していかなる制限を示唆することも意図していない。そのコンピューティング環境は、例示的なオペレーティング環境において示される構成要素のいずれか１つ又はいずれかの組み合わせに関していかなる依存性も要件も有しているものとして解釈されるべきでもない。図６を参照すると、本明細書において記述される実施形態を実施するための１つの例示的なシステムが、コンピューティングデバイス１０のようなコンピューティングデバイスを含む。コンピューティングデバイス１０は通常、その最も基本的な構成では、少なくとも１つの処理ユニット１２及びメモリー１４を含む。メモリー１４は、揮発性記憶装置（ＲＡＭなど）及び不揮発性記憶装置（ＲＯＭ、フラッシュメモリー等）の組み合わせである。この最も基本的な構成が、図６において破線１６によって示される。さらに、デバイス１０は、付加的な機構／機能を有することもできる。例えば、デバイス１０は、限定はしないが、磁気又は光ディスク若しくはテープを含む、付加的な記憶装置（取り外し可能な及び／又は取り外し不能な）も含むことができる。そのような付加的な記憶装置は、図６において、取り外し可能な記憶装置１８及び取り外し不能な記憶装置２０によって示される。コンピューター記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータのような情報を記憶するための任意の方法又は技術において実現される揮発性及び不揮発性、取り外し可能な及び取り外し不能な媒体を含む。メモリー１４、取り外し可能な記憶装置１８及び取り外し不能な記憶装置２０は全てコンピューター記憶媒体の例である。コンピューター記憶媒体は、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリー又は他のメモリー技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）又は他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶デバイス、或いは所望の情報を格納するために用いることができ、かつデバイス１０によってアクセスすることができる任意の他の媒体を含む。任意のそのようなコンピューター記憶媒体は、デバイス１０の一部とすることができる。
【００４６】
[0050]デバイス１０は通信接続２２も含むことができ、それにより、そのデバイスは他のデバイスと通信することができるようになる。また、デバイス１０は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、カメラ等の入力デバイス２４も有することができる。ディスプレイ、スピーカー、プリンター等の出力デバイス２６も含めることができる。これらのデバイスは全て当該技術分野において既知であり、ここで長々と検討する必要はない。
【００４７】
[0051]本明細書において記述されるオペレーティングシステム状態取込み及びローディング技法実施形態は、コンピューティングデバイスによって実行される、プログラムモジュールのようなコンピューター実行可能命令との一般的な関連において更に記述することができる。一般的に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本明細書において記述される実施形態は、分散コンピューティング環境において実施することもでき、その場合、タスクは、通信ネットワークを通してリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールを、メモリー記憶デバイスを含む、ローカル及びリモート両方のコンピューター記憶媒体内に配置することができる。
【００４８】
[0052]３．０  他の実施形態
本記述全体を通してこれまでに記述された実施形態のいずれか、又は全てが、更に別の混成実施形態を形成するために望まれる任意の組み合わせにおいて用いることができることに留意されたい。さらに、主題が構造的な特徴及び／又は方法的な動作に特有の用語において記述されてきたが、添付の特許請求の範囲において定められる主題は上記の具体的な特徴又は動作には必ずしも限定されないことは理解されたい。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実施する例示的な形態として開示される。
【図１】
0005416834.tif 000002
【図２】
0005416834.tif 000003
【図３】
0005416834.tif 000004
【図４】
0005416834.tif 000005
【図５Ａ】
0005416834.tif 000006
【図５Ｂ】
0005416834.tif 000007
【図６】
0005416834.tif 000008