説明

アプリケーションの遅延起動

或る特定のアプリケーションの起動を遅延させることにより、システムの全体の性能を改善することができる。遅延されるアプリケーションは、コンテナオブジェクト又はボックスに置くことができ、その結果、それらのアプリケーションをトラッキングすることができ、且つ遅延されるアプリケーションに従属する他のアプリケーションを適切に操作することができる。

【発明の詳細な説明】
【背景技術】
【0001】
コンピュータオペレーティングシステムは、コンピュータが電源を入れられるか又はユーザがログオンする場合に起動されるアプリケーションを登録する多数の方法を提供する。これらのスタートアップアプリケーションは、ブート(電源を入れる)時及びログオン時の性能問題の主な原因である可能性がある。インストール時に、ソフトウェアアプリケーションは多くの場合に自身をスタートアップアプリケーションとして登録し、この際、このことがユーザにとって必要であるか否かは考慮されない。ユーザは多くの場合に混乱し且つこのオプションを無効にする方法を知らず、最終的な結果として、多数のスタートアップアプリケーションが平均的なユーザのマシン上に存在し、当該マシンを初期化するのに時間がかかることになる。この初期化中に、それらのスタートアップアプリケーションのほとんどがユーザによって即座に必要とされないか又は望まれないものであり、より遅いペースで起動することができる場合であっても、それらのスタートアップアプリケーションはマシン上のシステム資源を消費する。Microsoft Windows(登録商標)の多数の利用者は、この問題のために、ログオン後に自身のコンピュータの使用を開始することが可能になるまで長い間待たなければならない。当然のことながら、インスタントメッセンジャーアプリケーション、アンチウイルスアプリケーション又はアンチスパイウェアアプリケーション等の必要且つ重要なスタートアップアプリケーションは存在する。
【発明の開示】
【0002】
或る特定のアプリケーションの起動を遅延させることにより、システムの性能を知覚される程に改善することができる。これは、これらのプロセスを起動する時間を遅延することによって、且つ/又はプロセッサ資源、I/O資源若しくはメモリ資源等の様々なシステム資源に対する、これらのプロセスの優先順位を低くすることによって達成することができる。これによって、ユーザがいかなる目的を望んでいようとこれらの資源をより迅速にユーザが利用できるようにすることができ、ユーザは、スタートアップアプリケーションが初期化を終了するのを待つ必要はない。さらに、ユーザがスタートアップ優先順位を調整することを可能にするために、ユーザインタフェースを開示することができる。
【発明を実施するための最良の形態】
【0003】
以下の文は、多数の異なる実施形態の詳細な説明を記載するが、この説明の法定の範囲は、本特許の特許請求の範囲の文言によって画定されることを理解されたい。この詳細な説明は、例示としてのみ解釈され、あらゆる可能な実施形態を説明するものではない。これは、あらゆる可能な実施形態を説明することは、不可能ではないとしても、実際的ではないためである。多数の代替の実施形態は、現在の技術、又は本特許の出願日後に開発される技術のいずれかを使用して実施することができ、これは、依然として本特許請求の範囲の範囲内にある。
【0004】
また、用語が、「本明細書において使用される場合、用語『 』は本明細書によって、…を意味するように定義される」という文又は同様の文を使用して本特許において明示的に定義されない限り、その用語の意味を、その明白な又は通常の意味を超えて、明示的にも、暗黙的にも限定する意図はなく、そのような用語は、(本特許請求の範囲の文言以外の)本特許の任意の節において述べられる任意の文に基づいて範囲が限定されるものと解釈するべきではない。本特許の特許請求の範囲に記載されるあらゆる用語が単一の意味を有するように本特許において参照される限りにおいては、これは、読者を困惑させないために明瞭さのためにのみ行われ、そのような請求項の用語が、暗示又はその他によってその単一の意味に限定されることは意図されない。最後に、請求項の構成要素が、構造を一切記載せずに単語「手段」及び機能を記載することによって規定されない限り、あらゆる請求項の構成要素の範囲が、米国特許法第112条第6パラグラフの適用に基づいて解釈されることは意図されない。
【0005】
図1に、特許請求される方法のステップ及び装置に関するシステムを実装することができる適切なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、特許請求の範囲に記載の装置の方法の使用又は機能の範囲についていかなる限定をも示唆するようには意図されない。また、コンピューティング環境100は、例示的な動作環境100に示す構成要素のうちの任意の1つ又はそれらの組合せに関連するなんらかの依存又は必要要件を有するものとも解釈すべきでない。
【0006】
特許請求される方法のステップ及び装置は、多数の他の汎用又は特殊目的のコンピューティングシステムの環境又は構成と共に動作する。特許請求の範囲に記載の方法又は装置に使用するのに適している可能性がある既知のコンピューティングシステム、コンピューティング環境、及び/又はコンピューティング構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステム若しくはデバイスのうちのいずれかを含む分散コンピューティング環境等が含まれる。
【0007】
特許請求される方法のステップ及び装置は、コンピュータによって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。本方法及び本装置は、通信ネットワークを通じてつながれている遠隔の処理デバイスによってタスクが実行される分散コンピューティング環境で実装することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカル及びリモートの両方のコンピュータ記憶媒体に置くことができる。
【0008】
図1を参照すると、特許請求される方法のステップ及び装置を実装する例示的なシステムは、コンピュータ110の形態の汎用コンピューティングデバイスを含む。コンピュータ110の構成要素には、限定はしないが、処理装置120と、システムメモリ130と、システムメモリを含む各種のシステム構成要素を処理装置120に結合するシステムバス121とが含まれ得る。システムバス121は、各種のバスアーキテクチャのうちのいずれかを使用する、メモリバス又はメモリコントローラ、ペリフェラルバス、及びローカルバスを含む数種のバス構造のうちのいずれかとすることができる。限定ではなく例として、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダードアソシエーション(VESA)ローカルバス、及び、メザニンバスとしても知られている周辺装置相互接続(PCI)バスが含まれる。
【0009】
コンピュータ110は通常、各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によるアクセスが可能な任意の利用可能媒体とすることができ、揮発性の媒体及び不揮発性の媒体の両方、並びに取り外し可能な媒体及び取り外し不能な媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とから成ることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶するあらゆる方式又は技術で実装される、揮発性の媒体及び不揮発性の媒体の両方、並びに取り外し可能な媒体及び取り外し不能な媒体の両方が含まれる。コンピュータ記憶媒体には、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、若しくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、又は必要とする情報を記憶するために使用することができると共にコンピュータ110によるアクセスが可能な他の任意の媒体が含まれる。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の移送機構等の変調データ信号で実施し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方式でその特性のうちの1つ又は複数を設定又は変化させた信号を意味する。限定ではなく例として、通信媒体には、有線ネットワーク又は直接配線接続等の有線媒体と、音響、RF、赤外線、及び他の無線媒体等の無線媒体とが含まれる。上記のうちの任意のものの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0010】
システムメモリ130は、読み取り専用メモリ(ROM)131及びランダムアクセスメモリ(RAM)132等の揮発性メモリ及び/又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中等にコンピュータ110内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム133(BIOS)は、通常、ROM131に記憶される。RAM132は、通常、処理装置120から即座にアクセス可能な且つ/又は処理装置120によって現在操作されているデータ及び/又はプログラムモジュールを保持する。限定ではなく例として、図1には、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、及びプログラムデータ137が示される。
【0011】
コンピュータ110は、この他の取り外し可能/取り外し不能な、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。例としてのみ、図1には、取り外し不能な不揮発性の磁気媒体の読み書きを行うハードディスクドライブ140と、取り外し可能な不揮発性の磁気ディスク152の読み書きを行う磁気ディスクドライブ151と、CD−ROM又は他の光媒体等の取り外し可能な不揮発性の光ディスク156の読み書きを行う光ディスクドライブ155が示される。例示的な動作環境で使用することができる他の取り外し可能/取り外し不能な、揮発性/不揮発性のコンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等が含まれる。ハードディスクドライブ141は通常、インタフェース140等の取り外し不能メモリインタフェースを通じてシステムバス121に接続され、磁気ディスクドライブ151及び光ディスクドライブ155は、通常、インタフェース150等の取り外し可能メモリインタフェースによってシステムバス121に接続される。
【0012】
上述され且つ図1に示されるドライブとそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータの記憶をコンピュータ110に提供する。図1では、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、及びプログラムデータ147を記憶しているように示される。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、及びプログラムデータ137と同じとすることができるか、又は異なるものとすることができることに留意されたい。ここでは、それらが最低でも異なるコピーであることを示すために、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、及びプログラムデータ147には、異なる参照符号を付している。ユーザは、キーボード162、及び一般にはマウス、トラックボール又はタッチパッドと称されるポインティングデバイス161等の入力デバイスを通じてコンピュータ20にコマンド及び情報を入力することができる。他の入力デバイス(図示せず)としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナ等を含むことができる。これらの入力デバイス及び他の入力デバイスは、多くの場合、システムバスに結合されているユーザ入力インタフェース160を通じて処理装置120に接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB)等の他のインタフェース及びバス構造によって接続することもできる。モニタ191又は他のタイプの表示デバイスも、ビデオインタフェース190等のインタフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、スピーカ197及びプリンタ196等の他の周辺出力デバイスも含むことができ、それらの周辺出力デバイスは、出力周辺インタフェース190を通じて接続されることができる。
【0013】
コンピュータ110は、リモートコンピュータ180等の1つ又は複数のリモートコンピュータとの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、又は他の一般的なネットワークノードとすることができ、図1にはメモリ記憶装置181のみが示されているが、通常は、コンピュータ110に関連して上述した要素の多く又はすべてを含む。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171及びワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むことも可能である。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、及びインターネットで一般的である。
【0014】
LANネットワーキング環境で使用される場合、コンピュータ110は、ネットワークインタフェース又はアダプタ170を通じてLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、通常、インターネット等のWAN173を通じて通信を確立するモデム172又は他の手段を含む。モデム172は、内蔵型でも外付け型でもよく、ユーザ入力インタフェース160又は他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110に関連して図示するプログラムモジュール又はその一部は、遠隔のメモリ記憶デバイスに記憶することができる。限定ではなく例として、図1は、リモートアプリケーションプログラム185がメモリデバイス181にあるように示す。図示されるネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用することができることは理解されるであろう。
アプリケーションの遅延起動
「Run」レジストリキー等の種々の登録ポイントからスタートアップアプリケーションを削除することによってスタートアッププロセスからスタートアップアプリケーションを「削除する」オプションをユーザに提供することは有用であると考えられるが、この機能には幾つかの問題がある。第1に、スタートアップアプリケーションは多くの場合に、これらの登録ポイントをモニタリングし、自身を再び追加する。第2に、完全にアプリケーションをスタートアップシーケンスから削除することによって、幾つかの機能を不注意により壊すか又は失う場合がある。
【0015】
ユーザに、ログオン時の自身のコンピュータの制御を取り消すことを可能にすると共に、スタートアップからスタートアップアプリケーションを完全に削除する必要がないことを可能にするスタートアップアプリケーションを「遅延する」方法は、1つのソリューションであり、以下において説明される。スタートアップアプリケーションがユーザのシステムに与える影響は、CPU、I/O及びメモリといった種類のシステム資源に対するこれらのプロセスの各優先順位を低くすることによって、これらのプロセスのCPU消費、I/O消費及びメモリ消費を制限することによって低減することができる。スタートアップアプリケーションが起動されると、本方法は、それらのCPU、I/O及びページの優先順位を低くし、それらをトラッキングオブジェクトに置くことができる。この方法は、「ボックス化」と称される。設定可能な期間の後に、本方法は、それらの優先順位を元の設定に戻すことができる。
【0016】
図2は、本特許請求の範囲による方法を高水準で示すものとすることができる。ブロック200において、ユーザは、ユーザインタフェースを使用して或る特定のアプリケーションを遅延するように設定することができる。ブロック205において、本方法は、メモリに記憶されるべく選択されたアプリケーションを記憶することができる。ブロック210において、オペレーティングシステムが起動することができる。ブロック215において、本方法は、スタートアップアプリケーションを起動することができる。ブロック220において、本方法は、特定のアプリケーションが遅延されるべきプロセスとしてブロック210において記憶されているか否かを判断することができる。その判断が「いいえ」である場合は、ブロック225において、本方法を通常通りに開始することができ、本方法を終了させることができる。ブロック220における判断が「はい」である場合は、本方法は、特定のアプリケーションに関する生成プロセスを保留することができる(230)。ブロック235において、本方法は、遅延される特定のアプリケーションをジョブコンテナオブジェクトに加えることができる。ブロック240において、本方法は、特定のアプリケーションに対するプロセス優先順位を低くすることができ、ワーキングセットを制限することができる。ブロック245において、タイマを起動することができ、ブロック250において、そのタイマは終了することができる。ブロック255において、特定のアプリケーションの優先順位を戻すことができ、本方法は、ワーキングセットの制限を解除することができる。
【0017】
一実施形態では、システムレジストリの保護されているキーに、画像パス毎にボックス化を有効にするか又は無効にすることを可能にする例外リストが含まれる。例えば、例外リストにリスト化されていないすべてのアプリケーションは、コンテナオブジェクトにボックス化、すなわち置くことができる。
【0018】
オペレーティングシステムは、ボックス化されている初期プロセス及び派生プロセスをトラッキングする必要がある。例えば、スタートアップアプリケーションがボックス化されており且つ所定のアプリケーションプロセスが子プロセスを起動させる場合、その子プロセスもボックス化されるべきであり、親(初期)プロセスがボックス化解除される場合に、同様にボックス化解除されるべきである。Microsoft Windows(登録商標)では、ジョブオブジェクトを使用してこのタスクを果たすことができる。
【0019】
本方法は、スタートアップアプリケーションがルールによりボックス化解除される前に自身の優先順位を高くし直すこと(これは、本方法の利点を大幅に低減するであろう)に対して保護されることが可能である場合に、最も効率的になるであろう。Microsoft Windows(登録商標)では、ジョブオブジェクトを使用して、プロセスに対して逃れることができない優先順位制約を課すことができるが、これは、ジョブオブジェクトの元の生成者(つまりボックス、ひいてはオペレーティングシステム)が、所定のアプリケーションをボックス化解除する場合等にその制約を取り除くことを自ら進んで決定する場合には該当しない。
【0020】
本方法は、システムレジストリを使用して、プロセスがスタートアップアプリケーションとして実行される場合に当該プロセスを(その実行可能な画像ファイルの名前を介して)ボックス化するか否かに関して画像毎のファイル名設定を記憶することができる。Windows(登録商標)システムでは、多数の異なる機能を実行することができる「rundll32.exe」のようなユニバーサルメカニズムに対して特別な注意を払う必要がある場合がある。したがって、ユーザの意図は、「rundll32.exe」に対する全面的な制限よりもきめ細かい制御がこれらの機能に対して行われる場合に、最も良く反映することができる。本方法は、キーをアクセス制御制限(「ACL」)し、一般的なスタートアップアプリケーションがそのキーにおける自身の設定を変更できないようにする必要がある場合がある。
【0021】
本方法は、すべてのスタートアップアプリケーションを起動すると、或る特定の設定可能なタイムアウト(例えば30秒)の後にジョブを解放する(プロセスを当該プロセスの制約から解放し且つ当該プロセスの優先順位を戻す)ようにボックスオブジェクトを設定することができる。
【0022】
本方法はまた、オペレーティングシステムの他の部分と共同して、ユーザがボックス化アプリケーションとインタラクションしているか否かを検出すると共に、その情報を使用して、ボックス化タイムアウトが満了する前に所定のアプリケーションをボックス化解除することができる。これによって、オペレーティングシステムが、一般的な場合に望ましくないスタートアップアプリケーションのコストを低減できることになるが、ユーザにアプリケーションが必要となった場合に、優先順位制約がそのシステムを使用するユーザエクスペリエンスに対してどの時点で有害となるかをオペレーティングシステムが動的に検出することもできるようになる。これらのアプリケーションに関するユーザアクティビティを検出する方法は、アプリケーションによってアクティビティをスプーフィング(spoofing)することを防止するべきである。これは、このスプーフィングは本方法の有用性を損なうためである。スタートアップアプリケーションがインタラクティブに使用されているという知識は、履歴データとして保つこともでき、後においてそのスタートアップアプリケーションがボックス化されることを防止するために使用することができる。このことは、ユーザエクスペリエンスを改善する可能性がある。ユーザがスタートアップアプリケーションとインタラクションしている時を判断する1つの簡単な例としての手法は、スタートアップアプリケーションのウィンドウのいずれかが最前面にあるウィンドウになっているか否か、及びマウスカーソルがそのウィンドウ内に位置しているか否かを繰り返し調べることである。
【0023】
図3は、本特許請求の範囲による方法の別の実施形態を示すものとすることができる。ブロック300において、本方法によって、優先順位が、プロセスの優先順位クラス、I/O優先順位、優先順位ページ、ワーキングセット及びネットワーキング能力のうちの1つに割り当てられることを許可する。ブロック305において、本方法は、プロセスをジョブオブジェクトに置くことができ、それによって、プロセス及び従属するプロセスをトラッキングすることができる。ブロック310において、本方法によって、起動時に優先順位を調整してより低くすることを許可する。ブロック315において、本方法によって、起動後の或る期間の遅延の後に優先順位を調整してより高くすることを許可する。ブロック320において、本方法によって、使用率が高い期間中に優先順位を調整してより低くすることを許可する。ブロック325において、本方法によって、使用率が高い期間の後に優先順位を調整してより高くすることを許可する。ブロック330において、本方法は、すべてのスタートアップアプリケーションが加わるセッション規模のジョブオブジェクトを生成することができる。ブロック335において、本方法は、複数のプロセスを1つのグループとしてボックス化し、単一のプロセスが単独でボックス化解除されるのを不可能にすることができる。ブロック340において、本方法は、スレッドレベルのストレージを使用してボックス化が要求されているという情報をシステムに伝送することができる。これは、(CBox)オブジェクトを「スタートアップアプリケーションスレッドを実行(Run Startup Apps Thread)」に生成すること、及びスレッドレベルのストレージポインタを(CBox)に隣接して確保することによって達成することができる。ブロック345において、本方法は、変更されたAPIスタックを使用してボックス化が要求されているという情報をシステムに伝送することができる。ブロック350において、本方法は、プロセス生成において、スレッドレベルのストレージから(CBox)オブジェクトを発行し、プロセスをボックス化するか否かを判断する。ブロック355において、本方法は、参照カウントポインタであるポインタを使用することができる。ブロック360において、本方法は、スレッドレベルのストレージスロットによって指し示されるボックスオブジェクトに対する(to)参照カウンタをインクリメントすることができる。ブロック365において、本方法は、設定可能な時間期間後にボックスオブジェクトからジョブを解放するように設定することができる。ブロック370において、本方法は、レジストリを使用して、プロセスがスタートアップアプリケーションとして実行される場合に画像をボックス化するか否かに関する画像毎のビューア設定を記憶することができる。ブロック375において、本方法は、レジストリに対するキーをアクセス制御リストに置くことができ、その結果、一般的なスタートアップアプリケーションがそのキーにおける自身の設定を変更できないようにする。ブロック375において、本方法は、ボックス化アプリケーションが優先順位設定を壊すことができず、ジョブとの結合はジョブオブジェクトが破壊されるまで壊すことができず、ジョブオブジェクトによって設定される制約はボックス化プロセスによって上書きすることができないようにプロセスが起動されるように、プロセスを制約付きのジョブオブジェクトに置くことができる。ブロック380において、本方法は、I/O及びページの優先順位の制限を制御するジョブオブジェクト制限構造を生成することができる。
【0024】
上記の文は、多数の異なる実施形態の詳細な説明を記載するが、本特許の範囲は、本特許の最後に記載される特許請求の範囲の文言によって画定されることを理解されたい。この詳細な説明は、例示としてのみ解釈されるべきであり、あらゆる可能な実施形態を説明するものではない。これは、あらゆる可能な実施形態を説明することは、不可能ではないとしても、実際的ではないためである。多数の代替の実施形態は、現在の技術、又は本特許の出願日後に開発される技術のいずれかを使用して実施することができ、これは、依然として本特許請求の範囲の範囲内にある。
【0025】
したがって、多数の変更及び変形を、本特許請求の範囲の精神及び範囲から逸脱することなく、本明細書に記載及び図示される技法及び構造において行うことが可能である。したがって、本明細書に記載される方法及び装置は、単に例示にすぎず、本特許請求の範囲の範囲を限定しないことを理解されたい。
【図面の簡単な説明】
【0026】
【図1】本特許請求の範囲に従って動作することができるコンピューティングシステムのブロック図である。
【図2】本特許請求の範囲による方法を高水準で示すことができる図である。
【図3】本特許請求の範囲による方法の別の実施形態を示すことができる図である。

【特許請求の範囲】
【請求項1】
システム優先順位を管理する方法であって、
プロセスのCPU(プロセッサ)優先順位クラス、I/O優先順位、メモリページ優先順位、メモリワーキングセット、ネットワーキング能力のうちの少なくとも1つに優先順位を割り当てることを許可するステップ、
コンテナオブジェクトに前記プロセスを置き、それによって、該プロセス及び従属するプロセスをトラッキングできるようにするステップ、
アプリケーション起動時に前記優先順位を調整してより低くすることを許可するステップ、及び
起動後の或る期間の遅延後に、前記優先順位を調整してより高くすることを許可するステップ
を含む、方法。
【請求項2】
請求項1に記載の方法であって、使用率が高い期間(periods of high use)中に前記優先順位を調整してより低くすることを許可するステップをさらに含む、方法。
【請求項3】
請求項1に記載の方法であって、前記使用率が高い期間後に、前記優先順位を調整してより高くすることを許可するステップをさらに含む、方法。
【請求項4】
請求項1に記載の方法であって、すべてのスタートアップアプリケーションが加わる、セッション規模の(session wide)コンテナオブジェクトを生成するステップをさらに含む、方法。
【請求項5】
請求項1に記載の方法であって、前記コンテナオブジェクトに複数のプロセスを1つのグループとして加えるステップをさらに含む、方法。
【請求項6】
請求項1に記載の方法であって、設定可能な時間期間後に前記プロセスを前記コンテナオブジェクトから解放するように設定するステップをさらに含む、方法。
【請求項7】
請求項1に記載の方法であって、前記コンテナオブジェクト内のプロセスとのユーザインタラクションを検出するステップ、前記プロセスの制約を動的に取り除くステップ、及び/又は、後に前記コンテナオブジェクトに前記プロセスが置かれることを防止するように履歴情報を使用するステップをさらに含む、方法。
【請求項8】
請求項1に記載の方法であって、前記所定のプロセスが、スタートアップアプリケーションとして実行される場合に前記コンテナオブジェクトに置かれるべきであるか否かに関する画像毎のファイル名設定を記憶するように前記レジストリを使用するステップをさらに含む、方法。
【請求項9】
請求項1に記載の方法であって、前記レジストリに対するキーをアクセス制御リストに置き、それにより、一般的なスタートアップアプリケーションが前記キーにおける自身の設定を変更できないようにするステップをさらに含む、方法。
【請求項10】
請求項1に記載の方法であって、前記プロセスが以下の態様で起動されるように、該プロセスを制約付きのコンテナオブジェクトに置くステップをさらに含み、上記態様とは、
前記コンテナオブジェクト内の前記アプリケーションは前記優先順位設定を壊すことができないこと、
プロセスとの前記結合は、前記コンテナオブジェクトが破壊されるまで壊すことができこと、及び
前記コンテナオブジェクトによって設定される制約は、該コンテナオブジェクト内の前記プロセスによって上書きすることができないこと、
である方法。
【請求項11】
請求項1に記載の方法であって、I/O及びページの優先順位制限を制御するジョブオブジェクト制限構造を生成するステップをさらに含む、方法。
【請求項12】
システム優先順位を管理するためのコンピュータ実行可能命令を含むコンピュータ可読媒体であって、そこに含まれるコンピュータ実行可能命令が以下のステップ、即ち、
プロセスのCPU優先順位クラス、I/O優先順位、メモリページ優先順位、メモリワーキングセット、ネットワーキング能力のうちの少なくとも1つに優先順位を割り当てることを許可するステップ、
すべてのスタートアップアプリケーションが加わる或るコンテナオブジェクトに前記プロセスを置き、それによって、前記プロセス及び従属するプロセスをトラッキングすることができるようにするステップ、
起動時に前記優先順位を調整してより低くすることを許可するステップ、及び
起動後の或る期間の遅延後に、前記優先順位を調整してより高くすることを許可するステップ、
を実行する、コンピュータ可読媒体。
【請求項13】
請求項12に記載のコンピュータ可読媒体であって、以下のステップ、即ち、
優先順位の高い使用期間中に前記優先順位を調整してより低くすることを許可するステップ、
前記優先順位の高い使用期間後に、前記優先順位を調整してより高くすることを許可するステップ、
すべてのスタートアップアプリケーションが加わる、セッション規模のコンテナオブジェクトを生成するステップ、
前記コンテナに複数のプロセスを1つのグループとして加えるステップ、及び
設定可能な時間期間後に前記プロセスを前記コンテナオブジェクトから解放するように設定するステップ、
のうちの少なくとも1つのステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項14】
請求項12に記載のコンピュータ可読媒体であって、以下のステップ、即ち、前記コンテナオブジェクト内のプロセスとのユーザインタラクションを検出するステップ、前記プロセスの制約を動的に取り除くステップ、及び/又は、後に前記コンテナオブジェクトに前記プロセスが置かれることを防止するように履歴情報を使用するステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項15】
請求項12に記載のコンピュータ可読媒体であって、前記所定のプロセスが、スタートアップアプリケーションとして実行される場合に前記コンテナオブジェクトに置かれるべきであるか否かに関する画像毎のファイル名設定を記憶するように前記レジストリを使用するステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項16】
請求項12に記載のコンピュータ可読媒体であって、前記レジストリに対するキーをアクセス制御リストに置き、それにより、一般的なスタートアップアプリケーションが前記キーにおける自身の設定を変更できないようにするステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項17】
請求項12に記載のコンピュータ可読媒体であって、前記プロセスが以下の態様で起動されるように、該プロセスを制約付きのジョブオブジェクトに置くステップ、を実行するコンピュータ実行可能命令をさらに含み、上記態様とは、
前記コンテナオブジェクト内の前記アプリケーションは前記優先順位設定を壊すことができないこと、
プロセスとの前記結合は、前記コンテナオブジェクトが破壊されるまで壊すことができこと、及び
前記コンテナオブジェクトによって設定される制約は、該コンテナオブジェクト内の前記プロセスによって上書きすることができないこと、
である、コンピュータ可読媒体。
【請求項18】
請求項12に記載のコンピュータ可読媒体であって、I/O及びページの優先順位制限を制御するプロセスオブジェクト制限構造を生成するステップ、を実行するコンピュータ実行可能命令をさらに含む、コンピュータ可読媒体。
【請求項19】
プロセッサ、メモリ及び入出力デバイスを備えるコンピュータシステムであって、前記プロセッサは命令を実行するようになっており、含まれる命令は、
プロセスのCPU優先順位クラス、I/O優先順位、メモリページ優先順位、メモリワーキングセット、ネットワーキング能力のうちの少なくとも1つに優先順位を割り当てることを可能にするステップ、
すべてのスタートアップアプリケーションが加わるコンテナオブジェクトに前記プロセスを置き、それによって、前記プロセス及び従属するプロセスをトラッキングすることができるようにするステップ、
起動時に前記優先順位を調整してより低くすることを許可するステップ、及び
起動後の或る期間の遅延後に、前記優先順位を調整してより高くすることを許可するステップ、
を実行する、コンピュータシステム。
【請求項20】
請求項19に記載のコンピュータシステムであって、前記プロセスが以下の態様で起動されるように、該プロセスを制約付きのジョブオブジェクトに置くステップ、を実行するコンピュータ実行可能命令をさらに含み、上記態様とは、
前記コンテナオブジェクト内の前記アプリケーションは前記優先順位設定を壊すことができないこと、
プロセスとの前記結合は、前記コンテナオブジェクトが破壊されるまで壊すことができこと、及び
前記コンテナオブジェクトによって設定される制約は、該コンテナオブジェクト内の前記プロセスによって上書きすることができないこと、
である、コンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2009−517784(P2009−517784A)
【公表日】平成21年4月30日(2009.4.30)
【国際特許分類】
【出願番号】特願2008−543425(P2008−543425)
【出願日】平成18年11月29日(2006.11.29)
【国際出願番号】PCT/US2006/045708
【国際公開番号】WO2007/064717
【国際公開日】平成19年6月7日(2007.6.7)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】