JP2016528648A - 電力消費の低減のためのネットワークアプリケーション並行スケジューリング - Google Patents

電力消費の低減のためのネットワークアプリケーション並行スケジューリング Download PDF

Info

Publication number
JP2016528648A
JP2016528648A JP2016536072A JP2016536072A JP2016528648A JP 2016528648 A JP2016528648 A JP 2016528648A JP 2016536072 A JP2016536072 A JP 2016536072A JP 2016536072 A JP2016536072 A JP 2016536072A JP 2016528648 A JP2016528648 A JP 2016528648A
Authority
JP
Japan
Prior art keywords
network
network request
computing device
mobile computing
application
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.)
Granted
Application number
JP2016536072A
Other languages
English (en)
Other versions
JP6189545B2 (ja
Inventor
オウ,ジョーンホーン
ワーン,レン
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2016528648A publication Critical patent/JP2016528648A/ja
Application granted granted Critical
Publication of JP6189545B2 publication Critical patent/JP6189545B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0212Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave
    • H04W52/0216Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave using a pre-established activity schedule, e.g. traffic indication frame
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer Hardware Design (AREA)

Abstract

電力消費を低減させるようにネットワークリクエストをスケジューリングするための技術は、ネットワークアプリケーションからネットワークリクエストを受信し、ネットワークアプリケーションの実行制約に基づいて、ネットワークリクエストが遅延可能かどうかを判定するよう構成されたモバイルコンピューティングデバイスを含む。実行制約は、必要とされる処理リソース、許容可能な遅延、優先度、アプリケーションクラス、及びその他を含み得る。ネットワークリクエストが遅延可能である場合、モバイルコンピューティングデバイスは、閾数の遅延可能なリクエストが受信されるまで、あるいは、遅延可能でないリクエストが受信されるまで、ネットワークリクエストを遅延させることができる。モバイルコンピューティングデバイスは、遅延されたネットワークリクエストと、後に受信された全てのリクエストと、を並行して実行する。実行制約は、各ネットワークアプリケーションにより提供されてもよいし、観測を通じてモバイルコンピューティングデバイスにより決定されてもよい。他の実施形態も説明され特許請求される。

Description

高速無線ネットワークに接続されるスマートフォン、タブレット、及びノートブックコンピュータ等のポータブルコンピューティングデバイスは、帯域幅集中型ネットワークアプリケーションの使用を大いに増大させている。ほとんどのポータブルデバイスは、メディアストリーミング、ビデオチャット、インタラクティブメッセージング、及びクラウドデータストレージアプリケーションを含む、利用可能な多くのネットワーク負荷の高いアプリケーションを有する。しかしながら、ポータブルコンピューティングデバイスは、通常、制限されたバッテリ容量しか有していない。ポータブルコンピューティングデバイスの使用の増大、特に、無線ネットワーク無線機の使用の増大は、ポータブルデバイスの電力消費量を増加させ、したがって、使用可能なバッテリ寿命を低減させる。
本明細書で説明するコンセプトが、限定ではなく例として、添付の図面に示される。例示の単純さ及び明瞭さのため、図面に示される要素は、必ずしも縮尺通りに描かれてはいない。適切であると考えられる場合には、対応要素又は類似要素を示すために、参照レベルが複数の図面の間で繰り返される。
ネットワークアプリケーション並行スケジューリングのためのシステムの少なくとも1つの実施形態の簡略化されたブロック図。 図1のモバイルコンピューティングデバイスにより確立され得る環境の少なくとも1つの実施形態の簡略化されたブロック図。 図1及び図2のシステムのモバイルコンピューティングデバイスにより実行され得る、ネットワークリクエストをスケジューリングするための方法の少なくとも1つの実施形態の簡略化されたフロー図。 図1及び図2のモバイルコンピューティングデバイスにより実行され得る、ネットワークリクエストを並行実行するための方法の少なくとも1つの実施形態の簡略化されたフロー図。 図1及び図2のモバイルコンピューティングデバイスにより実行され得る、ネットワークリクエストが遅延可能かどうかを判定するための方法の少なくとも1つの実施形態の簡略化されたフロー図。 図1及び図2のモバイルコンピューティングデバイスにより達成され得る例示的な結果を示すチャート。
本開示のコンセプトは、様々な変形形態及び代替形態を受け入れる余地があるが、その特定の実施形態が、例として図面に示され、本明細書で詳細に説明される。しかしながら、本開示のコンセプトを、開示する特定の形態に限定する意図はなく、反対に、意図は、本開示及び添付の特許請求の範囲と整合する全ての変形形態、均等形態、及び代替形態をカバーすることにあることを理解すべきである。
「一実施形態」、「ある実施形態」、「例示的な実施形態」等の本明細書における言及は、説明する実施形態が、特定の特徴、構造、又は特性を含み得るが、全ての実施形態が、そのような特定の特徴、構造、又は特性を含んでもよいし、又は、必ずしもそのような特定の特徴、構造、又は特性を含む必要がなくてもよいことを示す。さらに、このような語句は、必ずしも同じ実施形態を指すわけではない。さらに、特定の特徴、構造、又は特性がある実施形態との関連で記載されている場合には、明示されていようといまいと、他の実施形態との関連でそのような特徴、構造、又は特性を実装することは当業者の知識の範囲内であるとする。さらに、「A、B、及びCのうち少なくとも1つ」という形のリストに含まれる項目は、(A);(B);(C);(A及びB);(A及びC);(B及びC);又は(A、B、及びC)を意味し得ることを理解すべきである。同様に、「A、B、又はCのうち少なくとも1つ」という形でリストされる項目は、(A);(B);(C);(A及びB);(A及びC);(B及びC);又は(A、B、及びC)を意味し得る。
開示する実施形態は、場合に応じて、ハードウェア、ファームウェア、ソフトウェア、又はこれらの任意の組合せにより実装することができる。開示する実施形態はまた、1以上のプロセッサにより読み出されて実行され得る、一時的又は非一時的な1以上のマシン読み取り可能な記憶媒体(例えば、コンピュータ読み取り可能な記憶媒体)により運ばれる命令又はそのような媒体に記憶される命令として実装することができる。マシン読み取り可能な記憶媒体は、マシンにより読み取ることができる形式で情報を記憶又は伝送する任意の記憶デバイス、メカニズム、又は他の物理的構造(例えば、揮発性メモリ、不揮発性メモリ、メディアディスク、又は他のメディアデバイス)として具現化することができる。
図面において、いくつかの構造的特徴又は方法的特徴が、特定の配置及び/又は順序で示され得る。しかしながら、そのような特定の配置及び/又は順序が必要とされるわけではないことを理解すべきである。そうではなく、いくつかの実施形態においては、そのような特徴は、例示する図面に示される態様及び/又は順序と異なる態様及び/又は順序で構成することもできる。さらに、特定の図面内に構造的特徴又は方法的特徴が含まれることは、そのような特徴が全ての実施形態において必要とされることを意味しないし、いくつかの実施形態においては、そのような特徴が含まれないことを意味しない、又はそのような特徴が他の特徴と組み合わされないことを意味しない。
次に図1を参照すると、例示的な実施形態において、ネットワークアプリケーション並行スケジューリングのためのシステム100は、モバイルコンピューティングデバイス102及び1以上のアプリケーションサーバ104を含む。モバイルコンピューティングデバイス102及びアプリケーションサーバ104は、ネットワーク106を介して互いと通信することができる。以下でより詳細に説明するように、使用の際、モバイルコンピューティングデバイス102は、アプリケーションサーバ104と通信する複数のネットワークアプリケーションを実行する。モバイルコンピューティングデバイス102は、それらのアプリケーションから複数のネットワークリクエストを受信し、それらのリクエストが、ネットワークアプリケーション又はその使用に悪影響を及ぼすことなく、遅延可能かどうかを判定する。モバイルコンピューティングデバイス102は、可能であれば、リクエストが、別の遅延可能なリクエスト又は遅延可能でないリクエストと並行して実行され得るまで、リクエストを遅延させる。例えば、モバイルコンピューティングデバイス102は、各ネットワークアプリケーションの実行の少なくとも一部が、互いとオーバーラップするように、又は、互いとほぼ同時に生じるように、遅延された1以上のアプリケーションを、別の遅延されたアプリケーション又は遅延されていないアプリケーションとともに実行することができる。いくつかの実施形態において、モバイルコンピューティングデバイス102は、互いと同じ時間に又は互いとほぼ同時に開始するように並行実行されるアプリケーションをスケジューリングすることができ、これらのアプリケーションが、並列に又は交互に(in an interleaved manner)実行され得る(例えば、各並行実行されるアプリケーションは、モバイルコンピューティングデバイス102のネットワークインタフェース又は他のハードウェアに交互にアクセスすることができる)。そのような実施形態において、ネットワークアプリケーションの実行は、異なる時間に終了し得ることを理解すべきである。他の実施形態においては、遅延されたアプリケーションは、別のアプリケーションの実行の開始のいくらかあとにこの遅延されたアプリケーションの実行を開始することにより、この別のアプリケーションと並行して実行され得る。
例えば、いくつかの実施形態において、第1のネットワークアプリケーションは、アプリケーションサーバ104aに接続するリクエストを発することがある。モバイルコンピューティングデバイス102は、別のアプリケーションからのアプリケーションサーバ104bに接続するリクエストが受信されるまで、アプリケーションサーバ104aに接続するこのリクエストを遅延させることができる。この例において、モバイルコンピューティングデバイス102は、アプリケーションサーバ104a及び104bに接続するこれらのリクエストを並行して処理する(service)。
ネットワークアプリケーション並行スケジューリングは、ネットワークリクエストを順次的に又は個々に処理する場合と比較して、モバイルコンピューティングデバイス102の電力消費を低減させることができる。さらに、多くの無線ネットワーク106に関して、並行実行は、各ネットワークアプリケーションのパフォーマンスに悪影響を及ぼし得ない。詳細には、アプリケーションサーバ104が、利用可能な帯域幅に関して、アプリケーションサーバ104の帯域幅使用を抑制(throttle)又は制限するとき(これは、多くのメディアストリーミングアプリケーションにとって一般的である)、パフォーマンス全体及びユーザエクスペリエンスは、並行ネットワーク実行により変わらないままであり得る。
モバイルコンピューティングデバイス102は、本明細で説明する機能を実行することができる任意のタイプのデバイスとして具現化することができる。そのようなデバイスは、スマートフォン、携帯電話機、ハンドセット、コンピュータ、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、メッセージングデバイス、車両テレマティックスデバイス、ネットワークアプライアンス、ウェブアプライアンス、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、及び/又はコンシューマ電子デバイスを含むが、これらに限定されるものではない。図1に示されるように、モバイルコンピューティングデバイス102は、プロセッサ120、入力/出力サブシステム122、メモリ124、データ記憶デバイス126、及び通信回路130を含む。もちろん、モバイルコンピューティングデバイス102は、他の実施形態においては、スマートフォンにおいて一般的に見つけられるコンポーネント等の他のコンポーネント又はさらなるコンポーネント(例えば、様々な入力/出力デバイス)を含んでもよい。さらに、いくつかの実施形態においては、図示されるコンポーネントのうちの1以上のコンポーネントは、別のコンポーネントに組み込まれてもよいし、別のコンポーネントの一部を形成してもよい。例えば、いくつかの実施形態においては、メモリ124又はメモリ124の一部は、プロセッサ120に組み込まれてもよい。
プロセッサ120は、本明細書で説明する機能を実行することができる任意のタイプのプロセッサとして具現化することができる。例えば、プロセッサ120は、シングルコアプロセッサ、マルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、又は、他のプロセッサ若しくは処理/制御回路として具現化することができる。同様に、メモリ124は、本明細書で説明する機能を実行することができる任意のタイプの揮発性メモリ、不揮発性メモリ、又はデータストレージとして具現化することができる。動作中、メモリ124は、モバイルコンピューティングデバイス102の動作中に使用される、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバ等の様々なソフトウェア及びデータを記憶することができる。メモリ124は、I/Oサブシステム122を介して、プロセッサ120に通信可能に接続される。I/Oサブシステム122は、モバイルコンピューティングデバイス102のプロセッサ120、メモリ124、及び他のコンポーネントによる入力/出力オペレーションを円滑にする回路及び/又はコンポーネントとして具現化することができる。例えば、I/Oサブシステム122は、メモリコントローラハブ、入力/出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレース等)、並びに/又は、入力/出力オペレーションを円滑にする他のコンポーネント及びサブシステムとして具現化されてもよいし、これらを含んでもよい。いくつかの実施形態において、I/Oサブシステム122は、システムオンチップ(SoC)の一部を形成して、モバイルコンピューティングデバイス102のプロセッサ120、メモリ124、及び他のコンポーネントとともに、単一の集積回路チップに組み込むことができる。
データ記憶デバイス126は、データの短期記憶又は長期記憶のために構成される任意のタイプの1以上のデバイスとして具現化することができる。そのようなデバイスとして、例えば、メモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、又は他のデータ記憶デバイス等がある。データ記憶デバイス126は、モバイルコンピューティングデバイス102にインストールされた様々なネットワークアプリケーション及び/又はモバイルコンピューティングデバイス102上で実行される様々なネットワークアプリケーションのネットワーク要件、処理要件、及び他のリソース要件を規定するために使用される1以上のアプリケーション実行制約128を記憶することができる。以下でより詳細に説明するように、モバイルコンピューティングデバイス102は、特定のアプリケーションに関連付けられた1以上のアプリケーション実行制約に基づいて、アプリケーションの実行が遅延可能かどうかを判定することができる。
モバイルコンピューティングデバイス102の通信回路130は、ネットワーク106を介する、モバイルコンピューティングデバイス102、アプリケーションサーバ104、及び/又は他のリモートデバイスの間の通信を可能にすることができる任意の通信回路、通信デバイス、又はこれらの集合として具現化することができる。通信回路130は、任意の1以上の通信技術(例えば、無線通信又は有線通信)と関連プロトコル(例えば、3G、LTE、Bluetooth(登録商標)、Wi−Fi(登録商標)、WiMAX(登録商標)等)とを使用してそのような通信を実現するよう構成することができる。例示的な通信回路130は、無線通信を用いてネットワーク106と通信する。しかしながら、本開示は、有線ネットワーク接続(例えば、Ethernet(登録商標))にも等しく適用可能であることを理解すべきである。
例示的な実施形態において、モバイルコンピューティングデバイス102は、ディスプレイ132をさらに含む。モバイルコンピューティングデバイス102のディスプレイ132は、デジタル情報を表示することができる任意のタイプのディスプレイとして具現化することができる。そのようなディスプレイとして、例えば、液晶ディスプレイ(LCD)、発光ダイオード(LED)、プラズマディスプレイ、陰極線管(CRT)、又は他のタイプのディスプレイデバイスがある。いくつかの実施形態においては、ディスプレイ132は、モバイルコンピューティングデバイス102とのユーザインタラクションを可能にするように、タッチスクリーンに接続されてもよい。
アプリケーションサーバ104の各々は、モバイルコンピューティングデバイス102の1以上のアプリケーションにネットワークサービスを提供するよう構成される。例えば、アプリケーションサーバ104は、電話サービス(例えば、VoIPサービス)、ビデオサービス、ウェブサービス、電子メール、クラウドデータサービス、又は任意の他のネットワークサービスを提供することができる。例えば、例示的な実施形態において、アプリケーションサーバ104aは、ウェブサービスを提供することができ、アプリケーションサーバ104bは、VoIPサービスを提供することができる。各アプリケーションサーバ104は、本明細書で説明する機能を実行することができる任意のタイプのサーバコンピューティングデバイス又はデバイスの集合として具現化することができる。そのようなものとして、各アプリケーションサーバ104は、単一のサーバコンピューティングデバイス又はサーバの集合、及び関連デバイスとして具現化することができる。例えば、いくつかの実施形態において、各アプリケーションサーバ104は、ネットワーク106にわたって分散された複数のコンピューティングデバイスから形成され、パブリッククラウド又はプライベートクラウドにおいて動作する「仮想サーバ」として具現化することができる。したがって、1以上のアプリケーションサーバ104が、図1において、単一のサーバコンピューティングデバイスとして具現化されたものとして示されているが、各アプリケーションサーバ104は、以下で説明する機能を促進するために協働する複数のデバイスとして具現化されてもよいことを理解すべきである。さらに、各アプリケーションサーバ104は、説明を明瞭にするために図1には示されていないプロセッサ、I/Oサブシステム、メモリ、データ記憶デバイス、通信回路、及び様々な周辺デバイス等の、モバイルコンピューティングデバイス102及び/又は一般的なデータサーバと同様のコンポーネント及び特徴を含み得る。
以下でより詳細に説明するように、モバイルコンピューティングデバイス102及び1以上のアプリケーションサーバ104は、ネットワーク106を介して、互いとの間で、且つ/又は、システム100の他のデバイスとの間で、データを送受信するよう構成することができる。ネットワーク106は、任意の数の様々な有線ネットワーク及び/又は無線ネットワークとして具現化することができる。例えば、ネットワーク106は、有線ローカルエリアネットワーク(LAN)又は無線LAN、有線ワイドエリアネットワーク(WAN)又は無線WAN、セルラネットワーク、及び/又は、インターネット等のパブリックにアクセス可能な全世界的ネットワークとして具現化されてもよいし、これらを含んでもよい。したがって、ネットワーク106は、システム100のデバイス間における通信を円滑にするための、さらなるコンピュータ、ルータ、及びスイッチ等の任意の数のさらなるデバイスを含み得る。
次に図2を参照すると、例示的な実施形態において、モバイルコンピューティングデバイス102は、動作中に環境200を確立する。環境200は、複数のネットワークアプリケーション202、アプリケーションスケジューラモジュール206、及びネットワーク通信モジュール212を含む。環境200は、アプリケーション実行制約214をさらに含む。環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組合せとして具現化することができる。
ネットワークアプリケーション202はそれぞれ、アプリケーションサーバ104のうちの1以上により提供されるサービスにアクセスする任意のアプリケーションとして具現化することができる。ネットワークアプリケーション202の各々は、アプリケーションサーバ104にアクセスする前に、ネットワークリクエストをアプリケーションスケジューラモジュール206に送信するよう構成される。追加的又は代替的に、アプリケーションスケジューラモジュール206は、アプリケーション202によるネットワークアクセスを「トラップする」よう構成されてもよい。いくつかの実施形態において、各ネットワークアプリケーション202は、ネットワークリクエストを送信するときに、又は、アプリケーション202のインストール中等といったネットワークリクエストを送信するよりも前に、関連付けられたアプリケーション実行制約204をアプリケーションスケジューラモジュール206に送信することができる。これらのアプリケーション実行制約204は、以下で説明するように、環境200内に確立されたアプリケーション実行制約214に記憶され得る。アプリケーション202が、ネットワークアプリケーションとして図示され説明されているが、本開示は、モバイルコンピューティングデバイス102上で実行可能な任意の種類のアプリケーションにも等しく適用可能であることを理解すべきである。
アプリケーションスケジューラモジュール206は、ネットワークアプリケーション202からネットワークリクエストを受信し、直ちに実行されるように又は遅延されて実行されるように各ネットワークリクエストをスケジューリングするよう構成される。アプリケーションスケジューラモジュール206は、ネットワークアプリケーション202に関連付けられたアプリケーション実行制約214に基づいて、遅延されて実行されるようにネットワークリクエストをスケジューリングするかどうかを判定する。以下で説明するように、ネットワークリクエストは、アプリケーション202の許容可能な遅延、優先度、アプリケーションクラス、又は任意の他の実行制約に基づいて、遅延可能であり得る。アプリケーションスケジューラモジュール206は、さらに、総電力消費量を低減させるために、並行実行されるようにネットワークリクエストをスケジューリングするよう構成される。リクエストのスケジューリングを管理するために、アプリケーションスケジューラモジュール206は、遅延されて実行されるようにスケジューリングされたネットワークリクエストのキューを保持することができ、リクエストが許容されるパラメータ内に実行されることを確実にするためのタイマを保持することができる。いくつかの実施形態において、これらの機能は、サブモジュール(例えば、遅延リクエストキュー208又は遅延タイマ210)により実行され得る。
ネットワーク通信モジュール212は、アプリケーションスケジューラモジュール206により、実行されるようにスケジューリングされているネットワークリクエストを実行又は促進するよう構成される。ネットワークリクエストを実行することは、ネットワーク接続をオープンすること、データを送受信すること、及び、ネットワークアプリケーション202により必要とされる任意の他の処理を含み得る。ネットワーク通信モジュール212は、ネットワークリクエストを実行するための適切なアプリケーション202をアクティブ化し、アプリケーション202により提供されるタスク、スレッド、又はプロセスを実行してネットワークリクエストを実行することができる、又は、ネットワークリクエストを独立して実行することができる。
アプリケーション実行制約214は、許容可能なパフォーマンス及び/又はユーザエクスペリエンスのためにネットワークアプリケーション202により必要とされるリソース要件、時間制限、及び/又は他のパラメータを規定するものである。以下でさらに説明するように、アプリケーション実行制約214は、ネットワークリソース、処理リソース、必要とされるタイミング、又はネットワークアプリケーション202の緊急度を表すことができる。いくつかの実施形態において、アプリケーション実行制約214は、各ネットワークアプリケーション202により提供され得る。例えば、各ネットワークアプリケーション202の開発者は、アプリケーション202がインストールされるときにアプリケーション実行制約214にインストールされる制約を提供することができる。追加的又は代替的に、モバイルコンピューティングデバイス102は、使用中のネットワークアプリケーション202の挙動を経時的にモニタリングすることにより、アプリケーション実行制約214を決定してもよい。アプリケーション実行制約214は、例えばローカルデータベースとして、任意のデータフォーマットで記憶され得る。
次に図3を参照すると、使用の際、モバイルコンピューティングデバイス102は、ネットワークアプリケーションのスケジューリングのための方法300を実行することができる。方法300は、ブロック302で開始する。ブロック302において、モバイルコンピューティングデバイス102は、ネットワークリクエストをモニタリングする。ネットワークリクエストは、任意の抽象レベルで、ネットワークアプリケーション202と1以上のアプリケーションサーバ104との間でネットワークデータを送信又は受信する任意のリクエストとして具現化され得る。ネットワークアプリケーション202は、標準化されたアプリケーションプログラミングインタフェース(「API」)を用いてネットワークリクエストを送信することができる。例えば、ネットワークリクエストは、アプリケーションサーバ104に対するTCP接続をオープンするリクエスト、又は、特定のインターネットアドレスからファイルをダウンロードするリクエストとして具現化され得る。ブロック304において、モバイルコンピューティングデバイス102は、ネットワークリクエストが受信されたかどうかを判定する。リクエストが受信されていない場合、方法300は、ブロック302にループバックして、ネットワークリクエストをモニタリングすることを続ける。ネットワークリクエストが受信された場合、方法300は、ブロック306に進む。
ブロック306において、モバイルコンピューティングデバイス102は、ネットワークリクエストを行ったネットワークアプリケーション202に関する1以上のアプリケーション実行制約214を判別する。いくつかの実施形態において、モバイルコンピューティングデバイス102は、モバイルコンピューティングデバイス102上に以前に確立された制約のデータベースからアプリケーション実行制約214を取得することができる。追加的又は代替的に、いくつかの実施形態においては、モバイルコンピューティングデバイス102は、例えば標準化されたAPIを介して、アプリケーション202から直接アプリケーション実行制約214を受信してもよい。
ブロック308において、モバイルコンピューティングデバイス102は、アプリケーション実行制約214に基づいて、ネットワークリクエストが遅延可能かどうかを判定する。すなわち、モバイルコンピューティングデバイス102は、アプリケーション202のパフォーマンス又はユーザエクスペリエンスに悪影響を及ぼすことなく、ネットワークリクエストが遅延可能かどうかを判定する。例えば、いくつかの実施形態において、ネットワークリクエストは、低優先度アプリケーション202を理由として遅延可能である場合もあるし、アプリケーション202が高ネットワーク遅延を許容できることを理由として遅延可能である場合もある。反対に、いくつかの実施形態において、ネットワークリクエストは、高優先度アプリケーション202を理由として遅延可能でない場合もあるし、低遅延アプリケーション202を理由として遅延可能でない場合もあるし、アプリケーション202が大量の処理リソースを必要とすることを理由として遅延可能でない場合もある。リクエストが遅延可能かどうかを判定するための方法の一実施形態が、図5に関連して以下で説明される。ネットワークリクエストが遅延可能でない場合、以下でさらに説明するように、方法300は、ブロック316に分岐する。ネットワークリクエストが遅延可能である場合、方法300は、ブロック310に分岐する。
ブロック310において、モバイルコンピューティングデバイス102は、遅延されて実行されるようにネットワークリクエストをスケジューリングする。図4に関連して以下で説明するように、ネットワークリクエストの実行を遅延させることにより、モバイルコンピューティングデバイス102は、電力消費の低減を実現するために、後の時間に実行されるようにネットワークリクエストを日和見的にスケジューリングすることが可能になる。モバイルコンピューティングデバイス102は、遅延されて実行されるようにネットワークリクエストをスケジューリングするための任意の利用可能な技術を使用することができる。例えば、モバイルコンピューティングデバイス102は、アプリケーション202のプロセス、タスク、又はスレッドに、実行を中止、中断、ブロック、又は放棄させることができる。追加的又は代替的に、アプリケーション202は実行を続けてもよいが、別のネットワークリクエストタスク、プロセス、又はスレッドが中断され得る。いくつかの実施形態においては、ブロック312において、モバイルコンピューティングデバイス102は、ネットワークリクエストを遅延リクエストキュー208に追加してもよい。したがって、複数のネットワークリクエストを遅延リクエストキュー208に記憶することにより、モバイルコンピューティングデバイス102は、遅延されて実行されるように2以上のネットワークリクエストをスケジューリングすることができる。
いくつかの実施形態においては、ブロック314において、モバイルコンピューティングデバイス102は、アプリケーション202のアプリケーション実行制約214に基づいて、ネットワークリクエストに対して遅延タイマ210を設定してもよい。以下でさらに説明するように、遅延タイマ210を設定することにより、モバイルコンピューティングデバイス102は、ネットワークリクエストが所望の時間期間内に実行されることを確実にすることが可能になる。例えば、モバイルコンピューティングデバイス102は、遅延タイマ210を、アプリケーション実行制約214において指定されている最大の許容可能な遅延に設定することができる。この例を続けると、遅延タイマ210は、例えば、電子メール更新アプリケーション202に関しては10分に、バックアップアプリケーション202に関しては24時間に設定され得る。遅延されて実行されるようにネットワークリクエストをスケジューリングした後、方法300は、ブロック302にループバックして、さらなるネットワークリクエストを待つ。
ブロック308に戻り、ネットワークリクエストが遅延可能でない場合、方法300は、ブロック316に分岐する。ブロック316において、モバイルコンピューティングデバイス102は、直ちに実行されるようにネットワークリクエストをスケジューリングする。モバイルコンピューティングデバイス102は、直ちに実行されるようにネットワークリクエストをスケジューリングするための任意の利用可能な技術を使用することができる。例えば、モバイルコンピューティングデバイス102は、ネットワークリクエストを処理するプロセス、タスク、又はスレッドの実行を開始することができる。追加的又は代替的に、モバイルコンピューティングデバイス102は、リクエストされたネットワーク接続をオープンして、リクエスト元のアプリケーション202にそのネットワーク接続を返してもよいし、アプリケーション202を、オペレーティングシステムプロセススケジューラ又は実行キュー(図示せず)に送信してもよい。
いくつかの実施形態においては、ブロック318において、モバイルコンピューティングデバイス102は、現在のネットワークリクエストが直ちに実行されるようにスケジューリングされたことが決定されたときに、直ちに実行されるように他の遅延されたネットワークリクエストをスケジューリングしてもよい。例えば、モバイルコンピューティングデバイス102は、遅延リクエストキュー208に含まれる全ての遅延されたネットワークリクエストを開始してもよい。以前に遅延されたリクエストは、開始されると、ブロック316において開始されたリクエストと並行して実行される。したがって、全ての以前に遅延されたネットワークリクエストは、後に到達した直ちに実行されるリクエストに対して実行を「ピギーバックする(piggyback)」ことができる。他の遅延されたリクエストを開始する前に、モバイルコンピューティングデバイス102は、並行実行が、現在のアプリケーション202のアプリケーション実行制約214と整合するかどうかを判定することができる。例えば、並行実行は、大量の処理リソースを必要とする現在のアプリケーション202と整合し得ない(例えば、現在のアプリケーション202がプロセッサ120を占有している場合)。直ちに実行されるように1以上のネットワークリクエストをスケジューリングした後、方法300は、ブロック302にループバックして、さらなるネットワークリクエストをモニタリングする。
次に図4を参照すると、使用の際、モバイルコンピューティングデバイス102は、ネットワークリクエストを並行実行するための方法400を実行することができる。方法300及び方法400は、別々の方法として図示されているが、方法400は、ネットワークリクエストをスケジューリングするための方法300と並行して実行されることもあるし、方法300と協調されることもある。方法400は、ブロック402で開始する。ブロック402において、モバイルコンピューティングデバイス102は、遅延されて実行されるように以前にスケジューリングされた全てのネットワークリクエストを識別する。いくつかの実施形態においては、ブロック404において、モバイルコンピューティングデバイス102は、遅延リクエストキュー208に含まれる全ての遅延されたネットワークリクエストを列挙してもよい。図3に関連して上述したように、ネットワークリクエストは、ネットワークアプリケーション202からモバイルコンピューティングデバイス102により受信された後に、遅延リクエストキュー208に追加されたものであり得る。
ブロック406において、モバイルコンピューティングデバイス102は、遅延されたネットワークリクエストの数が、リクエストの閾数を超えているかどうかを判定する。いくつかの実施形態において、リクエストの閾数は、単に1つのリクエストであってよい。すなわち、モバイルコンピューティングデバイス102は、遅延されて実行されるようにスケジューリングされた2以上のネットワークリクエストが現在存在するかどうかを判定することができる。もちろん、他の実施形態においては、リクエストの閾数は、2つのリクエスト又は3つのリクエスト等、1より大きくてもよい。リクエストの数が閾数を超えている場合、以下で説明するように、方法400は、分岐してブロック412に進む。リクエストの数が閾数を超えていない場合、方法400は、ブロック408に進む。
ブロック408において、モバイルコンピューティングデバイス102は、遅延タイマ210がいずれかのネットワークリクエストに関して満了したかどうかを判定する。すなわち、モバイルコンピューティングデバイス102は、遅延されたネットワークリクエストのいずれかに関して、許容可能な遅延を超えたかどうか(又は、許容可能な遅延を超えそうであるかどうか)を判定することができる。モバイルコンピューティングデバイス102は、遅延タイマ210が満了したかどうかを判定するための任意の技術を使用することができる。例えば、モバイルコンピューティングデバイス102は、遅延タイマ210が満了したかどうかを判定するために、遅延リクエストキュー208の遅延されたネットワークリクエストの全てを繰り返すことができる。追加的又は代替的に、モバイルコンピューティングデバイス102は、例えば、遅延タイマ210により発生されたイベントをキャプチャすることにより、遅延タイマ210が満了したかどうかを非同期的に判定してもよい(図示せず)。
ブロック410において、モバイルコンピューティングデバイス102は、遅延タイマ210が満了したかどうかを判定する。タイマが満了していない場合、方法400は、ブロック402にループバックして、遅延されたネットワークリクエストを識別することを続ける。したがって、この状況においては、遅延されたネットワークリクエストは、十分な遅延されたネットワークリクエストが受信されるまで、あるいは、いずれかのネットワークリクエストの最大遅延を超えるまで、遅延リクエストキュー208内に存在し続け得る。遅延タイマ210が満了した場合、方法400は、ブロック412に進む。
ブロック412において、モバイルコンピューティングデバイス102は、直ちに並行して実行されるように、遅延されたネットワークリクエストをスケジューリングする。モバイルコンピューティングデバイス102は、遅延リクエストキュー208に含まれる全てのネットワークリクエストを実行することができ、実行が終わったときに遅延リクエストキュー208を空にすることができる。モバイルコンピューティングデバイス102は、直ちに実行されるようにネットワークリクエストをスケジューリングするための任意の利用可能な技術を使用することができる。例えば、モバイルコンピューティングデバイス102は、各ネットワークリクエストを処理するプロセス、タスク、又はスレッドの実行を開始することができる。いくつかの実施形態において、モバイルコンピューティングデバイス102は、リクエストされたネットワーク接続をオープンして、リクエスト元の各アプリケーション202にそのネットワーク接続を返してもよいし、各アプリケーション202を、オペレーティングシステムプロセススケジューラ又は実行キュー(図示せず)に送信してもよい。ネットワークリクエストの全てが、並行して実行されるようにスケジューリングされる。ネットワークリクエストをスケジューリングした後、方法400は、ブロック402にループバックして、遅延されたネットワークリクエストを識別することを続ける。
次に図5を参照すると、使用の際、モバイルコンピューティングデバイス102は、ネットワークリクエストが遅延可能かどうかを判定するための方法500を実行することができる。方法500は、例えば、図3に関連して上述したブロック308の一部として実行することができる。方法500は、ブロック502で開始する。ブロック502において、モバイルコンピューティングデバイス102は、現在のアプリケーション202に関連付けられたアプリケーション実行制約214のリソース実行制約を判別する。リソース実行制約は、ネットワークリクエストを完了するためにアプリケーション202により必要とされる、モバイルコンピューティングデバイス102のリソースを規定するものである。例えば、リソース実行制約は、必要とされるメモリリソース、データストレージリソース、又はプロセッサリソースを表すことができる。いくつかの実施形態においては、ブロック504において、モバイルコンピューティングデバイス102は、アプリケーション202に関する処理リソース制約を判別してもよい。処理リソース制約は、アプリケーション202により必要とされる、モバイルコンピューティングデバイス102のプロセッサ、プロセッサコア、プロセッササイクル、又は他の処理リソースの数を表すことができる。例えば、リソース実行制約は、アプリケーション202が必要とすることになるとアプリケーション202が予測する利用可能な処理リソースのパーセンテージを表すことができる。いくつかの実施形態においては、リソース実行制約は、単に、「高」処理要件又は「低」処理要件を有するものとしてアプリケーション202を識別するものであってもよい。
ブロック506において、モバイルコンピューティングデバイス102は、アプリケーション202がリソース集約的(resource-intensive)であるかどうかを判定する。すなわち、モバイルコンピューティングデバイス102は、リソース実行制約が閾リソース要件を超えているかどうかを判定する。例えば、モバイルコンピューティングデバイス102は、アプリケーション202が、全ての利用可能なプロセッササイクルを使用することになるかどうか、又は、アプリケーション202が、「高」処理要件を有するものとしてラベリングされているかどうかを判定することができる。アプリケーション202がリソース集約的である場合、方法500は、ブロック508に分岐し、ブロック508において、方法500は、アプリケーション202が遅延可能でないと返す。図3に関連して上述したように、アプリケーション202が遅延可能でない場合、ネットワークリクエストは、直ちに実行されるようにスケジューリングされ得る。ブロック506に戻り、アプリケーション202がリソース集約的でない場合、方法500は、ブロック510に進む。
ブロック510において、モバイルコンピューティングデバイス102は、現在のアプリケーション202に関連付けられたアプリケーション実行制約214の緊急度実行制約を判別する。緊急度実行制約は、時間遅延に対するアプリケーション202の許容度を規定するものである。いくつかの実施形態においては、ブロック512において、モバイルコンピューティングデバイス102は、遅延制約を取得してもよい。遅延制約は、現在のアプリケーション202に関する許容可能なネットワーク遅延を表し、経過時間の観点で測定され得る。例えば、デイリーバックアップアプリケーション202は、数時間の遅延を許容し得、電子メールアプリケーション202は、数分の遅延を許容し得、リアルタイム電話アプリケーション202は、遅延を許容し得ない。いくつかの実施形態においては、ブロック514において、モバイルコンピューティングデバイス102は、優先度制約を取得してもよい。優先度制約は、アプリケーション202の相対的な重要度を表す。例えば、システムアプリケーション202又はユーザにより開始されるインタラクティブアプリケーション202は、高優先度を有し得るのに対し、バックグラウンドアプリケーション202は、低優先度を有し得る。いくつかの実施形態においては、ブロック516において、モバイルコンピューティングデバイス102は、アプリケーション202に関するアプリケーションクラスを取得してもよい。アプリケーションクラスは、アプリケーション202の一般的なネットワーク使用パターンを表すことができる。例えば、アプリケーションクラスは、リアルタイム通信アプリケーション、インタラクティブアプリケーション、又はバックグラウンドアプリケーションを含み得る。アプリケーションクラスは、各アプリケーション202に関して予め定められてもよいし、使用中のアプリケーション202の観測(observation)に基づいて、モバイルコンピューティングデバイス102により割り当てられてもよい。
ブロック518において、モバイルコンピューティングデバイス102は、現在のネットワークリクエストが緊急であるかどうかを判定する。モバイルコンピューティングデバイス102は、前に判別された緊急度実行制約が閾緊急度レベルを超えているかどうかを判定することができる。モバイルコンピューティングデバイス102は、緊急度の可能な尺度(measure)のうちの任意のものを使用することができる。例えば、モバイルコンピューティングデバイス102は、許容される遅延が閾遅延値に満たない場合に、リクエストが緊急であると判定することができる。いくつかの実施形態において、許容可能な遅延を要さない場合に、リクエストは緊急であり得る。別の例として、モバイルコンピューティングデバイス102は、優先度レベルが閾優先度レベルを超えている場合に、リクエストが緊急であると判定することができる。第3の例として、モバイルコンピューティングデバイス102は、アプリケーションクラスが、リアルタイム通信アプリケーション又はインタラクティブアプリケーション等の、緊急アプリケーションクラスの予め定められたセットに属する場合に、リクエストが緊急であると判定することができる。さらに、モバイルコンピューティングデバイス102は、ユーザにより提供される入力又はインジケーション(例えば、アプリケーションは高優先度アクセスを有するべきであるというインジケーション)に基づいて、リクエストが緊急であると判定することができる。リクエストが緊急である場合、方法500は、ブロック508に分岐し、上述したように、遅延可能でないと返す。リクエストが緊急でない場合、方法500は、ブロック520に分岐し、ブロック520において、方法500は、アプリケーション202が遅延可能であると返す。図3に関連して上述したように、アプリケーション202が遅延可能である場合、ネットワークリクエストは、遅延されて実行されるようにスケジューリングされ得る。
次に図6を参照すると、チャート600は、本開示に従ったモバイルコンピューティングデバイスにより達成され得る例示的な結果を示している。チャート600に提示される結果は例示に過ぎず、他の実施形態においては、他の結果が生成され得ることを理解すべきである。チャート600は、異なるアプリケーションワークロードを別々に実行している間と並行して実行している間との、モバイルコンピューティングデバイスの測定電力消費量を示している。例示的な表現において、アプリケーション602は、VoIPアプリケーション(すなわち、遅延されて実行されるようにはスケジューリングすることができないアプリケーション)である。別々に実行された場合、アプリケーション602は、例えば、1108mWの電力を消費する。例示的なアプリケーション604は、ウェブサーバからのファイルダウンロードであり、別々に実行された場合、例えば、1033mWの電力を消費する。例示的なアプリケーション606は、ウェブサーバへのファイルアップロードであり、別々に実行された場合、例えば、1460mWの電力を消費する。アプリケーション602、604は、並行して実行された場合、例えば、1324mWの電力を消費し、別々に実行された場合と比較すると、電力消費量が38%改善している。アプリケーション602、606は、並行して実行された場合、例えば、1555mWの電力を消費し、別々に実行された場合と比較すると、電力消費量が39%改善している。アプリケーション602、604、606は、並行して実行された場合、例えば、1643mWの電力を消費し、別々に実行された場合と比較すると、電力消費量が54%改善している。
本開示が、ネットワークアプリケーション202の観点で主に説明されたが、同じスケジューリング技術は、他のタイプのアプリケーションに関しても、電力消費を低減させることができることを理解すべきである。同様に、本開示が、無線ネットワーク106を介して通信するモバイルコンピューティングデバイス102の観点で主に説明されたが、同じスケジューリング技術は、デスクトップ及びサーバ等の固定型のコンピュータ又は基本的には固定型のコンピュータに関してだけでなく、有線ネットワークを介する通信に関しても、電力消費を低減させることができることを理解すべきである。

本明細書で開示した技術の例示的な例が、以下に提供される。本技術の実施形態は、以下に記載の例の任意の1以上と任意の組合せとを含み得る。
例1は、アプリケーションをスケジューリングするためのモバイルコンピューティングデバイスであって、前記モバイルコンピューティングデバイスの第1のネットワークアプリケーションから第1のネットワークリクエストを受信し、前記第1のネットワークアプリケーションに関する1以上の第1の実行制約を判別し、前記1以上の第1の実行制約に基づいて、前記第1のネットワークリクエストが遅延可能かどうかを判定し、前記第1のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第1のネットワークリクエストをスケジューリングし、前記モバイルコンピューティングデバイスの第2のネットワークアプリケーションから第2のネットワークリクエストを受信し、前記第2のネットワークリクエストの受信に応じて、並行して実行されるように前記第1のネットワークリクエスト及び前記第2のネットワークリクエストをスケジューリングするアプリケーションスケジューラモジュールを備えたモバイルコンピューティングデバイスを含む。
例2は、例1の主題を含み、前記1以上の第1の実行制約を判別することは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションの緊急度レベルを判別することを含み、前記第1のネットワークリクエストが遅延可能かどうかを判定することは、前記緊急度レベルが閾緊急度レベルに満たないかどうかを判定することを含む。
例3は、例1及び2のいずれかの例の主題を含み、前記緊急度レベルは、前記第1のネットワークアプリケーションの優先度を含み、前記閾緊急度レベルは、閾優先度を含む。
例4は、例1〜3のいずれかの例の主題を含み、前記緊急度レベルは、前記第1のネットワークアプリケーションのアプリケーションクラスを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定することは、前記アプリケーションクラスが、緊急アプリケーションクラスの予め定められたセットに属するかどうかを判定することを含む。
例5は、例1〜4のいずれかの例の主題を含み、前記緊急度レベルは、前記第1のネットワークアプリケーションの許容可能な遅延を含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定することは、前記許容可能な遅延が閾遅延値を超えているかどうかを判定することを含む。
例6は、例1〜5のいずれかの例の主題を含み、遅延されて実行されるように前記第1のネットワークリクエストをスケジューリングすることは、前記第1のネットワークアプリケーションの前記許容可能な遅延に基づいて、遅延タイマを設定することを含み、前記アプリケーションスケジューラモジュールは、さらに、前記遅延タイマが満了したかどうかを判定し、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、前記遅延タイマが満了したという判定に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行することを含む。
例7は、例1〜6のいずれかの例の主題を含み、前記1以上の第1の実行制約を判別することは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションのリソース要件を判別することを含み、前記第1のネットワークリクエストが遅延可能かどうかを判定することは、前記リソース要件が閾リソース要件に満たないかどうかを判定することを含む。
例8は、例1〜7のいずれかの例の主題を含み、前記リソース要件は、前記第1のネットワークアプリケーションのプロセッサ要件を含み、前記閾リソース要件は、閾プロセッサ要件を含む。
例9は、例1〜8のいずれかの例の主題を含み、前記アプリケーションスケジューラモジュールは、さらに、前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別し、前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定し、前記第2のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第2のネットワークリクエストをスケジューリングし、前記第2のネットワークリクエストのスケジューリングに応じて、閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているかどうかを判定し、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、前記閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているという判定に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することを含む。
例10は、例1〜9のいずれかの例の主題を含み、前記アプリケーションスケジューラモジュールは、さらに、前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別し、前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定し、前記第2のネットワークリクエストが遅延可能でないという判定に応じて、直ちに実行されるように前記第2のネットワークリクエストをスケジューリングし、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、直ちに実行されるように前記第2のネットワークリクエストがスケジューリングされたことに応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行することを含む。
例11は、例1〜10のいずれかの例の主題を含み、前記1以上の第2の実行制約を判別することは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションの緊急度レベルを判別することを含み、前記第2のネットワークリクエストが遅延可能かどうかを判定することは、該緊急度レベルが閾緊急度レベルに満たないかどうかを判定することを含む。
例12は、例1〜11のいずれかの例の主題を含み、前記緊急度レベルは、前記第2のネットワークアプリケーションの優先度を含み、前記閾緊急度レベルは、閾優先度を含む。
例13は、例1〜12のいずれかの例の主題を含み、前記緊急度レベルは、前記第2のネットワークアプリケーションのアプリケーションクラスを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定することは、該アプリケーションクラスが、緊急アプリケーションクラスの予め定められたセットに属するかどうかを判定することを含む。
例14は、例1〜13のいずれかの例の主題を含み、前記緊急度レベルは、前記第2のネットワークアプリケーションの許容可能な遅延を含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定することは、該許容可能な遅延が閾遅延値を超えているかどうかを判定することを含む。
例15は、例1〜14のいずれかの例の主題を含み、前記1以上の第2の実行制約を判別することは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションのリソース要件を判別することを含み、前記第2のネットワークリクエストが遅延可能かどうかを判定することは、該リソース要件が閾リソース要件に満たないかどうかを判定することを含む。
例16は、例1〜15のいずれかの例の主題を含み、前記リソース要件は、前記第2のネットワークアプリケーションのプロセッサ要件を含み、前記閾リソース要件は、閾プロセッサ要件を含む。
例17は、例1〜16のいずれかの例の主題を含み、前記1以上の第1の実行制約を判別することは、前記モバイルコンピューティングデバイスの実行制約データベースから前記1以上の第1の実行制約を判別することを含む。
例18は、例1〜17のいずれかの例の主題を含み、前記1以上の第1の実行制約は、前記第1のネットワークリクエストの受信前に、前記第1のネットワークアプリケーションにより、前記実行制約データベースに提供されている。
例19は、アプリケーションをスケジューリングするための方法であって、モバイルコンピューティングデバイスにより、前記モバイルコンピューティングデバイスの第1のネットワークアプリケーションから第1のネットワークリクエストを受信するステップと、前記モバイルコンピューティングデバイスにより、前記第1のネットワークアプリケーションに関する1以上の第1の実行制約を判別するステップと、前記モバイルコンピューティングデバイスにより、前記1以上の第1の実行制約に基づいて、前記第1のネットワークリクエストが遅延可能かどうかを判定するステップと、前記モバイルコンピューティングデバイスにより、前記第1のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第1のネットワークリクエストをスケジューリングするステップと、前記モバイルコンピューティングデバイスにより、前記モバイルコンピューティングデバイスの第2のネットワークアプリケーションから第2のネットワークリクエストを受信するステップと、前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストの受信に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行するステップと、を含む方法を含む。
例20は、例19の主題を含み、前記1以上の第1の実行制約を判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションの緊急度レベルを判別するステップを含み、前記第1のネットワークリクエストが遅延可能かどうかを判定するステップは、前記緊急度レベルが閾緊急度レベルに満たないかどうかを判定するステップを含む。
例21は、例19及び20のいずれかの例の主題を含み、前記緊急度レベルを判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションの優先度を判別するステップを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定するステップは、前記優先度が閾優先度に満たないかどうかを判定するステップを含む。
例22は、例19〜21のいずれかの例の主題を含み、前記緊急度レベルを判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションのアプリケーションクラスを判別するステップを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定するステップは、前記アプリケーションクラスが、緊急アプリケーションクラスの予め定められたセットに属するかどうかを判定するステップを含む。
例23は、例19〜22のいずれかの例の主題を含み、前記緊急度レベルを判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションの許容可能な遅延を判別するステップを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定するステップは、前記許容可能な遅延が閾遅延値を超えているかどうかを判定するステップを含む。
例24は、例19〜23のいずれかの例の主題を含み、遅延されて実行されるように前記第1のネットワークリクエストをスケジューリングするステップは、前記第1のネットワークアプリケーションの前記許容可能な遅延に基づいて、遅延タイマを設定するステップを含み、前記方法は、前記モバイルコンピューティングデバイスにより、前記遅延タイマが満了したかどうかを判定するステップをさらに含み、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、前記遅延タイマが満了したという判定に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行することを含む。
例25は、例19〜24のいずれかの例の主題を含み、前記1以上の第1の実行制約を判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションのリソース要件を判別するステップを含み、前記第1のネットワークリクエストが遅延可能かどうかを判定するステップは、前記リソース要件が閾リソース要件に満たないかどうかを判定するステップを含む。
例26は、例19〜25のいずれかの例の主題を含み、前記リソース要件を判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションのプロセッサ要件を判別するステップを含み、前記リソース要件が前記閾リソース要件に満たないかどうかを判定するステップは、前記プロセッサ要件が閾プロセッサ要件に満たないかどうかを判定するステップを含む。
例27は、例19〜26のいずれかの例の主題を含み、前記モバイルコンピューティングデバイスにより、前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別するステップと、前記モバイルコンピューティングデバイスにより、前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定するステップと、前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第2のネットワークリクエストをスケジューリングするステップと、前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストのスケジューリングに応じて、閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているかどうかを判定するステップと、をさらに含み、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、前記閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているという判定に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することを含む。
例28は、例19〜27のいずれかの例の主題を含み、前記モバイルコンピューティングデバイスにより、前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別するステップと、前記モバイルコンピューティングデバイスにより、前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定するステップと、前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストが遅延可能でないという判定に応じて、直ちに実行されるように前記第2のネットワークリクエストをスケジューリングするステップと、をさらに含み、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、直ちに実行されるように前記第2のネットワークリクエストがスケジューリングされたことに応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行することを含む。
例29は、例19〜28のいずれかの例の主題を含み、前記1以上の第2の実行制約を判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションの緊急度レベルを判別するステップを含み、前記第2のネットワークリクエストが遅延可能かどうかを判定するステップは、該緊急度レベルが閾緊急度レベルに満たないかどうかを判定するステップを含む。
例30は、例19〜29のいずれかの例の主題を含み、前記緊急度レベルを判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションの優先度を判別するステップを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定するステップは、該優先度が閾優先度に満たないかどうかを判定するステップを含む。
例31は、例19〜30のいずれかの例の主題を含み、前記緊急度レベルを判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションのアプリケーションクラスを判別するステップを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定するステップは、該アプリケーションクラスが、緊急アプリケーションクラスの予め定められたセットに属するかどうかを判定するステップを含む。
例32は、例19〜31のいずれかの例の主題を含み、前記緊急度レベルを判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションの許容可能な遅延を判別するステップを含み、前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定するステップは、該許容可能な遅延が閾遅延値を超えているかどうかを判定するステップを含む。
例33は、例19〜32のいずれかの例の主題を含み、前記1以上の第2の実行制約を判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションのリソース要件を判別するステップを含み、前記第2のネットワークリクエストが遅延可能かどうかを判定するステップは、該リソース要件が閾リソース要件に満たないかどうかを判定するステップを含む。
例34は、例19〜33のいずれかの例の主題を含み、前記リソース要件を判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションのプロセッサ要件を判別するステップを含み、前記リソース要件が前記閾リソース要件に満たないかどうかを判定するステップは、該プロセッサ要件が閾プロセッサ要件に満たないかどうかを判定するステップを含む。
例35は、例19〜34のいずれかの例の主題を含み、前記1以上の第1の実行制約を判別するステップは、前記モバイルコンピューティングデバイスの実行制約データベースから前記1以上の第1の実行制約を判別するステップを含む。
例36は、例19〜35のいずれかの例の主題を含み、前記1以上の第1の実行制約は、前記第1のネットワークリクエストの受信前に、前記第1のネットワークアプリケーションにより、前記実行制約データベースに提供されている。
例37は、コンピューティングデバイスであって、プロセッサと、複数の命令を記憶しているメモリであって、前記複数の命令は、前記プロセッサにより実行されたときに、前記コンピューティングデバイスに、例19〜36のいずれかの例の方法を実行させる、メモリと、を備えたコンピューティングデバイスを含む。
例38は、複数の命令を記憶している1以上のマシン読み取り可能な記憶媒体であって、前記複数の命令が実行されたことに応じて、前記複数の命令は、コンピューティングデバイスに、例19〜36のいずれかの例の方法を実行させる、1以上のマシン読み取り可能な記憶媒体を含む。
例39は、例19〜36のいずれかの例の方法を実行する手段を備えたコンピューティングデバイスを含む。

Claims (26)

  1. アプリケーションをスケジューリングするためのモバイルコンピューティングデバイスであって、
    前記モバイルコンピューティングデバイスの第1のネットワークアプリケーションから第1のネットワークリクエストを受信し、
    前記第1のネットワークアプリケーションに関する1以上の第1の実行制約を判別し、
    前記1以上の第1の実行制約に基づいて、前記第1のネットワークリクエストが遅延可能かどうかを判定し、
    前記第1のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第1のネットワークリクエストをスケジューリングし、
    前記モバイルコンピューティングデバイスの第2のネットワークアプリケーションから第2のネットワークリクエストを受信し、
    前記第2のネットワークリクエストの受信に応じて、並行して実行されるように前記第1のネットワークリクエスト及び前記第2のネットワークリクエストをスケジューリングする
    アプリケーションスケジューラモジュール
    を備えたモバイルコンピューティングデバイス。
  2. 前記1以上の第1の実行制約を判別することは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションの緊急度レベルを判別することを含み、
    前記第1のネットワークリクエストが遅延可能かどうかを判定することは、前記緊急度レベルが閾緊急度レベルに満たないかどうかを判定することを含む、請求項1記載のモバイルコンピューティングデバイス。
  3. 前記緊急度レベルは、前記第1のネットワークアプリケーションの優先度を含み、前記閾緊急度レベルは、閾優先度を含む、請求項2記載のモバイルコンピューティングデバイス。
  4. 前記緊急度レベルは、前記第1のネットワークアプリケーションのアプリケーションクラスを含み、
    前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定することは、前記アプリケーションクラスが、緊急アプリケーションクラスの予め定められたセットに属するかどうかを判定することを含む、請求項2記載のモバイルコンピューティングデバイス。
  5. 前記緊急度レベルは、前記第1のネットワークアプリケーションの許容可能な遅延を含み、
    前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定することは、前記許容可能な遅延が閾遅延値を超えているかどうかを判定することを含む、請求項2記載のモバイルコンピューティングデバイス。
  6. 前記1以上の第1の実行制約を判別することは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションのリソース要件を判別することを含み、
    前記第1のネットワークリクエストが遅延可能かどうかを判定することは、前記リソース要件が閾リソース要件に満たないかどうかを判定することを含む、請求項1記載のモバイルコンピューティングデバイス。
  7. 前記リソース要件は、前記第1のネットワークアプリケーションのプロセッサ要件を含み、前記閾リソース要件は、閾プロセッサ要件を含む、請求項6記載のモバイルコンピューティングデバイス。
  8. 前記アプリケーションスケジューラモジュールは、さらに、
    前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別し、
    前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定し、
    前記第2のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第2のネットワークリクエストをスケジューリングし、
    前記第2のネットワークリクエストのスケジューリングに応じて、閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているかどうかを判定し、
    前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、前記閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているという判定に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することを含む、請求項1乃至7いずれか一項記載のモバイルコンピューティングデバイス。
  9. 前記アプリケーションスケジューラモジュールは、さらに、
    前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別し、
    前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定し、
    前記第2のネットワークリクエストが遅延可能でないという判定に応じて、直ちに実行されるように前記第2のネットワークリクエストをスケジューリングし、
    前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、直ちに実行されるように前記第2のネットワークリクエストがスケジューリングされたことに応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行することを含む、請求項1乃至7いずれか一項記載のモバイルコンピューティングデバイス。
  10. 前記1以上の第2の実行制約を判別することは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションの緊急度レベルを判別することを含み、
    前記第2のネットワークリクエストが遅延可能かどうかを判定することは、該緊急度レベルが閾緊急度レベルに満たないかどうかを判定することを含む、請求項9記載のモバイルコンピューティングデバイス。
  11. 前記1以上の第2の実行制約を判別することは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションのリソース要件を判別することを含み、
    前記第2のネットワークリクエストが遅延可能かどうかを判定することは、該リソース要件が閾リソース要件に満たないかどうかを判定することを含む、請求項9記載のモバイルコンピューティングデバイス。
  12. 前記リソース要件は、前記第2のネットワークアプリケーションのプロセッサ要件を含み、前記閾リソース要件は、閾プロセッサ要件を含む、請求項11記載のモバイルコンピューティングデバイス。
  13. 前記1以上の第1の実行制約を判別することは、前記モバイルコンピューティングデバイスの実行制約データベースから前記1以上の第1の実行制約を判別することを含む、請求項1乃至7いずれか一項記載のモバイルコンピューティングデバイス。
  14. 前記1以上の第1の実行制約は、前記第1のネットワークリクエストの受信前に、前記第1のネットワークアプリケーションにより、前記実行制約データベースに提供されている、請求項13記載のモバイルコンピューティングデバイス。
  15. アプリケーションをスケジューリングするための方法であって、
    モバイルコンピューティングデバイスにより、前記モバイルコンピューティングデバイスの第1のネットワークアプリケーションから第1のネットワークリクエストを受信するステップと、
    前記モバイルコンピューティングデバイスにより、前記第1のネットワークアプリケーションに関する1以上の第1の実行制約を判別するステップと、
    前記モバイルコンピューティングデバイスにより、前記1以上の第1の実行制約に基づいて、前記第1のネットワークリクエストが遅延可能かどうかを判定するステップと、
    前記モバイルコンピューティングデバイスにより、前記第1のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第1のネットワークリクエストをスケジューリングするステップと、
    前記モバイルコンピューティングデバイスにより、前記モバイルコンピューティングデバイスの第2のネットワークアプリケーションから第2のネットワークリクエストを受信するステップと、
    前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストの受信に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行するステップと、
    を含む方法。
  16. 前記1以上の第1の実行制約を判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションの緊急度レベルを判別するステップを含み、
    前記第1のネットワークリクエストが遅延可能かどうかを判定するステップは、前記緊急度レベルが閾緊急度レベルに満たないかどうかを判定するステップを含む、請求項15記載の方法。
  17. 前記緊急度レベルを判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションの許容可能な遅延を判別するステップを含み、
    前記緊急度レベルが前記閾緊急度レベルに満たないかどうかを判定するステップは、前記許容可能な遅延が閾遅延値を超えているかどうかを判定するステップを含む、請求項16記載の方法。
  18. 前記1以上の第1の実行制約を判別するステップは、前記1以上の第1の実行制約に基づいて、前記第1のネットワークアプリケーションのリソース要件を判別するステップを含み、
    前記第1のネットワークリクエストが遅延可能かどうかを判定するステップは、前記リソース要件が閾リソース要件に満たないかどうかを判定するステップを含む、請求項15記載の方法。
  19. 前記モバイルコンピューティングデバイスにより、前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別するステップと、
    前記モバイルコンピューティングデバイスにより、前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定するステップと、
    前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストが遅延可能であるという判定に応じて、遅延されて実行されるように前記第2のネットワークリクエストをスケジューリングするステップと、
    前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストのスケジューリングに応じて、閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているかどうかを判定するステップと、
    をさらに含み、
    前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、前記閾数を超えるネットワークリクエストが、遅延されて実行されるようにスケジューリングされているという判定に応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することを含む、請求項15記載の方法。
  20. 前記モバイルコンピューティングデバイスにより、前記第2のネットワークアプリケーションに関する1以上の第2の実行制約を判別するステップと、
    前記モバイルコンピューティングデバイスにより、前記1以上の第2の実行制約に基づいて、前記第2のネットワークリクエストが遅延可能かどうかを判定するステップと、
    前記モバイルコンピューティングデバイスにより、前記第2のネットワークリクエストが遅延可能でないという判定に応じて、直ちに実行されるように前記第2のネットワークリクエストをスケジューリングするステップと、
    をさらに含み、
    前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを実行することは、直ちに実行されるように前記第2のネットワークリクエストがスケジューリングされたことに応じて、前記第1のネットワークリクエスト及び前記第2のネットワークリクエストを並行して実行することを含む、請求項15記載の方法。
  21. 前記1以上の第2の実行制約を判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションの緊急度レベルを判別するステップを含み、
    前記第2のネットワークリクエストが遅延可能かどうかを判定するステップは、該緊急度レベルが閾緊急度レベルに満たないかどうかを判定するステップを含む、請求項20記載の方法。
  22. 前記1以上の第2の実行制約を判別するステップは、前記1以上の第2の実行制約に基づいて、前記第2のネットワークアプリケーションのリソース要件を判別するステップを含み、
    前記第2のネットワークリクエストが遅延可能かどうかを判定するステップは、該リソース要件が閾リソース要件に満たないかどうかを判定するステップを含む、請求項20記載の方法。
  23. コンピューティングデバイスであって、
    プロセッサと、
    複数の命令を記憶しているメモリであって、前記複数の命令は、前記プロセッサにより実行されたときに、前記コンピューティングデバイスに、請求項15乃至22いずれか一項記載の方法を実行させる、メモリと、
    を備えたコンピューティングデバイス。
  24. 請求項15乃至22いずれか一項記載の方法をコンピューティングデバイスに実行させるプログラム。
  25. 請求項15乃至22いずれか一項記載の方法を実行する手段を備えたコンピューティングデバイス。
  26. 請求項24記載のプログラムを記憶したマシン読み取り可能な記憶媒体。
JP2016536072A 2013-10-01 2013-10-01 電力消費の低減のためのネットワークアプリケーション並行スケジューリング Active JP6189545B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/062805 WO2015050525A1 (en) 2013-10-01 2013-10-01 Concurrent network application scheduling for reduced power consumption

Publications (2)

Publication Number Publication Date
JP2016528648A true JP2016528648A (ja) 2016-09-15
JP6189545B2 JP6189545B2 (ja) 2017-08-30

Family

ID=52778989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016536072A Active JP6189545B2 (ja) 2013-10-01 2013-10-01 電力消費の低減のためのネットワークアプリケーション並行スケジューリング

Country Status (7)

Country Link
US (1) US10042414B2 (ja)
EP (1) EP3053033A4 (ja)
JP (1) JP6189545B2 (ja)
KR (1) KR101890046B1 (ja)
CN (1) CN105474173B (ja)
TW (1) TWI539273B (ja)
WO (1) WO2015050525A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018075909A1 (en) * 2016-10-21 2018-04-26 Affirmed Networks, Inc. Adaptive content optimization
US10631302B2 (en) * 2017-06-27 2020-04-21 At&T Intellectual Property I, L.P. Limiting data transmission under lossy wireless conditions of an internet of things wireless device to facilitate a reduction of wireless retransmissions of the data
CN108540575B (zh) * 2018-04-27 2021-07-20 北京奇艺世纪科技有限公司 一种网络请求调度方法及装置
TWI776287B (zh) * 2020-11-24 2022-09-01 威聯通科技股份有限公司 雲端檔案存取裝置及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083478A1 (en) * 2002-10-23 2004-04-29 Yen-Kuang Chen Apparatus and method for reducing power consumption on simultaneous multi-threading systems
JP2007295052A (ja) * 2006-04-21 2007-11-08 Kddi Corp バッテリの駆動時間を延長させる無線通信装置、プログラム及び通信トラヒック制御方法
US20090307696A1 (en) * 2008-06-09 2009-12-10 Microsoft Corporation Thread management based on device power state
US20120210325A1 (en) * 2011-02-10 2012-08-16 Alcatel-Lucent Usa Inc. Method And Apparatus Of Smart Power Management For Mobile Communication Terminals Using Power Thresholds
JP2013503557A (ja) * 2009-08-27 2013-01-31 クアルコム,インコーポレイテッド データサービスのための電力の最適化
JP2013101576A (ja) * 2011-11-10 2013-05-23 Nec Corp 電力制御システムおよび電力制御方法
US20130219400A1 (en) * 2009-05-11 2013-08-22 Raytheon Bbn Technologies Corp. Energy-aware computing environment scheduler

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1338125A2 (en) * 2000-11-03 2003-08-27 AT & T Corp. Tiered contention multiple access (tcma): a method for priority-based shared channel access
US20080141265A1 (en) * 2004-12-08 2008-06-12 Electronics And Telecommunications Research Instit Power Management Method for Platform and that Platform
US20070028228A1 (en) * 2005-07-28 2007-02-01 International Business Machines Corporation Software upgrades with user advisement
US7652990B2 (en) * 2005-11-29 2010-01-26 Alcatel-Lucent Usa Inc. Method and apparatus for providing quality of service level in broadband communications systems
US8160000B2 (en) * 2006-06-08 2012-04-17 Qualcomm Incorporated Achieving power savings through packet grouping
JP5091319B2 (ja) 2007-08-21 2012-12-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 無線ネットワークにおけるスケジューリング
US8190088B1 (en) * 2008-08-07 2012-05-29 Bee Networx Inc. Optimally controlling short-range wireless communication on mobile communication devices
US20110047552A1 (en) * 2009-05-11 2011-02-24 Raytheon Bbn Technologies Corp. Energy-aware process environment scheduler
CN102378309B (zh) * 2010-08-12 2014-04-30 华为技术有限公司 一种接入网络的方法和系统
CA2716646C (en) * 2010-10-14 2020-04-07 Ibm Canada Limited - Ibm Canada Limitee Coordinated approach between middleware application and sub-systems
US8831658B2 (en) * 2010-11-05 2014-09-09 Qualcomm Incorporated Controlling application access to a network
US8966493B1 (en) * 2010-11-09 2015-02-24 Teradata Us, Inc. Managing execution of multiple requests in a job using overall deadline for the job
US9167618B2 (en) * 2010-11-16 2015-10-20 At&T Mobility Ii Llc Data bundling and fast dormancy based upon intelligent application learning
US9264868B2 (en) * 2011-01-19 2016-02-16 Qualcomm Incorporated Management of network access requests
US20140293848A1 (en) * 2013-03-28 2014-10-02 Alcatel-Lucent Usa Inc. Communication device data channel access

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083478A1 (en) * 2002-10-23 2004-04-29 Yen-Kuang Chen Apparatus and method for reducing power consumption on simultaneous multi-threading systems
JP2007295052A (ja) * 2006-04-21 2007-11-08 Kddi Corp バッテリの駆動時間を延長させる無線通信装置、プログラム及び通信トラヒック制御方法
US20090307696A1 (en) * 2008-06-09 2009-12-10 Microsoft Corporation Thread management based on device power state
US20130219400A1 (en) * 2009-05-11 2013-08-22 Raytheon Bbn Technologies Corp. Energy-aware computing environment scheduler
JP2013503557A (ja) * 2009-08-27 2013-01-31 クアルコム,インコーポレイテッド データサービスのための電力の最適化
US20120210325A1 (en) * 2011-02-10 2012-08-16 Alcatel-Lucent Usa Inc. Method And Apparatus Of Smart Power Management For Mobile Communication Terminals Using Power Thresholds
JP2013101576A (ja) * 2011-11-10 2013-05-23 Nec Corp 電力制御システムおよび電力制御方法

Also Published As

Publication number Publication date
TWI539273B (zh) 2016-06-21
TW201516650A (zh) 2015-05-01
KR20160040260A (ko) 2016-04-12
CN105474173B (zh) 2019-08-06
WO2015050525A1 (en) 2015-04-09
US20160252945A1 (en) 2016-09-01
US10042414B2 (en) 2018-08-07
EP3053033A1 (en) 2016-08-10
CN105474173A (zh) 2016-04-06
EP3053033A4 (en) 2017-06-21
JP6189545B2 (ja) 2017-08-30
KR101890046B1 (ko) 2018-08-20

Similar Documents

Publication Publication Date Title
US10628216B2 (en) I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
US9396010B2 (en) Optimization of packet processing by delaying a processor from entering an idle state
CN107851039B (zh) 用于资源管理的系统和方法
CN109697122B (zh) 任务处理方法、设备及计算机存储介质
US20150347189A1 (en) Quality of service classes
US9973512B2 (en) Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
WO2022068697A1 (zh) 任务调度方法及装置
BR102013014262A2 (pt) Importância de processo adaptável
WO2021104178A1 (zh) 一种动态消息推送方法、系统和汽车诊断服务器
JP6189545B2 (ja) 電力消費の低減のためのネットワークアプリケーション並行スケジューリング
US9952911B2 (en) Dynamically optimized device driver protocol assist threads
WO2023174037A1 (zh) 资源调度方法、装置、系统、设备、介质和程序产品
US10037225B2 (en) Method and system for scheduling computing
WO2023165485A1 (zh) 调度方法及计算机系统
US10616317B2 (en) Method and system for affinity load balancing
US9244736B2 (en) Thinning operating systems
CN107276853B (zh) 流量处理方法及电子设备、计算机系统
US20220027278A1 (en) Techniques for core-specific metrics collection
CN114138427A (zh) Slo保障方法、装置、节点及存储介质
CN109062706B (zh) 电子装置及其限制进程间通信的方法、存储介质
EP3387529A1 (en) Method and apparatus for time-based scheduling of tasks
US20210182099A1 (en) Service schedule optimization for background execution limits
US9813316B1 (en) Implementing scalable throttled poller
CN115617528A (zh) 负载均衡的方法、装置、电子设备、存储介质和程序产品
CN115617445A (zh) Serverless计算中的容器管理方法及装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170626

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170802

R150 Certificate of patent or registration of utility model

Ref document number: 6189545

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