JP5984824B2 - アプリケーション・ライフタイム管理 - Google Patents

アプリケーション・ライフタイム管理 Download PDF

Info

Publication number
JP5984824B2
JP5984824B2 JP2013536637A JP2013536637A JP5984824B2 JP 5984824 B2 JP5984824 B2 JP 5984824B2 JP 2013536637 A JP2013536637 A JP 2013536637A JP 2013536637 A JP2013536637 A JP 2013536637A JP 5984824 B2 JP5984824 B2 JP 5984824B2
Authority
JP
Japan
Prior art keywords
application
applications
computing device
usage
threshold
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.)
Active
Application number
JP2013536637A
Other languages
English (en)
Other versions
JP2013542530A5 (ja
JP2013542530A (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
Original Assignee
Microsoft Corp
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 filed Critical Microsoft Corp
Publication of JP2013542530A publication Critical patent/JP2013542530A/ja
Publication of JP2013542530A5 publication Critical patent/JP2013542530A5/ja
Application granted granted Critical
Publication of JP5984824B2 publication Critical patent/JP5984824B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Electric Propulsion And Braking For Vehicles (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Telephone Function (AREA)
  • Power Sources (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

従来技術
[0001] 計算デバイスは、複数のアプリケーションを同時に実行することができる。同時に実行するアプリケーションの数が増えるに連れて、種々の計算デバイス・リソース(プロセッサー、メモリー等のような)の使用も増大する可能性がある。
これらのアプリケーションは、その計算デバイスのユーザーが実際にアプリケーションを使用していなくても、計算デバイス・リソースを使用し続ける可能性がある。複数の同時に実行しているアプリケーションが計算デバイス・リソースを使用すると、計算デバイスの性能を低下させる可能性があり、このためユーザーの苛々や、不快なユーザー体験に至る可能性があるので、これは問題となり得る。
[0002] この摘要は、詳細な説明の章において以下で更に説明する概念から選択したものを簡略化された形式で紹介するために、設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
[0003] 1つ以上の態様によれば、複数のアプリケーションを実行する計算デバイスにおいて、複数のしきい値のうち1つのしきい値が満たされたか否かについてチェックを行う。複数のしきい値の各々は、複数のアプリケーションのうち1つの特性、または計算デバイスのリソースの特性と関連付けられている。しきい値が満たされなかった場合、複数のアプリケーションは、計算デバイスで実行し続けることが許可される。しかしながら、しきい値が満たされた場合、複数のアプリケーションのうち停止すべき1つ以上を、少なくとも部分的に、満たされたしきい値と関連付けられている特性に基づいて選択し、この選択したアプリケーションを停止する。
[0004] 1つ以上の態様によれば、計算デバイスで実行するバックグラウンド・アプリケーションのリストを生成する。このバックグラウンド・アプリケーションのリストには、少なくとも部分的に、このリストにあるバックグラウンド・アプリケーションによる計算デバイスのリソースの使用に基づいて、優先順位を付ける。バックグラウンド・アプリケーションのリストにある1つのアプリケーションを選択し、この選択したアプリケーションを停止する。
[0011] 図面全体にわたって、同様の機構を参照するときには同じ番号を使用することとする。
図1は、1つ以上の実施形態にしたがってアプリケーション・ライフタイム管理を実施する計算デバイス例を示す。 図2は、1つ以上の実施形態にしたがって、アプリケーション・ライフタイム管理を実施するシステム例を示す。 図3は、1つ以上の実施形態にしたがって、アプリケーション・ライフタイム管理を実施するデバイスのためのプロセス例を示すフローチャートである。 図4は、1つ以上の実施形態にしたがって、停止する1つ以上のアプリケーションを選択するプロセス例を示すフローチャートである。 図5は、1つ以上の実施形態にしたがってアプリケーション・ライフタイム管理を実施するように構成することができる計算デバイス例を示す。
[0011] 本明細書ではアプリケーション・ライフタイム(lifetime)管理について説明する。アプリケーションのエージ(age)、プロセッサー使用度、メモリー使用度等というような、アプリケーションおよび/または計算デバイス・リソースの種々の特性を監視する。これら監視した特性の各々には、しきい値が関連付けられており、これらのしきい値のうち少なくとも1つが満たされた場合、1つ以上のアプリケーションを選択して自動的に停止する。自動的に停止するために選択する1つ以上のアプリケーションは、少なくとも部分的に、満たされたしきい値、およびそのしきい値と関連付けられている特性に基づく。
[0012] 図1は、1つ以上の実施形態にしたがってアプリケーション・ライフタイム管理を実施する計算デバイス例100を示す。計算デバイス100は、種々の異なるタイプのデバイスとすることができる。例えば、計算デバイス100は、デスクトップ・コンピューター、ネットブックまたはラップトップ・コンピューター、ノートパッドまたはタブレット・コンピューター、移動局、娯楽機器、ディスプレイ・デバイスと通信可能に結合されているセット・トップ・ボックス、テレビジョン、セルラまたはその他のワイヤレス・フォン、ゲーム・コンソール、自動車用コンピューター等とすることができる。つまり、計算デバイス100は、かなりのメモリーおよびプロセッサー・リソースを有する最大リソースのデバイス(例えば、パーソナル・コンピューター、ゲーム・コンソール)から、メモリーおよび/または処理リソースが限られている、低リソース・デバイス(例えば、従前からのセット・トップ・ボックス、ハンド・ヘルド・ゲーム・コンソール)までの範囲を取ることができる。
[0013] 計算デバイス100は、1つ以上の電源によって電源を受ける。これらの電源は、外部電源または差し込み式電源とすることができ、このような電源からの電源で動作する場合、計算デバイス100は、差し込みシステム(plugged-in system)または差し込みデバイスとして動作すると呼ぶ。また、これらの電源は、バッテリーのような内部電源とすることもでき、このような電源からの電力で動作する場合、計算デバイス100はバッテリー内蔵システム(on-battery system)またはデバイスと呼ぶ。多くのタイプのデバイスは、個々の時点においてデバイスが動作している電源に依存して、異なる時点において、差し込みシステムまたはバッテリー内蔵システムとなることができる。しかしながら、異なるタイプのデバイスが、差し込みシステムだけ(内部電源を有していない)またはバッテリー内蔵システムだけ(外部電源を使用しない)となることもあり得る。
[0014] 計算デバイス100は、オペレーティング・システム102および1つ以上のアプリケーション104を含む。動作の間、オペレーティング・システム102およびアプリケーション104は、計算デバイス100上で実行し、オペレーティング・システム102がアプリケーション104を管理する。アプリケーション104の管理は、1つ以上のアプリケーション104を自動的に停止することを含む。これについては、以下で更に詳しく論ずる。アプリケーション104のライフタイム(lifetime)または使用期間(life)とは、アプリケーションが実行している時間期間を指し、アプリケーションが動作し始めるときに開始し、アプリケーションが停止させられたときに終了する。
[0015] オペレーティング・システム102は、システム情報収集モジュール106、およびアプリケーション・ライフタイム管理モジュール108を含む。システム情報収集モジュール106およびアプリケーション・ライフタイム管理モジュール108は、オペレーティング・システム102の一部であるとして示されているが、代わりに、モジュール106およびモジュール108の一方または双方を、オペレーティング・システム102とは別個に実装することもできる。
[0016] システム情報収集モジュール106は、アプリケーション104および/または計算デバイス100のリソースの特性に関する種々の情報を収集する。アプリケーション104の特性に関する情報には、例えば、各アプリケーション104のエージが含まれる。アプリケーション014のエージとは、アプリケーション104がどの位前から(例えば、分、時間、日等に関して)フォアグラウンド(foreground)に居続けているかを指す。アプリケーションがフォアグラウンドにいるのは、それが表示されているとき、またそれ以外では計算デバイスのユーザー・インターフェースを通じて提示されているときである。アプリケーションが最小化されているとき(そして、任意に、アプリケーションの表示ウィンドウが、他のアプリケーションの表示ウィンドウによって覆われているとき)は、フォアグラウンドにあるのではなく、バックグラウンド・アプリケーションと呼ばれる。また、アプリケーション104の特性に関する情報は、計算デバイス100上で実行しているアプリケーション104の数というような、アプリケーション104の他のプロパティも含むことができる。
[0017] 計算デバイス100のリソースには、プロセッサーおよび/またはプロセッサー・コア、メモリー、ネットワーク接続等というような、計算デバイス100のハードウェアおよび/またはソフトウェア・リソースが含まれる。計算デバイス100のリソースの特性に関する情報には、例えば、計算デバイス100のリソースの使用度に関する情報、計算デバイス100のリソースのプロパティを記述する情報等が含まれる。例えば、計算デバイス100のリソースの特性には、計算デバイス100のプロセッサー(またはプロセッサー・コア)のうち、全てのアプリケーション104全体によって使用されている量、計算デバイス100の各プロセッサー(または各プロセッサー・コア)のうち、個々のアプリケーション各々によって使用されている量、スタンバイ・リスト上にあるメモリー・ページの平均ライフタイム、ネットワーク接続のタイプ(例えば、特定のネットワーク接続がセルラ・ワイヤレス接続、ワイヤレス・ローカル・エリア・ネットワーク(例えば、Wi−Fi)接続等のうちどれなのか)等を含むことができる。
[0018] アプリケーション・ライフタイム管理モジュール108は、アプリケーション情報追跡モジュール112、トリガー・モジュール114、アプリケーション選択モジュール116、および停止モジュール118を含む。アプリケーション情報追跡モジュール112は、システム情報収集モジュール106からアプリケーション104および/または計算デバイス100のリソースの特性に関する情報を受け取る。トリガー・モジュール114は、アプリケーション情報追跡モジュール112によって受け取られた情報を監視し、アプリケーション104および/または計算デバイス100のリソースの特定の特性と関連付けられているしきい値が満たされたときを判断する。アプリケーション104および/または計算デバイス100のリソースと関連付けられているしきい値が満たされたとき、アプリケーション選択モジュール116は、アプリケーション104のうち、停止する1つ以上を選択する。停止モジュール118は、アプリケーション選択モジュール116によって選択された1つ以上のアプリケーションの停止を管理する。停止モジュール108は、アプリケーション選択モジュール116によって選択された1つ以上のアプリケーションを自動的に停止し、選択された1つ以上のアプリケーションを停止モジュール108が停止するために、アプリケーションを停止することのユーザー入力や確認を受け取る必要はない。
[0019] アプリケーション情報追跡モジュール112は、システム情報収集モジュール106からの、アプリケーション104および/または計算デバイス100のリソースの種々の特性に関する情報を維持する。アプリケーション情報追跡モジュール112は、規則的な間隔または不規則な間隔で(例えば、5秒毎)システム情報収集モジュール106にこの情報を要求することができ、またはその代わりに、他のやり方で(例えば、モジュール112がメッセージまたはその他の情報の更新を受け取るように、モジュール106に登録することができる)モジュール106からこの情報を受け取ることができる。
[0020] 1つ以上の実施形態では、アプリケーション情報追跡モジュール112によって維持される情報には、各アプリケーション104のエージ、計算デバイス100におけるプロセッサー・コア毎のプロセッサー(中央処理ユニット即ちCPU)コアの使用度、メモリー使用度、計算デバイス100における記憶デバイス毎の記憶デバイス(例えば、ハード・ディスク)使用度、および計算デバイス100によって使用されるネットワーク接続毎のネットワーク接続使用度が含まれる。プロセッサー・コア使用度は、例えば、全てのアプリケーション104によるプロセッサー・コア容量の総合使用度(例えば、最大プロセッサー・コア容量の百分率として)、および/または各アプリケーション104によるプロセッサー容量(例えば、最大プロセッサー・コア容量の百分率として)の個別使用度である。このようなプロセッサー・コア使用度(アプリケーション全体であっても、または個々のアプリケーションであっても関係なく)は、例えば、特定の間隔で(例えば、5秒毎に)特定の回数の間隔(例えば、12回の間隔)にわたって使用度の平均を取ることによって判断することができる。
[0021] メモリー使用度は、例えば、全てのアプリケーション104によるメモリーの総合使用度、および/または各アプリケーション104によるメモリーの個々の使用度である。このようなメモリー使用度(アプリケーション全体であっても、または個々のアプリケーションであっても関係なく)は、例えば、(例えば、直前の1分というような特定の時間期間、アプリケーションの使用期間等において)オペレーティング・システム102のメモリー・マネージャーによって維持されているスタンバイ・リスト上にあるメモリー・ページの平均ライフタイムを決定することによって、判断することができる。また、このようなメモリー使用度は、アプリケーションに対して作業中の1組のメモリー・ページにおける平均メモリー・ページ数(例えば、直前の1分というような特定の時間期間、アプリケーションの使用期間等における)を判定することによってというように、異なるやり方で判断することもできる。
[0022] 記憶デバイス使用度は、例えば、全てのアプリケーション104による記憶デバイスの総合使用度、および/または各アプリケーション104による記憶デバイスの個々の使用度である。記憶デバイス使用度(アプリケーション全体であっても、または個々のアプリケーションであっても関係なく)は、例えば、記憶デバイスに対するアクセス頻度の平均を取ることによって、判定することができる(例えば、直前の1分というような特定の時間期間、アプリケーションの使用期間等における)。このような記憶デバイス使用度は、(例えば、直前の1分というような特定の時間期間、アプリケーションの使用期間等において)記憶デバイスに転送されたデーター量および/または記憶デバイスから転送されたデーター量を判定することによってというように、異なるやり方では判定することもできる。
[0023] ネットワーク接続使用度は、例えば、全てのアプリケーション104によるネットワーク接続の総合使用度、および/または各アプリケーション104によるネットワーク接続の個々の使用度である。ネットワーク接続使用度(アプリケーション全体であっても、または個々のアプリケーションであっても関係なく)は、例えば、そのネットワーク接続を通じて(例えば、直前の1分というような特定の時間期間、アプリケーションの使用期間等において)伝達された(送られたまたは受け取られた)データーの平均頻度を判定することによって、判定することができる。また、このようなネットワーク接続使用度は、(例えば、直前の1分というような特定の時間期間、アプリケーションの使用期間等において)ネットワーク接続を通じて伝達された(送られたまたは受け取られた)データーの平均量を判定することによってというように、異なるやり方で判定することもできる。
[0024] トリガー・モジュール114は、アプリケーション情報追跡モジュール112によって維持されている情報を使用して、アプリケーション104および/または計算デバイス100のリソースの個々の特性と関連付けられているしきい値が満たされたときを判断する。1つ以上の実施形態では、アプリケーション情報追跡モジュール112によって情報が維持されている各特性は、それ自体の関連付けられたしきい値を有する(しかし、複数のこのようなしきい値が同じ値を有する可能性もあることは注記してしかるべきである)。トリガー・モジュール114によって使用されるしきい値は、トリガー・モジュール114の中に予め設定しておくことができ、あるいは代わりに(計算デバイス100または他のデバイスの)他のコンポーネントまたはモジュールから、トリガー・モジュール114に供給するまたはそれ以外で入手することができる。
[0025] 1つ以上の実施形態では、しきい値が満たされるのは、関連付けられている特性が、そのしきい値に等しい値またはそれを超える値を有する場合である。他の実施形態では、関連付けられている特性がそのしきい値を超える値を有する場合というように、異なるやり方でしきい値を満たすことができる。
[0026] しきい値は、種々の異なるやり方で設定することができ、1つ以上の実施形態では、高度なシステム応答性および長いバッテリー寿命を維持するように設定される。ある種の特性がある種のしきい値が満たされたときにある種のアプリケーションを停止することによって、アプリケーション・ライフタイム管理モジュール108は、高度なシステム応答性および長いバッテリー寿命を維持しようとする。例えば、異なるデバイスの動作の経験的分析に基づいて、個々のしきい値を設定することができる。
[0027] 表1は、アプリケーション104および/または計算デバイス100のリソースの個々の特性について使用することができるしきい値の例を含む。尚、表1に含まれる例は例であって、他のしきい値および/または他の特性を代わりに使用することができることは認められてしかるべきである。表1は、差し込みシステムについて、個々の特性と関連付けられたしきい値の例を示す。
Figure 0005984824
[0028] 表2は、アプリケーション104および/または計算デバイス100のリソースの個々の特性について使用することができる追加のしきい値例を含む。尚、表2に含まれる例は例であって、他のしきい値および/または他の特性を代わりに使用することができることは、認められてしかるべきである。表2は、バッテリー内蔵システムについて個々の特性と関連付けられているしきい値の例を示す。
Figure 0005984824
[0029] アプリケーション選択モジュール116は、しきい値が満たされたとトリガー・モジュール114が判断したことに応答して、アプリケーション104の中から停止する1つ以上を選択する。この選択は、少なくとも部分的に、超過された特定のしきい値と関連付けられている特性に基づき、したがって、少なくとも部分的に、超過された特定のしきい値に基づく。アプリケーション選択モジュール116は、少なくとも1つのしきい値が満たされたときに、アプリケーション104から停止する1つ以上のアプリケーションを選択する。例えば、アプリケーション選択モジュール116は、1つのリソースについてのしきい値(例えば、プロセッサー使用度、メモリー使用度等)が満たされた場合、アプリケーション104から停止する1つ以上のアプリケーションを選択する。
[0030] 1つ以上の実施形態では、アプリケーション選択モジュール116は、停止するアプリケーション104を選択し、この選択したアプリケーション104の指示を停止モジュール118に供給する。停止モジュール118は、選択されたアプリケーション104にそれ自体で停止することの要求を伝達することによって、オペレーティング・システム102の他のコンポーネントまたはモジュールと通信して、選択されたアプリケーション104の実行を終了させることによって等というように、選択されたアプリケーション104を、種々の異なるやり方のいずれかで停止する。選択されたアプリケーション104を停止した後、トリガー・モジュール114は、直前に満たされたしきい値(そして、選択されたアプリケーション104を停止することになった)が未だ満たされているか否かチェックする。しきい値が未だ満たされている場合、アプリケーション選択モジュール116は、静止する他のアプリケーション104を選択する。しかしながら、アプリケーション値がもはや満たされていない場合、追加のアプリケーションを停止する必要はない。
[0031] あるいは、アプリケーションを1つずつ選択するのではなく、アプリケーション選択モジュール116は、停止しようとする複数のアプリケーションを選択することもできる。例えば、アプリケーション選択モジュール116は、計算デバイス100の特定のリソース(例えば、計算デバイス100におけるランダム・アクセス・メモリー(RAM)の特定の量、計算デバイス100におけるプロセッサー・コアの特定の数等)に基づいて、実行させておくべき特定数のアプリケーションを決定することができる。その特定数のアプリケーションだけが実行し続けるように、1つ以上のアプリケーションを選択する。
[0032] アプリケーション選択モジュール116は、種々の異なるやり方で、どのアプリケーション104を停止するか選択することができる。1つ以上の実施形態では、アプリケーション選択モジュール116は、バックグラウンドで実行しているアプリケーションを含む1組のアプリケーションから、停止するアプリケーションを選択する。フォアグラウンドで実行している(したがって、恐らくは、ユーザーに見えると考えられるユーザー・インターフェースを表示している)アプリケーションは、停止するアプリケーションを選択する1組の中には含まれない。アプリケーションがフォアグラウンドで実行しているのかまたはバックグラウンドで実行しているのかということは、システム情報収集モジュール106によって維持されているアプリケーションの特性であり、この特性は、アプリケーション・ライフタイム管理モジュール108によってシステム情報収集モジュール106から引き出すことができる。
[0033] 加えて、1つ以上の実施形態では、アプリケーション情報追跡モジュール112によって維持されているアプリケーション104および計算デバイス100のリソースの特性は、アプリケーション選択モジュール116によって得られる。満たされたしきい値と関連付けられている特性について、その特性についての値に基づいて、バックグラウンドで実行している1組のアプリケーションに優先順位を付ける。アプリケーション選択モジュール116は、バックグラウンドにおいて実行している1組のアプリケーションから、最も有害な(offending)アプリケーション104を選択する。最も有害なアプリケーション104とは、その特性について最大値または最高値を有するアプリケーションである。例えば、最も高いリソース使用度を有するアプリケーション104、最も大きなエージの値(age value)を有するアプリケーション104(例えば、最も古いアプリケーション104)等である。一方、最も害が少ないアプリケーション104とは、最も低いリソース使用度を有するアプリケーション104、最も小さなエージの値を有するアプリケーション等である。例えば、プロセッサー使用度しきい値が満たされた場合、アプリケーション選択モジュール116は、最も大きなプロセッサー使用度を有するアプリケーションを、最も有害なアプリケーションとして選択し、このアプリケーションを、停止すべきアプリケーションとして選択する。例えば、5つの実行中アプリケーション104のプロセッサー使用度がそれぞれ20%、5%、4%、4%、および3%であるとすると、プロセッサー使用度が20%のアプリケーションが、最も高いプロセッサー使用度を有するアプリケーションとなり、停止するために選択されるアプリケーションとなる。あるいは、停止するために複数のアプリケーションを選択することもできる(例えば、プロセッサー使用度が20%のアプリケーション、およびプロセッサー使用度が5%のアプリケーション)。
[0034] あるいは、バックグラウンドで実行している1組のアプリケーションから、停止するアプリケーションを選択するために、他の技法を使用することもできる。例えば、バックグラウンドで実行している1組のアプリケーションに、各アプリケーションが使用される頻度(例えば、アプリケーションが実行している間におけるそのアプリケーションがフォアグラウンドで実行している時間の百分率)に基づいて、各アプリケーションが最後にフォアグラウンドにあったのはいつかに基づいて等によって、優先順位を付けることができる。停止するアプリケーションとして選択されたアプリケーションは、使用された頻度が最も少ないアプリケーション、フォアグラウンドにあったのが最も古いアプリケーション等とすることができる。
[0035] 更に、1つ以上の実施形態では、1つ以上の異なるタイプのアプリケーションを、停止するアプリケーションとして、アプリケーション選択モジュール116によって選択されることから除外する。アプリケーション選択モジュール116には、停止するアプリケーションとしてアプリケーション選択モジュール116によって選択されることから除外される1つ以上のタイプのアプリケーションの指示を設定することができ、または代わりに他のモジュールまたはデバイスからこの指示を得ることができる。停止するアプリケーションとしてアプリケーション選択モジュール116によって選択されることから除外される特定のタイプのアプリケーションは、異なるやり方で、アプリケーション選択モジュール116の設計者あるいは計算デバイス100の管理者またはユーザーの要望に基づいて、決定することができる。
[0036] 尚、アプリケーション104および/または計算デバイス100のリソースの特性ならびに関連付けられたしきい値の種々の例について本明細書において論じているが、これらは例に過ぎず、代わりに他の特性を、本明細書において論ずる技法と共に使用することもできることは注記してしかるべきである。例えば、計算デバイス100上で実行しているアプリケーション104の数というような特性を使用することができ、トリガー・モジュール114は、少なくともしきい値数のアプリケーション104が計算デバイス100上で実行している場合、しきい値が満たされたと判断することができる。他の例として、セルラ・ワイヤレス・ネットワーク接続使用度に対する1つのしきい値、およびWi−Fiネットワーク接続使用度に対する別のしきい値というように、異なるしきい値を異なるタイプのネットワーク接続と関連付けることができる。
[0037] 図2は、1つ以上の実施形態にしたがってアプリケーション・ライフタイム管理を実施するシステム例200を示す。システム200は、例えば、図1の計算デバイス100によって実施することができる。システム200は、アプリケーション・ライフタイム管理モジュール202を含む。これは、例えば、図1のアプリケーション・ライフタイム管理モジュール108とすることができる。
[0038] アプリケーション・ライフタイム管理モジュールは、アプリケーションおよび/またはリソース特性204をシステム情報収集モジュール206から受け取る。これらのアプリケーションおよび/またはリソース特性は、例えば、アプリケーション104および/または計算デバイス100のリソースの種々の特性に関する、図1のアプリケーション情報追跡モジュール112によって受け取られた情報とすることができる。これらのアプリケーションおよび/またはリソース特性204は、図1のシステム情報収集モジュール106のような、他のコンポーネントまたはモジュールを通じて受け取ることができる。
[0039] また、アプリケーション・ライフタイム管理モジュール202は、アプリケーション識別子208もユーザー・インターフェース管理モジュール210から受け取る。アプリケーション識別子208は、例えば、フォアグラウンドで現在実行しているアプリケーションを識別する。ユーザー・インターフェース管理モジュール210は、現在フォアグラウンドにおいて実行しているアプリケーションの記録を維持し、これらのアプリケーションをその記録においてアプリケーション識別子208として供給する。これらのアプリケーション識別子は、図1のシステム情報収集モジュール106のような、他のコンポーネントまたはモジュールを通じて受け取ることもできる。
[0040] アプリケーション・ライフタイム管理モジュール202は、アプリケーション/リソース特性204およびアプリケーション識別子208のうち1つ以上を使用して、停止する1つ以上のアプリケーション212を選択する。これら1つ以上のアプリケーションは、先に論じたように、異なるやり方で選択することができる。例えば、これらのアプリケーション212は、図1のアプリケーション104のうち1つ以上とすることができる。アプリケーション・ライフタイム管理モジュール202は、停止要求またはコマンド214をこれら1つ以上のアプリケーション212に伝達する。
[0041] 図3は、1つ以上の実施形態にしたがってアプリケーション・ライフタイム管理を実施するデバイスのためのプロセス例300を示すフローチャートである。プロセス300は、図1の計算デバイスのような計算デバイスによって実行され、ソフトウェア、ファームウェア、ハードウェア、またはその組み合わせによって実施することができる。プロセス300は、1組の動作(act)として示されており、これら種々の動作の処理(operation)を実行するために示された順序には限定されない。プロセス300は、アプリケーション・ライフタイム管理を実施するデバイスのためのプロセス例であり、アプリケーション・ライフタイム管理実施についての、異なる図を参照する、追加の論述も本明細書には含まれる。
[0042] プロセス300において、しきい値を超過しているか否かチェックを行う(動作302)。先に論じたように、このしきい値は、計算デバイス上で実行しているアプリケーションおよび/または計算デバイスのリソースの特性と関連付けられたしきい値である。
[0043] しきい値を超過していない場合、計算デバイス上で実行しているアプリケーションは、計算デバイス上で実行し続けることが許される(動作304)。次いで、動作302を繰り返す(例えば、規則的な間隔または不規則な間隔で)。
[0044] しかしながら、しきい値を超過している場合、停止する1つ以上のアプリケーションを選択する(動作306)。これら1つ以上のアプリケーションは、先に論じたように、異なるやり方で選択することができる。
[0045] 動作306において選択した1つ以上のアプリケーションを停止する(動作308)。次いで、動作302を繰り返す(例えば、規則的な間隔または不規則な間隔で)。
[0046] 図4は、1つ以上の実施形態にしたがって停止する1つ以上のアプリケーションを選択するプロセス例400を示すフローチャートである。プロセス400は、図1の計算デバイス100のような計算デバイスによって実行され、ソフトウェア、ファームウェア、ハードウェア、またはその組み合わせで実施することができる。プロセス400は、1組の動作として示されており、種々の動作の処理を実行するために示された順序には限定されない。プロセス400は、停止する1つ以上のアプリケーションを選択するプロセス例であり、停止する1つ以上のアプリケーションの選択についての、異なる図を参照する、追加の論述も本明細書には含まれる。
[0047] プロセス400は、通例、計算デバイス上で実行しているアプリケーションおよび/または計算デバイスのリソースの特性と関連付けられたしきい値が満たされたことに応答して開始される。プロセス400において、バックグラウンド・アプリケーションのリストを生成する(動作402)。バックグラウンド・アプリケーションとは、計算デバイス上においてバックグラウンドで実行しているアプリケーションである。
[0048] 任意に、停止することから除外される1つ以上のアプリケーションを、生成したリストから除去する(動作404)。先に論じたように、異なるタイプのアプリケーションを、停止することから除外することができる。
[0049] 生成したリスト上に残っているアプリケーションに優先順位を付ける(動作406)。特定のリソースの使用度(例えば、満たされたしきい値と関連付けられたリソース)、エージ、使用頻度等にしたがってというように異なるやり方で、これらのアプリケーションに優先順位を付けることができる。
[0050] 生成したリスト上で、アプリケーションを選択する(動作408)。動作408において選択されたアプリケーションは、優先順位が最も高いアプリケーションである(例えば、リソース使用度が最も高い、エージが最も古い、使用頻度が最も低い等)。
[0051] 選択したアプリケーションを停止する(動作410)。先に論じたように、選択したアプリケーションは、異なるやり方で停止することができる。
[0052] 次いで、しきい値が未だ満たされているか否かチェックを行う(動作412)。しきい値が未だ満たされている場合、プロセス400は動作408に戻って、別のアプリケーションを選択する。あるいは、プロセス400は動作402に戻って、バックグラウンド・アプリケーションのリストを再度生成することもできる。
[0053] しきい値がもはや満たされていない場合、プロセス400を終了する(動作414)。加えて、停止することができる全てのアプリケーション(例えば、全てのバックグラウンド・アプリケーション、停止されることから除外されない全てのアプリケーション等)が停止され終えている場合、しきい値がなおも満たされていても、プロセス400を終了する(動作414)。
[0054] プロセス400については、リストを生成し、このリストから、停止されるのを除外されるアプリケーションを除去することを参照して論じた。代わりに、バックグラウンド・アプリケーションのリストを生成して、優先順位を付け、生成したリスト上のアプリケーションを選択し、この選択したアプリケーションが、停止することから除外されない場合にのみ、このアプリケーションを停止することもできる。
[0055] 本明細書において論じた技法は、種々の使用シナリオをサポートする。例えば、特定のバックグラウンド・アプリケーションが大量のプロセッサー(またはメモリー)の容量を使用している場合、この特定のバックグラウンド・アプリケーションを、停止するアプリケーションとして選択することができる。つまり、フォアグラウンドになく、デバイス100のユーザーによって現在使用されていないバックグラウンド・アプリケーションを自動的に停止し、他のアプリケーションが使用するために、このバックグラウンド・アプリケーションによって使用されていたリソースを解放する。単純に一番最後に使用されたアプリケーションを停止するのではなく、他のアプリケーションが使用するためにリソースを解放する高い確率を有するアプリケーションが、停止されるアプリケーションとなる。
[0056] また、本明細書において論じたアプリケーション・ライフタイム管理技法は、ユーザーから、複数のアプリケーションを彼または彼女の計算デバイス上で管理する負担の一部を軽減する。ユーザーは、彼または彼女がもはやこれらのアプリケーションを使用しなくなったときに、これらのアプリケーションを停止することを考えることなく、望む通りにアプリケーションを実行することができる。逆に、本明細書において論じたアプリケーション・ライフタイム管理技法は、ユーザーのためにアプリケーションを自動的に停止し、現在ユーザーが使用しているアプリケーションではなく、バックグラウンド・アプリケーションを停止するように配慮する。
[0057] 図5は、1つ以上の実施形態にしたがってアプリケーション・ライフタイム管理を実施するように構成することができる計算デバイス例500を示す。計算デバイス500は、例えば、図1の計算デバイス100とすることができる。
[0058] 計算デバイス500は、1つ以上のプロセッサーまたは処理ユニット502(各々、1つ以上のプロセッサー・コアを含むことができる)、1つ以上のメモリーおよび/または記憶コンポーネント506を含むことができる1つ以上のコンピューター読み取り可能媒体504、1つ以上の入力/出力(I/O)デバイス508、ならびに種々のコンポーネントおよびデバイスが互いに通信し合うことを可能にするバス510を含む。コンピューター読み取り可能媒体504および/または1つ以上のI/Oデバイス508は、計算デバイス500の一部として含ませることができ、あるいは計算デバイス500に結合するのでもよい。バス510は、種々の異なるバスアーキテクチャーを使用する、メモリー・バスまたはメモリー・コントローラ、周辺バス、加速グラフィクス・ポート、プロセッサーまたはローカル・バス等を含む、様々なタイプのバス構造のうち1つ以上を表す。バス510は、有線バスおよび/またはワイヤレス・バスを含むことができる。
[0059] メモリー/記憶コンポーネント506は、1つ以上のコンピューター記憶媒体を表す。コンポーネント506は、揮発性媒体(ランダム・アクセス・メモリー(RAM)のような)、および/または不揮発性媒体(リード・オンリ・メモリー(ROM)、フラッシュ・メモリー、光ディスク、磁気ディスク等のような)を含むことができる。コンポーネント506は、固定媒体(例えば、RAM、ROM、固定ハード・ディスク等)、およびリムーバブル媒体(例えば、フラッシュ・メモリー・ドライブ、リムーバブル・ハード・ドライブ、光ディスク等)を含むことができる。
[0060] 本明細書において論じた技法は、ソフトウェアで実施することができ、1つ以上の処理ユニット502によって命令を実行する。尚、処理ユニット502内、処理ユニット502の種々のキャッシュ・メモリー内、デバイス500の他のキャッシュ・メモリー(図示せず)内、他のコンピューター読み取り可能媒体上等というように、計算デバイス500の異なるコンポーネントに異なる命令を格納することができることは、認められてしかるべきである。加えて、計算デバイス500において命令が格納される場所は、ときの経過と共に変化する可能性があることも認められてしかるべきである。
[0061] 1つ以上の入力/出力デバイス508は、ユーザーがコマンドおよび情報を計算デバイス500に入力することを可能にし、更に情報をユーザーおよび/または他のコンポーネントまたはデバイスに提示することを可能にする。入力デバイスの例には、キーボード、カーソル制御デバイス(例えば、マウス)、マイクロフォン、スキャナー等が含まれる。出力デバイスの例には、ディスプレイ・デバイス(例えば、モニターまたはプロジェクター)、スピーカー、プリンター、ネットワーク・カード等が含まれる。
[0062] 本明細書では、ソフトウェアまたはプログラム・モジュールという一般的なコンテキストで、種々の技法について説明した。一般に、ソフトウェアは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造等を含み、特定のタスクを実行するか、または特定の抽象データー・タイプを実装する。これらのモジュールおよび技法の実施態様は、何らかの形態のコンピューター読み取り可能媒体上に格納すること、またはこれを介して送信することもできる。コンピューター読み取り可能媒体は、計算デバイスによってアクセスすることができる入手可能な1つまたは複数の任意の媒体でも可能である。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、「コンピューター記憶媒体」および「通信媒体」を含むことができる。
[0063] 「コンピューター読み取り可能媒体」は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターというような、情報の格納のためのいずれかの方法または技術で実現されたものである。コンピューター記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができしかもコンピューターがアクセスすることができる他の任意の媒体を含む。
[0064] 「通信媒体」は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを、搬送波またはその他の伝達メカニズムというような変調データー信号の中に具体化する。また、通信媒体は、あらゆる情報配信媒体も含む。「変調データー信号」という用語が意味するのは、信号が特性を有し、情報をその信号の中にエンコードするようなやり方で、その特性の1つ以上が設定または変更されているということである。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体、ならびに音響、RF、赤外線、およびその他のワイヤレス媒体というような、ワイヤレス媒体を含む。以上のうちのあらゆるものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれるものとする。
[0065] 一般に、本明細書において記載した機能または技法は、そのいずれも、ソフトウェア、ファームウェア、ハードウェア(例えば、固定論理回路)、手動処理、またはこれらの実施態様の組み合わせを使用して実現することができる。「モジュール」および「コンポーネント」という用語は、本明細書において使用する場合、ソフトウェア、ファームウェア、ハードウェア、またはその組み合わせを総合的に表す。ソフトウェアの実施態様の場合、モジュールまたはコンポーネントは、プロセッサー(例えば、1つまたは複数のCPU)上において実行されると、指定されたタスクを実行するプログラム・コードを表す。プログラム・コードは、1つ以上のコンピューター読み取り可能メモリー・デバイスに格納することができ、これに関するこれ以上の説明は、図5を参照して見いだすことができる。本明細書において記載したアプリケーション・ライフタイム管理技法の特徴は、プラットフォーム独立ということであり、これが意味するのは、本技法は、種々のプロセッサーを有する種々の商用計算プラットフォーム上において実現できるということである。
[0066] 以上、本主題について、構造的特徴および/または方法論的動作に特定的な文言で説明したが、特許請求の範囲において定義する主題は、必ずしも以上で説明した特定的な特徴や動作には限定されないことは言うまでもない。逆に、以上で説明した特徴および動作は、特許請求の範囲を実施する形態例として開示したまでである。

Claims (10)

  1. 複数のアプリケーションを実行する計算デバイスにおける方法であって、
    複数のしきい値を決定するステップであって、該複数のしきい値の各々が、前記複数のアプリケーションの内の1つのアプリケーションの特性か前記計算デバイスのリソースの特性のいずれかに関連し、前記特性が前記計算デバイスの周期的ネットワーク使用度を含む、ステップと、
    前記計算デバイスが差し込みシステムまたは内蔵バッテリー・システムとして動作しているかどうかに少なくとも部分的に基づいて、前記複数のしきい値を調節するステップと、
    前記計算デバイスの前記周期的ネットワーク使用度により該使用度に関連した前記きい値が満たされたかどうかチェックするステップ
    前記計算デバイスの前記周期的ネットワーク使用度により該使用度に関連した前記しきい値が満たされていない場合、前記複数のアプリケーションが前記計算デバイスにおいて実行し続けることを許可するステップと、
    前記計算デバイスの前記周期的ネットワーク使用度により該使用度に関連した前記しきい値が満たされた場合、
    前記計算デバイスの前記周期的ネットワーク使用度に少なくとも部分的に基づいて、前記複数のアプリケーションから、停止する1つ以上のアプリケーションを選択
    前記1つ以上のアプリケーションを停止す
    ステップと、
    を含む、方法。
  2. 請求項1記載の方法であって、前記特性は、前記複数のアプリケーションによる前記計算デバイスのプロセッサー・コアの使用度を含み、前記方法は、更に、
    前記複数のアプリケーションによる前記プロセッサー・コアの前記使用度により該使用度に関連したしきい値が満たされたかどうかチェックするステップと、
    前記複数のアプリケーションによる前記プロセッサー・コアの使用度により該使用度に関連した前記しきい値が満たされたとき、前記プロセッサー・コアの前記使用度に少なくとも部分的に基づいて、停止する前記複数のアプリケーションのうちの1つ以上の追加のアプリケーションを選択し、該1つ以上の追加のアプリケーションを停止するステップと、
    を含む、方法。
  3. 請求項1記載の方法であって、前記特性は、前記複数のアプリケーションのうち1つのアプリケーションによる前記計算デバイスのプロセッサー・コアの使用度を含み、前記方法は、更に、
    前記1つのアプリケーションによる前記計算デバイスの前記プロセッサー・コアの前記使用度により該使用度に関連したしきい値が満たされたかどうかチェックするステップと、
    前記1つのアプリケーションによる前記プロセッサー・コアの使用度により該使用度に関連した前記しきい値が満たされたとき、前記1つのアプリケーションを停止するステップと、
    を含む、方法。
  4. 請求項1記載の方法であって、前記特性は、前記計算デバイスのメモリーの使用度を含み、前記方法は、更に、
    前記計算デバイスの前記メモリーの使用度により該使用度に関連したしきい値が満たされたかどうかチェックするステップと、
    前記メモリーの前記使用度により該使用度に関連した前記しきい値が満たされたとき、前記メモリーの前記使用度に少なくとも部分的に基づいて、停止する前記複数のアプリケーションのうちの1つ以上の追加のアプリケーションを選択し、該1つ以上の追加のアプリケーションを停止するステップと、
    を含む、方法。
  5. 請求項1記載の方法であって、前記特性は、前記計算デバイスの記憶デバイスの使用度を含み、前記方法は、更に、
    前記計算デバイスの前記記憶デバイスの前記使用度により該使用度に関連したしきい値が満たされたかどうかチェックするステップと、
    前記記憶デバイスの前記使用度により該使用度に関連した前記しきい値が満たされたとき、前記記憶デバイスの前記使用度に少なくとも部分的に基づいて、停止する前記複数のアプリケーションのうちの1つ以上の追加のアプリケーションを選択し、該1つ以上の追加のアプリケーションを停止するステップと、
    を含む、方法。
  6. 請求項1記載の方法であって、前記特性は、前記複数のアプリケーションのうち前記1つのアプリケーションのエージを含み、前記方法は、更に、
    前記複数のアプリケーションのうち前記1つのアプリケーションの前記エージにより該エージに関連したしきい値が満たされたかどうかチェックするステップであって、前記複数のアプリケーションのうち前記1つのアプリケーションの前記エージが、前記複数のアプリケーションのうち前記1つのアプリケーションがフォアグラウンドにどの位長く存続していたかを示す、ステップと、
    前記複数のアプリケーションのうち前記1つのアプリケーションの前記エージにより該エージに関連した前記しきい値が満たされたとき前記複数のアプリケーションのうち前記1つのアプリケーション停止するステップと、
    を含む、方法。
  7. 請求項1記載の方法において、前記複数のアプリケーションから、停止する1つ以上のアプリケーションを選択するステップが、
    前記複数のアプリケーションから、停止されるのを除外される少なくとも1つのアプリケーションを特定するステップであって、前記複数のアプリケーションのうち前記少なくとも1つのアプリケーションが、フォアグラウンドにおいて実行しているアプリケーションを含む、ステップと、
    前記複数のアプリケーションから停止する前記1つ以上のアプリケーションとして、前記複数のアプリケーションのうち前記少なくとも1つのアプリケーション以外の1つ以上のアプリケーションを選択するステップと、
    を含む、方法。
  8. 請求項1記載の方法であって、前記特性は、前記周期的ネットワーク使用度とは異なった前記計算デバイスのリソースの使用度を含み、前記方法は、更に、
    前記周期的ネットワーク使用度とは異なった前記計算デバイスの前記リソースの前記使用度により該使用度と関連したしきい値が満たされたかどうかチェックするステップと、
    前記複数のアプリケーションから、最も大きい前記リソースの使用度を有する1つ以上の追加のアプリケーションを選択し、該1つ以上の追加のアプリケーションを停止するステップと、
    を含む、方法。
  9. 複数の命令を格納した1つ以上のコンピューター記憶メモリーであって、前記複数の命令が、計算デバイスの1つ以上のプロセッサーにより実行されると、前記1つ以上のプロセッサーに、
    前記計算デバイスで実行しているバックグラウンド・アプリケーションのリストを生成する動作であって、該生成が、前記計算デバイスの周期的ネットワーク使用度により該使用度に関連したしきい値が満たされたときに行われ、前記計算デバイスの前記周期的ネットワーク使用度に関連し前記しきい値、前記計算デバイスが内蔵バッテリー・システムとして動作しているときの第1しきい値と、前記計算デバイスが差し込みシステムとして動作しているときの第2しきい値とを有し、前記第1しきい値および前記第2しきい値が異なるしきい値である、動作と、
    前記リストにある前記バックグラウンド・アプリケーションに優先順位を付ける動作であって、周期的ネットワーク使用度がより高い前記バックグラウンド・アプリケーションがより高い優先順位を有するようにする、動作と、
    前記バックグラウンド・アプリケーションのリストにおいて高い優先順位を有するアプリケーションを選択する動作と、
    前記選択したアプリケーションを自動的に停止する動作と、
    前記計算デバイスの前記周期的ネットワーク使用度により該使用度に関連した前記しきい値が満たされなくなるまで、前記アプリケーションの選択、および前記選択したアプリケーションの停止を繰り返す動作と、
    を含む動作を実行させる、1つ以上のコンピューター記憶メモリー。
  10. 請求項9記載の1つ以上のコンピューター記憶メモリーにおいて、前記リストにおける前記アプリケーションの選択は、前記リストにおいて、最大の前記周期的ネットワーク使用度を有するアプリケーションを選択することを含む、1つ以上のコンピューター記憶メモリー。
JP2013536637A 2010-10-25 2011-10-02 アプリケーション・ライフタイム管理 Active JP5984824B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/911,450 US8635630B2 (en) 2010-10-25 2010-10-25 Application lifetime management
US12/911,450 2010-10-25
PCT/US2011/054514 WO2012060955A2 (en) 2010-10-25 2011-10-02 Application lifetime management

Publications (3)

Publication Number Publication Date
JP2013542530A JP2013542530A (ja) 2013-11-21
JP2013542530A5 JP2013542530A5 (ja) 2014-11-20
JP5984824B2 true JP5984824B2 (ja) 2016-09-06

Family

ID=45974105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013536637A Active JP5984824B2 (ja) 2010-10-25 2011-10-02 アプリケーション・ライフタイム管理

Country Status (10)

Country Link
US (1) US8635630B2 (ja)
EP (1) EP2633406A4 (ja)
JP (1) JP5984824B2 (ja)
KR (1) KR101827030B1 (ja)
CN (1) CN102436605B (ja)
AU (1) AU2011323985B2 (ja)
CA (1) CA2814604C (ja)
RU (1) RU2599967C2 (ja)
TW (1) TWI533205B (ja)
WO (1) WO2012060955A2 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008049869A1 (en) * 2006-10-27 2008-05-02 Cecure Gaming Limited Online gaming system
US10631246B2 (en) * 2011-02-14 2020-04-21 Microsoft Technology Licensing, Llc Task switching on mobile devices
US9176759B1 (en) * 2011-03-16 2015-11-03 Google Inc. Monitoring and automatically managing applications
JP5659066B2 (ja) * 2011-03-31 2015-01-28 Kddi株式会社 サービス制御装置およびサービス制御プログラム
US9465427B2 (en) * 2011-06-30 2016-10-11 International Business Machines Corporation Software-centric power management by indirectly determining that user is not actively using computer program running on computing device
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
US8806250B2 (en) 2011-09-09 2014-08-12 Microsoft Corporation Operating system management of network interface devices
US9049660B2 (en) 2011-09-09 2015-06-02 Microsoft Technology Licensing, Llc Wake pattern management
US8578394B2 (en) 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
US8892710B2 (en) 2011-09-09 2014-11-18 Microsoft Corporation Keep alive management
US8990534B2 (en) 2012-05-31 2015-03-24 Apple Inc. Adaptive resource management of a data processing system
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US9477313B2 (en) 2012-11-20 2016-10-25 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving outward-facing sensor of device
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US8994827B2 (en) 2012-11-20 2015-03-31 Samsung Electronics Co., Ltd Wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US11237719B2 (en) * 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
CN102946486A (zh) * 2012-11-20 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的后台应用自动清理方法及手机
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
CN103902357A (zh) * 2012-12-27 2014-07-02 富泰华工业(深圳)有限公司 应用程序管理系统及方法
KR102083316B1 (ko) 2013-04-24 2020-04-14 삼성전자주식회사 사용자 디바이스의 메모리 관리 방법 및 장치
US9749209B2 (en) 2013-11-01 2017-08-29 The Nielsen Company (Us), Llc Methods and apparatus to credit background applications
JP2015106167A (ja) * 2013-11-28 2015-06-08 ソニー株式会社 情報処理装置、情報処理方法および記憶媒体
KR102148948B1 (ko) * 2013-12-06 2020-08-27 삼성전자주식회사 전자 장치의 멀티 태스킹 방법 및 그 전자 장치
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
US9871741B2 (en) 2014-03-10 2018-01-16 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US9760138B2 (en) 2014-04-25 2017-09-12 Microsoft Technology Licensing, Llc Load scheduling in multi-battery devices
US10552179B2 (en) 2014-05-30 2020-02-04 Apple Inc. Resource management with dynamic resource policies
US9690685B2 (en) * 2014-05-30 2017-06-27 Apple Inc. Performance management based on resource consumption
CN104239094B (zh) * 2014-08-29 2017-12-08 小米科技有限责任公司 后台应用程序的控制方法、装置及终端设备
US9696782B2 (en) 2015-02-09 2017-07-04 Microsoft Technology Licensing, Llc Battery parameter-based power management for suppressing power spikes
US10158148B2 (en) 2015-02-18 2018-12-18 Microsoft Technology Licensing, Llc Dynamically changing internal state of a battery
US9748765B2 (en) 2015-02-26 2017-08-29 Microsoft Technology Licensing, Llc Load allocation for multi-battery devices
US9465734B1 (en) 2015-04-08 2016-10-11 Apple Inc. Coalition based memory management
US9983887B2 (en) 2015-06-05 2018-05-29 Apple Inc. Memory management of data processing systems
US10558500B2 (en) * 2015-07-27 2020-02-11 Hewlett Packard Enterprise Development Lp Scheduling heterogenous processors
US9971664B2 (en) * 2015-08-27 2018-05-15 Vmware, Inc. Disaster recovery protection based on resource consumption patterns
US9939862B2 (en) 2015-11-13 2018-04-10 Microsoft Technology Licensing, Llc Latency-based energy storage device selection
US10061366B2 (en) 2015-11-17 2018-08-28 Microsoft Technology Licensing, Llc Schedule-based energy storage device selection
US9793570B2 (en) 2015-12-04 2017-10-17 Microsoft Technology Licensing, Llc Shared electrode battery
CN107291549B (zh) * 2016-03-31 2020-11-24 阿里巴巴集团控股有限公司 一种管理应用程序的方法及装置
CN112882804A (zh) 2016-08-17 2021-06-01 华为技术有限公司 一种启动应用的方法及装置
US10169576B2 (en) 2016-11-15 2019-01-01 International Business Machines Corporation Malware collusion detection
CN106791152B (zh) * 2016-12-30 2019-08-27 Oppo广东移动通信有限公司 一种通信方法及移动终端
KR102365227B1 (ko) * 2017-03-21 2022-02-22 삼성전자 주식회사 전자장치 및 그 제어방법
US10397096B2 (en) 2017-04-28 2019-08-27 International Business Machines Corporation Path resolution in InfiniBand and ROCE networks
US11243899B2 (en) * 2017-04-28 2022-02-08 International Business Machines Corporation Forced detaching of applications from DMA-capable PCI mapped devices
US10778767B2 (en) 2017-04-28 2020-09-15 International Business Machines Corporation Persistent memory replication in RDMA-capable networks
CN109511283A (zh) * 2017-05-25 2019-03-22 深圳配天智能技术研究院有限公司 一种程序文件显示方法、终端及计算机存储介质
CN107222914B (zh) * 2017-06-14 2020-09-29 Oppo广东移动通信有限公司 应用控制方法及相关产品
WO2019094771A1 (en) * 2017-11-10 2019-05-16 R-Stor Inc. System and method for scaling provisioned resources
KR102492996B1 (ko) 2018-06-08 2023-01-31 삼성전자주식회사 외부 입력을 이용하여 백그라운드 태스크를 처리하는 전자 장치 및 그 저장 매체
US11966588B2 (en) * 2021-10-26 2024-04-23 Google Llc Flash memory usage management
KR20230080535A (ko) * 2021-11-30 2023-06-07 삼성전자주식회사 메모리 회수 방법 및 장치

Family Cites Families (29)

* 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
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
US20030187857A1 (en) 2002-03-29 2003-10-02 Ford Daniel E. Computer resource access system and method
US7538762B2 (en) * 2003-09-30 2009-05-26 Intel Corporation Switching display update properties upon detecting a power management event
AU2004280492A1 (en) * 2003-10-10 2005-04-21 Koninklijke Philips Electronics N.V. Java lifecycle model for BD-discs
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
JP4060322B2 (ja) 2005-03-28 2008-03-12 三菱電機株式会社 アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体
JP2007013315A (ja) * 2005-06-28 2007-01-18 Toshiba Corp 情報処理装置および動画像再生方法
WO2007007397A1 (ja) 2005-07-12 2007-01-18 Fujitsu Limited 共用管理プログラム、共用管理方法、端末装置、及び共用管理システム
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
WO2008049869A1 (en) 2006-10-27 2008-05-02 Cecure Gaming Limited Online gaming system
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
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
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
US8479202B2 (en) 2009-02-06 2013-07-02 International Business Machines Corporation Method and system for autonomic application program spawning in a computing environment
US8769139B2 (en) 2010-01-29 2014-07-01 Clarendon Foundation, Inc. Efficient streaming server
US20120144331A1 (en) 2010-12-03 2012-06-07 Ari Tolonen Method for Arranging Application Windows on a Display
US8997171B2 (en) 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination

Also Published As

Publication number Publication date
CA2814604A1 (en) 2012-05-10
AU2011323985B2 (en) 2014-10-09
WO2012060955A3 (en) 2012-07-19
CA2814604C (en) 2018-10-23
EP2633406A4 (en) 2016-05-04
AU2011323985A1 (en) 2013-05-02
US20120102504A1 (en) 2012-04-26
KR20130127445A (ko) 2013-11-22
TWI533205B (zh) 2016-05-11
CN102436605A (zh) 2012-05-02
RU2013119123A (ru) 2014-10-27
RU2599967C2 (ru) 2016-10-20
WO2012060955A2 (en) 2012-05-10
CN102436605B (zh) 2014-10-22
EP2633406A2 (en) 2013-09-04
US8635630B2 (en) 2014-01-21
TW201220180A (en) 2012-05-16
JP2013542530A (ja) 2013-11-21
KR101827030B1 (ko) 2018-02-07

Similar Documents

Publication Publication Date Title
JP5984824B2 (ja) アプリケーション・ライフタイム管理
US8997171B2 (en) Policy based application suspension and termination
US10289183B2 (en) Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system
US20190258514A1 (en) I/O Request Scheduling Method and Apparatus
US8424007B1 (en) Prioritizing tasks from virtual machines
US9619378B2 (en) Dynamically optimizing memory allocation across virtual machines
WO2021159638A1 (zh) 集群队列资源的调度方法、装置、设备及存储介质
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
JP2013542530A5 (ja)
CN103631661A (zh) 一种内存管理方法和装置
US20120246436A1 (en) Combining memory pages having identical content
JP2018533122A (ja) マルチバージョンタスクの効率的なスケジューリング
WO2012103231A1 (en) Computing platform with resource constraint negotiation
US10467054B2 (en) Resource management method and system, and computer storage medium
CN105378668B (zh) 多处理器系统中的操作系统管理的中断引导
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
CN114327894A (zh) 资源分配方法、装置、电子设备及存储介质
CN112650449A (zh) 缓存空间的释放方法、释放系统、电子设备及存储介质
US20160077882A1 (en) Scheduling system, scheduling method, and recording medium
CN111107429A (zh) 提高电视系统性能的方法、装置及计算机可读存储介质
WO2022062937A1 (zh) 任务调度方法、装置以及计算机系统
US20130247063A1 (en) Computing device and method for managing memory of virtual machines
CN112445577B (zh) 容器添加方法、装置、终端设备及存储介质
JP6491995B2 (ja) システム設計支援装置およびシステム設計支援方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141002

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141002

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160310

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: 20160704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160802

R150 Certificate of patent or registration of utility model

Ref document number: 5984824

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