(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
次に、特許請求される主題を、図面を参照しながら説明する。図面において同様の参照番号は、一般に全体を通じて同様の要素を指すのに用いられる。以下の記載では、説明の目的で、特許請求される主題の完全な理解を提供するために多くの具体的な詳細を説明する。しかしながら、特許請求される主題を、これらの具体的な詳細を用いることなく実施することができることは明らかである。他の例では、特許請求される主題の説明を容易にするために、構造及びデバイスがブロック図の形式で図示される。
【0014】
多くのコンピューティング環境は、電力消費技術を組み込んで、電力消費を軽減及び/又はバッテリ寿命を節約することができる。例えば、オペレーティングシステムは、ハイバネーション/スリープポリシーを提供することができ、このハイバネーション/スリープポリシーは、(実行を妨げなければ)電力を消費するタスクを実行するコンピューティングリソースを起動し得るアプリケーション、システムプロセス及び/又はプロセッサ機能の実行を妨げることができる。残念なことに、多くの電力節約技術は、望ましい機能を実行するプロセスを一時停止することがあり(例えばハイバネーションポリシーは、ハイバネーション状態の間に特定のプロセスの実行を選択的に許可する機能を備えていない)、したがって、コンピューティング環境は、立ち上がるとき、古い情報を実行状態に提供することがある(例えばハイバネーション状態から立ち上がるコンピューティング環境は、ハイバネーション状態の間メッセージ機能プロセスが一時停止していたので、最新のメッセージ情報を提供することができない)。加えて、ハイバネーション/スリープ状態からの立ち上がりは、コンピューティング環境が十分に応答し、及び/又は最新の情報を提供できるようになるまでに、かなりの時間を要する。したがって、適切な電力節約を提供することと、ユーザに応答性の早い接続型エクスペリエンスを提供することとの間のバランスが望まれる。
【0015】
したがって、電力管理分類をコンピューティング環境に関連付けられたプロセスに割り当てて、プロセスに割り当てられた電力管理分類に基づいて、コンピューティング環境を接続型スタンバイ状態に遷移させ、コンピューティング環境を接続型スタンバイ状態から実行状態に遷移させるための1つ又は複数のシステム及び/又は技術が、本明細書において提供される。特にプロセスは、プロセスが所望の機能及び/又は重要なシステム機能を提供するかどうかなどの様々なファクタに基づいて、除外分類、一時停止分類及び/又は制限分類に分類される。この方法において、コンピューティング環境は、常時オン/常時接続型のエクスペリエンスを提供する低電力消費状態などの、接続型スタンバイ状態に遷移される。具体的には、除外対象のプロセスは実行を許可され、一時停止可能なプロセスは実行が一時停止され、制限可能なプロセスは、制限スケジュールに基づいて実行状態と非実行一時停止状態との間を循環する。一時停止及び/又は制限プロセスは、これらのプロセスが、リソースを起動して電力を消費するタスクを実行するのを制限する非実行一時停止状態に置かれるので、一時停止及び/又は制限プロセスは電力消費を低減することができる。コンピューティング環境は、わずかな時間でユーザに最新エクスペリエンスを提供する応答性の早い手法で接続型スタンバイ状態から実行状態に遷移される(例えばユーザは、数秒以内に最新状態のコンピューティン環境と対話することが可能である)。特に、一時停止されたプロセス及び/又は制限されたプロセスが実行状態に置かれると、その結果、コンピューティング環境が実行状態に遷移する。
【0016】
電力管理分類をプロセスに割り当てる一実施形態が、
図1の例示的方法100によって図示されている。102において方法が開始する。104において、電力管理分類を割り当てるべきプロセス(例えばタブレットオペレーティングシステム、デスクトップオペレーティングシステム、モバイルデバイスオペレーティングシステムなどのコンピューティング環境内のプロセス)が識別される。例えば、新たに作成されたプロセスが、そのようなプロセスとして識別される(例えば階層型ジョブオブジェクトなどの論理コンテナ内のプロセス)。106において、電力管理分類がプロセスに割り当てられる。当然ながら、様々なファクタを評価して、電力管理分類を割り当てることができることが認識されよう(例えば、システムオペレーションに対するプロセスの重要性、プロセスによって提供される所望の機能、プロセスを制限する能力等)。
【0017】
電力管理分類を割り当てる一例において、プロセスの論理コンテナが、親プロセスの親論理コンテナに関連付けられていると決定されることがある(例えばスペルチェッカプロセスの論理コンテナが、親のワードプロセッシングプロセスの親論理コンテナに関連付けられる(例えば親論理コンテナの下にネストされる)ことがある)。親プロセスに割り当てられている親の電力管理分類を、そのプロセスに割り当てられる電力管理分類として、そのプロセスに割り当てることができる(例えば、親のワードプロセッシングプロセスに割り当てられた一時停止分類を、スペルチェッカプロセスにも割り当てることができ、その結果、一方のプロセスが一時停止している間に他方のプロセス(例えばスペルチェッカ)が接続型スタンバイ状態中に不必要に実行を継続することとは対照的に、双方のプロセスをともに一時停止状態にすることができる)。
【0018】
電力管理分類を割り当てる別の例では、1プロセスのライフサイクルがプロセス及び/又はライフサイクルコンポーネントによって管理される場合、次いで除外分類をプロセスに割り当てることができる。例えば、アプリケーション(例えば比較的新しく作成されたアプリケーション)は、広範な電力消費管理を提供するアプリケーションモデルの下で開発されることがある。したがって、この場合、追加の電力消費管理は冗長であるか、及び/又はアプリケーションの実行を阻害することがあるので、このアプリケーションに除外分類を割り当てることができる。
【0019】
電力管理分類を割り当てる別の例では、110において、コンピューティングシステム障害(例えば、コンピューティング環境及び/又はプロセスに関連付けられたアプリケーションの障害)を伴わずにプロセスを一時停止することができ、かつプロセスに関連付けられた限定的なランタイム機能が望まれない場合(例えば、コンピューティング環境が低電力の接続型スタンバイ状態にあるとき、ユーザは印刷機能を望まないことがある)、一時停止分類がプロセスに割り当てられる。例えば、プロセスがユーザアプリケーションに関連付けられるとき、このプロセスは、一時停止可能と決定され、一時停止分類を割り当てられる(例えば、ユーザセッションにおいて開始される写真共有アプリケーションは、コンピュータ環境が低電力の接続型スタンバイ状態にあるとき、所望の機能を提供せず(例えばユーザは、該ユーザのタブレットが接続型スタンバイ状態のときに写真を閲覧/共有することを望まない)、及び/又はコンピューティング環境のコアなシステム機能に影響を与えない)。
【0020】
電力管理分類を割り当てる別の例では、112において、コンピューティングシステム障害を伴わずにプロセスを制限することができ、かつプロセスに関連付けられた限定的なランタイム機能が望まれる場合、制限分類がプロセスに割り当てられる。例えば、プロセスが、サービス(例えば、システムセッション内で開始されたメッセージングシステムサービス)を備え、そのサービスが所望の状態機能を提供するものである場合(例えば、メッセージシステムサービスは新たなメッセージを聞き、ユーザに最新の通信を通知することができる)、プロセスは、制限可能であると決定され、制限分類を割り当てられる(例えば、アンチウィルス機能、メッセージングサービス機能、ネットワークサービス機能及び/又は様々な他の所望の機能に関連付けられたプロセスに、制限分類を割り当てることができる)。
【0021】
電力管理分類を割り当てる別の例では、114において、コンピューティングシステム障害を伴わずにプロセスを一時停止することができない、又は制限することができない場合、除外分類がプロセスに割り当てられる。コンピューティング環境は、基本オペレーティング機能について様々なプロセスに依拠しており、したがって、このようなプロセスの一時停止及び/又は制限はコンピューティングシステムの障害につながることがある。一例において、特定のコアカーネルプロセス、デバイスドライバ及び/又は基本オペレーティング機能を提供する他のプロセスには、除外分類を割り当てることができる。別の例では、依存性グラフ(dependency graph)が検討される。コアカーネルプロセスから、該コアカーネルプロセスが依存する機能を提供する1つ又は複数のサポートプロセスへの依存性グラフを構築することができる(例えば、分散ソフトウェアコンポーネント間の通信を容易にするソフトウェアコンポーネントネットワーク通信モジュールは、そのようなソフトウェアコンポーネントに関連付けられる1つ又は複数のコアカーネルプロセスにより依拠されることがある)。プロセスが、依存性グラフにおいて指定されたサポートプロセスを備える場合、このプロセスは、一時停止することができないと判断され、したがってこのプロセスには除外分類が割り当てられる。
【0022】
電力管理分類を割り当てる別の例では、プロセスが、ユーザ定義ポリシーに関連付られた機能性を提供する場合、ユーザ定義された電力管理分類が、このプロセスに割り当てられる。例えば、ユーザはコンピューティング環境に対して、(例えば、コンピューティング環境が低電力の接続型スタンバイ状態にあるか、又は実行状態にあるかにかかわらず)着信メッセージを最新にしておくという望みを指定することがある。したがって、メッセージ機能を提供するプロセス(例えばメッセージリスナプロセス、メッセージ通知プロセス等)に、除外分類などのユーザ定義された電力管理分類を割り当てることができる。この方法では、コンピューティング環境を接続型スタンバイ状態に遷移させるのに使用される電力管理分類を、様々なプロセスに割り当てることができる。116において方法は終了する。
【0023】
図2は、電力管理分類をプロセスに割り当てるように構成されたシステム200の例を図示している。システム200は、分類コンポーネント204を備えることができる。分類コンポーネント204は、電力管理分類を、コンピューティング環境に関連付けられたプロセスに割り当てるように構成される。例えば、コンピューティング環境は、ネットワークパケットプロセッサ208、ハードウェアイベントプロセッサ210、印刷スプーラ212、アンチウィルス214、ワードプロセッサ216、スペルチェッカ218(例えばスペルチェッカ218は、ワードプロセッサ216の子プロセスとする)、インスタントメッセンジャー220及び/又はメッセージ通知機能222(例えばメッセージ通知機能222は、インスタントメッセンジャー220の子プロセスとする)を備えるコンピューティングシステムプロセス202に関連付けられる。
【0024】
一例において、分類コンポーネント204は、あるプロセッサが親プロセスに関連付けられるかどうかを決定するように構成される。プロセスが親プロセスに関連付けられる場合、分類コンポーネント204は、親プロセスに割り当てられた親の電力管理分類を、そのプロセスに割り当てられる電力管理分類として割り当てを行うことができる。例えば、ワードプロセッサ216はスペルチェッカ218の親プロセスとすることができる。ワードプロセッサ216には一時停止分類が割り当てられている(例えばワードプロセッサ216は、所望の機能を低電力の接続型スタンバイ状態中に提供しない、及び/又は重要なシステム機能を提供しないワードプロセッサアプリケーションに関連付けられる)。したがって、スペルチェッカ218には、ワードプロセッサ216に割り当てられた一時停止分類を割り当てることができる。同様に、インスタントメッセンジャー220はメッセンジャー通知機能222の親プロセスであるため、メッセージ通知機能222は、インスタントメッセンジャー220に割り当てられた除外のユーザ電力管理分類を割り当てることができる。この方法では、関連するプロセスを簡単に分類し、その結果、そのような電力管理分類を、効率性のためにグループとして実装し(例えば電力節約をさらに促進するために、いくつかの分類オペレーションを実行する必要がある)、及び/又は一貫性のない結果(例えばメッセージ通知機能222に除外分類を割り当てた場合、インタントメッセンジャー220が接続型スタンバイ状態中に一時停止している間、メッセージ通知機能222を不必要に実行することがある)を回避するためにグループとして実装することができる。
【0025】
別の例において、分類コンポーネント204は、プロセスのライフサイクルがプロセス及び/又はライフサイクル管理コンポーネントによって管理されていると決定することに基づいて、除外分類をプロセスに割り当てることができる。すなわち、電力節約は、プロセス又は別のプロセスによって既に管理されている。
【0026】
別の例において、分類コンポーネント204は、コンピューティングシステム障害を伴わずにプロセスを一時停止することができるとの決定、及び/又はプロセスに関連付けられた限定的なランタイム機能が望まれていないと決定することに基づいて、一時停止分類をプロセスに割り当てることができる。例えば、ワードプロセッサ216は、その一時停止によりコンピューティングシステム障害が起きず、及び/又はコンピューティング環境が接続型スタンバイ状態にある間にユーザが限定的なランタイムのワードプロセッシング機能を望まないユーザアプリケーションであるので、ワードプロセッサ216に一時停止分類を割り当てることができる。さらに、印刷スプーラ212の一時停止は、コンピューティングシステム障害を起こさず、及び/又はコンピューティング環境が接続型スタンバイ状態にある間にユーザは限定的なランタイムの印刷機能を望まないので、印刷プローラ212に一時停止分類を割り当てることができる。
【0027】
別の例において、分類コンポーネント204は、プロセスを制限することができ、かつプロセスに関連付けられた限定的なランタイム環境が望まれると決定することに基づいて、制限分類をプロセスに割り当てることができる。例えば、アンチウィルス214(例えばシステムセッション内で開始されたアンチウィルスシステムサービス)は、例えばアンチウィルス214が書込みデータに対するチェックを実行するまで記憶装置への書込みアクセスがブロックされるため、所望の状態機能を提供する(例えばユーザは、コンピューティング環境が接続型スタンバイ状態にある間に着信メッセージを記憶装置に保存することを望むことがある)。
【0028】
別の例において、分類コンポーネント204は、コンピューティングシステム障害を伴わずにプロセスを一時停止することができない又は制限することができないと決定することに基づいて、除外分類をプロセスに割り当てることができる。一例において、分類コンポーネント204は、コンピューティングシステム障害を伴わずに、特定のコアカーネルプロセス、デバイスドライバ及び/又は他のプロセスを一時停止することができないと決定する。例えば、ネットワークパケットプロセッサ208及び/又はハードウェアイベントプロセッサ210は、コンピューティング環境よって依拠されるコア機能を提供することがあり、したがって、除外分類を割り当てられる。別の例において、依存性グラフを参照して、プロセスが、コアカーネルプロセスが依存するサポートプロセスであるかどうかを判断することができる。
【0029】
別の例において、分類コンポーネント204は、プロセスがユーザ定義ポリシーに関連付けられた機能を提供すると決定したことに基づいて、ユーザ定義された電力管理分類をプロセスに割り当てることができる。例えばインスタントメッセンジャーに、除外のユーザ電力管理分類を割り当てることができる。これは、コンピューティング環境が接続型スタンバイ状態にある間であっても、ユーザが着信インスタントメッセージを受信することを望むことがあるためである。
【0030】
この方法において、プロセスに対する電力管理分類の割り当てにより、電力管理分類割当て206を作成及び/又は更新することができる。コンピューティング環境を接続型スタンバイ状態に遷移させる際にこのような割り当てを用いて、電力消費を低減し及び/又はバッテリ寿命を改善する低電力状態を達成することができる。当然ながら、このような割り当てを、実行状態にある間のバックグラウンド/フォアグラウンドタスクの一時停止及び/又はプロセスの制限など、様々な他のシナリオに用いることができる。
【0031】
プロセスに割り当てられる電力管理分類に基づいて、コンピューティング環境を接続型スタンバイ状態に遷移させる一実施形態が、
図3の例示的方法300によって図示されている。302において方法は開始する。304において、コンピューティング環境に関連付けられた接続型スタンバイのエントリ要求が検出される。当然ながら、接続型スタンバイ状態は低電力消費状態に対応し、その状態では、様々なプロセスが一時停止され、制限され、又は実行の継続を許可される。この方法では、電力の消費を低減することができ、コンピューティング環境は、所望の機能の実行を継続して、実行状態に遷移する(戻る)ときに応答の早い最新のエクスペリエンスを提供することができる。接続型スタンバイ状態を、タブレットコンピューティングデバイス、デスクトップコンピューティングデバイス、ラップトップ、モバイルフォンなどの様々なコンピューティングデバイスにおいて様々な方法で実装することができる。
【0032】
306において、コンピューティング環境を接続型スタンバイ状態に遷移させる。一例では、一時停止分類を割り当てられた個々の一時停止可能なプロセスについて、308において、一時停止可能なプロセスを非実行一時停止状態に置く。すなわち、一時停止可能なプロセスが、リソースを起動して電力消費タスクを実行するのを防ぐ(例えば、ワードプロセッサが一時停止され、その結果、(一時停止されなければ)低電力アイドル状態にあるワードプロセッサはハードウェアリソースにアクセスしない)。一時停止分類は、プロセスが、コンピューティングシステム障害を伴うことなく一時停止できるかどうか、及び/又はプロセスに関連付けられた限定的なランタイム機能が望まれるかどうかに対応する。この方法では、コンピューティングシステム障害を起こさず、及び/又は所望の機能を欠くことなく、一時停止可能なプロセスを非実行一時停止状態に置くことができる。
【0033】
別の例では、制限分類を割り当てられた個々の制限可能なプロセスに関して、310において、制限スケジュールを制限可能なプロセスに割り当てる。制限分類は、コンピューティングシステム障害を伴うことなくプロセスを制限できるかどうか、及び/又はプロセスに関連付けられた限定的なランタイム機能が望まれるかどうかに対応する。制限スケジュールを、接続型スタンバイ状態にある制限可能なプロセスに適用することができる。例えば制限可能なプロセスは、制限スケジュールに基づいて、実行状態と非実行一時停止状態との間を循環させることができる(例えば制限スケジュールは、実行状態の実行時間の期間、及び非実行一時停止状態の一時停止時間の期間を指定することができる)。例えば制限可能なメッセージプロセスは、5分毎に20秒間、新たなメッセージをチェックするのに実行を許可される。
【0034】
別の例では、除外分類を割り当てられた個々の除外対象のプロセスに関して、312において、除外対象のプロセスは実行状態で実行の継続を許可される。除外分類は、コンピューティングシステム障害を伴わずにプロセスを一時停止できない又は制限できないことに対応する(例えばコアカーネルプロセス、デバイスドライバ及び/又はコアカーネルプロセスのサポートプロセス等)。この方法において、コンピューティング環境のコア機能を提供し、及び/又は所望の機能を提供する除外対象のプロセスは、コンピューティング環境が接続型スタンバイ状態にある間、実行状態で実行することを許可される。
【0035】
コンピューティング環境を接続型スタンバイ状態に遷移される一例において、制限可能なプロセスが制限される前に、一時停止可能なプロセスを非実行一時停止状態に置くことができる。なぜなら、一時停止可能なプロセスが、制限可能なプロセスに依拠しうるためである(例えば一時停止可能なワードプロセッサアプリケーションは、格納されたテキストドキュメントにアクセスするため、制限可能なストレージアクセスプロセスに依拠する)。制限する前に一時停止することは、一時停止可能なプロセスが依拠する制限されたプロセスが、一時停止可能なプロセスの一時停止の前に既に非実行一時停止状態に置かれていたことにより、一時停止可能なプロセスが失敗する、という事態を軽減することができる。
【0036】
コンピューティング環境を接続型スタンバイ状態に遷移させる一例において、相互に関連付けられる一時停止可能なプロセスのグループを一時停止することができ、これは例えば、整合性のリスクを軽減することができる。一例において、第1の一時停止可能なプロセスが、第2の一時停止可能なプロセスに関連付けられたリソースを使用することができるとき、第1の一時停止可能なプロセスを、第2の一時停止可能なプロセスとともにグループ化することができる(例えばワードプロセッサアプリケーションプロセスは、スペルチェッカプロセスからのスペルチェックデータを使用することがあり、したがってこれら2つのプロセスを一緒にグループ化することができる)。別の例では、第1の一時停止可能なプロセスが、第2の一時停止可能なプロセスの子プロセスであるとき、第1の一時停止可能なプロセスを、第2の一時停止可能なプロセスとともにグループ化することができる(例えば写真アップロードプロセスは、オンライン写真共有プロセスの子プロセスであり、したがってこれらの2つのプロセスを一緒にグループ化することができる)。別の例では、第1の一時停止可能なプロセスが、第2の一時停止可能なプロセスが開始された第2の論理コンテナに関連付けられた第1の論理コンテナ内で開始されるとき、第1の一時停止可能なプロセスを、第2の一時停止可能なプロセスとともにグループ化することができる(例えばオンライン写真共有プロセスが親のジョブグループ内で開始され、写真アップロードプロセスが親ジョブグループ内でネストされた子ジョブグループ内で開始され、したがってこれらの2つのプロセスを一緒にグループ化することができる)。この方法では、相互に関連付けられる、及び/又は相互に依存する一時停止可能なプロセスを、グループとして一時停止するために、一緒にグループ化することができる。
【0037】
接続型スタンバイ状態の間、実行状態にあるプロセスが、新たなプロセスを作成することがある。作成されると、新たなプロセスは電力管理分類により分類される。すなわち、電力管理分類は、コンピューティング環境が既に接続型スタンバイ状態にあったとしても、新たなプロセスに適用される。
【0038】
この方法において、コンピューティング環境を接続型スタンバイ状態に遷移させて、電力使用を低減することができる。当然ながら、不必要なハードウェア及び/又はリソースをターンオフすることや、コンピューティング環境に関連付けられたコンピューティングデバイスのスクリーンを電源オフすることなど、追加の電力節約技術を実装することができる。314において方法は終了する。
【0039】
図4は、プロセスに割り当てられた電力管理分類割当て404に基づいて、コンピューティング環境を接続型スタンバイ状態410に遷移させるように構成されたシステム400の例を図示している。システム400は、遷移コンポーネント406及び/又は制限コンポーネント408を備えることができる。遷移コンポーネント406は、コンピューティング環境に関連付けられた接続型スタンバイのエントリ要求402を検出するように構成される。遷移コンポーネント406は、コンピューティング環境を、該コンピューティング環境をホストするコンピューティングデバイスに関連付けられた電力消費を低減することができる接続型スタンバイ状態410に遷移させるように構成される(例えば1つ又は複数のプロセスを一時停止及び/又は制限して、これらのプロセスに関連付けられた電力消費を低減することができる)。
【0040】
電力管理分類割当て404内において、一時停止分類に関連付けられた個々の一時停止可能なプロセスについて、遷移コンポーネント402は、一時停止可能なプロセスを非実行一時停止状態に置くように構成される。例えば、印刷スプーラプロセス、ワードプロセッサプロセス、スペルチェッカプロセス及び/又は他の一時停止可能なプロセスを、コンピューティング環境が接続型スタンバイ状態410の間に、非実行一時停止状態に置くことができる。一例において、相互に関連付けられた一時停止可能なプロセスのグループを、一緒に一時停止することができる(例えば、第1の一時停止可能なプロセスが第2の一時停止可能なプロセスの子プロセスであることと、第1の一時停止可能なプロセスが第2の一時停止可能なプロセスからのリソースを使用することと、及び/又は第1の一時停止可能なプロセスが第2の一時停止可能なプロセスによってロックされたリソースを待つこととのうちの少なくとも1つに基づいて、第1の一時停止可能なプロセスを第2の一時停止可能なプロセスに関連付けることができる)。例えば、ワードプロセッサプロセスとスペルチェッカプロセスとを一緒に一時停止して、一方のプロセスが一時停止された場合に他方のプロセスが実行期間内に置かれたままになるという事態を生じ得る、不整合性のリスクを軽減することができる(例えばワードプロセッサプロセスはスペルチェッカプロセスからのデータを使用しており、ワードプロセッサプロセスの前にスペルチェッカプロセスが一時停止すると、ワードプロセッサプロセスは障害を発生する)。
【0041】
電力管理分類割当て404内において、制限分類に関連付けられた個々の制限可能なプロセスについて、遷移コンポーネント406は、制限スケジュールを制限可能なプロセスに割り当てることができる。例えば、アンチウィルスプロセスを制限スケジュールに割り当てることができ、この場合、アンチウィルスプロセスは2分毎に5秒間実行する。制限コンポーネント408は、制限スケジュールに基づいて制限可能なプロセスを実行状態と非実行一時停止状態との間で循環させることによって、制限スケジュールを制限可能なプロセスに適用するように構成される。一例において、遷移コンポーネント406は、制限スケジュールを制限可能なプロセスに割り当てる前に、及び/又は制限コンポーネント408が制限スケジュールを適用する前に、一時停止可能なプロセスを非実行一時停止状態に置くように構成される。制限可能なプロセスの前にプロセスを一時停止することは、一時停止可能なプロセスが制限可能なプロセスからのデータに依拠しているが、一時停止可能なプロセスが一時停止する前に制限可能なプロセスが既に非実行一時停止状態にある場合の衝突を軽減することができる。
【0042】
電力管理分類割当て404内において、除外分類に関連付けられた個々の除外対象のプロセスについて、遷移コンポーネント406は、除外対象のプロセスの実行の継続を許可することができる。例えばネットワークパケットプロセッサプロセス、ハードウェアイベントプロセッサプロセス、インスタントメッセンジャープロセス、メッセージ通知プロセス、及び/又は他の除外対象のプロセスは、コンピューティング環境が接続型スタンバイ状態410にある間に実行を継続することを許可される(例えばネットワークパケットプロセッサプロセス及び/又はハードウェアイベントプロセッサプロセスは、これらの機能がコンピューティング環境により基本的な機能のために依拠されるので除外され、一方、インスタントメッセンジャープロセス及びメッセージ通知プロセスは、これらの機能はユーザに対して望ましいので除外される)。この方法において、コンピューティング環境は、遷移コンポーネント406によって接続型スタンバイ状態410に遷移される。
【0043】
コンピューティング環境を接続型スタンバイ状態から実行状態に遷移させる一実施形態が、
図5の例示的方法500によって図示されている。502において方法が開始する。504において、コンピューティング環境に関連付けられた接続型スタンバイの終了要求を受信する。すなわち、コンピューティングデバイスは、電力消費を低減する接続型スタンバイ状態に遷移されている。例えば接続型スタンバイ状態にある間、1つ又は複数のプロセスは、電力消費を低減するよう一時停止及び/又は制限されているが、コンピューティング環境の基本動作のために依拠されているプロセス及び/又は所望の機能を提供するプロセスは、実行を許可されているので、コンピューティング環境は、応答の早い手法により最新の実行状態へとシームレスに遷移することができる(例えば、数時間の間、接続型スタンバイであったタブレットデバイスが、数秒以内に実行状態に遷移することができ、電子メールメッセージ及び他の情報を、数秒以内に最新に及び/又はユーザに対してアクセス可能にすることができる)。
【0044】
506において、コンピューティング環境は、接続型スタンバイ状態から実行状態に遷移する。一例では、一時停止分類を割り当てられた個々の一時停止されたプロセスについて、508において、一時停止されたプロセスに対する実行機能を回復することができる。一時停止分類は、コンピューティングシステム障害(例えば、コンピューティング環境及び/又はプロセスの障害)を伴わずに、プロセスを一時停止することができるかどうか、及び/又はプロセスに関連付けられた限定的なランタイム機能が望まれないかどうかに対応する(例えば、ユーザセッション内で作成されたワードプロセッシングユーザアプリケーションは、コンピューティング環境が接続型スタンバイ状態にある間にワードプロセッシングユーザアプリケーションの機能が望まれないことがあり、及び/又はそのような機能は、コンピューティング環境による基本動作に依拠されないため、一時停止されていることがある)。
【0045】
別の例において、制限分類を割り当てられた個々の制限されたプロセスは、510において、制限されたプロセスに対する実行機能を回復することができる。例えば、制限されたプロセスに対する実行機能は、制限されたプロセスに適用された制限スケジュールに基づくものとすることができ、制限されたプロセスに実行機能を回復させることの一部として、制限スケジュールを制限されたプロセスに対して適用解除することができる(例えば、制限されたプロセスが非実行一時停止状態にある場合、制限されたプロセスは、次いで実行状態に遷移される)。制限分類は、プロセスが、コンピューティングシステム障害を伴わずに制限できるかどうか、及び/又はプロセスに関連付けられた限定的なランタイム機能が望まれるかどうかに対応する(例えばアンチウィルスプロセスは、データが記憶装置に書き込まれる前にそのデータをスキャンする所望の状態機能を提供し、また、アンチウィルスプロセスを制限することは、アンチウィルスプロセス及び/又はコンピューティング環境の障害を引き起こさないので、アンチウィルスプロセスには制限分類が割り当てられている。)
接続型スタンバイ状態から実行状態に遷移する一例では、一時停止されたプロセスに対する実行機能を回復する前に、制限されたプロセスに実行機能を回復する(例えば
図5では508が510の前に示されているが、510を実行し、次いで508を実行する)。これは、一時停止されたプロセスが、制限されたプロセスによって提供されるデータ及び/又は機能に依拠することがあるためである。例えば、一時停止された写真編集プロセスの前に、制限されたストレージアクセスプロセスに実行機能を回復する。これは、制限されたストレージアクセスプロセスが、一時停止された写真編集プロセスに記憶装置へのアクセスを提供するのに利用可能でない場合には、一時停止された写真編集プロセスがクラッシュする可能性があるためである。別の例では、一時停止された子プロセスが、一時停止された親プロセスからのリソースを使用するように構成されるため、一時停止された子プロセスの前に、一時停止された親プロセスに実行機能を回復する。この方法では、コンピューティング環境を、必要以上の遅滞を要することなくユーザに最新の情報を提供することができる応答性の良い手法で、接続型スタンバイ状態から実行状態に遷移させることができる(例えばユーザは、接続型スタンバイの終了要求を提示した数秒以内に新たなメッセージを見ることが可能である)。
【0046】
図6は、コンピューティング環境を接続型スタンバイ状態604から実行状態608に遷移させるように構成されたシステム600の例を図示している。システム600は遷移コンポーネント606を備えることができる。遷移コンポーネント606は、コンピューティング環境に関連付けられた接続型スタンバイの終了要求602を検出するように構成される(例えばユーザはタブレットスクリーンをスワイプする)。遷移コンポーネント606は、コンピューティング環境を接続型スタンバイ状態604から実行状態608に遷移させるように構成される。
【0047】
一時停止分類を割り当てられた個々の一時停止されたプロセスについて、遷移コンポーネント606は、一時停止されたプロセスに実行機能を回復することができる。例えば、印刷スプーラプロセス、ワードプロセッサプロセス、スペルチェッカプロセス及び/又は他のプロセスは、コンピューティング環境が電力消費を低減する接続型スタンバイ状態604にある間、一時停止されている。実行機能を回復すると、これらのプロセスは、コンピューティング環境が実行状態608にある間、通常通りに実行する。
【0048】
制限分類を割り当てられた個々の制限されたプロセスについて、遷移コンポーネント606は、制限されたプロセスに実行機能を回復することができる。例えば、アンチウィルスプロセスは所望の限定的なランタイム機能を提供していたので、アンチウィルスプロセスは、コンピューティング環境が接続型スタンバイ状態604にある間、制限スケジュールに基づいて制限されていた(例えばアンチウィルスプロセスは、様々な間隔で記憶装置に対する書込みコマンドに関連付けられたデータをチェックしているので、コンピューティング環境が実行状態608に遷移すると、着信メッセージは記憶装置に書き込まれるか、及び/又はユーザに対して利用可能になる)。一例において、制限されたプロセスに適用されていた制限スケジュールを適用解除することによって、実行機能を回復することができる(例えば、制限されたプロセスが非実行一時停止状態にある場合、次いで制限されたプロセスを実行状態に遷移させることができる)。
【0049】
一例において、遷移コンポーネント606は、一時停止されたプロセスが、制限されたプロセスからのリソースを使用するので、一時停止されたプロセスに実行機能を回復する前に、制限されたプロセスに実行機能を回復するように構成される。例えば、一時停止された写真編集プロセスの前に、制限されたストレージアクセスプロセスに実行機能を回復することができる。これは、制限されたストレージアクセスプロセスが、一時停止された写真編集プロセスに記憶装置へのアクセスを提供するのに利用可能でない場合には、一時停止された写真編集プロセスがクラッシュする可能性があるためである。別の例では、一時停止された子プロセスが、一時停止された親プロセスからのリソースを使用するため、一時停止された子プロセスの前に、一時停止された親プロセスに実行機能を回復する。
【0050】
当然ながら、1つ又は複数の除外対象のプロセスは、コンピューティング環境が接続型スタンバイ状態604にあった間も実行状態で実行を許可されていたことが認識されよう(例えば、ネットワークパケットプロセッサプロセス、ハードウェアイベントプロセッサプロセス、インスタントメッセンジャープロセス、メッセージ通知プロセス及び/又は他のプロセスは実行を許可されていた)。したがって、これらのプロセスは、コンピューティング環境が実行状態608に遷移するとき、処理を継続することを許可される。この方法では、遷移コンポーネント606により、コンピューティング環境を、必要以上の遅滞を要することなくユーザに最新の情報を提供することができる応答性の良い手法で、接続型スタンバイ状態604から実行状態608にシームレスに遷移させることができる(例えばユーザは、接続型スタンバイの終了要求602を提示した数秒以内に新たなメッセージを見ることが可能である)。
【0051】
図7は、タブレットデバイスが接続型スタンバイ状態704から実行状態708に遷移する例700を図示している。タブレットデバイスは、一部のプロセスが実行するのを許可し、他のプロセスを制限及び/又は一時停止することによって、電力消費を低減する接続型スタンバイ状態704に入っている。例えば、基本動作のためにタブレットデバイスに依拠されているコアシステムプロセス、及び/又はコンピューティングシステム障害を生じることなく制限又は一時停止できる他のプロセスは、通常通りに動作することを許可される。システムサービスプロセス、及び/又はコンピューティングシステム障害(例えばプロセッサ及び/又はタブレットデバイスの障害)を引き起こすことなく制限できるか、及び/又は所望の限定的なランタイム機能を提供する他のプロセスを、制限することができる。プロセスを制限することにより電力を節約することができる。これは、制限されたプロセスを、かなりの時間期間の間、非実行一時停止状態に置くことができるからである。したがって、非実行一時停止状態の制限されたプロセスは、電力を消費する機能を実行するリソース(例えばプロセッサ、ハードウェア等)を起動することができない。さらに、コンピューティングシステム障害を引き起こさずに一時停止することができるか、及び/又は所望の限定的なランタイム機能を提供しないプロセスを一時停止することができる。プロセスを一時停止することにより電力を節約することができる。これは、一時停止されたプロセスを非実行一時停止状態に置き、その結果、一時停止されたプロセスは、電力を消費する機能を実行するリソースを起動することができないためである。接続型スタンバイ状態704の一例において、ネットワーク機能プロセス、メッセージングサービスプロセス及び/又は他のプロセスを制限し、及び/又は十分に実行を許可することができる。したがって、接続型スタンバイ状態704にあるタブレットデバイスは、着信メッセージ702の受信及び/又は処理を継続することができる。この方法では、タブレットデバイスは、所望の機能の提供を継続しつつ、低電力消費状態で動作することができる。
【0052】
タブレットデバイスを、実行状態708に遷移させることができる。例えば、接続型スタンバイの終了要求706に対応するユーザ入力を受信することができる(例えば、タブレットデバイス上の指のスワイプを検出することができる)。タブレットデバイスは、制限及び/又は一時停止されたプロセスを実行状態に置くことによってシームレスに実行状態708に遷移される。少なくとも一部の機能は、タブレットデバイスが接続型スタンバイ状態704であった間にも実行が許可されていたので、応答性の良い手法で最新の情報をユーザに提供し、及び/又は利用可能にすることができる。例えば、接続型スタンバイの終了要求706を入力してから短い時間間隔で(例えば数秒)、ユーザに、タブレットデバイスが接続型スタンバイ状態704にあった間に処理された着信メッセージ702に関連付けられた最新の情報を提示することができる。例えば、タブレットデバイスが実行状態に遷移すると、新たなメッセージ、RSSフィード更新、イベント招待及び/又は大量の他の情報をユーザに対して利用可能にすることができる。したがって、タブレットデバイスは、実行状態にあるときは応答性の良い最新のエクスペリエンスをユーザに提供しつつも、接続型スタンバイ状態により、多いに改善されたバッテリ寿命を提供することができる。
【0053】
さらに別の実施形態は、本明細書で提示された技術の1つ又は複数を実装するように構成されたプロセッサ実行可能命令を備えるコンピュータ読取可能媒体に関連する。これらの方法で得られる例示的なコンピュータ読取可能媒体は、
図8に図示されている。
図8の実装800は、コンピュータ読取可能媒体816(例えば、CD−R、DVD−R又はハードディスクドライブの円盤状媒体)を備え、このコンピュータ読取可能媒体816上にはコンピュータ読取可能データがエンコードされる。このコンピュータ読取可能なデータ814は、本明細書で説明される原理の1つ又は複数に従って動作するように構成される、コンピュータ命令812のセットを備える。このような一実施形態800において、プロセッサ実行可能なコンピュータ命令812は、例えば
図1の例示的な方法100、
図3の例示的な方法300及び/又は
図5の例示的な方法500の少なくとも一部などの方法810を実行するように構成される。別のこのような実施形態において、プロセッサ実行可能命令812は、例えば
図2の例示システム200、
図4の例示システム400及び/又は
図6の例示システム600などのシステムを実装するように構成される。本明細書で提示される技術に従って動作するように構成される多くのこのようなコンピュータ読取可能媒体が、当業者により導き出されるであろう。
【0054】
本主題を、構造的特徴及び/又は方法的動作に特有の言葉で説明してきたが、添付の特許請求の範囲によって定義される主題は、必ずしも上述の特有の特徴及び動作に限られないことを理解されたい。むしろ、上述の特有の特徴及び動作は、本件特許請求の範囲を実装する例示的な形式として開示されている。
【0055】
本出願において使用されるとき、「コンポーネント」、「モジュール」、「システム」、「インタフェース」及び同様の用語は、一般的に、ハードウェア、ハードウェアとソフトウェアの組み合わせ又は実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すように意図される。例えばコンポーネントは、限定ではないが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム及び/又はコンピュータとすることができる。例として、コントローラ上で実行するアプリケーションとコントローラの双方をコンポーネントとすることができる。1つ又は複数のコンポーネントがプロセス内に及び/又は実行のスレッド内に存在してもよく、1つのコンポーネントを、1つのコンピュータ上に、及び/又は2つ若しくはそれ以上のコンピュータ間に分散させてもよい。
【0056】
さらに、特許請求される主題を、方法、装置、あるいは開示される主題を実装するようにコンピュータを制御するソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを生成する標準のプログラミング及び/又はエンジニアリング技術を使用する製品として実装することができる。本明細書で使用されるとき、「製品」という用語は任意のコンピュータ読取可能デバイス、搬送波又は媒体からアクセス可能なコンピュータプログラムを包含するように意図される。当然、当業者には、特許請求される主題の範囲又は精神を逸脱することなく、この構成に多くの修正を行うことができることが認識されよう。
【0057】
図8及び以下の説明は、本明細書で説明されるプロビジョンの1つ又は複数の実施形態を実装するのに適切なコンピューティング環境について、簡潔で一般的な説明を提供する。
図8の動作環境は、適切な動作環境の単なる一例であり、動作環境の使用又は機能性の範囲についていかなる限定を示唆するようにも意図されていない。例示的なコンピューティングデバイスには、限定ではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、モバイルデバイス(モバイルフォン、個人用情報端末(PDA)、メディアプレイヤなど)、マイクロプロセッサシステム、家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、上記のシステム及びデバイスのいずれかを含む分散コンピューティング環境などを含む。
【0058】
必要ではないが、1つ又は複数のコンピューティングデバイスによって実行される「コンピュータ読取可能命令」の一般的コンテキストにおいて実施形態が説明される。コンピュータ読取可能命令を、コンピュータ読取可能媒体(以下で説明される)を介して分散させることができる。コンピュータ読取可能命令を、特定のタスクを実行するか特定の抽象データ型を実装する関数、オブジェクト、アプリケーションプログラミングインタフェース(API)、データ構造などのプログラムモジュールとして実装することができる。典型的に、コンピュータ読取可能命令の機能を、様々な環境において望ましいように組み合わせ、又は分散させることができる。
【0059】
図9は、本明細書で提示される1つ又は複数の実施形態を実装するように構成されたコンピューティングデバイス912を備える、システム910の例を図示している。一構成において、コンピューティングデバイス912は、少なくとも1つの処理ユニット916とメモリ919を含む。コンピューティングデバイスの的確な構成及びタイプに応じて、メモリ919は揮発性(例えばRAMなど)、非揮発性(例えばROM、フラッシュメモリなど)又はこれら2つの何らかの組み合わせとすることができる。この構成は、
図9では破線914で示されている。
【0060】
他の実施形態において、デバイス912は、追加の特徴及び/又は機能性を含んでもよい。例えばデバイス912は、これらに限定されないが、磁気記憶装置、光記憶装置及び同様のものなどを含む、追加の記憶装置(例えば取外し可能及び又は取外し不可能)も含むことができる。このような追加の記憶装置は、
図9では記憶装置920によって示されている。一実施形態において、本明細書で提供される1つ又は複数の実施形態を実装するコンピュータ読取可能命令は、記憶装置920内に存在しうる。記憶装置920は、オペレーティングシステム、アプリケーションプログラム及び同様のものを実装する他のコンピュータ読取可能命令も格納することができる。コンピュータ読取可能命令を、例えば処理ユニット916による実行のためにメモリ919内にロードすることができる。
【0061】
本明細書で使用されるとき、「コンピュータ読取可能媒体」という用語は、コンピュータ記憶媒体を含む。コンピュータ記憶媒体は、コンピュータ読取可能命令又は他のデータなどの情報の記憶のための任意の方法及び技術で実装される、揮発性及び不揮発性、取外し可能及び取外し不可能媒体を含む。メモリ919及び記憶装置920はコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、これらに限られないが、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)若しくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶若しくは他の磁気記憶デバイス、又は所望の情報を格納するのに使用され、デバイス912によってアクセス可能な任意の他の媒体を含む。任意のそのようなコンピュータ記憶媒体は、デバイス912の一部とすることができる。
【0062】
デバイス912は、デバイス912が他のデバイスと通信するのを可能にする通信接続926も含むことができる。通信接続926は、これらに限られないが、モデム、ネットワークインタフェースカード(NIC)、統合ネットワークインタフェース、ラジオ周波数送受信機、赤外線ポート、USB接続、又はコンピューティングデバイス912を他のコンピューティングデバイスと接続するための他のインタフェースを含む。通信接続926は、有線接続及び無線接続を含むことができる。通信接続926は通信媒体を送信及び/又は受信することができる。
【0063】
「コンピュータ読取可能媒体」という用語は、通信媒体を含むことができる。通信媒体は典型的に、コンピュータ読取可能命令又は他のデータを、搬送波又は他の伝送機構などの「変調データ信号」に具現化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、情報を信号内にエンコードするように設定又は変更された信号の特性のうちの1つ又は複数を有す信号を含む。
【0064】
デバイス912は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス及び/又は他のデバイスなどの入力デバイス924を含むことができる。1つ又は複数のディスプレイ、スピーカ、プリンタ及び/又は任意の他の出力デバイスなどの出力デバイス922も、デバイス912内に含まれる。入力デバイス924及び出力デバイス922を、有線接続、無線接続又はこれらの組み合わせを介してデバイス912に接続することができる。一実施形態において、別のコンピューティングデバイスからの入力デバイス又は出力デバイスを、コンピューティングデバイス912の入力デバイス924又は出力デバイス922として使用することができる。
【0065】
コンピューティングデバイス912のコンポーネントを、バスなどの様々な相互接続によって接続することができる。そのような相互接続には、周辺コンポーネント相互接続(PCI)、例えば、PCIエクスプレス、USB、ファイヤワイヤ(IEEE1394)、光バス構造及び同様のものなどが含まれる。別の実施形態において、コンピューティングデバイス912のコンポーネントは、ネットワークによって相互接続される。例えばメモリ919は、ネットワークによって相互接続される物理的に異なる位置に配置された複数の物理的メモリユニットで構成されることがある。
【0066】
当業者には、コンピュータ読取可能命令を格納するのに用いられる記憶デバイスを、ネットワークにまたがって分散させることができることが理解されよう。例えばネットワーク92を介してアクセス可能なコンピューティングデバイス930は、本明細書で提示される1つ又は複数の実施形態を実装するコンピュータ読取可能命令を格納することができる。コンピューティングデバイス912は、コンピューティングデバイス930にアクセスして実行用のコンピュータ読取可能命令の一部又は全てをダウンロードすることができる。あるいは、コンピューティングデバイス912は、必要に応じてコンピュータ読取可能命令の一部をダウンロードしてもよく、又は一部の命令をコンピューティングデバイス912上で実行して、別の命令をコンピューティングデバイス93上で実行してもよい。
【0067】
諸実施形態の様々な動作が本明細書で提供されている。一実施形態において、説明した動作の1つ又は複数が、1つ又は複数のコンピュータ読取可能媒体上に格納されるコンピュータ読取可能命令を構成することがあり、そのような命令は、コンピューティングデバイスによって実行されると、そのコンピューティングデバイスに、説明された動作を実行させることとなる。説明された動作の一部又は全ての順序は、これらの動作がその順序に従う必要があることを示唆するものと解釈されるべきではない。この説明の利益を享受する当業者により代替的な順序が理解されよう。さらに、必ずしも全ての動作が、本明細書で提供される各実施形態において提示されるわけではないことも理解されよう。
【0068】
さらに、本明細書において「例示」という用語は、例、実施例、具体例として機能することを意味するように使用される。本明細書において「例示」として説明される任意の態様又は設計は、必ずしも他の態様又は設計に対する利点として解釈されるべきではない。むしろ、例示という用語の使用は、概念を具体的に提示することが意図されている。本出願で使用されるとき、「又は(若しくは、あるいは)」という用語は、排他的な「又は(若しくは、あるいは)」ではなく包括的な「又は(若しくは、あるいは)」を意味することが意図されている。すなわち、特に定めのない限り又は文脈から明らかでない限り、「XはA又はBを用いる」は、自然に包括的順列のうちのいずれかを意味するように意図される。すなわち、XがAを用いる場合、XがBを用いる場合、あるいはXがAとBの双方を用いる場合、「XがA又はBを用いる」という条件が上述の例のいずれかの下で満たされる。さらに、本明細書及び特許請求の範囲で使用されるとき、冠詞「ある」は一般に、単数形を指すように特に定めのない限り又は文脈から明らかでない限り、「1つ又は複数」を意味するように解釈されることもある。また、A及びB、及び/又は他の同様のもののうちの少なくとも1つは一般に、A又はBか、A及びBの双方を意味する。
【0069】
また、本開示は、1つ又は複数の実装に関して図示され説明されているが、本明細書および添付の図面を読み理解したことに基づいて、当業者は均等な代替構成及び修正が思いつくことがあるであろう。本開示は、そのような修正及び代替を全て含むものであり、特許請求の範囲によってのみ限定される。特に、上述のコンポーネント(例えば要素、リソースなど)によって実行される様々な機能に関して、これらのコンポーネントを説明するのに使用された用語は、他に特に示されていない限り、本開示の例示的実装の機能を実行する、開示された構造と構造的に均等でない場合であっても、説明されたコンポーネントの指定された機能を実行する任意のコンポーネントに対応することが意図されている。さらに、本開示の特定の特徴は、幾つかの実装のうちの1つのみに関して開示されているが、そのような特徴を、必要に応じて、任意の所与の又は特定の適用に有利であるように、他の実装の1つ又は複数の他の特徴と組み合わせることができる。さらに、用語「含む」、「有している」、「有する」、「とともに」又はこれらの変形が発明の詳細な説明又は特許請求の範囲のいずれかにおいて使用されている範囲において、これらの用語は、用語「備える」と同様に包括的であることが意図されている。