(57)【要約】  どんな時でもコンピューティング装置上の特定の数のアプリケーションだけがアクティブであり、アクティブでないアプリケーションは中断されている。アプリケーションがいつ中断されるべきか決定するポリシーが適用される。しかし、オペレーティング・システム・コンポーネントは特定のアプリケーションを（例えば、当該アプリケーションによって動作が行われているという理由で）中断の適用対象から除外させることができる。加えて、オペレーティング・システム・コンポーネントは、中断されていたアプリケーションを（例えば、中断されたアプリケーションと通信するよう求める別のアプリケーションの要求を理由として）再開させることもできる。
2014529139.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング装置上で実行されているオペレーティング・システム・コンポーネントから、前記コンピューティング装置上で実行されている複数のアプリケーションのうちの１つのアプリケーションを、前記複数のアプリケーションがポリシーを満たさないことを理由とする中断の適用対象から除外するよう求める要求を受け取るステップと、
前記要求に応じて、前記１つのアプリケーションを前記コンピューティング装置上での中断の適用対象から除外するステップと
を含む方法。
【請求項２】
前記要求は、前記オペレーティング・システム・コンポーネントが、前記１つのアプリケーションは続行を許容されるべき動作を行っていると判定したことに応じて受け取られるものである、請求項１に記載の方法。
【請求項３】
前記適用対象から除外するステップは、前記１つのアプリケーションをある時間にわたって適用対象から除外するステップと、前記時間が経過した後で前記１つのアプリケーションが中断されることを許容するステップとを含む、請求項１に記載の方法。
【請求項４】
前記時間は前記要求の適用除外クラスに依存し、異なる適用除外クラスは異なる時間を有するものである、請求項３に記載の方法。
【請求項５】
イベントの発生に応じて前記１つのアプリケーションが中断されることを許容するステップをさらに含む、請求項１に記載の方法。
【請求項６】
１つもしくは複数のプロセッサと、
前記１つもしくは複数のプロセッサによって実行されると、前記１つもしくは複数のプロセッサに動作を実行させる複数の命令が記憶されている１つもしくは複数のコンピュータ可読媒体であって、前記動作は、
コンピューティング装置上で実行されているオペレーティング・システム・コンポーネントから、コンピューティング装置がアプリケーションのためのユーザインターフェースを表示しなくなったという理由で中断されていた前記アプリケーションの実行を再開するよう求める要求を受け取る動作と、
前記要求に応じて、前記アプリケーションの実行を再開する動作と
を含むものである、前記コンピュータ可読媒体と
を備えるコンピューティング装置。
【請求項７】
前記要求は、前記オペレーティング・システム・コンポーネントが、前記アプリケーションとの通信が求められていると判定したことに応じて受け取られる、請求項６に記載のコンピューティング装置。
【請求項８】
前記動作は、前記要求に応じて、前記アプリケーションをコンピューティング装置上での中断の適用対象から除外する動作をさらに含む、請求項６に記載のコンピューティング装置。
【請求項９】
前記適用対象から除外する動作は、前記オペレーティング・システム・コンポーネントから、前記アプリケーションの実行が再開されるよう要求する理由が存在しなくなったという通知が受け取られるまで、前記アプリケーションを適用対象から除外する動作と、前記通知に応じて前記アプリケーションが中断されることを許容する動作とを含む、請求項８に記載のコンピューティング装置。
【請求項１０】
前記適用対象から除外する動作は、前記アプリケーションをある時間にわたって適用対象から除外する動作と、前記時間が経過した後で前記アプリケーションが中断されることを許容する動作とを含む、請求項８に記載のコンピューティング装置。
【発明の詳細な説明】
【背景技術】
【０００１】
多くのコンピューティング装置は複数のプログラムを同時に実行することができ、あるプログラムはユーザによって使用され、別のプログラムはバックグラウンドで実行され、またはユーザによる使用が可能な状態にある。複数のプログラムを同時に実行することは、通常、ユーザが使用したいプログラムを迅速に切り換えることを可能にするが、特有の問題を伴う。そうした問題の１つは、これら複数のプログラムが、往々にして、ユーザにとってほとんど価値がなく、ユーザによって当分使用されそうにない、バックグラウンドで実行されるプログラムを含むことである。これらのプログラムは、相当な量の（プロセッサ時間、メモリなどといった）リソースを使用する可能性があり、このことは、不必要なエネルギーの使用、および電池駆動のコンピューティング装置での電池寿命の低下をもたらしうる。しかし、複数のプログラムが同時に実行されるのを妨げることは、プログラムを再始動する必要が原因で、ユーザが期待する応答性および機能性を低下させるおそれがある。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
本概要は、以下の「発明を実施するための形態」の項でさらに説明する選択の概念を簡略化した形で提示するためのものである。本概要は、特許請求される対象の重要な特徴または本質的な特徴を特定するためのものではなく、特許請求される対象の範囲を限定するのに使用するためのものでもない。
【課題を解決するための手段】
【０００３】
１つもしくは複数の態様によれば、コンピューティング装置上で実行されている複数のアプリケーションのうちの１つを、それら複数のアプリケーションがポリシーを満たさないことを理由とする中断の適用対象から除外するよう求める要求が受け取られる。要求は、コンピューティング装置上で実行されているオペレーティング・システム・コンポーネントから受け取られる。要求に応じて、この１つのアプリケーションは、コンピューティング装置上での中断の適用対象から除外される。
【０００４】
１つもしくは複数の態様によれば、コンピューティング装置が当該アプリケーションのためのユーザインターフェースを表示しなくなったという理由で中断されていたアプリケーションの実行を再開するよう求める要求が受け取られる。要求は、コンピューティング装置上で実行されているオペレーティング・システム・コンポーネントから受け取られる。要求に応じて、アプリケーションの実行が再開される。
【０００５】
図面全体を通して類似の特徴を指すのに同じ数字が使用される。
【図面の簡単な説明】
【０００６】
【図１】１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するコンピューティング装置の例を示すブロック図である。
【０００７】
【図２】１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するシステムの例を示す図である。
【０００８】
【図３】１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施する装置のためのプロセスの例を示す流れ図である。
【０００９】
【図４】１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施する装置のための別のプロセスの例を示す流れ図である。
【００１０】
【図５】１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するように構成されうるコンピューティング装置の例を示す図である。
【発明を実施するための形態】
【００１１】
本明細書では、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外について論じる。複数のアプリケーションを同時に始動させ、コンピューティング装置のメモリにロードすることができるが、どんな時でもアクティブなのはそれらのうちの特定の数（１つまたは２つ）のアプリケーションだけである。アクティブでないアプリケーションは中断され、中断されるとは、アプリケーションがプロセッサを使用することができないこという。アプリケーションがいつ中断されるべきか決定するポリシーが適用される。しかし、オペレーティング・システム・コンポーネントは特定のアプリケーションを（例えば、当該アプリケーションによって動作が行われているという理由で）中断の適用対象から除外させることができる。加えて、オペレーティング・システム・コンポーネントは、中断されていたアプリケーションを（例えば、中断されたアプリケーションと通信するよう求める別のアプリケーションの要求を理由として）再開させることもできる。
【００１２】
アプリケーションを終了するのではなく中断することにより、不必要なアプリケーションをバックグラウンドで実行することに関する様々な問題が解決される。プログラムを再始動するよりもプログラムを中断しない方が往々にしてより速く、より効率がよいが、プログラムが中断されている間、プログラムは、実行され、エネルギーを消費し、またはユーザが使用中のアプリケーションに干渉するのを妨げられる。しかし、アプリケーションを中断してよいのはいつか、およびアプリケーションが中断されるのではなく終了されるべきなのはいつかの判定に際しての技術的課題が残る。これらの判定は、少なくとも一部は、特定のアプリケーションおよび／またはアプリケーションのクラスについてシステムによって維持されるポリシーを順守し、変更することによって行うことができる。
【００１３】
図１は、１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するコンピューティング装置の例１００を示すブロック図である。コンピューティング装置１００は多種多様な装置とすることができる。例えば、コンピューティング装置１００は、ラップトップまたはノートブックコンピュータ、タブレットまたはノートパッドコンピュータ、デスクトップコンピュータ、サーバコンピュータ、移動局、娯楽器具、表示装置に通信可能に結合されたセット・トップ・ボックス、テレビまたは他の表示装置、セルラまたは他の無線電話機、ゲームコンソール、自動車用コンピュータなどとすることができる。よって、コンピューティング装置１００の範囲は、十分なメモリおよびプロセッサリソースを備えるフルリソース装置（パーソナルコンピュータ、ゲームコンソールなど）から、限られたメモリおよび／または処理リソースだけを備える低リソース装置（従来のセット・トップ・ボックス、手持ち式ゲームコンソールなど）までに及びうる。
【００１４】
コンピューティング装置１００は、オペレーティングシステム１０２と、１つもしくは複数のアプリケーション１０４とを含む。動作中、オペレーティングシステム１０２およびアプリケーション１０４はコンピューティング装置１００上で実行され、オペレーティングシステム１０２がアプリケーション１０４を管理する。アプリケーション１０４の管理は、以下でより詳細に論じるように、１つもしくは複数のアプリケーション１０４を自動的に終了することを含みうる。
【００１５】
オペレーティングシステム１０２は、アプリケーション管理モジュール１１４、システム応答性分析モジュール１１６、アプリケーション存続期間管理モジュール１１８、アプリケーション終了モジュール１２０、ポリシー評価モジュール１２２、およびアプリケーション中断モジュール１２４を含む。モジュール１１４〜１２４はオペレーティングシステム１０２の一部であるものとして図示されているが、代替として、モジュール１１４〜１２４のうちの１つもしくは複数をオペレーティングシステム１０２から分離して実装することもできる。加えて、モジュール１１４〜１２４のうちの１つもしくは複数によって提供される機能を分離して複数のモジュールにすることができること、および／またはモジュール１１４〜１２４のうちの２つもしくはそれ以上によって提供される機能のうちの少なくともいくつかを組み合わせて単一のモジュールにすることができることにも留意すべきである。さらに、モジュール１１４〜１２４が図示されているが、オペレーティングシステム１０２は、様々な追加の機能性を提供する様々な追加のモジュールを含むことができることにも留意すべきである。
【００１６】
本明細書では、オペレーティングシステム１０２の様々なモジュールを、相互に様々な指示または情報を通知し合い、または通信し合うものとして論じる。そのような通知または通信は様々な形を取りうることに留意すべきである。例えば、あるモジュールは別のモジュールのアプリケーション・プログラミング・インターフェース（ＡＰＩ）を呼び出すことができ、あるモジュールは、別のモジュールが受け取るよう登録したイベントを報告することができ、あるモジュールは、別のモジュールがそこからデータまたは情報を取得することのできる位置にデータまたは他の情報を記憶することができ、以下同様である。
【００１７】
アプリケーション管理モジュール１１４は、アクティブなアプリケーションおよび非アクティブなアプリケーションを含めて、その時々にコンピューティング装置１００上でどのアプリケーション１０４が実行されているかモニタし、または別のやり方で認識している。アクティブなアプリケーションとは、現在、コンピューティング装置１００の１つもしくは複数のプロセッサによって実行を予定されているアプリケーションであり、よって、実行のためのプロセッサ時間が割り振られているアプリケーションをいう。非アクティブなアプリケーションとは、現在、コンピューティング装置１００の１つもしくは複数のプロセッサによって実行を予定されていないアプリケーションであり、よって、実行のためのプロセッサ時間が割り振られていないアプリケーションをいう。アプリケーション１０４は、以下でより詳細に論じるように、コンピューティング装置１００のメモリにロードされるが非アクティブであるアプリケーションとすることができる。
【００１８】
またアプリケーション管理モジュール１１４は、その時々にどのアプリケーション１０４が使用されているかもモニタし、または別のやり方で認識している。一般に、アプリケーション１０４が特定の時に使用されているというのは、そのアプリケーションのためのユーザインターフェースがその特定の時にコンピューティング装置１００によって表示されており、または別のやり方で提示されている場合、および／またはコンピューティング装置１００のユーザがその特定の時にそのアプリケーションにユーザ入力を提供している場合である。モジュール１１４は、どのアプリケーション１０４がその時々に使用されているかを多種多様なやり方で判定することができる。例えば、モジュール１１４は、当該アプリケーションがユーザインターフェースを表示するためのウィンドウが、コンピューティング装置１００の一部であり、またはコンピューティング装置１００に結合された表示装置上に現在表示されている場合に、アプリケーション１０４は現在使用されていると判定することができ、当該アプリケーションがユーザインターフェースを表示するためのウィンドウが、コンピューティング装置１００の一部であり、またはコンピューティング装置１００に結合された表示装置上に表示されている最上位または最高レベルのウィンドウである場合に、アプリケーション１０４は現在使用されていると判定することができ、当該アプリケーションがユーザインターフェースを表示するためのウィンドウが、最小化されていない場合に、アプリケーション１０４は現在使用されていると判定することができ、以下同様である。また、特定の時に使用されている別のアプリケーションが当該アプリケーションと通信している場合にも、アプリケーションは特定の時に使用されているということができる。例えば、モジュール１１４は、当該アプリケーション１０４が、コンピューティング装置１００の一部であり、またはコンピューティング装置１００に結合された表示装置上に表示されている最上位または最高レベルのウィンドウであるユーザインターフェースを表示する別のアプリケーション１０４と通信している場合に、アプリケーション１０４は現在使用されていると判定することができる。
【００１９】
１つもしくは複数の実施形態において、オペレーティングシステム１０２は、どんな時でも特定の数のウィンドウ（例えば１つまたは２つ）が表示されることを許容する。アプリケーション１０４は、そうしたウィンドウ内に各アプリケーションのユーザインターフェースを表示し、よって、特定の数のアプリケーション１０４だけがその時々に各アプリケーションのユーザインターフェースを表示することができる。どんな特定の時にも、コンピューティング装置１００の一部であり、またはコンピューティング装置１００に結合された表示装置上にユーザインターフェースを表示しているアプリケーション１０４は、その特定の時にコンピューティング装置１００のユーザによって現在、使用されているアプリケーション１０４であると判定される。また、コンピューティング装置１００の一部であり、またはコンピューティング装置１００に結合された表示装置上にユーザインターフェースを表示していないアプリケーション１０４は、その特定の時にコンピューティング装置１００のユーザによって現在、使用されていないアプリケーション１０４であると判定される。
【００２０】
アプリケーション存続期間管理モジュール１１８は、オペレーティングシステム１０２によって適用されるポリシーを制御してどのアプリケーション１０４を実行することができるか判定する。このポリシーは、その時々にアプリケーション１０４がアクティブであるかそれとも非アクティブであるかをどのように判定すべきか、どのアプリケーション１０４を終了すべきかをどのように決定すべきか、その時々に何個のウィンドウを表示することができるかなどを指示することができる。モジュール１１８は多種多様なやり方でポリシーを獲得することができ、例えば、ポリシーを用いて事前に構成される、（例えば、様々な好みや構成設定によって）コンピューティング装置１００のユーザからポリシーを受け取る、コンピューティング装置１００の別のモジュールから、または別のコンピューティング装置からポリシーを受け取る、ネットワークから（例えば、ネットワークを介して別の装置またはサービスから）ポリシーを受け取る、などである。
【００２１】
ポリシー評価モジュール１２２は、オペレーティングシステム１０２によって適用されたポリシーがアプリケーション１０４によって満たされているかどうか判定する。ポリシー評価モジュール１２２は、アプリケーション管理モジュール１１４と通信して、その時々にどのアプリケーション１０４が使用されているか判定する。この判定およびポリシーに基づき、モジュール１２２は、ポリシーがアプリケーション１０４によって満たされているかどうか判定する。例えば、ポリシーが、使用されていないアプリケーションは非アクティブであると指示している場合であって、コンピューティング装置１００のユーザによって使用されていない１つもしくは複数のアプリケーションが特定の時にアクティブである場合には、モジュール１２２は、ポリシーはその特定の時にアプリケーション１０４によって満たされていないと判定する。
【００２２】
アプリケーション１０４がポリシーを満たさないと判定したことに応じて、ポリシー評価モジュール１２２は、アプリケーション１０４がポリシーを満たすように中断すべき１つもしくは複数のアプリケーション１０４を決定する。アプリケーションを中断するとは、アプリケーションを非アクティブにすることをいう。ポリシー評価モジュール１２２は、どのアプリケーション１０４が使用されているかの判定およびポリシーに基づいて、どの１つもしくは複数のアプリケーション１０４を中断すべきか決定する。例えば、ポリシーが、使用されていないアプリケーションは非アクティブであると指示している場合であって、使用されていない１つもしくは複数のアプリケーションが特定の時にアクティブである場合には、モジュール１２２は、使用されていないがアクティブであるアプリケーション１０４は中断すべき１つもしくは複数のアプリケーション１０４であると判定する。
【００２３】
アプリケーション中断モジュール１２４はポリシー評価モジュール１２２から、中断すべき１つもしくは複数のアプリケーション１０４の指示を受け取る。１つもしくは複数のアプリケーション１０４を中断する指示に応じて、ポリシー中断モジュール１２４は、指示された１つもしくは複数のアプリケーション１０４を中断する。アプリケーションは、そのアプリケーションにそれが中断されるべきであることを通知することによって中断される。アプリケーションは、任意選択で、アプリケーションが中断される前に保存されるべきであるとみなすデータおよび／または状態情報を保存するための時間（１秒間、４秒間など）を与えられる。アプリケーションはデータおよび／または状態情報を不揮発性の、または他の永続的な記憶装置に記憶し、データおよび／または状態情報が（たとえアプリケーションが終了されたとしても）後で取得されることを可能にする。アプリケーションを中断するとは、アプリケーションをアクティブ状態から非アクティブ状態に変更することをいう。非アクティブなアプリケーション（中断されたアプリケーションともいう）は、前述のようにコンピューティング装置１００のプロセッサによって実行されない。アプリケーションは異なるやり方で、例えば、アプリケーションを中断するためのオペレーティングシステム１０２のＡＰＩを呼び出すことによって中断することもできる。
【００２４】
アプリケーションは、一度中断されて、後でアクティブになることができることに留意すべきである。例えば、ユーザから、ユーザがアプリケーションを使用したいことを指示するユーザ入力が受け取られることもありうる。アプリケーションが非アクティブである場合、アプリケーションは、アプリケーションを使用するよう求めるユーザ要求に応じてアクティブとされ、アプリケーションはコンピューティング装置１００の１つもしくは複数のプロセッサによって実行される。中断されたアプリケーションをアクティブなアプリケーションにすることを、アプリケーションを再開するともいう。再度アクティブになると、アプリケーションは実行を再開し、保存された状態をアプリケーションの必要に応じて復元する。
【００２５】
システム応答性分析モジュール１１６は、メモリ使用に関する様々なメトリックのうちの１つもしくは複数を使用して、１つもしくは複数のアプリケーション１０４を終了すべきかどうか判定する。例えば、システム応答性分析モジュール１１６は、１つもしくは複数のアプリケーション１０４を終了すべきであることを、アプリケーション１０４に割り振られたメモリの量を指すメモリ・ロード・メトリック、その時々に利用可能な物理メモリの量を指す利用可能な物理メモリメトリック、ページが記憶されている記憶装置上の利用可能な記憶空間の量を指す利用可能なページファイル空間メトリック、オペレーティングシステム１０２のメモリマネージャによって維持されるスタンバイリスト上のページの平均存続期間を指すスタンバイリスト上の平均存続期間メトリックなどに基づいて判定することができる。システム応答性分析モジュール１１６は、１つもしくは複数のアプリケーション１０４を終了すべきであると判定したことに応じて、アプリケーション終了モジュール１２０に、１つもしくは複数のアプリケーション１０４を終了するよう通知する。
【００２６】
アプリケーション終了モジュール１２０は、１つもしくは複数のアプリケーション１０４を終了するよう求めるシステム応答性分析モジュール１１６からの通知に応じて、終了すべき１つもしくは複数のアプリケーション１０４を決定する。アプリケーションは異なるやり方で、例えば、アプリケーションを終了するためのオペレーティングシステム１０２のＡＰＩを呼び出すことによって終了することもできる。１つもしくは複数の実施形態において、モジュール１２０は、中断されていた１つもしくは複数のアプリケーション１０４を終了することを選択し、選択した１つもしくは複数のアプリケーション１０４を終了する。アプリケーション終了モジュール１２０は、どの特定のアプリケーション１０４を終了すべきかを様々なやり方で、例えば、アプリケーション１０４の各々がどのくらい前に使用されたか、アプリケーション１０４の各々がどれほどの頻度で使用されるか、アプリケーション１０４によって使用されるメモリの量などに基づいて決定することができる。
【００２７】
あるいは、アプリケーションを終了するのではなく、アプリケーション終了モジュール１２０はアプリケーションを１次メモリからハードディスクやフラッシュ記憶デバイスといった２次メモリに移動することもできる。モジュール１２０は、どの特定のアプリケーション１０４を移動すべきかを、前述のどの特定のアプリケーション１０４を終了すべきかの決定と同様に様々なやり方で決定することができる。アプリケーション１０４は、例えば、アプリケーションを移動するためのオペレーティングシステム１０２のＡＰＩを呼び出すことによって、アプリケーションによって使用されるメモリのページを２次記憶装置にコピーすることによってなど、様々なやり方で移動することができる。
【００２８】
アプリケーション存続期間管理モジュール１１８は、アプリケーション１０４を中断の適用対象から除外するよう求めるオペレーティングシステム１０２の別のモジュールまたはコンポーネントからの要求を受け取ることもできる。そのような要求は、例えば、アプリケーション１０４によって行われているまだ終わっていない動作（例えば、オーディオコンテンツを再生している、文書を印刷しているなど）を認識しているオペレーティングシステム１０２のモジュールまたはコンポーネントによって出される。特定のアプリケーションを中断の適用対象から除外するよう求める要求に応じて、アプリケーション存続期間管理モジュール１１８はポリシー評価モジュール１２２に、どの１つもしくは複数のアプリケーション１０４を中断すべきか決定する時に、その特定のアプリケーションが中断されるべきでないことを通知する。アプリケーションを中断の適用対象から除外するとは、アプリケーションが中断されるのを妨げることをいう。すなわち、そのアプリケーションが、そうでなければ（アプリケーションを中断の適用対象から除外するよう求める要求がなければ）中断されたはずである場合に、アプリケーションを中断の適用対象から除外するよう求める要求は、アプリケーションが中断されるのを妨げる。
【００２９】
アプリケーション存続期間管理モジュール１１８は、中断されたアプリケーション１０４の実行を再開するよう求めるオペレーティングシステム１０２の別のモジュールまたはコンポーネントからの要求を受け取ることもできる。そのような要求は、例えば、中断されたアプリケーションと通信することを求めるアプリケーション１０４を認識しているオペレーティングシステム１０２のモジュールまたはコンポーネントによって出される。中断されたアプリケーションの実行を再開するよう求める要求に応じて、アプリケーション存続期間管理モジュール１１８はアプリケーションを再開する。アプリケーションは異なるやり方で、例えば、アプリケーションを再開するためのオペレーティングシステム１０２のＡＰＩを呼び出すことによって再開することもできる。アプリケーション存続期間管理モジュール１１８は、（例えば、アプリケーションを再始動するためのオペレーティングシステム１０２のＡＰＩを呼び出すことによって）終了したアプリケーションを再始動させ、次いでアプリケーションを再開することによって、終了したアプリケーションを再開することもできる。
【００３０】
図２に、１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するシステムの例２００を示す。システム２００は、例えば、図１のコンピューティング装置１００によって実施することができる。システム２００はアプリケーション存続期間管理モジュール２０２を含み、これは図１のアプリケーション存続期間管理モジュール１１８とすることができる。またシステム２００は、通信層２０４、１つもしくは複数のオペレーティングシステム（ＯＳ）コンポーネント２０６、１つもしくは複数のオペレーティングシステム（ＯＳ）コンポーネント２０８、および１つもしくは複数のアプリケーション２１０も含む。アプリケーション２１０は、例えば、図１のアプリケーション１０４とすることができる。ＯＳコンポーネント２０６、２０８は、オペレーティングシステム（図１のオペレーティングシステム１０２など）の様々なコンポーネントまたはモジュールである。通信層２０４は、オペレーティング・システム・コンポーネント２０６、２０８がアプリケーション存続期間管理モジュール２０２に要求を伝えることを可能にする。これらの要求は、中断されたアプリケーションの実行を再開するよう求める要求およびアプリケーションを中断の適用対象から除外するよう求める要求を含む。通信層２０４は存続期間インターフェースＡＰＩ２１２または非同期通信機構２１４として図示されているが、他の通信機構を代替として使用することもできる。通信層２０４は通常、オペレーティング・システム・コンポーネント２０６、２０８には見えるが、アプリケーション２１０には見えないことに留意すべきである。よって、オペレーティング・システム・コンポーネント２０６、２０８は、アプリケーション２１０の要求または動作に基づいて通信層２０４を介してモジュール２０２に要求を出すことができるが、アプリケーション２１０自体は、通信層２０４を介してモジュール２０２と直接通信することができない。
【００３１】
あるＯＳコンポーネント２０６は存続期間インターフェースＡＰＩ２１２を使用してモジュール２０２と通信し、別のＯＳコンポーネント２０８は非同期通信機構２１４を使用してモジュール２０２と通信する。ＯＳコンポーネントがモジュール２０２とどのように通信するかは様々なやり方で決定することができ、ＯＳコンポーネントの開発者の側の設計上の選択とすることができる。１つもしくは複数の実施形態において、オペレーティング・システム・コンポーネントがモジュール２０２と通信するやり方は、オペレーティング・システム・コンポーネントがユーザモードで実行されているか、それともカーネルモードで実行されているかに基づいて決定される。例えば、オペレーティング・システム・コンポーネントがカーネルモードで実行されている場合には、オペレーティング・システム・コンポーネントは非同期通信機構２１４を使用してモジュール２０２と通信し、オペレーティング・システム・コンポーネントがユーザモードで実行されている場合には、オペレーティング・システム・コンポーネントは存続期間インターフェースＡＰＩ２１２を使用してモジュール２０２と通信する。
【００３２】
存続期間インターフェースＡＰＩ２１２は、オペレーティング・システム・コンポーネント２０６が呼び出すことのできる１つもしくは複数のメソッドを示す。ＡＰＩ２１２の１メソッドは、オペレーティング・システム・コンポーネント２０６によって呼び出され、アプリケーション２１０の識別子をパラメータとして提供することができる。アプリケーション２１０が相互に区別されることを可能にするアプリケーション２１０の多種多様な識別子を使用することができる。例えば、アプリケーション２１０の識別子は、そのアプリケーションを含むパッケージの識別子とすることができる（アプリケーションの名前、パッケージの発行者の名前、アプリケーションを動作するように設計するためのアーキテクチャの指示、パッケージのバージョン番号、および／またはパッケージの様々な他の特性の組み合わせなど）。またオペレーティング・システム・コンポーネント２０６は、適用除外クラスまたは再開クラスをパラメータとして提供することもできる。適用除外クラスまたは再開クラスは、オペレーティング・システム・コンポーネント２０６が要求を出す理由を指示し、後述するように多種多様なやり方で使用することができる。適用除外クラスまたは再開クラスは、ＡＰＩ２１２のメソッドを呼び出す時のパラメータとして識別することができ、あるいは、呼び出されるメソッドにおいて固有のものとすることもできる（例えば、適用除外クラスおよび／または再開クラスによって異なるメソッドを示すことができる）。要求の種類（中断されたアプリケーションの実行を再開するよう求める要求やアプリケーションを中断の適用対象から除外するよう求める要求など）は、ＡＰＩ２１２のメソッドを呼び出す時のパラメータとして識別することができ、あるいは、要求は、呼び出されるメソッドにおいて固有のものとすることもできる（例えば、要求の種類によって異なるメソッドを示すことができる）。
【００３３】
非同期通信機構２１４は、様々なオペレーティング・システム・コンポーネント２０８から通知を受け取ることのできるモジュールまたはコンポーネントを含む。他のコンポーネントまたはモジュール（アプリケーション存続期間管理モジュール２０２など）はこれらの通知を利用することができる。よって、オペレーティング・システム・コンポーネント２０８が機構２１４に通知を提供する度に、機構２１４はその通知をモジュール２０２に提供する。この通知は、（前述のように様々な形を取ることのできる）アプリケーション２１０の識別子、要求の適用除外クラスまたは再開クラスの指示、および／または要求の種類の指示（例えば、要求は、中断されたアプリケーションの実行を再開するよう求める要求か、それともアプリケーションを中断の適用対象から除外するよう求める要求かなど）といった様々な情報を含むことができる。
【００３４】
アプリケーションを中断の適用対象から除外するよう求める要求に応じて、アプリケーション存続期間管理モジュール２０２は、要求を出しているオペレーティング・システム・コンポーネント２０６、２０８が適切な理由でそうしているものであると信頼する。よって、モジュール２０２は、評価モジュールに、どの１つもしくは複数のアプリケーション１０４を中断すべきか決定する時に、識別されたアプリケーションは中断されるべきではないことを通知することによって、アプリケーションが中断されるのを妨げる。
【００３５】
オペレーティング・システム・コンポーネント２０６、２０８は、様々な理由でアプリケーションが中断の適用対象から除外されるよう要求することができ、様々なオペレーティング・システム・コンポーネント２０６、２０８が様々な理由でアプリケーションが中断されるよう要求しうる。通常、オペレーティング・システム・コンポーネント２０６、２０８は、アプリケーション２１０は続行を許容されるべきであるが、アプリケーション２１０が中断された場合には続行しなくなるはずの動作を行っているとオペレーティング・システム・コンポーネント２０６、２０８が判定したことに応じて、アプリケーション２１０が中断の適用対象から除外されるよう要求する。例えば、アプリケーション２１０は、文書を印刷するためのデータをページごとに提供することを伴う印刷動作を行っているものとすることができるはずである。オペレーティング・システム・コンポーネント２０６、２０８（印刷スプーラなど）は、文書の印刷が完了する前にアプリケーション２１０が中断されることになった場合には、文書の印刷は完了しなくなるはずであるため、アプリケーション２１０が中断の適用対象から除外されるよう要求する。別の例として、アプリケーション２１０は、オーディオコンテンツ（歌や歌のプレイリストなど）を再生しているオーディオ再生アプリケーションとすることもできるはずである。オペレーティング・システム・コンポーネント２０６、２０８（オーディオＡＰＩなど）は、アプリケーション２１０が中断されることになった場合には、オーディオコンテンツの再生が停止するはずであるために、アプリケーション２１０が中断の適用対象から除外されるよう要求する。
【００３６】
さらに別の例として、アプリケーション２１０は、デバイスドライバであるオペレーティング・システム・コンポーネント２０６、２０８を介して装置（例えば、カメラ、ネットワーク・インターフェース・カード、無線装置など）と通信しているものとすることもできるはずである。オペレーティング・システム・コンポーネント２０６、２０８は、通信（例えば、アプリケーション２１０と装置との間の入力／出力（入出力））が少なくとも閾値のレートで行われている場合には、アプリケーションが装置をアクティブに使用していると判定し、アプリケーションが装置をアクティブに使用している場合には、アプリケーション２１０が中断の適用対象から除外されるよう要求する。さらに別の例では、アプリケーション２１０は、共用動作の一部として（例えば明確に定義されたインターフェースを介して）別のアプリケーションと情報（例えば写真、音楽、ビデオなど）を共用しているものとすることができる。共用動作が行われている場合、（例えば、共用動作を円滑化し、または別のやり方で認識している）オペレーティング・システム・コンポーネント２０６、２０８は、共用動作が完了されうるように、アプリケーション２１０が中断の適用対象から除外されるよう要求する。また、様々な他の動作も、オペレーティング・システム・コンポーネントに、アプリケーションが中断の適用対象から除外されるよう要求させることができるはずであり、例えば、アプリケーションが（例えば、ローカル・エリア・ネットワーク上、インターネット上などで）別の装置に、かつ／または別の装置からデータを転送している、アプリケーションがあるデバイスユーティリティ動作（ハードドライブをバックアップする、マルウェアの有無を検査するなど）を行っているなどの動作である。
【００３７】
また、アプリケーションが中断の適用対象から除外されるよう求める要求は、適用除外クラスを指示することもできる。多種多様な適用除外クラスを使用することができ、各適用除外クラスは、アプリケーションが中断の適用対象から除外されるよう要求されている理由を特定する。例えば、適用除外クラスは、印刷、オーディオ、装置入出力などとすることができるはずである。
【００３８】
あるいは、適用除外クラスを指定するのではなく、アプリケーション存続期間管理モジュール２０２は、アプリケーションが中断の適用対象から除外されるよう要求されている理由を推論することもできる。例えば、各オペレーティング・システム・コンポーネント２０６、２０８には、アプリケーションが中断の適用対象から除外されるよう要求する特定の理由がありうる。よって、モジュール２０２は、要求を受け取った相手先のオペレーティング・システム・コンポーネント２０６、２０８に基づいて、アプリケーションが中断の適用対象から除外されるよう要求される理由を特定することができる。
【００３９】
アプリケーション存続期間管理モジュール２０２は、アプリケーションを中断の適用対象から無期限に除外することもでき、あるいは、あるイベントが発生するまで、またはある時間が経過するまで除外することもできる。例えば、そのようなイベントは、アプリケーションが中断の適用対象から除外されるよう要求したオペレーティング・システム・コンポーネントが、（例えば、文書が印刷を完了したため、ユーザが少なくとも閾値時間（例えば２分間）にわたってオーディオの再生を休止したため、などの理由で）アプリケーションが中断の適用対象から除外されなくなった時にモジュール２０２に通知することとすることができる。別の例として、モジュール２０２は、特定の時間（例えば、５分間、１時間など）にわたってアプリケーションを中断の適用対象から除外することができる。この特定の時間は様々なやり方で決定することができ、例えば、アプリケーションが中断の適用対象から除外されるよう要求されている理由に基づいて（例えば、オペレーティング・システム・コンポーネントによって提供される要求の適用除外クラスによって異なる特定の時間を有しうるなど）、モジュール２０２のデフォルト構成に基づいて、モジュール２０２からの要求のパラメータとして受け取られる特定の時間の指示に基づいてなどである。この特定の時間は、任意選択で、オペレーティング・システム・コンポーネントが、例えば、アプリケーションを中断の適用対象から除外するよう求める１つもしくは複数の追加の要求を出すことによって延長することもできるはずである。そのようなイベントまたは経過した時間に応じて、アプリケーションは中断の適用対象から除外されなくなる。したがって、モジュール２０２はポリシー評価モジュール（図１のポリシー評価モジュール１２２など）を呼び出してアプリケーションを中断し、または前述のようにオペレーティングシステムによって適用されたポリシーがアプリケーション２１０によって満たされているかどうか判定する。
【００４０】
アプリケーションが中断の適用対象から除外されるよう要求される理由（例えば、オペレーティング・システム・コンポーネントによって提供された要求の適用除外クラス）は、他のやり方で使用することもできる。例えば、アプリケーション存続期間管理モジュール２０２は、どのモジュール２０６、２０８が、アプリケーションが中断の適用対象から除外されるよう要求したか、それらのオペレーティング・システム・コンポーネントが、アプリケーションが中断の適用対象から除外されるよう要求した理由、および／またはどのアプリケーションが中断の適用対象から除外されたかの記録を維持する機能を含む（またはその機能を含む別のモジュールを呼び出す）ことができる。この記録は、アプリケーションを中断の適用対象から除外するよう求める要求の悪用の可能性を特定するため、アプリケーションを中断の適用対象から除外するよう求める要求が受け取られる頻度を特定するためなどといった様々なやり方で使用することができる。
【００４１】
中断されたアプリケーションの実行を再開するよう求める要求に応じて、アプリケーション存続期間管理モジュール２０２は、要求しているオペレーティング・システム・コンポーネント２０６、２０８が適切な理由でそうしているものであると信頼する。よって、モジュール２０２は、例えば、中断されたアプリケーションを再開するためのオペレーティングシステム１０２のＡＰＩを呼び出すことによって、中断されたアプリケーションを再開する。
【００４２】
オペレーティング・システム・コンポーネント２０６、２０８は、様々な理由でアプリケーションが再開されるよう要求することができ、様々なオペレーティング・システム・コンポーネント２０６、２０８が様々な理由でアプリケーションが再開されるよう要求しうる。通常、オペレーティング・システム・コンポーネント２０６、２０８は、中断されたアプリケーションと通信するよう求める別のアプリケーション、コンポーネント、またはモジュールの求めに応じて、アプリケーションが再開されるよう要求する。例えば、アプリケーション２１０は、様々な従来のプロセス間通信技術のいずれかを使用して別のアプリケーション２１０と通信するよう求める場合がある。オペレーティング・システム・コンポーネント２０６、２０８は、（中断されたアプリケーションが実行を予定されていないために）中断されている場合に別のアプリケーション２１０が通信することができないという理由で別のアプリケーション２１０が再開されるよう要求する。別の例として、アプリケーション２１０は、別のアプリケーション２１０によって受け取られたユーザ要求（別のアプリケーション２１０からコピーされたデータをペーストするよう求める要求など）に応じて別のアプリケーション２１０からデータを獲得するよう求める場合もある。オペレーティング・システム・コンポーネント２０６、２０８は、別のアプリケーション２１０が中断されている場合に別のアプリケーション２１０からデータを獲得することができないという理由で別のアプリケーションが再開されるよう要求する。
【００４３】
別の例として、オペレーティング・システム・コンポーネント２０６、２０８自体が、（例えば、中断されたアプリケーション内の何かを列挙するため、あるいは、中断されたアプリケーションから情報またはデータを獲得するために）中断されたアプリケーションと通信するよう求める場合もある。オペレーティング・システム・コンポーネントは、中断されている場合に別のアプリケーション２１０が通信することができないという理由でアプリケーション２１０が再開されるよう要求する。これらは、中断されたアプリケーション２１０が再開されるようオペレーティング・システム・コンポーネント２０６、２０８が要求しうる理由の例であり、オペレーティング・システム・コンポーネント２０６、２０８は、様々な他の理由のいずれかでアプリケーション２１０が再開されるよう要求しうることに留意すべきである。
【００４４】
また、中断されたアプリケーションの実行を再開するよう求める要求は要求の再開クラスも指示することができる。多種多様な再開クラスを使用することができ、各再開クラスは、アプリケーションが再開されるよう要求されている理由を特定する。例えば、再開クラスは、プロセス間通信、ユーザ要求、オペレーティング・システム・コンポーネント要求などとすることができるはずである。
【００４５】
あるいは、再開クラスを指定するのではなく、アプリケーション存続期間管理モジュール２０２は、アプリケーションが再開されるよう要求されている理由を推論することもできる。例えば、各オペレーティング・システム・コンポーネント２０６、２０８には、アプリケーションが再開されるよう要求する特定の理由がありうる。よって、モジュール２０２は、要求を受け取った相手先のオペレーティング・システム・コンポーネント２０６、２０８に基づいて、アプリケーションが再開されるよう要求される理由を特定することができる。
【００４６】
アプリケーションが再開された後で、アプリケーション存続期間管理モジュール２０２は、アプリケーションを中断の適用対象から除外する。この適用除外は、中断されたアプリケーションの実行を再開するよう求める要求に応じて行われることを除いて、上記の考察と同様である。アプリケーションは、上記の考察と同様に、中断の適用対象から無期限に除外することもでき、あるいは、あるイベントが発生するまで、またはある時間が経過するまで除外することもできる。例えば、アプリケーション存続期間管理モジュール２０２は、特定の時間（２秒間、１０秒間など）にわたってアプリケーションを中断の適用対象から除外することができ、特定の時間は、アプリケーションが再開されるよう要求されている理由に基づくものとすることができる。別の例として、アプリケーション存続期間管理モジュール２０２は、オペレーティング・システム・コンポーネントから、アプリケーションが再開されるよう要求する理由が存在しなくなったという通知が受け取られるまで、アプリケーションを中断の適用対象から除外することもできる。そうした通知に応じて、モジュール２０２はポリシー評価モジュール（図１のポリシー評価モジュール１２２など）を呼び出してアプリケーションを中断し、または前述のようにオペレーティングシステムによって適用されたポリシーがアプリケーション２１０によって満たされているかどうか判定する。
【００４７】
１つもしくは複数の実施形態において、中断されたアプリケーションの実行を再開するよう要求しているオペレーティング・システム・コンポーネント２０６、２０８は、要求の提出をトリガする動作（オペレーティング・システム・コンポーネントに中断されたアプリケーションの実行を再開するよう求める要求を出させる動作）をいくつのアプリケーション（またはオペレーティング・システム・コンポーネント）が要求しているかのカウンタまたは他の記録を維持する。様々なカウンタまたは他の記録を様々な理由で維持することができる。例えば、３つの異なるアプリケーションがプロセス間通信技術を使用して中断されたアプリケーションと通信するよう要求する場合には、オペレーティング・システム・コンポーネント２０６、２０８は、３つのアプリケーションが、要求の提出をトリガするはずの動作を要求していることを指示するカウンタまたは他の記録を維持する。追加のアプリケーションがプロセス間通信技術を使用して中断されたアプリケーションと通信するよう要求する場合には、４つのアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するようにカウンタが増分され、または他の記録が更新される。あるいは、アプリケーションのうちの１つが（中断されたアプリケーションが再開された後で）そのプロセス間通信を完了した場合には、２つのアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するようにカウンタが減分され、または他の記録が更新される。
【００４８】
カウンタまたは他の記録が、要求の提出をトリガするはずの動作を要求しているアプリケーションが０である、から１つのアプリケーションが要求の提出をトリガするはずの動作を要求している、に変化する時には、オペレーティング・システム・コンポーネントは、中断されたアプリケーションの実行を再開するよう要求する。複数のアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するカウンタまたは他の記録の追加の変更は、要求がすでに出されているため、オペレーティング・システム・コンポーネントに中断されたアプリケーションの実行を再開するよう要求しない。カウンタまたは他の記録が、１つのアプリケーションが要求の提出をトリガするはずの動作を要求している、から要求の提出をトリガするはずの動作を要求しているアプリケーションが０である、に変化する時には、オペレーティング・システム・コンポーネントは、アプリケーション存続期間管理モジュール２０２に、オペレーティングシステムによって適用されたポリシーがアプリケーションによって満たされているかどうかポリシー評価モジュールに判定させるよう通知する。再開されたアプリケーションが（例えば、別のＯＳコンポーネント２０６、２０８からの要求を理由として）中断の適用対象から除外されなくなった場合には、再開されたアプリケーションをポリシーに従って中断することができる。さらに複数のアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するカウンタまたは他の記録の追加の変更は、オペレーティング・システム・コンポーネントがモジュール２０２に、オペレーティングシステムによって起用されたポリシーがアプリケーションによって満たされているかどうかポリシー評価モジュールに判定させるよう通知させる原因にならない。というのは、少なくとも１つのアプリケーションが、中断されたアプリケーションの実行を再開するよう求める要求の提出をトリガするはずの動作を依然として要求しているからである。
【００４９】
図３は、１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施する装置のためのプロセスの例３００を示す流れ図である。プロセス３００は、図１の装置１００といった装置によって実行され、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせとして実装することができる。プロセス３００は１組の動作として示されており、様々な動作を実行する際に図示の順序だけに限定されない。プロセス３００は、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するためのプロセスの例であり、本明細書には異なる図を参照した、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外の実施のさらに別の考察が含まれている。
【００５０】
プロセス３００では、アプリケーションを中断の適用対象から除外するよう求める要求が受け取られる（動作３０２）。要求はオペレーティング・システム・コンポーネントから受け取られ、よって前述のように信頼される。
【００５１】
動作３０２で受け取られた要求に応じて、アプリケーションは中断の適用対象から除外される（動作３０４）。要求を適用対象から除外することによって、たとえそのアプリケーションが、通常は、前述のようにコンピューティング装置上で実行されている１つもしくは複数のアプリケーションがポリシーを満たさないという理由で中断されえた場合でさえも、そのアプリケーションは中断されない。アプリケーションは、中断の適用対象から無期限に除外することもでき、あるいは前述のようにあるイベントが発生するまで、またはある時間が経過するまで除外することもできる。
【００５２】
図４は、１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施する装置のための別のプロセスの例４００を示す流れ図である。プロセス４００は、図１の装置１００といった装置によって実行され、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせとして実装することができる。プロセス４００は１組の動作として示されており、様々な動作を実行する際に図示の順序だけに限定されない。プロセス４００は、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するためのプロセスの例であり、本明細書には異なる図を参照した、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外の実施のさらに別の考察が含まれている。
【００５３】
プロセス４００では、中断されていたアプリケーションの実行を再開するよう求める要求が受け取られる（動作４０２）。要求はオペレーティング・システム・コンポーネントから受け取られ、よって前述のように信頼される。アプリケーションは、例えば、前述のようにコンピューティング装置がアプリケーションのためのユーザインターフェースを表示しなくなったという理由で中断されていたはずである。
【００５４】
要求に応じて、アプリケーションの実行が再開される（動作４０４）。アプリケーションはやはり、コンピューティング装置上で中断の適用対象から無期限に除外され、あるいは前述のようにあるイベントが発生するまで、またはある時間が経過するまで除外される。
【００５５】
よって、本明細書で論じるアプリケーションの再開および／またはアプリケーションの中断適用対象からの除外の技術は様々な使用シナリオをサポートする。使用されていないアプリケーションを中断するためのポリシーを適用することができ、その結果としてユーザインターフェースを表示してないアプリケーションが中断される。しかし、そのようなアプリケーションが、オペレーティング・システム・コンポーネントが続行を許可すべきであると判定する動作を行っている（印刷している、オーディオコンテンツを再生しているなどの）場合には、アプリケーションを中断の適用対象から除外することができる。さらに、中断されたアプリケーションとの通信が求められる場合には、オペレーティング・システム・コンポーネントは、中断されたアプリケーションの実行を再開させることができる。中断されたアプリケーションとの通信が完了した後で、オペレーティング・システム・コンポーネントは、（ポリシーが、通常は、アプリケーションが中断されるべきではないとは指示しないものと仮定して）アプリケーションを再度中断させることができる。
【００５６】
図５に、１つもしくは複数の実施形態による、アプリケーションの再開および／またはアプリケーションの中断適用対象からの除外を実施するように構成されうるコンピューティング装置の例５００を示す。コンピューティング装置５００は、例えば、図１のコンピューティング装置１００とすることができる。
【００５７】
コンピューティング装置５００は、１つもしくは複数のプロセッサまたは処理装置５０２と、１つもしくは複数のメモリおよび／または記憶コンポーネント５０６を含むことのできる１つもしくは複数のコンピュータ可読媒体５０４と、１つもしくは複数の入力／出力（入出力）装置５０８と、様々なコンポーネントおよび装置が相互に通信し合うことを可能にするバス５１０とを含む。コンピュータ可読媒体５０４および／または１つもしくは複数の入出力装置５０８は、コンピューティング装置５００の一部として含めることができ、あるいはコンピューティング装置５００に結合されていてもよい。プロセッサ５０２、コンピュータ可読媒体５０４、装置５０８のうちの１つもしくは複数、および／またはバス５１０は、任意選択で、単一の構成要素またはチップ（システムオンチップなど）として実装することもできる。バス５１０は、多種多様なバスアーキテクチャを使用した、メモリバスまたはメモリコントロール、周辺バス、アクセラレーテッド・グラフィックス・ポート、プロセッサまたはローカルバスなどを含むいくつかの種類のバス構造のうちの１つもしくは複数を表す。バス５１０は有線バスおよび／または無線バスを含みうる。
【００５８】
メモリ／記憶コンポーネント５０６は、１つもしくは複数のコンピュータ記憶媒体を表す。コンポーネント５０６は、揮発性媒体（ランダム・アクセス・メモリ（ＲＡＭ）など）および／または不揮発性媒体（読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスクなど）を含むことができる。コンポーネント５０６は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブなど）、ならびに取り外し可能媒体（例えば、フラッシュ・メモリ・ドライブ、取り外し可能ハードドライブ、光ディスクなど）を含むことができる。
【００５９】
本明細書で論じる技術はソフトウェアで実装することができ、命令は１つもしくは複数の処理装置５０２によって実行される。様々な命令をコンピューティング装置５００の様々な構成要素に、例えば、処理装置５０２、処理装置５０２の様々なキャッシュメモリ、装置５００の別のキャッシュメモリ（不図示）、他のコンピュータ可読媒体上などに記憶することができることを理解すべきである。加えて、命令が記憶されるコンピューティング装置５００内の場所は時間の経過と共に変化しうることも理解すべきである。
【００６０】
１つもしくは複数の入出力装置５０８は、ユーザがコンピューティング装置５００にコマンドおよび情報を入力することを可能にし、また、情報がユーザおよび／または他の構成要素もしくは装置に提示されることも可能にする。入力装置の例には、キーボード、カーソル制御装置（マウスなど）、マイクロホン、スキャナなどが含まれる。出力装置の例には、表示装置（モニタやプロジェクタなど）、スピーカ、プリンタ、ネットワークカードなどが含まれる。
【００６１】
本明細書では様々な技術をソフトウェアまたはプログラムモジュールの一般的文脈で説明する場合がある。一般にソフトウェアは、特定のタスクを実行し、または特定の抽象データ型を実施する、ルーチン、プログラム、アプリケーション、オブジェクト、コンポーネント、データ構造などを含む。これらのモジュールおよび技術の一実装形態は、ある形態のコンピュータ可読媒体上に記憶され、またはある形態のコンピュータ可読媒体を横切って伝送されうる。コンピュータ可読媒体は、コンピューティング装置によってアクセス可能な１つもしくは複数の任意の利用可能な媒体とすることができる。例えば、それだけに限らないが、コンピュータ可読媒体には、「コンピュータ記憶媒体」および「通信媒体」が含まれうる。
【００６２】
「コンピュータ記憶媒体」は、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータといった情報の記憶のための任意の方法または技術で実施された揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報を記憶するのに使用することができ、コンピュータによってアクセスすることができる任意の他の媒体が含まれる。コンピュータ記憶媒体は、単なる信号伝送、搬送波、または信号自体に対して、情報の記憶のための媒体を指す。よって、コンピュータ記憶媒体は非信号搬送媒体を指し、通信媒体ではない。
【００６３】
「通信媒体」は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他のトランスポート機構といった変調データ信号において表現する。また通信媒体は任意の情報伝送媒体も含む。「変調データ信号」という用語は、その特性のうちの１つもしくは複数が、信号において情報を符号化するようなやり方で設定され、または変更されている信号を意味する。例として、それだけに限らないが、通信媒体には、有線ネットワークや直接配線接続といった有線媒体、および音響、ＲＦ、赤外線、他の無線媒体といった無線媒体が含まれる。上記のうちのいずれかの組み合わせもコンピュータ可読媒体の範囲内に含まれる。
【００６４】
一般に、本明細書で説明する機能または技術のいずれも、ソフトウェア、ファームウェア、ハードウェア（固定論理回路など）、手動処理、またはこれらの実装形態の組み合わせを使用して実装することができる。「モジュール」および「コンポーネント」という用語は、本明細書で使用する場合、一般に、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを表す。ソフトウェア実装形態の場合には、モジュールまたはコンポーネントは、プロセッサ（１つもしくは複数のＣＰＵなど）上で実行された時に指定されたタスクを実行するプログラムコードを表す。プログラムコードは１つまたは複数のコンピュータ可読メモリデバイスに記憶することができ、コンピュータ可読メモリデバイスの詳細な説明は図５を参照すれば理解されうる。ハードウェア実装形態の場合には、モジュールまたはコンポーネントは、指定されたタスクを実行する機能ブロックまたは他のハードウェアを表す。例えば、ハードウェア実装形態では、モジュールまたはコンポーネントは、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、複合プログラマブル論理回路（ＣＰＬＤ：ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）などとすることができる。本明細書で説明したアプリケーションの再開および／またはアプリケーションの中断適用対象からの除外の技術の特徴はプラットフォームに依存せず、これは、これらの技術を、様々なプロセッサを有する様々な市販のコンピューティングプラットフォーム上で実装することができることを意味する。
【００６５】
発明の対象を構造的特徴および／または方法動作に特有の言葉で説明したが、添付の特許請求の範囲で定義される発明の対象は、必ずしも前述の特有の特徴または動作だけに限定されるものではないことを理解すべきである。そうではなく、前述の特有の特徴および動作は、特許請求の範囲を実施する形態の例として開示したものである。
【図１】
2014529139.tif 000003
【図２】
2014529139.tif 000004
【図３】
2014529139.tif 000005
【図４】
2014529139.tif 000006
【図５】
2014529139.tif 000007
【国際調査報告】
2014529139.tif 000008
2014529139.tif 000009