(57)【要約】【課題】【解決手段】  システム及び方法は、堅くサンドボックスされた環境中でリソース使用法を調整させることに関して開示される。スケジューリングインジケータは、マルチプルのアプリケーションが、システムリソースに関するそれら要求を調整するために使用され得る、システムファイル中に残され得る。代替的に、ＩＰループバックは、そうでなければサンドボックスされるアプリケーション間のスケジューリングインジケータを通すために使用され得る。アプリケーションは、開始時刻と、システムクロック信号またはＩＰアドレスのような情報の公の部分に基づいた後続のシステムリソース要求の期間と、を選択する共通のアルゴリズムを使用するシステムリソースの要求をスケジュールし得る。アプリケーションによって利用されている時の合計量は、減少させ得、従って、電力消費、及びネットワークの活動を減少させ得る。
2015529373.tif 000002
【特許請求の範囲】
【請求項１】
第１のアプリケーションによって、公にアクセス可能なファイルに書き込まれたスケジューリングインジケータを第２のアプリケーションによって読むこと、ここにおいて、前記スケジューリングインジケータは、前記第１のアプリケーションによるシステムリソースに関する１つまたは複数の要求を示す、
前記第２のアプリケーションによる前記システムリソースに関する要求をスケジュールすることと、前記第２のアプリケーションによる前記システムリソースに関する前記要求は、前記第１のアプリケーションによる前記システムリソースに関する前記１つまたは複数の要求の少なくとも１つで時間調整される、
前記第２のアプリケーションによる前記システムリソースに関する前記要求を実行すること
を具備する方法。
【請求項２】
前記第２のアプリケーションによる前記システムリソースに関する前記要求は、前記第１のアプリケーションによる前記システムリソースに関する第１の前記１つまたは複数の要求で時間調整される、
請求項１の方法。
【請求項３】
前記第２のアプリケーションによる前記システムリソースに関する前記要求は、前記第１のアプリケーションによる前記システムリソースに関する第２の前記１つまたは複数の要求で時間調整される、
請求項１の方法。
【請求項４】
前記第２のアプリケーションによる前記システムリソースに関する第２の要求は、前記第１のアプリケーションによる前記システムリソースに関する第３の前記１つまたは複数の要求で時間調整される、
請求項３の方法。
【請求項５】
前記第２のアプリケーションによる前記システムリソースに関する前記要求は、前記第１のアプリケーションによる前記システムリソースに関する前記第３の要求で時間調整される、
請求項１の方法。
【請求項６】
時間調整は、同時に発生することを含む、
請求項１の方法。
【請求項７】
時間調整は、実質上同時に生じることを含む、
請求項１の方法。
【請求項８】
時間調整は、異なる時間で生じることを含む、
請求項１の方法。
【請求項９】
時間調整は、共通の周期性で生じることを含む、
請求項８の方法。
【請求項１０】
前記共通の周期性は、前記システムリソースに関する２つまたは複数の要求の各々の周期性の最小公倍数である、
請求項９の方法。
【請求項１１】
時間調整は、連続して生じることを含む、
請求項８の方法。
【請求項１２】
時間調整は、共通の周期性で生じることを含む、
請求項１の方法。
【請求項１３】
前記スケジューリングインジケータは、現存するスケジューリングインジケータの改良である、
請求項１の方法。
【請求項１４】
前記スケジューリングインジケータは、公にアクセス可能なファイルに書き込まれる新しい情報である、
請求項１の方法。
【請求項１５】
更に前記公にアクセス可能なファイルに他のスケジューリングインジケータを書き込むことを具備し、ここにおいて、前記他のスケジューリングインジケータは、前記第２のアプリケーションによる前記システムリソースに関する前記要求のスケジュールを示す、
請求項１の方法。
【請求項１６】
前記第１及び第２のアプリケーションは、前記第１及び第２のアプリケーション間での直接通信を防止するためのサンドボックスである、
請求項１の方法。
【請求項１７】
前記スケジュールすることは、更にオペレーティングシステムによって実行される、
請求項１の方法。
【請求項１８】
システムリソースに関する１つまたは複数の要求を作成するためのスケジュールされた第１のアプリケーションと、
前記第１のアプリケーションによる前記システムリソースに関する前記１つまたは複数の要求の第１のスケジュールを格納するメモリと、
第２のアプリケーションと、
前記メモリから前記第１のスケジュールを読み、前記第２のアプリケーションによる前記システムリソースに関する前記要求が、前記第１のアプリケーションによる前記システムリソースに関する前記１つまたは複数の要求のうち少なくとも１つで時間調整されるように、前記第１のスケジュールに基づいて第２のスケジュールに従った前記第２のアプリケーションによる前記システムリソースに関する要求をスケジュールし、前記メモリに第２のスケジュールを記録する、前記第２のアプリケーションのスケジューリングモジュールと、
を具備するシステム。
【請求項１９】
前記メモリから前記第１のスケジュールを読み、第３のアプリケーションによる前記システムリソースの前記要求が、前記第１のアプリケーションによる前記システムリソースに関する前記１つまたは複数の要求の少なくとも１つで時間調整されるように、少なくとも前記第１のスケジュールに基づいて第３のスケジュールに従った前記第３のアプリケーションによる前記システムリソースの要求をスケジュールし、前記メモリに前記第３のスケジュールを記録する、前記第３のアプリケーションのスケジューリングのモジュールを更に具備する、
請求項１８のシステム。
【請求項２０】
前記第３のアプリケーションの前記スケジューリングモジュールは、更に
前記メモリから前記第１及び第２のスケジュールを読み、
前記第３のアプリケーションによる前記システムリソースの前記要求が、前記第２のアプリケーションによる前記システムリソースに関する前記要求及び前記第１のアプリケーションによる前記システムリソースに関する前記１つまたは複数の要求の少なくとも１つで時間調整されるように、前記第１及び第２のスケジュールに基づいて第３のスケジュールに従った前記第３のアプリケーションによる前記システムリソースの要求をスケジュールし、
前記メモリに前記第３のスケジュールを記録する、
請求項１９のシステム。
【請求項２１】
前記第２のアプリケーションによる前記システムリソースに関する前記要求は、前記第１のスケジュールの未使用のタイムスロット内でスケジュールされる、
請求項１８のシステム。
【請求項２２】
前記システムリソースは、処理リソース、メモリリソース、及びネットワークリソースのから構成される前記グループから選択される、
請求項１８のシステム。
【請求項２３】
前記第１のスケジュールは、公にアクセス可能である、
請求項１８のシステム。
【請求項２４】
前記第１のスケジュールはシステムファイルである、請求項２３のシステム。
【請求項２５】
装置であって、
公にアクセス可能なファイルと、
システムリソースに関する１つまたは複数の要求を作成し、公にアクセス可能であるファイルが存在するかどうか判断し、もしなければ、その後前記公にアクセス可能なファイルを作成し、第１のアプリケーションによって作成された前記システムリソースに関する前記１つまたは複数の要求で前記システムリソースに関するそれらの要求のタイミングを調整するための１つまたは複数の他のアプリケーションによって利用可能なデータを含めるために前記公のアクセス可能なファイルを修正する、前記第１のアプリケーションと、
前記公にアクセス可能なファイルを読み、前記第１のアプリケーションによって作成された前記システムリソースに関する１つまたは複数のうちの少なくとも１つのタイミングで第２のアプリケーションによって作成された前記システムリソースに関する要求の前記タイミングを調整する前記第２のアプリケーションと、前記装置は、前記第１及び第２のアプリケーション間の直接通信を排除する、
ことを具備する装置。
【請求項２６】
前記調整することは、前記第１のアプリケーションによって作成された前記システムリソースに関する前記１つまたは複数の要求の継続時間、及び前記第２のアプリケーションによって作成された前記システムリソースに関する前記要求を考慮する、
請求項２５の装置。
【請求項２７】
前記調整することは、前記第２のアプリケーションによって作成された前記システムリソースに関する前記要求に関係付けられた前記システムリソースの使用の期待される継続時間を考慮する、
請求項２５の装置。
【請求項２８】
互いに通信することからアプリケーションをサンドボックスする、オペレーションシステムの中で動作する複数のアプリケーションのシステムリソースに関する調整要求に関する方法を実行するための処理装置可読命令でエンコードされる、非一時的であって、有体のコンピュータ可読媒体であって、前記前記方法は、
情報の共通の部分にアクセスすることと、
第１及び第２のアプリケーションによって前記システムリソースに関する要求をスケジュールすることと、そこで、前記第１のアプリケーションによる前記システムリソースの少なくとも１つの要求は、前記第２のアプリケーションによる前記システムリソースに関する少なくとも１つの要求で時間調整され、前記スケジュールすることは、情報の前記共通の部分からアルゴリズムを介して導きだされ、
前記第１及び前記第２のアプリケーションによる前記システムリソースに関する前記要求を実行すること
を具備する、
非一時的であって、有体のコンピュータ可読媒体。
【請求項２９】
アクセスすることは、システム放送を受信することを含む、
請求項２８の非一時的であって、有体のコンピュータ可読媒体。
【請求項３０】
前記情報の共通の部分は、システムクロック信号である、
請求項２９の非一時的であって、有体のコンピュータ可読媒体。
【請求項３１】
前記情報の公の部分は、非一時的であって、有体のコンピュータ可読媒体が属し、動作するユーザデバイスのＩＰアドレスである、
請求項２８の非一時的であって、有体のコンピュータ可読媒体。
【請求項３２】
情報の共通の部分をアクセスする手段と、
システムリソースに関してアプリケーションの要求のスケジュールを引き出す手段と、前記要求は、前記システム上の互いからサンドボックスされた２つまたは複数のアプリケーションによって作成される、前記スケジュールは、前記情報の共通の部分から引き出される、
前記スケジュールに従って前記システムリソースに関する前記要求を実行する手段と、
を具備するシステム。
【請求項３３】
前記情報の共通な部分は、前記システム上の互いからサンドボックスされた複数のアプリケーションにアクセス可能である、
請求項３２のシステム。
【請求項３４】
デバイス上の動作するアプリケーション間での直接の通信を排除するユーザデバイス中のコンピュータリソース消費量を減少させることに関する方法であって、前記方法は、
前記第１のアプリケーションによる前記システムリソースに関する１つまたは複数の要求をスケジュールすることと、
前記ユーザデバイスのループバックインターフェースを介して第１のアプリケーションから第２のアプリケーションにスケジューリングインジケータを通過させることと、
前記第２のアプリケーションによる前記システムリソースに関する要求をスケジュールすることと、前記第２のアプリケーションによる前記システムリソースに関する前記要求は、前記第１のアプリケーションによる前記システムリソースに関する１つまたは複数の要求の少なくとも１つで時間調整され、
前記第２のアプリケーションによる前記システムリソースに関する前記要求を実行することと
を具備する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]今示された実施態様は、一般的に、コンピューティングデバイス中の電力節約、及びより具体的には、コンピューティングデバイス内での処理の調整に関する。
【背景技術】
【０００２】
[0002]いくつかのオペレーティングシステムは、セキュリティとシステムの安定性を向上させるためにお互いからアプリケーションを分離(あるいはサンドボックス（sandbox）する。サンドボックスすることは、デーモンのようなバックグラウンドサービスを介して調整された、又は互いに直接の通信をすることからアプリケーションを排除する。サンドボックスすることは、ＩＰループバック通信をも排除し得、そこで、２つの承認するアプリケーションは、通信するためのループバックインターフェースを使用する。サンドボックスすることの他の形態は、さらに共通システムファイルへのアクセスを排除し得る。メトロモードで作動するマイクロソフトのウィンドウズ（登録商標）８のオペレーティングシステムは、サンドボックスすることの上記の形態のうちのいくつかを実行するオペレーティングシステムの１つの例である。
【０００３】
[0003]しかし、アプリケーション間の調整は、ある省電力方法の鍵になり得る。例えば、様々なアプリケーションが、異なる時間にモデムを使用する時、モデムは時間の短期の爆発に関して単に使用中であるにもかかわらず、長い期間に関してアクティブな状態になり得る。アプリケーション間の調整は、より短い時間の期間に関して、及び頻度は低いもののモデムをアクティベートし得、従ってデバイスの電力を節約し得る。例えば、仮にいくつかのアプリケーションが、それらの存在（例えば、他のデバイス上の仲間を捜すピア・ツー・ピア・アプリケーション）を広告するために無線通信を使用する場合、実質上同時に発見メッセージを送信するためのこれらアプリケーションに関して有益であり得る。この方法では、無線通信の必要性は、メッセージが一緒に送信された時に単にアクティベートされ、再度発見メッセージを送信される必要があるまで休み得る。そのような調整がないと、各アプリケーションは、無線通信の頻繁なアクティベーションをもたらす、それ自身のスケジュールに従って送信するために無線通信を利用するだろう。最悪のシナリオでは、無線通信は、電力を落とすか怠けるためのチャンスを持てないであろう。アプリケーションの調整の他の例は、また電力を減少させ、又は他の機能を達成し得る。調整は、実行するために論理処理をより単純にし得る。一例において、多数のアプリケーションは、モバイルデバイスのＬＥＤを制御するために試み得る。仮にＬＥＤに関する要求が実質的に同時に到着する場合、どのアプリケーションが、この制御中での優先度を得るか決めることが単純化される。したがって、要求の調整は、論理的決定を単純化し得る。これは、多くの例のうちのまさに１つで、そこで処理の調整が、論理的決定に関して有益である。
【０００４】
[0004]したがって、サンドボックスすることが、履行されるシステム上でのアプリケーション処理の調整に関する技術において必要性がある。
【発明の概要】
【０００５】
[0005]ここで記述される実施態様は、サンドボックスすることの様々な形態に関わらずマルチプル（multiple）なアプリケーションからのシステムリソース要求の調整を可能とすることにより上述した必要性に取り組む。システム及び方法は、堅くサンドボックスした環境中のアプリケーション間のリソースの利用法を調整することに関して開示される。スケジュールインジケータは、マルチプルなアプリケーションが、システムリソースに関してそれらの要求を調整するために使用し得る、システムファイル中に残され得る。代替的に、ＩＰループバックは、さもなければサンドボックスされるアプリケーション間でスケジューリングインジケータを通すために使用され得る。これらのアプローチのどちらもが可能でない場合、それからアプリケーションは、開始時刻及び任意でシステムクロック信号またはＩＰアドレスのような情報の共通部分に基づいた後続のシステムリソース要求の期間、を選択する共通のアルゴリズムを使用するシステムリソースの要求をスケジュールし得る。これらの方法で、システムリソースが様々なアプリケーションによって利用されている時間の合計量は、減少させ得、従って電力消費、及びネットワークの活動を減少させ得る。
【０００６】
[0006]開示の一観点は、第１のアプリケーションによって、公にアクセス可能なファイルに書き込まれたスケジューリングインジケータを、第２のアプリケーションによって読むこと、ここにおいて、スケジューリングインジケータは、第１のアプリケーションによるシステムリソースに関する１つまたは複数の要求を示す、方法を具備することとして特徴付けられ得る。方法は、第２のアプリケーションによるシステムリソースに関する要求をスケジュールすることをさらに含み、第２のアプリケーションによるシステムリソースに関する要求は、第１のアプリケーションによるシステムリソースに関する１つまたは複数の要求の少なくとも１つで時間調整される。方法は、第２のアプリケーションによるシステムリソースに関する要求を実行することをも含み得る。
【０００７】
[0007]開示の他の観点は、第１のアプリケーション、メモリ、第２のアプリケーション、及びスケジューリングモジュールを有するシステムと特徴付けられる。メモリは、第１のアプリケーションによるシステムリソースに関する１つまたは複数の要求の第１スケジュールを格納し得る。第２のアプリケーションのスケジューリングモジュールは、メモリから第１のスケジュールを読み得、第２のアプリケーションによるシステムリソースに関する要求をスケジュールし得る。第２のアプリケーションによるシステムリソースの要求は、第２のアプリケーションによるシステムリソースに関する要求が、第１のアプリケーションによるシステムリソースに関する１つまたは複数の要求のうちの少なくとも１つで実質的に時間調整されるように、第１のスケジュールに基づいた第２のスケジュールに従ってスケジュールされ得る。最後に、第２のアプリケーションのスケジューリングモジュールは、メモリへ第２のスケジュールを記録し得る。
【０００８】
[0008]しかし、開示の別の観点は、公にアク2セス可能なファイル、第１のアプリケーション及び第２のアプリケーションを有する装置である。第１のアプリケーションは、システムリソースに関する１つまたは複数の要求を作成し得、公にアクセス可能なファイルが存在するかどうかを判断し得、及びもし存在しなければ、それから公にアクセス可能なファイルを作成し得る。第１のアプリケーションは、第１のアプリケーションによって作成されたシステムリソースに関する１つまたは複数の要求のうち少なくとも１つを有するシステムリソースに関するそれらの要求のタイミングを調整するための１つまたは複数の他のアプリケーションによって利用可能なデータを含めるための公にアクセス可能なファイルを更に修正し得る。第２のアプリケーションは、第１のアプリケーションによって作成されたシステムリソースに関する１つまたは複数の要求のうち少なくとも１つのタイミングを有する第２のアプリケーションによって作成されたシステムリソースに関する要求のタイミングを調整し得、また公にアクセス可能なファイルを読み得る。装置は、第１と第２のアプリケーション間の直通通信をも排除し得る。
【０００９】
[0009]しかし、開示の更なるの観点は、互いの通信からアプリケーションをサンドボックスするオペレーションシステム中で動作する多数のアプリケーションのシステムリソースに関する要求を調整するための方法を実行するためにプロセッサに読取可能な指示でエンコードされた、非一時的で、具体的なコンピュータ可読記憶媒体と特徴付けられ得る。方法は、情報の共通の部分にアクセスすることを含み得る。方法は、第１及び第２のアプリケーションによるシステムリソースに関する要求をスケジューリングすることをも含み得、そこで第１のアプリケーションによるシステムリソースの少なくとも１つの要求が、第２のアプリケーションによってシステムリソースに関する少なくとも１つの要求で本質的に時間の調整がされ、スケジューリングすることは、情報の共通の部分からのアルゴリズムを介して生成される。方法は、第１と第２のアプリケーションによるシステムリソースの要求を実行することをも含み得る。
【００１０】
[0010]開示の他の観点は、様々な手段を含むシステムと特徴付けられ得る。システムは、情報の共通の部分にアクセスすることに関する手段を含み得る。システムは、システムリソースに関するアプリケーションの要求のスケジュールを引き出すための手段をも含み得、要求は、システム上で互いからサンドボックスされた２つまたは複数のアプリケーションによって作成される。スケジュールは、情報の共通の部分から生成され得る。さらに、システムは、スケジュールに従ったシステムリソースに関する要求を実行する手段をも含み得る。
【００１１】
[0011]しかし、開示の他の観点は、ユーザ装置上で動作するアプリケーション間の直通通信を排除するユーザ装置中のコンピュータのリソース消費を削減することに関する方法と特徴付けられ得る。方法は、第１のアプリケーションによるシステムリソースに関する１つまたは複数の要求をスケジューリングすることを含み得る。方法は、第１のアプリケーションからユーザ装置のループバックインターフェースを介して第２のアプリケーションに、スケジューリングインジケータを渡すことをも含み得る。方法は、スケジューリングインジケータからの第１のアプリケーションによってシステムリソースに関する１つまたは複数の要求のスケジュールを決定することをも含み得る。方法は、まださらに第２のアプリケーションによるシステムリソースに関する要求をスケジューリングすることをも含みうる。第２のアプリケーションによるシステムリソースに関する要求は、実質的に第１のアプリケーションによるシステムリソースに関する１つまたは複数の要求の少なくとも１つで時間調整し得る。最後に、方法は第２のアプリケーションによるシステムリソースに関する要求を実行することを含み得る。
【図面の簡単な説明】
【００１２】
【図１】[0012]  図１は、システムリソース１０２に関する要求を作成するアプリケーション１０４及び１０６の両方、並びにシステムリソース１０２を有するユーザデバイス１００を示す。
【図２】[0013]  図２は、調整デーモンのような他のアプリケーションから通信を受信できないように、又は互いに通信することができないようにするため、２つまたは複数のサンドボックスされるアプリケーションによってシステムリソースの利用を調整することに関する方法２００を示す。
【図３】[0014]  図３は、システムリソースに関する調整されたアプリケーションの要求をスケジュールすることに関するユーザデバイスを示す。
【図４】[0015]  図４は、システムリソースに関する調整されたアプリケーションの要求をスケジュールすることに関する方法を示す。
【図５】[0016]  図５は、コンピュータシステムの形態例の中でのマシーンの一態様の図による表示を示す。
【発明の詳細な説明】
【００１３】
[0017]言葉「例示的（exemplary）」は、「実例、事例、例証としての役割をする」を意味するために本明細書で使用される。ここで「典型的」であると説明されるあらゆる実施形態は、他の実施形態に対して、必ずしも好ましい又は有利であるようには解釈されない。
【００１４】
[0018]マルチプルのアプリケーションが同じシステムリソース（２〜３例を挙げると、ＣＰＵ、ＧＰＵ、メモリ、ネットワークインターフェース、ブラウザエンジン）に対して競う時、上で留意されるように、そのシステムリソースの非能率的な利用が生じ得る。したがって、アプリケーション間での調整に関しての必要性がある。同時に、あるアプリケーションが存在し得、その特有の機能は、アプリケーション間の調整に依存する。しかし、多くのオペレーションシステムは、アプリケーション間の直接の通信を防止し、そのため現存する方法を介して調整は可能ではない。この開示は、アプリケーションが互いに直接通信をすることを防止された、堅いサンドボックスの環境の中でアプリケーション間の調整を可能にすることに関する方法及びシステムを記載する。
【００１５】
[0019]一形態において、アプリケーションは、デバイス上の全て又はほとんどのアプリケーション（図１及び図２参照）にアクセス可能なシステムファイル中に格納されたスケジューリングインジケータに基づいてシステムリソースの要求をスケジュールし得る。この実施態様は、スケジューリングインジケータが、スケジュールすることに役立つために洗練され且つ複雑な情報を含み得るため、有利である。しかしながら、多くのオペレーションシステムは、システムファイルへの公開アクセス（public access）を排除し始め、それ故にこの方法は、常に利用可能とは限らない。他の実施態様は、システムファイルへの公開アクセスがない時に調整を可能とし、ＩＰループバックプロトコル及びループバックインターフェースを介してアプリケーションにスケジューリングインジケータを分配することである。このアプローチは、複雑で洗練されたスケジューリングインフォメーションを流通させることを可能とするが、再びいくつかのオペレーションシステムが、それらのサンドボックスプロトコルの部分としてＩＰループバックを排除する事実から悩んでいる。仮に、最初の２つのアプローチのどちらも使用することが可能であれば、それから、アプリケーションは、デバイス又はシステムクロック信号（図３、及び４参照）のＩＰアドレスのような情報の共通部分に基づいてシステムリソースの要求をスケジュールし得る。
【００１６】
[0020]図１は、システムリソース１０２に関する要求を作成するアプリケーション１０４及び１０６の両者、並びにシステムリソース１０２を有するユーザデバイス１００を示す。仮に調整できない場合、これら要求は、システムリソース１０２の非効率的な利用を少なくとも引き起こし、又は衝突するかもしれない。システムリソース１０２は、あらゆる１つまたは複数のアプリケーションプロセッサ１０２、メモリ１１２、又はネットワークインターフェース１４２を含み得る。第１のアプリケーション１０４は、第１のアプリケーション１０４が、システムリソース１０２に関する要求を作成することを受け継ごうとするスケジュールを決定するために、第２のアプリケーション１０６のスケジューリングモジュール１１０が読み得る、公開ファイル１３２中にスケジューリングインジケータを残すよう構成されたスケジューリングモジュール１０８を含み得る。第２のアプリケーション１０６のスケジューリングモジュール１１０は、第１のアプリケーション１０４の要求で時間調整をするようなシステムリソース１０２に関する要求を作成するための第２のアプリケーション１０６に関するスケジュールを決定し得る。このように、スケジューリングモジュール１０８、１１０は、２つのアプリケーション１０４、１０６によるシステムリソース１０２の要求を調整するために支援し、これはそうでないと、直接の通信を介して、又はデーモン、又は調整命令を提供する他のバックグラウンドサービスを介して互いに調整できなくなる。要求の時間調整は、システムリソース１０２に、アクティブ状態中を維持する時間の量を減少させることが出来、従って、システムリソース１０２が、他の要求及びアプリケーションの必要なものに注意を向けるためにより多くの利用可能な時間を有しているため、電力消費量を減少させ、ユーザエクスペリエンス（user experience）を向上させることができる。
【００１７】
[0021]ある実施形態中において、オペレーションシステム（ＯＳ）（図示せぬ）は、第２のアプリケーション１０６のスケジュールを履行又は許可し得る。ＯＳは、スケジュールに改良を要求するあるガイドラインを有し得る。例えば、ＯＳは、システムリソース１０２に関する要求を、同じタイミングきっかりに作成させることを許可し得ない。ＯＳは、それゆえ、第２のアプリケーション１０６が時間量によって、後退する（back）システムリソース１０２に関する要求を作成させる時間をシフトさせ、スケジュールを取り得、そのようにして、第１と第２のアプリケーション１０４及び１０６のリクエストが連続して生じる。
【００１８】
[0022]ユーザデバイス１００は、第１及び第２のアプリケーション１０４、１０６が動作し続けるアプリケーションプロセッサ１２０を含み得る。アプリケーションプロセッサ１２０は、キャッシュ１２０を含み得、単一のメモリコンポーネント、又はメモリコンポーネントの分散システムになり得る。例えば、マルチコアアプリケーションプロセッサ１２０の各々のコアは、それ自身のキャッシュコンポーネントを含み得る。
【００１９】
[0023]ユーザデバイス１００は、ランダムアクセスメモリ（ＲＡＭ）１１４、及び任意でキャッシュ１２０、及び任意で仮想メモリ１１９として使用されるハードディスク（ＨＤＤ）１１８の一部を含み得る。ＨＤＤ１１８は、ストレージ１１６の一部となり得る。メモリ１１２は、プライベートファイル１３４、及び公開ファイル１３２を格納し得、そこでプライベートファイルは、アプリケーションの制限されたグループ又はシステムに対してのみ利用可能である。公開ファイル１３２は、第１及び第２のアプリケーション１０４、１０６を含む全部のアプリケーションではないが、ほとんどによってアクセス可能である。これは、第１及び第２のアプリケーション１０４、及び１０６が公開ファイルを読み得、そして、ある実施形態ではそれらはそれに書き込むこともし得ることを意味する。
【００２０】
[0024]ユーザデバイス１００は、更にインターネットのようにネットワーク１３０とユーザデバイス１００との間での通信を可能にするネットワークインターフェース１４２を含み得る。システムリソース１０２、ネットワークインターフェース１４２、アプリケーションプロセッサ１２０、メモリ１１２、及びストレージ１１６は、バス１４０を介して互いに通信し、及びすべてが相互接続されている。
【００２１】
[0025]システムリソース１０２は、電源を切るための、又は休止状態のある種類に入り得るための可能性を有するあらゆるリソースを含み得る。特に、システムリソース１０２は、処理リソース、ネットワークリソース、又はメモリリソースを含み得る。例えば、２、３例を挙げると、処理リソースは、ＣＰＵ、アプリケーションプロセッサ１２０、ベースバンドプロセッサ、又はＧＰＵであり得る。ネットワークリソースは、２つに限られない例を挙げると、ネットワーク接続、又はネットワークインターフェース１４２であり得る。メモリリソースは、キャッシュ１２０、ＲＡＭ１１４、及び／又は仮想メモリ１１９のあらゆる１つまたは複数の含み得る、メモリ１１２であり得る。アプリケーションプロセッサ１２０、メモリ１１２、及びネットワークインターフェース１４２がシステムリソース１０２から分離されて記載されているが、これは単にユーザデバイス１００の視覚化を単純にするためであり、また実際でのシステムリソース１０２があらゆる１つまたは複数のこれらのシステムリソースを含み得ると理解するべきである。
【００２２】
[0026]第２のアプリケーション１０６のスケジューリングモジュール１１０は、公開ファイル１３２を探し得、及び仮に見つからなかったら、それから公開ファイル１３２を生成し得る。仮に、公開ファイル１３２が存在したら、それからスケジューリングモジュール１１０は公開ファイル１３２中のスケジューリングインジケータを読み得る。スケジューリングインジケータは、第１のアプリケーション１０４によって作成されると期待され、又は作成されたシステムリソース１０２に関する要求のスケジュールを含み得る。スケジューリングインジケータは、第１のアプリケーション１０４が、システムリソース１０２のために要求を作成することに関して予約してあるタイムスロットの指示をも含み得る。スケジューリングインジケータは、代替的に、第１のアプリケーション１０４が、後続の要求との間での予期された期間と共にシステムリソース１０２に関する要求を作成した時間になり得る。時間は、計算を単純化するために周期的にアップデートされ得、第２のアプリケーション１０６のスケジューリングモジュール１１０は、システムリソース１０２が、第１のアプリケーション１０４によって作成されたそれらで要求する時間調整の方法を決定するために実行する。
【００２３】
[0027]スケジューリングインジケータを読む際に、スケジューリングモジュール１１０は、第１のアプリケーション１０４によって作成される要求で時間を調整するため、システムリソース１０２に関る要求を作成するための第２のアプリケーション１０６に関するスケジュールを決定し、又は計算し得る。時間調整は、同時に、実質は同時に、又は異なる時間で生じる２つ又は複数の要求を含み得る。仮に異なる時間で生じた場合には、要求間のできるだけ小さな遅延で、２つまたは複数の要求が連続して生じ得る。ある場合には、同じ瞬間で始まらないけども、要求はまさにオーバーラップし得る。いつでも要求は生じ、それらは、共通期間を共有もし得る。ある場合には、これは同じ期間を有する各々の要求を含んでおり、その一方で、他の２つまたは複数の要求では、異なる期間で生じ得、つまり時間調整は、様々な期間の最小公倍数によって、それらが時間を調整されたことを意味する。他の実施形態では、スケジューリングモジュール１１０は、スケジュール中の非一致及び非連続のタイムスロットを選択し得、それはそのようなタイムスロットを選択することに関する明確な理由がある。
【００２４】
[0028]スケジューリングモジュール１１０が、第１のアプリケーション１０４によって使用されるべきそれらに一致するタイムスロットを選択する場合には、第２のアプリケーション１０６はさらに何もせずに、そのスケジュールに従って要求を作成し得る。しかしながら、連続するタイムスロットが選択される時、スケジューリングモジュール１１０は、どのタイムスロットが第２のアプリケーション１０６によって使用された(あるいは、あるだろう)か、を他のアプリケーションに知らせる公開ファイル１３２の中にスケジューリングインジケータを残し得る。これは、公開ファイル１３２に新しいスケジューリングインジケータを追加すること、又は存在するスケジューリングインジケータを修正することを含み得る。
【００２５】
[0029]スケジューリングモジュール１１０は、第２のアプリケーション１０６に関するスケジュールを選択し、ここにおいて、少なくともある要求は、第１のアプリケーション１０４のある要求で時間調整される。一例において、第２のアプリケーション１０６は、調整に拘わらず直ちにシステムリソース１０２の要求を作成し得、それから第２のシステムリソース１０２の要求を時間調整し得る。他の一例において、第２のアプリケーション１０６は、第１のアプリケーション１０４からの要求で時間調整するためにその第１のシステムリソース１０２の要求を遅延させ得る。どのオプションが使用されるかは、第２のアプリケーション１０６の必要条件に左右される。例えば、システムリソース１０２を要求する中の即時の遅延が耐えられない場合には、要求は、すべてのさらなる要求が、第１のアプリケーション１０２のそれで時間調整されるように、第２のサイクル上で生じる遅延で直ちに作成され得る。一実施形態では、論理的決定は、第２のアプリケーション１０６から第１のシステムリソース１０２の要求を遅延させるかどうか、又は直ちに要求を作成し、及び第２の要求を遅延させるべきかどうか、を決定させるために作成され得る。この決定は、仮に要求された遅延が閾値を超えた場合、遅れに関する閾値許容差に基づいて作成され得、それから第２のアプリケーション１０６は、遅延及び調整なしでその第１の要求を作成し得、一方で調整を達成するために第２の要求を遅延させる。もし必要な遅れが閾値を下回る場合、それから第１のサイクルで時間調整が達成されるように、第２のアプリケーション１０６は、その第１のシステムリソース１０２の要求を遅延し得る。
【００２６】
[0030]ユーザ装置１００の実施形態は、第１及び第２のアプリケーション１０４及び１０６の観点からこれまで記述された。しかしながら、当業者は、第２のアプリケーション１０６の動作が、多くのアプリケーションが、一致または連続するシステムリソース１０２の要求を作成するような多くの他のアプリケーションにも適合できることを認識し得る。これらの実施形態は、既によく調整された他の多くのアプリケーションで時間調整し、オンラインで起こる新しいアプリケーションにも適合し、また１つまたは複数の調整されたアプリケーションは、調整を引き伸ばし（pull out）、非調整された方法中で稼働し、又はオフラインに向かう場所にも適合する。
【００２７】
[0031]当業者は、単に単一の公開ファイル１３４が例示されている一方、実際にはたくさんの公開ファイル１３４が問題に直面しそうであることを更に理解するだろう。加えて、コンポーネントは、バス１４０でダイレクトの通信を有するとして例示されているのだが、ある実施形態では、所定のコンポーネントとバス１４０との間のインターフェースコンポーネントになり得る。例えば、メモリコントローラは、メモリ１１２とバス１４０との間のインターフェースとして振る舞い得る。
【００２８】
[0032]ＲＡＭ１１４は、１つまたは複数のハードウェアコンポーネントを表わす。ＨＤＤ１１８は、ちょうど２つの例を挙げると、磁気的に格納されるビットを有するディスクドライブ、又はトランジスタ上のチャージのようなスイッチを介して格納されるビットを有するフラッシュに基づいたドライブのような様々な形をとり得る。
【００２９】
[0033]図２は、調整するデーモンのような他のアプリケーションから通信を受信しないよう、または互いに通信できないようするために２つまたは複数のサンドボックスされたアプリケーションによるシステムリソースの使用法を調整することに関する方法２００を示す。方法２００は、メモリ（例えば、メモリ１１２）中の公開ファイル２０２（例えば、公開ファイル１３２）を探す第１のアプリケーション（例えば、第１のアプリケーション１０４）からはじまる。公開ファイル２０４がない場合には、公開ファイルは２０６で作成され得る。第１のアプリケーションは、システムリソース２１４（例えば、システムリソース１０２）に関して要求を実行し得、それから任意で公開ファイル２１６中のスケジューリングインジケータを残し（leave）得る。代替的には、第１のアプリケーションは公開ファイル２１０中のスケジューリングインジケータをまず残し、それから要求２１４を実行する。スケジューリングインジケータは、第１のアプリケーションによって作成された要求を有するシステムリソースに関するそれらの要求を調整する他のアプリケーションによって使用され得る。
【００３０】
[0034]方法２００は、それから第２のアプリケーション（例えば、第２のアプリケーション１０６）に関して繰り返され得る。第２のアプリケーションは、最初に公開ファイル２０２を探し得、公開ファイル２０４を見つけることで、第２のアプリケーションは第１のアプリケーションによって格納されたスケジューリングインジケータ２０８を読み得る。スケジューリングインジケータに基づいて、第２のアプリケーションは、システムリソースに関する要求を作成するためにタイムスロット、又は１つまたは複数の時間（times）を選択し得る。１つまたは複数の時間は、第１のアプリケーションが同じ要求を作成するだろう時間で時間調整するために選択し得る。要求の調整は、システムリソースに関する第１及び第２のアプリケーションを作成する非調整された要求を有するであろうよりも、システムリソースがより効率的に使用されることを意味する。
【００３１】
[0035]１つまたは複数の時間を選択した後、第２のアプリケーションは、２１４で選択された１つまたは複数の時間で１つまたは複数の要求を実行し得る。任意で、第２のアプリケーションは、要求の実行２１４の後２１６又は前の２１２で公開ファイル中にスケジューリングインジケータを残し得、そこで、スケジューリングインジケータは、第１及び第２のアプリケーションの要求を有するシステムリソースに関するそれらの要求を、更なるアプリケーションに調整できるようにする。第２のアプリケーションに関して、任意に置かれたスケジューリングインジケータの動作２１２、２１６は、この上なく有益であり得、そこで第１及び第２のアプリケーションは、同時に起こるやり方よりもむしろ順次的な時間調整である。これはなぜならば、第１及び第２のアプリケーションが同じ同時に要求を作成すると、それから第１のアプリケーションによってメモリに書き込まれたスケジューリングインジケータが、更なるアプリケーションに第１及び第２のアプリケーションで同時に要求を実行させるために十分に違いない、からである。しかしながら、第１及び第２のアプリケーションが同時に要求を実行する場合には、それから第１及び第２のアプリケーションはスケジューリングインジケータを残すべきであり、又は第２のアプリケーションは、スケジューリングインジケータを更新すべきである。そのため、更なるアプリケーションは、第１及び第２のアプリケーションに関して既に選択されたそれらよりも他のタイムスロット中でそれらの要求をスケジュールし得る。
【００３２】
[0036]作成した公開ファイルの動作２０６が、ハードウェアリソース動作２１４に関する実行要求の前に生じるとして例示されているが、ある実施形態では、作成した公開ファイルの動作２０６が実行の動作２１４の後に生じ得る。
【００３３】
[0037]代替的には、アプリケーションは、情報の共通部分(図４中のブロック４０２)にアクセスし、要求に関する起動時間を決定するためにそれを使用することにより、及び同じ周期性を備えたシステムリソースを要求するコードを有する各アプリケーションにより無意識に調整し得る。情報の共通部分は、例えばＩＰアドレスを含み得る。各々のアプリケーションは、情報の共通の部分（ブロック４０４及び４０６）に基づいた任意の期間及び開始時刻を決定するアルゴリズムを含み得る。例えば、情報の共通の部分が、ＩＰアドレスである場合、アルゴリズムは、ＩＰアドレスに由来するような任意の期間及び開始時刻を引き出し得る。いくつかの実施形態では、所定のライブラリーからの全てのアプリケーションは、情報の共通の部分に由来するような期間及びある開始時刻を有するためにプログラムされ得る。ここで、異なるライブラリーを使用するアプリケーションは、未調整のシステム要求を生成し得るが、所定のライブラリーを使用する少なくともすべてのアプリケーションが調整され得る。一旦、要求のスケジュールが引き出されたならば、システムリソースに関する要求は、スケジュール(ブロック４０８)につき実行され得る。
【００３４】
[0038]別の代替的な実施形態では、アプリケーションは、ユーザ装置１００が典型的には本明細書に開示されたシステム及び方法にかかわらず作り出すシステム放送を使用して調整し得る。例えば、システムクロック信号はシステム放送の一例である。言いかえれば、スケジューリングモジュール１０８、１１０は、システム放送に関してモニターするよう構成され得、またシステムリソース１０２に関する要求のスケジュールを設定するために基準点として放送時間を使用し得るよう構成され得る。各々のスケジューリングモジュール１０８、１１０は、同じ期間を使用するように構成されるが、開始時刻に関する少なくとも基準又は起動時間として放送するシステムを使用するように構成される。例えば、第１及び第２のアプリケーション１０４、１０６が、システム放送から遅れた同じ開始時刻で要求を実行するように、システム放送からのオフセットが含まれ得る。いくつかの具体化では、システム放送は周期的となり得る。
【００３５】
[0039]サンドボックスされたアプリケーションは、互いに直接調整することができないが、アプリケーションはすべて、システム放送中の提供される情報のような、情報の共通の部分にアクセスし得る。例えば、全てのアプリケーションは、システムの全体にわたってクロック信号放送又はデバイスのＩＰアドレス、にアクセスし得る。
【００３６】
[0040]代替的には、デーモンまたは調整のアプリケーションは、スケジュールか開始時刻、及び期間のような調整情報を、殆どのデバイスのＩＰループバック機能を介して他のアプリケーションへ渡し得る。この実施形態中で、第１のアプリケーションは、ユーザ装置のネットワークインターフェースを通して自発的な受取アプリケーションにスケジューリングインジケータを送信する。例えば、データパケットは、デバイスに対する内部にあるＩＰアドレスに送られ得、そのようなデータパケットが、ネットワークインターフェースに通過し、それから受取人アプリケーションに対するデバイスへ戻る道順を決める。
【００３７】
[0041]図２中の方法手順の順序が単なる典型的であることは理解されるに違いなく、また代替的な実施形態では、方法手順は、発明の範囲から外れずに置換され得る。
【００３８】
[0042]図３は、システムリソースに関する調整されたアプリケーションの要求をスケジュールすることに関するユーザ装置を示す。次の説明は、図４で示された方法への括弧でくくられた付記を含むであろう。ユーザ装置３００は、同じシステムリソース３０２にアクセスすることを試みる、第１のアプリケーション３０４、及び第２のアプリケーションの両者を含み得る。この実施形態では、２つの制限しない例を挙げると、両方のアプリケーション３０４及び３０６は、クロック信号、又はユーザ装置３００のＩＰアドレスのような情報３３２の共通の部分にアクセスし得る。情報３３２の共通の部分(ブロック４０２)へのアクセス中で、第１と第２のアプリケーション３０４及び３０６の各々の中のスケジューリングモジュール３０８及び３１０が、システムリソース３０２（ブロック４０６）の要求に関する時間（times）（又はスケジュールを引き出すために二者択一で）を選択するスケジューリングアルゴリズム３３４（ブロック４０４）を実行し得、ここにおいてアルゴリズムは、情報の共通の部分に基づいた時間（times）を引き出す。例えば、スケジューリングアルゴリズム３３４は、ユーザ装置３００のＩＰアドレスを解析し得、また時間と期間へ解析されたＩＰアドレスを変換し得、ここにおいて時間は、第１及び第２のアプリケーション３０４、３０６の各々がシステムリソース３０２にアクセスするためにある第１の時間であり、また期間は、第１及び第２のアプリケーション３０４及び３０６がそのあとにシステムリソース３０２にアクセスするためにある期間である。一旦、スケジュールが決定されれば、アプリケーションプロセッサ３２０は、スケジュールに従って、第１及び第２のアプリケーション３０４及び３０６によって作成されたシステムリソース３０２（ブロック４０８）に関する時間調整の要求を実行し得る。
【００３９】
[0043]情報の共通の部分３３２及びスケジューリングアルゴリズム３３４は、メモリ３１２に格納され得、それは少なくとも下記、キャッシュ３２０、ＲＡＭ３１４又は仮想メモリ３１９の１つまたは複数の一部の中に存在し得る。仮想メモリ３１９は、より望ましいメモリ（例えば、ＲＡＭ３１４）が満杯の時、メモリ３１２の使用のために横に置かれるハードドライブ（ＨＤＤ）３１８の部分になり得る。ＨＤＤ３１８は、記憶装置３１６の部品になり得る。
【００４０】
[0044]いくつかの例では、情報３３２の共通の部分は、ＢＩＯＳの一部として格納され得、したがって、例示されていない記憶装置の一種の中に格納され得る。例えば、ＢＩＯＳは、キャッシュ３２０、ＲＡＭ３１４又は仮想記憶３１９と離れているメモリ３１２上に時々格納される。
【００４１】
[0045]ある場合には、情報の共通の部分３３２は、アプリケーションプロセッサ３２０上に存在するＲＯＭ中に格納するか、あるいはアプリケーションプロセッサ３２０によってアクセス可能になり得る。他の例では、情報３３２の共通の部分は、メモリ中に存在しないが、システムクロック信号のような、ユーザ装置３００を通じて伝播する信号である。いくつかの例では、スケジューリングアルゴリズム３３４は、スケジューリングモジュール３０８、３１０の一部であり得る。他の例では、スケジューリングアルゴリズム３３４は、アプリケーション３０４、３０６を開発するために使用されるＡＰＩの一部となり得る。一実施形態では、情報３３２の共通の部分へのアクセスは、アプリケーション３０４及び３０６が情報３３２の共通の部分を読み得ることを意味する。
【００４２】
[0046]図４は、システムリソースに関する調整されたアプリケーション要求をスケジューリングすることに関する方法を示す。方法４００は、オペレーション４０２にアクセスする際に、情報の共通の部分にアクセスすることを含み得る。その後、２つまたは複数のアプリケーションが、実行スケジューリングアルゴリズムオペレーション４０４中のスケジューリングアルゴリズムを実行し得る。アルゴリズムは、選択オペレーション４０６中のシステムリソースの要求に関する任意の期間及び時間（または、二者択一でスケジュールを引き出す）を選び得る。一旦、時間及び任意の期間が選択されると、又はスケジュールが決定されると、時間調整の要求が、オペレーション４０８中で実行され得る。
【００４３】
[0047]本明細書に記述されたシステムと方法は、本明細書に記述された特定の物理デバイスに加えてコンピュータシステムのようなマシーン中で履行され得る。図５は、本開示の方法論及び／又は観点のあらゆる１つまたは複数をデバイスに実行又は行わせることに関して実行し得る指示のセット内でのコンピュータシステム５００の典型的な形の中のマシーンの一実施形態の図式による表示を示す。図５中のコンポーネントは、単なる例であって、使用あるいは任意のハードウェア、ソフトウェア、埋め込まれたロジックコンポーネント、又は特定の実施形態を履行するコンポーネントそのような２つまたは複数の組み合わせ、の機能性の範囲を制限しない。
【００４４】
[0048]コンピュータシステム５００は、バス５４０を介して、他のコンポーネントと、及び互いに通信する、記憶装置５０８、メモリ５０３、及びプロセッサ５０１を含み得る。バス５４０は、ディスプレイ５３２、１つまたは複数の入力装置５３３（それは、例えばキーパッド、キーボード、マウス、スタイラスなどを含み得る）、１つまたは複数の出力装置５３４、１つまたは複数の記憶装置５３５、及び様々な具体的な記憶媒体５３６、にもリンクし得る。これらの素子はすべて、直接、又は１つまたは複数のインターフェース又はバス５４０へのアダプターを介して接続し得る。例えば、様々な具体的な記憶媒体５３６は、記憶媒体インターフェース５２６を介してバス５４０と接続され得る。コンピュータシステム５００は、１つまたは複数の集積回路（ＩＣ）、プリント回路板（ＰＣＢｓ）、モバイルの携帯型のデバイス（携帯電話またはＰＤＡのような）、ラップトップ又はノート型コンピュータ、分散型計算機システム、計算グリッド又はサーバーを含むが、これに限定されずに、いかなる適切な物理的な形式も有し得る。
【００４５】
[0049]プロセッサ５０１（又は中央処理装置（ＣＰＵ））は、コンピュータアドレス、データ、指示の一時的なローカルストレージ用のキャッシュメモリーユニット５０２を任意で含んでいる。プロセッサ５０１は、コンピュータ読取り可能な指示の実行を助けるように構成される。コンピュータシステム５００は、メモリ５０３、記憶装置５０８、記憶装置５３５及び／又は記憶媒体５３６のような１つまたは複数の具体的なコンピュータ可読記憶媒体で具体化されたソフトウェアを実行するプロセッサ５０１の結果として機能性を提供し得る。コンピュータ可読媒体は、特別の実施形態を履行するソフトウェアを格納し得、プロセッサ５０１はソフトウェアを実行し得る。メモリ５０３は、１つまたは複数の他のコンピュータ可読媒体（大容量記憶装置５３５及び５３６のような）から、又はネットワークインターフェース５２０のような適切なインターフェースを通じて１つまたは複数の他のソースから、ソフトウェアを読み得る。ソフトウェアは、プロセッサ５０１に、記述され、又は本明細書に示された１つまたは複数のステップ、又は１つまたは複数の処理を実行させ得る。そのような処理又はステップを実行することは、メモリ５０３に格納されたデータ構造を定義すること、及びソフトウェアによって指図されるようなデータ構造を修正することを含み得る。
【００４６】
[0050]メモリ５０３は、ランダムアクセスメモリコンポーネント（例えば、ＲＡＭ５４０）（例えば、スタティックＲＡＭ「ＳＲＡＭ」、ダイナミックＲＡＭ「ＤＲＡＭ」など）、読み出し専用コンポーネント（例えば、ＲＯＭ５０５）及びそれらの任意のコンビネーションを含む様々なコンポーネント（例えば、機械可読媒体）を含み得るが、限定はされない。ＲＯＭ５０５は、データと通信しようと動作し得、またプロセッサ５０１に一定方向に指示し得、また、ＲＡＭ５０４は、プロセッサ５０１で双方向に指示し、及び通信しようと動作し得る。ＲＯＭ５０５及びＲＡＭ５４０は、下記に述べたいかなる適切な具体的なコンピュータ可読媒体を含み得る。一例において、スタートアップ期間のように、コンピュータシステム５００内でのエレメント間の情報を転送するために支援する基礎的なルーチンを含む、基本入出力システム５０６（ＢＩＯＳ）は、メモリ５０３中に格納され得る。
【００４７】
[0051]固定された記憶装置５０８は、任意で記憶制御ユニット５０７を通じて、プロセッサ５０１に双方向に接続される。固定された記憶装置５０８は、追加データ記憶装置容量を提供し、本明細書に記述されたあらゆる適切な具体的なコンピュータ可読媒体も含み得る。記憶装置５０８は、オペレーティングシステム５０９、ＥＸＥＣｓ５１０（実行ファイル）、データ５１１、ＡＰＩアプリケーション５１２（アプリケーションプログラム）などを格納するために使用され得る。しばしば、常にではなく、記憶装置５０８は、１次記憶装置（例えば、メモリ５０３）よりも遅い２次記憶装置媒体（ハードディスクのような）である。記憶装置５０８は、光ディスクドライブ、半導体メモリデバイス（例えば、フラッシュベースのシステム）、又は上記のいずれかの組み合わせを含み得る。記憶装置５０８中の情報は、適切な場合に、仮想記憶としてメモリ５０３中に組み入れられ得る。
【００４８】
[0052]一例において、記憶装置５３５は、記憶装置インターフェース５２５を介してコンピュータシステム５００（例えば、外部ポートコネクタ（図示せず）を介して）で移動できるように接続され得る。特に、記憶装置５３５及び関連する機械可読媒体は、コンピュータシステム５００に関して、他のデータ、プログラムモジュール、データ構造、及び／又は機械可読指示の揮発性、及び／又は不揮発性記憶装置を供給し得る。一例において、ソフトウェアは、記憶装置５３５上の機械可読媒体内に、完全、又は部分的に存在し得る。別の例において、ソフトウェアは、プロセッサ５０１内に、完全にあるいは部分的に存在し得る。
【００４９】
[0053]バス５４０は、種々様々のサブシステムを接続する。ここにおいて、適切な場合には、バスへの言及は、共通の機能に役立つ１つまたは複数のデジタル信号線を包含し得る。バス５４０は、様々なバス構造のいずれを使用する、メモリーバス、メモリコントローラ、周辺のバス、ローカルバス、及びその任意の組み合わせを含むが、これらに限定されずに、様々なタイプのバス構造のいずれかであり得る。制限の方法でではなく一例として、そのような構造は、業界標準アーキテクチャ（ＩＳＡ）バス、向上されたＩＳＡ（ＥＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ビデオエレクトロニクス標準組織ローカル（ＶＬＢ）バス、ペリフェラルコンポーネントインターコネクトバス（ＰＣＩ）、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩ−Ｘ）バス、アクセラレイテッドグラフィックポート（ＡＧＰ）バス、ハイパートランスポート（ＨＴＸ）バス、シリアルＡＴＡ（ＳＡＴＡ）バス、及びその任意の組み合わせを含む。
【００５０】
[0054]コンピュータシステム５００は、入力装置５３３をも含み得る。一例において、コンピュータシステム５００のユーザは、入力装置５３３を介してコンピュータシステム５００へコマンド及び／又は他の情報を入力し得る。入力装置５３３の例は、アルファベット数字式の入力装置（例えば、キーボード）、ポインティングデバイス（例えば、マウスかタッチパッド）、タッチパッド、ジョイスティック、ゲームパッド、音声入力デバイス（例えば、マイクロホン、音声応答システムなど）、光学式スキャナ、ビデオ又はスチル画像キャプチャデバイス（例えば、カメラ）、またその任意の組み合わせを含むが制限されない。入力装置５３３は、シリアル、パラレル、ゲームポート、ＵＳＢ、ファイヤーワイヤ、サンダーボルト、又は上記のもののいずれかの組み合わせを含むが、これに限定はされず、様々な入力インターフェース５２３（例えば、入力インターフェース５２３）のうちのいずれかを介してバス５４０に接続され得る。
【００５１】
[0055]特定の実施形態中で、コンピュータシステム５００がネットワーク５３０に接続される時、コンピュータシステム５００は、ネットワーク５３０に接続される、企業システム、及び特にモバイルデバイス、及び他のデバイスと通信し得る。コンピュータシステム５００へ、及びからの、通信は、ネットワークインターフェース５２０を通じて送信され得る。例えば、ネットワークインターフェース５２０は、ネットワーク５３０からの１つまたは複数のパケット（インターネットプロトコル（ＩＰ）パケットのような）の形式で入って来る情報（他のデバイスからのレスポンス又は要求のような）を受信し得、コンピュータシステム５００は、処理に関するメモリ５０３に入って来る情報を格納し得る。コンピュータシステム５００は、出ていく情報（他のデバイスに対するレスポンス又は要求のような）も同様にメモリ５０３中の１つまたは複数のパケットの形式で格納し得、またネットワークインターフェース５２０からネットワーク５３０に伝送される。プロセッサ５０１は、処理に関してメモリ５０３中に格納されたこれらの通信パケットにアクセスし得る。
【００５２】
[0056]ネットワークインターフェース５２０の例は、ネットワークインターフェースカード、モデム、及びその任意の組み合わせを含むが、これらには限定されない。ネットワーク５３０、又はネットワークセグメント５３０の例は、広域ネットワーク（ＷＡＮ）（例えば、インターネット、企業ネットワーク）、ローカル・エリア・ネットワーク（ＬＡＮ）（例えば、オフィス、ビル、キャンパス、又は他の比較的小さな地理的スペースと関連するネットワーク）、電話機回路網、２つの計算するデバイス間での直接の接続、及びそれらのあらゆる組み合わせを含むが、これらには限定されない。ネットワーク５３０のようなネットワークは、通信の有線及び／又は無線のモードを採用し得る。一般に、どんなネットワークトポロジーも使用され得る。
【００５３】
[0057]情報とデータは、ディスプレイ５３２を通じて表示され得る。ディスプレイ５３２の例は、液晶ディスプレイ（ＬＣＤ）、有機液晶ディスプレイ（ＯＬＥＤ）、陰極線管（ＣＲＴ）、プラズマ・ディスプレイ、及びそのあらゆる組み合わせを含むが、これに限定されない。ディスプレイ５３２は、バス５４０を介して入力装置５３３のような他のデバイスと同様に、プロセッサ５０１、メモリ５０３、及び固定記憶装置５０８に接続し得る。ディスプレイ５３２は、ビデオインタフェース５２２を介してバス５４０にリンクされ、またディスプレイ５３２とバス５４０との間のデータ転送は、グラフィックスコントロール５２１を介して制御され得る。
【００５４】
[0058]ディスプレイ５３２に加え、コンピュータシステム５００は、オーディオ・スピーカー、プリンタ及びその任意の組み合わせを含むが、これに限定されずに、これらを含む１つまたは複数の他の周辺の出力装置５３４を含み得る。そのような周辺の出力装置は、出力インターフェース５２４を介してバス５４０に接続され得る。出力インターフェース５２４の例は、シリアルポート、並列接続、ＵＳＢポート、ファイヤーワイヤ−ポート、サンダーボルトポート、及びその任意の組み合わせを含むが、これらに限定されない。
【００５５】
[0059]加えて、又は選択肢として、コンピュータシステム５００は、論理配線接続の結果として機能性を提供し得、又はそうでなければ回路中の具体化され（or otherwise embodied in a circuit）、本明細書で例示し又は記載した１つまたは複数の処理の１つまたは複数のステップ又は１つまたは複数の処理を実行するためのソフトウェアと共に、又は代わりに動作し得る。この開示中でのソフトウェアへの言及は、ロジックを包含し得、またロジックへの言及は、ソフトウェアを包含し得る。さらに、コンピュータ可読媒体への言及は、適切な場合には、実行に関するソフトウェアを格納する回路（ＩＣのような）、実行に関するロジックを具体化する回路、又は両方を包含し得る。本開示は、ハードウェア、ソフトウェア、又は両方のいずれか適切な組み合わせを包含する。
【００５６】
[0060]当業者は、情報と信号とが、多様で異なる技法と技術のいずれかを用いて表され得ることを理解するであろう。例えば、上記の説明を通して参照され得るチップ、シンボル、ビット、信号、情報、コマンド、命令群、及びデータは、電圧、電流、電磁波、磁界あるいは磁気粒子、光学界または光学粒子、あるいはそれら任意の組み合わせによって表わされ得る。
【００５７】
[0061]当業者は、本明細書に開示された実施形態に関連して説明されたアルゴリズムステップ、回路、モジュール、及びさまざまな例示的な論理ブロックが、電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして履行され得ることをさらに理解するであろう。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、さまざまな例示的なコンポーネント、ブロック、モジュール、回路、及びステップが、一般的にそれらの機能の観点から、上で説明された。そのような機能性が、ハードウェアまたはソフトウェアとして履行されるかどうかは、全システムに課される特定のアプリケーション及び設計制約に依存する。当業者は、各特定のアプリケーションに関して様々な方法で、説明された機能を履行し得るが、そのような履行の決定は、本発明の範囲から逸脱を引き起こしていると解釈されるべきでない。
【００５８】
[0062]本明細書に開示された実施形態に関連して説明された、回路、モジュール、及びさまざまな例示的な論理ブロックは、本明細書で説明された機能を実行するように設計された、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他のプログラマブル論理デバイス、離散ゲートまたはトランジスタ論理、離散ハードウェアコンポーネント、またはそれらの任意の組み合わせで実現または実行されることができる。汎用プロセッサは、マイクロプロセッサであり得るが、その代わりに、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。
【００５９】
プロセッサは、例えば、ＤＳＰと１つのマクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つまたは複数のマイクロプロセッサ、又はその他の上記構成の組み合わせといった計算デバイスの組み合わせとしても履行され得る。
【００６０】
[0063]本明細書で開示された実施形態に関連して記述されたアルゴリズムまたは方法のステップは、ハードウェアにおいて、プロセッサによって実施されるソフトウェアモジュールにおいて、あるいはその２つの組み合わせにおいて、直ちに実現されうる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ（登録商標）メモリ、レジスタ、ハードディスク、リムーバルディスク、ＣＤ−ＲＯＭ、または当該技術分野において周知のその他任意の形状の記憶媒体内に存在しうる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替的に、記憶媒体は、プロセッサにとってなくてはならないものとなり得る。プロセッサおよび記憶媒体は、ＡＳＩＣ内に存在しうる。ＡＳＩＣは、ユーザ端末内に存在しうる。代替的に、プロセッサおよび記憶媒体は、ユーザ端末内にディスクリートコンポーネントとして存在しうる。
【００６１】
[0064]当業者が、本発明を実施及び使用することを可能にするために、開示された例の以前の記述が提供される。
【００６２】
これらの実施形態に対する様々な変更は、当業者には容易に明らかであり、また本明細書で定義された包括的な原理は、本開示の精神または範囲から逸脱することなく、他の実施形態に適用されうる。したがって、本発明は、本明細書で示された実施形態に限定されるようには意図されず、本明細書で開示される原理および新規な特徴と一致する最も広い範囲を与えられることとなる。
【図１】
2015529373.tif 000003
【図２】
2015529373.tif 000004
【図３】
2015529373.tif 000005
【図４】
2015529373.tif 000006
【図５】
2015529373.tif 000007
【国際調査報告】
2015529373.tif 000008
2015529373.tif 000009