(57)【要約】或る特定のアプリケーションの起動を遅延させることにより、システムの全体の性能を改善することができる。遅延されるアプリケーションは、コンテナオブジェクト又はボックスに置くことができ、その結果、それらのアプリケーションをトラッキングすることができ、且つ遅延されるアプリケーションに従属する他のアプリケーションを適切に操作することができる。【選択図】図１
2009517784.tif 000002
【特許請求の範囲】
【請求項１】
システム優先順位を管理する方法であって、
プロセスのＣＰＵ（プロセッサ）優先順位クラス、Ｉ／Ｏ優先順位、メモリページ優先順位、メモリワーキングセット、ネットワーキング能力のうちの少なくとも１つに優先順位を割り当てることを許可するステップ、
コンテナオブジェクトに前記プロセスを置き、それによって、該プロセス及び従属するプロセスをトラッキングできるようにするステップ、
アプリケーション起動時に前記優先順位を調整してより低くすることを許可するステップ、及び
起動後の或る期間の遅延後に、前記優先順位を調整してより高くすることを許可するステップ
を含む、方法。
【請求項２】
請求項１に記載の方法であって、使用率が高い期間（periods of high use）中に前記優先順位を調整してより低くすることを許可するステップをさらに含む、方法。
【請求項３】
請求項１に記載の方法であって、前記使用率が高い期間後に、前記優先順位を調整してより高くすることを許可するステップをさらに含む、方法。
【請求項４】
請求項１に記載の方法であって、すべてのスタートアップアプリケーションが加わる、セッション規模の（session wide）コンテナオブジェクトを生成するステップをさらに含む、方法。
【請求項５】
請求項１に記載の方法であって、前記コンテナオブジェクトに複数のプロセスを１つのグループとして加えるステップをさらに含む、方法。
【請求項６】
請求項１に記載の方法であって、設定可能な時間期間後に前記プロセスを前記コンテナオブジェクトから解放するように設定するステップをさらに含む、方法。
【請求項７】
請求項１に記載の方法であって、前記コンテナオブジェクト内のプロセスとのユーザインタラクションを検出するステップ、前記プロセスの制約を動的に取り除くステップ、及び／又は、後に前記コンテナオブジェクトに前記プロセスが置かれることを防止するように履歴情報を使用するステップをさらに含む、方法。
【請求項８】
請求項１に記載の方法であって、前記所定のプロセスが、スタートアップアプリケーションとして実行される場合に前記コンテナオブジェクトに置かれるべきであるか否かに関する画像毎のファイル名設定を記憶するように前記レジストリを使用するステップをさらに含む、方法。
【請求項９】
請求項１に記載の方法であって、前記レジストリに対するキーをアクセス制御リストに置き、それにより、一般的なスタートアップアプリケーションが前記キーにおける自身の設定を変更できないようにするステップをさらに含む、方法。
【請求項１０】
請求項１に記載の方法であって、前記プロセスが以下の態様で起動されるように、該プロセスを制約付きのコンテナオブジェクトに置くステップをさらに含み、上記態様とは、
前記コンテナオブジェクト内の前記アプリケーションは前記優先順位設定を壊すことができないこと、
プロセスとの前記結合は、前記コンテナオブジェクトが破壊されるまで壊すことができこと、及び
前記コンテナオブジェクトによって設定される制約は、該コンテナオブジェクト内の前記プロセスによって上書きすることができないこと、
である方法。
【請求項１１】
請求項１に記載の方法であって、Ｉ／Ｏ及びページの優先順位制限を制御するジョブオブジェクト制限構造を生成するステップをさらに含む、方法。
【請求項１２】
システム優先順位を管理するためのコンピュータ実行可能命令を含むコンピュータ可読媒体であって、そこに含まれるコンピュータ実行可能命令が以下のステップ、即ち、
プロセスのＣＰＵ優先順位クラス、Ｉ／Ｏ優先順位、メモリページ優先順位、メモリワーキングセット、ネットワーキング能力のうちの少なくとも１つに優先順位を割り当てることを許可するステップ、
すべてのスタートアップアプリケーションが加わる或るコンテナオブジェクトに前記プロセスを置き、それによって、前記プロセス及び従属するプロセスをトラッキングすることができるようにするステップ、
起動時に前記優先順位を調整してより低くすることを許可するステップ、及び
起動後の或る期間の遅延後に、前記優先順位を調整してより高くすることを許可するステップ、
を実行する、コンピュータ可読媒体。
【請求項１３】
請求項１２に記載のコンピュータ可読媒体であって、以下のステップ、即ち、
優先順位の高い使用期間中に前記優先順位を調整してより低くすることを許可するステップ、
前記優先順位の高い使用期間後に、前記優先順位を調整してより高くすることを許可するステップ、
すべてのスタートアップアプリケーションが加わる、セッション規模のコンテナオブジェクトを生成するステップ、
前記コンテナに複数のプロセスを１つのグループとして加えるステップ、及び
設定可能な時間期間後に前記プロセスを前記コンテナオブジェクトから解放するように設定するステップ、
のうちの少なくとも１つのステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項１４】
請求項１２に記載のコンピュータ可読媒体であって、以下のステップ、即ち、前記コンテナオブジェクト内のプロセスとのユーザインタラクションを検出するステップ、前記プロセスの制約を動的に取り除くステップ、及び／又は、後に前記コンテナオブジェクトに前記プロセスが置かれることを防止するように履歴情報を使用するステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項１５】
請求項１２に記載のコンピュータ可読媒体であって、前記所定のプロセスが、スタートアップアプリケーションとして実行される場合に前記コンテナオブジェクトに置かれるべきであるか否かに関する画像毎のファイル名設定を記憶するように前記レジストリを使用するステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項１６】
請求項１２に記載のコンピュータ可読媒体であって、前記レジストリに対するキーをアクセス制御リストに置き、それにより、一般的なスタートアップアプリケーションが前記キーにおける自身の設定を変更できないようにするステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項１７】
請求項１２に記載のコンピュータ可読媒体であって、前記プロセスが以下の態様で起動されるように、該プロセスを制約付きのジョブオブジェクトに置くステップ、を実行するコンピュータ実行可能命令をさらに含み、上記態様とは、
前記コンテナオブジェクト内の前記アプリケーションは前記優先順位設定を壊すことができないこと、
プロセスとの前記結合は、前記コンテナオブジェクトが破壊されるまで壊すことができこと、及び
前記コンテナオブジェクトによって設定される制約は、該コンテナオブジェクト内の前記プロセスによって上書きすることができないこと、
である、コンピュータ可読媒体。
【請求項１８】
請求項１２に記載のコンピュータ可読媒体であって、Ｉ／Ｏ及びページの優先順位制限を制御するプロセスオブジェクト制限構造を生成するステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項１９】
プロセッサ、メモリ及び入出力デバイスを備えるコンピュータシステムであって、前記プロセッサは命令を実行するようになっており、含まれる命令は、
プロセスのＣＰＵ優先順位クラス、Ｉ／Ｏ優先順位、メモリページ優先順位、メモリワーキングセット、ネットワーキング能力のうちの少なくとも１つに優先順位を割り当てることを可能にするステップ、
すべてのスタートアップアプリケーションが加わるコンテナオブジェクトに前記プロセスを置き、それによって、前記プロセス及び従属するプロセスをトラッキングすることができるようにするステップ、
起動時に前記優先順位を調整してより低くすることを許可するステップ、及び
起動後の或る期間の遅延後に、前記優先順位を調整してより高くすることを許可するステップ、
を実行する、コンピュータシステム。
【請求項２０】
請求項１９に記載のコンピュータシステムであって、前記プロセスが以下の態様で起動されるように、該プロセスを制約付きのジョブオブジェクトに置くステップ、を実行するコンピュータ実行可能命令をさらに含み、上記態様とは、
前記コンテナオブジェクト内の前記アプリケーションは前記優先順位設定を壊すことができないこと、
プロセスとの前記結合は、前記コンテナオブジェクトが破壊されるまで壊すことができこと、及び
前記コンテナオブジェクトによって設定される制約は、該コンテナオブジェクト内の前記プロセスによって上書きすることができないこと、
である、コンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータオペレーティングシステムは、コンピュータが電源を入れられるか又はユーザがログオンする場合に起動されるアプリケーションを登録する多数の方法を提供する。これらのスタートアップアプリケーションは、ブート（電源を入れる）時及びログオン時の性能問題の主な原因である可能性がある。インストール時に、ソフトウェアアプリケーションは多くの場合に自身をスタートアップアプリケーションとして登録し、この際、このことがユーザにとって必要であるか否かは考慮されない。ユーザは多くの場合に混乱し且つこのオプションを無効にする方法を知らず、最終的な結果として、多数のスタートアップアプリケーションが平均的なユーザのマシン上に存在し、当該マシンを初期化するのに時間がかかることになる。この初期化中に、それらのスタートアップアプリケーションのほとんどがユーザによって即座に必要とされないか又は望まれないものであり、より遅いペースで起動することができる場合であっても、それらのスタートアップアプリケーションはマシン上のシステム資源を消費する。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）の多数の利用者は、この問題のために、ログオン後に自身のコンピュータの使用を開始することが可能になるまで長い間待たなければならない。当然のことながら、インスタントメッセンジャーアプリケーション、アンチウイルスアプリケーション又はアンチスパイウェアアプリケーション等の必要且つ重要なスタートアップアプリケーションは存在する。
【発明の開示】
【０００２】
或る特定のアプリケーションの起動を遅延させることにより、システムの性能を知覚される程に改善することができる。これは、これらのプロセスを起動する時間を遅延することによって、且つ／又はプロセッサ資源、Ｉ／Ｏ資源若しくはメモリ資源等の様々なシステム資源に対する、これらのプロセスの優先順位を低くすることによって達成することができる。これによって、ユーザがいかなる目的を望んでいようとこれらの資源をより迅速にユーザが利用できるようにすることができ、ユーザは、スタートアップアプリケーションが初期化を終了するのを待つ必要はない。さらに、ユーザがスタートアップ優先順位を調整することを可能にするために、ユーザインタフェースを開示することができる。
【発明を実施するための最良の形態】
【０００３】
以下の文は、多数の異なる実施形態の詳細な説明を記載するが、この説明の法定の範囲は、本特許の特許請求の範囲の文言によって画定されることを理解されたい。この詳細な説明は、例示としてのみ解釈され、あらゆる可能な実施形態を説明するものではない。これは、あらゆる可能な実施形態を説明することは、不可能ではないとしても、実際的ではないためである。多数の代替の実施形態は、現在の技術、又は本特許の出願日後に開発される技術のいずれかを使用して実施することができ、これは、依然として本特許請求の範囲の範囲内にある。
【０００４】
また、用語が、「本明細書において使用される場合、用語『  』は本明細書によって、…を意味するように定義される」という文又は同様の文を使用して本特許において明示的に定義されない限り、その用語の意味を、その明白な又は通常の意味を超えて、明示的にも、暗黙的にも限定する意図はなく、そのような用語は、（本特許請求の範囲の文言以外の）本特許の任意の節において述べられる任意の文に基づいて範囲が限定されるものと解釈するべきではない。本特許の特許請求の範囲に記載されるあらゆる用語が単一の意味を有するように本特許において参照される限りにおいては、これは、読者を困惑させないために明瞭さのためにのみ行われ、そのような請求項の用語が、暗示又はその他によってその単一の意味に限定されることは意図されない。最後に、請求項の構成要素が、構造を一切記載せずに単語「手段」及び機能を記載することによって規定されない限り、あらゆる請求項の構成要素の範囲が、米国特許法第１１２条第６パラグラフの適用に基づいて解釈されることは意図されない。
【０００５】
図１に、特許請求される方法のステップ及び装置に関するシステムを実装することができる適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、特許請求の範囲に記載の装置の方法の使用又は機能の範囲についていかなる限定をも示唆するようには意図されない。また、コンピューティング環境１００は、例示的な動作環境１００に示す構成要素のうちの任意の１つ又はそれらの組合せに関連するなんらかの依存又は必要要件を有するものとも解釈すべきでない。
【０００６】
特許請求される方法のステップ及び装置は、多数の他の汎用又は特殊目的のコンピューティングシステムの環境又は構成と共に動作する。特許請求の範囲に記載の方法又は装置に使用するのに適している可能性がある既知のコンピューティングシステム、コンピューティング環境、及び／又はコンピューティング構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステム若しくはデバイスのうちのいずれかを含む分散コンピューティング環境等が含まれる。
【０００７】
特許請求される方法のステップ及び装置は、コンピュータによって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。本方法及び本装置は、通信ネットワークを通じてつながれている遠隔の処理デバイスによってタスクが実行される分散コンピューティング環境で実装することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカル及びリモートの両方のコンピュータ記憶媒体に置くことができる。
【０００８】
図１を参照すると、特許請求される方法のステップ及び装置を実装する例示的なシステムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、限定はしないが、処理装置１２０と、システムメモリ１３０と、システムメモリを含む各種のシステム構成要素を処理装置１２０に結合するシステムバス１２１とが含まれ得る。システムバス１２１は、各種のバスアーキテクチャのうちのいずれかを使用する、メモリバス又はメモリコントローラ、ペリフェラルバス、及びローカルバスを含む数種のバス構造のうちのいずれかとすることができる。限定ではなく例として、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクススタンダードアソシエーション（ＶＥＳＡ）ローカルバス、及び、メザニンバスとしても知られている周辺装置相互接続（ＰＣＩ）バスが含まれる。
【０００９】
コンピュータ１１０は通常、各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によるアクセスが可能な任意の利用可能媒体とすることができ、揮発性の媒体及び不揮発性の媒体の両方、並びに取り外し可能な媒体及び取り外し不能な媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とから成ることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶するあらゆる方式又は技術で実装される、揮発性の媒体及び不揮発性の媒体の両方、並びに取り外し可能な媒体及び取り外し不能な媒体の両方が含まれる。コンピュータ記憶媒体には、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、又は必要とする情報を記憶するために使用することができると共にコンピュータ１１０によるアクセスが可能な他の任意の媒体が含まれる。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の移送機構等の変調データ信号で実施し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方式でその特性のうちの１つ又は複数を設定又は変化させた信号を意味する。限定ではなく例として、通信媒体には、有線ネットワーク又は直接配線接続等の有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体とが含まれる。上記のうちの任意のものの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００１０】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２等の揮発性メモリ及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中等にコンピュータ１１０内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は、通常、ＲＯＭ１３１に記憶される。ＲＡＭ１３２は、通常、処理装置１２０から即座にアクセス可能な且つ／又は処理装置１２０によって現在操作されているデータ及び／又はプログラムモジュールを保持する。限定ではなく例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７が示される。
【００１１】
コンピュータ１１０は、この他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。例としてのみ、図１には、取り外し不能な不揮発性の磁気媒体の読み書きを行うハードディスクドライブ１４０と、取り外し可能な不揮発性の磁気ディスク１５２の読み書きを行う磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭ又は他の光媒体等の取り外し可能な不揮発性の光ディスク１５６の読み書きを行う光ディスクドライブ１５５が示される。例示的な動作環境で使用することができる他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等が含まれる。ハードディスクドライブ１４１は通常、インタフェース１４０等の取り外し不能メモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、通常、インタフェース１５０等の取り外し可能メモリインタフェースによってシステムバス１２１に接続される。
【００１２】
上述され且つ図１に示されるドライブとそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータの記憶をコンピュータ１１０に提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を記憶しているように示される。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じとすることができるか、又は異なるものとすることができることに留意されたい。ここでは、それらが最低でも異なるコピーであることを示すために、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７には、異なる参照符号を付している。ユーザは、キーボード１６２、及び一般にはマウス、トラックボール又はタッチパッドと称されるポインティングデバイス１６１等の入力デバイスを通じてコンピュータ２０にコマンド及び情報を入力することができる。他の入力デバイス（図示せず）としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナ等を含むことができる。これらの入力デバイス及び他の入力デバイスは、多くの場合、システムバスに結合されているユーザ入力インタフェース１６０を通じて処理装置１２０に接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ）等の他のインタフェース及びバス構造によって接続することもできる。モニタ１９１又は他のタイプの表示デバイスも、ビデオインタフェース１９０等のインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７及びプリンタ１９６等の他の周辺出力デバイスも含むことができ、それらの周辺出力デバイスは、出力周辺インタフェース１９０を通じて接続されることができる。
【００１３】
コンピュータ１１０は、リモートコンピュータ１８０等の１つ又は複数のリモートコンピュータとの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、又は他の一般的なネットワークノードとすることができ、図１にはメモリ記憶装置１８１のみが示されているが、通常は、コンピュータ１１０に関連して上述した要素の多く又はすべてを含む。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１及びワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むことも可能である。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、及びインターネットで一般的である。
【００１４】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインタフェース又はアダプタ１７０を通じてＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、通常、インターネット等のＷＡＮ１７３を通じて通信を確立するモデム１７２又は他の手段を含む。モデム１７２は、内蔵型でも外付け型でもよく、ユーザ入力インタフェース１６０又は他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関連して図示するプログラムモジュール又はその一部は、遠隔のメモリ記憶デバイスに記憶することができる。限定ではなく例として、図１は、リモートアプリケーションプログラム１８５がメモリデバイス１８１にあるように示す。図示されるネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用することができることは理解されるであろう。
アプリケーションの遅延起動
「Ｒｕｎ」レジストリキー等の種々の登録ポイントからスタートアップアプリケーションを削除することによってスタートアッププロセスからスタートアップアプリケーションを「削除する」オプションをユーザに提供することは有用であると考えられるが、この機能には幾つかの問題がある。第１に、スタートアップアプリケーションは多くの場合に、これらの登録ポイントをモニタリングし、自身を再び追加する。第２に、完全にアプリケーションをスタートアップシーケンスから削除することによって、幾つかの機能を不注意により壊すか又は失う場合がある。
【００１５】
ユーザに、ログオン時の自身のコンピュータの制御を取り消すことを可能にすると共に、スタートアップからスタートアップアプリケーションを完全に削除する必要がないことを可能にするスタートアップアプリケーションを「遅延する」方法は、１つのソリューションであり、以下において説明される。スタートアップアプリケーションがユーザのシステムに与える影響は、ＣＰＵ、Ｉ／Ｏ及びメモリといった種類のシステム資源に対するこれらのプロセスの各優先順位を低くすることによって、これらのプロセスのＣＰＵ消費、Ｉ／Ｏ消費及びメモリ消費を制限することによって低減することができる。スタートアップアプリケーションが起動されると、本方法は、それらのＣＰＵ、Ｉ／Ｏ及びページの優先順位を低くし、それらをトラッキングオブジェクトに置くことができる。この方法は、「ボックス化」と称される。設定可能な期間の後に、本方法は、それらの優先順位を元の設定に戻すことができる。
【００１６】
図２は、本特許請求の範囲による方法を高水準で示すものとすることができる。ブロック２００において、ユーザは、ユーザインタフェースを使用して或る特定のアプリケーションを遅延するように設定することができる。ブロック２０５において、本方法は、メモリに記憶されるべく選択されたアプリケーションを記憶することができる。ブロック２１０において、オペレーティングシステムが起動することができる。ブロック２１５において、本方法は、スタートアップアプリケーションを起動することができる。ブロック２２０において、本方法は、特定のアプリケーションが遅延されるべきプロセスとしてブロック２１０において記憶されているか否かを判断することができる。その判断が「いいえ」である場合は、ブロック２２５において、本方法を通常通りに開始することができ、本方法を終了させることができる。ブロック２２０における判断が「はい」である場合は、本方法は、特定のアプリケーションに関する生成プロセスを保留することができる（２３０）。ブロック２３５において、本方法は、遅延される特定のアプリケーションをジョブコンテナオブジェクトに加えることができる。ブロック２４０において、本方法は、特定のアプリケーションに対するプロセス優先順位を低くすることができ、ワーキングセットを制限することができる。ブロック２４５において、タイマを起動することができ、ブロック２５０において、そのタイマは終了することができる。ブロック２５５において、特定のアプリケーションの優先順位を戻すことができ、本方法は、ワーキングセットの制限を解除することができる。
【００１７】
一実施形態では、システムレジストリの保護されているキーに、画像パス毎にボックス化を有効にするか又は無効にすることを可能にする例外リストが含まれる。例えば、例外リストにリスト化されていないすべてのアプリケーションは、コンテナオブジェクトにボックス化、すなわち置くことができる。
【００１８】
オペレーティングシステムは、ボックス化されている初期プロセス及び派生プロセスをトラッキングする必要がある。例えば、スタートアップアプリケーションがボックス化されており且つ所定のアプリケーションプロセスが子プロセスを起動させる場合、その子プロセスもボックス化されるべきであり、親（初期）プロセスがボックス化解除される場合に、同様にボックス化解除されるべきである。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）では、ジョブオブジェクトを使用してこのタスクを果たすことができる。
【００１９】
本方法は、スタートアップアプリケーションがルールによりボックス化解除される前に自身の優先順位を高くし直すこと（これは、本方法の利点を大幅に低減するであろう）に対して保護されることが可能である場合に、最も効率的になるであろう。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）では、ジョブオブジェクトを使用して、プロセスに対して逃れることができない優先順位制約を課すことができるが、これは、ジョブオブジェクトの元の生成者（つまりボックス、ひいてはオペレーティングシステム）が、所定のアプリケーションをボックス化解除する場合等にその制約を取り除くことを自ら進んで決定する場合には該当しない。
【００２０】
本方法は、システムレジストリを使用して、プロセスがスタートアップアプリケーションとして実行される場合に当該プロセスを（その実行可能な画像ファイルの名前を介して）ボックス化するか否かに関して画像毎のファイル名設定を記憶することができる。Ｗｉｎｄｏｗｓ（登録商標）システムでは、多数の異なる機能を実行することができる「ｒｕｎｄｌｌ３２．ｅｘｅ」のようなユニバーサルメカニズムに対して特別な注意を払う必要がある場合がある。したがって、ユーザの意図は、「ｒｕｎｄｌｌ３２．ｅｘｅ」に対する全面的な制限よりもきめ細かい制御がこれらの機能に対して行われる場合に、最も良く反映することができる。本方法は、キーをアクセス制御制限（「ＡＣＬ」）し、一般的なスタートアップアプリケーションがそのキーにおける自身の設定を変更できないようにする必要がある場合がある。
【００２１】
本方法は、すべてのスタートアップアプリケーションを起動すると、或る特定の設定可能なタイムアウト（例えば３０秒）の後にジョブを解放する（プロセスを当該プロセスの制約から解放し且つ当該プロセスの優先順位を戻す）ようにボックスオブジェクトを設定することができる。
【００２２】
本方法はまた、オペレーティングシステムの他の部分と共同して、ユーザがボックス化アプリケーションとインタラクションしているか否かを検出すると共に、その情報を使用して、ボックス化タイムアウトが満了する前に所定のアプリケーションをボックス化解除することができる。これによって、オペレーティングシステムが、一般的な場合に望ましくないスタートアップアプリケーションのコストを低減できることになるが、ユーザにアプリケーションが必要となった場合に、優先順位制約がそのシステムを使用するユーザエクスペリエンスに対してどの時点で有害となるかをオペレーティングシステムが動的に検出することもできるようになる。これらのアプリケーションに関するユーザアクティビティを検出する方法は、アプリケーションによってアクティビティをスプーフィング（spoofing）することを防止するべきである。これは、このスプーフィングは本方法の有用性を損なうためである。スタートアップアプリケーションがインタラクティブに使用されているという知識は、履歴データとして保つこともでき、後においてそのスタートアップアプリケーションがボックス化されることを防止するために使用することができる。このことは、ユーザエクスペリエンスを改善する可能性がある。ユーザがスタートアップアプリケーションとインタラクションしている時を判断する１つの簡単な例としての手法は、スタートアップアプリケーションのウィンドウのいずれかが最前面にあるウィンドウになっているか否か、及びマウスカーソルがそのウィンドウ内に位置しているか否かを繰り返し調べることである。
【００２３】
図３は、本特許請求の範囲による方法の別の実施形態を示すものとすることができる。ブロック３００において、本方法によって、優先順位が、プロセスの優先順位クラス、Ｉ／Ｏ優先順位、優先順位ページ、ワーキングセット及びネットワーキング能力のうちの１つに割り当てられることを許可する。ブロック３０５において、本方法は、プロセスをジョブオブジェクトに置くことができ、それによって、プロセス及び従属するプロセスをトラッキングすることができる。ブロック３１０において、本方法によって、起動時に優先順位を調整してより低くすることを許可する。ブロック３１５において、本方法によって、起動後の或る期間の遅延の後に優先順位を調整してより高くすることを許可する。ブロック３２０において、本方法によって、使用率が高い期間中に優先順位を調整してより低くすることを許可する。ブロック３２５において、本方法によって、使用率が高い期間の後に優先順位を調整してより高くすることを許可する。ブロック３３０において、本方法は、すべてのスタートアップアプリケーションが加わるセッション規模のジョブオブジェクトを生成することができる。ブロック３３５において、本方法は、複数のプロセスを１つのグループとしてボックス化し、単一のプロセスが単独でボックス化解除されるのを不可能にすることができる。ブロック３４０において、本方法は、スレッドレベルのストレージを使用してボックス化が要求されているという情報をシステムに伝送することができる。これは、（ＣＢｏｘ）オブジェクトを「スタートアップアプリケーションスレッドを実行（Run Startup Apps Thread）」に生成すること、及びスレッドレベルのストレージポインタを（ＣＢｏｘ）に隣接して確保することによって達成することができる。ブロック３４５において、本方法は、変更されたＡＰＩスタックを使用してボックス化が要求されているという情報をシステムに伝送することができる。ブロック３５０において、本方法は、プロセス生成において、スレッドレベルのストレージから（ＣＢｏｘ）オブジェクトを発行し、プロセスをボックス化するか否かを判断する。ブロック３５５において、本方法は、参照カウントポインタであるポインタを使用することができる。ブロック３６０において、本方法は、スレッドレベルのストレージスロットによって指し示されるボックスオブジェクトに対する（to）参照カウンタをインクリメントすることができる。ブロック３６５において、本方法は、設定可能な時間期間後にボックスオブジェクトからジョブを解放するように設定することができる。ブロック３７０において、本方法は、レジストリを使用して、プロセスがスタートアップアプリケーションとして実行される場合に画像をボックス化するか否かに関する画像毎のビューア設定を記憶することができる。ブロック３７５において、本方法は、レジストリに対するキーをアクセス制御リストに置くことができ、その結果、一般的なスタートアップアプリケーションがそのキーにおける自身の設定を変更できないようにする。ブロック３７５において、本方法は、ボックス化アプリケーションが優先順位設定を壊すことができず、ジョブとの結合はジョブオブジェクトが破壊されるまで壊すこ��ができず、ジョブオブジェクトによって設定される制約はボックス化プロセスによって上書きすることができないようにプロセスが起動されるように、プロセスを制約付きのジョブオブジェクトに置くことができる。ブロック３８０において、本方法は、Ｉ／Ｏ及びページの優先順位の制限を制御するジョブオブジェクト制限構造を生成することができる。
【００２４】
上記の文は、多数の異なる実施形態の詳細な説明を記載するが、本特許の範囲は、本特許の最後に記載される特許請求の範囲の文言によって画定されることを理解されたい。この詳細な説明は、例示としてのみ解釈されるべきであり、あらゆる可能な実施形態を説明するものではない。これは、あらゆる可能な実施形態を説明することは、不可能ではないとしても、実際的ではないためである。多数の代替の実施形態は、現在の技術、又は本特許の出願日後に開発される技術のいずれかを使用して実施することができ、これは、依然として本特許請求の範囲の範囲内にある。
【００２５】
したがって、多数の変更及び変形を、本特許請求の範囲の精神及び範囲から逸脱することなく、本明細書に記載及び図示される技法及び構造において行うことが可能である。したがって、本明細書に記載される方法及び装置は、単に例示にすぎず、本特許請求の範囲の範囲を限定しないことを理解されたい。
【図面の簡単な説明】
【００２６】
【図１】本特許請求の範囲に従って動作することができるコンピューティングシステムのブロック図である。
【図２】本特許請求の範囲による方法を高水準で示すことができる図である。
【図３】本特許請求の範囲による方法の別の実施形態を示すことができる図である。
【図１】
2009517784.tif 000003
【図２】
2009517784.tif 000004
【図３】
2009517784.tif 000005
【国際調査報告】
2009517784.tif 000006
2009517784.tif 000007