JP2014021628A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2014021628A
JP2014021628A JP2012158054A JP2012158054A JP2014021628A JP 2014021628 A JP2014021628 A JP 2014021628A JP 2012158054 A JP2012158054 A JP 2012158054A JP 2012158054 A JP2012158054 A JP 2012158054A JP 2014021628 A JP2014021628 A JP 2014021628A
Authority
JP
Japan
Prior art keywords
time
scheduled
scheduled time
information processing
execution
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.)
Pending
Application number
JP2012158054A
Other languages
English (en)
Inventor
Hitotsugu Kawasaki
仁嗣 川崎
Hiroshi Inamura
浩 稲村
Takeshi Kamiyama
剛 神山
Teppei Konishi
哲平 小西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2012158054A priority Critical patent/JP2014021628A/ja
Publication of JP2014021628A publication Critical patent/JP2014021628A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】情報処理装置の状態が遷移するときに実行される処理による負荷のピークを小さくすること。
【解決手段】情報処理装置は、第1の予定時刻(Td1及びTd2)を挟まずに連続する第2の予定時刻Ta1、Tb1、Tc1及び分散条件に基づいて第3の予定時刻Te1を決定する。第3の予定時刻は、自装置を第1及び第2の処理を実行する実行状態に遷移させる第3の処理の実行を予定する時刻である。情報処理装置は、第2の予定時刻になったときに自装置が実行状態でなければ、次に実行状態に遷移したときに第2の処理を実行する。情報処理装置は、指定時刻t3になったときに第3の処理を実行し、自装置を実行状態に遷移させることで第2の処理A及びCを実行する。これにより、第1の予定時刻Td2に集中して実行される予定であった処理が、第3の予定時刻Te1と第1の予定時刻Td2とに分散して実行される。
【選択図】図9

Description

本発明は、処理の実行を予定する時刻を決定するための技術に関する。
情報処理装置において、処理の実行を予定する時刻を予め決定しておき、その時刻になったときに処理を実行する技術がある。特許文献1には、周期的に行われる複数の処理がある場合、他の処理が実行される時刻との最小時間差が最大になるように指定した時刻に処理を実行する技術が記載されている。特許文献2には、タイムアウト時刻が指定されていても、省電力状態の間は処理の実行を保留し、省電力状態から通常状態への復帰時に処理を実行する技術が記載されている。
特表2011−529239号公報 特開2012−3691号公報
特許文献2の技術のように、処理の実行を保留して、自装置の状態が遷移するタイミング(この技術の場合省電力状態から通常状態へ復帰するタイミング)にその処理を実行する場合、そのタイミングに実行を保留された処理が集中して実行されることになり、情報処理装置の処理の負荷の最大値(つまりピーク)が大きくなってしまう。
そこで、本発明は、情報処理装置の状態が遷移するときに実行される処理による負荷のピークを小さくすることを目的とする。
上記課題を達成するために、本発明は、第1の処理の実行が予定されている第1の予定時刻と、第2の処理の実行が予定されている複数の第2の予定時刻とを記憶する記憶手段と、前記第1及び前記第2の処理が実行されない非実行状態から当該第1及び当該第2の処理が実行され得る実行状態に自装置の状態を遷移させる遷移手段と、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻の集合が所定の条件を充足する場合に、当該集合に含まれる前記第2の予定時刻のうち或る時刻から前の当該第2の予定時刻の集合が前記条件を充足しないときの当該或る時刻を、前記遷移手段に前記遷移を行わせる第3の処理の実行を予定する第3の予定時刻として決定する決定手段と、前記記憶手段に記憶されている第1の予定時刻になったときに自装置が前記非実行状態である場合には、前記遷移手段に前記遷移を行わせてから前記第1の処理を実行し、前記記憶手段に記憶されている第2の予定時刻になったときに自装置が前記非実行状態である場合には、次に前記遷移手段に前記遷移を行わせたときに前記第2の処理を実行し、前記決定手段により決定された第3の予定時刻になったときに自装置が前記非実行状態である場合には、前記第3の処理を実行する実行手段とを備えることを特徴とする情報処理装置を提供する。
また、前記決定手段は、前記集合に含まれる前記第2の予定時刻の数が閾値よりも多い場合に充足されるものを前記条件として、前記第3の予定時刻を決定してもよい。
さらに、前記決定手段は、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻のうち、通信を行う前記第2の処理の実行を予定するものの集合が前記条件を充足しない場合に、当該集合に基づいて前記第3の予定時刻を決定してもよい。
また、前記実行手段により前記第2の処理が実行された際の当該第2の処理による通信の履歴を蓄積する蓄積手段を備え、前記決定手段は、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻のうち、前記蓄積手段に通信の履歴が蓄積されている前記第2の処理の実行を予定するものの集合が前記条件を充足しない場合に、当該集合に基づいて前記第3の予定時刻を決定してもよい。
さらに、前記決定手段により決定された第3の予定時刻になるよりも前に前記遷移手段により前記遷移が行われた場合に当該第3の予定時刻を取り消す取消手段を備え、前記実行手段は、前記取消手段により前記第3の予定時刻が取り消された場合、当該第3の予定時刻になっても前記第3の処理を実行しないようにしてもよい。
また、前記決定手段は、複数の前記第2の処理が各々の周期で実行される場合に、当該周期の最大公約数の整数倍となる時間の間隔で訪れる時刻を前記第3の予定時刻として決定してもよい。
さらに、前記決定手段は、複数の前記第2の処理が各々の周期で実行される場合に、当該周期の公倍数となる時間の間隔で訪れる時刻を前記第3の予定時刻として決定してもよい。
また、前記決定手段により決定された第3の予定時刻から始まる所定の期間に前記第2の処理の実行が予定されている場合には、当該第2の処理の実行が予定されている時刻に前記第3の予定時刻を変更する第1変更手段を備えていてもよい。
さらに、前記決定手段により決定された第3の予定時刻から始まる所定の期間に含まれる時刻から乱数に基づいて選出した時刻、または、当該期間に含まれ、且つ、自装置が起動した時刻を起点として所定の時間の間隔で訪れる時刻に前記第3の予定時刻を変更する第2変更手段を備えていてもよい。
また、外部装置と通信する通信手段を備え、前記決定手段は、前記通信手段を介した通信による前記外部装置からの指示に基づいて、前記条件を変更してもよい。
本発明は、第1の処理の実行が予定されている第1の予定時刻と、第2の処理の実行が予定されている複数の第2の予定時刻とを記憶する記憶手段と、前記第1及び前記第2の処理が実行されない非実行状態から当該第1及び当該第2の処理が実行され得る実行状態に自装置の状態を遷移させる遷移手段とを備える情報処理装置が、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻の集合が所定の条件を充足する場合に、当該集合に含まれる前記第2の予定時刻のうち或る時刻から前の当該第2の予定時刻の集合が前記条件を充足しないときの当該或る時刻を、前記遷移手段に前記遷移を行わせる第3の処理の実行を予定する第3の予定時刻として決定する決定ステップと、前記情報処理装置が、前記記憶手段に記憶される第1の予定時刻になったときに自装置が前記非実行状態である場合には、前記遷移手段に前記遷移を行わせてから前記第1の処理を実行し、前記記憶手段に記憶される第2の予定時刻になったときに自装置が前記非実行状態である場合には、次に前記遷移手段に前記遷移を行わせたときに前記第2の処理を実行し、前記決定ステップにおいて決定された第3の予定時刻になったときに自装置が前記非実行状態である場合には、前記第3の処理を実行する実行ステップとを備えることを特徴とする情報処理方法を提供する。
本発明は、第1の処理の実行が予定されている第1の予定時刻と、第2の処理の実行が予定されている複数の第2の予定時刻とを記憶する記憶手段と、前記第1及び前記第2の処理が実行されない非実行状態から当該第1及び当該第2の処理が実行され得る実行状態に自装置の状態を遷移させる遷移手段とを備える情報処理装置のコンピュータに、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻の集合が所定の条件を充足する場合に、当該集合に含まれる前記第2の予定時刻のうち或る時刻から前の当該第2の予定時刻の集合が前記条件を充足しないときの当該或る時刻を、前記遷移手段に前記遷移を行わせる第3の処理の実行を予定する第3の予定時刻として決定する決定ステップと、前記記憶手段に記憶される第1の予定時刻になったときに自装置が前記非実行状態である場合には、前記遷移手段に前記遷移を行わせてから前記第1の処理を実行し、前記記憶手段に記憶される第2の予定時刻になったときに自装置が前記非実行状態である場合には、次に前記遷移手段に前記遷移を行わせたときに前記第2の処理を実行し、前記決定ステップにおいて決定された第3の予定時刻になったときに自装置が前記非実行状態である場合には、前記第3の処理を実行する実行ステップとを実行させるためのプログラムを提供する。
本発明によれば、情報処理装置の状態が遷移するときに実行される処理による負荷のピークを小さくすることができる。
情報処理システムの全体構成を示す図である。 情報処理装置のハードウェア構成を示すブロック図である。 情報処理装置が実現する機能構成を示すブロック図である。 予定時刻として記憶されている指定時刻の一例を示す図である。 第1の実行処理で行われる動作の一例を示すフローチャートである。 第2の実行処理で行われる動作の一例を示すフローチャートである。 第3の実行処理で行われる動作の一例を示すフローチャートである。 分散処理で行われる動作の一例を示すフローチャートである。 各予定時刻処理が実行されるタイミングを説明するための図である。 分散処理が実行されるタイミングを説明するための図である。 変形例1における機能構成を示すブロック図である。 変形例4における機能構成を示すブロック図である。 変形例7で決定される第3の予定時刻を説明するための図である。 変形例8で決定される第3の予定時刻を説明するための図である。 変形例9における機能構成を示すブロック図である。 変形例9で決定される第3の予定時刻を説明するための図である。 変形例14における機能構成を示すブロック図である。 変形例14で決定される第3の予定時刻を説明するための図である。 変形例15における機能構成を示すブロック図である。 サーバ装置のハードウェア構成を示すブロック図である。 サーバ装置が実現する機能構成を示すブロック図である。
[実施形態]
以下、本発明の実施形態における情報処理システムについて説明する。
[構成]
図1は、情報処理システム1の全体構成を示す図である。情報処理システム1は、情報処理装置10と、ネットワーク2と、サーバ装置20とを具備する。
情報処理装置10は、CPU(Central Processing Unit)を備えて情報を処理する装置である。情報処理装置10は、移動体通信や無線LANの規格などに基づいて無線通信を行う。ネットワーク2は、移動体通信網及びインターネット等を含む通信回線である。ネットワーク2には、サーバ装置20が接続されており、また、情報処理装置10が無線通信を行っているときにはその情報処理装置10も接続される。サーバ装置20は、ネットワーク2を介して、情報処理装置10と通信を行う装置である。
図2は、情報処理装置10のハードウェア構成を示すブロック図である。情報処理装置10は、制御装置11と、音声入出力装置12と、通信装置13と、操作装置14と、表示装置15と、記憶装置16とを備える。
制御装置11は、CPU、ROM(Read Only Memory)、RAM(Random Access Memory)を有するマイクロプロセッサとリアルタイムクロックとを備えている。CPUは、RAMをワークエリアとして用いてROMや記憶装置16に記憶されたプログラムを実行することによって、情報処理装置10が備える各装置の動作を制御する。このように、制御装置11は、情報処理装置10を制御するコンピュータである。リアルタイムクロックは、現在の日時を算出する機能を有している。音声入出力装置12は、スピーカ、マイクロホン及び音声処理回路等を有し、通話などの音声の入出力を行う。
通信装置13は、信号の発信及び受信を行うアンテナと、移動体通信及び無線LANの規格に基づいて無線通信を行うための通信回路とを備え、ネットワーク2を介してサーバ装置20と通信を行う通信手段である。通信装置13は、制御装置11とデータをやり取りし、制御装置11は、通信装置13を介してサーバ装置20とデータをやり取りする。操作装置14は、例えば表示装置15に重ねて設けられたタッチスクリーンと物理キーとを有し、ユーザの操作に応じた操作信号を制御装置11に供給する。制御装置11は、この操作信号に応じた処理を行う。表示装置15は、表示面を有するLCD(Liquid Crystal Display)などの表示手段であり、制御装置11からの指示に応じて、記憶装置16に記憶されているデータが示す画像などを表示面に表示する。
記憶装置16は、例えばEEPROM(Electronically Erasable and Programmable ROM)やフラッシュメモリなどの記憶手段であり、制御装置11が制御に用いるデータやプログラムなどを記憶している。また、記憶装置16は、情報処理装置10において用いられる閾値などの定められた数値を示すデータを記憶している。
なお、記憶装置16は、リムーバブルメディア等の着脱可能な記憶手段を含んでもよいし、UIM(User Identity Module)カードやSIM(Subscriber Identity Module)カードのような、ユーザ(又は情報処理装置10)を識別するためのデータが記録された記憶手段を含んでもよい。また、このユーザ(又は情報処理装置10)を識別するためのデータが外部サーバに記憶されていて、情報処理装置10がこれを通信により取得する構成であってもよい。
以上の構成を有する情報処理装置10は、例えばスマートフォンであるが、携帯電話端末やタブレット端末、パーソナルコンピュータ、PDA(Personal Digital Assistant)等の、複数のプログラムを実行する情報処理装置であればよい。また情報処理装置10は、上記構成以外にも、所定時間継続してユーザの操作が行われなかった場合に省電力モードに移行する機能を実現するための構成等、汎用のスマートフォンと同等の構成を有している。情報処理装置10が省電力モードであるときには、表示装置15の表示領域は消灯された状態となるが、その状態においても制御装置11は処理を実行する稼働状態であってもよい。また、情報処理装置10は、バイブレータや情報処理装置10の傾きを検出するための加速度センサなどを備えてもよい。
情報処理装置10は、上述したハードウェア構成に基づき、例えば、決められた時間の間隔で(つまり定期的に)サーバ装置20と通信を行って所定の情報を取得する処理や、1日のうちの決められた時刻に所定の計算を行ってその結果を蓄積する処理などを実行する。これらの処理は、予め予定された時刻(すなわち、決められた時間の間隔で訪れる時刻や1日のうちの決められた時刻のことであり、以下では「予定時刻」という。)となったときに情報処理装置10によって実行される処理であり、以下では「予定時刻処理」という。
情報処理装置10は、予定時刻になったとき、自装置が所定の状態となっている場合に予定時刻処理を実行する。その所定の状態とは、制御装置11がいかなる処理をも実行し得る状態のことであり、以下ではこの状態を「実行状態」という。つまり、実行状態は、予定時刻処理が実行され得る状態である。一方、情報処理装置10は、制御装置11が実行する処理を制限する状態となることがある。この状態では予定時刻処理も実行されないようになっており、以下ではこの状態を「非実行状態」という。非実行状態とは、本実施形態においては、情報処理装置10が、消費する電力を少なくするため、実行する処理を制限している状態(いわゆる省電力状態)のことである。つまり、情報処理装置10は、非実行状態である期間に比べて実行状態である期間の方が消費する電力が多くなる。非実行状態では、制御装置11は、自装置を非実行状態から実行状態に遷移させるための処理と、その他決められた最低限の処理以外は実行しない。以下では、非実行状態から実行状態に遷移させることを「実行状態遷移」といい、実行状態遷移のための理を「遷移処理」という。
情報処理装置10は、予定時刻になったときに自装置が非実行状態となっている場合、2通りの方法で予定時刻処理を実行する。1つ目の方法として、情報処理装置10は、実行状態遷移を行ってから予定時刻処理を実行する。2つ目の方法として、情報処理装置10は、自装置が次に実行状態遷移を行ったときに予定時刻処理を実行する。情報処理装置10においては、実行される予定時刻処理毎に、これら2つの方法のうちのどちらの方法で実行されるかということが予め決められている。以下では、1つ目の方法で実行される予定時刻処理のことを「第1の処理」といい、2つ目の方法で実行される予定時刻処理のことを「第2の処理」という。また、第1の処理の実行が予定されている予定時刻のことを「第1の予定時刻」といい、第2の処理の実行が予定されている予定時刻のことを「第2の予定時刻」という。
情報処理装置10においては、第1の予定時刻に実行状態遷移が行われることで、それまで実行されていなかった第2の処理が集中して実行されることになる。情報処理装置10は、そのように集中して実行される第2の処理を分散させるための処理(以下「分散処理」という。)を行う。情報処理装置10は、この分散処理と、上述した各予定時刻処理及び遷移処理とをそれぞれ実行するための複数のプログラムを記憶装置16に記憶している。制御装置11がこれらのプログラムを実行して図2に示す各装置を制御することで、図3に示す機能が実現される。
図3は、情報処理装置10が実現する機能構成を示すブロック図である。情報処理装置10は、記憶部101と、遷移部102と、決定部103と、実行部104とを備える。
記憶部101は、前述した第1の予定時刻(すなわち第1の処理の実行が予定されている時刻)及び第2の予定時刻(すなわち第2の処理の実行が予定されている時刻)を記憶する記憶手段である。記憶部101は、例えば、制御装置11、操作装置14及び記憶装置16が協働して実現する機能である。記憶部101は、具体的には、次の方法でこれらの予定時刻を記憶する。
制御装置11には、ユーザにより操作された操作装置14から操作信号が供給される。制御装置11は、この操作信号に基づき、例えば上述したサーバ装置20から所定の情報を取得する予定時刻処理における決められた時間の間隔(すなわち周期)及び最初にその処理を実行する時刻(以下「開始時刻」という。)を設定する。制御装置11は、このように設定した周期及び開始時刻に基づいて、この予定時刻処理の予定時刻として指定する時刻(以下「指定時刻」という。)を所定の期間分(例えば1ヶ月分)だけ算出する。記憶装置16には、各予定時刻処理を識別する情報(以下「処理識別情報」という。例えばその予定時刻処理に対応付けられた符号。)と第1及び第2の処理をそれぞれ示す2種類のフラグ(例えば「1」及び「2」という値。)とを対応付けたテーブルが予め記憶されている。制御装置11は、このテーブルに基づき、指定時刻を算出した予定時刻処理が第1及び第2の処理のどちらに対応付けられているかを判断し、判断した方の予定時刻としてその指定時刻を記憶装置16に記憶させる。制御装置11は、以上のように予定時刻を記憶させる動作を、所定の時間(例えば1日)の間隔で繰り返し実行する。制御装置11は、他の予定時刻処理についても上記と同様に算出した指定時刻を第1の予定時刻または第2の予定時刻として記憶装置16に記憶させる。
なお、上述した周期及び開始時刻は、ユーザの操作によって設定するものに限らず、予定時刻処理のプログラムのパラメータとして予めROMまたは記憶装置16に記憶されているものが用いられてもよい。また、制御装置11は、周期及び開始時刻に基づいて算出した予定時刻を記憶装置16に記憶させるのではなく、ユーザの操作により供給される操作信号が予定時刻自体を表す場合に、その予定時刻を記憶させたり、通信装置13を介して送信されてくるデータが示す予定時刻を記憶させたりしてもよい(この場合の記憶部101は、上記各装置に加えて通信装置13も協働して実現する機能となる)。これらの場合に記憶される予定時刻は、所定の周期で訪れる時刻に限らず、不定期に訪れる時刻や、ある時期(例えば平日または休日)にだけ訪れる時刻、1度だけ訪れる時刻などであってもよい。
以上のとおり、記憶部101は、第1及び第2の予定時刻を記憶する。記憶部101が記憶するこれらの予定時刻は、具体的には前述した指定時刻である。この指定時刻は、その時刻となるまでは予定時刻であるが、その時刻が過ぎると予定時刻ではなくなる。記憶部101は、決定部103及び実行部104から要求されると、記憶している第1及び第2の予定時刻をこれらの各部に通知する。このとき通知される予定時刻は、記憶装置16に記憶されている指定時刻のうち、現在時刻以降の指定時刻である。
遷移部102は、上述した実行状態遷移を行う遷移手段である。詳細には、遷移部102は、非実行状態、すなわち第1及び第2の処理が実行されない状態から実行状態、すなわち第1及び第2の処理が実行される状態に自装置の状態を遷移させる。つまり、遷移部102は、上述した遷移処理を行うものであり、制御装置11が図2に示す各装置を制御することで実現される機能である。遷移部102は、具体的には、次の方法で自装置の状態を遷移させる。
制御装置11は、非実行状態(本実施形態では省電力状態のこと)では、表示装置15が画像を表示しないように制御し、記憶装置16、音声入出力装置12及び通信装置13がそれぞれ動作しないように制御する。また、制御装置11は、操作装置14が備える操作子のうち、一部の操作子(例えば所定のキー)を除く操作子が操作されても、例えばタッチセンサに電力を供給しないようにして、その操作を受け付けないように制御する。
制御装置11は、このように各部を制御している状態(つまり非実行状態)から、遷移処理を実行して、表示装置15に画像を表示させ、且つ、例えばタッチセンサに電力を供給するようにして、操作装置14のいずれの操作子が操作されてもその操作を受け付けるようにする。また、制御装置11は、操作装置14が操作されたり、予定時刻になったりした場合には、各部を制御して、その操作により供給される操作信号に応じた処理またはその予定時刻に応じた予定時刻処理を実行する。以上のとおり、遷移部102は、自装置の状態を遷移させる。遷移部102は、例えば、操作装置14が備える操作子のうち、前述した一部の操作子が操作された場合に、その操作により操作装置14から供給される操作信号に応じて遷移処理を実行する。
決定部103は、第3の処理の実行が予定されている第3の予定時刻を決定する決定手段である。第3の処理とは、予定時刻処理の1つであり、具体的には、遷移部102に前述した遷移を行わせる処理である。決定部103は、制御装置11及び記憶装置16が協働して実現する機能であり、詳細には次の方法で第3の予定時刻を決定する。
制御装置11は、記憶部101に要求し、記憶されている指定時刻のうち、現在時刻よりもあとのものを第1及び第2の予定時刻として取得する。制御装置11は、取得した複数の第2の予定時刻から、所定の抽出条件を充足する第2の予定時刻の集合を抽出する。本実施形態においては、第1の予定時刻を挟まずに連続する第2の予定時刻の集合であることと、そのような集合が複数ある場合には現在時刻に最も近い集合であることとが抽出条件として定められている。この場合、制御装置11は、次に訪れる第1の予定時刻を特定し、特定した第1の予定時刻よりも早い第2の予定時刻を抽出する。これにより、抽出条件を充足する第2の予定時刻の集合が抽出されることになる。
制御装置11は、抽出した第2の予定時刻の集合が所定の条件を充足するか否かを判断する。この条件は、後述するように第2の処理が実行される時刻を分散させるための条件であり、以下では「分散条件」という。分散条件は、本発明に係る所定の条件の一例である。本実施形態においては、集合に含まれる第2の予定時刻の数が閾値(以下「分散閾値」という。)よりも多いことが分散条件として定められている。制御装置11は、抽出した集合が分散条件を充足する場合に、その集合に含まれる第2の予定時刻のうち或る時刻から前の第2の予定時刻の集合が分散条件を充足しないときの前述した或る時刻(以下「非充足時刻」という。)を、第3の予定時刻として決定する。以上のようにして、決定部103は、第3の予定時刻を決定する。この決定の方法について、図を参照しながら説明する。
図4は、予定時刻として記憶されている指定時刻の一例を示す図である。この図に示す「指定時刻」である「t1」、「t2」、「t3」、「t4」及び「t5」は、番号が大きいほど未来の時刻を示している。この例では、「第2の処理A」の第2の予定時刻Ta1として指定時刻t2が記憶され、「第2の処理B」の第2の予定時刻Tb1として指定時刻t4が記憶されている。また、「第2の処理C」の第2の予定時刻Tc1として指定時刻t3が記憶され、「第1の処理D」の第1の予定時刻Td1及びTd2として指定時刻t1及びt5がそれぞれ記憶されている。図4(a)に示すA1は、現在時刻がt1である場合に決定部103が抽出する集合を示している。決定部103は、第1の予定時刻を挟まずに連続する第2の予定時刻Ta1、Tc1及びTb1の集合A1を、上記の抽出条件を充足する集合として抽出する。指定時刻t5以降にも、第1の予定時刻を挟まずに連続する第2の予定時刻の集合は存在するが、本実施形態では、現在時刻に最も近い集合である集合A1が抽出される。
この例では、分散閾値が2であるものとする。決定部103は、集合A1に含まれる第2の予定時刻の数(この場合は3)が分散閾値(同じく2)よりも多いため、分散条件が充足されていると判断する。決定部103は、非充足時刻の候補として、或る時刻を選出する。決定部103は、例えば、A1に含まれる第2の予定時刻のうち最も早いもの(この場合Ta1)から最も遅いもの(この場合Tb1)までの期間内の時刻から或る時刻を選出する。例えば、決定部103は、時刻t3を選出する。決定部103は、集合A1に含まれる第2の予定時刻のうち、選出した時刻t3から前の第2の予定時刻であるTa1及びTc1の集合A11が分散条件を充足するか否かを判断する。この場合、集合A11に含まれる第2の予定時刻の数(この場合は2)が分散閾値(同じく2)以下であるため、決定部103は、分散条件が充足されていないと判断する。この例では、時刻t1(つまり現在時刻)よりもあとで時刻t4よりも前の時刻であれば、このように分散条件が充足されていない時刻、すなわち非充足時刻として判断されることになる。本実施形態では、決定部103は、それらの非充足時刻のうち、最も後の(最も未来の)第2の予定時刻と一致するものを、第3の予定時刻として決定する。この場合は、決定部103は、第2の予定時刻Tc1として記憶されている指定時刻t3を、第3の予定時刻Te1として決定する。決定部103は、このようにして決定した第3の予定時刻を記憶部101に通知して記憶させる。これにより、記憶部101は、第1及び第2の予定時刻に加え、第3の予定時刻も記憶する。
実行部104は、記憶部101に要求して通知された第1、第2及び第3の予定時刻に基づいて、上述した第1、第2及び第3の処理をそれぞれ実行する実行手段である。実行部104は、記憶部101に記憶されている第1の予定時刻になったときに自装置が非実行状態である場合には、遷移部102に前述した遷移を行わせてから第1の処理を実行する。また、実行部104は、記憶部101に記憶されている第2の予定時刻になったときに自装置が非実行状態である場合には、その時点では第2の処理を実行せずに、次に遷移部102に前述した遷移を行わせたときに第2の処理を実行する。また、実行部104は、記憶部101に記憶されている第3の予定時刻になったときに自装置が非実行状態である場合には、遷移部102に前述した遷移を行わせるという第3の処理を実行する。実行部104は、制御装置11が図2に示す各装置を制御することで実現される機能である。実行部104は、具体的には、次の方法で各処理を実行する。
制御装置11は、第1及び第2の処理を実行する場合、記憶装置16に記憶されているそれらの予定時刻処理を実行するためのプログラムを実行し、それらのプログラムに応じた各部を制御する。例えば、制御装置11は、サーバ装置20と通信を行って所定の情報を取得する上述した処理を実行する場合は、通信装置13を制御してサーバ装置20と通信を行い、記憶装置16を制御して取得した情報を記憶させる。また、制御装置11は、所定の計算を行ってその結果を蓄積する上述した処理を行う場合は、記憶装置16に記憶されているその計算に必要な値を参照し、参照した値を用いて計算した結果を記憶装置16に記憶させることでその結果を蓄積する。
記憶装置16には、第3の処理を実行するためのプログラムも記憶されている。制御装置11は、第3の予定時刻になったときに、記憶装置16に記憶されているこのプログラムを実行し、自装置が非実行状態であるか否かを判断する。制御装置11は、ここで非実行状態であるという判断をした場合に、遷移部102に前述した遷移を行わせる第3の処理を実行する。以上のとおり、実行部104は、第1、第2及び第3の処理をそれぞれ実行する。実行部104は、第1及び第2の処理を実行し終えたときに、その旨を決定部103に通知する。
[動作]
以上の構成に基づき、情報処理装置10は、第1の処理を実行するための第1の実行処理と、第2の処理を実行するための第2の実行処理と、第3の処理を実行するための第3の実行処理と、上述した分散処理とを行う。これらの処理は、情報処理装置10の電源が投入され、第1の処理、第2の処理、第3の処理及び分散処理を実行するためのプログラムの制御装置11による実行が開始されて以降、それぞれ並行して繰り返し行われる。以下、図5から図8を参照して、これらの処理において情報処理装置10が行う動作について説明する。
図5は、第1の実行処理で情報処理装置10が行う動作の一例を示すフローチャートである。まず、情報処理装置10は、現在時刻が第1の予定時刻になったか否かを判断する(ステップS11)。情報処理装置10は、第1の予定時刻になっていないと判断した場合には(ステップS11:NO)、所定の時間(例えば0.1秒)が経過したあとにステップS11の動作を再び行う。なお、情報処理装置10は、この所定の時間が経過するとタイムアウトするタイマーを用いて、このタイマーがタイムアウトする度にステップS11の動作を行ってもよい。情報処理装置10は、第1の予定時刻になったと判断した場合には(ステップS11:YES)、自装置が非実行状態であるか否かを判断する(ステップS12)。情報処理装置10は、ステップS12において非実行状態である(YES)と判断した場合、自装置を実行状態に遷移させてから(ステップS13)、第1の処理を実行する(ステップS14)。一方、情報処理装置10は、ステップS12において非実行状態ではない(NO)と判断した場合、すなわち、自装置が実行状態であると判断した場合には、ステップS14に進んで第1の処理を実行する。ステップS11からS14までは、図3に示す遷移部102及び実行部104が行う動作である。情報処理装置10は、第1の処理を実行すると、第1の実行処理を終了する。
図6は、第2の実行処理で情報処理装置10が行う動作の一例を示すフローチャートである。まず、情報処理装置10は、現在時刻が第2の予定時刻になったか否かを判断する(ステップS21)。情報処理装置10は、第2の予定時刻になっていないと判断した場合には(ステップS21:NO)、所定の時間(例えば0.1秒)が経過したあとにステップS21の動作を再び行う。なお、情報処理装置10は、図5に示すステップS11と同様に、この所定の時間が経過するとタイムアウトするタイマーを用いて、このタイマーがタイムアウトする度にステップS21の動作を行ってもよい。情報処理装置10は、第2の予定時刻になったと判断した場合には(ステップS21:YES)、自装置が実行状態であるか否かを判断する(ステップS22)。情報処理装置10は、ステップS22において実行状態でない(NO)と判断した場合は、所定の時間(例えば0.1秒)が経過したあとにステップS22の動作を再び行う。情報処理装置10は、こうして自装置が実行状態になるまで、ステップS22の動作を繰り返し行う。情報処理装置10は、ステップS22において実行状態である(YES)と判断した場合は、第2の処理を実行し(ステップS22)、第2の実行処理を終了する。ステップS21、S22及びS23は、実行部104が行う動作である。
図7は、第3の実行処理で情報処理装置10が行う動作の一例を示すフローチャートである。情報処理装置10は、ステップS31、S32及びS33の動作を、図5に示すステップS11、S12及びS13と同様に、第1の予定時刻を第3の予定時刻に代えて行う。情報処理装置10は、ステップS32において自装置が非実行状態でない(NO)と判断した場合、そのまま第3の実行処理を終了する。また、情報処理装置10は、ステップS33において自装置を実行状態に遷移したあと、すなわち、第3の処理を実行したあとも、第3の実行処理を終了する。ステップS31、S32及びS33は、遷移部102及び実行部104が行う動作である。
図8は、分散処理で情報処理装置10が行う動作の一例を示すフローチャートである。情報処理装置10は、分散処理を、予定時刻処理を実行し終わったときに行い、複数の予定時刻処理を集中して実行している場合は、最後の予定時刻処理を実行し終わったときに分散処理を行う。まず、情報処理装置10は、自装置が記憶している指定時刻のうち、現在時刻以降の指定時刻、すなわち、第1及び第2の予定時刻を取得する(ステップS41)。次に、情報処理装置10は、取得した第1の予定時刻の中から、次に訪れる第1の予定時刻を特定し(ステップS42)、特定した第1の予定時刻よりも前に連続する第2の予定時刻の集合を抽出する(ステップS43)。続いて、情報処理装置10は、抽出した第2の予定時刻の集合が上述した分散条件を充足するか否かを判断する(ステップS44)。本実施形態では、情報処理装置10は、抽出した集合に含まれる第2の予定時刻の数が所定の数(例えば1つ)を超えているか否かを、分散条件として判断する。情報処理装置10は、ステップS44において超えている(YES)と判断した場合、第3の予定時刻を決定する(ステップS45)。一方、情報処理装置10は、ステップS44において超えていない(NO)と判断した場合、第3の予定時刻を決定せずに、分散処理を終了する。ステップS41からS45までは、図3に示す決定部103が行う動作である。つまり、分散処理は、決定部103により実行される処理であり、決定部103は、実行部104が予定時刻処理(第1及び第2の処理)を実行し終えたときにこの分散処理を実行する。
情報処理装置10が上記の第1の処理、第2の処理、第3の処理及び分散処理を実行した場合に各処理が実行されるタイミングについて説明する。
図9は、各予定時刻処理が実行されるタイミングを説明するための図である。図9では、図4に示す各予定時刻が記憶されている場合を例に説明する。第1及び第2の処理を行い、第3の処理を行わない情報処理装置(これを従来装置という。)は、各予定時刻処理を図9(a)に示すように実行する。従来装置は、第1の予定時刻Td1(すなわち指定時刻t1)になった場合に、自装置を実行状態に遷移させ、第1の処理Dを実行する。図9の例では、情報処理装置が実行状態となっている期間(以下「実行状態期間」という。)であるJ1及びJ2を矢印で示している。実行状態期間J1は、指定時刻t1に始まり、指定時刻t2よりも前に終了している。そのあと、第1の予定時刻Td2に遷移処理が行われるまで(実行状態期間J2が始まるまで)、実行状態期間がない。
従来装置は、第2の予定時刻Ta1、Tc1及びTb1となったときに、いずれも自装置が実行状態となっていないため、第2の処理A、C及びBをこれらの予定時刻には実行しない。従来装置は、第1の予定時刻Td2になって遷移処理を行ったときに、第1の処理Dとともに、第2の処理A、C及びBを実行する。図9では、予定時刻処理が実行されなかった予定時刻(例えばTa1、Tc1及びTb1)を二点鎖線で示し、実際に予定時刻処理が実行された時刻(以下「実行時刻」という。)を実線で示している。図9(a)では、予定時刻Ta1、Tb1、Tc1、Td1及びTd2に実行が予定されていた予定実行処理の実行時刻Ua1、Ub1、Uc1、Ud1及びUd2が示されている。この例では、指定時刻t1が実行時刻Ud1となり、それ以外の4つの実行時刻Ua1、Ub1、Uc1及びUd2は、いずれも指定時刻t5に集中している。
一方、情報処理装置10は、第1の予定時刻Td1に第1の処理Dを実行し、この処理を終了したあと、図8で述べたように分散処理を実行し、図4で述べたように第3の予定時刻Te1を決定する。情報処理装置10は、第2の予定時刻Ta1(指定時刻t2)となったときには、自装置が実行状態となっていないため第2の処理Aを実行しない。情報処理装置10は、そのあと第3の予定時刻Te1(指定時刻t3)となったときに、自装置を実行状態へ遷移させるという第3の処理を実行し、それとともに第2の予定時刻Ta1及びTc1に実行が予定されていた第2の処理A及びCを実行する。情報処理装置10は、これらの処理を終了したあと、分散処理を実行するが、この場合は抽出した集合(第2の予定時刻Tb1だけを含む集合)が分散条件を充足しない(第2の予定時刻の数が閾値以下である)ため、第3の予定時刻を決定しない。この例では、第3の予定時刻Te1から期間J3が始まり、指定時刻t4となる前に終了する。情報処理装置10は、第2の予定時刻Tb1(指定時刻t4)となったときには、自装置が実行状態となっていないため第2の処理Bを実行せず、第1の予定時刻Td2となったときに、遷移処理を行って、第1の処理Dとともに第2の処理Bを実行する。
図9(b)の例では、指定時刻t1が実行時刻Ud1となり、指定時刻t3が実行時刻Ua1及びUc1となり、指定時刻t5が実行時刻Ub1及びUd2となる。このように、従来装置では指定時刻t5、すなわち、実行状態遷移が行われる(自装置の状態が実行状態に遷移する)ときに集中して実行されていた4つの指定時刻処理(A、B、C及びD)が、情報処理装置10においては、指定時刻t5と、指定時刻t5の前に実行状態遷移が行われるとき、すなわち第3の処理が実行される指定時刻t3とに分散して実行されることになる。これにより、1回の実行状態遷移が行われるときに情報処理装置にかかる処理の負荷や、通信装置13やネットワーク2にかかる通信の負荷が小さくなる。言い換えれば、実行状態遷移が行われるときに実行される処理による負荷のピークが小さくなる。このように、情報処理装置10は、第3の処理を行わない場合に比べて、自装置の状態が遷移するときに実行される処理による負荷のピークを小さくすることができる。
情報処理装置10は、図8で述べたように、予定時刻処理を実行し終わったときと、複数の予定時刻処理を集中して実行している場合は、最後の予定時刻処理を実行し終わったときとに分散処理を実行する。そのため、情報処理装置10は、ステップS43において抽出した集合に含まれる第2の予定時刻の数が閾値よりも多い場合、次の図で示すように、繰り返し第3の予定時刻を決定することになる。
図10は、分散処理が実行されるタイミングを説明するための図である。図10では、第1の処理Dの実行を予定する第1の予定時刻Td11及びTd12の間に、6つの第2の予定時刻Ta11、Tc11、Tb11、Ta12、Tc12及びTb12が定められている。この例では、分散閾値が2であるものとする。この場合、情報処理装置10は、まず、第1の予定時刻Td11になって第1の処理を実行し終えた時刻Tf11に分散処理を実行し、抽出した集合に含まれる第2の予定時刻が6つと閾値を超えているため、第3の予定時刻Te11を決定する。
次に、情報処理装置10は、第3の予定時刻Te11になって第2の予定時刻Ta11及びTc11に実行が予定されていた第2の処理A及びCを実行し終えた時刻Tf12に分散処理を実行し、抽出した集合に含まれる第2の予定時刻が4つと閾値を超えているため、第3の予定時刻Te12を決定する。続いて、情報処理装置10は、第3の予定時刻Te12になって第2の予定時刻Tb11及びTa12に実行が予定されていた第2の処理B及びAを実行し終えた時刻Tf13に分散処理を実行し、抽出した集合に含まれる第2の予定時刻が2つと閾値を超えないため、第3の予定時刻を決定しない。そして、情報処理装置10は、第1の予定時刻Td12になって第1の処理Dと第2の予定時刻Tc12及びTb12に実行が予定されていた第2の処理C及びBとを実行し終えた時刻Tf14に分散処理を実行する。この例では、上述した従来装置であれば第1の予定時刻Td12に実行される予定だった7つの予定時刻処理が、第3の予定時刻Te11、Te12及び第1の予定時刻Td12の3つの時刻に分散して実行される。このように、情報処理装置10は、上記同様に自装置の状態が遷移するときに実行される処理による負荷のピークを小さくすることができる。また、前述したように負荷が集中すると、情報処理装置の応答性が低下することがあるが、情報処理装置10においては、処理を部算して負荷のピークを小さくすることで応答性を高めることができる。
[変形例]
上述した実施形態は、本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、上述した実施形態及び以下に示す各変形例は、必要に応じて組み合わせて実施してもよい。
(変形例1)
情報処理装置は、決定した第3の予定時刻を取り消す手段を備えていてもよい。
図11は、本変形例における情報処理装置10aが実現する機能構成を示すブロック図である。情報処理装置10aは、図3に示す各部に加え、取消部105を備える。取消部105は、決定部103により決定された第3の予定時刻になるよりも前に遷移部102により実行状態遷移が行われた場合に第3の予定時刻を取り消す取消手段である。取消部105は、制御装置11及び記憶装置16が協働して実現する機能であり、詳細には次の方法で第3の予定時刻を取り消す。
制御装置11には、決定部103が第3の予定時刻を決定した場合に、決定された第3の予定時刻が決定部103から通知され、遷移部102により実行状態遷移が行われた場合に、実行状態遷移を行った旨が遷移部102から通知される。制御装置11は、通知された第3の予定時刻になる前に実行状態遷移を行った旨が通知された場合に、記憶装置16に記憶されている第3の予定時刻を削除する。このようにして、取消部105は第3の予定時刻を取り消す。実行部104は、取消部105により第3の予定時刻が取り消された場合、その第3の予定時刻になっても第3の処理を実行しない。
情報処理装置10aによるこのような動作は、第3の予定時刻になる前にユーザの操作などによって実行状態に遷移した場合に行われる。この場合、実行状態に遷移した時点で、それまでに実行が予定されていた第2の処理が実行されることになる。そして、情報処理装置10aは、最後の第2の処理が実行し終えたときに分散処理を実行し、抽出した第2の予定時刻の集合が分散条件を充足すれば第3の予定時刻を決定し、充足しなければ第3の予定時刻を決定せずに分散処理を終了する。これにより、仮に、実行状態遷移が行われたときにまだ第2の処理が1つも実行されていなければ、この分散処理によって再び同じ第3の予定時刻が決定されることになる。一方、この実行状態遷移によって第2の処理が実行された場合には、新たな第3の予定時刻が決定されるか、第3の予定時刻が決定されずに次の第1の予定時刻になるまで分散処理が行われないことになる。このように、本変形例では、第3の予定時刻になる前に第2の処理が分散して実行された場合には、第3の処理の実行を遅らせるかまたは実行しないようにすることで、例えば図10で述べた例で2回行われていた第3の処理を1回または0回に減らすことができる。つまり、本変形例によれば、第3の予定時刻を取り消さない場合に比べて、自装置が実行状態になっている期間を少なくすることができ、さらに、実施形態のように非実行状態では実行状態よりも消費する電力が少ない場合には、情報処理装置において消費される電力を少なくすることができる。
(変形例2)
決定部103は、上述した実施形態とは異なる抽出条件を用いて第2の予定時刻の集合を抽出してもよい。例えば、実施形態では集合が複数ある場合には現在時刻に最も近い集合であることが抽出条件となっていたが、その条件をなくし、決定部103は、複数の集合をそのまま抽出してもよい。この場合、決定部103は、複数の集合に対してそれぞれ第3の予定時刻を決定し、決定した複数の第3の予定時刻を記憶部101に記憶させる。また、この場合に、決定部103は、決定した最後の第3の処理が実行されたときに次の分散処理を行うようにしてもよい。これにより、実施形態における抽出条件を用いる場合に比べて、分散処理を行う回数を少なくすることができる。一方、決定部103が実施形態における抽出条件を用いる場合には、予定時刻処理を実行し終わった時点で予定されている予定時刻処理の状況に応じて第3の予定時刻を決定することができる。これにより、予定時刻が変動した場合に、変動した予定時刻に応じて、自装置の状態が遷移するときに実行される処理による負荷のピークが小さくなりやすい第3の予定時刻を決定することができる。
(変形例3)
決定部103は、さらに別の抽出条件を用いて第2の予定時刻の集合を抽出してもよい。例えば、決定部103は、第2の処理のうち、通信の実行が許可されていることを示す権限や識別子が付与されているものだけの集合を抽出する抽出条件を用いてもよい。これらの権限や識別子が付与された第2の処理とは、要するに、通信を行う第2の処理のことであり、反対に、これらが付与されていない第2の処理とは、通信を行わない第2の処理のことである。この抽出条件を用いることにより、決定部103は、第1の予定時刻を挟まずに連続する第2の予定時刻のうち、通信を行う第2の処理の実行を予定するものの集合が分散条件を充足しない場合に、その集合に基づいて第3の予定時刻を決定する。
情報処理装置10aにおいては、通信を行う第2の処理が分散して実行されることになり、実施形態と同様に、第3の処理を行わない場合に比べて、通信の負荷のピークが小さくなる。一方、通信を行わない第2の処理、すなわち、制御装置11を通信の完了待ちなどの通信に関する処理でアイドル状態にさせることがない第2の処理については、通信を行う第2の処理のように分散して実行されるということがない。従って、情報処理装置10aにおいては、例えば実施形態の抽出条件が用いられる場合に比べて通信を行わない第2の処理が集中して実行されやすくなるが、これらの第2の処理は通信の負荷がないため、通信を行う第2の処理が集中する場合に比べれば負荷のピークが小さくなりやすい。また、情報処理装置10aにおいては、通信を行わない第2の処理を分散させない分、第3の処理が実行される回数が少なくなりやすいことになるから、自装置が実行状態になっている期間を減らすことができ、それにより、消費される電力を少なくすることができる。
(変形例4)
決定部103は、さらに別の抽出条件を用いて第2の予定時刻の集合を抽出してもよい。例えば、決定部103は、第2の処理に上述した権限や識別子の付与を行わず、第2の処理の全てが通信を行うことが可能になっている場合に、過去に通信を行った第2の処理だけの集合を抽出する抽出条件を用いてもよい。
図12は、本変形例における情報処理装置10bが実現する機能構成を示すブロック図である。情報処理装置10bは、図3に示す各部に加え、第1蓄積部106を備える。第1蓄積部106は、実行部104により第2の処理が実行された際のその第2の処理による通信の履歴を蓄積する第1蓄積手段であり、本発明に係る蓄積手段である。第1蓄積部106は、制御装置11、通信装置13及び記憶装置16が協働して実現する機能であり、詳細には次の方法で通信の履歴を蓄積する。
制御装置11は、実行部104が第2の処理を実行したときに通信装置13を制御して通信を行わせた場合に、その第2の処理を識別する識別子とその通信を開始させた時刻とを記憶装置16に記憶させる。このようにして記憶された識別子及び時刻は、その識別子により識別される第2の処理が行った通信の履歴を表す。第1蓄積部106は、このようにして前述した通信の履歴を蓄積し、決定部103から要求された場合にその履歴を決定部103に通知する。この場合、決定部103は、第1の予定時刻を挟まずに連続する第2の予定時刻のうち、第1蓄積部106に通信の履歴が蓄積されている第2の処理の実行を予定するものの集合が分散条件を充足しない場合に、その集合に基づいて第3の予定時刻を決定する。情報処理装置10bによれば、通信を行わなかった第2の処理、すなわち、通信を行った第2の処理に比べて今後も通信を行わない可能性が高い第2の処理については、分散して実行されるということがない。そのため、上述した情報処理装置10aと同様に、第3の処理が実行される回数が少なくなりやすいことになるから、自装置が実行状態になっている期間を減らすことができ、それにより、消費される電力を少なくすることができる。
(変形例5)
決定部103は、上述した実施形態では、記憶部101により記憶されている全ての第1及び第2の予定時刻を取得したが、一部の予定時刻を取得してもよい。例えば、決定部103は、現在時刻以降の予め決められた期間に含まれる予定時刻を取得したり、現在時刻以降の予め決められた数の第1の予定時刻と、それらの第1の予定時刻に挟まれた期間に含まれる第2の予定時刻とを取得したりしてもよい。これにより、決定部103は、取得する予定時刻の数を少なくして、分散処理において集合を抽出するときの処理の負荷を少なくすることができる。一方、決定部103が実施形態のように全ての第1及び第2の予定時刻を取得する場合には、上述した変形例のように、分散条件を充足する現在時刻以降の第2の予定時刻の集合に対してそれぞれ第3の予定時刻を決定しておくことができる。言い換えれば、現在時刻以降に予定されている第1の予定時刻において集中して実行される第2の処理による負荷のピークを予め分散させるように第3の予定時刻を決定しておくことができる。
(変形例6)
決定部103は、上述した実施形態とは異なる分散条件を用いて第3の予定時刻を決定してもよい。実施形態では集合に含まれる第2の予定時刻の数が分散閾値よりも多いことが分散条件となっていたが、例えば、集合に含まれる第2の予定時刻に重みを付けて合計した値が分散閾値よりも多いことを分散条件としてもよい。決定部103は、例えば、その第2の予定時刻と1つ前の第2の予定時刻との間の時間が長いほど重みを大きくするように重み付けをする。この場合、決定部103は、第2の予定時刻が長い期間に分散している場合に、そうでない場合、すなわち、第2の予定時刻が短い期間に集中している場合に比べて、分散条件を充足しないと判断する集合に含まれる第2の予定時刻の数が少なくなりやすくなる。つまり、第2の予定時刻が長い期間に分散している場合には、そうでない場合に比べて、第3の予定時刻が多く決定され、それらの時刻に予定されている第2の処理の実行が後回しにされずに早く実行されやすくなる。第2の予定時刻が分散するほど、次の第2の予定時刻との間の時間が長くなり、第3の処理が行われるまでに第2の処理の実行が保留される期間が長くなる。本変形例によれば、このように保留される期間が長い場合、すなわち、第2の予定時刻が長い期間に分散している場合に、第3の予定時刻が多く決定されるように重み付けをすることで、全体として、第2の処理の実行が保留される期間を短くすることができる。
(変形例7)
決定部103は、複数の第2の処理が各々の周期で実行される場合に、上述した非充足時刻のうち、それらの周期に応じた時刻を第3の予定時刻として決定してもよい。決定部103は、例えば、非充足時刻のうち、各第2の予定時刻の周期の公倍数となる時間の間隔で訪れる時刻を第3の予定時刻として決定してもよい。
図13は、本変形例において決定される第3の予定時刻を説明するための図である。図13では、第1の予定時刻(Td31)と、第2の処理A及びBの第2の予定時刻(Ta31からTa39まで及びTb31からTb37まで)が示されている。第2の処理Aは周期G1で実行されるように第2の予定時刻が予定されており、第2の処理Bは周期G2で実行されるように第2の予定時刻が予定されている。周期G2は、周期G1の1.25倍となっている。この例では、第1の予定時刻Td31、第2の予定時刻Ta31及びTb31は、いずれも同じ時刻となっており、その時刻が現在時刻であるものとする。また、分散閾値が10であるものとする。
決定部103は、第1の予定時刻Td31に第1の処理D、第2の処理A及びBを実行したあと、周期G1及びG2の公倍数となる時間H1の間隔で訪れる時刻、すなわち、この公倍数を周期(以下「公倍数周期」という。)とする時刻であるt31、t32及びt33を算出する。決定部103は、算出した公倍数周期で訪れる時刻のうち、次に訪れるt32を、第3の予定時刻Te31として決定する。また、決定部103は、第3の予定時刻Te31において実行状態になって各予定時刻処理が実行されたあと、公倍数周期で訪れる時刻のうち、次に訪れるt33を、第3の予定時刻Te32として決定する。
なお、公倍数周期は、複数の第2の予定時刻の周期の最小公倍数を整数倍した周期ともいえる。例えば、時間H1は、周期G1の4倍且つ周期G2の3倍、すなわち、これらの周期の最小公倍数であったが、決定部103は、分散閾値が例えば20であれば、時間H1を2倍した時間を公倍数周期とする時刻(t31及びt33)を算出し、次に訪れる時刻t33を第3の予定時刻として決定してもよい。
本変形例では、決定部103が、複数の第2の処理のいずれもが元々実行される予定となっていた第2の予定時刻(図13の例では第2の予定時刻Ta35及びTb34)を第3の予定時刻(図13の例ではTe31)として決定する。つまり、これらの第2の予定時刻においては、第2の処理の実行が保留されることがない。また、それ以前の第2の予定時刻はいずれも等間隔に並んでいるため、第2の処理の実行が保留される期間(以下「保留期間」という。)の長さは、最後の第2の予定時刻における保留期間の長さに比例する。本変形例では、前述したように最後の第2の予定時刻における保留期間が0であるから、本変形例のように公倍数周期で訪れる時刻を第3の予定時刻として決定しない場合に比べて、全体の保留期間を短くすることができる。予定時刻処理は、保留期間が長いほど、その処理で扱うデータが変化したり変更されたりする可能性が高まるため、予定時刻に近い時刻に実行されることが望ましい。つまり、保留期間は短いほど望ましい。本変形例によれば、公倍数周期に基づいて第3の予定時刻を決定しない場合に比べて、第2の処理の全体の保留期間を短くすることができ、言い換えれば、全体として第2の予定時刻に近い時刻に第2の処理を実行することができる。また、本変形例では、第3の予定時刻が連続して決定される場合には、それらの第3の予定時刻は等間隔になるため、公倍数周期に基づいて第3の予定時刻を決定しない場合に比べて、第2の処理が実行される間隔の見積もりが容易になる。
(変形例8)
決定部103は、複数の第2の処理が各々の周期で実行される場合に、上述した非充足時刻のうち、各第2の予定時刻の周期の最大公約数となる時間を整数倍した時間の間隔で訪れる時刻を第3の予定時刻として決定してもよい。
図14は、本変形例において決定される第3の予定時刻を説明するための図である。図14では、第1の予定時刻(Td41)と、第2の処理A及びBの第2の予定時刻(Ta41からTa49まで及びTb41からTb45まで)が示されている。第2の処理Aは周期G3で実行されるように第2の予定時刻が予定されており、第2の処理Bは周期G4で実行されるように第2の予定時刻が予定されている。周期G4は、周期G3の2倍となっている。また、第1の予定時刻Td41及び第2の予定時刻Ta41が同じ時刻となっており、Tb41がTa41よりも周期G11の3分の1だけ先の時刻となっている。
決定部103は、第1の予定時刻Td41に第1の処理D及び第2の処理Aを実行したあと、周期G1及びG2の最大公約数となる時間を整数倍(この例では1倍)した時間の間隔で訪れる時刻を算出する。ここで整数倍された時間は、算出する時刻の周期を表すものであり、以下では「最大公約数周期」という。決定部103は、この例では、現在時刻t41が第1の予定時刻Td41である場合に、最大公約数の1倍であるH1を最大公約数周期として、その周期で訪れる時刻(t42からt49まで)を算出する。決定部103は、例えば分散閾値が2である場合には、t42からt49までの各時刻をTe41からTe48まで各第3の予定時刻として決定し、分散閾値が4である場合には、時刻t43、t45、t47及びt49を第3の予定時刻Te41、Te42、Te43及びTe44として決定する。これらの第3の予定時刻は、分散閾値が2及び4の場合は、図14に示すように等間隔に並ぶように決定されており、図示はしていないが、分散閾値が3及び5の場合であっても、等間隔に並ぶように決定される。
一方、決定部103が非充足時刻のうち最もあとの第2の予定時刻と一致するものを第3の予定時刻として決定した場合、図14の比較例1及び2で示した分散閾値が2及び4の場合には、決定される第3の予定時刻同士の間隔が一定でなくなる。なお、図示せぬ分散閾値が3である場合にはこの間隔が一定になるが、分散閾値が5である場合にはこの間隔は一定ではなくなる。
本変形例では、一定の間隔、すなわち最大公約数周期で訪れる時刻を第3の予定時刻として決定するため、例えば非充足時刻のうち最もあとの第2予定時刻と一致するものを第3の予定時刻として決定する場合に比べて、第3の処理が行われる時刻、つまり、第2の処理が実行される時刻が等間隔になりやすい。従って、本変形例によれば、同様の比較をした場合に、第2の処理が実行される間隔の見積もりが容易になる。
(変形例9)
決定部103は、記憶部101に予定時刻が記憶されていない場合や、決定部103が第3の予定時刻を決定するために必要な数の予定時刻が記憶されていない場合に、過去に自装置が実行状態であった期間を示す履歴(以下「実行状態履歴」という。)と過去に予定時刻処理が実行された時刻を示す履歴(以下「実行履歴」という。)とに基づいて、第3の予定時刻を決定してもよい。記憶部101は、上述したとおり、例えば設定した周期及び開始時刻に基づいて所定の期間分の予定時刻を所定の時間の間隔で算出するが、その期間及び時間の間隔によっては、現在時刻以降の予定時刻がほとんど記憶されていない状態が起こり得る。例えば第2の予定時刻が1つしか記憶されていなければ、決定部103は、抽出条件を充足する第2の予定時刻の集合を抽出することができない。つまり、決定部103が第3の予定時刻を決定するためには、記憶部101に少なくとも複数の第2の予定時刻が記憶されている必要がある。決定部103は、記憶部101に記憶されている予定時刻を用いても第3の予定時刻を決定することができない場合には、上記の実行状態履歴及び実行履歴に基づいて第3の予定時刻を決定する。この場合、情報処理装置は、これら2つの履歴を蓄積する手段を備える。
図15は、本変形例における情報処理装置10cが実現する機能構成を示すブロック図である。情報処理装置10cは、図3に示す各部に加え、第2蓄積部107を備える。第2蓄積部107は、上述した実行状態履歴及び実行履歴を蓄積する第2蓄積手段である。第2蓄積部107は、制御装置11及び記憶装置16が協働して実現する機能であり、詳細には次の方法でこれらの履歴を蓄積する。
制御装置11は、自装置が実行状態でない状態(例えば非実行状態や電源が投入されていない状態)から実行状態に遷移したときに、実行状態が開始したことを示す情報とその時刻とを対応付けて記憶装置16に記憶させる。また、制御装置11は、自装置が実行状態から実行状態でない状態に遷移するときに、実行状態が終了することを示す情報とその時刻とを対応付けて記憶装置16に記憶させる。このようにして記憶された情報及び時刻は、実行状態が開始した時刻及び終了した時刻を表す履歴、すなわち実行状態履歴となる。
実行部104は、予定時刻処理(第1及び第2の処理)を実行した場合に、実行した処理を識別する情報と、実行を開始した時刻とを制御装置11に通知する。制御装置11は、通知されたそれらの情報及び時刻を、実行履歴として記憶装置16に記憶させる。第2蓄積部107は、以上のとおり、実行状態履歴及び実行履歴を蓄積する。第2蓄積部107は、決定部103からの要求に応じて、蓄積したこれらの履歴を示すデータを決定部103に供給する。
決定部103は、上述したように第2の予定時刻の集合を抽出することができない場合、第2蓄積部107に要求して実行状態履歴及び実行履歴を示すデータを取得する。決定部103は、取得したデータが示す実行状態履歴及び実行履歴のとおりに自装置の遷移及び予定時刻処理の実行がこの先に行われる場合に、遷移及び第2の処理の実行が同時に行われ、且つ、第1の処理が実行されない時刻を第3の予定時刻として決定する。
図16は、本変形例において決定される第3の予定時刻を説明するための図である。図16では、実行状態履歴が示す、過去に自装置が実行状態であった期間(つまり実行状態期間)J1及びJ2と、実行履歴が示す、過去に第1の処理D、第2の処理A及びBが実行された時刻である実行時刻Ud51、Ua51及びUb51が示されている。実行状態期間J1は時刻t50に開始する時間K1の期間であり、実行状態期間J2は実行時刻Ua51に開始する時間K2の期間である。これらの実行状態期間J1及びJ2は時間K3だけ離れている。この場合、決定部103は、まず、時刻t50に対応する時刻t60を算出する。詳細には、決定部103は、実行状態履歴において実行状態期間J1及びJ2と同様の実行状態が時刻t50の前に繰り返しあった場合に、時刻t50に対応する時刻、すなわち実行状態期間J1に対応する時間K1の実行状態期間が開始する時刻の周期を算出し、算出した周期を時刻t50に加算した時刻t60を、実行状態期間J1に対応する実行状態となることが想定される期間J3が開始する時刻として算出する。
決定部103は、算出した時刻t60に時間K1及びK3を加えた時刻t61を、実行状態期間J2に対応する期間J4が開始する時刻として算出する。次に、決定部103は、過去の実行状態期間が開始した時刻から、その時刻に第2の処理が実行され、且つ、第1の処理が実行されなかったものを抽出する。この例では、決定部103は、第2の処理Aが実行された時刻t51を抽出する。決定部103は、抽出した時刻t51に対応する時刻であるt61を、第3の予定時刻として決定する。図16の例では、第1の処理D及び第2の処理Bは、実行状態期間の最中に実行されているため、各々実行された時刻がそのまま予定時刻であったことになる。一方、第2の処理Aは、実行状態期間が始まった時刻t51に実行されているため、この時刻t51またはそれよりも前に実行が予定されていたことになる。本変形例では、この時刻t51に対応する時刻t61を第3の予定時刻として決定することで、第2の処理Aが前回までと同様に時間K2の期間が始まる時刻に実行されることになる。このように、本変形例によれば、記憶部101に現在時刻以降の予定時刻がほとんど記憶されておらず、抽出条件を充足する第2の予定時刻の集合を抽出することができないような場合であっても、第3の予定時刻を決定することができる。
なお、第2蓄積部107は、第1及び第2の予定時刻に加え、第3の予定時刻も蓄積してもよい。その場合、決定部103は、第2蓄積部107に蓄積された第3の予定時刻に基づき、前述した時刻t60やt61を算出したのと同じ方法で、過去の履歴に含まれる第3の予定時刻に対応する時刻を算出し、第3の予定時刻として決定してもよい。
(変形例10)
決定部103は、上述した公倍数周期や最大公約数周期を用いて第3の予定時刻を決定する場合に、記憶部101による予定時刻の記憶に周期が用いられていなければ、記憶部101に記憶されている過去の指定時刻または上記の第2蓄積部107に蓄積された実行履歴に基づいて周期を算出してもよい。この場合、決定部103は、或る指定時刻処理の過去の指定時刻または実行履歴が表す実行時間の間隔が一定となっていれば、その指定時刻処理はその間隔を周期として実行が予定されていると判断し、その周期を用いて公倍数周期や最小公倍数周期で訪れる時刻を算出する。ここでいう間隔が一定とは、例えば前々回の予定時刻であった指定時刻と前回の予定時刻であった指定時刻との差分が、前回と今回の指定時刻の差分と等しい場合や、前々回の実行時刻と前回の実行時刻との差分、前々回の実行時刻と前回の指定時刻との差分などが、前回と今回の実行時刻の差分と等しい場合のことをいう。なお、決定部103は、これらの差分が完全に一致しなくても、その違いが予め決められた誤差の範囲に収まるものであれば、間隔が一定であると判断してもよい。
(変形例11)
決定部103は、過去の所定の期間(例えば1ヶ月)における実行状態履歴及び実行履歴に基づいて自装置の処理の負荷が所定のレベルを超えているか否かを判定し、その判定結果に応じて分散条件を変更してもよい。この所定の期間は、自装置の処理の負荷を判定するために定める期間であり、以下では「判定期間」という。例えば、決定部103は、判定期間における実行状態履歴に基づいて、自装置が実行状態及び非実行状態を相互に遷移した回数(遷移回数という。)、実行状態が継続した時間(実行状態時間という。)の平均値または非実行状態が継続した時間(非実行状態時間という。)の平均値を算出する。また、決定部103は、判定期間における実行履歴に基づいて、予定時刻処理が実行された回数(実行回数という。)、予定時刻処理の実行時刻において同時に実行された予定時刻処理の数(同時実行数という。例えば、或る実行時刻に2つの予定時刻処理が実行された場合は2つと数える。)の平均値または実行時刻毎に実行された予定時刻処理による動作が継続された時間(処理継続時間という。例えば、或る実行時刻に2つの予定時刻処理が実行された場合、その実行時刻から、それらのうち長く動作を継続させた方が終了するまでの時間。)の平均値を算出する。決定部103は、実行状態履歴に基づいて算出した平均値と、実行履歴に基づいて算出した平均値との関係から、自装置の処理の負荷が所定のレベルを超えているか否かを判定する。
上記のとおり算出される値のうち、遷移回数及び実行状態時間の平均値は、その値が大きいほど、第2の処理が分散して実行されやすい。つまり、これらの値は、第2の処理の実行が分散する傾向を表す値であり、以下では「分散傾向値」という。また、非実行状態時間の平均値、実行回数、同時実行数及び処理継続時間は、その値が大きいほど、第2の処理が集中して実行されやすい。つまり、これらの値は、第2の処理の実行が集中する傾向を表す値であり、以下では「集中傾向値」という。決定部103は、例えば、集中傾向値のいずれかを、分散傾向値のいずれかで除した値が閾値を超える場合に、前述した処理の負荷が所定のレベルを超えていると判定する。決定部103は、処理の負荷が所定のレベルを超えていると判定した場合、第2の処理がより分散して実行されるように分散条件を変更する。例えば、決定部103は、分散閾値の値を今よりも小さい値に変更する。これにより、上記のとおり分散条件を変更しない場合に比べて、自装置の状態が遷移するときに実行される処理による負荷のピークを小さくすることができる。
一方、決定部103は、処理の負荷が所定のレベルを超えていないと判定した場合には、第3の処理が実行される回数が減少するように分散条件を変更する。例えば、決定部103は、分散閾値の値を今よりも大きい値に変更する。これにより、上記のとおり分散条件を変更しない場合に比べて、自装置が実行状態となっている期間を少なくすることができ、さらに、実施形態のように非実行状態では実行状態よりも消費する電力が少ない場合には、情報処理装置において消費される電力を少なくすることができる。
なお、決定部103は、上記の分散傾向値が閾値未満である場合に処理の負荷が所定のレベルを超えていると判定したり、上記の集中傾向値が閾値を超える場合に処理の負荷が所定のレベルを超えていると判定したりしてもよい。また、決定部103は、分散傾向値の合計や集中傾向値の合計に基づいてこの判定を行ってもよい。また、決定部103は、例えば上記のとおり集中傾向値のいずれかを分散傾向値のいずれかで除した値が第1の閾値を超える場合には、処理の負荷が第1のレベルを超えていると判定して第2の処理が分散しやすいように分散条件を変更し、この値が第1の閾値よりも小さい第2の閾値未満である場合には、処理の負荷が第2のレベル未満であると判定して第3の処理が実行される回数が少なくなるように分散条件を変更し、この値が第1の閾値以下で第2の閾値以上である場合には、分散条件を変更しないようにしてもよい。要するに、決定部103は、分散傾向値及び集中傾向値を用いて自装置の処理の負荷(またはネットワーク2の通信の負荷)の大きさを判定し、その結果に基づいて負荷を軽減したり自装置が実行状態となっている期間を少なくしたりするように分散条件を変更すればよい。
(変形例12)
決定部103は、時間帯または時期などの期間によって分散条件を変更してもよい。例えば、情報処理装置においては、午前0時から午前5時までの第1の時間帯において、この時間帯を除く第2の時間帯に比べて多く予定時刻処理が実行される場合に、決定部103は、現在時刻が第1の時間帯である場合には分散閾値をV1(例えば2)として第3の予定時刻を決定し、現在時刻が第2の時間帯である場合には分散閾値をV1よりも大きいV2(例えば5)として第3の予定時刻を決定する。また、例えば、情報処理装置においては、四半期末の最後の月の後半という第1の時期において、この時期を除く第2の時期に比べて多く予定時刻処理が実行される場合に、決定部103は、前述した時間帯と同様に2とおりの分散閾値を使い分けて第3の予定時刻を決定する。本変形例によれば、予定時刻処理が集中しやすい期間(時間帯や時期)においては第2の処理を分散しやすいように第3の予定時刻を決定し、そうでない期間においては自装置が実行状態となっている期間を少なくするように第3の予定時刻を決定することができる。
(変形例13)
決定部103は、上述した実施形態では、抽出した集合に含まれる第2の予定時刻のうち或る時刻から前の第2の予定時刻の集合が分散条件を充足しないときの前述した或る時刻、すなわち上述した非充足時刻のうち、最もあとの(最も未来の)第2の予定時刻と一致するものを、第3の予定時刻として決定したが、これとは異なる方法で第3の予定時刻を決定してもよい。例えば、決定部103は、全ての非充足時刻から乱数に基づいて選出した時刻を、第3の予定時刻として決定してもよい。この場合であっても、実行状態遷移が行われるときに集中して実行されていた指定時刻処理が第3の予定時刻に分散して実行されることになり、情報処理装置は、第3の処理を行わない場合に比べて、自装置の状態が遷移するときに実行される処理による負荷のピークを小さくすることができる。
(変形例14)
情報処理装置は、決定部103により決定された第3の予定時刻を、所定の条件が充足された場合に変更する手段を備えていてもよい。以下では、この条件のことを「変更条件」という。
図17は、本変形例における情報処理装置10dが実現する機能構成を示すブロック図である。情報処理装置10dは、図3に示す各部に加え、第1変更部108を備える。第1変更部108は、変更条件が充足された場合に第3の予定時刻を変更する第1変更手段である。第1変更部108は、例えば、決定部103により決定された第3の予定時刻から始まる所定の期間に第2の処理が予定されている場合に充足する変更条件を用いる。第1変更部108は、この変更条件が充足された場合には、その所定の期間に第2の処理の実行が予定されている時刻(すなわち第2の予定時刻)に第3の予定時刻を変更する。このように第1変更部108が第3の予定時刻を変更することにより、情報処理装置10dが非実行状態である期間が前述した所定の期間分だけ追加されることになる。以下では、この所定の期間のことを「追加期間」という。第1変更部108は、制御装置11及び記憶装置16が協働して実現する機能であり、詳細には次の方法で第3の予定時刻を変更する。
制御装置11は、記憶部101に要求して、第2の予定時刻を取得する。決定部103は、決定した第3の予定時刻を第1変更部108の制御装置11に通知する。制御装置11は、決定部103から通知された第3の予定時刻から始まる追加期間(例えば1時間)を算出し、算出した追加期間に取得した第2の予定時刻が含まれているか否かを判断する。制御装置11は、第2の予定時刻が含まれていると判断した場合には、その第2の予定時刻として記憶部101に記憶されている指定時刻を、第3の予定時刻として記憶部101に記憶させ、決定部103から通知された第3の予定時刻を記憶部101に削除させる。制御装置11は、追加期間に複数の第2の予定時刻が含まれていると判断した場合には、そのうちの最もあとの第2の予定時刻として記憶されている指定時刻を、第3の予定時刻として記憶部101に記憶させる。このようにして、第1変更部108は、第3の予定時刻を変更する。
図18は、本変形例において決定される第3の予定時刻を説明するための図である。図18では、第1の予定時刻(Td21及びTd22)と、Td21及びTd22の間の第2の予定時刻(Ta21、Tb21及びTc21)が示されている。現在時刻が第1の予定時刻Td21であり、分散閾値が2である場合、決定部103は、最もあとの第2の予定時刻と一致する非充足時刻であるTb21を第3の予定時刻として決定する。第1変更部108は、決定部103により決定された第3の予定時刻であるTb21から始まる追加期間(この例ではF1とする。)に含まれる第2の予定時刻が記憶部101に記憶されているか否かを判断する。図18(a)の例では、追加期間F1に第2の予定時刻がないため、第1変更部108は、そのような第2の予定時刻が記憶されていないと判断し、第3の予定時刻の変更を行わない。
一方、図18(b)に示す例の場合、追加期間F1に含まれる第2の予定時刻Tc21が記憶部101に記憶されているため、第1変更部108は、追加期間に含まれる第2の予定時刻が記憶されていると判断し、Tc21を第3の予定時刻として決定する。図18(b)の例において、追加期間F1に含まれる第2の予定時刻であるTc21を第3の予定時刻として決定しない場合には、Tc21に実行が予定されている第2の処理が第1の予定時刻Td22まで保留されることになる。図13の公倍数周期の例で述べたように、第2の処理の実行が保留される期間(保留期間)は、短いほど望ましい。本変形例によれば、追加期間に含まれる第2の予定時刻があった場合に、それ以前の第2の処理(この例ではTa21及びTb21に実行が予定されている第2の処理)とともに実行させることで、その第2の処理の保留期間を短くすることができる。
(変形例15)
情報処理装置は、第1変更部108とは異なる方法で第3の予定時刻を変更する手段を備えていてもよい。
図19は、本変形例における情報処理装置10eが実現する機能構成を示すブロック図である。情報処理装置10eは、図3に示す各部に加え、第2変更部109を備える。第2変更部109は、例えば、図17及び図18で述べた追加期間に含まれる時刻から乱数に基づいて選出した時刻に第3の予定時刻を変更する。または、第1変更部108は、追加期間に含まれ、且つ、自装置が起動した時刻(以下「起動時刻」という。)を起点として所定の時間の間隔で訪れる時刻に第3の予定時刻を変更する。第2変更部109は、制御装置11及び記憶装置16が協働して実現する機能であり、第1変更部108と同様に追加期間を算出し、算出した追加期間及び上記の乱数または起動時刻に基づいて第3の予定時刻を変更する。第2変更部109は、第1変更部108が用いた変更条件が充足されているか否かに関わらず、第3の予定時刻を変更する。
本変形例では、ネットワーク2に接続する複数台の情報処理装置が同じ第1及び第2の予定時刻をそれぞれ記憶している場合に、乱数や起動時刻に基づいて第3の予定時刻が変更されるため、それらの情報処理装置において最もあとの第2の予定時刻と一致する非充足時刻が同じになっていても、乱数や起動時刻に基づかないで第3の予定時刻を変更する場合に比べて、変更された第3の予定時刻がそれぞれ異なる時刻になりやすい。このように、本変形例によれば、同様の比較をした場合に、ネットワーク2にかかる通信の負荷を集中しにくくすることができ、つまりは通信の負荷のピークを小さくすることができる。
(変形例16)
決定部103は、通信装置13を介した通信による外部装置からの指示に基づいて分散条件を追加し、変更し、及び削除してもよい。この場合、例えば、図1に示すサーバ装置20が分散条件に対する指示を示すデータを情報処理装置に送信する。
図20は、サーバ装置20のハードウェア構成を示すブロック図である。サーバ装置20は、制御装置21と、通信装置22と、記憶装置23とを備える。制御装置21は、CPU、ROM、RAMを有するマイクロプロセッサとリアルタイムクロックとを備えている。CPUは、RAMをワークエリアとして用いてROMや記憶装置23に記憶されたプログラムを実行することによって、サーバ装置20が備える各装置の動作を制御する。このように、制御装置21は、サーバ装置20を制御するコンピュータである。リアルタイムクロックは、現在の日時を算出する機能を有している。通信装置22は、ネットワーク2に接続するためのインターフェースと、通信を行うための通信回路とを備え、ネットワーク2を介して情報処理装置10と通信を行う通信手段である。記憶装置23は、例えばハードディスクなどの記憶手段であり、制御装置21が制御に用いるデータやプログラムなどを記憶している。
図21は、サーバ装置20が実現する機能構成を示すブロック図である。サーバ装置20は、取得部201及び指示部202を備える。取得部201は、ネットワーク2の通信の状況(以下「通信状況」という。)や、ネットワーク2に接続する情報処理装置の処理の状況(以下「処理状況」という。)を取得する取得手段である。取得部201は、制御装置21及び通信装置22が協働して実現する機能である。例えば、制御装置21は、通信装置22及びネットワーク2を介して情報処理装置に所定のデータを送信し、そのデータに応答して情報処理装置から送信されてくるデータに基づいて、サーバ装置20と情報処理装置との間のネットワークの通信速度などを上記の通信状況として取得する。また、各情報処理装置が、自装置のCPU使用率やメモリ使用率などの情報を示すデータを所定の時間の間隔でサーバ装置20に送信するようにしておく。制御装置21は、このデータを通信装置22から供給されることで、このデータが示す情報を上記の処理状況として取得する。このようにして、取得部201は、通信状況及び処理状況を取得し、取得したこれらの状況を示すデータを指示部202に供給する。
指示部202は、取得部201により取得された通信状況及び処理状況に基づいて、分散条件を変更する指示を情報処理装置に対して行う指示手段である。指示部202は、制御装置21、通信装置22及び記憶装置23が協働して実現する機能である。例えば、制御装置21は、取得された通信状況により、ネットワーク2における通信の負荷が所定のレベルよりも大きいと判断される場合や、取得された処理状況により、情報処理装置10が通信を行う相手となる情報処理装置における処理の負荷が所定のレベルよりも大きいと判断される場合には、第2の処理がより分散しやすい分散条件に変更するように指示する。この場合、例えば、制御装置21は、分散閾値を2に変更するように指示をする。具体的には、制御装置21は、この指示の内容を示すデータを情報処理装置に対して送信する。
本変形例における情報処理装置の決定部103は、制御装置11及び記憶装置16に加え、通信装置13が協働して実現する機能である。決定部103は、受信したデータが示す指示の内容に基づき、例えば上記の分散条件の変更が指示された場合であれば、分散閾値を2に変更する。これにより、例えばそれまでの分散閾値が5であった場合には、情報処理装置において5つの第2の処理が集中して実行されるようになっていたものが、集中して実行される第2の処理を2つまでに減らすことになり、ネットワーク2の通信の負荷や、第2の処理による通信の相手となる情報処理装置の処理の負荷が、上記の指示がされない場合に比べて小さくなる。
また、指示部202は、上記の他にも、例えば集合に含まれる第2の予定時刻に重みを付けて合計した値が分散閾値よりも多いことを分散条件とするように、分散条件の変更を指示してもよい。いずれの場合も、指示部202は、取得部201により取得された通信状況及び処理状況により、通信及び処理の負荷が所定のレベルよりも大きいと判断される場合に、その負荷を軽減するように分散条件を変更することを指示する。これにより、情報処理装置は、自装置内では取得できない情報(通信状況及び処理状況)に基づいて、分散処理による第2の処理の分散の度合いを変更させることができる。
一方、指示部202は、取得された通信状況及び処理状況により、通信及び処理の負荷が所定のレベルよりも小さいと判断される場合には、第3の処理を実行する回数が少なくなるように分散条件を変更することを指示する。これにより、情報処理装置10は、このような指示がされない場合に比べて、第3の処理を実行する(すなわち実行状態に遷移させる)回数が少なくなり、自装置が実行状態となっている期間を少なくすることができ、さらに、実施形態のように非実行状態では実行状態よりも消費する電力が少ない場合には、情報処理装置において消費される電力を少なくすることができる。
なお、指示部202は、分散条件を変更するように指示するだけでなく、第3の予定時刻そのものを指示してもよい。この場合、情報処理装置の決定部103は、分散条件に基づいて第3の予定時刻を決定するための処理(例えば第2の予定時刻の抽出や分散条件が充足されているか否かの判断)を行うことなく、指示されたとおりに第3の予定時刻を決定する。これにより、第3の予定時刻を決定するための処理が行われなくなる分、このような指示がされない場合に比べて、情報処理装置の処理の負荷が少なくなる。
また、指示部202は、情報処理装置が指示を受け付けた場合に、例えば表示装置が備える表示面を点灯したり、所定の画像を表示したりするように指示してもよい。外部装置(この場合はサーバ装置20)からの指示により表示面が点灯したり画像が表示されたりすることをユーザが把握している場合には、この点灯及び表示により、外部装置からの指示によって分散条件が変更されたことがユーザに通知されることになる。要するに、指示部202は、自装置が外部装置からの指示を受け付けたことをユーザに通知するための処理を行うように、情報処理装置に対して指示をしてもよい。
なお、指示部202は、表示面が点灯されることを契機に開始される処理が複数の情報処理装置で行われる場合に、表示面を点灯させる指示を各情報処理装置に対して時刻を分散させて(例えば5分間隔の時刻に)行ってもよい。これにより、このような指示がされない場合に比べて、それらの情報処理装置がより分散したタイミングでこの処理をそれぞれ行うことになり、この処理が通信を伴うものであれば、通信が集中することを抑えて通信による負荷のピークを小さくすることができる。
(変形例17)
記憶部101は、上述した実施形態では、記憶装置16に記憶されているテーブルに基づいて予定時刻処理が第1及び第2の処理のいずれであるかを判断したが、他の方法でこの判断を行ってもよい。記憶部101は、例えば、ある予定時刻処理の予定時刻になったときに非実行状態であった場合に、常に、実行部104が遷移部102に遷移を行わせ、且つ、その予定時刻処理を実行するものについては、その予定時刻処理を第1の処理として判断する。一方、記憶部101は、同じ場合に、実行部104が遷移部102に遷移を行わせないことがあるもの、または、その遷移は行うが予定時刻処理を実行しないことがあるものについては、その予定時刻処理を第2の処理として判断する。このような予定時刻処理としては、或る条件(例えば、処理すべきデータ量が閾値を超えていることなど。)が充足されている場合には上記の遷移を行ってから処理を実行し、その条件が充足されていない場合には遷移を行うことなく、次に遷移が行われたときに処理を実行するというものなどがある。
第1の処理は、常に遷移を行って処理を実行するため、非実行状態では処理の実行を保留する第2の処理に比べて、処理の実行が分散する傾向が大きい処理といえる。反対に、第2の処理は、第1の処理に比べて処理の実行が集中する傾向が大きい処理といえる。これに対し、上述した条件に応じて遷移を行ったり行わなかったりする予定時刻処理は、第1及び第2の処理の中間の上記の傾向を示すものといえる。上記の例では、このような予定時刻処理を第2の処理として判断するため、これを第1の処理として判断する場合に比べて、分散処理が行われやすくなり、自装置の状態が遷移するときに実行される処理による負荷のピークを小さくすることができる。なお、記憶部101は、このような予定時刻処理を第1の処理として判断してもよい。この場合は、これを第2の処理として判断する場合に比べて、第3の処理が実行される回数が減少しやすくなり、自装置が実行状態となっている期間を少なくすることができる。
(変形例18)
決定部103は、所定の条件が充足されている間は、第3の予定時刻の決定を保留するようにしてもよい。決定部103は、例えば、自装置に電源が投入されてから時間が経過するほど処理対象となるデータ量が増えて処理の負荷や通信の負荷が増えるような予定時刻処理(第1及び第2の処理)が行われる場合に、自装置の電源が投入されてから一定の時間以内である間は所定の条件が充足されているものとして、第3の予定時刻の決定を保留する。また、決定部103は、例えば、予定時刻処理が実行された回数が増えるほど処理対象となるデータ量が増えるような場合に、上記と同様に、予定時刻処理が実行された回数が閾値以下である間は第3の予定時刻の決定を保留する。本変形例における決定部103は、これらの例に示すように、予定時刻処理による処理及び通信の負荷が何らかの条件によって変化する場合に、その負荷が所定のレベルよりも小さくなるような条件が充足されている間は、第3の予定時刻の決定を保留する。これにより、このような保留を行わない場合に比べて、第3の処理が実行される回数が減少しやすくなり、自装置が実行状態となっている期間を少なくすることができる。
(変形例19)
情報処理装置は、上述した実施形態では、実行状態ではいかなる処理をも実行され得る状態となっており、非実行状態では遷移処理及び決められた最低限の処理以外は実行されない状態となっていたが、これとは異なる状態となっていてもよい。情報処理装置は、例えば、実行状態でも或る処理については実行されないようになっていてもよいし、非実行状態において実行され得る処理を増やしてもよい。いずれにしても、情報処理装置は、実行状態においては第1及び第2の処理が実行され得るようになっており、非実行状態においては第1及び第2の処理が実行されないようになっていればよい。
(変形例20)
決定部103は、上述した実施形態では、図8で述べたとおり、実行部104が第1及び第2の処理を実行し終わったときに第3の予定時刻を決定したが、他のときにこの決定を行ってもよい。決定部103は、例えば、記憶部101が第1及び第2の処理の予定時刻を記憶したときに第3の予定時刻を決定してもよい。この場合、記憶部101が予定時刻を記憶させる動作を行う時間(例えば1日)の間隔で第3の予定時刻が決定されることになる。また、決定部103は、所定の時間(例えば1日)の間隔で第3の予定時刻を決定してもよい。第1及び第2の処理の実行が終了したときに第3の予定時刻が決定される方法では、例えば第1の処理が1週間ほど予定されておらず、且つ、情報処理装置も使用されずに非実行状態のままであった場合に、その間に実行が予定されていた第2の処理は次の遷移が行われたときにまとめて実行されることになる。このような場合であっても、本変形例によれば、第3の予定時刻を決定する時間の間隔を適当に定めておくことで、予定時刻処理が集中して実行されることを防ぐことができる。ここでいう適当な時間の間隔とは、例えば、情報処理装置で実行される第1及び第2の処理が分散閾値の数だけ実行されるのに要する平均的な時間の間隔である。
また、決定部103は、遷移部102が非実行状態から実行状態への遷移を行ったときに第3の予定時刻を決定してもよい。遷移部102がこの遷移を行うときとは、例えば、非実行状態において第1の処理及び第3の処理が実行されたときや、ユーザがこの遷移のための操作を行ったときである。この場合、遷移部102は、この遷移を行ったときに、その旨を決定部103に通知する。決定部103は、遷移部102からこの通知を受けたことを契機に、図8に示す分散処理を実行して、第3の予定時刻を決定する。第1及び第2の処理の実行が終了したときに第3の予定時刻が決定される方法では、例えばこれらの予定時刻処理が実行されている間にユーザの操作などにより自装置が非実行状態となった場合に、実行中だった予定時刻処理が次に実行状態になったときに継続して処理を実行できるようになっていなければ、分散処理が実行されずに第3の予定時刻が決定されないことになる。つまり、第3の予定時刻を決定し損なってしまうことになる。その結果、第3の予定時刻が決定されていた場合に比べて、そのあとに予定されている第2の処理が集中して実行され、負荷のピークが大きくなってしまうことがある。本変形例によれば、遷移が行われた時点で第3の予定時刻を決定するため、このように第3の予定時刻を決定し損なうことを防ぐことができる。
なお、決定部103は、実行状態において第1及び第2の処理が実行されたときに、第3の予定時刻を決定してもよい。要するに、決定部103は、第2の処理が集中して実行されてしまい負荷のピークが大きくなってしまう状態(例えば、分散閾値よりも多い第2の処理が実行されずにそれらの第2の予定時刻が経過した状態)になる前に第3の予定時刻を決定すればよい。
(変形例21)
本発明は、上述した情報処理装置やサーバ装置、情報処理装置及びサーバ装置を備える情報処理システムの他にも、その情報処理装置が実施する処理を実現するための情報処理方法としても捉えられるものである。ここでいう処理とは、例えば、図5、図6、図7及び図8に示す第1、第2、第3の実行処理及び分散処理である。また、本発明は、情報処理装置を制御するコンピュータ(図1に示す制御装置11)を、図3等の機能構成を示す図にそれぞれ示す各手段として機能させるためのプログラムや、サーバ装置を制御するコンピュータ(図20に示す制御装置21)を、図21に示す各手段として機能させるためのプログラムとしても捉えられるものである。かかるプログラムは、これを記憶させた光ディスク等の記録媒体の形態で提供されたり、インターネット等のネットワークを介して、コンピュータにダウンロードさせ、これをインストールして利用可能にするなどの形態で提供されたりするものであってもよい。
1…情報処理システム、2…ネットワーク、10…情報処理装置、20…サーバ装置、11…制御装置、12…音声入出力装置、13…通信装置、14…操作装置、15…表示装置、16…記憶装置、21…制御装置、22…通信装置、23…記憶装置、101…記憶部、102…遷移部、103…決定部、104…実行部、105…取消部、106…第1蓄積部、107…第2蓄積部、108…第1変更部、109…第2変更部、201…取得部、202…指示部

Claims (12)

  1. 第1の処理の実行が予定されている第1の予定時刻と、第2の処理の実行が予定されている複数の第2の予定時刻とを記憶する記憶手段と、
    前記第1及び前記第2の処理が実行されない非実行状態から当該第1及び当該第2の処理が実行され得る実行状態に自装置の状態を遷移させる遷移手段と、
    前記第1の予定時刻を挟まずに連続する前記第2の予定時刻の集合が所定の条件を充足する場合に、当該集合に含まれる前記第2の予定時刻のうち或る時刻から前の当該第2の予定時刻の集合が前記条件を充足しないときの当該或る時刻を、前記遷移手段に前記遷移を行わせる第3の処理の実行を予定する第3の予定時刻として決定する決定手段と、
    前記記憶手段に記憶されている第1の予定時刻になったときに自装置が前記非実行状態である場合には、前記遷移手段に前記遷移を行わせてから前記第1の処理を実行し、前記記憶手段に記憶されている第2の予定時刻になったときに自装置が前記非実行状態である場合には、次に前記遷移手段に前記遷移を行わせたときに前記第2の処理を実行し、前記決定手段により決定された第3の予定時刻になったときに自装置が前記非実行状態である場合には、前記第3の処理を実行する実行手段と
    を備えることを特徴とする情報処理装置。
  2. 前記決定手段は、前記集合に含まれる前記第2の予定時刻の数が閾値よりも多い場合に充足されるものを前記条件として、前記第3の予定時刻を決定する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記決定手段は、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻のうち、通信を行う前記第2の処理の実行を予定するものの集合が前記条件を充足しない場合に、当該集合に基づいて前記第3の予定時刻を決定する
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記実行手段により前記第2の処理が実行された際の当該第2の処理による通信の履歴を蓄積する蓄積手段を備え、
    前記決定手段は、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻のうち、前記蓄積手段に通信の履歴が蓄積されている前記第2の処理の実行を予定するものの集合が前記条件を充足しない場合に、当該集合に基づいて前記第3の予定時刻を決定する
    ことを特徴とする請求項1または2に記載の情報処理装置。
  5. 前記決定手段により決定された第3の予定時刻になるよりも前に前記遷移手段により前記遷移が行われた場合に当該第3の予定時刻を取り消す取消手段を備え、
    前記実行手段は、前記取消手段により前記第3の予定時刻が取り消された場合、当該第3の予定時刻になっても前記第3の処理を実行しない
    ことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記決定手段は、複数の前記第2の処理が各々の周期で実行される場合に、当該周期の最大公約数の整数倍となる時間の間隔で訪れる時刻を前記第3の予定時刻として決定する
    ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記決定手段は、複数の前記第2の処理が各々の周期で実行される場合に、当該周期の公倍数となる時間の間隔で訪れる時刻を前記第3の予定時刻として決定する
    ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  8. 前記決定手段により決定された第3の予定時刻から始まる所定の期間に前記第2の処理の実行が予定されている場合には、当該第2の処理の実行が予定されている時刻に前記第3の予定時刻を変更する第1変更手段を備える
    ことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記決定手段により決定された第3の予定時刻から始まる所定の期間に含まれる時刻から乱数に基づいて選出した時刻、または、当該期間に含まれ、且つ、自装置が起動した時刻を起点として所定の時間の間隔で訪れる時刻に前記第3の予定時刻を変更する第2変更手段を備える
    ことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  10. 外部装置と通信する通信手段を備え、
    前記決定手段は、前記通信手段を介した通信による前記外部装置からの指示に基づいて、前記条件を変更する
    ことを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
  11. 第1の処理の実行が予定されている第1の予定時刻と、第2の処理の実行が予定されている複数の第2の予定時刻とを記憶する記憶手段と、前記第1及び前記第2の処理が実行されない非実行状態から当該第1及び当該第2の処理が実行され得る実行状態に自装置の状態を遷移させる遷移手段とを備える情報処理装置が、前記第1の予定時刻を挟まずに連続する前記第2の予定時刻の集合が所定の条件を充足する場合に、当該集合に含まれる前記第2の予定時刻のうち或る時刻から前の当該第2の予定時刻の集合が前記条件を充足しないときの当該或る時刻を、前記遷移手段に前記遷移を行わせる第3の処理の実行を予定する第3の予定時刻として決定する決定ステップと、
    前記情報処理装置が、前記記憶手段に記憶される第1の予定時刻になったときに自装置が前記非実行状態である場合には、前記遷移手段に前記遷移を行わせてから前記第1の処理を実行し、前記記憶手段に記憶される第2の予定時刻になったときに自装置が前記非実行状態である場合には、次に前記遷移手段に前記遷移を行わせたときに前記第2の処理を実行し、前記決定ステップにおいて決定された第3の予定時刻になったときに自装置が前記非実行状態である場合には、前記第3の処理を実行する実行ステップと
    を備えることを特徴とする情報処理方法。
  12. 第1の処理の実行が予定されている第1の予定時刻と、第2の処理の実行が予定されている複数の第2の予定時刻とを記憶する記憶手段と、前記第1及び前記第2の処理が実行されない非実行状態から当該第1及び当該第2の処理が実行され得る実行状態に自装置の状態を遷移させる遷移手段とを備える情報処理装置のコンピュータに、
    前記第1の予定時刻を挟まずに連続する前記第2の予定時刻の集合が所定の条件を充足する場合に、当該集合に含まれる前記第2の予定時刻のうち或る時刻から前の当該第2の予定時刻の集合が前記条件を充足しないときの当該或る時刻を、前記遷移手段に前記遷移を行わせる第3の処理の実行を予定する第3の予定時刻として決定する決定ステップと、
    前記記憶手段に記憶される第1の予定時刻になったときに自装置が前記非実行状態である場合には、前記遷移手段に前記遷移を行わせてから前記第1の処理を実行し、前記記憶手段に記憶される第2の予定時刻になったときに自装置が前記非実行状態である場合には、次に前記遷移手段に前記遷移を行わせたときに前記第2の処理を実行し、前記決定ステップにおいて決定された第3の予定時刻になったときに自装置が前記非実行状態である場合には、前記第3の処理を実行する実行ステップと
    を実行させるためのプログラム。
JP2012158054A 2012-07-13 2012-07-13 情報処理装置、情報処理方法及びプログラム Pending JP2014021628A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012158054A JP2014021628A (ja) 2012-07-13 2012-07-13 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012158054A JP2014021628A (ja) 2012-07-13 2012-07-13 情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2014021628A true JP2014021628A (ja) 2014-02-03

Family

ID=50196462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012158054A Pending JP2014021628A (ja) 2012-07-13 2012-07-13 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2014021628A (ja)

Similar Documents

Publication Publication Date Title
CN102687098B (zh) 用于无线设备的基于工作负载的功率管理的动态时钟及电压缩放的系统和方法
KR101940389B1 (ko) 적응적 배터리 수명 연장
CN108491065B (zh) 便携式电子设备和在其中操作的方法
US8700931B2 (en) Method and system for managing power of a mobile device
US20080307248A1 (en) Cpu Clock Control Device, Cpu Clock Control Method, Cpu Clock Control Program, Recording Medium, and Transmission Medium
CN104718534B (zh) 用于占先重启多子系统移动通信设备中的软件以提高平均故障间隔时间的方法和装置
JP5792836B2 (ja) 電力しきい値を使用したモバイル通信端末のためのスマート電力マネージメントの方法および装置
US8286013B2 (en) Portable communication device with multi-tiered power save operation
EP2524273B1 (en) Dynamic low power mode implementation for computing devices
JP5281145B2 (ja) 資源消費最適化のための再発性スケジュールの統合方法及びシステム
CN103270466A (zh) 经由对定时器相关任务的协调和选择性操作的功率管理
WO2016015519A1 (en) Methods, apparatuses, and systems for controlling task migration
US10999698B2 (en) Event prediction through monitoring a mobile device
US20080141265A1 (en) Power Management Method for Platform and that Platform
US20130103960A1 (en) Method and device with intelligent power management
US20120066526A1 (en) System and method for determining optimal operating parameters for conserving power of a portable computing device
Tong et al. Application-aware traffic scheduling for workload offloading in mobile clouds
JP2014511595A (ja) モバイル通信端末のためのスマート電力管理の方法および装置
CN103608747A (zh) 基于上下文信息的电力和负载管理
JP2005108227A (ja) リソース割付けシステムにおける営業時間計算の方法および装置
CN105388991A (zh) 定时唤醒处理系统及方法
US10739835B2 (en) Power management for electronic devices
EP3210420B1 (en) Power management of a wireless communication device
CN115623557A (zh) 找网频率确定方法、找网频率确定装置、和电子设备
JP2014021628A (ja) 情報処理装置、情報処理方法及びプログラム