(58)【調査した分野】(Int.Cl.,DB名)
前記情報処理装置の状態が許容条件から外れた環境と同じ環境は、前記情報処理装置が実行したジョブの実行を指示したユーザーが前記情報処理装置を使用する環境である、請求項1に記載のシミュレート装置。
前記情報処理装置の状態が許容条件から外れた環境と同じ環境は、前記情報処理装置が前記ジョブを実行した時刻を含む時間帯である、請求項1または2に記載のシミュレート装置。
前記仮想実行制御手段は、前記情報処理装置が有する複数の演算装置にタスクを割り当てる条件を定めるパラメータを変更する、請求項1〜3のいずれかに記載のシミュレート装置。
前記仮想実行制御手段は、前記複数の演算装置のうち、前記情報処理装置の状態が前記許容条件から外れる時点における使用率が大きなコアに割り当てられているタスクが使用率の小さなコアに割り当てられるように、前記パラメータを変更する、請求項4または5に記載のシミュレート装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、情報処理装置を使用環境に適した状態に設定することが可能なシミュレート装置を提供することである。
【0006】
この発明の他の目的は、情報処理装置を使用環境に適した状態に設定することが可能な装置設定方法を提供することである。
【0007】
この発明のさらに他の目的は、情報処理装置を使用環境に適した状態に設定することが可能な装置設定プログラムを提供することである。
【課題を解決するための手段】
【0008】
この発明は上述した問題点を解決するためになされたもので、この発明のある局面によれば、シミュレート装置は、情報処理装置をシミュレートするシミュレート手段と、情報処理装置の状態が予め定められた許容条件から外れる場合に、シミュレート手段を制御して、シミュレート手段が情報処理装置をシミュレートする仮想装置に、情報処理装置に設定されているパラメータとは異なるパラメータを設定した状態で、情報処理装置が実行したジョブと同じジョブを実行させる仮想実行制御手段と、仮想装置がジョブを実行する間の仮想装置の状態が許容条件を満たす場合に仮想装置に設定されているパラメータを変更パラメータとして決定するパラメータ決定手段と、
情報処理装置を制御して、情報処理装置の環境が情報処理装置の状態が許容条件から外れた時点の環境と同じになる場合に情報処理装置に決定された変更パラメータ
を設定する設定手段と、を備える。
【0009】
この局面に従えば、情報処理装置の状態が許容条件から外れる場合に、情報処理装置に設定されているパラメータとは異なるパラメータを設定した状態で、情報処理装置が実行したジョブと同じジョブを仮想装置に実行させ、仮想装置の状態が許容条件を満たす場合に、仮想装置に設定されているパラメータを変更パラメータとして決定し、情報処理装置の環境が情報処理装置の状態が許容条件から外れた時点の環境と同じになる場合に情報処理装置に変更パラメータが設定される。このため、情報処理装置の使用環境に適した変更パラメータを情報処理装置に設定することができる。その結果、情報処理装置を使用環境に適した状態に設定することが可能なシミュレート装置を提供することができる。
【0010】
好ましくは、情報処理装置の状態が許容条件から外れた環境と同じ環境は、情報処理装置が実行したジョブの実行を指示したユーザーが情報処理装置を使用する環境である。
【0011】
この局面に従えば、ジョブの実行を指示したユーザーが情報処理装置を使用する場合に、情報処理装置で変更パラメータが設定されるので、ユーザーごとに変化する使用環境に情報処理装置を適合させることができる。
【0012】
好ましくは、情報処理装置の状態が許容条件から外れた環境と同じ環境は、情報処理装置がジョブを実行した時刻を含む時間帯である。
【0013】
この局面に従えば、情報処理装置の状態が許容条件から外れた時刻を含む時間帯に、情報処理装置で変更パラメータが設定されるので、時間帯毎に変化する使用環境に情報処理装置を適合させることができる。
【0014】
好ましくは、仮想実行制御手段は、情報処理装置が有する複数の演算装置にタスクを割り当てる条件を定めるパラメータを変更する。
【0015】
この局面に従えば、情報処理装置の状態が許容条件から外れる場合に、複数の演算装置にタスクを割り当てる条件を定めるパラメータを変更した状態で、情報処理装置が実行したジョブと同じジョブを仮想装置に実行させ、仮想装置の状態が許容条件を満たす場合に、仮想装置に設定されているパラメータを変更パラメータとして決定する。このため、複数の演算装置それぞれへのタスクの割り当てが、情報処理装置が実行するジョブに適した割り当てとなるようにすることができる。
【0016】
この発明の他の局面によれば、シミュレート装置は、情報処理装置をシミュレートするシミュレート手段と、情報処理装置の状態が予め定められた許容条件から外れる場合に、シミュレート手段を制御して、シミュレート手段が情報処理装置をシミュレートする仮想装置に、情報処理装置に設定されているパラメータとは異なるパラメータを設定した状態で、情報処理装置が実行したジョブと同じジョブを実行させる仮想実行制御手段と、仮想装置がジョブを実行する間の仮想装置の状態が許容条件を満たす場合に仮想装置に設定されているパラメータを変更パラメータとして決定するパラメータ決定手段と、を備え、仮想実行制御手段は、情報処理装置が有する複数の演算装置にタスクを割り当てる条件を定めるパラメータを変更する。
【0017】
この局面に従えば、情報処理装置の状態が許容条件から外れる場合に、情報処理装置が有する複数の演算装置にタスクを割り当てる条件を定めるパラメータを変更した状態で、情報処理装置が実行したジョブと同じジョブを仮想装置に実行させ、仮想装置の状態が許容条件を満たす場合に、仮想装置に設定されているパラメータを変更パラメータとして決定する。このため、複数の演算装置それぞれへのタスクの割り当てを、情報処理装置が実行するジョブに適した割り当てとなるようにすることができる。その結果、情報処理装置を使用環境に適した状態に設定することが可能なシミュレート装置を提供することができる。
【0018】
好ましくは、仮想実行制御手段は、複数の演算装置のうち、情報処理装置の状態が許容条件から外れる時点における使用率が大きな演算装置に割り当てられているタスクが使用率の小さな演算装置に割り当てられるように、パラメータを変更する。
【0019】
この局面に従えば、情報処理装置が備える複数の演算装置のうちから、情報処理装置の状態が許容条件から外れる時点における使用率が大きな演算装置に割り当てられているタスクが、使用率が小さな演算装置に割り当てられるように、パラメータが変更される。このため、複数の演算装置間で負荷を分散することができる。
【0020】
好ましくは、複数の演算装置は、画像処理を実行するためのGPU(Graphics Processing Unit)を含み、仮想実行制御手段は、GPUにタスクを割り当てるか否かを定めるパラメータを変更する。
【0021】
この局面に従えば、GPUにタスクを割り当てるか否かを定めるパラメータが変更されるので、あるタスクをGPUで実行する場合と実行しない場合とを比較することができる。
【0022】
この発明のさらに他の局面によれば、装置設定方法は、情報処理装置をシミュレートするシミュレートステップと、情報処理装置の状態が予め定められた許容条件から外れる場合に、シミュレートステップにおいて情報処理装置をシミュレートする仮想装置に、情報処理装置に設定されているパラメータとは異なるパラメータを設定した状態で、情報処理装置が実行したジョブと同じジョブを実行させる仮想実行制御ステップと、仮想装置がジョブを実行する間の仮想装置の状態が許容条件を満たす場合に仮想装置に設定されているパラメータを変更パラメータとして決定するパラメータ決定ステップと、
情報処理装置を制御して、情報処理装置の環境が情報処理装置の状態が許容条件から外れた時点の環境と同じになる場合に情報処理装置に決定された変更パラメータ
を設定する設定ステップと、をシミュレート装置に実行させる。
【0023】
この局面に従えば、情報処理装置を使用環境に適した状態に設定することが可能な装置設定方法を提供することができる。
【0024】
この発明のさらに他の局面によれば、装置設定方法は、情報処理装置をシミュレートするシミュレートステップと、情報処理装置の状態が予め定められた許容条件から外れる場合に、シミュレートステップにおいて情報処理装置をシミュレートする仮想装置に、情報処理装置に設定されているパラメータとは異なるパラメータを設定した状態で、情報処理装置が実行したジョブと同じジョブを実行させる仮想実行制御ステップと、仮想装置がジョブを実行する間の仮想装置の状態が許容条件を満たす場合に仮想装置に設定されているパラメータを変更パラメータとして決定するパラメータ決定ステップと、をシミュレート装置に実行させ、仮想実行制御ステップは、情報処理装置が有する複数の演算装置にタスクを割り当てる条件を定めるパラメータを変更するステップを含む。
【0025】
この局面に従えば、情報処理装置を使用環境に適した状態に設定することが可能なシミュレート装置を提供することができる。
【0026】
この発明のさらに他の局面によれば、装置設定プログラムは、情報処理装置をシミュレートするシミュレートステップと、情報処理装置の状態が予め定められた許容条件から外れる場合に、シミュレートステップにおいて情報処理装置をシミュレートする仮想装置に、情報処理装置に設定されているパラメータとは異なるパラメータを設定した状態で、情報処理装置が実行したジョブと同じジョブを実行させる仮想実行制御ステップと、仮想装置がジョブを実行する間の仮想装置の状態が許容条件を満たす場合に仮想装置に設定されているパラメータを変更パラメータとして決定するパラメータ決定ステップと、
情報処理装置を制御して、情報処理装置の環境が情報処理装置の状態が許容条件から外れた時点の環境と同じになる場合に情報処理装置に決定された変更パラメータ
を設定する設定ステップと、をシミュレート装置を制御するコンピューターに実行させる。
【0027】
この局面に従えば、情報処理装置を使用環境に適した状態に設定することが可能な装置設定方法を提供することができる。
【0028】
この発明のさらに他の局面によれば、装置設定プログラムは、情報処理装置をシミュレートするシミュレートステップと、情報処理装置の状態が予め定められた許容条件から外れる場合に、シミュレートステップにおいて情報処理装置をシミュレートする仮想装置に、情報処理装置に設定されているパラメータとは異なるパラメータを設定した状態で、情報処理装置が実行したジョブと同じジョブを実行させる仮想実行制御ステップと、仮想装置がジョブを実行する間の仮想装置の状態が許容条件を満たす場合に仮想装置に設定されているパラメータを変更パラメータとして決定するパラメータ決定ステップと、をシミュレート装置を制御するコンピューターに実行させ、仮想実行制御ステップは、情報処理装置が有する複数の演算装置にタスクを割り当てる条件を定めるパラメータを変更するステップを含む。
【0029】
この局面に従えば、情報処理装置を使用環境に適した状態に設定することが可能なシミュレート装置を提供することができる。
【発明を実施するための形態】
【0031】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
【0032】
図1は、本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。
図1を参照して、情報処理システム1は、MFP100,100A,100Bと、サーバー200と、を含む。
【0033】
MFP100,100A,100Bは、画像形成装置の一例であり、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能を少なくとも備えている。MFP100,100A,100Bは、画像形成機能に加えて、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えてもよい。サーバー200は、一般的なコンピューターである。
【0034】
サーバー200およびMFP100,100A,100Bそれぞれは、ネットワーク3に接続される。ネットワーク3は、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。ネットワーク3は、さらに、インターネットに接続されてもよい。この場合、サーバー200およびMFP100,100A,100Bそれぞれは、ネットワーク3を介してインターネットに接続されたコンピューターと互いに通信可能である。また、ネットワーク3は、LANに限らず、公衆交換電話網(Public Switched Telephone Networks)を用いたネットワークであってもよい。さらに、ネットワーク3は、インターネットなどのワイドエリアネットワーク(WAN)であってもよい。
【0035】
図2は、本実施の形態におけるサーバーのハードウェア構成の概要の一例を示すブロック図である。
図2を参照して、サーバー200は、サーバー200の全体を制御するための中央演算装置(CPU)201と、CPU201が実行するためのプログラムを記憶するROM(Read Only Memory)202と、CPU201の作業領域として使用されるRAM(Random Access Memory)203と、データを不揮発的に記憶するハードディスクドライブ(HDD)204と、CPU201をネットワーク3に接続する通信部205と、情報を表示する表示部206と、ユーザーにより入力される操作を受け付ける操作部207と、外部記憶装置208と、を含む。
【0036】
表示部206は、液晶表示装置(LCD)、有機ELD(Electro−Luminescence Display)等の表示装置である。操作部207は、キーボードなどのハードキーである。また、操作部207は、タッチパネルであってもよい。タッチパネルは、表示部206の上面または下面に表示部206に重畳して設けられる。タッチパネルは、表示部206の表示面中でユーザーにより指示された位置を検出する。
【0037】
通信部205は、CPU201をネットワーク3に接続するためのインターフェースである。通信部205は、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで、ネットワークに接続されたMFP100,100A,100Bと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。サーバー200に、MFP100,100A,100BそれぞれのIP(Internet Protocol)アドレスを登録しておくことにより、サーバー200は、MFP100,100A,100Bそれぞれと通信することができ、データの送受信が可能となる。
【0038】
HDD204は、CPU201が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。CPU201は、HDD204に記録されたプログラムを、RAM203にロードして実行する。
【0039】
外部記憶装置208は、プログラムを記憶したCD−ROM(Compact Disk ROM)209が装着される。CPU201は、外部記憶装置208を介してCD−ROM209にアクセス可能である。CPU201は、外部記憶装置208に装着されたCD−ROM209に記録されたプログラムをRAM203にロードして実行する。なお、CPU201が実行するプログラムを記憶する媒体としては、CD−ROM209に限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROMまたはEPROM(Erasable Programmable ROM)などの半導体メモリであってもよい。
【0040】
また、CPU201が実行するプログラムは、CD−ROM209に記録されたプログラムに限られず、HDD204に記憶されたプログラムをRAM203にロードして実行するようにしてもよい。この場合、ネットワーク3に接続された他のコンピューターが、HDD204に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、サーバー200が、ネットワーク3またはインターネットに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD204に記憶するようにしてもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0041】
MFP100,100A,100Bのハードウェア構成および機能は同じなので、ここでは、MFP100を例に説明する。
図3は、本実施の形態におけるMFPのハードウェア構成の概要の一例を示すブロック図である。
図3を参照して、MFP100は、メイン基板111と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、通信インターフェース(I/F)部160と、ファクシミリ部170と、外部記憶装置180と、大容量記憶装置としてのハードディスクドライブ(HDD)113と、ユーザーインターフェースとしての操作パネル115とを含む。
【0042】
メイン基板111は、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113、および操作パネル115と接続され、MFP100の全体を制御する。
【0043】
自動原稿搬送装置120は、原稿トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿に形成された画像が読み取られた原稿を原稿排紙トレイに排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。
【0044】
給紙部150は、給紙トレイに収納された用紙を画像形成部140に搬送する。画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
【0045】
通信I/F部160は、ネットワーク3にMFP100を接続するためのインターフェースである。通信I/F部160は、TCPまたはUDP等の通信プロトコルで、ネットワークに接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。
【0046】
通信I/F部160は、ネットワーク3から受信されるデータをメイン基板111に出力し、メイン基板111から入力されるデータをネットワーク3に出力する。通信I/F部160は、ネットワーク3から受信されるデータのうちMFP100宛てのデータのみを、メイン基板111に出力し、ネットワーク3から受信されるデータのうちMFP100とは異なる装置宛てのデータを廃棄する。
【0047】
ファクシミリ部170は、公衆交換電話網(PSTN)に接続され、ファクシミリデータを送受信する。外部記憶装置180は、CD−ROM181、または半導体メモリが装着される。外部記憶装置180は、CD−ROM181または半導体メモリに記憶されたデータを読み出す。外部記憶装置180は、CD−ROM181または半導体メモリにデータを記憶する。
【0048】
操作パネル115は、MFP100の上面に設けられ、表示部118と操作部119とを含む。表示部118は、液晶表示装置(LCD)、有機ELD等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部119は、複数のハードキーと、タッチパネルと、を含む。タッチパネルは、表示部118の上面または下面に表示部に重畳して設けられたマルチタッチ対応のタッチパネルであり、表示部118の表示面中でユーザーにより指示された位置を検出する。
【0049】
図4は、本実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。
図4を参照して、メイン基板111は、CPU171と、ROM173と、RAM175と、画像制御ASIC(Application Specific Integrated Circuit)177と、を含む。
【0050】
CPU171、ROM173、RAM175および画像制御ASIC177それぞれは、バス179に接続されており、データの転送が可能である。CPU171は、MFP100の全体を制御する。ROM173は、CPU171が実行するプログラムを記憶する。RAM175は、CPU171の作業領域として用いられる揮発性の半導体メモリである。
【0051】
CPU171は、複数の演算装置を含む。具体的には、CPU171は、4つの演算装置として4つのCPUコアを有するクアッドコアプロセッサである。このため、CPU171は、複数の処理を並列に実行することが可能である。なお、CPU171が有する演算装置の数は、4つに限らず、2以上であればよい。
【0052】
CPU171は、HDD113に記憶されたプログラムをRAM175にロードして実行する。CPU171が実行するプログラムは、ハードウェア資源を制御するための制御プログラム、およびアプリケーションプログラムを含む。ハードウェア資源は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、の通信I/F部160、ファクシミリ部170、HDD113および操作パネル115を含む。アプリケーションプログラムは、例えば、ファクシミリ部170を制御してファクシミリデータを送信するファクシミリ送信プログラム、ファクシミリ部170を制御してファクシミリデータを受信するファクシミリ受信プログラム、通信I/F部160を制御してプリントジョブを受信し、画像形成部140および給紙部150を制御してプリントジョブに基づいて画像を形成するプリントプログラム、原稿読取部130を制御して原稿を読み取る原稿読取プログラムを含む。また、アプリケーションプログラムは、MFP100が備える消耗品を管理するメンテナンスプログラム、エラー状態を通知するエラー状態通知プログラムを、含んでもよい。なお、CPU171が実行するアプリケーションプログラムを、これらに限定するものではない。
【0053】
画像制御ASIC177は、自動原稿搬送装置120、原稿読取部130、画像形成部140、および給紙部150と接続され、それらを制御する。また、画像制御ASIC177は、画像処理を実行する演算装置としてGPU(Graphics Processing Unit)を内蔵している。GPUは、処理対象となる画像データに所定の画像処理を実行し、また、画像データを画像形成部140がプリントするためのラスターデータに変換する画像処理を実行する。GPUは、ベクトルイメージデータをラスターデータに変換する画像処理を実行するRIP(Raster Image Processor)を含む。
【0054】
本実施の形態におけるサーバー200は、MFP100,100A,100Bをシミュレートするシミュレータを備えている。サーバー200によるMFP100,100A,100Bそれぞれのシミュレートは同じなので、ここでは、サーバー200がMFP100をシミュレートする場合を例に説明する。
【0055】
図5は、本実施の形態におけるサーバーが備えるシミュレータの概要の一例を示す図である。このシミュレータは、CPU201がシミュレートプログラムを実行することにより、CPU201に形成される。
図5を参照して、シミュレータは、CPU周辺シミュレータ300と、ハードウェア(HW)シミュレータ320と、を含む。CPU周辺シミュレータ300は、MFP100が備えるCPU171をシミュレートする仮想CPU301と、ROM173およびRAM175をエミュレートする仮想メモリ303と、周辺モデル305と、同期設定モデル307と、割込制御部309と、を含む。仮想CPU301、仮想メモリ303、周辺モデル305および同期設定モデル307は、バス(Bus)311に接続されている。仮想CPU301は、CPU171が有する4つのCPUコアをそれぞれシミュレートする4つの仮想CPUコアを有する。
【0056】
周辺モデル305は、MFP100が備えるHDD113、操作パネル115、通信I/F部160および外部記憶装置180をそれぞれエミュレートするHDD113A、操作パネル115A、通信I/F部160Aおよび外部記憶装置180Aを含む。
【0057】
同期設定モデル307は、仮想CPU301が、仮想メモリ303および周辺モデル305と同期するための設定をする。割込制御部309は、仮想CPU301が仮想メモリ303および周辺モデル305と同期するための設定時に、仮想CPU301に割り込みを発生させる。
【0058】
HWシミュレータ320は、PCI−ExpressBusモデル321と、画像制御ASICモデル323と、ハードウェア資源モデル325と、を含む。PCI−ExpressBusモデル321は、バス311に接続され、PCI−Express規格に従った接続をエミュレートする。画像制御ASICモデル323は、MFP100が備える画像制御ASIC177をエミュレートする。ハードウェア資源モデル325は、MFP100が備えるハードウェア資源をエミュレートする。具体的には、ハードウェア資源モデル325は、MFP100が備える自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150およびファクシミリ部170をそれぞれエミュレートする自動原稿搬送装置120A、原稿読取部130A、画像形成部140A、給紙部150Aおよびファクシミリ部170Aを含む。
【0059】
図6は、本実施の形態におけるMFPが備えるCPUが有する機能の一例を示すブロック図である。
図6に示す機能は、MFP100が備えるCPU171が、ROM173、HDD113またはCD−ROM181に記憶された変更依頼プログラムを実行することにより、CPU171により実現される機能である。変更依頼プログラムは、装置設定プログラムの一部である。
図6を参照して、CPU171は、判定部51と、ログ記憶部53と、装置情報送信部55と、設定指示受信部57と、装置側設定部59と、を含む。
【0060】
判定部51は、MFP100の状態が許容条件を満たすか否かを判断する。MFP100の状態は、ジョブの処理速度である。判定部51は、MFP100の状態が許容条件を満たさない場合、装置情報送信部55に送信指示を出力し、MFP100の状態が許容条件を満たす場合は、装置情報送信部55に正常信号を出力する。MFP100に予め設定された許容条件は、ジョブ処理速度が予め定められた下限値以上となる条件とすることができる。また、許容条件は、ジョブ処理速度が下限値を下回る場合であっても、所定時間継続して下限値を下回らなければ許容条件が満たされる条件としてもよい。この場合、判定部51は、ジョブの処理速度が下限値を下回る状態が所定時間以上継続する場合に、MFP100の状態が許容条件を満たさないと判断し、装置情報送信部55に送信指示を出力し、ジョブの処理速度が下限値を下回る状態が所定時間以上継続しなければ、MFP100の状態が許容条件を満たすと判断し、装置情報送信部55に正常信号を出力する。また、MFP100の状態は、ある処理の実行を開始してから終了するまでのレスポンスタイムとしてもよい。例えば、MFP100の状態をレスポンスタイムとする場合、操作パネル115Aでユーザーにより入力される操作を受け付けてから画面が表示されるまでの時間をレスポンスタイムとする。
【0061】
判定部51は、また、MFP100の状態が許容条件を満たさないと判断する場合、CPU171が有する4つのCPUコアそれぞれの負荷を計測し、4つのCPUコアそれぞれの負荷を、装置情報送信部55に送信指示とともに出力する。CPUコアの負荷は、例えば、CPUコアの使用率としている。
【0062】
ログ記憶部53は、CPU171が実行するジョブの履歴であるログをHDD113に記憶する。ジョブは、CPU171が実行する処理を定める。ログは、ジョブごとに、そのジョブの実行を指示したユーザーのユーザー識別情報と、ジョブと、ジョブが外部から受信された時刻と、ジョブが実行された時刻と、処理データと、を含む。処理データは、ジョブで定められた処理を実行するCPU171が処理の対象としたデータである。処理データは、MFP100が生成するデータの他、MFP100とは別の外部装置から受信されたデータを含む。MFP100が生成するデータは、例えば、原稿読取部130が原稿を読み取って出力するデータを含む。外部装置から受信されるデータは、外部装置から受信されてHDD113に記憶されたデータを含む。
【0063】
装置情報送信部55は、判定部51から送信指示が入力されることに応じて、装置情報を生成し、生成された装置情報を、通信I/F部160を制御してサーバー200に送信する。装置情報は、MFP100に搭載されているCPU171に関する情報、MFP100にインストールされたハードウェア資源に関するハード情報と、MFP100にインストールされたソフトウェア資源に関するソフト情報と、ログ情報と、判定部51から入力される4つのCPUコアそれぞれの負荷と、を含む。CPU171に関する情報は、CPU171の機種名と、4つのCPUコアそれぞれにタスクを割り当てる規則を定めた規則パラメータと、を含む。規則パラメータは、4つのCPUコアそれぞれに割り当て可能なタスクの種類を定める。規則パラメータは、画像処理に関するタスクをCPU171で実行するか、画像制御ASIC177が有するGPUで実行するかを定める割当パラメータを含む。
【0064】
ハード情報は、ハードウェア資源を識別するためのハード識別情報と、ハードウェア資源を制御するために設定されているハードパラメータとを含む。ハード情報は、ハードウェア資源が複数の場合には、複数のハードウェア資源ごとに、ハード識別情報とハードパラメータとを含む。ソフト情報は、MFP100にインストールされているプログラムのプログラム名と、そのプログラムを実行するために設定されているソフトパラメータと、を含む。ログ情報は、判定部51から送信指示が入力された時点で、CPU171が実行しているジョブに対応するログを含む。装置情報送信部55は、HDD113にログ記憶部53により記憶されたログのうち、期間情報で特定される期間内に送信指示が入力された時点を含むログを抽出し、抽出されたログを含むログ情報を生成する。設定指示受信部57および装置側設定部59については後述する。
【0065】
図7は、本実施の形態におけるサーバーが備えるCPUが有する機能の一例を示すブロック図である。
図7に示す機能は、サーバー200が備えるCPU201が、ROM202、HDD204またはCD−ROM209に記憶された装置設定プログラムを実行することにより、CPU201により実現される機能である。
【0066】
図7を参照して、サーバー200が備えるCPU201は、装置情報取得部251と、シミュレート部253と、仮想実行制御部255と、設定部257と、を含む。
【0067】
装置情報取得部251は、MFP100,100A,100Bのいずれかから装置情報を取得する。上述したように、MFP100,100A,100Bのいずれかは、許容条件を満たさなくなる場合に、装置情報を送信する。装置情報取得部251は、通信部205がMFP100,100A,100Bのいずれかから装置情報を受信すると、通信部205が受信した装置情報を取得する。ここでは、MFP100から装置情報を取得する場合を例に説明する。装置情報取得部251は、装置情報を取得する場合、装置情報をシミュレート部253および仮想実行制御部255に出力する。
【0068】
仮想実行制御部255は、装置情報取得部251から装置情報が入力される。仮想実行制御部255は、パラメータ変更部261と、仮想判定部263と、パラメータ決定部265と、を含む。パラメータ変更部261は、装置情報に含まれるCPU171に関する情報で定められる規則パラメータを、変更する。パラメータ変更部261は、負荷の大きなCPUコアに割り当てられているタスクが負荷の小さなCPUコアに割り当てられるように、規則パラメータを変更する。例えば、4つのCPUコアのうち負荷が最大のCPUコアに割り当てられているタスクが、負荷が最小のCPUコアに割り当てられるように規則パラメータを変更する。また、4つのCPUコアを負荷が大きな2つの組と負荷が小さな2つの組に分類し、負荷が大きな組の2つのうちいずれかに割り当てられているタスクが、負荷が小さな組の2つのいずれかに割り当てられるように規則パラメータを変更するようにしてもよい。
【0069】
また、パラメータ変更部261は、規則パラメータに含まれる割当パラメータを変更する。パラメータ変更部261は、割当パラメータによって画像処理に関するタスクがCPU171で実行することが定められている場合、画像処理に関するタスクがGPUで実行されるように割り当てパラメータを変更し、割当パラメータによって画像処理に関するタスクがGPUで実行することが定められている場合、画像処理に関するタスクがCPU171で実行されるように割り当てパラメータを変更する。仮想実行制御部255は、パラメータ変更部261によって変更された規則パラメータを、シミュレート部253に出力する。
【0070】
シミュレート部253は、装置情報取得部251から装置情報が入力され、パラメータ変更部261から変更された規則パラメータが入力される。シミュレート部253は、MFP100をシミュレートする。まず、シミュレート部253は、装置情報に基づいて、MFP100に装着されたハードウェア資源を設定し、MFP100のCPU171が実行するソフトウェア資源を仮想CPU301に実行させ、ハードパラメータ、ソフトパラメータおよび、パラメータ変更部261から入力される変更された規則パラメータを設定する。
【0071】
MFP100は、ハードウェア資源として、画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115を含む。このため、装置情報に含まれるハード情報は、画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115をハードウェア資源として定める。シミュレート部253は、装置情報に含まれるハード情報で定められた画像制御ASIC177、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113および操作パネル115それぞれをエミュレートするエミュレータを設定するとともに、ハード情報に含まれるハードパラメータを設定する。さらに、シミュレート部253は、エミュレートするハードウェア資源との同期を設定する。例えば、
図6に示したCPU周辺シミュレータ300の同期設定モデル307に、仮想CPU301が、ハードウェア資源のエミュレータと同期するように仮想CPU301のレジスタ値を設定させるとともに、仮想メモリ303のメモリマップを書き換える。
【0072】
また、シミュレート部253は、装置情報に含まれるソフト情報で定められたソフトウェア資源を仮想CPUが実行する状態に設定し、装置情報に含まれる設定値を設定する。具体的には、シミュレート部253は、装置情報に含まれるソフト情報で定められたソフトウェア資源をインストールし、装置情報に含まれる設定値を設定する。これにより、シミュレート部253において、MFP100をシミュレートした仮想装置が完成する。なお、MFP100のRAM175に記憶されたデータをスナップショットとして取得し、仮想メモリ303に記憶するようにしてもよい。
【0073】
シミュレート部253は、装置情報に基づいて、MFP100のCPU171で実行されたジョブと同一のジョブを仮想CPU301に実行させる。この場合、シミュレート部253は、パラメータ変更部261によって変更された規則パラメータに従って、仮想CPU301が有する4つの仮想CPUコアへタスクを割り当てる。また、シミュレート部253は、パラメータ変更部261によって変更された規則パラメータに含まれる割当パラメータに従って、画像処理タスクを仮想CPU301と画像制御ASIC177とのいずれかに割り当てる。シミュレート部253は、装置情報に含まれるログ情報で複数のログが定められている場合、複数のログそれぞれに含まれる期間情報に従って、複数のジョブそれぞれを実行するタイミングを決定し、複数のジョブそれぞれを決定されたタイミングで実行する。期間情報は、ジョブが開始された日時とジョブが開始されてから終了するまでの期間を示すため、複数のジョブそれぞれの開始された日時にしたがって、複数のジョブを実行するタイミングを決定する。具体的には、複数のジョブそれぞれの開始された日時にしたがって、複数のジョブを実行する順番を決定する。開始時に値が最も前のジョブを基準にして、2番目以降のジョブを開始するタイミングを決定するようにすればよい。
【0074】
仮想判定部263は、シミュレート部253がMFP100をシミュレートする仮想装置の状態が、MFP100に予め定められた許容条件を満たすか否かを判断する。MFP100に予め設定された許容条件は、ジョブ処理速度が予め定められた下限値以上となる条件とすることができる。また、許容条件は、ジョブ処理速度が下限値を下回る場合であっても、所定時間継続して下限値を下回らなければ許容条件が満たされる条件としてもよい。仮想判定部263は、仮想装置の状態が許容条件を満たさない場合は、パラメータ変更部261に変更指示を出力し、仮想装置の状態が許容条件を満たす場合は、パラメータ変更部261およびパラメータ決定部265に決定指示を出力する。
【0075】
パラメータ変更部261は、仮想判定部263から変更指示が入力されることに応じて、規則パラメータを変更し、変更後の新たな規則パラメータをシミュレート部253に出力する。シミュレート部253は、パラメータ変更部261から新たな規則パラメータが入力されるごとに、MFP100のCPU171で実行されたジョブと同一のジョブを仮想CPU301に実行させる。このため、パラメータ変更部261は、仮想判定部263から変更指示が入力されるごとに、新たな規則パラメータを決定し、シミュレート部253は、パラメータ変更部261によって新たな規則パラメータが決定されるごとに、新たな規則パラメータに従って仮想CPU301に1以上のジョブを実行させる。このサイクルは、シミュレート部253が1以上のジョブを仮想CPU301に実行させている間に、仮想判定部263によってシミュレート部253がMFP100をシミュレートする仮想装置の状態が、MFP100に予め定められた許容条件を満たすと判断されるまで繰り返される。パラメータ変更部261は、仮想判定部263から決定指示が入力されることに応じて、その時点における規則パラメータをパラメータ決定部265に出力する。
【0076】
パラメータ決定部265は、仮想判定部263から決定指示が入力される場合、パラメータ変更部261から入力される規則パラメータを変更パラメータに決定し、変更パラメータを設定部257に出力する。また、パラメータ決定部265は、装置情報に含まれるログ情報に基づいて、仮想装置に実行させたジョブの実行を指示したユーザーのユーザー識別情報を、設定部257に出力する。さらに、パラメータ決定部265は、装置情報に含まれるログ情報に基づいて、仮想装置に実行させたジョブの期間情報を設定部257に出力する。
【0077】
設定部257は、パラメータ決定部265から変更パラメータが入力されることに応じて、MFP100の環境がMFP100の状態が許容条件から外れた時点の環境と同じになる場合にMFP100に変更パラメータが設定されるように、MFP100を制御する。設定部257は、ユーザー設定部271と、時間帯設定部273と、を含む。ユーザー設定部271は、パラメータ決定部265から入力されるユーザー識別情報で識別されるユーザーがMFP100を使用している間、変更パラメータを設定する第1コマンドを、MFP100に送信する。第1コマンドは、ユーザー識別情報と、変更パラメータとを含む。
【0078】
時間帯設定部273は、パラメータ決定部265から入力される期間情報で特定される時刻を含む時間帯に、変更パラメータを設定する第2コマンドを、MFP100に送信する。第2コマンドは、時間帯と、変更パラメータとを含む。設定部257は、ユーザー設定部271および時間帯設定部273のいずれか一方を能動化する。ユーザー設定部271および時間帯設定部273のいずれを能動化するかは、予め設定しておくようにすればよい。
【0079】
図6に戻って、設定指示受信部57は、通信I/F部160を制御して、サーバー200から第1コマンドおよび第2コマンドのいずれかを受信する。設定指示受信部57は、サーバー200から受信された第1コマンドまたは第2コマンドを、装置側設定部59に出力する。
【0080】
装置側設定部59は、通信I/F部160がサーバー200から第1コマンドが入力される場合、第1コマンドを実行し、第1コマンドに含まれるユーザー識別情報で識別されるユーザーがMFP100を使用している間、第1コマンドに含まれる変更パラメータを設定する。このため、過去にMFP100が許容条件を外れるジョブを実行させたユーザーがMFP100を使用している間だけ、規則パラメータが変更パラメータに変更される。MFP100を使用するユーザーは、操作パネル115を使用するユーザー、外部のPCからMFP100を遠隔操作するユーザー、外部のPCを操作するユーザーであって、PCにプリントジョブを送信する指示をするユーザーを含む。操作パネル115を使用するユーザー、外部のPCからMFP100を遠隔操作するユーザーは、ユーザー認証することにより特定するようにすればよい。また、外部のPCを操作するユーザーであって、PCにプリントジョブを送信する指示をするユーザーは、プリントジョブに、そのプリントジョブの送信を指示したユーザーのユーザー識別情報を含めるようにして、受信されたジョブに含まれるユーザー識別情報に基づいて特定するようにすればよい。
【0081】
装置側設定部59は、第2コマンドが入力される場合、第2コマンドに含まれる時間帯だけ、第2コマンドに含まれる変更パラメータを設定する。このため、過去にMFP100が許容条件を外れた時刻を含む時間帯だけ、規則パラメータが変更パラメータに変更される。
【0082】
次に、変更パラメータの決定について詳細に説明する。
図8は、規則パラメータの一例を示す図である。規則パラメータは、MFP100が有する4つのCPUコアそれぞれに割り当て可能なタスクの種類を定める。
図8においては、4つのCPUコアを、コア1、コア2、コア3およびコア4で示す。また、タスク種類として、ベクトルデータ生成、ラスタライズ、データ変換、通信、スキャン、ブラウジング、内部サーバーの7種類を示している。タスク種類がベクトルデータ生成のタスクは、ベクトルデータを生成する処理を実行するタスクである。タスク種類がラスタライズのタスクは、ベクトルデータからラスターデータを生成する処理を実行するタスクである。タスク種類がデータ変換のタスクは、データのフォーマットを変更する処理を実行するタスクである。タスク種類が通信は、データを送受信する処理を実行するタスクである。タスク種類がスキャンのタスクは、原稿読取部130を制御して原稿を読み取る処理を実行するタスクである。タスク種類がブラウジングのタスクは、ブラウジングプログラムを実行するタスクである。タスク種類がスキャンのタスクは、原稿読取部130を制御して原稿を読み取る処理を実行するタスクである。タスク種類が内部サーバーのタスクは、サーバーとして機能するための処理を実行するタスクである。
【0083】
コア1のCPUコアには、ベクトルデータ生成、ラスタライズ、データ変換、通信およびスキャンのタスク種類が割り当てられる。コア2のCPUコアには、ベクトルデータ生成およびラスタライズのタスク種類が割り当てられる。コア3のCPUコアには、ブラウジングのタスク種類が割り当てられる。コア4のCPUコアには、内部サーバーのタスク種類が割り当てられる。
【0084】
図9は、4つのCPUコアへのタスクの割り当ての一例を示す第1の図である。
図9では、
図8に示した規則パラメータが設定されている状態で、許容条件を外れた場合に4つのCPUコアそれぞれに割り当てられたタスクの一例を示している。
図9においては、タスク種類がベクトルデータ生成のタスクを、Rip1〜4で示し、タスク種類がラスタライズのタスクを、Raster1〜4で示し、タスク種類がデータ変換のタスクを、Convで示し、タスク種類が通信のタスクを、Nicfumで示し、タスク種類がスキャンのタスクを、Scanで示し、タスク種類がブラウジングのタスクを、Browserで示し、タスク種類が内部サーバーのタスクをIWSで示している。
【0085】
コア1のCPUコアに、Scan、Conv、Nicfum、Raster1、Raster2、Rip1およびRip2の7つのタスクが割り当てられている。コア2のCPUコアに、Raster3、Raster4、Rip3およびRip4の4つのタスクが割り当てられている。コア3のCPUコアに、Browserの1つのタスクが割り当てられている。コア4のCPUコアに、IWSの1つのタスクが割り当てられている。
【0086】
図10は、4つのCPUコアそれぞれについてタスクごとの使用率を示す第1図である。
図10は、
図9に示したタスクが割り当てられた場合における使用率を示す。コア1のCPUコアにおいて、Scanのタスクの使用率は1、Convのタスクの使用率は1、Nicfumのタスクの使用率は8、Raster1のタスクの使用率は5、Raster2のタスクの使用率は5、Rip1のタスクの使用率は40およびRip2のタスクの使用率は40である。このため、コア1のCPUコアの使用率の合計は100である。
【0087】
コア2のCPUコアにおいて、Raster3のタスクの使用率は30、Raster4のタスクの使用率は30、Rip3のタスクの使用率は20およびRip4のタスクの使用率は20である。このため、コア2のCPUコアの使用率の合計は100である。
【0088】
コア3のCPUコアにおいて、Browserのタスクの使用率は30である。このため、コア3のCPUコアの使用率の合計は30である。コア4のCPUコアにおいて、IWSのタスクの使用率は5である。このため、コア4のCPUコアの使用率の合計は5である。
【0089】
図11は、変更パラメータの一例を示す図である。
図11を参照して、変更パラメータは、
図8に示した規則パラメータと比較して、コア3のCPUコアにブラウジングのタスク種類に加えてラスタライズのタスクの種類が追加されている点、コア4のCPUコアに内部サーバーのタスク種類に加えてラスタライズのタスクの種類が追加されている点が異なる。
【0090】
図12は、4つのCPUコアへのタスクの割り当ての一例を示す第2の図である。
図12を参照して、
図9に示したタスクの割り当てと異なる点は、コア1のCPUコアに割り当てられていたRaster1、Raster2の2つのタスクが、コア3のCPUコアに割り当てられる点、および、コア2のCPUコアに割り当てられていたRaster3、Raster4の2つのタスクがコア4のCPUコアに割り当てられる点である。
【0091】
図13は、4つのCPUコアそれぞれについてタスクごとの使用率を示す第2の図である。
図13を参照して、コア1のCPUコアにおいて、Raster1、Raster2の2つのタスクが割り当てられなくなったことにより、コア1のCPUコアの使用率の合計が90に減少している。また、コア2のCPUコアにおいて、Raster3、Raster4の2つのタスクが割り当てられなくなったことにより、Rip3、Rip4の2つのタスクの使用率が20から40に上昇しているが、コア2のCPUコアの使用率の合計が80に減少している。
【0092】
また、コア3のCPUコアにおいて、Raster1、Raster2の2つのタスクが新たに割り当てられ、それぞれの使用率が30となり、コア3のCPUコアの使用率の合計が90に上昇している。Raster1、Raster2の2つのタスクは、コア1のCPUコアに割り当てられる場合には使用率が5であったものが、コア3のCPUコアに割り当てられることにより使用率が30に上昇している。このため、Raster1、Raster2の2つのタスクの処理速度が速くなる。
【0093】
また、コア4のCPUコアにおいて、Raster3、Raster4の2つのタスクが新たに割り当てられ、それぞれの使用率が40となり、コア4のCPUコアの使用率の合計が85に上昇している。Raster3、Raster4の2つのタスクは、コア2のCPUコアに割り当てられる場合には使用率が30であったものが、コア4のCPUコアに割り当てられることにより使用率が40に上昇している。このため、Raster3、Raster4の2つのタスクの処理速度が速くなる。
【0094】
図14は、本実施の形態における変更依頼処理の流れの一例を示すフローチャートである。変更依頼処理は、MFP100が備えるCPU171が、ROM173、HDD113またはCD−ROM181に記憶された変更依頼プログラムを実行することにより、CPU201により実現される機能である。変更依頼プログラムは、装置設定プログラムの一部である。
図14を参照して、CPU171は、ジョブを受け付けたか否かを判断する(ステップS51)。ジョブを受け付けたならば処理をステップS52に進めるが、そうでなければ処理をステップS63に進める。CPU171は、通信I/F部160が外部のPCなどからジョブを受信したならばジョブを受け付ける。また、CPU171は、操作部119がユーザーによるジョブを入力する操作を受け付ける場合に、ジョブを受け付ける。ステップS52〜ステップS57の処理の詳細は、後述する。
【0095】
ステップS58においては、ステップS51において受け付けられたジョブの実行を開始し、処理をステップS59に進める。ステップS59においては、許容条件外となったか否かを判断する。ジョブの処理速度が予め定められたしきい値以下となる場合に許容条件外と判断する。許容条件外ならば処理をステップS60に進めるが、そうでなければ処理をステップS63に進める。
【0096】
ステップS60においては、CPU171が有する4つのCPUコアそれぞれの負荷を検出する。そして、装置情報を生成し(ステップS61)、通信I/F部160を制御して、サーバー200に装置情報を送信し(ステップS62)、処理をステップS63に進める。
【0097】
ステップS63においては、サーバー200から第1コマンドを受信したか否かを判断する。第1コマンドを受信したならば処理をステップS64に進めるが、そうでなければ処理をステップS65に進める。ステップS64においては、ユーザー別変更を設定し、処理をステップS51に戻す。ユーザー別変更の設定は、第1コマンドに含まれるユーザー識別情報で識別されるユーザーがMFP100を操作する間のみ、規則パラメータを第1コマンドに含まれる変更パラメータに変更した状態にする設定である。この場合、第1コマンドに含まれるユーザー識別情報および変更パラメータを一時記憶する。
【0098】
ステップS65においては、サーバー200から第2コマンドを受信したか否かを判断する。第2コマンドを受信したならば処理をステップS66に進めるが、そうでなければ処理をステップS51に戻す。ステップS66においては、時間帯別変更を設定し、処理をステップS51に戻す。時間帯別変更の設定は、第2コマンドに含まれる時間帯のみ、規則パラメータを第2コマンドに含まれる変更パラメータに変更した状態にする設定である。この場合、第2コマンドに含まれる時間帯および変更パラメータを一時記憶する。
【0099】
ステップS51においてジョブが受け付けられる場合、ステップS52において、ユーザー別変更の設定がされているか否かを判断する。ステップS52が実行される前にステップS64が実行された場合にユーザー別変更が設定される。ユーザー別変更が設定されているならば処理をステップS53に進め、そうでなければ処理をステップS55に進める。ステップS53においては、ステップS51において受け付けられたジョブの実行を指示したユーザーが設定ユーザーか否かを判断する。設定ユーザーは、ステップS64におけるユーザー別変更の設定処理で一時記憶されたユーザー識別情報で特定されるユーザーである。ジョブの実行を指示したユーザーのユーザー識別情報が一時記憶された設定ユーザーのユーザー識別情報と同じならば処理をステップS54に進めるが、そうでなければ処理をステップS58に進める。ステップS54においては、規則パラメータを、ステップS64で実行されたユーザー別変更の設定処理で一時記憶された変更パラメータに変更し、処理をステップS58に進める。
【0100】
ステップS55においては、時間帯別変更の設定がされているか否かを判断する。ステップS55が実行される前にステップS66が実行された場合に時間帯別変更が設定される。時間帯別変更が設定されているならば処理をステップS56に進め、そうでなければ処理をステップS57に進める。ステップS56においては、現在時刻が時間帯別変更の設定処理で設定された時間帯内か否かを判断する。現在時刻がステップS66において実行された時間帯別変更の設定処理で一時記憶された時間帯内ならば処理をステップS54に進めるが、そうでなければ処理をステップS57に進める。ステップS54においては、規則パラメータを、ステップS66において実行された時間帯別変更の設定処理で一時記憶された変更パラメータに変更し、処理をステップS58に進める。ステップS57においては、変更パラメータを規則パラメータに変更し、処理をステップS58に進める。
【0101】
図15は、本実施の形態における装置設定処理の流れの一例を示すフローチャートである。装置処理は、本実施の形態におけるサーバー200が備えるCPU201が、ROM202、HDD204またはCD−ROM209に記憶された装置設定プログラムを実行することにより、CPU201により実行される処理である。
図15を参照して、サーバー200が備えるCPU201は、装置情報を受信したか否かを判断する。通信部205がMFP100,100A,100Bのいずれかから装置情報を受信するまで待機状態となり(ステップS01でNO)、MFP100,100A,100Bのいずれかから装置情報を受信したならば(ステップS01でYES)、処理をステップS02に進める。
【0102】
ステップS02においては、装置情報を送信してきた装置をシミュレート対象に決定し、処理をステップS03に進める。ここでは、MFP100から装置情報を受信する場合を例に説明する。この場合、MFP100をシミュレート対象に決定する。ステップS03においては、仮想装置を設定する。ステップS01において受信された装置情報に基づいて、シミュレート対象であるMFP100をシミュレートする仮想装置を設定する。具体的には、装置情報に含まれるハード情報で定められたハードウェア資源をエミュレートするエミュレータを設定し、装置情報に含まれるソフト情報で定められたソフトウェア資源を仮想CPU301が実行する状態に設定し、装置情報に含まれる規則パラメータを設定する。
【0103】
次のステップS04においては、規則パラメータを変更する。規則パラメータは、MFP100が有する4つのCPUコアそれぞれにタスクを割り当てる規則を定める。具体的には、装置情報に含まれる4つのCPUコアそれぞれの負荷に基づいて、負荷の大きなCPUコアに割り当てられているタスクが負荷の小さなCPUコアに割り当てられるように、規則パラメータを変更する。また、規則パラメータに含まれる割当パラメータによって画像処理に関するタスクがCPU171で実行することが定められている場合、画像処理に関するタスクがGPUで実行されるように割り当てパラメータを変更し、割当パラメータによって画像処理に関するタスクがGPUで実行することが定められている場合、画像処理に関するタスクがCPU171で実行されるように割り当てパラメータを変更する。
【0104】
次のステップS05においては、ステップS03において設定された仮想装置に、ステップS01において受信された装置情報に含まれるジョブを実行させる。そして、許容条件を満たすか否かを判断する(ステップS06)。ジョブの処理速度が予め定められたしきい値を超える場合に許容条件を満たすと判断する。許容条件を満たすならば処理をステップS07に進めるが、そうでなければ処理をステップS04に戻す。ステップS04においては、先に変更した規則パラメータとは異なる規則パラメータに変更する。
【0105】
処理がステップS07に進む場合、ステップS04において変更された規則パラメータは、ジョブを実行するに際して許容条件を満たしたパラメータである。ステップS07においては、変更された規則パラメータを変更パラメータに決定し、処理をステップS08に進める。
【0106】
ステップS08においては、モードがユーザー別モードと時間帯別モードの何れに設定されているか否かを判断する。ユーザー別モードに設定されているならば処理をステップS09に進め、時間帯別モードに設定されているならば処理をステップS11に進める。
【0107】
ステップS09においては、ステップS05において仮想装置に実行させたジョブの実行を指示したユーザーを決定する。そして、シミュレート対象のMFP100に第1コマンドを送信し(ステップS10)、処理を終了する。第1コマンドは、ステップS09において特定されたユーザーのユーザー識別情報と、ステップS07において決定された変更パラメータとを含む。
【0108】
ステップS11においては、ステップS05において仮想装置に実行させたジョブがMFP100で実行された時刻を含む時間帯を決定する。そして、シミュレート対象のMFP100に第2コマンドを送信し(ステップS12)、処理を終了する。第2コマンドは、ステップS11において決定された時間帯と、ステップS07において決定された変更パラメータとを含む。
【0109】
以上説明したように、本実施の形態におけるサーバー200は、シミュレート装置として機能し、MFP100,100A,100Bそれぞれは情報処理装置として機能する。そして、サーバー200は、例えば、MFP100の状態が予め定められた許容条件から外れる場合に、MFP100をシミュレートし、MFP100をシミュレートする仮想装置に、MFP100に設定されているパラメータとは異なるパラメータを設定した状態で、MFP100が実行したジョブと同じジョブを実行させ、仮想装置がジョブを実行する間の仮想装置の状態が許容条件を満たす場合に仮想装置に設定されているパラメータを変更パラメータとして決定する。そして、サーバー200は、MFP100の環境がMFP100の状態が許容条件から外れた時点の環境と同じになる場合にMFP100に決定された変更パラメータが設定されるように、MFP100を制御する。このため、MFP100の使用環境に適した変更パラメータをMFP100に設定することができる。したがって、MFP100を使用環境に適した状態に設定することができる。
【0110】
また、MFP100が許容条件を満たさなくなった時点でMFP100が実行していたジョブの実行を指示したユーザーがMFP100を使用する場合に、変更パラメータを設定させるので、ユーザーごとに変化する使用環境に情報処理装置を適合させることができる。
【0111】
また、MFP100が許容条件を満たさなくなった時点を含む時間帯に、変更パラメータを設定させるので、時間帯毎に変化する使用環境に情報処理装置を適合させることができる。
【0112】
また、サーバー200は、MFP100の状態が許容条件から外れる場合に、CPU171が備える4つのCPUコアにタスクを割り当てる条件を定める規則パラメータを変更した状態で、MFP100が実行したジョブと同じジョブを仮想装置に実行させ、仮想装置の状態が許容条件を満たす場合に、仮想装置に設定されている規則パラメータを変更パラメータとして決定する。このため、4つのCPUコアそれぞれへのタスクの割り当てを、MFP100が実行するジョブに適した割り当てとなるようにすることができる。
【0113】
また、サーバー200は、CPU171が備える4つのCPUコアのうちから、MFP100の状態が許容条件から外れる時点における使用率が大きなコアに割り当てられているタスクが、使用率が小さなコアに割り当てられるように、規則パラメータを変更する。このため、4つのCPUコアで負荷を分散することができる。
【0114】
また、サーバー200は、規則パラメータに含まれる割当パラメータを変更するので、あるタスクをGPUで実行する場合と実行しない場合とを比較することができる。
【0115】
なお、上述した実施の形態においては、シミュレート装置の一例としてサーバー200を示したが、
図15に示した装置設定処理をサーバー200に実行させ、
図14に示した変更依頼処理をMFP100に実行させる装置設定方法、また、その装置設定処理をサーバー200のCPU201に実行させ、変更依頼処理をMFP100のCPU171に実行させる装置設定プログラムとして発明を捉えることができるのは言うまでもない。
【0116】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0117】
<付記>
(1) 前記許容条件は、ジョブを実行する速度が所定の速度以上となる条件である、請求項1〜7のいずれかに記載のシミュレート装置。この局面に従えば、ジョブを実行する速度が所定の速度より小さくなる変更パラメータが決定されるので、情報処理装置でジョブを実行する速度が所定の速度以上となるように情報処理装置を設定することができる。
(2) 前記許容条件は、ジョブを実行する速度が所定の速度より小さくなる状態が所定時間内に所定回数以下となる条件である、請求項1〜9および(1)のいずれかに記載のシミュレート装置。この局面に従えば、所定時間内にジョブを実行する速度が所定の速度より小さくなる回数が所定回数を超えるとパラメータが変更されるので、情報処理装置で所定時間内にジョブを実行する速度が所定の速度以下となる回数が所定回数以下となるように情報処理装置を設定することができる。
(3) 前記仮想実行制御手段は、前記情報処理装置が1以上のジョブを実行した履歴に基づいて、前記仮想装置に前記情報処理装置が実行した1以上のジョブと同じ1以上のジョブを実行させる、請求項1〜9、(1)および(2)のいずれかに記載のシミュレート装置。この局面に従えば、仮想装置で情報処理装置がジョブを実行した状態を正確に再現することができる。
(4) 前記履歴は、前記情報処理装置が実行した1以上のジョブそれぞれに対して、当該ジョブと、当該ジョブが外部から受信された時刻と、当該ジョブが実行された時刻と、を含む、(3)に記載のシミュレート装置。この局面に従えば、仮想装置で情報処理装置がジョブを実行した状態を正確に再現することができる。