JP6073323B2 - アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外 - Google Patents

アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外 Download PDF

Info

Publication number
JP6073323B2
JP6073323B2 JP2014529801A JP2014529801A JP6073323B2 JP 6073323 B2 JP6073323 B2 JP 6073323B2 JP 2014529801 A JP2014529801 A JP 2014529801A JP 2014529801 A JP2014529801 A JP 2014529801A JP 6073323 B2 JP6073323 B2 JP 6073323B2
Authority
JP
Japan
Prior art keywords
application
operating system
request
module
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014529801A
Other languages
English (en)
Other versions
JP2014529139A (ja
Inventor
サリム スロア,ベンジャミン
サリム スロア,ベンジャミン
エイチ. クラウス,マイケル
エイチ. クラウス,マイケル
ケイ. ニーヴズ,リチャード
ケイ. ニーヴズ,リチャード
ユー. キシャン,アルン
ユー. キシャン,アルン
プラパカ,ハリ
デイヴィッド ビー. プロバート
デイヴィッド ビー. プロバート
エー. ポゼン,ジナイダ
エー. ポゼン,ジナイダ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp, Microsoft Technology Licensing LLC filed Critical Microsoft Corp
Publication of JP2014529139A publication Critical patent/JP2014529139A/ja
Application granted granted Critical
Publication of JP6073323B2 publication Critical patent/JP6073323B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

多くのコンピューティング装置は複数のプログラムを同時に実行することができ、あるプログラムはユーザによって使用され、別のプログラムはバックグラウンドで実行され、またはユーザによる使用が可能な状態にある。複数のプログラムを同時に実行することは、通常、ユーザが使用したいプログラムを迅速に切り換えることを可能にするが、特有の問題を伴う。そうした問題の1つは、これら複数のプログラムが、往々にして、ユーザにとってほとんど価値がなく、ユーザによって当分使用されそうにない、バックグラウンドで実行されるプログラムを含むことである。これらのプログラムは、相当な量の(プロセッサ時間、メモリなどといった)リソースを使用する可能性があり、このことは、不必要なエネルギーの使用、および電池駆動のコンピューティング装置での電池寿命の低下をもたらしうる。しかし、複数のプログラムが同時に実行されるのを妨げることは、プログラムを再始動する必要が原因で、ユーザが期待する応答性および機能性を低下させるおそれがある。
本概要は、以下の「発明を実施するための形態」の項でさらに説明する選択の概念を簡略化した形で提示するためのものである。本概要は、特許請求される対象の重要な特徴または本質的な特徴を特定するためのものではなく、特許請求される対象の範囲を限定するのに使用するためのものでもない。
1つもしくは複数の態様によれば、コンピューティング装置上で実行されている複数のアプリケーションのうちの1つを、それら複数のアプリケーションがポリシーを満たさないことを理由とする中断の適用対象から除外するよう求める要求が受け取られる。要求は、コンピューティング装置上で実行されているオペレーティング・システム・コンポーネントから受け取られる。要求に応じて、この1つのアプリケーションは、コンピューティング装置上での中断の適用対象から除外される。
1つもしくは複数の態様によれば、コンピューティング装置が当該アプリケーションのためのユーザインターフェースを表示しなくなったという理由で中断されていたアプリケーションの実行を再開するよう求める要求が受け取られる。要求は、コンピューティング装置上で実行されているオペレーティング・システム・コンポーネントから受け取られる。要求に応じて、アプリケーションの実行が再開される。
図面全体を通して類似の特徴を指すのに同じ数字が使用される。
1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するコンピューティング装置の例を示すブロック図である。
1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するシステムの例を示す図である。
1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施する装置のためのプロセスの例を示す流れ図である。
1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施する装置のための別のプロセスの例を示す流れ図である。
1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するように構成されうるコンピューティング装置の例を示す図である。
本明細書では、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外について論じる。複数のアプリケーションを同時に始動させ、コンピューティング装置のメモリにロードすることができるが、どんな時でもアクティブなのはそれらのうちの特定の数(1つまたは2つ)のアプリケーションだけである。アクティブでないアプリケーションは中断され、中断されるとは、アプリケーションがプロセッサを使用することができないこという。アプリケーションがいつ中断されるべきか決定するポリシーが適用される。しかし、オペレーティング・システム・コンポーネントは特定のアプリケーションを(例えば、当該アプリケーションによって動作が行われているという理由で)中断の適用対象から除外させることができる。加えて、オペレーティング・システム・コンポーネントは、中断されていたアプリケーションを(例えば、中断されたアプリケーションと通信するよう求める別のアプリケーションの要求を理由として)再開させることもできる。
アプリケーションを終了するのではなく中断することにより、不必要なアプリケーションをバックグラウンドで実行することに関する様々な問題が解決される。プログラムを再始動するよりもプログラムを中断しない方が往々にしてより速く、より効率がよいが、プログラムが中断されている間、プログラムは、実行され、エネルギーを消費し、またはユーザが使用中のアプリケーションに干渉するのを妨げられる。しかし、アプリケーションを中断してよいのはいつか、およびアプリケーションが中断されるのではなく終了されるべきなのはいつかの判定に際しての技術的課題が残る。これらの判定は、少なくとも一部は、特定のアプリケーションおよび/またはアプリケーションのクラスについてシステムによって維持されるポリシーを順守し、変更することによって行うことができる。
図1は、1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するコンピューティング装置の例100を示すブロック図である。コンピューティング装置100は多種多様な装置とすることができる。例えば、コンピューティング装置100は、ラップトップまたはノートブックコンピュータ、タブレットまたはノートパッドコンピュータ、デスクトップコンピュータ、サーバコンピュータ、移動局、娯楽器具、表示装置に通信可能に結合されたセット・トップ・ボックス、テレビまたは他の表示装置、セルラまたは他の無線電話機、ゲームコンソール、自動車用コンピュータなどとすることができる。よって、コンピューティング装置100の範囲は、十分なメモリおよびプロセッサリソースを備えるフルリソース装置(パーソナルコンピュータ、ゲームコンソールなど)から、限られたメモリおよび/または処理リソースだけを備える低リソース装置(従来のセット・トップ・ボックス、手持ち式ゲームコンソールなど)までに及びうる。
コンピューティング装置100は、オペレーティングシステム102と、1つもしくは複数のアプリケーション104とを含む。動作中、オペレーティングシステム102およびアプリケーション104はコンピューティング装置100上で実行され、オペレーティングシステム102がアプリケーション104を管理する。アプリケーション104の管理は、以下でより詳細に論じるように、1つもしくは複数のアプリケーション104を自動的に終了することを含みうる。
オペレーティングシステム102は、アプリケーション管理モジュール114、システム応答性分析モジュール116、アプリケーション存続期間管理モジュール118、アプリケーション終了モジュール120、ポリシー評価モジュール122、およびアプリケーション中断モジュール124を含む。モジュール114〜124はオペレーティングシステム102の一部であるものとして図示されているが、代替として、モジュール114〜124のうちの1つもしくは複数をオペレーティングシステム102から分離して実装することもできる。加えて、モジュール114〜124のうちの1つもしくは複数によって提供される機能を分離して複数のモジュールにすることができること、および/またはモジュール114〜124のうちの2つもしくはそれ以上によって提供される機能のうちの少なくともいくつかを組み合わせて単一のモジュールにすることができることにも留意すべきである。さらに、モジュール114〜124が図示されているが、オペレーティングシステム102は、様々な追加の機能性を提供する様々な追加のモジュールを含むことができることにも留意すべきである。
本明細書では、オペレーティングシステム102の様々なモジュールを、相互に様々な指示または情報を通知し合い、または通信し合うものとして論じる。そのような通知または通信は様々な形を取りうることに留意すべきである。例えば、あるモジュールは別のモジュールのアプリケーション・プログラミング・インターフェース(API)を呼び出すことができ、あるモジュールは、別のモジュールが受け取るよう登録したイベントを報告することができ、あるモジュールは、別のモジュールがそこからデータまたは情報を取得することのできる位置にデータまたは他の情報を記憶することができ、以下同様である。
アプリケーション管理モジュール114は、アクティブなアプリケーションおよび非アクティブなアプリケーションを含めて、その時々にコンピューティング装置100上でどのアプリケーション104が実行されているかモニタし、または別のやり方で認識している。アクティブなアプリケーションとは、現在、コンピューティング装置100の1つもしくは複数のプロセッサによって実行を予定されているアプリケーションであり、よって、実行のためのプロセッサ時間が割り振られているアプリケーションをいう。非アクティブなアプリケーションとは、現在、コンピューティング装置100の1つもしくは複数のプロセッサによって実行を予定されていないアプリケーションであり、よって、実行のためのプロセッサ時間が割り振られていないアプリケーションをいう。アプリケーション104は、以下でより詳細に論じるように、コンピューティング装置100のメモリにロードされるが非アクティブであるアプリケーションとすることができる。
またアプリケーション管理モジュール114は、その時々にどのアプリケーション104が使用されているかもモニタし、または別のやり方で認識している。一般に、アプリケーション104が特定の時に使用されているというのは、そのアプリケーションのためのユーザインターフェースがその特定の時にコンピューティング装置100によって表示されており、または別のやり方で提示されている場合、および/またはコンピューティング装置100のユーザがその特定の時にそのアプリケーションにユーザ入力を提供している場合である。モジュール114は、どのアプリケーション104がその時々に使用されているかを多種多様なやり方で判定することができる。例えば、モジュール114は、当該アプリケーションがユーザインターフェースを表示するためのウィンドウが、コンピューティング装置100の一部であり、またはコンピューティング装置100に結合された表示装置上に現在表示されている場合に、アプリケーション104は現在使用されていると判定することができ、当該アプリケーションがユーザインターフェースを表示するためのウィンドウが、コンピューティング装置100の一部であり、またはコンピューティング装置100に結合された表示装置上に表示されている最上位または最高レベルのウィンドウである場合に、アプリケーション104は現在使用されていると判定することができ、当該アプリケーションがユーザインターフェースを表示するためのウィンドウが、最小化されていない場合に、アプリケーション104は現在使用されていると判定することができ、以下同様である。また、特定の時に使用されている別のアプリケーションが当該アプリケーションと通信している場合にも、アプリケーションは特定の時に使用されているということができる。例えば、モジュール114は、当該アプリケーション104が、コンピューティング装置100の一部であり、またはコンピューティング装置100に結合された表示装置上に表示されている最上位または最高レベルのウィンドウであるユーザインターフェースを表示する別のアプリケーション104と通信している場合に、アプリケーション104は現在使用されていると判定することができる。
1つもしくは複数の実施形態において、オペレーティングシステム102は、どんな時でも特定の数のウィンドウ(例えば1つまたは2つ)が表示されることを許容する。アプリケーション104は、そうしたウィンドウ内に各アプリケーションのユーザインターフェースを表示し、よって、特定の数のアプリケーション104だけがその時々に各アプリケーションのユーザインターフェースを表示することができる。どんな特定の時にも、コンピューティング装置100の一部であり、またはコンピューティング装置100に結合された表示装置上にユーザインターフェースを表示しているアプリケーション104は、その特定の時にコンピューティング装置100のユーザによって現在、使用されているアプリケーション104であると判定される。また、コンピューティング装置100の一部であり、またはコンピューティング装置100に結合された表示装置上にユーザインターフェースを表示していないアプリケーション104は、その特定の時にコンピューティング装置100のユーザによって現在、使用されていないアプリケーション104であると判定される。
アプリケーション存続期間管理モジュール118は、オペレーティングシステム102によって適用されるポリシーを制御してどのアプリケーション104を実行することができるか判定する。このポリシーは、その時々にアプリケーション104がアクティブであるかそれとも非アクティブであるかをどのように判定すべきか、どのアプリケーション104を終了すべきかをどのように決定すべきか、その時々に何個のウィンドウを表示することができるかなどを指示することができる。モジュール118は多種多様なやり方でポリシーを獲得することができ、例えば、ポリシーを用いて事前に構成される、(例えば、様々な好みや構成設定によって)コンピューティング装置100のユーザからポリシーを受け取る、コンピューティング装置100の別のモジュールから、または別のコンピューティング装置からポリシーを受け取る、ネットワークから(例えば、ネットワークを介して別の装置またはサービスから)ポリシーを受け取る、などである。
ポリシー評価モジュール122は、オペレーティングシステム102によって適用されたポリシーがアプリケーション104によって満たされているかどうか判定する。ポリシー評価モジュール122は、アプリケーション管理モジュール114と通信して、その時々にどのアプリケーション104が使用されているか判定する。この判定およびポリシーに基づき、モジュール122は、ポリシーがアプリケーション104によって満たされているかどうか判定する。例えば、ポリシーが、使用されていないアプリケーションは非アクティブであると指示している場合であって、コンピューティング装置100のユーザによって使用されていない1つもしくは複数のアプリケーションが特定の時にアクティブである場合には、モジュール122は、ポリシーはその特定の時にアプリケーション104によって満たされていないと判定する。
アプリケーション104がポリシーを満たさないと判定したことに応じて、ポリシー評価モジュール122は、アプリケーション104がポリシーを満たすように中断すべき1つもしくは複数のアプリケーション104を決定する。アプリケーションを中断するとは、アプリケーションを非アクティブにすることをいう。ポリシー評価モジュール122は、どのアプリケーション104が使用されているかの判定およびポリシーに基づいて、どの1つもしくは複数のアプリケーション104を中断すべきか決定する。例えば、ポリシーが、使用されていないアプリケーションは非アクティブであると指示している場合であって、使用されていない1つもしくは複数のアプリケーションが特定の時にアクティブである場合には、モジュール122は、使用されていないがアクティブであるアプリケーション104は中断すべき1つもしくは複数のアプリケーション104であると判定する。
アプリケーション中断モジュール124はポリシー評価モジュール122から、中断すべき1つもしくは複数のアプリケーション104の指示を受け取る。1つもしくは複数のアプリケーション104を中断する指示に応じて、ポリシー中断モジュール124は、指示された1つもしくは複数のアプリケーション104を中断する。アプリケーションは、そのアプリケーションにそれが中断されるべきであることを通知することによって中断される。アプリケーションは、任意選択で、アプリケーションが中断される前に保存されるべきであるとみなすデータおよび/または状態情報を保存するための時間(1秒間、4秒間など)を与えられる。アプリケーションはデータおよび/または状態情報を不揮発性の、または他の永続的な記憶装置に記憶し、データおよび/または状態情報が(たとえアプリケーションが終了されたとしても)後で取得されることを可能にする。アプリケーションを中断するとは、アプリケーションをアクティブ状態から非アクティブ状態に変更することをいう。非アクティブなアプリケーション(中断されたアプリケーションともいう)は、前述のようにコンピューティング装置100のプロセッサによって実行されない。アプリケーションは異なるやり方で、例えば、アプリケーションを中断するためのオペレーティングシステム102のAPIを呼び出すことによって中断することもできる。
アプリケーションは、一度中断されて、後でアクティブになることができることに留意すべきである。例えば、ユーザから、ユーザがアプリケーションを使用したいことを指示するユーザ入力が受け取られることもありうる。アプリケーションが非アクティブである場合、アプリケーションは、アプリケーションを使用するよう求めるユーザ要求に応じてアクティブとされ、アプリケーションはコンピューティング装置100の1つもしくは複数のプロセッサによって実行される。中断されたアプリケーションをアクティブなアプリケーションにすることを、アプリケーションを再開するともいう。再度アクティブになると、アプリケーションは実行を再開し、保存された状態をアプリケーションの必要に応じて復元する。
システム応答性分析モジュール116は、メモリ使用に関する様々なメトリックのうちの1つもしくは複数を使用して、1つもしくは複数のアプリケーション104を終了すべきかどうか判定する。例えば、システム応答性分析モジュール116は、1つもしくは複数のアプリケーション104を終了すべきであることを、アプリケーション104に割り振られたメモリの量を指すメモリ・ロード・メトリック、その時々に利用可能な物理メモリの量を指す利用可能な物理メモリメトリック、ページが記憶されている記憶装置上の利用可能な記憶空間の量を指す利用可能なページファイル空間メトリック、オペレーティングシステム102のメモリマネージャによって維持されるスタンバイリスト上のページの平均存続期間を指すスタンバイリスト上の平均存続期間メトリックなどに基づいて判定することができる。システム応答性分析モジュール116は、1つもしくは複数のアプリケーション104を終了すべきであると判定したことに応じて、アプリケーション終了モジュール120に、1つもしくは複数のアプリケーション104を終了するよう通知する。
アプリケーション終了モジュール120は、1つもしくは複数のアプリケーション104を終了するよう求めるシステム応答性分析モジュール116からの通知に応じて、終了すべき1つもしくは複数のアプリケーション104を決定する。アプリケーションは異なるやり方で、例えば、アプリケーションを終了するためのオペレーティングシステム102のAPIを呼び出すことによって終了することもできる。1つもしくは複数の実施形態において、モジュール120は、中断されていた1つもしくは複数のアプリケーション104を終了することを選択し、選択した1つもしくは複数のアプリケーション104を終了する。アプリケーション終了モジュール120は、どの特定のアプリケーション104を終了すべきかを様々なやり方で、例えば、アプリケーション104の各々がどのくらい前に使用されたか、アプリケーション104の各々がどれほどの頻度で使用されるか、アプリケーション104によって使用されるメモリの量などに基づいて決定することができる。
あるいは、アプリケーションを終了するのではなく、アプリケーション終了モジュール120はアプリケーションを1次メモリからハードディスクやフラッシュ記憶デバイスといった2次メモリに移動することもできる。モジュール120は、どの特定のアプリケーション104を移動すべきかを、前述のどの特定のアプリケーション104を終了すべきかの決定と同様に様々なやり方で決定することができる。アプリケーション104は、例えば、アプリケーションを移動するためのオペレーティングシステム102のAPIを呼び出すことによって、アプリケーションによって使用されるメモリのページを2次記憶装置にコピーすることによってなど、様々なやり方で移動することができる。
アプリケーション存続期間管理モジュール118は、アプリケーション104を中断の適用対象から除外するよう求めるオペレーティングシステム102の別のモジュールまたはコンポーネントからの要求を受け取ることもできる。そのような要求は、例えば、アプリケーション104によって行われているまだ終わっていない動作(例えば、オーディオコンテンツを再生している、文書を印刷しているなど)を認識しているオペレーティングシステム102のモジュールまたはコンポーネントによって出される。特定のアプリケーションを中断の適用対象から除外するよう求める要求に応じて、アプリケーション存続期間管理モジュール118はポリシー評価モジュール122に、どの1つもしくは複数のアプリケーション104を中断すべきか決定する時に、その特定のアプリケーションが中断されるべきでないことを通知する。アプリケーションを中断の適用対象から除外するとは、アプリケーションが中断されるのを妨げることをいう。すなわち、そのアプリケーションが、そうでなければ(アプリケーションを中断の適用対象から除外するよう求める要求がなければ)中断されたはずである場合に、アプリケーションを中断の適用対象から除外するよう求める要求は、アプリケーションが中断されるのを妨げる。
アプリケーション存続期間管理モジュール118は、中断されたアプリケーション104の実行を再開するよう求めるオペレーティングシステム102の別のモジュールまたはコンポーネントからの要求を受け取ることもできる。そのような要求は、例えば、中断されたアプリケーションと通信することを求めるアプリケーション104を認識しているオペレーティングシステム102のモジュールまたはコンポーネントによって出される。中断されたアプリケーションの実行を再開するよう求める要求に応じて、アプリケーション存続期間管理モジュール118はアプリケーションを再開する。アプリケーションは異なるやり方で、例えば、アプリケーションを再開するためのオペレーティングシステム102のAPIを呼び出すことによって再開することもできる。アプリケーション存続期間管理モジュール118は、(例えば、アプリケーションを再始動するためのオペレーティングシステム102のAPIを呼び出すことによって)終了したアプリケーションを再始動させ、次いでアプリケーションを再開することによって、終了したアプリケーションを再開することもできる。
図2に、1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するシステムの例200を示す。システム200は、例えば、図1のコンピューティング装置100によって実施することができる。システム200はアプリケーション存続期間管理モジュール202を含み、これは図1のアプリケーション存続期間管理モジュール118とすることができる。またシステム200は、通信層204、1つもしくは複数のオペレーティングシステム(OS)コンポーネント206、1つもしくは複数のオペレーティングシステム(OS)コンポーネント208、および1つもしくは複数のアプリケーション210も含む。アプリケーション210は、例えば、図1のアプリケーション104とすることができる。OSコンポーネント206、208は、オペレーティングシステム(図1のオペレーティングシステム102など)の様々なコンポーネントまたはモジュールである。通信層204は、オペレーティング・システム・コンポーネント206、208がアプリケーション存続期間管理モジュール202に要求を伝えることを可能にする。これらの要求は、中断されたアプリケーションの実行を再開するよう求める要求およびアプリケーションを中断の適用対象から除外するよう求める要求を含む。通信層204は存続期間インターフェースAPI212または非同期通信機構214として図示されているが、他の通信機構を代替として使用することもできる。通信層204は通常、オペレーティング・システム・コンポーネント206、208には見えるが、アプリケーション210には見えないことに留意すべきである。よって、オペレーティング・システム・コンポーネント206、208は、アプリケーション210の要求または動作に基づいて通信層204を介してモジュール202に要求を出すことができるが、アプリケーション210自体は、通信層204を介してモジュール202と直接通信することができない。
あるOSコンポーネント206は存続期間インターフェースAPI212を使用してモジュール202と通信し、別のOSコンポーネント208は非同期通信機構214を使用してモジュール202と通信する。OSコンポーネントがモジュール202とどのように通信するかは様々なやり方で決定することができ、OSコンポーネントの開発者の側の設計上の選択とすることができる。1つもしくは複数の実施形態において、オペレーティング・システム・コンポーネントがモジュール202と通信するやり方は、オペレーティング・システム・コンポーネントがユーザモードで実行されているか、それともカーネルモードで実行されているかに基づいて決定される。例えば、オペレーティング・システム・コンポーネントがカーネルモードで実行されている場合には、オペレーティング・システム・コンポーネントは非同期通信機構214を使用してモジュール202と通信し、オペレーティング・システム・コンポーネントがユーザモードで実行されている場合には、オペレーティング・システム・コンポーネントは存続期間インターフェースAPI212を使用してモジュール202と通信する。
存続期間インターフェースAPI212は、オペレーティング・システム・コンポーネント206が呼び出すことのできる1つもしくは複数のメソッドを示す。API212の1メソッドは、オペレーティング・システム・コンポーネント206によって呼び出され、アプリケーション210の識別子をパラメータとして提供することができる。アプリケーション210が相互に区別されることを可能にするアプリケーション210の多種多様な識別子を使用することができる。例えば、アプリケーション210の識別子は、そのアプリケーションを含むパッケージの識別子とすることができる(アプリケーションの名前、パッケージの発行者の名前、アプリケーションを動作するように設計するためのアーキテクチャの指示、パッケージのバージョン番号、および/またはパッケージの様々な他の特性の組み合わせなど)。またオペレーティング・システム・コンポーネント206は、適用除外クラスまたは再開クラスをパラメータとして提供することもできる。適用除外クラスまたは再開クラスは、オペレーティング・システム・コンポーネント206が要求を出す理由を指示し、後述するように多種多様なやり方で使用することができる。適用除外クラスまたは再開クラスは、API212のメソッドを呼び出す時のパラメータとして識別することができ、あるいは、呼び出されるメソッドにおいて固有のものとすることもできる(例えば、適用除外クラスおよび/または再開クラスによって異なるメソッドを示すことができる)。要求の種類(中断されたアプリケーションの実行を再開するよう求める要求やアプリケーションを中断の適用対象から除外するよう求める要求など)は、API212のメソッドを呼び出す時のパラメータとして識別することができ、あるいは、要求は、呼び出されるメソッドにおいて固有のものとすることもできる(例えば、要求の種類によって異なるメソッドを示すことができる)。
非同期通信機構214は、様々なオペレーティング・システム・コンポーネント208から通知を受け取ることのできるモジュールまたはコンポーネントを含む。他のコンポーネントまたはモジュール(アプリケーション存続期間管理モジュール202など)はこれらの通知を利用することができる。よって、オペレーティング・システム・コンポーネント208が機構214に通知を提供する度に、機構214はその通知をモジュール202に提供する。この通知は、(前述のように様々な形を取ることのできる)アプリケーション210の識別子、要求の適用除外クラスまたは再開クラスの指示、および/または要求の種類の指示(例えば、要求は、中断されたアプリケーションの実行を再開するよう求める要求か、それともアプリケーションを中断の適用対象から除外するよう求める要求かなど)といった様々な情報を含むことができる。
アプリケーションを中断の適用対象から除外するよう求める要求に応じて、アプリケーション存続期間管理モジュール202は、要求を出しているオペレーティング・システム・コンポーネント206、208が適切な理由でそうしているものであると信頼する。よって、モジュール202は、評価モジュールに、どの1つもしくは複数のアプリケーション104を中断すべきか決定する時に、識別されたアプリケーションは中断されるべきではないことを通知することによって、アプリケーションが中断されるのを妨げる。
オペレーティング・システム・コンポーネント206、208は、様々な理由でアプリケーションが中断の適用対象から除外されるよう要求することができ、様々なオペレーティング・システム・コンポーネント206、208が様々な理由でアプリケーションが中断されるよう要求しうる。通常、オペレーティング・システム・コンポーネント206、208は、アプリケーション210は続行を許容されるべきであるが、アプリケーション210が中断された場合には続行しなくなるはずの動作を行っているとオペレーティング・システム・コンポーネント206、208が判定したことに応じて、アプリケーション210が中断の適用対象から除外されるよう要求する。例えば、アプリケーション210は、文書を印刷するためのデータをページごとに提供することを伴う印刷動作を行っているものとすることができるはずである。オペレーティング・システム・コンポーネント206、208(印刷スプーラなど)は、文書の印刷が完了する前にアプリケーション210が中断されることになった場合には、文書の印刷は完了しなくなるはずであるため、アプリケーション210が中断の適用対象から除外されるよう要求する。別の例として、アプリケーション210は、オーディオコンテンツ(歌や歌のプレイリストなど)を再生しているオーディオ再生アプリケーションとすることもできるはずである。オペレーティング・システム・コンポーネント206、208(オーディオAPIなど)は、アプリケーション210が中断されることになった場合には、オーディオコンテンツの再生が停止するはずであるために、アプリケーション210が中断の適用対象から除外されるよう要求する。
さらに別の例として、アプリケーション210は、デバイスドライバであるオペレーティング・システム・コンポーネント206、208を介して装置(例えば、カメラ、ネットワーク・インターフェース・カード、無線装置など)と通信しているものとすることもできるはずである。オペレーティング・システム・コンポーネント206、208は、通信(例えば、アプリケーション210と装置との間の入力/出力(入出力))が少なくとも閾値のレートで行われている場合には、アプリケーションが装置をアクティブに使用していると判定し、アプリケーションが装置をアクティブに使用している場合には、アプリケーション210が中断の適用対象から除外されるよう要求する。さらに別の例では、アプリケーション210は、共用動作の一部として(例えば明確に定義されたインターフェースを介して)別のアプリケーションと情報(例えば写真、音楽、ビデオなど)を共用しているものとすることができる。共用動作が行われている場合、(例えば、共用動作を円滑化し、または別のやり方で認識している)オペレーティング・システム・コンポーネント206、208は、共用動作が完了されうるように、アプリケーション210が中断の適用対象から除外されるよう要求する。また、様々な他の動作も、オペレーティング・システム・コンポーネントに、アプリケーションが中断の適用対象から除外されるよう要求させることができるはずであり、例えば、アプリケーションが(例えば、ローカル・エリア・ネットワーク上、インターネット上などで)別の装置に、かつ/または別の装置からデータを転送している、アプリケーションがあるデバイスユーティリティ動作(ハードドライブをバックアップする、マルウェアの有無を検査するなど)を行っているなどの動作である。
また、アプリケーションが中断の適用対象から除外されるよう求める要求は、適用除外クラスを指示することもできる。多種多様な適用除外クラスを使用することができ、各適用除外クラスは、アプリケーションが中断の適用対象から除外されるよう要求されている理由を特定する。例えば、適用除外クラスは、印刷、オーディオ、装置入出力などとすることができるはずである。
あるいは、適用除外クラスを指定するのではなく、アプリケーション存続期間管理モジュール202は、アプリケーションが中断の適用対象から除外されるよう要求されている理由を推論することもできる。例えば、各オペレーティング・システム・コンポーネント206、208には、アプリケーションが中断の適用対象から除外されるよう要求する特定の理由がありうる。よって、モジュール202は、要求を受け取った相手先のオペレーティング・システム・コンポーネント206、208に基づいて、アプリケーションが中断の適用対象から除外されるよう要求される理由を特定することができる。
アプリケーション存続期間管理モジュール202は、アプリケーションを中断の適用対象から無期限に除外することもでき、あるいは、あるイベントが発生するまで、またはある時間が経過するまで除外することもできる。例えば、そのようなイベントは、アプリケーションが中断の適用対象から除外されるよう要求したオペレーティング・システム・コンポーネントが、(例えば、文書が印刷を完了したため、ユーザが少なくとも閾値時間(例えば2分間)にわたってオーディオの再生を休止したため、などの理由で)アプリケーションが中断の適用対象から除外されなくなった時にモジュール202に通知することとすることができる。別の例として、モジュール202は、特定の時間(例えば、5分間、1時間など)にわたってアプリケーションを中断の適用対象から除外することができる。この特定の時間は様々なやり方で決定することができ、例えば、アプリケーションが中断の適用対象から除外されるよう要求されている理由に基づいて(例えば、オペレーティング・システム・コンポーネントによって提供される要求の適用除外クラスによって異なる特定の時間を有しうるなど)、モジュール202のデフォルト構成に基づいて、モジュール202からの要求のパラメータとして受け取られる特定の時間の指示に基づいてなどである。この特定の時間は、任意選択で、オペレーティング・システム・コンポーネントが、例えば、アプリケーションを中断の適用対象から除外するよう求める1つもしくは複数の追加の要求を出すことによって延長することもできるはずである。そのようなイベントまたは経過した時間に応じて、アプリケーションは中断の適用対象から除外されなくなる。したがって、モジュール202はポリシー評価モジュール(図1のポリシー評価モジュール122など)を呼び出してアプリケーションを中断し、または前述のようにオペレーティングシステムによって適用されたポリシーがアプリケーション210によって満たされているかどうか判定する。
アプリケーションが中断の適用対象から除外されるよう要求される理由(例えば、オペレーティング・システム・コンポーネントによって提供された要求の適用除外クラス)は、他のやり方で使用することもできる。例えば、アプリケーション存続期間管理モジュール202は、どのモジュール206、208が、アプリケーションが中断の適用対象から除外されるよう要求したか、それらのオペレーティング・システム・コンポーネントが、アプリケーションが中断の適用対象から除外されるよう要求した理由、および/またはどのアプリケーションが中断の適用対象から除外されたかの記録を維持する機能を含む(またはその機能を含む別のモジュールを呼び出す)ことができる。この記録は、アプリケーションを中断の適用対象から除外するよう求める要求の悪用の可能性を特定するため、アプリケーションを中断の適用対象から除外するよう求める要求が受け取られる頻度を特定するためなどといった様々なやり方で使用することができる。
中断されたアプリケーションの実行を再開するよう求める要求に応じて、アプリケーション存続期間管理モジュール202は、要求しているオペレーティング・システム・コンポーネント206、208が適切な理由でそうしているものであると信頼する。よって、モジュール202は、例えば、中断されたアプリケーションを再開するためのオペレーティングシステム102のAPIを呼び出すことによって、中断されたアプリケーションを再開する。
オペレーティング・システム・コンポーネント206、208は、様々な理由でアプリケーションが再開されるよう要求することができ、様々なオペレーティング・システム・コンポーネント206、208が様々な理由でアプリケーションが再開されるよう要求しうる。通常、オペレーティング・システム・コンポーネント206、208は、中断されたアプリケーションと通信するよう求める別のアプリケーション、コンポーネント、またはモジュールの求めに応じて、アプリケーションが再開されるよう要求する。例えば、アプリケーション210は、様々な従来のプロセス間通信技術のいずれかを使用して別のアプリケーション210と通信するよう求める場合がある。オペレーティング・システム・コンポーネント206、208は、(中断されたアプリケーションが実行を予定されていないために)中断されている場合に別のアプリケーション210が通信することができないという理由で別のアプリケーション210が再開されるよう要求する。別の例として、アプリケーション210は、別のアプリケーション210によって受け取られたユーザ要求(別のアプリケーション210からコピーされたデータをペーストするよう求める要求など)に応じて別のアプリケーション210からデータを獲得するよう求める場合もある。オペレーティング・システム・コンポーネント206、208は、別のアプリケーション210が中断されている場合に別のアプリケーション210からデータを獲得することができないという理由で別のアプリケーションが再開されるよう要求する。
別の例として、オペレーティング・システム・コンポーネント206、208自体が、(例えば、中断されたアプリケーション内の何かを列挙するため、あるいは、中断されたアプリケーションから情報またはデータを獲得するために)中断されたアプリケーションと通信するよう求める場合もある。オペレーティング・システム・コンポーネントは、中断されている場合に別のアプリケーション210が通信することができないという理由でアプリケーション210が再開されるよう要求する。これらは、中断されたアプリケーション210が再開されるようオペレーティング・システム・コンポーネント206、208が要求しうる理由の例であり、オペレーティング・システム・コンポーネント206、208は、様々な他の理由のいずれかでアプリケーション210が再開されるよう要求しうることに留意すべきである。
また、中断されたアプリケーションの実行を再開するよう求める要求は要求の再開クラスも指示することができる。多種多様な再開クラスを使用することができ、各再開クラスは、アプリケーションが再開されるよう要求されている理由を特定する。例えば、再開クラスは、プロセス間通信、ユーザ要求、オペレーティング・システム・コンポーネント要求などとすることができるはずである。
あるいは、再開クラスを指定するのではなく、アプリケーション存続期間管理モジュール202は、アプリケーションが再開されるよう要求されている理由を推論することもできる。例えば、各オペレーティング・システム・コンポーネント206、208には、アプリケーションが再開されるよう要求する特定の理由がありうる。よって、モジュール202は、要求を受け取った相手先のオペレーティング・システム・コンポーネント206、208に基づいて、アプリケーションが再開されるよう要求される理由を特定することができる。
アプリケーションが再開された後で、アプリケーション存続期間管理モジュール202は、アプリケーションを中断の適用対象から除外する。この適用除外は、中断されたアプリケーションの実行を再開するよう求める要求に応じて行われることを除いて、上記の考察と同様である。アプリケーションは、上記の考察と同様に、中断の適用対象から無期限に除外することもでき、あるいは、あるイベントが発生するまで、またはある時間が経過するまで除外することもできる。例えば、アプリケーション存続期間管理モジュール202は、特定の時間(2秒間、10秒間など)にわたってアプリケーションを中断の適用対象から除外することができ、特定の時間は、アプリケーションが再開されるよう要求されている理由に基づくものとすることができる。別の例として、アプリケーション存続期間管理モジュール202は、オペレーティング・システム・コンポーネントから、アプリケーションが再開されるよう要求する理由が存在しなくなったという通知が受け取られるまで、アプリケーションを中断の適用対象から除外することもできる。そうした通知に応じて、モジュール202はポリシー評価モジュール(図1のポリシー評価モジュール122など)を呼び出してアプリケーションを中断し、または前述のようにオペレーティングシステムによって適用されたポリシーがアプリケーション210によって満たされているかどうか判定する。
1つもしくは複数の実施形態において、中断されたアプリケーションの実行を再開するよう要求しているオペレーティング・システム・コンポーネント206、208は、要求の提出をトリガする動作(オペレーティング・システム・コンポーネントに中断されたアプリケーションの実行を再開するよう求める要求を出させる動作)をいくつのアプリケーション(またはオペレーティング・システム・コンポーネント)が要求しているかのカウンタまたは他の記録を維持する。様々なカウンタまたは他の記録を様々な理由で維持することができる。例えば、3つの異なるアプリケーションがプロセス間通信技術を使用して中断されたアプリケーションと通信するよう要求する場合には、オペレーティング・システム・コンポーネント206、208は、3つのアプリケーションが、要求の提出をトリガするはずの動作を要求していることを指示するカウンタまたは他の記録を維持する。追加のアプリケーションがプロセス間通信技術を使用して中断されたアプリケーションと通信するよう要求する場合には、4つのアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するようにカウンタが増分され、または他の記録が更新される。あるいは、アプリケーションのうちの1つが(中断されたアプリケーションが再開された後で)そのプロセス間通信を完了した場合には、2つのアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するようにカウンタが減分され、または他の記録が更新される。
カウンタまたは他の記録が、要求の提出をトリガするはずの動作を要求しているアプリケーションが0である、から1つのアプリケーションが要求の提出をトリガするはずの動作を要求している、に変化する時には、オペレーティング・システム・コンポーネントは、中断されたアプリケーションの実行を再開するよう要求する。複数のアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するカウンタまたは他の記録の追加の変更は、要求がすでに出されているため、オペレーティング・システム・コンポーネントに中断されたアプリケーションの実行を再開するよう要求しない。カウンタまたは他の記録が、1つのアプリケーションが要求の提出をトリガするはずの動作を要求している、から要求の提出をトリガするはずの動作を要求しているアプリケーションが0である、に変化する時には、オペレーティング・システム・コンポーネントは、アプリケーション存続期間管理モジュール202に、オペレーティングシステムによって適用されたポリシーがアプリケーションによって満たされているかどうかポリシー評価モジュールに判定させるよう通知する。再開されたアプリケーションが(例えば、別のOSコンポーネント206、208からの要求を理由として)中断の適用対象から除外されなくなった場合には、再開されたアプリケーションをポリシーに従って中断することができる。さらに複数のアプリケーションが要求の提出をトリガするはずの動作を要求していることを指示するカウンタまたは他の記録の追加の変更は、オペレーティング・システム・コンポーネントがモジュール202に、オペレーティングシステムによって起用されたポリシーがアプリケーションによって満たされているかどうかポリシー評価モジュールに判定させるよう通知させる原因にならない。というのは、少なくとも1つのアプリケーションが、中断されたアプリケーションの実行を再開するよう求める要求の提出をトリガするはずの動作を依然として要求しているからである。
図3は、1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施する装置のためのプロセスの例300を示す流れ図である。プロセス300は、図1の装置100といった装置によって実行され、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせとして実装することができる。プロセス300は1組の動作として示されており、様々な動作を実行する際に図示の順序だけに限定されない。プロセス300は、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するためのプロセスの例であり、本明細書には異なる図を参照した、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外の実施のさらに別の考察が含まれている。
プロセス300では、アプリケーションを中断の適用対象から除外するよう求める要求が受け取られる(動作302)。要求はオペレーティング・システム・コンポーネントから受け取られ、よって前述のように信頼される。
動作302で受け取られた要求に応じて、アプリケーションは中断の適用対象から除外される(動作304)。要求を適用対象から除外することによって、たとえそのアプリケーションが、通常は、前述のようにコンピューティング装置上で実行されている1つもしくは複数のアプリケーションがポリシーを満たさないという理由で中断されえた場合でさえも、そのアプリケーションは中断されない。アプリケーションは、中断の適用対象から無期限に除外することもでき、あるいは前述のようにあるイベントが発生するまで、またはある時間が経過するまで除外することもできる。
図4は、1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施する装置のための別のプロセスの例400を示す流れ図である。プロセス400は、図1の装置100といった装置によって実行され、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせとして実装することができる。プロセス400は1組の動作として示されており、様々な動作を実行する際に図示の順序だけに限定されない。プロセス400は、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するためのプロセスの例であり、本明細書には異なる図を参照した、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外の実施のさらに別の考察が含まれている。
プロセス400では、中断されていたアプリケーションの実行を再開するよう求める要求が受け取られる(動作402)。要求はオペレーティング・システム・コンポーネントから受け取られ、よって前述のように信頼される。アプリケーションは、例えば、前述のようにコンピューティング装置がアプリケーションのためのユーザインターフェースを表示しなくなったという理由で中断されていたはずである。
要求に応じて、アプリケーションの実行が再開される(動作404)。アプリケーションはやはり、コンピューティング装置上で中断の適用対象から無期限に除外され、あるいは前述のようにあるイベントが発生するまで、またはある時間が経過するまで除外される。
よって、本明細書で論じるアプリケーションの再開および/またはアプリケーションの中断適用対象からの除外の技術は様々な使用シナリオをサポートする。使用されていないアプリケーションを中断するためのポリシーを適用することができ、その結果としてユーザインターフェースを表示してないアプリケーションが中断される。しかし、そのようなアプリケーションが、オペレーティング・システム・コンポーネントが続行を許可すべきであると判定する動作を行っている(印刷している、オーディオコンテンツを再生しているなどの)場合には、アプリケーションを中断の適用対象から除外することができる。さらに、中断されたアプリケーションとの通信が求められる場合には、オペレーティング・システム・コンポーネントは、中断されたアプリケーションの実行を再開させることができる。中断されたアプリケーションとの通信が完了した後で、オペレーティング・システム・コンポーネントは、(ポリシーが、通常は、アプリケーションが中断されるべきではないとは指示しないものと仮定して)アプリケーションを再度中断させることができる。
図5に、1つもしくは複数の実施形態による、アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外を実施するように構成されうるコンピューティング装置の例500を示す。コンピューティング装置500は、例えば、図1のコンピューティング装置100とすることができる。
コンピューティング装置500は、1つもしくは複数のプロセッサまたは処理装置502と、1つもしくは複数のメモリおよび/または記憶コンポーネント506を含むことのできる1つもしくは複数のコンピュータ可読媒体504と、1つもしくは複数の入力/出力(入出力)装置508と、様々なコンポーネントおよび装置が相互に通信し合うことを可能にするバス510とを含む。コンピュータ可読媒体504および/または1つもしくは複数の入出力装置508は、コンピューティング装置500の一部として含めることができ、あるいはコンピューティング装置500に結合されていてもよい。プロセッサ502、コンピュータ可読媒体504、装置508のうちの1つもしくは複数、および/またはバス510は、任意選択で、単一の構成要素またはチップ(システムオンチップなど)として実装することもできる。バス510は、多種多様なバスアーキテクチャを使用した、メモリバスまたはメモリコントロール、周辺バス、アクセラレーテッド・グラフィックス・ポート、プロセッサまたはローカルバスなどを含むいくつかの種類のバス構造のうちの1つもしくは複数を表す。バス510は有線バスおよび/または無線バスを含みうる。
メモリ/記憶コンポーネント506は、1つもしくは複数のコンピュータ記憶媒体を表す。コンポーネント506は、揮発性媒体(ランダム・アクセス・メモリ(RAM)など)および/または不揮発性媒体(読取り専用メモリ(ROM)、フラッシュメモリ、光ディスク、磁気ディスクなど)を含むことができる。コンポーネント506は、固定媒体(例えば、RAM、ROM、固定ハードドライブなど)、ならびに取り外し可能媒体(例えば、フラッシュ・メモリ・ドライブ、取り外し可能ハードドライブ、光ディスクなど)を含むことができる。
本明細書で論じる技術はソフトウェアで実装することができ、命令は1つもしくは複数の処理装置502によって実行される。様々な命令をコンピューティング装置500の様々な構成要素に、例えば、処理装置502、処理装置502の様々なキャッシュメモリ、装置500の別のキャッシュメモリ(不図示)、他のコンピュータ可読媒体上などに記憶することができることを理解すべきである。加えて、命令が記憶されるコンピューティング装置500内の場所は時間の経過と共に変化しうることも理解すべきである。
1つもしくは複数の入出力装置508は、ユーザがコンピューティング装置500にコマンドおよび情報を入力することを可能にし、また、情報がユーザおよび/または他の構成要素もしくは装置に提示されることも可能にする。入力装置の例には、キーボード、カーソル制御装置(マウスなど)、マイクロホン、スキャナなどが含まれる。出力装置の例には、表示装置(モニタやプロジェクタなど)、スピーカ、プリンタ、ネットワークカードなどが含まれる。
本明細書では様々な技術をソフトウェアまたはプログラムモジュールの一般的文脈で説明する場合がある。一般にソフトウェアは、特定のタスクを実行し、または特定の抽象データ型を実施する、ルーチン、プログラム、アプリケーション、オブジェクト、コンポーネント、データ構造などを含む。これらのモジュールおよび技術の一実装形態は、ある形態のコンピュータ可読媒体上に記憶され、またはある形態のコンピュータ可読媒体を横切って伝送されうる。コンピュータ可読媒体は、コンピューティング装置によってアクセス可能な1つもしくは複数の任意の利用可能な媒体とすることができる。例えば、それだけに限らないが、コンピュータ可読媒体には、「コンピュータ記憶媒体」および「通信媒体」が含まれうる。
「コンピュータ記憶媒体」は、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータといった情報の記憶のための任意の方法または技術で実施された揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、ディジタル多用途ディスク(DVD)もしくは他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報を記憶するのに使用することができ、コンピュータによってアクセスすることができる任意の他の媒体が含まれる。コンピュータ記憶媒体は、単なる信号伝送、搬送波、または信号自体に対して、情報の記憶のための媒体を指す。よって、コンピュータ記憶媒体は非信号搬送媒体を指し、通信媒体ではない。
「通信媒体」は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他のトランスポート機構といった変調データ信号において表現する。また通信媒体は任意の情報伝送媒体も含む。「変調データ信号」という用語は、その特性のうちの1つもしくは複数が、信号において情報を符号化するようなやり方で設定され、または変更されている信号を意味する。例として、それだけに限らないが、通信媒体には、有線ネットワークや直接配線接続といった有線媒体、および音響、RF、赤外線、他の無線媒体といった無線媒体が含まれる。上記のうちのいずれかの組み合わせもコンピュータ可読媒体の範囲内に含まれる。
一般に、本明細書で説明する機能または技術のいずれも、ソフトウェア、ファームウェア、ハードウェア(固定論理回路など)、手動処理、またはこれらの実装形態の組み合わせを使用して実装することができる。「モジュール」および「コンポーネント」という用語は、本明細書で使用する場合、一般に、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを表す。ソフトウェア実装形態の場合には、モジュールまたはコンポーネントは、プロセッサ(1つもしくは複数のCPUなど)上で実行された時に指定されたタスクを実行するプログラムコードを表す。プログラムコードは1つまたは複数のコンピュータ可読メモリデバイスに記憶することができ、コンピュータ可読メモリデバイスの詳細な説明は図5を参照すれば理解されうる。ハードウェア実装形態の場合には、モジュールまたはコンポーネントは、指定されたタスクを実行する機能ブロックまたは他のハードウェアを表す。例えば、ハードウェア実装形態では、モジュールまたはコンポーネントは、特定用途向け集積回路(ASIC:application−specific integrated circuit)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field−programmable gate array)、複合プログラマブル論理回路(CPLD:complex programmable logic device)などとすることができる。本明細書で説明したアプリケーションの再開および/またはアプリケーションの中断適用対象からの除外の技術の特徴はプラットフォームに依存せず、これは、これらの技術を、様々なプロセッサを有する様々な市販のコンピューティングプラットフォーム上で実装することができることを意味する。
発明の対象を構造的特徴および/または方法動作に特有の言葉で説明したが、添付の特許請求の範囲で定義される発明の対象は、必ずしも前述の特有の特徴または動作だけに限定されるものではないことを理解すべきである。そうではなく、前述の特有の特徴および動作は、特許請求の範囲を実施する形態の例として開示したものである。

Claims (5)

  1. コンピューティング装置上で実行されているオペレーティング・システム・コンポーネントから、前記コンピューティング装置上で実行されている複数のアプリケーションのうちの1つのアプリケーションを、前記複数のアプリケーションがポリシーを満たさないことを理由とする中断の適用対象から除外するよう求める要求を受け取るステップと、
    前記要求に応じて、前記1つのアプリケーションを前記コンピューティング装置上での中断の適用対象から除外するステップと
    を含み、
    前記適用対象から除外するステップは、前記1つのアプリケーションをある時間にわたって適用対象から除外するステップと、前記時間が経過した後で前記1つのアプリケーションが中断されることを許容するステップとを含み、
    前記時間は前記要求の適用除外クラスに依存し、異なる適用除外クラスは異なる時間を有するものである、
    方法。
  2. 記1つのアプリケーションは続行を許容されるべき動作を行っていると前記オペレーティング・システム・コンポーネントが判定したことに応じて、前記要求が受け取られる、請求項1に記載の方法。
  3. イベントの発生に応じて前記1つのアプリケーションが中断されることを許容するステップをさらに含む、請求項1に記載の方法。
  4. 1つもしくは複数のプロセッサと、
    前記1つもしくは複数のプロセッサに請求項1ないし3いずれか一項に記載の方法のステップを実行させるコンピュータプログラムが記憶されている1つもしくは複数のコンピュータ可読媒体と
    を備えるコンピューティング装置。
  5. 1つもしくは複数のプロセッサに請求項1ないし3いずれか一項に記載の方法のステップを実行させるコンピュータプログラム。
JP2014529801A 2011-09-09 2012-09-04 アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外 Expired - Fee Related JP6073323B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/229,574 2011-09-09
US13/229,574 US8578394B2 (en) 2011-09-09 2011-09-09 Exempting applications from suspension
PCT/US2012/053679 WO2013036486A1 (en) 2011-09-09 2012-09-04 Resuming applications and/or exempting applications from suspension

Publications (2)

Publication Number Publication Date
JP2014529139A JP2014529139A (ja) 2014-10-30
JP6073323B2 true JP6073323B2 (ja) 2017-02-01

Family

ID=47831065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014529801A Expired - Fee Related JP6073323B2 (ja) 2011-09-09 2012-09-04 アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外

Country Status (6)

Country Link
US (2) US8578394B2 (ja)
EP (1) EP2754042A4 (ja)
JP (1) JP6073323B2 (ja)
KR (1) KR101933246B1 (ja)
CN (1) CN103049339A (ja)
WO (1) WO2013036486A1 (ja)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997171B2 (en) 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination
US9032413B2 (en) 2011-09-01 2015-05-12 Microsoft Technology Licensing, Llc Decoupling background work and foreground work
US9063775B2 (en) 2011-09-01 2015-06-23 Microsoft Technology Licensing, Llc Event aggregation for background work execution
US8578394B2 (en) 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
US9164803B2 (en) 2012-01-20 2015-10-20 Microsoft Technology Licensing, Llc Background task resource control
US8990534B2 (en) 2012-05-31 2015-03-24 Apple Inc. Adaptive resource management of a data processing system
US8997104B2 (en) * 2012-06-29 2015-03-31 Time Warner Cable Enterprises Llc System and method for managing performance of a mobile device
US9489236B2 (en) 2012-10-31 2016-11-08 Microsoft Technology Licensing, Llc Application prioritization
US9658747B2 (en) 2013-10-01 2017-05-23 Microsoft Technology Licensing, Llc Virtual tabs supporting web content suspension
US20190026212A1 (en) * 2013-10-04 2019-01-24 Verto Analytics Oy Metering user behaviour and engagement with user interface in terminal devices
US9871741B2 (en) 2014-03-10 2018-01-16 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
CN106662963B (zh) * 2014-05-19 2020-12-08 三星电子株式会社 用于管理安装在移动通信终端中的应用程序包的方法及装置
US9690685B2 (en) * 2014-05-30 2017-06-27 Apple Inc. Performance management based on resource consumption
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9575812B2 (en) * 2014-12-31 2017-02-21 Servicenow, Inc. Classification based automated instance management
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9910685B2 (en) * 2015-08-13 2018-03-06 Samsung Electronics Co., Ltd. System and method for identifying, indexing, and navigating to deep states of mobile applications
CN105204844A (zh) * 2015-08-20 2015-12-30 上海斐讯数据通信技术有限公司 一种应用界面保存恢复方法、系统、以及一种电子设备
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
CN107301059A (zh) * 2016-04-14 2017-10-27 中兴通讯股份有限公司 一种清理进程的方法及装置
CN109564525B (zh) * 2016-06-28 2023-05-02 亚马逊技术有限公司 按需网络代码执行环境中的异步任务管理
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
CN110294372B (zh) * 2018-03-23 2023-02-28 奥的斯电梯公司 一种无线信号装置、电梯服务请求系统和方法
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US12327133B1 (en) 2019-03-22 2025-06-10 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
WO2022055538A1 (en) * 2020-09-09 2022-03-17 Google Llc Pre-launching an application using interprocess communication
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US12373266B2 (en) * 2022-06-02 2025-07-29 Apple Inc. Application relaunch optimization
US12381878B1 (en) 2023-06-27 2025-08-05 Amazon Technologies, Inc. Architecture for selective use of private paths between cloud services
US12476978B2 (en) 2023-09-29 2025-11-18 Amazon Technologies, Inc. Management of computing services for applications composed of service virtual computing components

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4224664A (en) 1976-05-07 1980-09-23 Honeywell Information Systems Inc. Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system
JPH03202912A (ja) 1989-12-28 1991-09-04 Toshiba Corp 携帯可能電子装置
AU5726596A (en) 1995-05-05 1996-11-21 Apple Computer, Inc. System and method for providing cooperative interrupts in a preemptive task scheduling environment
US5944829A (en) 1996-09-30 1999-08-31 Intel Corporation Adjusting software characteristics by user interface based upon battery level and the amount of time the user wants the battery to last
US6910210B1 (en) 1998-11-24 2005-06-21 Microsoft Corp. System and method for terminating applications
US6834386B1 (en) 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
US6912578B1 (en) 2000-02-25 2005-06-28 Sun Microsystems, Inc. Method and apparatus for improving utilization of a resource on a shared client
US7058947B1 (en) 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
JP2001333153A (ja) * 2000-05-23 2001-11-30 Yamaha Corp ゲーム機能付き携帯電話機における着信処理方法
US20030126416A1 (en) * 2001-12-31 2003-07-03 Marr Deborah T. Suspending execution of a thread in a multi-threaded processor
US20030187857A1 (en) 2002-03-29 2003-10-02 Ford Daniel E. Computer resource access system and method
US7143398B2 (en) 2003-03-13 2006-11-28 Che-An Chang Application infa operating system
JP4205980B2 (ja) 2003-03-28 2009-01-07 株式会社エヌ・ティ・ティ・ドコモ 端末装置およびプログラム
JP4281421B2 (ja) * 2003-06-06 2009-06-17 ソニー株式会社 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
US7500127B2 (en) 2003-09-18 2009-03-03 Vulcan Portals Inc. Method and apparatus for operating an electronic device in a low power mode
US7538762B2 (en) 2003-09-30 2009-05-26 Intel Corporation Switching display update properties upon detecting a power management event
US8275802B2 (en) 2004-06-17 2012-09-25 International Business Machines Corporation Optimized least recently used lookup cache
US20060136882A1 (en) 2004-12-17 2006-06-22 Nokia Corporation System and method for background JAVA application resource control
US7860492B2 (en) * 2005-01-31 2010-12-28 Nokia Corporation Method and device for inhibiting interruption of a running application by an event
JP4738412B2 (ja) 2005-07-12 2011-08-03 富士通株式会社 共用管理プログラム、共用管理方法、端末装置、及び共用管理システム
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7584376B2 (en) 2006-08-23 2009-09-01 Palm, Inc. Method and apparatus for power management
US8954045B2 (en) 2006-09-29 2015-02-10 Qualcomm Incorporated Method and apparatus for managing resources at a wireless device
US20100227691A1 (en) 2006-10-27 2010-09-09 Cecure Gaming Limited Online gaming system
JP4595937B2 (ja) * 2006-12-28 2010-12-08 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US7827358B2 (en) 2007-01-07 2010-11-02 Apple Inc. Memory management methods and systems
US7853812B2 (en) 2007-02-07 2010-12-14 International Business Machines Corporation Reducing power usage in a software application
US7890959B2 (en) 2007-03-30 2011-02-15 Sap Ag System and method for message lifetime management
JP4833146B2 (ja) * 2007-04-24 2011-12-07 ソフトバンクモバイル株式会社 移動体通信端末
US9003394B2 (en) 2007-07-10 2015-04-07 Ricoh Company, Ltd. Program determining apparatus and program determining method
US8510743B2 (en) 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
US8578364B2 (en) 2008-04-25 2013-11-05 Microsoft Corporation Dynamic management of operating system resources
US9027027B2 (en) 2008-06-09 2015-05-05 Microsoft Technology Licensing, Llc Thread management based on device power state
US8566565B2 (en) 2008-07-10 2013-10-22 Via Technologies, Inc. Microprocessor with multiple operating modes dynamically configurable by a device driver based on currently running applications
US8706863B2 (en) 2008-07-18 2014-04-22 Apple Inc. Systems and methods for monitoring data and bandwidth usage
US8510577B2 (en) 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US7587718B1 (en) * 2008-10-31 2009-09-08 Synopsys, Inc. Method and apparatus for enforcing a resource-usage policy in a compute farm
KR101019335B1 (ko) * 2008-11-11 2011-03-07 주식회사 팬택 제스처를 이용한 이동단말의 어플리케이션 제어 방법 및 시스템
US20130024818A1 (en) * 2009-04-30 2013-01-24 Nokia Corporation Apparatus and Method for Handling Tasks Within a Computing Device
US8434153B2 (en) 2009-08-24 2013-04-30 Microsoft Corporation Application display on a locked device
JP2011060225A (ja) 2009-09-14 2011-03-24 Toshiba Corp オペレーティングシステム起動方法
US10089119B2 (en) 2009-12-18 2018-10-02 Microsoft Technology Licensing, Llc API namespace virtualization
US8769139B2 (en) 2010-01-29 2014-07-01 Clarendon Foundation, Inc. Efficient streaming server
US8869154B1 (en) 2010-03-29 2014-10-21 Crimson Corporation Controlling processor usage on a computing device
US20110252423A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Opportunistic Multitasking
CN101860626A (zh) * 2010-06-22 2010-10-13 中兴通讯股份有限公司 应用提供方法及移动终端
JP5129311B2 (ja) * 2010-10-08 2013-01-30 ノキア コーポレイション イベントによる稼動中のアプリケーションの中断を禁止する方法及び装置
US8635630B2 (en) * 2010-10-25 2014-01-21 Microsoft Corporation Application lifetime management
US20120144331A1 (en) 2010-12-03 2012-06-07 Ari Tolonen Method for Arranging Application Windows on a Display
KR20120077265A (ko) * 2010-12-30 2012-07-10 주식회사 팬택 이동 단말기 및 이동 단말기의 제어 방법
US20120324481A1 (en) 2011-06-16 2012-12-20 Samsung Electronics Co. Ltd. Adaptive termination and pre-launching policy for improving application startup time
US8997171B2 (en) 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination
US9063775B2 (en) * 2011-09-01 2015-06-23 Microsoft Technology Licensing, Llc Event aggregation for background work execution
US8578394B2 (en) 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension

Also Published As

Publication number Publication date
US20130067494A1 (en) 2013-03-14
WO2013036486A1 (en) 2013-03-14
CN103049339A (zh) 2013-04-17
US20140040917A1 (en) 2014-02-06
EP2754042A4 (en) 2016-06-08
KR20140059222A (ko) 2014-05-15
US8578394B2 (en) 2013-11-05
EP2754042A1 (en) 2014-07-16
KR101933246B1 (ko) 2018-12-27
JP2014529139A (ja) 2014-10-30
US9361150B2 (en) 2016-06-07

Similar Documents

Publication Publication Date Title
JP6073323B2 (ja) アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外
CN104838360B (zh) 基于配额的资源管理
US11632315B1 (en) System and method for dynamic reporting based management
US8738868B2 (en) Cooperative memory resource management for virtualized computing devices
US8997171B2 (en) Policy based application suspension and termination
JP5872699B2 (ja) サスペンド状態及び実行状態におけるプロセスの管理
US9405572B2 (en) Optimized resource allocation and management in a virtualized computing environment
US9760413B2 (en) Power efficient brokered communication supporting notification blocking
TWI573075B (zh) 持續及有彈性之工作處理
US9176780B2 (en) Dynamically balancing memory resources between host and guest system based on relative amount of freeable memory and amount of memory allocated to hidden applications
US20120210326A1 (en) Constrained Execution of Background Application Code on Mobile Devices
EP3008543B1 (en) Scenario power management
US12561180B2 (en) System and method for subscription management by instantiating and/or retiring composed systems of a managed system
JP5985644B2 (ja) サスペンド状態及び実行状態におけるプロセスの管理
US12373251B2 (en) Techniques for handling polling frequency in event delivery network (EDN)
US7797473B2 (en) System for executing system management interrupts and methods thereof
US8769544B2 (en) Method and system for managing parallel resource request in a portable computing device
EP3871087B1 (en) Managing power request during cluster operations
US20240256318A1 (en) System and method for managing pods hosted by virtual machines

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170104

R150 Certificate of patent or registration of utility model

Ref document number: 6073323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees