(57)【特許請求の範囲】
【請求項１】
現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する第１の検出手段と、
前記第１の検出手段によって検出された前記補正対象イベントとは異なる処理内容の前記現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出する第２の検出手段と、
前記第１の検出手段によって検出された前記補正対象イベントの予定開始時刻と、前記第２の検出手段によって検出された前記複数のイベントの各々のイベントの予定開始時刻と、の差分を算出することで、複数の差分を含む差分群を算出する算出手段と、
前記算出手段によって算出された前記差分群に基づいて、前記複数のイベントの中から、前記補正対象イベントに対する目標イベントを決定する決定手段と、
前記補正対象イベントの予定開始時刻と前記決定手段によって決定された前記目標イベントの予定開始時刻との間隔が短くなるように、前記補正対象イベントの予定開始時刻を補正する補正手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記補正手段は、
前記目標イベントによるデバイスの実行時間と前記補正対象イベントによる前記デバイスの実行時間とが重なるように、前記補正対象イベントの予定開始時刻を補正することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記補正手段は、
前記補正対象イベントまたは前記目標イベントの消費電力量に基づいて、前記補正対象イベントの予定開始時刻を補正することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記補正手段は、
自装置の有する電力の残量に基づいて、前記補正対象イベントの予定開始時刻を補正することを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記補正手段は、
前記補正対象イベントの制約情報を順守する範囲内で、前記補正対象イベントの予定開始時刻を補正することを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記補正手段は、
前記目標イベントの予定開始時刻と前記目標イベントの予測処理時間とに基づいて、前記補正対象イベントの予定開始時刻を前記目標イベントの予定開始時刻に前記予測処理時間を加算した時刻に補正することを特徴とする請求項２〜５のいずれか一つに記載の情報処理装置。
【請求項７】
コンピュータが、
現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する第１の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントとは異なる処理内容の前記現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出する第２の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントの予定開始時刻と、前記第２の検出工程によって検出された前記複数のイベントの各々のイベントの予定開始時刻と、の差分を算出する算出工程と、
前記算出工程によって算出された差分群に基づいて、前記複数のイベントの中から、前記補正対象イベントに対する目標イベントを決定する決定工程と、
前記補正対象イベントの予定開始時刻と前記決定工程によって決定された前記目標イベントの予定開始時刻との間隔が短くなるように、前記補正対象イベントの予定開始時刻を補正する補正工程と、
を実行することを特徴とする電力制御方法。
【請求項８】
現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する第１の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントとは異なる処理内容の前記現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出する第２の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントの予定開始時刻と、前記第２の検出工程によって検出された前記複数のイベントの各々のイベントの予定開始時刻と、の差分を算出する算出工程と、
前記算出工程によって算出された差分群に基づいて、前記複数のイベントの中から、前記補正対象イベントに対する目標イベントを決定する決定工程と、
前記補正対象イベントの予定開始時刻と前記決定工程によって決定された前記目標イベントの予定開始時刻との間隔が短くなるように、前記補正対象イベントの予定開始時刻を補正する補正工程と、
をコンピュータに実行させることを特徴とする電力制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力を制御する情報処理装置、電力制御方法、および電力制御プログラムに関する。
【背景技術】
【０００２】
近年、携帯電話や、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などの携帯端末装置は、マルチタスクＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を搭載する形態が増加している。マルチタスクＯＳを搭載する携帯端末装置の中には、機能やユーザインターフェイスの表現力や操作性が向上したソフトウェア（リッチクライアントとも呼ばれる。）を追加可能とする装置も存在する。また、携帯端末装置は、通話以外の様々な機能を有している。携帯端末装置は、例えば、メール、Ｗｅｂブラウザ、ニュース、ブログ等の閲覧、地図、交通情報、ゲーム等のアプリケーション（以下、「アプリ」という）を実行することで様々な機能をユーザに提供する。
【０００３】
このような様々な機能を提供する携帯端末装置は、提供する機能量の増加につれて消費電力も増加していった。例えば、マルチタスクＯＳを搭載する携帯端末装置の一例であるスマートフォンは、消費電力が大きい。また、提供される機能の中には、メール受信、ＲＳＳ（Ｒｅｓｏｕｒｃｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｆｒａｍｅｗｏｒｋ  Ｓｉｔｅ  Ｓｕｍｍａｒｙ）更新などといった定期的に実行される処理によって、ユーザが操作していない状態でも、携帯端末装置のハードウェア、ソフトウェアを実行させる機能が存在する。このような機能により、さらに携帯端末装置の消費電力が増加する。
【０００４】
消費電力を削減する従来技術としては、パケットの到着時間を予測し、予測された到着時間を基に、電力を制限なしに使用するアクティブ状態から低電力状態に切り替え、または、低電力状態からアクティブ状態に切り替えるという技術が開示されている。
【０００５】
さらに消費電力を削減する他の従来技術としては、無線通信システムにおいて、基地局が通知するビーコン信号の送信周期を、端末局が要求した設定要求に基づいて設定するという技術が開示されている。この技術によれば、端末局は、端末局上で実行されているメールアプリのチェック間隔と基地局のビーコンの送信周期とを一致させることで、ビーコン信号を受信するタイミングまで通信回路の電力供給をＯＦＦにでき、消費電力を削減することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１８５４７５号公報
【特許文献２】特開２００５−１３０４３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、携帯端末装置が送受信するデータ量を観測結果から予想しているため、大量のデータが発生した場合には、消費電力が増加するという問題がある。また、特許文献１にかかる技術では、様々な機能を提供するアプリが、携帯端末装置の想定内で動作するとは限らず、また、アプリが他のアプリの動作とは無関係に動作し、消費電力が増加するという問題がある。
【０００８】
また、上述した他の従来技術にて、基地局による送信処理をアプリ１、端末局によるメールアプリのチェック処理をアプリ２と想定すると、当該他の従来技術を携帯端末装置に適用でき、アプリ１をアプリ２の動作に連携して動作させることができる。しかしながら、アプリ１とアプリ２を連携させても、他のアプリの動作の影響により十分に消費電力を削減できない可能性があるという問題がある。
【０００９】
本発明の一側面では、消費電力を削減することができる情報処理装置、電力制御方法、および電力制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面では、現在時刻以後に実行される補正対象イベントの予定開始時刻を検出し、検出された補正対象イベントとは異なる処理内容の現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出し、検出された補正対象イベントの予定開始時刻と、複数のイベントの各々のイベントの予定開始時刻と、の差分を算出し、算出された差分群に基づいて、複数のイベントの中から、補正対象イベントに対する目標イベントを決定し、補正対象イベントの予定開始時刻と決定された目標イベントの予定開始時刻との間隔が短くなるように、補正対象イベントの予定開始時刻を補正する情報処理装置、電力制御方法、および電力制御プログラムが提案される。
【発明の効果】
【００１１】
本発明の一側面によれば、消費電力を削減することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、携帯端末装置による補正対象イベントの予定開始時刻の補正の内容を示す説明図である。
【図２】図２は、実施の形態にかかる携帯端末装置２００のハードウェアを示すブロック図である。
【図３】図３は、携帯端末装置２００のソフトウェアを示すブロック図である。
【図４】図４は、イベント管理ＡＰＩ３２２によって補正された予定開始時刻にて、アプリ３１０を動作させる場合を示す説明図である。
【図５】図５は、イベント管理ＡＰＩ３２２とアプリ管理ＡＰＩ３２１の処理内容の一例を示す説明図である。
【図６】図６は、携帯端末装置２００の機能的構成例を示す機能ブロック図である。
【図７】図７は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その１）である。
【図８】図８は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その２）である。
【図９】図９は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その３）である。
【図１０】図１０は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その４）である。
【図１１】図１１は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その５）である。
【図１２】図１２は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その６）である。
【図１３】図１３は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その７）である。
【図１４】図１４は、実施例１にかかるデバイス３０３の補正前の実行時間および補正後の実行時間を示す説明図である。
【図１５】図１５は、予定開始時刻補正処理を示すフローチャート（その１）である。
【図１６】図１６は、予定開始時刻補正処理を示すフローチャート（その２）である。
【図１７】図１７は、実施例２にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その１）である。
【図１８】図１８は、実施例２にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その２）である。
【図１９】図１９は、実施例２にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その３）である。
【図２０】図２０は、実施例２にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その４）である。
【図２１】図２１は、実施例２にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その５）である。
【図２２】図２２は、実施例２にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図（その６）である。
【図２３】図２３は、実施例２にかかるデバイス３０３の補正前の実行時間および補正後の実行時間を示す説明図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明にかかる情報処理装置、電力制御方法、および電力制御プログラムの実施の形態を詳細に説明する。本実施の形態では、情報処理装置の一例として、携帯端末装置について説明をおこなう。携帯端末装置としては、例えば、携帯電話、スマートフォン、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）が挙げられる。また、携帯端末装置は、通話機能の他に、例えば、メール、Ｗｅｂブラウザ、ニュース、ブログ等の閲覧、地図、交通情報、ゲーム等のアプリを実行することで様々な機能をユーザに提供する。
【００１４】
携帯端末装置では、アプリが１プロセスまたは複数のプロセスとして実行されている。そして、各プロセスは、イベントを発生させている。イベントとは、プロセスの処理に伴って他の装置に発信される信号である。
【００１５】
本実施の形態にかかる携帯端末装置は、プロセスが発生させたイベントの実行が開始される時刻（以下、「予定開始時刻」という）を他のプロセスが発生させたイベントの予定開始時刻に近づくように補正する。以下では、予定開始時刻を補正されるイベントを「補正対象イベント」という。また、補正対象イベントの予定開始時刻を近づける目標となるイベントを「目標イベント」という。
【００１６】
これにより、補正対象イベントと他のイベントとのそれぞれの処理に伴って実行されるデバイスの実行時間を纏めて、デバイスの実行時間を減少させ、デバイスの低消費電力化を図る。なお、補正対象イベントと他のイベントは、単一アプリの異なるプロセスが発生させたイベントであってもよく、異なるアプリのそれぞれのプロセスが発生させたイベントであってもよい。また、携帯端末装置で発生したイベントの中には、補正対象イベントにならないイベントがあってもよい。
【００１７】
（携帯端末装置による補正対象イベントの予定開始時刻の補正の内容）
まず、図１を用いて、携帯端末装置による補正対象イベントの予定開始時刻の補正の内容について説明する。
【００１８】
図１は、携帯端末装置による補正対象イベントの予定開始時刻の補正の内容を示す説明図である。図１において、携帯端末装置では、３種類のアプリがそれぞれ、プロセス１、プロセス２およびプロセス３として実行されている。各プロセスは、一定時間間隔（以下、「ポーリング間隔」という）ごとに動作して、各プロセスに対応するイベントを実行する。
【００１９】
ここでは、３種類のアプリがプロセス１、プロセス２およびプロセス３として実行されているとしたが、単一アプリがプロセス１、プロセス２およびプロセス３として実行されている場合であってもよい。また、１つのアプリがプロセス１およびプロセス２として実行され、他の１つのアプリがプロセス３として実行されている場合であってもよい。
【００２０】
（Ａ）は、プロセス１の動作を示す。ここで、ポーリング間隔Ｔ１ごとにプロセス１により実行されるイベントをそれぞれＥ１１〜Ｅ１３とする。また、プロセス１により実行される各イベントの予定開始時刻をｔ１１〜ｔ１３とする。
【００２１】
（Ｂ）は、プロセス２の動作を示す。ここで、ポーリング間隔Ｔ２ごとにプロセス２により実行されるイベントをそれぞれＥ２１〜Ｅ２５とする。また、プロセス２により実行される各イベントの予定開始時刻をｔ２１〜ｔ２５とする。
【００２２】
（Ｃ）は、プロセス３の動作を示す。ここで、ポーリング間隔Ｔ３ごとにプロセス３により実行されるイベントをそれぞれＥ３１〜Ｅ３５とする。また、プロセス３により実行される各イベントの予定開始時刻をｔ３１〜ｔ３５とする。
【００２３】
ここで、プロセス１がイベントＥ１１の実行を開始した時点ｔ１１を現在時刻ＣＴ（Ｃｕｒｒｅｎｔ  Ｔｉｍｅ）として、携帯端末装置が、プロセス１により次に実行されるイベントＥ１２の予定開始時刻を補正する場合を例に挙げて、補正の内容について説明する。
【００２４】
（１）まず、携帯端末装置は、現在時刻ｔ１１にポーリング間隔Ｔ１を加算して、補正対象イベントＥ１２の補正前の予定開始時刻ＩＮＰ（Ｉｄｅａｌ  Ｎｅｘｔ  Ｐｏｌｌｉｎｇ  ｔｉｍｅ）を算出する。ここでは、補正前の予定開始時刻ＩＮＰは、時刻ｔ１１にＴ１を加算した時刻ｔ１２である。
【００２５】
（２）次に、携帯端末装置は、現在時刻ＣＴ以後の所定の期間内にプロセス２およびプロセス３により実行されるイベントの予定開始時刻を検出する。ここでは、所定の期間を、現在時刻ＣＴから時刻ｔ１３までとする。よって、携帯端末装置により、プロセス２により実行されるイベントＥ２２〜Ｅ２４の予定開始時刻ｔ２２〜ｔ２４が検出され、プロセス３により実行されるイベントＥ３１〜Ｅ３３の予定開始時刻ｔ３１〜ｔ３３が検出される。
【００２６】
（３）そして、携帯端末装置は、プロセス２およびプロセス３により実行されるイベントのうちイベントＥ１２の補正前の予定開始時刻ｔ１２に最も近い予定開始時刻のイベントを目標イベントに決定する。そして、携帯端末装置は、決定した目標イベントの予定開始時刻へとイベントＥ１２の予定開始時刻を補正する。すなわち、携帯端末装置は、イベントＥ１２の予定開始時刻を、時刻ｔ１２から目標イベントであるイベントＥ２３の予定開始時刻ｔ２３へと補正する。
【００２７】
これにより、携帯端末装置は、イベントＥ１２およびイベントＥ２３のそれぞれの処理に伴って実行されるデバイスの実行時間を纏めて、デバイスの消費電力を削減できる。ここで、デバイスの実行時間とは、イベントの処理に使用される時間（以下、「アクティブ時間」という）とイベントの処理に使用された後にデバイスが低電力モードに遷移するまでの時間（以下、「アイドル時間」という）とを合わせた時間である。
【００２８】
例えば、（Ｄ）のようにデバイスの実行時間が纏められる。（Ｄ）は、デバイスの動作を示している。ここで、イベントＥ１１〜Ｅ１３のそれぞれの処理に使用されるデバイスのアクティブ時間をＡ１１〜Ａ１３で示す。イベントＥ２１〜Ｅ２５のそれぞれの処理に使用されるデバイスのアクティブ時間をＡ２１〜Ａ２５で示す。イベントＥ３１〜Ｅ３５のそれぞれの処理に使用されるデバイスのアクティブ時間をＡ３１〜Ａ３５で示す。
【００２９】
具体的には、補正前のデバイスの実行時間は、プロセス１のイベントＥ１２とプロセス２のイベントＥ２３とプロセス３のイベントＥ３３とのそれぞれのイベントによるデバイスのアクティブ時間（Ａ１２，Ａ２３，Ａ３３）とアイドル時間との和である。一方、補正後のデバイスの実行時間は、プロセス１のイベントＥ１２とプロセス２のイベントＥ２３とが同時に実行されるため、補正前の実行時間より、イベントＥ１２によるデバイスのアクティブ時間部分とアイドル時間部分の実行時間が減少している。このように、携帯端末装置は、デバイスの実行時間を減少させることで、デバイスの実行時間に比例するデバイスの消費電力を削減することができる。
【００３０】
（携帯端末装置２００のハードウェア）
図２は、実施の形態にかかる携帯端末装置２００のハードウェアを示すブロック図である。携帯端末装置２００は、マルチコアのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２を含む。また、携帯端末装置２００は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）Ｉ／Ｆ２０３、タッチパネルＩ／Ｆ２０４、前面カメラＩ／Ｆ２０５、メモリ２０６、背面カメラＩ／Ｆ２０７、無線Ｉ／Ｆ２０８、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）Ｉ／Ｆ２０９、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）Ｉ／Ｆ２１０を含む。
【００３１】
なお、図２はＬＣＤＩ／Ｆ２０３、タッチパネルＩ／Ｆ２０４、前面カメラＩ／Ｆ２０５、背面カメラＩ／Ｆ２０７、無線Ｉ／Ｆ２０８、ＵＳＢＩ／Ｆ２０９、Ｗｉ−ＦｉＩ／Ｆ２１０を介して接続される各装置の図示を省略している。バス２１１で相互に接続されているＧＰＵ２０２〜Ｗｉ−ＦｉＩ／Ｆ２１０は、ＣＰＵ２０１による管理下で相互にデータの送受信をおこなうことができる。
【００３２】
ＣＰＵ２０１は携帯端末装置２００全体の動作制御を司る中央処理装置である。なお、ＣＰＵ２０１は、複数のコアを搭載するマルチコアプロセッサであってもよい。ＧＰＵ２０２はグラフィック処理に特有な計算処理をおこなう。ＬＣＤＩ／Ｆ２０３は液晶ディスプレイとのＩ／Ｆである。液晶ディスプレイは、カーソル、アイコンあるいはツールボックスを始め、文書、画像、機能情報などのデータを表示する。タッチパネルＩ／Ｆ２０４はタッチパネルとのＩ／Ｆである。例えば、ユーザによりタッチパネルが押下されると、タッチパネルＩ／Ｆ２０４は、マウスダウンイベントが発生したとしてＣＰＵ２０１に通知する。
【００３３】
前面カメラＩ／Ｆ２０５および背面カメラＩ／Ｆ２０７はカメラとのＩ／Ｆである。メモリ２０６は主記憶装置および補助記憶装置である。具体的には、メモリ２０６は、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュＲＯＭといった記憶装置である。ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、ＣＰＵ２０１のワークエリアとして使用される。フラッシュＲＯＭは、ＯＳなどのシステムソフトウェアやアプリケーションソフトウェア、または前面カメラ、背面カメラから生成された画像、動画等を記憶している。
【００３４】
無線Ｉ／Ｆ２０８はアンテナなど無線デバイスとのＩ／Ｆである。ＵＳＢＩ／Ｆ２０９はＵＳＢ規格に対応した周辺機器とのＩ／Ｆである。周辺機器には、例えば、ＳＤカード（登録商標）といったフラッシュメモリなどの記録媒体が存在する。Ｗｉ−ＦｉＩ／Ｆ２１０は無線ＬＡＮの標準規格である「ＩＥＥＥ    ８０２．１１  ａ／ＩＥＥＥ    ８０２．１１ｂ」に対応する無線ＬＡＮデバイスとのＩ／Ｆである。
【００３５】
図３は、携帯端末装置２００のソフトウェアを示すブロック図である。携帯端末装置２００は、アプリ３１０、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）３２０、ライブラリ３３０、カーネル３４０を有する。ＡＰＩ３２０〜カーネル３４０はＯＳ３０１が提供するソフトウェア群である。
【００３６】
アプリ３１０には、ブラウザアプリ３１１、電話アプリ３１２、ニュースアプリ３１３、メールアプリ３１４等が含まれる。ブラウザアプリ３１１は、Ｗｉ−ＦｉＩ／Ｆ２１０経由等で通信され、主にＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）で得たＷｅｂページを閲覧するアプリである。電話アプリ３１２は、無線Ｉ／Ｆ２０８によって基地局に接続され、他の携帯端末装置、固定電話等と通話をおこなうアプリである。ニュースアプリ３１３は、Ｗｉ−ＦｉＩ／Ｆ２１０経由等で通信され、ＮＮＴＰ（Ｎｅｔｗｏｒｋ  Ｎｅｗｓ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）で得たネットニュースを閲覧するアプリである。
【００３７】
メールアプリ３１４は、Ｗｉ−ＦｉＩ／Ｆ２１０経由等で通信され、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＰＯＰ（Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ）等によってメールの送受信をおこなうアプリである。なお、本実施の形態にかかるアプリ３１０は、それぞれ１プロセスとして実行していると想定する。具体的には、ブラウザアプリ３１１が一つのプロセスであり、電話アプリ３１２がまた別のプロセスである。ただし、アプリ３１０内は複数のプロセスとして実行されるアプリがあってもよい。
【００３８】
ＡＰＩ３２０は、ＯＳ３０１の一部の機能であり、アプリ３１０がＯＳ３０１の提供するライブラリ３３０にアクセスするためのインターフェイスである。ＡＰＩ３２０には、アプリ管理ＡＰＩ３２１、イベント管理ＡＰＩ３２２、タイマＡＰＩ３２３等が含まれる。
【００３９】
アプリ管理ＡＰＩ３２１は、液晶ディスプレイに表示されているアプリ３１０について、開始処理、終了処理、切り替え処理をおこなう。本実施の形態の特徴であるイベント管理ＡＰＩ３２２は、現在時刻以後に実行されるイベントが登録されているイベントリスト３０２と、携帯端末装置２００の電力情報とから、アプリ３１０により実行されるイベントの予定開始時刻を補正する。なお、イベントリスト３０２の記憶内容の例は、図５にて記述する。
【００４０】
イベント管理ＡＰＩ３２２は、具体的には、ブラウザアプリ３１１内のＷｅｂページのＨＴＭＬ等で指定された再読み込み間隔や、メールアプリ３１４のＰＯＰサーバへのメール問い合わせ間隔に基づくイベントの予定開始時刻を補正する。また、イベント管理ＡＰＩ３２２は、イベントリスト３０２と電力情報をライブラリ３３０から取得する。タイマＡＰＩ３２３は、アプリ３１０、イベント管理ＡＰＩ３２２等から呼び出されたときに時刻情報を提供する。
【００４１】
ライブラリ３３０は、ＯＳ３０１の一部の機能であり、アプリ３１０が利用できるサービス群を示す。ライブラリ３３０には、タイミング制御ライブラリ３３１、電力制御ライブラリ３３２、Ｊａｖａ（登録商標）ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）３３３が含まれる。
【００４２】
タイミング制御ライブラリ３３１は、タイマＡＰＩ３２３からの要求に従って時刻情報、例えば現在時刻を取得する機能を有する。また、電力制御ライブラリ３３２は、イベント管理ＡＰＩ３２２の要求に従って電力情報を取得する。ＪａｖａＶＭ３３３は、アプリ３１０のいずれかの実行オブジェクトがネイティブコードとなる携帯端末装置２００の機械語で記載されておらず、Ｊａｖａの中間コードで記述されている場合に、携帯端末装置２００で実行可能にするライブラリである。もし、アプリ３１０内の全てのアプリがネイティブコードで記載されているならば、ＪａｖａＶＭ３３３は存在しなくてもよい。
【００４３】
カーネル３４０は、ＯＳ３０１の中核となるソフトウェアである。カーネル３４０には、デバイス制御部３４１、プロセス制御部３４２が含まれる。デバイス制御部３４１は、携帯端末装置２００に接続されているデバイス３０３の制御をおこなう機能を有する。
【００４４】
デバイス３０３は、例えば、携帯端末装置２００の中で、ＣＰＵ２０１の代わりにデータ転送を制御する装置であるＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）である。また、デバイス３０３は、例えば、ＬＣＤＩ／Ｆ２０３に接続される液晶ディスプレイ、前面カメラＩ／Ｆ２０５、背面カメラＩ／Ｆ２０７に接続されるカメラ、無線Ｉ／Ｆ２０８、Ｗｉ−ＦｉＩ／Ｆ２１０に接続されるアンテナである。さらに、デバイス３０３は、ＵＳＢＩ／Ｆ２０９に接続されるフラッシュメモリ等の記録媒体等も含まれる。
【００４５】
例えば、デバイス制御部３４１は、ＬＣＤＩ／Ｆ２０３にアクセスすることにより液晶ディスプレイを制御する。プロセス制御部３４２は、携帯端末装置２００で実行されているプロセスを制御する機能を有する。例えば、プロセス制御部３４２は、アプリ３１０で実行されているプロセスを優先度、時分割等によってＣＰＵ２０１に割り当てる。
【００４６】
図４は、イベント管理ＡＰＩ３２２によって補正された予定開始時刻にて、アプリ３１０を動作させる場合を示す説明図である。なお、図４は図３からアプリ３１０、ＡＰＩ３２０を抽出した図である。
【００４７】
ニュースアプリ３１３、メールアプリ３１４はプロセス制御部３４２によりプロセス切り替えがおこなわれる。イベント管理ＡＰＩ３２２は、ニュースアプリ３１３、メールアプリ３１４からイベントの実行要求が通知されると、次のイベントの予定開始時刻を補正する。タイマＡＰＩ３２３により時刻情報が提供され、補正された予定開始時刻以後の時刻となった場合に、イベント管理ＡＰＩ３２２は、実行要求元のアプリ３１０にイベント予定開始時刻となったことを通知し、実行要求元のアプリ３１０がイベントを実行する。
【００４８】
図５は、イベント管理ＡＰＩ３２２とアプリ管理ＡＰＩ３２１の処理内容の一例を示す説明図である。イベント管理ＡＰＩ３２２は、イベントリスト３０２を管理しており、アプリ管理ＡＰＩ３２１は、イベントとアプリ３１０の関係を示した情報を保持している。符号５０１は、現在時刻が「２０１０年４月３日１２：４０：４０」におけるイベント管理ＡＰＩ３２２によるイベントリスト３０２の保持状態を示している。また、符号５０２は、アプリ管理ＡＰＩ３２１によるイベントとアプリ３１０の関係を示している。
【００４９】
保持状態５０１において、イベントリスト３０２は、イベント管理ＡＰＩ３２２によって管理されており、アプリ３１０が指定した時刻をトリガとして発生するイベントのリストである。イベントの種類には、１回だけ発生するイベントと、定期的に繰り返されるイベントと、の２種類が存在する。保持状態５０１においては、イベントリスト３０２にイベント５０３〜イベント５０６が登録されている。
【００５０】
イベントは、イベントＩＤ、種類、予定開始時刻という３つのフィールドを含む。イベントＩＤフィールドは、アプリ３１０と対応づけられたＩＤが格納されている。種類フィールドは、１回だけ発生するイベントか、定期的に繰り返されるイベントかを判断できる情報が格納されている。さらに、種類フィールドは、対象のイベントが定期的に繰り返されるイベントである場合に、どれぐらいの間隔で対象のイベントが実行されるかという時間の情報についても格納される。予定開始時刻フィールドは、対象のイベントが次に実行される時刻が格納されている。
【００５１】
符号５０２において、アプリ管理ＡＰＩ３２１には、アプリ３１０のポインタが格納されている。それぞれのポインタに、イベントリスト３０２に登録されたイベントＩＤが関連付けられている。例えば、ブラウザアプリ３１１は、イベントＩＤ：１と関連付けられている。電話アプリ３１２は、どのイベントとも関連付けられていない。ニュースアプリ３１３は、イベントＩＤ：３と関連付けられている。メールアプリ３１４は、イベントＩＤ：２およびイベントＩＤ：４と関連付けられている。
【００５２】
例えば、ブラウザアプリ３１１は、イベントＩＤが１であるイベント５０３を「２０１０年４月３日１２：４０：５０」に実行する。イベント５０３が特定のＷｅｂページの再読み込みをおこなうイベントである場合、ブラウザアプリ３１１は、予定開始時刻にＷｅｂページを再読み込みする。
【００５３】
同様に、ニュースアプリ３１３は、イベントＩＤが３であるイベント５０５を「２０１０年４月５日９：１１：００」に実行する。イベント５０５が前回の取得以降に投稿されたネットニュースを取得するイベントである場合、ニュースアプリ３１３は、指定された予定開始時刻にネットニュースを取得する。なお、イベント５０５は繰り返し発生するイベントであるため、イベント５０５の終了後、３日後となる「２０１０年４月８日９：１１：００」に実行される予定の新たなイベントがイベントリスト３０２に追加される。
【００５４】
同様に、メールアプリ３１４は、イベントＩＤが２であるイベント５０４を「２０１０年４月３日１２：４３：３０」に実行し、イベントＩＤが４であるイベント５０６を「２０１０年４月３日１３：００：００」に実行する。なお、ここではメールアプリ３１４がマルチアカウントに対応したソフトウェアであることを想定している。イベント５０４、イベント５０６がそれぞれのメールアカウントの新着メールチェックを実行するイベントである場合、メールアプリ３１４は、指定された予定開始時刻に新着メールチェックを実行する。このように、１つのアプリが複数のイベントを発生する場合も有り得る。発生された複数のイベントは、処理内容が等しい場合も存在するし、異なる場合も存在する。
【００５５】
なお、イベント５０４、イベント５０６は共に繰り返し発生するイベントであるため、イベント終了後に新たなイベントがイベントリスト３０２に登録される。例えば、イベント５０４の終了後、イベント５０４の開始時刻から２０５秒後となる「２０１０年４月３日１２：４６：５５」に実行される予定の新たなイベントがイベントリスト３０２に登録される。また、イベント５０６の終了後、イベント５０６の開始時刻から１時間後となる「２０１０年４月３日１４：００：００」に実行される予定の新たなイベントがイベントリスト３０２に登録される。
【００５６】
（携帯端末装置２００の機能的構成例）
図６は、携帯端末装置２００の機能的構成例を示すブロック図である。携帯端末装置２００は、第１の検出部６０１と、第２の検出部６０２と、算出部６０３と、決定部６０４と、補正部６０５と、を含む。この制御部となる機能（第１の検出部６０１〜補正部６０５）は、記憶装置に記憶されたプログラムをＣＰＵ２０１が実行することにより、その機能を実現する。記憶装置とは、具体的には、例えば、図２に示したメモリ２０６、ＵＳＢＩ／Ｆ２０９に接続された記録媒体等である。また、各機能部（第１の検出部６０１〜補正部６０５）の処理結果は、特に指定する場合を除いて、例えば、図２に示したメモリ２０６、ＵＳＢＩ／Ｆ２０９に接続された記録媒体等の記憶装置に記憶される。
【００５７】
第１の検出部６０１は、現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する。ここで、補正対象イベントとは、予定開始時刻を補正されるイベントである。具体的には、例えば、第１の検出部６０１は、プロセスから発生した、現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する。また、第１の検出部６０１は、イベントリスト３０２に登録されているイベント群から、補正対象イベントの予定開始時刻を検出してもよい。
【００５８】
第２の検出部６０２は、第１の検出部６０１によって検出された補正対象イベントとは異なる処理内容の現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出する。ここで、補正対象イベントとは異なる処理内容のイベントとは、補正対象イベントを実行したプロセスとは異なる他のプロセスが実行するイベントである。
【００５９】
具体的には、例えば、第２の検出部６０２は、イベントリスト３０２に登録されているイベント群の各々のイベントの予定開始時刻を検出する。また、第２の検出部６０２は、イベントリスト３０２に登録されているイベント群の各々のイベントの予定開始時刻、および、各々のイベントの種類と予定開始時刻とから推定されるイベントリスト３０２に未登録のイベントの予定開始時間を検出してもよい。
【００６０】
より具体的には、例えば、第２の検出部６０２は、イベントリスト３０２に登録されているイベント５０４の予定開始時刻「２０１０年４月３日１２：４３：３０」を検出する。また、第２の検出部６０２は、イベント５０４の種類「２０５秒ごとの繰り返し」に基づいて、検出したイベント５０４の予定開始時刻以後に繰り返されると推定されるイベントリスト３０２に未登録のイベントの予定開始時刻を検出する。例えば、イベント５０４の次に実行されるイベントの予定開始時刻は、「２０１０年４月３日１２：４３：３０＋２０５秒」である。
【００６１】
ただし、第２の検出部６０２は、現在時刻以後で、予定開始時刻を含む所定の期間内に実行されるイベントのみを検出してもよい。所定の期間とは、例えば、現在時刻ＣＴから、補正対象イベントの予定開始時刻に補正対象イベントのポーリング間隔を加算した時刻までの期間である。また、所定の期間は、現在時刻ＣＴから、補正対象イベントの予定開始時刻までの期間であってもよく、補正対象イベントの予定開始時刻から、補正対象イベントの予定開始時刻に補正対象イベントのポーリング間隔を加算した時刻までの期間であってもよい。
【００６２】
算出部６０３は、第１の検出部６０１によって検出された補正対象イベントの予定開始時刻と、第２の検出部６０２によって検出された複数のイベントの各々のイベントの予定開始時刻と、の差分を算出する。具体的には、例えば、算出部６０３は、第２の検出部６０２によって検出された複数のイベントの各々のイベントの予定開始時刻から、第１の検出部６０１によって検出された補正対象イベントの予定開始時刻を減算した値の絶対値を、差分として算出する。
【００６３】
決定部６０４は、算出部６０３によって算出された差分群に基づいて、複数のイベントの中から、補正対象イベントに対する目標イベントを決定する。ここで、目標イベントとは、補正対象イベントの予定開始時刻を近づける目標となるイベントである。具体的には、例えば、決定部６０４は、第２の検出部６０２によって検出された複数のイベントのうち算出部６０３によって算出された差分が最も小さいイベントを、目標イベントに決定する。これにより、決定部６０４は、補正対象イベントの予定開始時刻との間隔が最も短いイベントを目標イベントに決定することができる。
【００６４】
具体的には、例えば、決定部６０４は、第２の検出部６０２によって検出された複数のイベントのうち算出部６０３によって算出された差分が所定の閾値以下のイベントを、目標イベントに決定する。これにより、決定部６０４は、補正対象イベントの予定時刻との間隔が所定の閾値以下のイベントを目標イベントとして決定することができる。
【００６５】
これにより、情報処理装置は、補正対象イベントの予定開始時刻と間隔が遠い時刻に開始されるイベントを目標イベントから除外できる。このため、情報処理装置は、目標イベントとなるイベントが補正対象イベントの遠方にしか存在せず、消費電力の削減が期待できない場合に、補正をおこなわないようにできる。
【００６６】
また、例えば、補正部６０５が補正対象イベントの制約情報を順守する範囲で補正をおこなうときに、補正対象イベントの予定開始時刻との間隔が最も短いイベントが補正対象イベントの制約情報を順守できない場合がある。この場合、決定部６０４は、補正対象イベントの予定時刻との間隔が所定の閾値以下のイベントのうち制約情報を順守できるイベントを選択して目標イベントとして決定することができる。ここで、制約情報とは、イベントを実行するアプリの仕様に基づく情報であり、ポーリング間隔に制約を与える情報である。例えば、ポーリング間隔の下限値や上限値である。
【００６７】
また、例えば、あるプロセスが実行するイベント群のそれぞれを補正対象イベントとして、各々の補正対象イベントの予定開始時刻を順次補正していく場合を想定する。この場合に、決定部６０４は、補正後のポーリング間隔の平均が補正前のポーリング間隔に近づくように、所定の閾値以下のイベントから目標イベントを選択するようにしてもよい。
【００６８】
具体的には、例えば、決定部６０４は、第２の検出部６０２によって検出された複数のイベントのうち算出部６０３によって算出された差分が所定の閾値以上のイベントを、目標イベントに決定する。これにより、決定部６０４は、補正対象イベントの予定開始時刻との間隔が短いイベントを目標イベントから除外することができる。
【００６９】
具体的には、例えば、決定部６０４は、第２の検出部６０２によって検出された複数のイベントを算出部６０３によって算出された差分の昇順に並べた場合の所定の順位以内のイベントを、目標イベントに決定する。これにより、決定部６０４は、補正対象イベントの予定開始時刻との間隔の大小に関わらず、複数のイベントのうち補正対象イベントの予定開始時刻に近いイベントを目標イベントに決定できる。
【００７０】
補正部６０５は、補正対象イベントの予定開始時刻と決定部６０４によって決定された目標イベントの予定開始時刻との間隔が短くなるように、補正対象イベントの予定開始時刻を補正する。具体的には、例えば、補正部６０５は、目標イベントによるデバイス３０３の実行時間と補正対象イベントによるデバイス３０３の実行時間とが重なるように、補正対象イベントの予定開始時刻を補正する。これにより、補正部６０５は、補正前の補正対象イベントによるデバイス３０３の実行時間と、目標イベントによるデバイス３０３の実行時間と、を纏め、デバイス３０３の実行時間を減少させて携帯端末装置２００の低消費電力化を図ることができる。
【００７１】
また、補正部６０５は、補正対象イベントまたは目標イベントの消費電力量に基づいて、補正対象イベントの予定開始時刻を補正する。具体的には、例えば、補正部６０５は、いずれかのイベントの消費電力量が大きいほど、補正対象イベントと目標イベントの予定開始時刻の間隔が短くなるように補正する。これにより、情報処理装置は、消費電力に大きく影響を与えるアプリの消費電力を削減することができる。また、イベントの消費電力量が小さい場合、補正前のポーリング間隔を優先することになり、情報処理装置は、制約情報を順守しやすくなる。
【００７２】
また、補正部６０５は、自装置の有する電力の残量に基づいて、補正対象イベントの予定開始時刻を補正する。ここで、電力の残量は、例えば、０〜１の指標値で示される。そして、指標値が０ならば電力の残量がない完全放電状態を示し、指標値が１ならば満充電状態を示す。
【００７３】
具体的には、補正部６０５は、電力の残量が少ないほど、補正対象イベントの予定開始時刻と目標イベントの予定開始時刻の間隔が短くなるように、補正対象イベントの予定開始時刻を補正する。これにより、補正部６０５は、電力の残量が少ない場合、電力の消費を抑えることができる。また、補正部６０５は、電力の残量が多い場合、補正前のポーリング間隔を優先することになり、制約情報を順守しやすくなる。
【００７４】
また、補正部６０５は、補正対象イベントの制約情報を順守する範囲内で、補正対象イベントの予定開始時刻を補正する。
【００７５】
具体的には、例えば、補正部６０５は、予め定められた制約情報に基づいて補正対象イベントの補正後の予定開始時刻を修正する。ここで、ブラウザアプリ３１１に関するプロセスのポーリング間隔の仕様として、特定のＷｅｂページに対する再読み込み間隔の最小値が設定されている場合を想定する。この場合、補正部６０５は、現在時刻ＣＴに特定のＷｅｂページに対する再読み込み間隔の下限値を加算した値を目標イベントの予定開始時刻が下回った場合、補正後の補正対象イベントの予定開始時刻を現在時刻ＣＴに特定のＷｅｂページに対する再読み込み間隔の下限値を加算した値に補正する。
【００７６】
また、補正部６０５は、補正対象イベントの予定開始時刻を目標イベントの予定開始時刻に補正する。これにより、補正部６０５は、補正対象イベントの予定開始時刻を目標イベントの予定開始時刻に一致させる。そのため、デバイス３０３が複数のプロセスによって同時に使用できる場合は、補正対象イベントと目標イベントとの処理がデバイス３０３を同時に使用するようになる。よって、補正部６０５は、補正対象イベントによるデバイス３０３の実行時間と、目標イベントによるデバイス３０３の実行時間と、を纏めることができ、デバイス３０３の実行時間を減少させて携帯端末装置２００の低消費電力化を図ることができる。
【００７７】
また、デバイス３０３が複数のプロセスによって同時に使用できない場合は、補正対象イベントと目標イベントとの処理のうち一方のイベントがデバイス３０３を使用し、他方のイベントは一方のイベントの実行が終了するまで待つようになる。よって、補正部６０５は、一方のイベントの実行が終了した時刻に、他方のイベントの実行を開始させることができる。
【００７８】
即ち、補正部６０５は、一方のイベントにより使用されたデバイス３０３がアイドル時間に移行する前に、他方のイベントを開始させることができ、デバイス３０３の実行時間を纏めることができる。そのため、補正部６０５は、補正前の補正対象イベントによるデバイス３０３の実行時間と、目標イベントによるデバイス３０３の実行時間と、を纏めることができ、携帯端末装置２００の低消費電力化を図ることができる。
【００７９】
また、補正部６０５は、目標イベントの予定開始時刻と目標イベントの予測処理時間とに基づいて、補正対象イベントの予定開始時刻を目標イベントの予定開始時刻に目標イベントの予測処理時間を加算した時刻に補正する。ここで、目標イベントの予測処理時間とは、目標イベントを実行したプロセスが現在時刻以前に実行したイベントの処理時間から予測した処理時間である。目標イベントの予定開始時刻に目標イベントの予測処理時間を加算した時刻とは、目標イベントの予定終了時刻である。
【００８０】
これにより、補正部６０５は、目標イベントの実行が終了した時刻に、補正対象イベントの実行を開始させることができる。即ち、補正部６０５は、目標イベントにより使用されたデバイス３０３がアイドル時間に移行する前に、補正対象イベントを開始させることができる。そのため、補正部６０５は、補正前の補正対象イベントによるデバイス３０３の実行時間と、目標イベントによるデバイス３０３の実行時間と、を纏めることができ、デバイス３０３の実行時間を減少させて携帯端末装置２００の低消費電力化を図ることができる。
【００８１】
また、補正部６０５は、目標イベントの予定開始時刻と補正対象イベントの予測処理時間とに基づいて、補正対象イベントの予定開始時刻を目標イベントの予定開始時刻から補正対象イベントの予測処理時間を減算した時刻に補正する。ここで、補正対象イベントの予測処理時間とは、補正対象イベントを実行したプロセスが現在時刻以前に実行したイベントの処理時間から予測した処理時間である。目標イベントの予定開始時刻から補正対象イベントの予測処理時間を減算した時刻とは、目標イベントの予定開始時刻に補正対象イベントの予定終了時刻が一致するようにした場合の、補正対象イベントの予定開始時刻である。
【００８２】
これにより、補正部６０５は、補正対象イベントの実行が終了した時刻に、目標イベントの実行を開始させることができる。即ち、補正部６０５は、補正対象イベントにより使用されたデバイス３０３がアイドル時間に移行する前に、目標イベントを開始させることができる。そのため、補正部６０５は、補正前の補正対象イベントによるデバイス３０３の実行時間と、目標イベントによるデバイス３０３の実行時間と、を纏めることができ、デバイス３０３の実行時間を減少させて携帯端末装置２００の低消費電力化を図ることができる。
【００８３】
また、補正部６０５は、決定部６０４によって目標イベントが決定されなかった場合、補正をおこなわない。これにより、補正部６０５は、制約情報を順守できない場合に補正をおこなわずに、理想的なポーリング間隔でプロセスを動作させることができる。
【００８４】
（実施例１）
次に、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容について説明する。実施例１では、補正対象イベントの予定開始時刻を、目標イベントの予定開始時刻へと補正する例である。また、実施例１では、アプリ１〜アプリ３が使用するデバイス３０３は、アプリ１〜アプリ３が同時に使用することができる。
【００８５】
図７〜１３は、実施例１にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図である。携帯端末装置２００では、イベントの予定開始時刻をアプリ３１０が独自に設定するのではなく、アプリ３１０から提供された値に基づいて、ＯＳ３０１が最適な予定開始時刻に補正する。また、アプリ３１０が、ＯＳ３０１によって算出された予定開始時刻に基づいて、イベントの予定開始時刻を補正してもよい。
【００８６】
（補正の計算式の例１）
ここで、実施例１における予定開始時刻の補正の計算式の例を示す。まず、イベント管理ＡＰＩ３２２は、下記（１）式に従って補正対象イベントの補正前の予定開始時刻を算出する。
【００８７】
ＩＮＰ  ＝  ＣＴ＋Ｔ…（１）
【００８８】
ただし、ＩＮＰは、補正対象イベントの補正前の予定開始時刻を示している。ＣＴは、現在時刻を示している。Ｔは、アプリのポーリング間隔を示している。そして、イベント管理ＡＰＩ３２２は、補正対象イベントの予定開始時刻を、下記（２）式に従って補正する。
【００８９】
ＦＰＴ  ＝  ＩＮＰ  ＋  （ＰＴ（ｎ）−ＩＮＰ）×ＢＬ×（１／ＰＡＬ）…（２）
【００９０】
ただし、ＦＰＴ（Ｆｉｘｅｄ  Ｐｏｌｌｉｎｇ  Ｔｉｍｅ）は、補正対象イベントの補正後の予定開始時刻を示している。ＰＴ（ｎ）は、現在時刻ＣＴ以後の所定期間内に実行される複数のイベントのうち、目標イベントに決定されたイベントの予定開始時刻を示している。
【００９１】
ＰＡＬ（Ｐｏｗｅｒ  Ａｐｉ  Ｌｅｖｅｌ）は、アプリの消費電力量の指標を示している。消費電力量の指標は、「１」が最も消費電力量が大きく、値が大きくなるにつれ消費電力量が小さくなることを示している。例えば、ＰＡＬは下記（３）式で算出できる。
【００９２】
ＰＡＬ＝（ＣＰＵ２０１の負荷が１００％である場合の消費電力／アプリの消費電力）…（３）
【００９３】
（３）式を適用し、例えば、ＣＰＵ２０１の負荷が１００％である場合の消費電力が３［ｍＷ］である場合に、３［ｍＷ］消費するアプリは、消費電力量の指標＝（３／３）＝１となる。また、１［ｍＷ］消費するアプリは、消費電力量の指標＝（３／１）＝３となる。
【００９４】
ＢＬ（Ｂａｔｔｅｒｙ  Ｌｉｆｅ）は携帯端末装置２００の電力の残量を示している。具体的には、ＢＬは０〜１の数値で、０ならば電力の残量がない完全放電状態を示し、１ならば満充電状態を示す。
【００９５】
また、イベント管理ＡＰＩ３２２は、制約情報（例えば、予定開始時刻の上限値または下限値といった閾値）に基づいて、補正対象イベントの予定開始時刻を補正してもよい。例えば、ブラウザアプリ３１１のポーリング間隔の仕様として、特定のＷｅｂページに対する再読み込み間隔の最小値が設定されている場合を想定する。この場合、予定開始時刻の下限値を現在時刻ＣＴに再読み込み間隔の最小値を加算した値としておき、（２）式の算出結果が下限値より小さい場合、イベント管理ＡＰＩ３２２は、補正後の予定開始時刻として（２）式の算出結果を採用せず下限値を採用してもよい。
【００９６】
このように、補正対象イベントの予定開始時刻と目標イベントの予定開始時刻との差分（ＰＴ（ｎ）−ＩＮＰ）に基づいて、補正後の補正対象イベントの予定開始時刻を算出する。なお、イベントが１つしか存在しない場合、イベント管理ＡＰＩ３２２は、ＰＴ（ｎ）が存在しないため補正を実行しない。したがって、該当のイベントの予定開始時刻は、ＣＴ＋Ｔに等しく、ポーリング間隔はアプリが仕様等から決定したポーリング間隔Ｔに等しくなる。
【００９７】
（補正の計算式の例２）
また、イベント管理ＡＰＩ３２２は、補正対象イベントの予定開始時刻を、補正対象イベントと目標イベントとの間隔が所定の閾値より短い場合にのみ、補正をおこなってもよい。（４）式は、補正対象イベントと目標イベントとの間隔が所定の閾値より短いか、所定の閾値より長いか、を判定する判定式の例である。
【００９８】
｜ＦＰＴ−ＰＴ（ｎ）｜  ＜  Ｔｈ×ＢＬ×（１／ＰＡＬ）…（４）
【００９９】
ただし、Ｔｈは定数である。ここで、（４）式の条件を満たす場合は、（２）式のＦＰＴを補正対象イベントの補正後の予定開始時刻とする。一方で、（４）式の条件を満たさない場合は、（１）式のＩＮＰを補正対象イベントの補正後の予定開始時刻とする。
【０１００】
（補正の計算式の例３）
また、イベント管理ＡＰＩ３２２は、補正対象イベントの予定開始時刻を、補正対象イベントと目標イベントとの間隔が所定の閾値より長い場合にのみ、補正をおこなってもよい。ここで、（４）式の条件を満たす場合は、（１）式のＩＮＰを補正対象イベントの補正後の予定開始時刻とする。一方で、（４）式の条件を満たさない場合は、（２）式のＦＰＴを補正対象イベントの補正後の予定開始時刻とする。
【０１０１】
以下では、図７〜図１４を用いて、上述した補正の計算式の例１を用いた場合の補正対象イベントの予定開始時刻の補正の例を示す。以下、説明の簡略化のため、図７〜図１４における時刻の記載にて日時の指定がない場合は、２０１０年４月３日内の時刻とする。また、ＢＬは「１」とし、ＰＡＬは「１」とする。ここでは、プロセス１に関してポーリング間隔を４５秒以下にできないという制約情報があるとする。
【０１０２】
図７は、補正をおこなう前のプロセス１〜プロセス３の動作およびデバイス３０３の動作を示している。
【０１０３】
プロセス１は、ポーリング間隔Ｔ１＝５５［秒］ごとにイベントを実行する。補正をおこなう前のプロセス１は、時刻ｔ１１＝１２：４０：２５にイベントＥ１１を実行し、時刻ｔ１３＝１２：４１：２０にイベントＥ１２を実行し、時刻ｔ１５＝１２：４２：１５にイベントＥ１３を実行する。
【０１０４】
プロセス２は、ポーリング間隔Ｔ２＝４０［秒］ごとにイベントを実行する。補正をおこなう前のプロセス２は、時刻ｔ２１＝１２：４０：１０にイベントＥ２１を実行し、時刻ｔ２３＝１２：４０：５０にイベントＥ２２を実行する。また、補正をおこなう前のプロセス２は、時刻ｔ２５＝１２：４１：３０にイベントＥ２３を実行し、時刻ｔ２７＝１２：４２：１０にイベントＥ２４を実行する。
【０１０５】
プロセス３は、ポーリング間隔Ｔ３＝５０［秒］ごとにイベントを実行する。補正をおこなう前のプロセス３は、時刻ｔ３１＝１２：４０：１５にイベントＥ３１を実行し、時刻ｔ３３＝１２：４１：０５にイベントＥ３２を実行し、時刻ｔ３５＝１２：４１：５５にイベントＥ３３を実行する。
【０１０６】
デバイス３０３は、各イベントの処理に伴って実行が開始され、アクティブ時間およびアイドル時間を合わせた時間の経過後、低電力モードに遷移する。イベントＥ１１〜Ｅ１３のそれぞれの処理に使用されるデバイス３０３のアクティブ時間をＡ１１〜Ａ１３で示す。イベントＥ２１〜Ｅ２４のそれぞれの処理に使用されるデバイス３０３のアクティブ時間をＡ２１〜Ａ２４で示す。イベントＥ３１〜Ｅ３３のそれぞれの処理に使用されるデバイス３０３のアクティブ時間をＡ３１〜Ａ３３で示す。
【０１０７】
図８は、プロセス２にて、イベントＥ２１の実行を開始した時点を現在時刻ＣＴとして、プロセス２が発生させた新たなイベントＥ２２の予定開始時刻を補正する例を示している。
【０１０８】
プロセス２は、イベントＥ２１を時刻ｔ２１＝１２：４０：１０（現在時刻ＣＴ）に実行開始し、時刻ｔ２２＝１２：４０：１５にて終了する。時刻ｔ２１にて、ポーリング間隔Ｔ２経過後の時刻ｔ２３＝１２：４０：５０に実行開始されるイベントＥ２２がプロセス２から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ２２を補正対象イベントとして処理を開始する。
【０１０９】
ここで、時刻ｔ２１の時点にて、イベントリスト３０２には、イベントＥ１１，Ｅ３１が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１１の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１２，Ｅ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ３１の予定開始時刻およびポーリング間隔Ｔ３より、イベントリスト３０２には未登録であるがイベントＥ３２，Ｅ３３の予定開始時刻を算出しておく。
【０１１０】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１１〜Ｅ１３，Ｅ３１〜Ｅ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ２２の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ３２が目標イベントとなる。
【０１１１】
ここで、イベント管理ＡＰＩ３２２は、（２）式を用いて、イベントＥ２２の補正後の予定開始時刻ＦＰＴ（ｔ２３’）を算出する。即ち、ＦＰＴ＝（時刻ｔ２３）＋（時刻ｔ３３−時刻ｔ２３）×１×１＝１２：４０：５０＋（１５）＝１２：４１：０５となる。
【０１１２】
算出した結果、イベントＥ２２の予定開始時刻は、時刻ｔ２３＝１２：４０：５０から、時刻ｔ２３’＝１２：４１：０５に補正される。補正により、イベントＥ２２によるデバイス３０３の実行時間とイベントＥ３２によるデバイス３０３の実行時間とが重なり、デバイス３０３の実行時間を纏めることができる。
【０１１３】
図９は、プロセス３にて、イベントＥ３１の実行を開始した時点を現在時刻ＣＴとして、プロセス３が発生させた新たなイベントＥ３２の予定開始時刻を補正する例を示している。
【０１１４】
プロセス３は、イベントＥ３１を時刻ｔ３１＝１２：４０：１５（現在時刻ＣＴ）に実行開始し、時刻ｔ３２＝１２：４０：２０にて終了する。時刻ｔ３１にて、ポーリング間隔Ｔ３経過後の時刻ｔ３３＝１２：４１：０５に実行開始されるイベントＥ３２がプロセス３から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ３２を補正対象イベントとして処理を開始する。
【０１１５】
ここで、時刻ｔ３１の時点にて、イベントリスト３０２には、イベントＥ１１，Ｅ２２が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１１の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１２，Ｅ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ２２の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２３，Ｅ２４の予定開始時刻を算出しておく。
【０１１６】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１１〜Ｅ１３，Ｅ２２〜Ｅ２４のイベントのうち、各々のイベントの予定開始時刻とイベントＥ３２の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ２２が目標イベントとなる。
【０１１７】
ここで、イベント管理ＡＰＩ３２２は、（２）式を用いて、イベントＥ３２の補正後の予定開始時刻ＦＰＴ（ｔ３３’）を算出する。即ち、ＦＰＴ＝（時刻ｔ３３）＋（時刻ｔ２３’−時刻ｔ３３）×１×１＝１２：４１：０５＋（０）＝１２：４１：０５となる。
【０１１８】
算出した結果、イベントＥ３２の予定開始時刻は、時刻ｔ３３＝１２：４１：０５のままである。なお、目標イベントの予定開始時刻と補正対象イベントの予定開始時刻との間隔が同一または所定の閾値以下である場合に、補正をおこなわないようにすれば、図９を用いて説明した処理を省略することができる。
【０１１９】
図１０は、プロセス１にて、イベントＥ１１の実行を開始した時点を現在時刻ＣＴとして、プロセス１が発生させた新たなイベントＥ１２の予定開始時刻を補正する例を示している。
【０１２０】
プロセス１は、イベントＥ１１を時刻ｔ１１＝１２：４０：２５（現在時刻ＣＴ）に実行開始し、時刻ｔ１２＝１２：４０：３０にて終了する。時刻ｔ１１にて、ポーリング間隔Ｔ１経過後の時刻ｔ１３＝１２：４１：２０に実行開始されるイベントＥ１２がプロセス１から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ１２を補正対象イベントとして処理を開始する。
【０１２１】
ここで、時刻ｔ１１の時点にて、イベントリスト３０２には、イベントＥ２２，Ｅ３２が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ２２の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２３，Ｅ２４の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ３２の予定開始時刻およびポーリング間隔Ｔ３より、イベントリスト３０２には未登録であるがイベントＥ３３の予定開始時刻を算出しておく。
【０１２２】
ここで、タイミング制御ライブラリ３３１は、イベントＥ２２〜Ｅ２４，Ｅ３２，Ｅ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ１２の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ２２が目標イベントとなる。
【０１２３】
ここで、イベント管理ＡＰＩ３２２は、（２）式を用いて、イベントＥ１２の補正後の予定開始時刻ＦＰＴ（ｔ１３’）を算出する。即ち、ＦＰＴ＝（時刻ｔ１３）＋（時刻ｔ２３’−時刻ｔ１３）×１×１＝１２：４１：２０＋（−１５）＝１２：４１：０５となる。しかし、プロセス１の制約情報から、ポーリング間隔を４５秒以下にすることができないため、イベントＥ１２の補正後の予定開始時刻ｔ１３’は１２：４１：１０となる。
【０１２４】
結果として、イベントＥ１２の予定開始時刻は、時刻ｔ１３＝１２：４１：２０から、時刻ｔ１３’＝１２：４１：１０に補正される。補正により、イベントＥ１２によるデバイス３０３の実行時間のアクティブ時間部分とイベントＥ２２によるデバイス３０３の実行時間のアイドル時間部分とが重なり、デバイス３０３の実行時間を纏めることができる。
【０１２５】
図１１は、プロセス２にて、イベントＥ２２の実行を開始した時点を現在時刻ＣＴとして、プロセス２が発生させた新たなイベントＥ２３の予定開始時刻を補正する例を示している。
【０１２６】
プロセス２は、イベントＥ２２を時刻ｔ２３’＝１２：４１：０５（現在時刻ＣＴ）に実行開始し、時刻ｔ２４’＝１２：４１：１０にて終了する。時刻ｔ２３’にて、ポーリング間隔Ｔ２経過後の時刻ｔ２５＝１２：４１：４５に実行開始されるイベントＥ２３がプロセス２から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ２３を補正対象イベントとして処理を開始する。
【０１２７】
ここで、時刻ｔ２３’の時点にて、イベントリスト３０２には、イベントＥ１２，Ｅ３２が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１２の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ３２の予定開始時刻およびポーリング間隔Ｔ３より、イベントリスト３０２には未登録であるがイベントＥ３３の予定開始時刻を算出しておく。
【０１２８】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１２，Ｅ１３，Ｅ３２，Ｅ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ２３の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ３３が目標イベントとなる。
【０１２９】
ここで、イベント管理ＡＰＩ３２２は、（２）式を用いて、イベントＥ２３の補正後の予定開始時刻ＦＰＴ（ｔ２５’）を算出する。即ち、ＦＰＴ＝（時刻ｔ２５）＋（時刻ｔ３５−時刻ｔ２５）×１×１＝１２：４１：４５＋（１０）＝１２：４１：５５となる。
【０１３０】
算出した結果、イベントＥ２３の予定開始時刻は、時刻ｔ２５＝１２：４１：４５から、時刻ｔ２５’＝１２：４１：５５に補正される。補正により、イベントＥ２３によるデバイス３０３の実行時間とイベントＥ３３によるデバイス３０３の実行時間とが重なり、デバイス３０３の実行時間を纏めることができる。
【０１３１】
図１２は、プロセス３にて、イベントＥ３２の実行を開始した時点を現在時刻ＣＴとして、プロセス３が発生させた新たなイベントＥ３３の予定開始時刻を補正する例を示している。
【０１３２】
プロセス３は、イベントＥ３２を時刻ｔ３３＝１２：４１：０５（現在時刻ＣＴ）に実行開始し、時刻ｔ３４＝１２：４１：１０にて終了する。時刻ｔ３３にて、ポーリング間隔Ｔ３経過後の時刻ｔ３５＝１２：４１：５５に実行開始されるイベントＥ３３がプロセス３から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ３３を補正対象イベントとして処理を開始する。
【０１３３】
ここで、時刻ｔ３３の時点にて、イベントリスト３０２には、イベントＥ１２，Ｅ２３が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１２の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ２３の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２４の予定開始時刻を算出しておく。
【０１３４】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１２，Ｅ１３，Ｅ２３，Ｅ２４のイベントのうち、各々のイベントの予定開始時刻とイベントＥ３３の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ２３が目標イベントとなる。
【０１３５】
ここで、イベント管理ＡＰＩ３２２は、（２）式を用いて、イベントＥ３３の補正後の予定開始時刻ＦＰＴ（ｔ３５’）を算出する。即ち、ＦＰＴ＝（時刻ｔ３５）＋（時刻ｔ２５’−時刻ｔ３５）×１×１＝１２：４１：５５＋（０）＝１２：４１：５５となる。算出した結果、イベントＥ３３の予定開始時刻は、時刻ｔ３５＝１２：４１：５５のままである。
【０１３６】
図１３は、プロセス１にて、イベントＥ１２の実行を開始した時点を現在時刻ＣＴとして、プロセス１が発生させた新たなイベントＥ１３の予定開始時刻を補正する例を示している。
【０１３７】
プロセス１は、イベントＥ１２を時刻ｔ１３’＝１２：４１：１０（現在時刻ＣＴ）に実行開始し、時刻ｔ１４’＝１２：４１：１５にて終了する。時刻ｔ１３’にて、ポーリング間隔Ｔ１経過後の時刻ｔ１５＝１２：４２：０５に実行開始されるイベントＥ１３がプロセス１から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ１３を補正対象イベントとして処理を開始する。
【０１３８】
ここで、時刻ｔ１３’の時点にて、イベントリスト３０２には、イベントＥ２３，Ｅ３３が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ２３の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２４の予定開始時刻を算出しておく。
【０１３９】
ここで、タイミング制御ライブラリ３３１は、イベントＥ２３，Ｅ２４，Ｅ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ１３の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ２３が目標イベントとなる。
【０１４０】
ここで、イベント管理ＡＰＩ３２２は、（２）式を用いて、イベントＥ１３の補正後の予定開始時刻ＦＰＴ（ｔ１５’）を算出する。即ち、ＦＰＴ＝（時刻ｔ１５）＋（時刻ｔ２５’−時刻ｔ１５）×１×１＝１２：４２：０５＋（−１０）＝１２：４１：５５となる。
【０１４１】
算出した結果、イベントＥ１３の予定開始時刻は、時刻ｔ１５＝１２：４２：０５から、時刻ｔ１５’＝１２：４１：５５に補正される。図１０での補正では、イベントＥ１２によるデバイス３０３の実行時間と他のイベントによるデバイス３０３の実行時間とは完全には重ならなかった。しかし、図１３での補正により、イベントＥ１３によるデバイス３０３の実行時間とイベントＥ２３によるデバイス３０３の実行時間とが重なり、デバイス３０３の実行時間を纏めることができる。
【０１４２】
このように、携帯端末装置２００は、段階的に補正をおこない、最終的にはプロセス１が発生させたイベントによるデバイス３０３の実行時間を短くして、消費電力を削減することができる。
【０１４３】
ここでは、携帯端末装置２００は、補正対象イベントの予定開始時刻に最も近い時刻に開始されるイベントを目標イベントに決定したが、補正対象イベントの予定開始時刻を含む所定の期間内の任意のイベントを目標イベントに決定してもよい。また、携帯端末装置２００は、補正対象イベントの予定開始時刻に近い時刻に開始される順にイベントを整列した場合に、所定の順位以内の任意のイベントを目標イベントに決定してもよい。
【０１４４】
また、ここでは、携帯端末装置２００は、プロセスが発生させた新たなイベントを補正対象イベントとして採用したが、イベントリスト３０２に存在するイベントを採用してもよい。
【０１４５】
また、ここでは、携帯端末装置２００は、プロセス１〜３のそれぞれが実行するイベントの予定開始時刻を補正したが、予定開始時刻を補正されないイベントがあってもよい。例えば、プロセス２が実行するイベントは予定開始時刻を補正されないイベントであるとする。そして、プロセス２は、ポーリング間隔Ｔ２を常に保って、イベントを実行することにしてもよい。
【０１４６】
また、携帯端末装置２００は、ＰＡＬとして、補正対象イベントを実行するプロセスの消費電力量の指標を採用したが、目標イベントを実行するプロセスの消費電力量の指標を採用してもよい。
【０１４７】
また、携帯端末装置２００は、補正対象イベントを実行するプロセスの消費電力量の指標と目標イベントを実行するプロセスの消費電力量の指標とのうち、消費電力量の指標の値が大きい方を選択して採用してもよい。消費電力量の指標の値が大きい場合、すなわち消費電力量が小さい方を選択する理由は次のとおりである。
【０１４８】
プロセスの消費電力量が小さい場合、それに伴うデバイス３０３の消費電力量も小さくなる。大きい消費電力量となる実行時間と小さい消費電力量となる実行時間とが重なる場合、小さい消費電力量の分が、消費電力の最大の削減量となる。このように、消費電力の最大の削減量は小さい消費電力量の方に左右されるため、携帯端末装置２００は、消費電力量の指標の値が大きい方を選択することで、消費電力量の最大の削減量に基づいて補正対象イベントの予定開始時刻を補正することができる。
【０１４９】
このように、携帯端末２００は、複数のイベントによるデバイス３０３の実行時間を纏めて、デバイス３０３の実行時間を減少させることができ、消費電力を削減することができる。次に、図１４を用いて、補正によるデバイス３０３の実行時間の変化と消費電力の削減について説明する。
【０１５０】
図１４は、実施例１にかかるデバイス３０３の補正前の実行時間および補正後の実行時間を示す説明図である。なお、図１４において以下の前提条件が存在する。消費電力量の計算にあたって、デバイス３０３の低電力モードの消費電力を０［ｍＷ］と想定する。
【０１５１】
また、デバイス３０３は、プロセス１〜３が同時に使用可能なデバイス３０３（例えば、ＤＭＡＣ）である。具体的には、プロセスごとに異なるＤＭＡＣのチャネルを使用するようにすることで、各プロセスはＤＭＡＣを同時に使用することができる。例えば、プロセス１がチャネルＡとチャネルＢを使用し、プロセス２がチャネルＣとチャネルＤを使用し、プロセス３がチャネルＥとチャネルＦを使用するとする。
【０１５２】
デバイス３０３の消費電力量は、デバイス３０３の消費電力×デバイス３０３の実行時間となる。なお、デバイス３０３の消費電力以外に、デバイス３０３に接続されるＩ／Ｆの消費電力も存在するが、図１４では、Ｉ／Ｆの消費電力をデバイス３０３の消費電力に含めて省略する。また、デバイス３０３は、デバイス３０３の実行時間が終了すると、低電力モードに遷移する。
【０１５３】
ここで、補正によるデバイス３０３の実行時間の変化と消費電力の削減について説明する。例えば、図１４において、符号１４０１に示す範囲では、携帯端末２００は、プロセス１〜３によるデバイス３０３の実行時間を纏め、プロセス１〜３がデバイス３０３の別チャネルを用いるようにしてデバイス３０３を同時に使用するようにした。また、携帯端末２００は、プロセス１によるデバイス３０３のアクティブ時間とプロセス２によるデバイス３０３のアイドル時間とを纏め、デバイスの実行時間を減少させた。
【０１５４】
符号１４０１に示す範囲では、補正前は、携帯端末装置２００は、プロセス２によるデバイス３０３の実行時間とプロセス３によるデバイス３０３の実行時間とプロセス１によるデバイス３０３の実行時間とについて、デバイス３０３において電力を消費していた。
【０１５５】
一方で、補正後は、携帯端末装置２００は、プロセス２およびプロセス３により同時使用されるデバイス３０３のアクティブ時間とプロセス１によるデバイス３０３の実行時間とについて、デバイス３０３において電力を消費するだけでよい。即ち、携帯端末装置２００は、プロセス２によるデバイス３０３のアイドル時間と、プロセス３によるデバイス３０３の実行時間と、についてのデバイス３０３における消費電力を削減することができる。
【０１５６】
また、図１４の全体での消費電力の削減量について説明する。例えば、デバイス３０３の単位時間当たりの消費電力を１［ｍＷ］とすると、デバイス３０３の消費電力は、１［ｍＷ］×（アクティブ時間の和＋アイドル時間の和）となる。よって、補正前のデバイス３０３の消費電力量は、１［ｍＷ］×（５［秒］×１０＋５［秒］×８）＝９０［ｍＷ秒］である。一方、補正後のデバイス３０３の消費電力量は、１［ｍＷ］×（５［秒］×７＋５［秒］×５）＝６０［ｍＷ秒］となり、携帯端末装置２００は、消費電力量を３０［ｍＷ秒］削減できる。
【０１５７】
（予定開始時刻の補正処理）
次に、図１５および図１６を用いて、ＯＳ３０１でおこなわれる補正対象イベントの予定開始時刻の補正をおこなう予定開始時刻補正処理について説明する。図１５、図１６にて起動されるプロセスは、アプリ３１０に含まれるアプリによるプロセス１およびプロセス２であることを想定する。なお、プロセス１、プロセス２以外に起動される他のプロセスがあれば、他のプロセスもプロセス１またはプロセス２と同様に以下に説明する処理をおこなう。一方、起動されるプロセスの中には、以下に説明する処理をおこなわないプロセスがあってもよい。
【０１５８】
図１５は、予定開始時刻補正処理を示すフローチャート（その１）である。ＯＳ３０１は、携帯端末装置２００のブート終了後等に、ＯＳ３０１の動作を開始する（ステップＳ１５０１）。動作開始後、ユーザからの指示等により、ＯＳ３０１は、プロセスの起動要求を実行する（ステップＳ１５０２）。起動要求を受けたプロセス１は、動作を開始する（ステップＳ１５０３）。起動要求を受けたプロセス２も同様に、動作を開始する（ステップＳ１５０４）。なお、動作を開始後、プロセス１と、プロセス２は、ポーリング補正をおこなうイベント発生処理を開始する。
【０１５９】
ＯＳ３０１は、電力制御ライブラリ３３２からＢＬを取得する（ステップＳ１５０５）。また、動作を開始したプロセス１は、プロセス１のＰＡＬ、プロセス１の補正前の予定開始時刻ＩＮＰをＯＳ３０１に通知する（ステップＳ１５０６）。プロセス２も同様に、プロセス２のＰＡＬ、プロセス２の補正前の予定開始時刻ＩＮＰをＯＳ３０１に通知する（ステップＳ１５０７）。
【０１６０】
ＯＳ３０１は、イベント管理ＡＰＩ３２２によって、イベントリスト３０２のイベントを検出し、また、ポーリング間隔に基づいて、イベントリスト３０２に未登録のイベントを検出する。そして、ＯＳ３０１は、検出された複数のイベントの中から、目標イベントを決定する（ステップＳ１５０８）。
【０１６１】
以下、ＯＳ３０１は、ステップＳ１５０６の処理による通知とステップＳ１５０７の処理による通知のうち、ステップＳ１５０６の処理による通知を先に受け付けたと想定する。目標イベントの取得後、ＯＳ３０１は、先に受け付けられたプロセス１によるイベントの補正後の予定開始時刻ＦＰＴを算出する（ステップＳ１５０９）。補正の計算式は、例えば、上述した補正の計算式の例１や補正の計算式の例２や補正の計算式の例３である。
【０１６２】
なお、ステップＳ１５０９の処理については、ステップＳ１５０７によるプロセス２の通知の方が早い場合、ＯＳ３０１は、プロセス２の各値を代入してプロセス２によるイベントの補正後の予定開始時刻ＦＰＴを算出する。また、ステップＳ１５０６による通知より遅い通知となったステップＳ１５０７に関するプロセス２の補正後の予定開始時刻ＦＰＴの算出は、再びステップＳ１５０９が実行される際におこなわれる。また、現在時刻ＣＴの取得については、ステップＳ１５０９の実行前に、ＯＳ３０１がタイマＡＰＩ３２３を呼び出して取得する。
【０１６３】
算出後、ＯＳ３０１は、算出された補正後の予定開始時刻ＦＰＴをプロセスへ通知する（ステップＳ１５１０）。なお、通知先となるプロセスに関して、先に受け付けられたプロセスがプロセス１であればプロセス１へ、先に受け付けられたプロセスがプロセス２であればプロセス２へ通知する。
【０１６４】
図１６は、予定開始時刻補正処理を示すフローチャート（その２）である。以下、ＯＳ３０１がステップＳ１５１０にてプロセス１に通知した場合を想定する。プロセス１は、補正後の予定開始時刻ＦＰＴを取得する（ステップＳ１６０１）。続けて、プロセス１は、プロセス１固有の動作により、イベントの実行要求を発生させる（ステップＳ１６０２）。なお、イベントは、プロセス１が呼び出したイベント管理ＡＰＩ３２２により、イベントリスト３０２に登録される。登録後、プロセス１は、イベント実行時までスタンバイする（ステップＳ１６０３）。なお、ステップＳ１６０３にて、プロセス１は、プロセス１を実行する以外に実行可能な他の処理が存在すれば、スタンバイせずに他の処理を実行してもよい。
【０１６５】
ＯＳ３０１は、イベント管理ＡＰＩ３２２によって、新たなイベントが登録されたことが検出されたかを判断する（ステップＳ１６０７）。検出された場合（ステップＳ１６０７：Ｙｅｓ）、ＯＳ３０１は、登録されたイベントを補正対象イベントとし、イベントの予定開始時刻をＦＰＴに補正する（ステップＳ１６０８）。
【０１６６】
なお、ステップＳ１６０１の処理にて、ＦＰＴを取得したプロセス１は、自身が持つ制約情報に基づいて、ＦＰＴを更新してもよい。例えば、現在時刻ＣＴ＝１２：４０：２５において、ＦＰＴ＝１２：４１：０５で通知されたが、プロセス１の制約情報として、ポーリング間隔が４５秒以上と定められていることを想定する。このとき、プロセス１は、ＦＰＴ’＝１２：４１：１０として、ステップＳ１６０２の処理時にＦＰＴ’をＯＳ３０１に通知する。続けて、ステップＳ１６０８の処理にて、ＯＳ３０１は、イベントの予定開始時刻をＦＰＴに補正する。
【０１６７】
ステップＳ１６０８の終了後、または、新たなイベントが検出されていない場合（ステップＳ１６０７：Ｎｏ）、ＯＳ３０１は、イベントリスト３０２に登録されたイベントのうち、タイマＡＰＩ３２３により現在時刻がイベントの予定開始時刻以後となったかを判断する（ステップＳ１６０９）。予定開始時刻以後である場合（ステップＳ１６０９：Ｙｅｓ）、ＯＳ３０１は、イベントが予定開始時刻以後になったことをイベントに対応するプロセスに通知する（ステップＳ１６１０）。プロセスに通知後、または、予定開始時刻以後となったイベントがない場合（ステップＳ１６０９：Ｎｏ）、ＯＳ３０１は、ステップＳ１５０５の処理に移行する。
【０１６８】
予定開始時刻以後となったことの通知を受けたプロセス１は、イベントを実行する（ステップＳ１６１１）。なお、通知を受けたプロセス１は、スタンバイせずに他の処理を実行している場合も有り得る。例えば、イベントの処理より優先度が高い他の処理が存在する場合である。この場合、プロセス１は、他の処理が完了してからイベントの処理をおこなってもよい。
【０１６９】
イベントを実行後、プロセス１は、イベントが発生するループが終了するかを判断する（ステップＳ１６１２）。イベントが発生するループが継続する場合（ステップＳ１６１２：Ｎｏ）、プロセス１は、ステップＳ１５０６の処理に移行する。イベントが発生するループが終了する場合（ステップＳ１６１２：Ｙｅｓ）、プロセス１は、ポーリング補正をおこなうイベント発生処理を終了する。
【０１７０】
なお、ステップＳ１５０６の処理にて、ＰＡＬは、プロセス固有の値であり、かつプロセス実行中に変更されない。したがって、ステップＳ１５０６の処理に移行したプロセス１は、２度目以降のステップＳ１５０６の処理では、次のイベントの補正前の予定開始時刻であるＩＮＰのみをＯＳ３０１に送信してもよい。
【０１７１】
なお、ＯＳ３０１がステップＳ１５１０にてプロセス２に通知した場合、プロセス１の代わりにプロセス２が処理を実行する。具体的には、プロセス２は、補正後の予定開始時刻ＦＰＴを取得する（ステップＳ１６０４）。続けて、プロセス２は、プロセス２固有の動作により、イベントの実行要求を発生させる（ステップＳ１６０５）。なお、イベントは、プロセス２が呼び出したイベント管理ＡＰＩ３２２により、イベントリスト３０２に登録される。登録後、プロセス２は、イベント実行時までスタンバイする（ステップＳ１６０６）。なお、ステップＳ１６０６にて、プロセス２はプロセス１と同様に、イベントを実行する以外におこなう他の処理が存在すれば、スタンバイせずに他の処理を実行してもよい。
【０１７２】
続けて、予定開始時刻以後となったことの通知を受けたプロセス２は、イベントを実行し（ステップＳ１６１３）、イベントが発生するループが終了するかを判断する（ステップＳ１６１４）。イベントが発生するループが継続する場合（ステップＳ１６１４：Ｎｏ）、プロセス２は、ステップＳ１５０７の処理に移行する。イベントが発生するループが終了する場合（ステップＳ１６１４：Ｙｅｓ）、プロセス２は、ポーリング補正をおこなうイベント発生処理を終了する。
【０１７３】
これにより、携帯端末装置２００は、複数のイベントの予定開始時刻を近づけて、複数のイベントによるデバイス３０３の実行時間を纏めることができ、デバイス３０３の消費電力を削減することができる。
【０１７４】
（実施例２）
次に、実施例２について説明する。実施例１では、デバイス３０３が同時実行可能である場合の予定開始時刻の補正について説明したが、実施例２では、デバイス３０３が同時実行不可能である場合の予定開始時刻の補正について説明する。
【０１７５】
図１７〜図２２は、実施例２にかかる補正対象イベントの予定開始時刻の補正の内容を示す説明図である。携帯端末装置２００では、イベントの予定開始時刻をアプリ３１０が独自に設定するのではなく、アプリ３１０から提供された値に基づいて、ＯＳ３０１が最適な予定開始時刻に補正する。また、アプリ３１０が、ＯＳ３０１によって算出された予定開始時刻に基づいて、イベントの予定開始時刻を補正してもよい。
【０１７６】
（補正の計算式の例４）
ここで、実施例２における予定開始時刻の補正の計算式の例を示す。まず、イベント管理ＡＰＩ３２２は、（１）式に従って補正対象イベントの補正前の予定開始時刻を算出する。そして、イベント管理ＡＰＩ３２２は、補正対象イベントの予定開始時刻を、下記（５）式に従って補正する。
【０１７７】
ＦＰＴ  ＝  ＩＮＰ  ＋  （ＰＴ（ｎ）−ＩＮＰ−補正対象イベントのＴＡＳＫ）×ＢＬ×（１／ＰＡＬ）…（５）
【０１７８】
ただし、ＴＡＳＫは、イベントの処理時間である。また、イベント管理ＡＰＩ３２２は、制約情報に基づいて、補正対象イベントの予定開始時刻を補正してもよい。例えば、ブラウザアプリ３１１のポーリング間隔の仕様として、特定のＷｅｂページに対する再読み込み間隔の最小値が設定されている場合を想定する。この場合、予定開始時刻の下限値を現在時刻ＣＴに再読み込み間隔の最小値を加算した値としておき、（５）式の算出結果が下限値より小さい場合、イベント管理ＡＰＩ３２２は、補正後の予定開始時刻として（５）式の算出結果を採用せず下限値を採用してもよい。
【０１７９】
このように、補正対象イベントの予定開始時刻と目標イベントの予定開始時刻との差分（ＰＴ（ｎ）−ＩＮＰ）に基づいて、補正後の補正対象イベントの予定開始時刻を算出する。なお、イベントが１つしか存在しない場合、イベント管理ＡＰＩ３２２は、ＰＴ（ｎ）が存在しないため補正を実行しない。したがって、該当のイベントの予定開始時刻は、ＣＴ＋Ｔに等しく、ポーリング間隔はアプリが仕様等から決定したポーリング間隔Ｔに等しくなる。
【０１８０】
（補正の計算式の例５）
また、イベント管理ＡＰＩ３２２は、補正対象イベントの予定開始時刻を、ＩＮＰ＜ＰＴ（ｎ）の場合には（５）式に従って補正し、ＩＮＰ＞ＰＴ（ｎ）の場合には下記（６）式に従って補正するようにしてもよい。また、ＩＮＰ＝ＰＴ（ｎ）の場合には、補正しないようにしてもよい。
【０１８１】
ＦＰＴ  ＝  ＩＮＰ  ＋  （ＰＴ（ｎ）−ＩＮＰ＋目標イベントのＴＡＳＫ）×ＢＬ×（１／ＰＡＬ）…（６）
【０１８２】
（補正の計算式の例６）
また、イベント管理ＡＰＩ３２２は、補正対象イベントの予定開始時刻を、補正対象イベントと目標イベントとの間隔が所定の閾値より短い場合にのみ、補正をおこなってもよい。（７）式は、補正対象イベントと目標イベントとの間隔が所定の閾値より短いか、所定の閾値より長いか、を判定する判定式の例である。
【０１８３】
｜ＦＰＴ−ＰＴ（ｎ）＋補正対象イベントのＴＡＳＫ｜  ＜  Ｔｈ×ＢＬ×（１／ＰＡＬ）…（７）
【０１８４】
ただし、Ｔｈは定数である。ここで、（７）式の条件を満たす場合は、（５）式のＦＰＴを補正対象イベントの補正後の予定開始時刻とする。一方で、（７）式の条件を満たさない場合は、（１）式のＩＮＰを補正対象イベントの補正後の予定開始時刻とする。
【０１８５】
（補正の計算式の例７）
また、イベント管理ＡＰＩ３２２は、補正対象イベントの予定開始時刻を、補正対象イベントと目標イベントとの間隔が所定の閾値より長い場合にのみ、補正をおこなってもよい。ここで、（７）式の条件を満たす場合は、（１）式のＩＮＰを補正対象イベントの補正後の予定開始時刻とする。一方で、（７）式の条件を満たさない場合は、（５）式のＦＰＴを補正対象イベントの補正後の予定開始時刻とする。
【０１８６】
以下では、図１７〜図２３を用いて、上述した補正の計算式の例５を用いた場合の補正対象イベントの予定開始時刻の補正の例を示す。以下、説明の簡略化のため、図１７〜図２３における時刻の記載にて日時の指定がない場合は、２０１０年４月３日内の時刻とする。また、ＢＬは「１」とし、ＰＡＬは「１」とする。なお、初めは図７に示した状態であるとする。また、各イベントのＴＡＳＫは、５秒とする。
【０１８７】
図１７は、プロセス２にて、イベントＥ２１の実行を開始した時点を現在時刻ＣＴとして、プロセス２が発生させた新たなイベントＥ２２の予定開始時刻を補正する例を示している。
【０１８８】
プロセス２は、イベントＥ２２を時刻ｔ２１＝１２：４０：１０（現在時刻ＣＴ）に実行開始し、時刻ｔ２２＝１２：４０：１５にて終了する。時刻ｔ２１にて、ポーリング間隔Ｔ２経過後の時刻ｔ２３＝１２：４０：５０に実行開始されるイベントＥ２２がプロセス２から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ２２を補正対象イベントとして処理を開始する。
【０１８９】
ここで、時刻ｔ２１の時点にて、イベントリスト３０２には、イベントＥ１１，Ｅ３１が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１１の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１２，Ｅ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ３１の予定開始時刻およびポーリング間隔Ｔ３より、イベントリスト３０２には未登録であるがイベントＥ３２，Ｅ３３の予定開始時刻を算出しておく。
【０１９０】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１１〜Ｅ１３，Ｅ３１〜Ｅ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ２２の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ３２が目標イベントとなる。
【０１９１】
また、イベント管理ＡＰＩ３２２は、ｔ２３＜ｔ３３であるため、（５）式を用いて、イベントＥ２２の補正後の予定開始時刻ＦＰＴ（ｔ２３’）を算出する。イベントＥ２２のＴＡＳＫは、イベントＥ２１の処理時間を計測して求めてもよいし、現在時刻ＣＴ以前にプロセス２により実行されたイベントの処理時間から推定して求めてもよい。
【０１９２】
即ち、ＦＰＴ＝（時刻ｔ２３）＋（時刻ｔ３３−時刻ｔ２３−イベントＥ２２のＴＡＳＫ）×１×１＝１２：４０：５０＋（１０）＝１２：４１：００となる。
【０１９３】
算出した結果、イベントＥ２２の予定開始時刻は、時刻ｔ２３＝１２：４０：５０から、時刻ｔ２３’＝１２：４１：００に補正される。補正により、イベントＥ２２によるデバイス３０３の実行時間のアイドル時間部分とイベントＥ３２によるデバイス３０３の実行時間のアクティブ時間部分とが重なり、デバイス３０３の実行時間を纏めることができる。
【０１９４】
図１８は、プロセス３にて、イベントＥ３１の実行を開始した時点を現在時刻ＣＴとして、プロセス３が発生させた新たなイベントＥ３２の予定開始時刻を補正する例を示している。
【０１９５】
プロセス３は、イベントＥ３１を時刻ｔ３１＝１２：４０：１５（現在時刻ＣＴ）に実行開始し、時刻ｔ３２＝１２：４０：２０にて終了する。時刻ｔ３１にて、ポーリング間隔Ｔ３経過後の時刻ｔ３３＝１２：４１：０５に実行開始されるイベントＥ３２がプロセス３から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ３２を補正対象イベントとして処理を開始する。
【０１９６】
ここで、時刻ｔ３１の時点にて、イベントリスト３０２には、イベントＥ１１，Ｅ２２が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１１の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１２，Ｅ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ２２の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２３，Ｅ２４の予定開始時刻を算出しておく。
【０１９７】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１１〜Ｅ１３，Ｅ２２〜Ｅ２４のイベントのうち、各々のイベントの予定開始時刻とイベントＥ３２の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ２２が目標イベントとなる。ここで、イベント管理ＡＰＩ３２２は、ＩＮＰ＝ＰＴ（ｎ）であるため、補正をおこなわない。
【０１９８】
図１９は、プロセス１にて、イベントＥ１１の実行を開始した時点を現在時刻ＣＴとして、プロセス１が発生させた新たなイベントＥ１２の予定開始時刻を補正する例を示している。
【０１９９】
プロセス１は、イベントＥ１１を時刻ｔ１１＝１２：４０：２５（現在時刻ＣＴ）に実行開始し、時刻ｔ１２＝１２：４０：３０にて終了する。時刻ｔ１１にて、ポーリング間隔Ｔ１経過後の時刻ｔ１３＝１２：４１：２０に実行開始されるイベントＥ１２がプロセス１から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ１２を補正対象イベントとして処理を開始する。
【０２００】
ここで、時刻ｔ１１の時点にて、イベントリスト３０２には、イベントＥ２２，イベントＥ３２が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ２２の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２３，Ｅ２４の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ３２の予定開始時刻およびポーリング間隔Ｔ３より、イベントリスト３０２には未登録であるがイベントＥ３３の予定開始時刻を算出しておく。
【０２０１】
ここで、タイミング制御ライブラリ３３１は、イベントＥ２２〜Ｅ２４，Ｅ３２，Ｅ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ１２の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ３２が目標イベントとなる。
【０２０２】
また、イベント管理ＡＰＩ３２２は、ｔ１３＞ｔ３３であるため、（６）式を用いて、イベントＥ１２の補正後の予定開始時刻ＦＰＴ（ｔ１３’）を算出する。イベントＥ３２のＴＡＳＫは、現在時刻ＣＴ以前にプロセス３により実行されたイベント（例えば、イベントＥ３１）の処理時間から推定して求める。
【０２０３】
即ち、ＦＰＴ＝（時刻ｔ１３）＋（時刻ｔ３３−時刻ｔ１３＋イベントＥ３２のＴＡＳＫ）×１×１＝１２：４１：２０＋（−１０）＝１２：４１：１０となる。
【０２０４】
算出した結果、イベントＥ１２の予定開始時刻は、時刻ｔ１３＝１２：４１：２０から、時刻ｔ１３’＝１２：４１：１０に補正される。補正により、イベントＥ１２によるデバイス３０３の実行時間のアクティブ時間部分とイベントＥ２２によるデバイス３０３の実行時間のアイドル時間部分とが重なり、デバイス３０３の実行時間を纏めることができる。
【０２０５】
図２０は、プロセス２にて、イベントＥ２２の実行を開始した時点を現在時刻ＣＴとして、プロセス２が発生させた新たなイベントＥ２３の予定開始時刻を補正する例を示している。
【０２０６】
プロセス２は、イベントＥ２２を時刻ｔ２３’＝１２：４１：００（現在時刻ＣＴ）に実行開始し、時刻ｔ２４’＝１２：４１：０５にて終了する。時刻ｔ２３’にて、ポーリング間隔Ｔ２経過後の時刻ｔ２５＝１２：４１：４０に実行開始されるイベントＥ２３がプロセス２から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ２３を補正対象イベントとして処理を開始する。
【０２０７】
ここで、時刻ｔ２３’の時点にて、イベントリスト３０２には、イベントＥ１２，Ｅ３２が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１２の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ３２の予定開始時刻およびポーリング間隔Ｔ３より、イベントリスト３０２には未登録であるがイベントＥ３３の予定開始時刻を算出しておく。
【０２０８】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１２，Ｅ１３，Ｅ３２，Ｅ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ２３の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ３３が目標イベントとなる。
【０２０９】
また、イベント管理ＡＰＩ３２２は、ｔ２５＜ｔ３５であるため、（５）式を用いて、イベントＥ２３の補正後の予定開始時刻ＦＰＴ（ｔ２５’）を算出する。イベントＥ２３のＴＡＳＫは、上述したイベントＥ２２のＴＡＳＫと同様にして求められる。
【０２１０】
即ち、ＦＰＴ＝（時刻ｔ２５）＋（時刻ｔ３５−時刻ｔ２５−イベントＥ２３のＴＡＳＫ）×１×１＝１２：４１：４０＋（１０）＝１２：４１：５０となる。
【０２１１】
算出した結果、イベントＥ２３の予定開始時刻は、時刻ｔ２５＝１２：４１：４０から、時刻ｔ２５’＝１２：４１：５０に補正される。補正により、イベントＥ２３によるデバイス３０３の実行時間のアイドル時間部分とイベントＥ３３によるデバイス３０３の実行時間のアクティブ時間部分とが重なり、デバイス３０３の実行時間を纏めることができる。
【０２１２】
図２１は、プロセス３にて、イベントＥ３２の実行を開始した時点を現在時刻ＣＴとして、プロセス３が発生させた新たなイベントＥ３３の予定開始時刻を補正する例を示している。
【０２１３】
プロセス３は、イベントＥ３２を時刻ｔ３３＝１２：４１：０５（現在時刻ＣＴ）に実行開始し、時刻ｔ３４＝１２：４１：１０にて終了する。時刻ｔ３３にて、ポーリング間隔Ｔ３経過後の時刻ｔ３５＝１２：４１：５５に実行開始されるイベントＥ３３がプロセス３から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ３３を補正対象イベントとして処理を開始する。
【０２１４】
ここで、時刻ｔ３３の時点にて、イベントリスト３０２には、イベントＥ１２，イベントＥ２３が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ１２の予定開始時刻およびポーリング間隔Ｔ１より、イベントリスト３０２には未登録であるがイベントＥ１３の予定開始時刻を算出しておく。同様に、タイミング制御ライブラリ３３１は、イベントＥ２３の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２４の予定開始時刻を算出しておく。
【０２１５】
ここで、タイミング制御ライブラリ３３１は、イベントＥ１２，Ｅ１３，Ｅ２３，Ｅ２４のイベントのうち、各々のイベントの予定開始時刻とイベントＥ３３の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ２３が目標イベントとなる。
【０２１６】
また、イベント管理ＡＰＩ３２２は、ｔ３５＞ｔ２５であるため、（６）式を用いて、イベントＥ１２の補正後の予定開始時刻ＦＰＴ（ｔ３５’）を算出する。イベントＥ３３のＴＡＳＫは、上述したイベントＥ３２のＴＡＳＫと同様にして求められる。
【０２１７】
即ち、ＦＰＴ＝（時刻ｔ３５）＋（時刻ｔ２５’−時刻ｔ３５＋イベントＥ３３のＴＡＳＫ）×１×１＝１２：４１：５５＋（０）＝１２：４１：５５となる。算出した結果、イベントＥ３３の予定開始時刻は、時刻ｔ３５＝１２：４１：５５のままである。
【０２１８】
図２２は、プロセス１にて、イベントＥ１２の実行を開始した時点を現在時刻ＣＴとして、プロセス１が発生させた新たなイベントＥ１３の予定開始時刻を補正する例を示している。
【０２１９】
プロセス１は、イベントＥ１２を時刻ｔ１３’＝１２：４１：１０（現在時刻ＣＴ）に実行開始し、時刻ｔ１４’＝１２：４１：１５にて終了する。時刻ｔ１３’にて、ポーリング間隔Ｔ１経過後の時刻ｔ１５＝１２：４２：０５に実行開始されるイベントＥ１３がプロセス１から発生した場合、タイミング制御ライブラリ３３１は、イベントＥ１３を補正対象イベントとして処理を開始する。
【０２２０】
ここで、時刻ｔ１３’の時点にて、イベントリスト３０２には、イベントＥ２３，Ｅ３３が存在するとする。また、タイミング制御ライブラリ３３１は、イベントＥ２３の予定開始時刻およびポーリング間隔Ｔ２より、イベントリスト３０２には未登録であるがイベントＥ２４の予定開始時刻を算出しておく。
【０２２１】
ここで、タイミング制御ライブラリ３３１は、イベントＥ２３，Ｅ２４，イベントＥ３３のイベントのうち、各々のイベントの予定開始時刻とイベントＥ１３の予定開始時刻との間隔が最も短いイベントを目標イベントに決定する。ここでは、イベントＥ２３が目標イベントとなる。
【０２２２】
また、イベント管理ＡＰＩ３２２は、ｔ１５＞ｔ３５であるため、（６）式を用いて、イベントＥ１２の補正後の予定開始時刻ＦＰＴ（ｔ１５’）を算出する。イベントＥ３３のＴＡＳＫは、上述したイベントＥ３２のＴＡＳＫと同様にして求められる。
【０２２３】
即ち、ＦＰＴ＝（時刻ｔ１５’）＋（時刻ｔ２５’−時刻ｔ１５’＋イベントＥ３３のＴＡＳＫ）×１×１＝１２：４２：０５＋（−５）＝１２：４２：００となる。
【０２２４】
算出した結果、イベントＥ１３の予定開始時刻は、時刻ｔ１５＝１２：４２：０５から、時刻ｔ１５’＝１２：４２：００に補正される。補正により、イベントＥ１３によるデバイス３０３の実行時間のアクティブ時間部分とイベントＥ３３によるデバイス３０３の実行時間のアイドル時間部分とが重なり、デバイス３０３の実行時間を纏めることができる。
【０２２５】
ここでは、携帯端末装置２００は、補正対象イベントの予定開始時刻に最も近い時刻に開始されるイベントを目標イベントに決定したが、補正対象イベントの予定開始時刻を含む所定の期間内の任意のイベントを目標イベントに決定してもよい。また、携帯端末装置２００は、補正対象イベントの予定開始時刻に近い時刻に開始される順にイベントを整列した場合に、所定の順位以内の任意のイベントを目標イベントに決定してもよい。
【０２２６】
また、ここでは、プロセスが発生させた新たなイベントを補正対象イベントとして採用したが、イベントリスト３０２に存在するイベントを採用してもよい。
【０２２７】
また、ここでは、携帯端末装置２００は、プロセス１〜３のそれぞれが実行するイベントの予定開始時刻を補正したが、予定開始時刻を補正されないイベントがあってもよい。例えば、プロセス２が実行するイベントは予定開始時刻を補正されないイベントであるとする。そして、プロセス２は、ポーリング間隔Ｔ２を常に保って、イベントを実行することにしてもよい。
【０２２８】
また、ＰＡＬとして、補正対象イベントを実行するプロセスの消費電力量の指標を採用したが、目標イベントを実行するプロセスの消費電力量の指標を採用してもよい。
【０２２９】
また、補正対象イベントを実行するプロセスの消費電力量の指標と目標イベントを実行するプロセスの消費電力量の指標とのうち、消費電力量の指標の値が大きい方を選択して採用してもよい。消費電力量の指標の値が大きい場合、すなわち消費電力量が小さい方を選択する理由は次のとおりである。
【０２３０】
プロセスの消費電力量が小さい場合、それに伴うデバイス３０３の消費電力量も小さくなる。大きい消費電力量となる実行時間と小さい消費電力量となる実行時間とが重なる場合、小さい消費電力量の分が、消費電力の最大の削減量となる。このように、消費電力の最大の削減量は小さい消費電力量の方に左右されるため、携帯端末装置２００は、消費電力量の指標の値が大きい方を選択することで、消費電力量の最大の削減量に基づいて補正対象イベントの予定開始時刻を補正することができる。
【０２３１】
このように、携帯端末２００は、複数のイベントによるデバイス３０３の実行時間を纏めて、デバイス３０３の実行時間を減少させることができ、消費電力を削減することができる。次に、図２３を用いて、補正によるデバイス３０３の実行時間の変化と消費電力の削減について説明する。
【０２３２】
図２３は、実施例２にかかるデバイス３０３の補正前の実行時間および補正後の実行時間を示す説明図である。なお、図２３において以下の前提条件が存在する。消費電力量の計算にあたって、デバイス３０３の低電力モードの消費電力を０［ｍＷ］と想定する。また、デバイス３０３は、プロセス１〜３が同時に使用できないデバイス３０３である。
【０２３３】
デバイス３０３の消費電力量は、デバイス３０３の消費電力×デバイス３０３の実行時間となる。なお、デバイス３０３の消費電力以外に、デバイス３０３に接続されるＩ／Ｆの消費電力も存在するが、図２３では、Ｉ／Ｆの消費電力をデバイス３０３の消費電力に含めて省略する。また、デバイス３０３は、デバイス３０３の実行時間が終了すると、低電力モードに遷移する。
【０２３４】
ここで、補正によるデバイス３０３の実行時間の変化と消費電力の削減について説明する。例えば、図２３において、符号２３０１に示す範囲では、携帯端末２００は、プロセス２によるデバイス３０３の実行時間とプロセス３によるデバイス３０３の実行時間とプロセス１によるデバイス３０３の実行時間とを纏め、デバイス３０３の実行時間を減少させた。
【０２３５】
符号２３０１に示す範囲では、補正前は、携帯端末装置２００は、プロセス２によるデバイス３０３の実行時間とプロセス３によるデバイス３０３の実行時間とプロセス１によるデバイス３０３の実行時間とについて、デバイス３０３において電力を消費していた。
【０２３６】
一方で、補正後は、携帯端末装置２００は、プロセス２およびプロセス３によるデバイス３０３のアクティブ時間と、プロセス１によるデバイス３０３の実行時間と、について、デバイス３０３において電力を消費するだけでよい。即ち、携帯端末装置２００は、プロセス２によるデバイス３０３のアイドル時間と、プロセス３によるデバイス３０３のアイドル時間と、についてのデバイス３０３における消費電力を削減することができる。
【０２３７】
また、図２３の全体での消費電力の削減量について説明する。例えば、デバイス３０３の単位時間当たりの消費電力を１［ｍＷ］とすると、デバイス３０３の消費電力は、１［ｍＷ］×（アクティブ時間の和＋アイドル時間の和）となる。よって、補正前のデバイス３０３の消費電力量は、１［ｍＷ］×（５［秒］×１０＋５［秒］×８）＝９０［ｍＷ秒］である。一方、補正後のデバイス３０３の消費電力量は、１［ｍＷ］×（５［秒］×１０＋５［秒］×５）＝７５［ｍＷ秒］となり、携帯端末装置２００は、消費電力量を１５［ｍＷ秒］削減できる。
【０２３８】
なお、実施例２におけるＯＳ３０１でおこなわれる予定開始時刻補正処理は、図１５および図１６に示した処理と同様であり、ステップＳ１５０９における補正の計算式を、上述した補正の計算式の例４〜７に置き換えればよい。そのため、詳細な説明を省略する。
【０２３９】
以上説明したように、情報処理装置、電力制御方法、および電力制御プログラムによれば、現在時刻以後で実行される複数のイベントの中の目標イベントの予定開始時刻との間隔が短くなるように、補正対象イベントの予定開始時刻を補正する。これにより、情報処理装置は、イベントの処理に伴って実行されるデバイス３０３の実行時間を纏めて、消費電力を削減することができる。
【０２４０】
また、情報処理装置は、複数のイベントの各々のイベントの予定開始時刻と補正対象イベントの予定開始時刻との差分を算出する。そして、情報処理装置は、複数のイベントの中から、算出された差分が最も小さいイベントを目標イベントに決定する。これにより、情報処理装置は、補正対象イベントの予定開始時刻の補正によって生じるポーリング間隔の変化を最小限にすることができる。
【０２４１】
また、情報処理装置は、複数のイベントの中から、算出された差分が所定の閾値以下のイベントを目標イベントに決定する。これにより、情報処理装置は、補正対象イベントの予定開始時刻と間隔が長い時刻に開始されるイベントを目標イベントから除外できる。このような場合は、消費電力の削減が期待できないため、補正をおこなわないようにできる。
【０２４２】
また、情報処理装置は、複数のイベントの中から、算出された差分が所定の閾値以上のイベントを目標イベントに決定する。これにより、情報処理装置は、補正対象イベントの予定開始時刻と間隔が短い時刻に開始されるイベントを目標イベントから除外できる。このため、情報処理装置は、目標イベントとなるイベントが補正対象イベントの近傍にしか存在しない場合に、補正をおこなわないようにできる。
【０２４３】
また、情報処理装置は、算出された差分群の昇順に複数のイベントを並べた場合の所定の順位以内のイベントのいずれかを目標イベントに決定する。これにより、情報処理装置は、予めイベントごとに所定の閾値を定めておかなくても目標イベントを決定できる。
【０２４４】
また、情報処理装置は、補正対象イベントの予定開始時刻を目標イベントの予定開始時刻に補正する。これにより、デバイス３０３が複数のプロセスによって同時に使用できる場合は、補正対象イベントと目標イベントとの処理がデバイス３０３を同時に使用するようになる。そのため、情報処理装置は、補正対象イベントおよび目標イベントによるデバイス３０３の実行時間の減少量を最大にすることができ、省電力化を図ることができる。
【０２４５】
また、デバイス３０３が複数のプロセスによって同時に使用できない場合は、補正対象イベントと目標イベントとの処理のうち一方のイベントがデバイス３０３を使用し、他方のイベントは一方のイベントの実行が終了するまで待つようになる。そのため、情報処理装置は、一方のイベントにより使用されたデバイス３０３がアイドル時間に移行する前に、他方のイベントを開始させることがでる。そして、情報処理装置は、デバイス３０３の実行時間を減少させ、省電力化を図ることができる。
【０２４６】
また、情報処理装置は、補正対象イベントの予定開始時刻を目標イベントの予定終了時刻に補正する。これにより、情報処理装置は、目標イベントにより使用されたデバイス３０３がアイドル時間に移行する前に、補正対象イベントを開始させることができる。そして、情報処理装置は、デバイス３０３の実行時間を減少させ、省電力化を図ることができる。
【０２４７】
また、情報処理装置は、補正対象イベントの予定開始時刻を補正することにより、補正対象イベントの予定終了時刻と目標イベントの予定開始時刻とを一致させる。これにより、情報処理装置は、補正対象イベントにより使用されたデバイス３０３がアイドル時間に移行する前に、目標イベントを開始させることができる。そして、情報処理装置は、デバイス３０３の実行時間を減少させ、省電力化を図ることができる。
【０２４８】
また、情報処理装置は、補正対象イベントの制約情報を順守する範囲内で、補正対象イベントの予定開始時刻を補正する。これにより、補正対象イベントを実行するアプリの仕様に反しない範囲でイベントを実行するため、アプリがユーザまたはアプリ制作者の予想しない動作をすることを防止できる。
【０２４９】
制約情報を順守する範囲内での補正では、情報処理装置は、補正対象イベントによるデバイス３０３の実行時間と目標イベントによるデバイス３０３の実行時間とを重ねることができない場合がある。この場合、情報処理装置は、補正対象イベントを実行したプロセスが、補正対象イベントの実行以降に実行するイベントを新たな補正対象イベントとして予定開始時刻を段階的に補正していく。これにより、最終的には、情報処理装置は、補正対象イベントによるデバイス３０３の実行時間を目標イベントによるデバイス３０３の実行時間に重ねて、消費電力を削減することができる。
【０２５０】
また、情報処理装置は、算出された差分と補正対象イベントと目標イベントのうちいずれか一方のイベントの消費電力量とに基づいて、補正対象イベントの予定開始時刻を補正してもよい。具体的には、情報処理装置は、いずれかのイベントの消費電力量が大きいほど、補正対象イベントと目標イベントの予定開始時刻の間隔が短くなるように補正する。これにより、情報処理装置は、消費電力に大きく影響を与えるアプリの消費電力を削減することができる。また、イベントの消費電力量が小さい場合、補正前のポーリング間隔を優先する。
【０２５１】
また、情報処理装置は、算出された差分と自装置の有する電力の残量とに基づいて、補正対象イベントの予定開始時刻を補正してもよい。具体的には、情報処理装置は、電力の残量が少ないほど、補正対象イベントの予定開始時刻と目標イベントの予定開始時刻の間隔が短くなるように、補正対象イベントの予定開始時刻を補正する。これにより、情報処理装置は、電力の残量が少ない場合、電力の消費を抑えることができる。また、電力の残量が多い場合、補正前のポーリング間隔を優先する。
【０２５２】
なお、本実施の形態で説明した電力制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本電力制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本電力制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２５３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２５４】
（付記１）現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する第１の検出手段と、
前記第１の検出手段によって検出された前記補正対象イベントとは異なる処理内容の前記現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出する第２の検出手段と、
前記第１の検出手段によって検出された前記補正対象イベントの予定開始時刻と、前記第２の検出手段によって検出された前記複数のイベントの各々のイベントの予定開始時刻と、の差分を算出する算出手段と、
前記算出手段によって算出された差分群に基づいて、前記複数のイベントの中から、前記補正対象イベントに対する目標イベントを決定する決定手段と、
前記補正対象イベントの予定開始時刻と前記決定手段によって決定された前記目標イベントの予定開始時刻との間隔が短くなるように、前記補正対象イベントの予定開始時刻を補正する補正手段と、
を備えることを特徴とする情報処理装置。
【０２５５】
（付記２）前記決定手段は、
前記複数のイベントのうち前記差分が最も小さいイベントを、前記目標イベントに決定することを特徴とする付記１に記載の情報処理装置。
【０２５６】
（付記３）前記決定手段は、
前記複数のイベントのうち前記差分が所定の閾値以下のイベントを、前記目標イベントに決定することを特徴とする付記１に記載の情報処理装置。
【０２５７】
（付記４）前記決定手段は、
前記複数のイベントのうち前記差分が所定の閾値以上のイベントを、前記目標イベントに決定することを特徴とする付記１に記載の情報処理装置。
【０２５８】
（付記５）前記決定手段は、
前記複数のイベントを前記差分の昇順に並べた場合の所定の順位以内のイベントを、前記目標イベントに決定することを特徴とする付記１に記載の情報処理装置。
【０２５９】
（付記６）前記補正手段は、
前記目標イベントによるデバイスの実行時間と前記補正対象イベントによる前記デバイスの実行時間とが重なるように、前記補正対象イベントの予定開始時刻を補正することを特徴とする付記１〜５のいずれか一つに記載の情報処理装置。
【０２６０】
（付記７）前記補正手段は、
前記補正対象イベントまたは前記目標イベントの消費電力量に基づいて、前記補正対象イベントの予定開始時刻を補正することを特徴とする付記１〜６のいずれか一つに記載の情報処理装置。
【０２６１】
（付記８）前記補正手段は、
自装置の有する電力の残量に基づいて、前記補正対象イベントの予定開始時刻を補正することを特徴とする付記１〜７のいずれか一つに記載の情報処理装置。
【０２６２】
（付記９）前記補正手段は、
前記補正対象イベントの制約情報を順守する範囲内で、前記補正対象イベントの予定開始時刻を補正することを特徴とする付記１〜８のいずれか一つに記載の情報処理装置。
【０２６３】
（付記１０）前記補正手段は、
前記補正対象イベントの予定開始時刻を前記目標イベントの予定開始時刻に補正することを特徴とする付記６〜９のいずれか一つに記載の情報処理装置。
【０２６４】
（付記１１）前記補正手段は、
前記目標イベントの予定開始時刻と前記目標イベントの予測処理時間とに基づいて、前記補正対象イベントの予定開始時刻を前記目標イベントの予定開始時刻に前記予測処理時間を加算した時刻に補正することを特徴とする付記６〜９のいずれか一つに記載の情報処理装置。
【０２６５】
（付記１２）前記補正手段は、
前記目標イベントの予定開始時刻と前記補正対象イベントの予測処理時間とに基づいて、前記補正対象イベントの予定開始時刻を前記目標イベントの予定開始時刻から前記予測処理時間を減算した時刻に補正することを特徴とする付記６〜９のいずれか一つに記載の情報処理装置。
【０２６６】
（付記１３）前記補正手段は、
前記決定手段によって目標イベントが決定されなかった場合、補正をおこなわないことを特徴とする付記１〜１２のいずれか一つに記載の情報処理装置。
【０２６７】
（付記１４）コンピュータが、
現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する第１の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントとは異なる処理内容の前記現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出する第２の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントの予定開始時刻と、前記第２の検出工程によって検出された前記複数のイベントの各々のイベントの予定開始時刻と、の差分を算出する算出工程と、
前記算出工程によって算出された差分群に基づいて、前記複数のイベントの中から、前記補正対象イベントに対する目標イベントを決定する決定工程と、
前記補正対象イベントの予定開始時刻と前記決定工程によって決定された前記目標イベントの予定開始時刻との間隔が短くなるように、前記補正対象イベントの予定開始時刻を補正する補正工程と、
を実行することを特徴とする電力制御方法。
【０２６８】
（付記１５）現在時刻以後に実行される補正対象イベントの予定開始時刻を検出する第１の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントとは異なる処理内容の前記現在時刻以後に実行される複数のイベントの各々のイベントの予定開始時刻を検出する第２の検出工程と、
前記第１の検出工程によって検出された前記補正対象イベントの予定開始時刻と、前記第２の検出工程によって検出された前記複数のイベントの各々のイベントの予定開始時刻と、の差分を算出する算出工程と、
前記算出工程によって算出された差分群に基づいて、前記複数のイベントの中から、前記補正対象イベントに対する目標イベントを決定する決定工程と、
前記補正対象イベントの予定開始時刻と前記決定工程によって決定された前記目標イベントの予定開始時刻との間隔が短くなるように、前記補正対象イベントの予定開始時刻を補正する補正工程と、
をコンピュータに実行させることを特徴とする電力制御プログラム。
【符号の説明】
【０２６９】
２０１  ＣＰＵ
２０６  メモリ
２１１  バス
３０１  ＯＳ
３０２  イベントリスト
３０３  デバイス
３１０  アプリ
３１１  ブラウザアプリ
３１４  メールアプリ
６０１  第１の検出部
６０２  第２の検出部
６０３  算出部
６０４  決定部
６０５  補正部
【図１】
0005614347.tif 000002
【図２】
0005614347.tif 000003
【図３】
0005614347.tif 000004
【図４】
0005614347.tif 000005
【図５】
0005614347.tif 000006
【図６】
0005614347.tif 000007
【図７】
0005614347.tif 000008
【図８】
0005614347.tif 000009
【図９】
0005614347.tif 000010
【図１０】
0005614347.tif 000011
【図１１】
0005614347.tif 000012
【図１２】
0005614347.tif 000013
【図１３】
0005614347.tif 000014
【図１４】
0005614347.tif 000015
【図１５】
0005614347.tif 000016
【図１６】
0005614347.tif 000017
【図１７】
0005614347.tif 000018
【図１８】
0005614347.tif 000019
【図１９】
0005614347.tif 000020
【図２０】
0005614347.tif 000021
【図２１】
0005614347.tif 000022
【図２２】
0005614347.tif 000023
【図２３】
0005614347.tif 000024