(58)【調査した分野】(Int.Cl.,DB名)
オペレーティング・システムの第1インスタンスと、複数のアプリケーションと、コンピューター・システムのユーザーによって作成されたデーターとを格納する少なくとも1つの記憶エレメントを備えている前記コンピューター・システムにおいて用いる方法であって、
前記オペレーティング・システムの前記第1インスタンスと前記複数のアプリケーションとを前記少なくとも1つの記憶エレメントから除去するステップであって、前記オペレーティング・システムの前記第1インスタンスが設定値を含む、ステップと、
前記オペレーティング・システムの前記第1インスタンスと交換するために、前記少なくとも1つの記憶エレメント上に前記オペレーティング・システムの第2インスタンスをインストールするステップであって、
前記設定値の1つ以上を前記オペレーティング・システムの前記第2インスタンスに適用する前に、前記設定値の1つ以上を変更し、特定の設定値または設定値の組み合わせが前記オペレーティング・システムの前記第2インスタンスに適用されないように、前記設定値の少なくとも一部を、前記オペレーティング・システムの前記第2インスタンスに適用するステップ
を含むステップと
を含み、前記データーを前記少なくとも1つの記憶エレメントから除去することなく、前記除去するステップおよび前記インストールするステップを実行する、方法。
請求項1記載の方法において、前記オペレーティング・システムの前記第1インスタンスが、ユーザー・アカウントを含み、前記インストールするステップが、前記ユーザー・アカウントの少なくとも一部を、前記オペレーティング・システムの前記第2インスタンスに移すステップを含む、方法。
請求項3記載の方法において、前記インストールするステップが、前記リカバリー・イメージを外部記憶媒体から前記少なくとも1つの記憶エレメントに転送するステップを含む、方法。
請求項3記載の方法において、前記インストールするステップが、前記リカバリー・イメージを前記少なくとも1つの記憶エレメント上のリカバリー・パーティションから読み出すステップを含む、方法。
請求項3記載の方法において、前記インストールするステップが、前記オペレーティング・システムの前記第1インスタンスをオフライン環境にブートするステップと、前記オペレーティング・システムの前記第1インスタンスを利用して前記リカバリー・イメージを作成するステップとを含む、方法。
請求項1記載の方法において、前記除去するステップまたは前記インストールするステップを開始する前に、前記少なくとも1つの記憶エレメントが前記オペレーティング・システムの前記第1インスタンスと前記第2インスタンスの両方を記憶するのに十分な記憶空間を有しているか否かを判定するステップを更に含む、方法。
請求項9記載の方法において、前記少なくとも1つの記憶エレメントが前記オペレーティング・システムの前記第1インスタンスと前記第2インスタンスの両方を記憶するのに十分な記憶空間を有していないと判定された場合、前記除去するステップが前記インストールするステップの前に実行される、方法。
【発明を実施するための形態】
【0009】
[0016] 本発明の実施形態は、システム・リセットを実行することによって、ユーザーがシステムの性能および/または信頼性低下(例えば、用いられていないアプリケーションがシステム・リソースを不必要に消費することによって起こり、アプリケーションのアンインストールを試してみてそのアプリケーションの残片が後に残ってしまったことによって起こり、および/または他の原因によって起こる)に取り組むことができる技法を提供する。実施形態では、システム・リセットによって、ユーザーのデーターを破壊することなく、システム上にあるオペレーティング・システムの以前のインスタンスを新たなインスタンスと交換し、システム上にインストールされているアプリケーションを除去する。ユーザーのデーターは破壊されずに残るので、本発明の実施形態は、システム全体のリカバリーまたはシステムの復元に必要となる、個人データーを外部記憶デバイスにバックアップするという時間のかかるプロセスに耐える必要なく、またシステムを後に復元しようとするバックアップを取っておくことができるように、システムがいつ最適に実行していたか判断する必要もなく、ユーザーがシステム性能および/または信頼性低下に取り組むことを可能にすることができる。
【0010】
[0017] 本発明の実施形態は、様々なステップを含むプロセスを提供する。第1に、ユーザーのデーターおよび設定値を特定し一覧表に纏め、次いでストレージにおける1つ以上の保護された位置に移動させる。次に、システム上にあるオペレーティング・システムおよびあらゆるアプリケーションの既存のインスタンスを除去するが、ユーザーの個人的なデーターおよび設定値は不変のままにしておく。次に、オペレーティング・システムの新たなインスタンスを適用し、次いで、ユーザーの設定値またはその一部を、オペレーティング・システムの新たなインスタンスに適用する。その後、ユーザーは、彼/彼女が望むいずれのアプリケーションでも再インストールすることができる。システム上にあるオペレーティング・システムおよびあらゆるアプリケーションの以前のインスタンスは(例えば、その全体が)除去されるので、ユーザーは再インストールされたアプリケーションを選択することができ、不要なアプリケーションの痕跡はシステム上に残らず、その性能を低下させることはない。更に、この手順全体は、ユーザーの個人的なデーターを一時的に外部記憶デバイスに移す必要なく実行することができる。この手順については、以下で
図1から
図4を参照して更に詳しく説明する。
【0011】
[0018]
図1は、本発明の実施形態による、システム・リセットを実行する前におけるシステム例の上位図である。
図1に示す例では、記憶エレメント101が現在のオペレーティング・システム(OS)105を格納しており、あらゆるユーザー・アカウントを反映する。現OS105を構成する情報の記憶エレメント101上の位置は、適したやり方であればいずれでも指定することができる。例えば、WA、RedmondのMicrosoft Corporationが提供するMicrosoft Windows(登録商標)系のオペレーティング・システムでは、現OS105を構成する情報はC:\Windows(登録商標) locationに格納することができる。他のオペレーティング・システムでは、1つ以上の他の位置を指定することや、全く位置を指定しない場合もある。 本発明の実施形態は、いずれの特定の位置に格納されているオペレーティング・システムと共に用いることにも限定されない。
【0012】
[0019] 記憶エレメント101は、適したタイプの記憶エレメントであればいずれでも備えることができる。これは、本発明の実施形態はこれに関して限定されないからである。例えば、記憶エレメント101は、ハード・ディスク、フラッシュ・ドライブ、および/または他のあらゆる適したタイプの物理的記憶媒体(複数の媒体)を備えるのでもよい。しかしながら、記憶エレメント101は、物理的な記憶エレメントを備える必要はなく、代わりに1つ以上の仮想記憶エレメントを備えてもよい。例えば、1つ以上の物理的記憶エレメントを表す1つ以上のソフトウェア構造(constructs)によって、ソフトウェア・エレメント101を実装してもよい。更に、
図1に示す例は1つの記憶エレメントしか含まないが、本発明の全ての実施形態がそのように限定されるのではなく、代わりに、適した数の記憶エレメントであればいくつでも採用することができる。本発明の実施形態は、いずれの特定の実施態様のやり方にも限定されない。
【0013】
[0020]
図1に示す例では、記憶エレメント101は、アプリケーションを「標準」位置115に格納する。これらのアプリケーションは、例えば、インストールされるアプリケーションを格納するためにオペレーティング・システムによって指定されたファイル・システム位置にインストールされたアプリケーションを含むこともできる。例えば、Microsoft Windows(登録商標)系オペレーティング・システムでは、アプリケーション115をC:\Program Filesディレクトリに格納することができる。他のオペレーティング・システムでは、1つ以上の他の位置を指定したり、またはアプリケーション115を格納する位置を全く指定しない場合もある。システムから除去すべきアプリケーションを指定するための適したやり方であればいずれでも採用することができる。何故なら、本発明の実施形態はこれに関して限定されないからである。
【0014】
[0021]
図1の例では、記憶エレメント101はデーターおよびアプリケーションを「非標準」位置120にも格納する。実施形態では、データーおよびアプリケーション120が、記憶エレメント101上に格納されているが、現OS105およびアプリケーション115によってもたらされた(encompass)のではない何らかの情報を表す場合がある。しかしながら、本発明の全ての実施形態がそのように限定されるのではない。保存すべきデーターおよびアプリケーションは、いずれの適したやり方でも指定することができる。例えば、実施形態は記憶エレメント101を走査して、ユーザーの個人的データー、アカウント、アプリケーションおよび/または設定値を格納しているように思われる記憶位置を特定し、このような情報を格納するために通常用いられることが分かっている記憶位置(例えば、フォルダー)を探し、あるいは他のいずれかの適したやり方でデーターおよびアプリケーション120を特定することができる。
【0015】
[0022]
図2は、オペレーティング・システム125の新たなインスタンスを記憶エレメント101に適用した後における、
図1に示したシステム例を示す。実施形態では、オペレーティング・システムの新たなインスタンスは、OSの「クリーン・コピー」(clean copy)であり、全ての設定値がデフォルト・モードに置かれており、クリーン・コピーでなければ(otherwise)オペレーティング・システムが提供することができたアプリケーションは含まれていない。しかしながら、新たなオペレーティング・システムのインスタンスは、適した設定値および/またはアプリケーションであればいずれでも組み込むことができる。何故なら、本発明の実施形態はこれに関して限定されないからである。
【0016】
[0023] オペレーティング・システム125の新たなインスタンスの記憶エレメント101への適用は、多数の方法のいずれでも行うことができる。例えば、実施形態は、外部媒体(例えば、記録ディスク)から「リカバリー・イメージ」を転送することを含んでもよい。リカバリー・イメージは、オペレーティング・システムの新たなインストールに必要とされるデーターの本体を含む。他の実施形態では、記憶エレメント101のリカバリー・パーティションからリカバリー・イメージを読み出すことを伴うことがある。これに関して、必要な場合にオペレーティング・システムの再インストールを容易に行うことができるように、コンピューターおよび/または記憶エレメントの製造業者が、リカバリー・イメージを、オペレーティング・システムの「生の」インスタンスが格納されている位置とは別の記憶エレメント上の位置にロードすることもできる。
【0017】
[0024] 更に他の実施形態では、OS125の新たなインスタンスを構成するリカバリー・イメージを作成するために、現OS105をオフライン環境にブートすることを伴うこともある。このオフライン環境は、実施形態では、オペレーティング・システムが実行していない実行環境である。オフライン環境は、例えば、特定の目標に定めたプログラムを実行するのに必要なコンポーネントのみを含むことができる。この環境にブートされると、現オペレーティング・システム105によるこれらのプログラムの実行によって、リカバリー・イメージを生成させることができる。次に、
図2に示すように、リカバリー・イメージを記憶エレメント101に適用することができる。
【0018】
[0025] OS125の新たなインスタンスは、記憶エレメント101上における適した位置であればどこにでも格納することができる。例えば、実施形態では、OS125の新たなインスタンスは、現OS105が格納されているフォルダー(1つまたは複数)とは異なる1つ以上のフォルダーに格納することができる。本発明の実施形態は、OS125の新たなインスタンスをいずれの特定の位置(1つまたは複数)に格納することにも限定されない。
【0019】
[0026] OS125の新たなインスタンスを記憶エレメント101に適用したことの結果、記憶エレメント101上にはこの時点でオペレーティング・システムの2つのインスタンスが存在することになり、現OS105がユーザーの設定値、アカウント、およびその他の情報を反映する。
図3は、これらの設定値、アカウント、およびその他の情報をOS125の新たなインスタンスに適用するために変更されたシステム例を示す。具体的には、
図3は、ユーザーの設定値、アカウント、およびその他の情報が現OS105からOSの新たなインスタンス125に転送されることを、130において示す。これは、多数の方法のいずれでも実行することができる。例えば、実施形態の中には、現OS105によって維持されているレジストリーの1つ以上のハイブ(hives)を、OS125の新たなインスタンスによって維持されているレジストリーに移す場合もある。
【0020】
[0027] ユーザーの設定値、アカウント、およびその他の情報をOS125の新たなインスタンスに移すには、多数の動作のいずれを実行することも含むことができる。実施形態の中には、既存の設定値から生ずることが分かっている今後の問題を阻止するためというようなことのために、移動が設定値の変更を含むとよい場合もある。例えば、特定の設定値、または設定値の組み合わせが問題であることが分かっている(例えば、ヘルプ・ラインへのユーザーの通話回数に基づいて)場合、この設定値(1つまたは複数)をOS125の新たなインスタンスには適用しないのでもよい。例えば、ワイヤレス・ネットワーク構成に関するある種の設定値の結果ユーザー体験に問題が生ずることが分かっている場合(ユーザーが誤った設定値を入力した(implement)ため、アプリケーションがときの経過と共に設定値を変更したため、および/または他の理由のために、これが生ずることがある)、これらの設定値をOS125の新たなインスタンスに移さなくてもよい。実施形態の中には、問題を解決することがわかっている設定値または設定値の組み合わせを、代わりに入力することができる場合がある。本発明の実施形態は、適したやり方であればいずれでも実現することができる。
【0021】
[0028] 1つ以上のアプリケーションを除去することによって設定値が用いられなくなることがあるので、ユーザー設定値の一部を移さなくてもよい。例えば、ユーザーのデスクトップ上において、除去しようとしているアプリケーションを指す「プログラム・ショートカット」(program shortcut)は、OS125の新たなインスタンスに転送しなくてもよい。OS125の新たなインスタンスに転送される設定値、アカウント、および/またはその他の情報がいずれも有効であり、システム上にある他の情報と相容れることを保証するためには、多数の種類の措置のいずれでも講ずることができる。
【0022】
[0029] 実施形態では、ユーザー・アカウントへのリンクを指定するあらゆるデーター・ファイルに対して、OS125の新たなコピーにおいてアカウントが存在することを保証するために、ユーザー・アカウント111の移動が、データーおよびアプリケーション120を検査することを伴うとよい。例えば、ユーザーAおよびBが図示のシステムと、ファイルA.txtおよびB.txtをそれぞれ用いる場合、ユーザーAおよびBのアカウントがOS125の新たなインスタンスに移動することを保証するために、ユーザー・アカウントの移動が、ファイルA.txtおよびB.txtを調べることを伴うとよい。勿論、本発明の実施形態は、いずれかの適したやり方で、データーがいずれの数(ひとりを含む)のユーザーにでもアクセス可能であることを保証することができる。
【0023】
[0030]
図4は、現OS105およびアプリケーション115を除去したときにおけるシステム例を示す。除去は、多数の方法のいずれでも行うことができる。例えば、現OS105およびアプリケーション115を構成する情報の記憶位置が分かっている場合、その記憶位置(1つまたは複数)を指定する1つ以上の削除動作を実行することによって、この情報を除去することができる。現OS105およびアプリケーション115を構成する情報の記憶位置の全てが分かっているのではない場合、または確信をもって判定することができない場合、OS125の新たなインスタンスならびにデーターおよびアプリケーション120を格納することが分かっている位置に格納されない情報の全てを除去することができる。現OS105およびアプリケーション115を除去するためには、多数の技法のいずれでも採用することができる。何故なら、本発明の実施形態はこれに関して限定されないからである。
【0024】
[0031] 本発明の実施形態は、システム・リセットが行われる前にある種の条件が満たされていることを検証するための手段を設けることもできる。例えば、実施形態は、システム・リセットを開始する前に、記憶エレメント101がOS125の新たなインスタンスのために十分な格納空間を含むことを検証することができる。含まない場合、最初に記憶エレメント101から現OS105を除去し(「ワイプする」)、次いでOS125の新たなインスタンスを(例えば、その除去に先立って、現OS105が格納されていた同じ記憶位置(1つまたは複数)に)適用する柔軟性をユーザーに提供するとよい。この技法の一例(即ち、プロセス例500)を
図5に示す。
【0025】
[0032] プロセス例500は、動作502から開始し、システム・リセットを開始する前に1つ以上のチェックを行う。例えば、記憶エレメントが、オペレーティング・システムの新たなインスタンス、および現在格納されているオペレーティング・システムの現インスタンスの双方を格納する十分な記憶空間を含むか否か判定を行うことができる。プロセス例500では、動作502は、オペレーティング・システムの新たなインスタンスをインスタンス化するために用いられるリカバリー・イメージを突き止めることも含む。
【0026】
[0033] 動作502におけるチェック(1つまたは複数)の結果、記憶エレメント上にはオペレーティング・システムの新たなインスタンスおよびオペレーティング・システムの現インスタンスの双方を格納するための十分な記憶空間がないと判定された場合、プロセス例500は動作504に進み、リセットを進めるには、オペレーティング・システムの現インスタンスを除去する必要があることの指示をユーザーに与える。実施形態の中には、オペレーティング・システムの現在のインスタンスを除去した結果、オペレーティング・システムの現在のインスタンスにおいて反映されていたユーザー設定値がいずれも保存されず、「工場リセット」が実行されることになる場合がある。しかしながら、本発明の全ての実施形態がこのような実施態様に限定されるのではない。例えば、実施形態の中には、リセットが実行される前にオペレーティング・システムの現在のインスタンスが除去されても、ユーザーの設定値を保存することができる能力を設けることができるものもある。
【0027】
[0034] 動作502において、オペレーティング・システムの双方のインスタンスに対して十分な記憶空間が存在すると判定され、更に動作502において実行された他のあらゆる妥当性判断も合格であった場合、プロセス例500は動作506に進み、「基本」および「高度」リセット動作間で選択を行うようにユーザーを促す。実施形態の中には、「高度」リセットを実行することが、リセットに関するある種の選択肢をユーザーに提示することを含む場合もある。ユーザーは、リセットを実行するやり方を指定するために、これらの選択肢から選択することができる。選択肢の一例は、例えば、オペレーティング・システムの現在のインスタンスを、新たなインスタンスを適用する前に除去するか否かであってもよい。多数の選択肢のいずれでも提示することができる。
【0028】
[0035] 次いで、基本または高度リセット動作を選択するユーザーの入力を、動作508において処理する。ユーザーが高度リセットを実行することを選択した場合、プロセス例500は動作510に進み、リセット動作に関する選択肢を指定することをユーザーに許可する。次いで、動作510の完了時に、あるいは動作508においてユーザーが基本リセット動作を選択したと判断した場合、または動作504の完了時に、動作512が開始する。
【0029】
[0036] 動作512において、オフライン環境でオペレーティング・システムを再起動させる。先に注記したように、オフライン環境とは、オペレーティング・システムが実行していない実行環境とすることができる。しかしながら、本発明の実施形態はこのような実施形態に限定されるのではない。更に、オフライン環境にブートすることは、オペレーティング・システムの新たなインスタンスを記憶エレメントに適用するために可能な1つの技法に過ぎない。多数の他の技法のいずれでも、代わりに採用することができる。
【0030】
[0037] 次に、プロセス例500は動作514に進み、オペレーティング・システムの現インスタンスの除去が承認されたか否か(例えば、動作504における警告の提示後、またはユーザーが動作506において高度リセットを選択し、次いで動作510において現インスタンスを除去すべきことを示した後)判定を行う。承認された場合、プロセス500は動作516に進み、動作516においてオペレーティング・システムの現インスタンスを除去する。次いで、オフライン・ブート環境におけるプログラムの実行によってというようにして、動作518においてリカバリー・イメージを適用する。
【0031】
[0038] 動作514に戻り、オペレーティング・システムの現インスタンスの除去が承認されなかったと判定された場合(例えば、ユーザーが動作506において基本リセットを選択したか、または動作506において高度リセットを選択したが、動作510において現インスタンスを除去すべきことを指定しなかったために)、プロセス500は動作522に進み、既に記憶エレメントに格納されているオペレーティング・システムの現インスタンスに加えて、リカバリー・イメージを適用する。次いで、プロセス例500は動作524に進み、データーおよび設定値を収集して格納し、次いで動作526においてリセットを確定する(commit)。
【0032】
[0039] 動作526または518のいずれかの完了時に、プロセス500は動作520に進み、適用したリカバリー・イメージを起動する。次いで、動作528において、オペレーティング・システムの現インスタンスが、新たなインスタンスを適用する前に除去されたか否か判定を行う。そうである場合、プロセス例500は動作530に進み、「第1ブート」体験をユーザーに示す。これに関して、プロセス例500におけるオペレーティング・システムの現インスタンスの除去によって、「工場リセット」が実行されたので、動作530は、初期設定値を定めること、および/または他の構成設定タスクを実行することをユーザーに許可することを含むとよい。
【0033】
[0040] 動作528において、オペレーティング・システムの既存のインスタンスが、新たなインスタンスを適用する前に除去されなかったと判定された場合、プロセス例500は動作532に進み、オペレーティング・システムの新たに適用されるインスタンスに、データーおよび/または設定値(例えば、動作524において収集した)を適用する。次いで、プロセス例500は動作532に進み、リセットを実行した結果除去されたいずれのアプリケーションについてもこれを再度取得することに対する指針を、ユーザーに提示する。これは、多数の方法のいずれでも提示することができる。例えば、以前に購入したプログラムをユーザーに再インストールさせるオンライン設備へのアクセスを、ユーザーに与えることができる。
【0034】
[0041] 動作530または534のいずれかの完了時に、プロセス例500は完了する。
[0042] 尚、以上のことから、本発明の実施形態は、システム・リセットを実行している間に、ユーザーによっては別個に購入する必要があるかもしれない外部記憶デバイスにユーザーの個人的データーおよび/またはカスタム化した設定値を保存し、ユーザーが時間のかかるバックアップを実行するプロセスに耐える必要をなくすることを可能にする。コンピューターおよび/またはオペレーティング・システムの供給業者も便益を得ることができる。何故なら、供給業者は、リセットを実行することに伴うユーザー・サポートの対話減少を体験することができるからであり、リセット動作を簡素化することにより、より多くのユーザーが彼ら自身でその動作を実行する自信を持つことができるからである。更に、システム・リセットの間にユーザーのデーターおよび/または設定値を保存するので、以前では失われたデーターおよび/または設定値に起因して行われていたユーザー・サポートの対話を減少させることができる。
【0035】
[0043] 本発明の特徴を実施するためのシステムおよび方法の種々の態様は、
図6に示すコンピューター・システム例600のような、1つ以上のコンピューター・システム上で実現することができる。コンピューター・システム600は、入力デバイス(1つまたは複数)602、出力デバイス(1つまたは複数)601、プロセッサー603、メモリー・システム604、およびストレージ606を含み、これらは全て、直接または間接的に相互接続メカニズム605によって結合されている。相互接続メカニズム605は、1つ以上のバス、スイッチ、ネットワーク、および/または他のいずれかの適した相互接続を備えることができる。入力デバイス(1つまたは複数)602は、ユーザーまたは機械(例えば、人間の操作者)から入力を受け取り、出力デバイス(1つまたは複数)601は、情報をユーザーまたは機械(例えば、液晶ディスプレイ)に表示または送信する。これらの入力および出力デバイス(1つまたは複数)は、とりわけ、ユーザー・インターフェースを提示するために用いることができる。ユーザー・インターフェースを提供するために用いることができる出力デバイスの例には、出力の視覚的提示のためのプリンターまたはディスプレイ、および出力の可聴提示のためのスピーカーまたは他の音響生成デバイスが含まれる。ユーザー・インターフェースのために用いることができる入力デバイスの例には、キーボード、ならびにマウスのようなポインティング・デバイス、タッチ・パッド、およびディジタル化タブレットを含む。他の例として、コンピューターが音声認識によって、または他の可聴フォーマットで入力情報を受けても良い。
【0036】
[0044] プロセッサー603は、通例、オペレーティング・システム(例えば、Microsoft Windows(登録商標)系のオペレーティング・システム、または他のいずれかの適したオペレーティング・システム)と呼ばれるコンピューター・プログラムを実行する。オペレーティング・システムは、他のコンピューター・プログラムの実行を制御し、スケジューリング、入力/出力および他のデバイスの制御、アカウンティング、コンパイル、ストレージ割り当て、データー管理、メモリー管理、通信およびデーター・フロー管理の機能を備えている。集合的に、プロセッサーおよびオペレーティング・システムは、アプリケーション・プログラムおよび他のコンピューター・プログラム言語を書くコンピューター・プラットフォームを定める。
【0037】
[0045] また、プロセッサー603は、種々の機能を実装するために1つ以上のコンピューター・プログラムを実行することもできる。これらのコンピューター・プログラムは、いずれのタイプのコンピューター・プログラム言語でも書くことができ、手続き型プログラミング言語、オブジェクト指向プログラミング言語、マクロ言語、またはその組み合わせを含む。これらのコンピューター・プログラムは、記憶システム606に格納することができる。記憶システム606は、揮発性または不揮発性媒体上に情報を保持することができ、固定でもまたは着脱可能でもよい。記憶システム606を
図7に更に詳しく示す。
【0038】
[0046] 記憶システム606は、有形コンピューター読み取り可能および書き込み可能不揮発性記録媒体501を含むことができ、この上に、コンピューター・プログラムまたはこのプログラムが用いる情報を定義する信号を格納する。記録媒体は、例えば、ディスク・メモリー、フラッシュ・メモリー、および/または情報を記録および格納するために使用可能な他のあらゆる製造品目(1つまたは複数)であってもよい。通例、動作中、プロセッサー603は不揮発性記録媒体601から揮発性メモリー502(例えば、ランダム・アクセス・メモリー、即ち、RAM)にデーターを読み込ませる。揮発性メモリー502の方が、媒体501よりも、プロセッサー603がこの情報に速くアクセスすることを可能にする。メモリー502は、
図6に示す記憶システム606またはメモリー・システム604内に配置することができる。プロセッサー603は、一般に、集積回路メモリー604、502内部でデーターを操作し、次いで、処理が完了した後にデーターを媒体501にコピーする。媒体501と集積回路メモリー・エレメント604、502との間におけるデーター移動を管理する種々のメカニズムが知られており、本発明は、現在知られているか、または今後開発されるかに関係なく、いずれのメカニズムにも限定されない。また、本発明は、特定のメモリー・システム604にも記憶システム606にも限定されない。
【0039】
[0047] 以上、本発明の少なくとも1つの実施形態の様々な態様について説明したが、種々の変形、変更、および改良が当業者には想起されることは認められよう。このような変形、変更、および改良は、本開示の一部であることを意図しており、本発明の主旨および範囲内に該当することを意図している。したがって、以上の説明および図面は、一例に過ぎない。
【0040】
[0048] 本発明の以上で説明した実施形態は、多数の方法のいずれでも実現することができる。例えば、これらの実施形態は、ハードウェア、ソフトウェア、またはその組み合わせを用いて実現することもできる。ソフトウェアで実現する場合、いずれかの適したプロセッサーまたはプロセッサーの集合体において、1つのコンピューターに設けられるのかまたは複数のコンピューターおよび/またはシステム間で分散されるのかには関係なく、ソフトウェア・コードを実行することができる。このようなプロセッサーは、集積回路として実現するとよく、1つ以上のプロセッサーが集積回路コンポーネント内にある。しかし、いずれかの適したフォーマットの回路を用いて、プロセッサーを実現することもできる。
【0041】
[0049] 尚、本明細書において記載した機能を実行するコンポーネントまたはコンポーネントの集合体はいずれも、先に論じた機能を制御する1つ以上のコントローラーとして包括的に考えることができることは、認められてしかるべきである。1つ以上のコントローラーは、専用のハードウェアによってというように、または以上で明記した機能を実行するためにマイクロコードまたはソフトウェアを用いてプログラミングされた1つ以上のプロセッサーを採用することによって、多数の方法で実現することができる。コントローラーがシステム動作のためのデーターを格納するまたは供給する場合、このようなデーターは、中央のレポジトリー、複数のレポジトリー、またはその組み合わせに格納することができる。
【0042】
[0050] 更に、コンピューターは、ラック組み立てコンピューター(rack-mounted computer)、デスクトップ・コンピューター、ラップトップ・コンピューター、またはタブレット・コンピューターというような、複数の形態の内いずれでも具体化することもできることは認められてしかるべきである。加えて、コンピューターが、パーソナル・ディジタル・アシスタント(PDA)、スマート・フォン、あるいは他のあらゆる適した携帯用または固定電子デバイスを含む、一般にはコンピューターとは見なされないが、適した処理能力を有するデバイスに埋め込まれてもよい。
【0043】
[0051] また、コンピューターが1つ以上の入力および出力デバイスを有してもよい。これらのデバイスは、とりわけ、ユーザー・インターフェースを提示するために用いることができる。ユーザー・インターフェースを提供するために用いることができる出力デバイスの例には、出力の視覚的提示のためのプリンターまたはディスプレイ、および出力の可聴提示のためのスピーカーまたは他の音響生成デバイスが含まれる。ユーザー・インターフェースのために用いることができる入力デバイスの例には、キーボード、ならびにマウスのようなポインティング・デバイス、タッチ・パッド、およびディジタル化タブレットを含む。他の例として、コンピューターが音声認識によって、または他の可聴フォーマットで入力情報を受けても良い。
【0044】
[0052] このようなコンピューターは、企業ネットワークまたはインターネットのような、ローカル・エリア・ネットワークまたはワイド・エリア・ネットワークを含む、いずれかの適した形態の1つ以上のネットワークによって相互接続することができる。このようなネットワークは、いずれかの適した技術に基づけばよく、いずれかの適したプロトコルにしたがって動作すればよく、ワイヤレス・ネットワーク、有線ネットワーク、または光ファイバ・ネットワークを含むことができる。
【0045】
[0053] また、本明細書で概要を説明した種々の方法またはプロセスは、ソフトウェアとしてコード化することができる。このソフトウェアは、種々のオペレーティング・システムまたはプラットフォームのいずれかを採用する1つ以上のプロセッサーにおいて実行可能である。加えて、このようなソフトウェアは、複数の適したプログラミング言語および/またはプログラミングまたはスクリプティング・ツールの内いずれを用いても書くこともでき、更にまた、フレームワークまたは仮想環境において実行される、実行可能機械語コードまたは中間コードとしてコンパイルされてもよい。
【0046】
[0054] これに関して、本発明は、1つ以上のプログラムがエンコードされたコンピューター読み取り可能記憶媒体(複数のコンピューター読み取り可能媒体(例えば、コンピューター・メモリー、1つ以上のフロッピー(登録商標)・ディスク、コンパクト・ディスク(CD)、光ディスク、ディジタル・ビデオ・ディスク(DVD)、磁気テープ、フラッシュ・メモリー、フィールド・プログラマブル・ゲート・アレイまたは他の半導体デバイスにおける回路構成、あるいは他の一時的でない、有形コンピューター記憶媒体)として具体化することもできる。このプログラムが1つ以上のコンピューターまたは他のプロセッサーにおいて実行されると、以上で説明した本発明の種々の実施形態を実現する。1つまたは複数のコンピューター読み取り可能記憶媒体は移植可能とすることができ、そこに格納されている1つ以上のプログラムは、1つ以上の異なるコンピューターまたは他のプロセッサーにロードして、先に論じたような本発明の種々の形態を実現することができる。本明細書において用いる場合、「一時的でないコンピューター読み取り可能記憶媒体」という用語は、生産物(即ち、生産品目)または機械(machine)であると見なすことができるコンピューター読み取り可能媒体のみを含む。
【0047】
[0055] 「プログラム」または「ソフトウェア」という用語は、先に論じた本発明の種々の態様を実施するようにコンピューターまたは他のプロセッサーをプログラミングするために採用することができる、あらゆるタイプのコンピューター・コードまたはコンピューター実行可能命令を指すように、本明細書では包括的な意味で用いられている。加えて、この実施形態の一態様によれば、実行されると本発明の方法を実行する1つ以上のコンピューター・プログラムは、1つのコンピューターまたはプロセッサー上に存在する必要はなく、本発明の種々の態様を実施するために、モジュール状に多数の異なるコンピューターまたはプロセッサー間に分散されていてもよいことは認められてしかるべきである。
【0048】
[0056] コンピューター実行可能命令は、1つ以上のコンピューターまたは他のデバイスによって実行する、プログラム・モジュールのような多くの形態とすることができる。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造等を含み、特定のタスクを実行するか、または特定の抽象データー・タイプを実施する。通例、種々の実施形態において所望通りに、プログラム・モジュールの機能を組み合わせることまたは分散することもできる。
【0049】
[0057] また、データー構造は、いずれかの適した形態で、コンピューター読み取り可能媒体に格納することができる。図示を簡略化するために、データー構造は、当該データー構造における場所によって関係付けられたフィールドを有するように示すことができる。同様に、このような関係は、コンピューター読み取り可能媒体においてフィールド間で関係を伝える場所と共に、これらのフィールドにストレージを割り当てることによって達成することができる。しかしながら、データー構造のフィールドにおいて情報間に関係を確立するためには、いずれかの適したメカニズムを用いることができ、ポインター、タグ、またはデーター・エレメント間に関係を確立するその他のメカニズムの使用によることが含まれる。
【0050】
[0058] 本発明の種々の態様は、単独でも、組み合わせでも、または先に説明した実施形態において具体的な論じられなかった種々の構成でも用いることができ、したがって、前述の説明において明記したコンポーネントや図面に示したコンポーネントの詳細や構成には、その応用は限定されない。例えば、一実施形態において説明した態様を、他の実施形態において説明した態様といかように組み合わせてもよい。
【0051】
[0059] また、本発明は、方法として具体化することができ、その例を示した。この方法の一部として実行される動作は、いずれの適した方法でも順序を決定することができる。したがって、実施形態は、図示した順序とは異なる順序で動作が実行される構成にすることもでき、一部の動作を同時に実行することを含むことができるが、本明細書において説明した例示的な実施形態では連続的な動作として示されている。
【0052】
[0060] 「第1」、「第2」、「第3」等のような序数を請求項において用いて請求項の要素を修飾する場合、それ自体は、優先順位も、時間的先行も、あるいは1つの請求項要素の他の要素に対する順序、即ち、方法の動作が実行される時間的順序も言外に含むことはなく、単に、請求項要素を区別するために、ある名称を有する1つの請求項要素を、同じ名称を有する他の要素(序数項の使用を除く)から区別する付箋として用いられるに過ぎない。
【0053】
[0061] また、本明細書において用いた言葉づかいや用語は、説明を目的にしているのであり、限定と見なしてはならない。「含む」(including)、「含む」(comprising)、または「有する」(having)、「含む」(containing)、「伴う」(involving)、およびこれらの派生形は、本明細書では、その後に羅列される項目、その均等物、および付加的な項目も包含することを意味する。