(57)【要約】【課題】複数のオペレーティング・システム（以下、ＯＳ）のソフトウェア（以下、ＳＷ）の更新時に，ハードウェア資源（以下、資源）の負荷集中を抑制し、効率的に更新を行う。【解決手段】資源を共有して動作する複数のＯＳのＳＷの各々を更新する更新ＳＷの属性情報の各々と複数のＯＳの各々に対して割り当てられている資源の情報の各々とに基づいて各更新ＳＷによる更新時に実行される処理の各々に要する時間を予測し、該予測に基づいて複数のＯＳ間で処理内容が等しい処理が並列に実行される時間が短くなるように更新時に実行される処理の各々の実行順序及び実行開始タイミングを決定し、予測した時間、決定された実行順序及び実行開始タイミングに応じて複数のＯＳの各々に対する資源の割り当て率を決定し、決定した実行順序及び実行開始タイミングで更新ＳＷによる各処理が実行され、決定した割り当て率で資源が割り当てられるように制御する。【選択図】図４
2012181578.tif 000002
【特許請求の範囲】
【請求項１】
複数のオペレーティング・システムがハードウェア資源を共有して動作する情報処理装置に設けられた更新制御装置であって、
前記複数のオペレーティング・システムのソフトウェアの各々を更新する更新ソフトウェアの属性情報の各々と、前記複数のオペレーティング・システムの各々に対して割り当てられているハードウェア資源の情報の各々とに基づいて、各更新ソフトウェアによる更新の際に実行される処理の各々に要する時間を予測する予測手段と、
前記予測された時間に基づいて、前記複数のオペレーティング・システムが一斉に前記更新ソフトウェアの実行を開始して各オペレーティング・システムのソフトウェアを更新する場合に比べて、前記複数のオペレーティング・システム間で処理内容が等しい処理が並列に実行される時間が短くなるように前記更新ソフトウェアによる更新の際に実行される処理の各々の実行順序及び実行開始タイミングを決定する第１決定手段と、
前記予測された時間、前記実行順序、及び実行開始タイミングに応じて前記複数のオペレーティング・システムの各々に対する前記ハードウェア資源の割り当て率を決定する第２決定手段と、
前記決定された実行順序及び実行開始タイミングで前記更新ソフトウェアによる各処理が実行され、前記決定された割り当て率で前記ハードウェア資源が割り当てられるように制御する制御手段と、
を備えた更新制御装置。
【請求項２】
前記制御手段は、前記更新ソフトウェアによる各処理の実行中にも、予め定められた時間間隔毎に、前記予測手段による予測と、前記第１決定手段による実行順序及び実行開始タイミングの決定と、前記第２決定手段による割り当て率の決定とが行われるように制御し、該制御により新たに決定された実行順序及び実行開始タイミングで前記更新ソフトウェアによる各処理が実行され、該制御により新たに決定された割り当て率で前記ハードウェア資源が割り当てられるように制御する
請求項１に記載の更新制御装置。
【請求項３】
複数のオペレーティング・システムがハードウェア資源を共有して動作する情報処理装置に設けられたコンピュータを、
前記複数のオペレーティング・システムのソフトウェアの各々を更新する更新ソフトウェアの属性情報の各々と、前記複数のオペレーティング・システムの各々に対して割り当てられているハードウェア資源の情報の各々とに基づいて、各更新ソフトウェアによる更新の際に実行される処理の各々に要する時間を予測する予測手段、
前記予測された時間に基づいて、前記複数のオペレーティング・システムが一斉に前記更新ソフトウェアの実行を開始して各オペレーティング・システムのソフトウェアを更新する場合に比べて、前記複数のオペレーティング・システム間で処理内容が等しい処理が並列に実行される時間が短くなるように前記更新ソフトウェアによる更新の際に実行される処理の各々の実行順序及び実行開始タイミングを決定する第１決定手段、
前記予測された時間、前記実行順序、及び実行開始タイミングに応じて前記複数のオペレーティング・システムの各々に対する前記ハードウェア資源の割り当て率を決定する第２決定手段、及び
前記決定された実行順序及び実行開始タイミングで前記各処理が実行され、前記決定された割り当て率で前記ハードウェア資源が割り当てられるように制御する制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新制御装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、複数のプロセスをプロセス毎に所定の周期で繰り返し実行するときに、複数のプロセス間で共用されるメモリブロックへのアクセスを制御するアクセス制御方法であって、プロセス毎にメモリブロックへのアクセス時間の設定を受け付け、所定の周期及び設定されたアクセス時間に基づき、各プロセスに前記メモリブロックへのアクセス期間を設定し、設定したアクセス期間に従って、前記メモリブロックへのアクセスを制御するアクセス制御方法が開示されている。
【０００３】
特許文献２には、計算機の資源を複数の計算機に割り当てて、各々の計算機で独立してプログラムを実行する計算機システムの計算機資源割り当て方法において、前記計算機の資源使用状態を収集し、収集したデータに基づき、各々の計算機の資源使用についての相関関係を算出し、収集したデータと算出した相関係数とに基づき、各々の計算機の資源割当値を算出し、その資源割当値に従って、各々の計算機の資源割り当てを行う計算機資源割当方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１４８５７７号公報
【特許文献２】特開２００４−１９９５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、複数のオペレーティング・システムのソフトウェアの更新の際に実行される各処理の実行順序、実行開始タイミング及びハードウェア資源の割り当てを制御せずに複数のオペレーティング・システムのソフトウェアの更新を並列に行う場合に比べて、ハードウェア資源の負荷集中を抑制し、効率的に更新処理を行うことができる更新制御装置及びプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
請求項１の発明の更新制御装置は、複数のオペレーティング・システムがハードウェア資源を共有して動作する情報処理装置に設けられた更新制御装置であって、前記複数のオペレーティング・システムのソフトウェアの各々を更新する更新ソフトウェアの属性情報の各々と、前記複数のオペレーティング・システムの各々に対して割り当てられているハードウェア資源の情報の各々とに基づいて、各更新ソフトウェアによる更新の際に実行される処理の各々に要する時間を予測する予測手段と、前記予測された時間に基づいて、前記複数のオペレーティング・システムが一斉に前記更新ソフトウェアの実行を開始して各オペレーティング・システムのソフトウェアを更新する場合に比べて、前記複数のオペレーティング・システム間で処理内容が等しい処理が並列に実行される時間が短くなるように前記更新ソフトウェアによる更新の際に実行される処理の各々の実行順序及び実行開始タイミングを決定する第１決定手段と、前記予測された時間、前記実行順序、及び実行開始タイミングに応じて前記複数のオペレーティング・システムの各々に対する前記ハードウェア資源の割り当て率を決定する第２決定手段と、前記決定された実行順序及び実行開始タイミングで前記更新ソフトウェアによる各処理が実行され、前記決定された割り当て率で前記ハードウェア資源が割り当てられるように制御する制御手段と、を備えている。
【０００７】
請求項２の発明は、請求項１に記載の更新制御装置において、前記制御手段は、前記更新ソフトウェアによる各処理の実行中にも、予め定められた時間間隔毎に、前記予測手段による予測と、前記第１決定手段による実行順序及び実行開始タイミングの決定と、前記第２決定手段による割り当て率の決定とが行われるように制御し、該制御により新たに決定された実行順序及び実行開始タイミングで前記更新ソフトウェアによる各処理が実行され、該制御により新たに決定された割り当て率で前記ハードウェア資源が割り当てられるように制御するものである
【０００８】
請求項３の発明は、複数のオペレーティング・システムがハードウェア資源を共有して動作する情報処理装置に設けられたコンピュータを、前記複数のオペレーティング・システムのソフトウェアの各々を更新する更新ソフトウェアの属性情報の各々と、前記複数のオペレーティング・システムの各々に対して割り当てられているハードウェア資源の情報の各々とに基づいて、各更新ソフトウェアによる更新の際に実行される処理の各々に要する時間を予測する予測手段、前記予測された時間に基づいて、前記複数のオペレーティング・システムが一斉に前記更新ソフトウェアの実行を開始して各オペレーティング・システムのソフトウェアを更新する場合に比べて、前記複数のオペレーティング・システム間で処理内容が等しい処理が並列に実行される時間が短くなるように前記更新ソフトウェアによる更新の際に実行される処理の各々の実行順序及び実行開始タイミングを決定する第１決定手段、前記予測された時間、前記実行順序、及び実行開始タイミングに応じて前記複数のオペレーティング・システムの各々に対する前記ハードウェア資源の割り当て率を決定する第２決定手段、及び前記決定された実行順序及び実行開始タイミングで前記各処理が実行され、前記決定された割り当て率で前記ハードウェア資源が割り当てられるように制御する制御手段、として機能させるためのプログラムである。
【発明の効果】
【０００９】
請求項１に記載の発明によれば、複数のオペレーティング・システムのソフトウェアの更新の際に実行される各処理の実行順序、実行開始タイミング及びハードウェア資源の割り当てを制御せずに複数のオペレーティング・システムのソフトウェアの更新を並列に行う場合に比べて、ハードウェア資源の負荷集中を抑制し、効率的に更新処理を行うことができる。
【００１０】
請求項２に記載の発明によれば、本構成を有しない場合に比べて、ハードウェア資源の負荷集中を抑制し、効率的に更新処理を行うことができる。
【００１１】
請求項３に記載の発明によれば、複数のオペレーティング・システムのソフトウェアの更新の際に実行される各処理の実行順序、実行開始タイミング及びハードウェア資源の割り当てを制御せずに複数のオペレーティング・システムのソフトウェアの更新を並列に行う場合に比べて、ハードウェア資源の負荷集中を抑制し、効率的に更新処理を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る画像形成装置のハードウェア構成を示す図である。
【図２】実施の形態に係る画像形成装置のソフトウェア構成を示す図である。
【図３】ハイパーバイザの機能を説明する説明図である。
【図４】ハイパーバイザで実行される処理ルーチンの流れを示すフローチャートである。
【図５】（Ａ）は、更新パッケージの属性情報の例を示し、（Ｂ）は、仮想マシンの性能情報の具体例を示す図である。
【図６】ハイパーバイザで実行されるスケジューリング処理の流れを示すフローチャートである。
【図７】更新スケジュール及びハードウェア資源の割り当て率の決定について説明する説明図である。
【図８】負荷が集中する様子を示した図である。
【図９】実行開始タイミングの決定方法の一例を説明する説明図である。
【図１０】実行順序及び実行開始タイミングの決定方法の一例を説明する説明図である。
【図１１】ホストＯＳ型のソフトウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して実施の形態の一例を詳細に説明する。図１には本実施の形態に係る画像形成装置１０が示されている。画像形成装置１０には、画像形成装置１０の各部の動作を制御する装置制御部１２と、セットされた読取対象の文書(紙原稿)を光学的に読み取って読取画像データを出力する画像読取部１４と、入力された画像データが表す画像を記録用紙上に形成する画像形成部１６と、ＬＣＤ等から成る表示部１８Ａ及びテンキーやタッチパネル等から成り利用者による操作を受付ける操作受付部１８Ｂが設けられた操作パネル１８と、ＰＣ(Personal Computer)等の情報処理装置とネットワークケーブル及び通信手段（例えばコンピュータネットワーク）経由で情報の送受信を行うためのネットワーク・インタフェース２０と、が設けられており、これらはバス２２を介して互いに接続されている。
【００１４】
装置制御部１２はマイクロコンピュータ等から成り、ＣＰＵ１２Ａ、メモリ１２Ｂ、ＨＤＤ(Hard Disk Drive)やフラッシュメモリ等から成る不揮発性の記憶部１２Ｃが設けられている。本実施の形態では、この記憶部１２ＣをＨＤＤとする。ＣＰＵ１２Ａは、シングルコアでもマルチコアでもよい。メモリ１２Ｂは、例えば作業領域として使用される。記憶部１２Ｃには、画像形成装置１０の利用者に対して画像形成装置１０の機能を提供する処理を行うアプリケーションのプログラム（図１では第１アプリケーション、及び第２アプリケーションのプログラムが図示されている）と、該アプリケーションのプログラムを実行するためのプラットフォームとして機能するオペレーティング・システム（ＯＳ）のプログラム（図１では第１ＯＳ、及び第２ＯＳのプログラムが図示されている）とが各々記憶されている。本実施の形態では、記憶部１２ＣにＯＳのプログラムが複数記憶されており、アプリケーションの各々は、いずれか１つのＯＳに対してインストールされ、該ＯＳ上で動作する（図２も参照。）。
【００１５】
また、図１に示すように、記憶部１２Ｃには、ハードウェア資源の仮想化や複数のＯＳとの間での共有資源の調停等の機能を提供するハイパーバイザのプログラムも記憶されている。そして、図２に示すように、第１仮想マシンを第１ＯＳ上で第１アプリケーションが動作するように構築し、第２仮想マシンを第２ＯＳ上で第２アプリケーションが動作するように構築する。
【００１６】
なお、図３に示すように、ハイパーバイザは、ＣＰＵ１２Ａを複数のＯＳに割り当てる場合には、各仮想マシン毎に仮想ＣＰＵを各々定義し、実ＣＰＵ（ＣＰＵ１２Ａ）の処理時間を短い単位毎に区切り、時分割で各仮想ＣＰＵに割り当てるようにしている。ＯＳを稼動させたまま仮想ＣＰＵの割り当て率を増減させることも可能である。また、ＣＰＵ１２Ａがマルチコアの場合には、割り当てるコア数を調整することで、各ＯＳにＣＰＵ１２Ａを割り当ててもよい。
【００１７】
ネットワーク・インタフェース２０の割り当てについても、図３に示すように、各仮想マシン毎に仮想Ｎｅｔを各々定義する。仮想Ｎｅｔは、例えば仮想スイッチ等を介して実Ｎｅｔ（ネットワーク・インタフェース２０）に接続され、実Ｎｅｔを使用する。該複数の仮想Ｎｅｔは、各々に割り当てられた実Ｎｅｔのネットワーク帯域（単位時間あたりのデータ転送量）を分け合うことになる。
【００１８】
また、ＨＤＤ２２の割り当てについても、図３に示すように、各仮想マシン毎に仮想ＨＤＤを各々定義する。各仮想ＨＤＤは実ＨＤＤ（記憶部１２Ｃ）に割り当てられ、それぞれ実ＨＤＤのディスクＩ／Ｏ帯域（単位時間あたりの読出／書込データ量）を分け合う。
【００１９】
なお、ハイパーバイザ及び複数のＯＳの各々は、周知のプロセッサ間通信技術を用いて互いに通信する。例えば、送信元（送信側）からのデータパケットを送信先（受信側）の受信バッファにコピーすることによって情報の受け渡しを行うようにしてもよいし、ハイパーバイザと各ＯＳとが共有する共有メモリ（メモリ１２Ｂの予め定められた記憶領域）を介して情報の受け渡しを行うものであってもよい。
【００２０】
ところで、画像形成装置１０等の情報処理装置に搭載された各ＯＳは、機能拡張や不具合修正等のために、図３に示すように、ＯＳのソフトウェアの更新が必要となることがある。
【００２１】
本実施の形態のように、家電製品や事務機器等の組み込み機器に複数の仮想マシンを搭載したシステムの場合には、各機能の整合および各機能停止頻度の低減のため、ＯＳのソフトウェアを更新する場合には、一部のＯＳだけではなく全てのＯＳを更新しなければならない場合が多い。複数のＯＳを更新する場合には、各ＯＳをひとつずつ更新する（各ＯＳが互いにソフトウェアの更新期間が全く重ならないように順次個別に更新を行う）と、最初のＯＳが更新を開始してから最後のＯＳが更新を終了するまでに要する時間が長くなるため、複数のＯＳが並列に動作して更新を実行したほうが効率がよい。従って、本実施の形態では、複数のＯＳが並列にソフトウェアの更新を行うものとする。
【００２２】
以下、本実施の形態に係るＯＳのソフトウェア更新時の動作について説明する。以下、ＯＳの更新を行う更新ソフトウェアの各ファイルを１つにまとめたものを更新パッケージと呼称する。なお、ＯＳ毎に更新に使用する更新パッケージは１つに限らず複数であってもよい。また、更新実行中は、該更新パッケージをサーバからダウンロードする処理、ダウンロードした更新パッケージによりソフトウェアを更新する処理（すなわち、古いソフトウェアを新しいソフトウェアに置き換える処理）、データベースを初期化する処理など様々な処理が行われるが、本実施の形態では、更新パッケージのダウンロードを開始してから、該ダウンロードした更新パッケージによる最後の処理が終了するまでの一連の処理を更新又は更新処理と呼称し、該更新処理中に行われる処理の１つであって、古いソフトウェアを新しいソフトウェアに置き換える処理を、更新処理と区別するためにアップデート処理と呼称する。
【００２３】
図４は、ハイパーバイザで実行される処理ルーチンの流れを示すフローチャートである。ステップ１００では、ネットワークを介して、各ＯＳの更新パッケージを保持するサーバ等から、各ＯＳの更新パッケージの属性情報を取得する。なお、属性情報を示すファイルは予め更新パッケージに含まれており、ハイパーバイザがサーバに送信した問い合せに応じて、サーバから該更新パッケージの属性情報のファイルが送信される。
【００２４】
ここで、属性情報は、例えば、パッケージサイズ、依存パッケージの有無、更新中に実行される処理及び処理順序、更新時の各処理に要する時間（基準マシンで更新を実行したときの各処理に要する時間）、更新時ネットワークアクセス量（基準マシンで更新を実行したときのネットワーク通信量）、基準マシンの性能値、等がある。
【００２５】
なお、パッケージサイズは、更新パッケージに含まれるソフトウェアのファイルサイズの合計値とすることができる。
【００２６】
また、依存パッケージの有無であるが、例えば、２つの更新パッケージを用いて更新する必要がある場合に、一方の更新パッケージによる更新処理が終了した後に、他方の更新パッケージによる更新処理を実行することが定められているときには、該一方の更新パッケージが、他方の更新パッケージにとっての「依存パッケージ」となる。３つ以上の更新パッケージを用いて更新する場合も同様である。
【００２７】
更新中に実行される処理とは、例えば、前述したように、ダウンロード処理、アップデート処理、再起動処理（更新したソフトウェアだけを再起動させる場合もあれば、各ＯＳを再起動させる場合もある、以下、前者をＳＷ再起動、後者をＳＹ再起動という）、データベースの初期化処理等をいう。
【００２８】
図５（Ａ）に、更新パッケージＡの属性情報の例を示す。なお、図５（Ａ）において、サイズは、パッケージサイズであり、更新処理内容は、更新中に実行される処理及び処理順序であり、再起動待ち時間は、更新中に実行される再起動に要する時間である。
【００２９】
また、図５（Ａ）において、ＣＰＵ性能基準値、メモリアクセス速度基準値、ディスクアクセス速度基準値、及びネットワーク速度基準値は、基準マシンのＣＰＵ性能基準値、メモリアクセス速度基準値、ディスクアクセス速度基準値、及びネットワーク速度基準値である。表中の再起動待ち時間や更新時ネットワークアクセス量は、これらの値で示される基準マシンで実行したときの時間、アクセス量である。また、ここで、ディスクとはＨＤＤを指す。
【００３０】
次に、ステップ１０２では、各仮想マシンの現在の性能情報を取得する。ここで、仮想マシンの現在の性能情報とは、各仮想マシンに対して割り当てられているハードウェア資源の情報（各仮想マシンを構成するＯＳの各々に対して割り当てられているハードウェア資源の情報と言い換えてもよい）である。なお、ハードウェア資源の割り当て状態は、動的に変化するが、ここでは、ステップ１０２の実行時点での割り当て状態での性能情報を取得する。
【００３１】
図５（Ｂ）に仮想マシンの性能情報の具体例を示す。ここで、ＣＰＵ性能、メモリアクセス性能、ディスクアクセス性能、ネットワーク速度の各々については、各仮想マシンが共有して使用するハードウェア資源そのものの性能値であって、各仮想マシンで共通の値となる。しかしながら、ＣＰＵ割り当て率、ディスクＩ／Ｏ帯域、ネットワーク帯域については、仮想マシン毎に割り当て状態が異なるため、これらの値は、仮想マシン毎の値となる。
【００３２】
ステップ１０４では、スケジューリング処理を行う。図６に、ハイパーバイザで実行されるスケジューリング処理の詳細なフローチャートを示す。なお、ここでは、画像形成装置１０に仮想マシンが２つ設けられ、一方の仮想マシンで第１ＯＳが動作し、他方の仮想マシンで第２ＯＳが動作しているものとする。
【００３３】
ステップ２００では、第１ＯＳの更新パッケージの有無を判断する。ステップ２００で第１ＯＳに更新パッケージがあると判断した場合には、ステップ２０２において、第１ＯＳの更新パッケージを１つ選択する。選択は更新パッケージの属性情報を元に選択される。例えば、図５（Ａ）に示す例では、「依存パッケージ」の項目に示すように、「パッケージＡはバージョン2.0以降のパッケージＢの後に実行される」こととなっている。従って、少なくとも更新パッケージＢが更新パッケージＡより先に更新対象として選択され、処理されるように選択する。本実施の形態では、更新パッケージの選択順に各更新パッケージによる更新処理が行われるようにスケジュールを決定する。
【００３４】
ステップ２０４では、選択した更新パッケージによる更新において行われる各処理に要する時間（予測時間）を、上記取得した更新パッケージの属性情報及び仮想マシンの性能情報に基づいて予測する。更新パッケージの属性情報が図５（Ａ）に示す属性情報であって、仮想マシンの性能情報が図５（Ｂ）に示す性能情報である場合、例えば、以下に示す予測式により算出される。
【００３５】
・ダウンロード予測時間 =k1×Sa×(P1／Pa1×R1)×(P2／Pa2)×(P3／Pa3×R3)
・アップデート予測時間 =k2×Sa×(P1／Pa1×R1)×(P2／Pa2)×(P3／Pa3×R3)＋k3×Na×(P4／Pa4×R4)
・ＳＷ再起動予測時間 = Ta×(P1／Pa1×R1)×(P2／Pa2)×(P3／Pa3×R3)
ここで、k1、k2、k3の各々は、予め定められた係数とする。
【００３６】
なお、上記は単純な予測式の一例であって、ダウンロード予測時間やアップデート予測時間は、パッケージサイズ（新たに置き換えるソフトウェアファイルサイズの総和にほぼ等しい）と、基準マシン及び仮想マシンのハードウェア性能比とから算出される式となっている。また、ＳＷ再起動予測時間は、属性情報に含まれる再起動待ち時間にハードウェア性能比を乗算した式となっている。
【００３７】
なお、実際には仮想マシンの性能情報の各項目間には相関関係があるが、上記予測式では該相関関係を考慮した式にはなっていない。例示は省略するが、該相関関係を考慮した予測式を用いて各処理の予測時間を算出してもよい。これにより、より正確な予測時間が算出される。
【００３８】
また、上記予測式で使用される、仮想マシンのＣＰＵ割り当て率、ディスクＩ／Ｏ帯域、ネットワーク帯域は、各処理毎に規定する必要があるが、上記例示した予測式では、上記ステップ１０２の実行時点で取得した性能情報の値を用いている。ただし、これに限定されるものではなく、処理内容に応じて予め定められた値としてもよい。また、例えば、ダウンロード処理とアップデート処理とを第１ＯＳ及び第２ＯＳ間で並列に実行させる場合（図９も参照。）には、ＣＰＵ割り当て率を、第１ＯＳのアップデート処理：第２ＯＳのダウンロード処理＝30:70とする等、予め設定しておく。これにより、ＣＰＵ割り当て率、ディスクＩ／Ｏ帯域、ネットワーク帯域は処理毎に異なる値になる。この場合、第１ＯＳについての割り当て率を決定する時点では、第２ＯＳのスケジュールの決定がまだであるため、ここでは、暫定的に決定し、後で調整を行うとよい。
【００３９】
予測時間を算出した後は、各処理の実行順序及び実行開始タイミング（スケジュール）を決定する。なお、第１ＯＳについては、１つの更新パッケージの更新処理が完了した後に、次の更新パッケージの更新処理が開始されるようにスケジュールする。従って、本実施の形態では、上記ステップ２０２における更新パッケージの選択順に更新処理されるように実行順序が決定される。また、各更新パッケージで実行される各処理の実行順序は、更新パッケージの属性情報に規定されている処理順に実行されるよう決定される。
【００４０】
ステップ２０６では、更新パッケージの各処理が実行される期間の各々の、第１ＯＳに対するハードウェア資源の割り当て率を決定する。例えば、処理内容に応じて予め定められた値を割り当て率として決定してもよい。より具体的には、ダウンロード処理であれば、ネットワーク帯域７０％、ＣＰＵ割り当て率３０％等のように、予め割り当て率を定めておき、決定する。
【００４１】
また、第１ＯＳ及び第２ＯＳ間の各処理のスケジュールを考慮して割り当て率を決定するようにしてもよい。例えば、前述したように、ＣＰＵ負荷が比較的低いダウンロード処理とＣＰＵ負荷が比較的高いアップデート処理とを第１ＯＳ及び第２ＯＳ間で並列に実行させることが予め定められている場合には、第２ＯＳでダウンロード処理を行い第１ＯＳでアップデート処理を行っている期間のＣＰＵ割り当て率を、第２ＯＳのダウンロード処理：第１ＯＳのアップデート処理＝30:70とする等である。この場合には、割り当て率の決定に第２ＯＳ側のスケジュールが関係してくるが、第２ＯＳ側のスケジュールが決定される前にここで暫定的に第１ＯＳ側のハードウェア資源の割り当て率を決定し、第２ＯＳ側のスケジュールが決定した後で、調整してもよい。
【００４２】
以上により、図７に示すように、選択した更新パッケージについてのスケジュール及びハードウェア資源の割り当て率が決定される。
【００４３】
ステップ２０６の後は、ステップ２００に戻り、次の更新パッケージについて上記手続きを繰り返す。第１ＯＳの更新パッケージの全てについての上記手続きが終了すると、ステップ２００で否定判断され、ステップ２１０に進む。
【００４４】
ステップ２１０では、第２ＯＳの更新パッケージの有無を判断する。ステップ２１０で第１ＯＳに更新パッケージがあると判断した場合には、ステップ２１２において、第２ＯＳの更新パッケージを１つ選択する。選択方法は、ステップ２０２と同様である。
【００４５】
ステップ２１４では、ステップ２０４と同様に、選択した更新パッケージの更新において行われる各処理に要する時間（予測時間）を、上記取得した更新パッケージの属性情報及び仮想マシンの性能情報に基づいて予測する。予測時間を算出した後は、スケジュール（各処理の実行順序及び実行開始タイミング）を決定する。第２ＯＳのスケジュールについては、第１ＯＳのスケジュールを参照しながら決定する。
【００４６】
例えば、第１ＯＳと第２ＯＳとで、内容が等しい処理が同じ時間帯に実行されると、内容が等しい処理はハードウェア資源の使用傾向が類似している或いは等しいことから、その時間帯に特定のハードウェア資源に負荷が集中してしまう。従って、ここでは、第１ＯＳ及び第２ＯＳとが一斉に更新を開始する場合に比べて、第１ＯＳと第２ＯＳとで処理内容が等しい処理が並列に実行される時間が短くなるように、第２ＯＳ側の各処理の実行開始タイミングを決定する。
【００４７】
例えば、図８に示すように、ダウンロード処理は、ネットワークＩ／Ｏ負荷が大きいため、第１ＯＳでダウンロード処理を実行中に、第２ＯＳでもダウンロード処理を実行すると、ネットワークのＩ／Ｏ負荷が増大して、処理効率が低下する。また、アップデート処理はＣＰＵ１２Ａ及びＨＤＤの負荷が大きいため、第１ＯＳでアップデート処理を実行中に、第２ＯＳでもアップデート処理を実行すると、ＣＰＵ／ＨＤＤ負荷が増大して、処理効率が低下する。そこで、第１ＯＳと第２ＯＳとで処理内容が等しい処理が並列に実行される時間が短くなるように、第２ＯＳ側で実行される各処理の実行開始タイミングを調整する。一例を挙げれば、第２ＯＳのダウンロード処理の実行開始タイミングを、第１ＯＳのダウンロード処理が終了した後、或いは第１ＯＳのダウンロード処理が予め定められた割合だけ終了したときにする等の調整が行われる。
【００４８】
このように、内容が等しい処理が並列に実行される時間が短くなるように制御することで、第１ＯＳ及び第２ＯＳとが一斉に更新を開始する場合に比べて、ハードウェア資源の使用傾向が類似している或いは等しい処理が並列に実行される時間が短くなる。
【００４９】
また、選択可能な処理（実行させるべき処理）が存在しない期間には、「処理なし」としてスケジュールを作成してもよい。
【００５０】
例えば、更新パッケージによる更新は、まずサーバから更新パッケージをダウンロードする処理を最初に行わないと、以降の処理を行うことはできない。従って、第１ＯＳ及び第２ＯＳのいずれもがまずダウンロード処理を行う必要があるが、例えば、ＯＳ間で内容が等しい処理が同じ時間帯（期間）に重ならないように調整する場合、第１ＯＳ側で最初のダウンロード処理が実行される時間帯に、第２ＯＳ側でダウンロード処理が実行されないようにするということは、その時間帯に第２ＯＳ側で実行できる処理は何も無いことになる。そこで、図９に示すように、その期間、第２ＯＳ側は「処理なし」としてスケジュールする。そして、第１ＯＳ側でダウンロード処理が終了した後に、第２ＯＳ側でダウンロード処理が実行されるように、実行開始タイミングを決定する。
【００５１】
また、上記のようにスケジューリングしても内容が等しい処理が並列に実行される時間が予め定められた時間以内にすることができない場合には、属性情報の「依存パーケージ」に反しない範囲内で更新パッケージの実行順序を変更（上記ステップ２１２の処理に戻って更新パッケージを選択し直す）してもよい。また、第１ＯＳ側から更新パッケージを選択し直して再度スケジューリングをやり直してもよい。
【００５２】
ステップ２１６では、ステップ２０６と同様に、更新パッケージの各処理が実行される期間の各々の、第１ＯＳに対するハードウェア資源の割り当て率を決定する。なお、第２ＯＳについてのハードウェア資源の割り当て率の決定は、第１のＯＳのスケジュールも参照され、場合によっては、第１ＯＳで既に決定されたハードウェア資源の割り当て率を調整する作業も行われる。例えば、再起動、データベースの構築などＣＰＵ負荷の多い更新処理を行うＯＳにＣＰＵ占有時間を多く割り当てるようにする。また、更新パッケージサイズに差がある場合、更新の量が多い（サイズが大きい）ＯＳに対してＣＰＵ（時間やコア数）及びメモリ量を多く割り当てるようにする。また、スケジュールによっては、ハードウェア資源の割り当てを、１つのＯＳに対して１００％となるように決定してもよい。この場合、実際の割り当て制御（後述するステップ１０６）においては、ハイパーバイザのドライバを介して仮想ハードウェア（仮想ＨＤＤ、仮想ネットワーク・・・）として使用させるのではなく、ハイパーバイザを介さずに直接実ハードウェアを使用させるようにハードウェアの使用方法を切替えるようにしてもよい。後者の使用方法は、前者の使用方法に比べ処理速度が速くなる。
【００５３】
なお、第１ＯＳ及び第２ＯＳの割り当て率の合計が１００％を超えてしまう期間が発生した場合には、その期間の各ＯＳに対する割り当て率を、ＯＳの各々で均等な割合で減少させ、割り当て率の合計が１００％以下となるように調整する。
【００５４】
ステップ２１６の後は、ステップ２１０に戻り、次の更新パッケージについて上記手続きを繰り返す。第２ＯＳの更新パッケージの全てについての上記手続きが終了すると、ステップ２１０で否定判断され、本処理ルーチンは終了する。
【００５５】
なお、ＯＳ数が３つ以上になる場合には、上記第２ＯＳのステップ２１０〜２１６の処理手順を第３ＯＳ、第４ＯＳ・・・について各々繰り返せばよい。
【００５６】
また、各ＯＳ間で更新終了タイミングが一致或いは予め定められた範囲内の時間差となるように、属性情報の「依存パーケージ」に反しない範囲内で更新パッケージの実行順序を変更（上記ステップ２０２やステップ２１２の処理に戻って更新パッケージを選択し直す）してもよい。
【００５７】
また、該更新終了タイミングが一致或いは予め定められた範囲内の時間差となるように、仮想マシンの性能情報内の各仮想マシン（各ＯＳ）毎に割り当てられたハードウェアの割り当て値（ＣＰＵ割り当て率、ディスクＩ／Ｏ帯域、ネットワーク帯域（R1、R3、R4））を調整することによって、各処理の予測時間を調整するようにしてもよい。この場合には、第１ＯＳの予測時間も調整対象となる。
【００５８】
また、選択した更新パッケージについての各処理の予測時間を計算した後、該各処理についてのスケジュールの決定を保留し、次の更新パッケージを選択して該更新パッケージの各処理についての予測時間の算出処理を先に行った後に、複数の更新パッケージの各処理のスケジュールをまとめて決定してもよい。例えば、「更新パッケージ１のダウンロード→更新パッケージ１のアップデート→更新パッケージ２のダウンロード→更新パッケージ２のアップデート」の順序ではなく、図１０に示すように、「更新パッケージ１のダウンロード→更新パッケージ２のダウンロード→更新パッケージ１のアップデート→更新パッケージ２のアップデート」とする。このように、更新パッケージをまたいだ順序変更を許可するかどうかを、更新パッケージの属性情報に加えてもよい。そして、ハイパーバイザが該属性情報を参照して、順序変更が許可されていれば、上記のように順序を変更してスケジュールを決定してもよい。
【００５９】
なお、ハードウェア資源の割り当ては、以下のように行うようにしてもよい。図１０に示すように、第１ＯＳ側で主としてアップデートが実行され、第２ＯＳ側で主としてダウンロードが行われる期間Ｔ１では、第１ＯＳ側のＣＰＵ及びＨＤＤ負荷が大きく、第２ＯＳ側でネットワーク負荷が大きいため、第１ＯＳに対するＣＰＵ及びＨＤＤの割り当て率を第２ＯＳ側より高くし、第２ＯＳに対するネットワーク・インタフェースの割り当て率を第１ＯＳ側より高くするようにする。また、次の期間Ｔ２では、第１ＯＳ側で主としてダウンロードが実行され、第２ＯＳ側で主としてアップデート及びデータベースの初期化が行われるため、第１ＯＳ側はネットワーク負荷が大きく、第２ＯＳ側でＣＰＵ及びＨＤＤ負荷が大きいため、第１ＯＳに対するネットワーク・インタフェースの割り当て率を第２ＯＳ側より高くし、第２ＯＳに対するＣＰＵ及びＨＤＤの割り当て率を第１ＯＳ側より高くするようにする。
【００６０】
以上のようにスケジューリング処理が終了した後は、図４のステップ１０６に進む。
【００６１】
ステップ１０６では、上記決定したスケジュールで各更新パッケージによる更新処理が実行されるように各仮想マシンのＯＳを制御すると共に、上記割り当て率の決定に従って、ハードウェア資源を割り当てる。
【００６２】
なお、実際に更新処理を実行中に、各処理に要する時間が上記算出した予測時間通りにならないことが見込まれる場合には、更新処理の実行中に、処理時間の各々が予測時間と合うように、上記決定したＣＰＵ割り当て率、ディスクＩ／Ｏ帯域、ネットワーク帯域を動的に調整してもよい。
【００６３】
更にまた、更新処理開始後に再スケジューリング処理を行ってもよい。再スケジューリング処理では、再スケジューリング処理の実行開始時点での各仮想マシンのハードウェア資源の割り当て状態を取得して、未実行の更新パッケージや各処理について、上記ステップ１０４のスケジューリング処理を実行する。これにより新たなスケジュール及び割り当て率が決定されると、これ以降は、各ＯＳで該新たに決定されたスケジュールで未実行の処理が実行されるよう制御し、且つハードウェア資源の割り当ても新たな決定に応じて行うようにする。なお、頻繁な再スケジューリング処理でハードウェア資源に負荷がかかることを回避するため、再スケジューリングは予め定められた時間間隔毎に行うようにしてもよい。
【００６４】
更にまた、本実施の形態では、ハイパーバイザを用いてハードウェア資源の割り当てを行って仮想システムを実現した画像形成装置１０を例に挙げて説明したが、これに限定されず、例えば、図１１に示すように、ハイパーバイザの代わりに、ハードウェア資源の割り当てを管理するホストＯＳを上記複数のＯＳとは別に設け、該ホストＯＳが、複数のＯＳの更新のためのスケジューリング処理を行って、上記と同様に各ＯＳの更新を制御するようにしてもよい。
【００６５】
また、本実施の形態では、更新制御装置が適用される例として画像形成装置を例に挙げて説明したが、これに限定されるものではなく、様々な家電製品や事務機器などの組み込み機器に適用可能である。
【符号の説明】
【００６６】
１０   画像形成装置
１２   装置制御部
１２Ａ ＣＰＵ
１２Ｂ メモリ
１２Ｃ 記憶部
１４   画像読取部
１６   画像形成部
１８   操作パネル
１８Ｂ 操作受付部
１８Ａ 表示部
２０   ネットワーク・インタフェース
２４   バス
【図１】
2012181578.tif 000003
【図２】
2012181578.tif 000004
【図３】
2012181578.tif 000005
【図４】
2012181578.tif 000006
【図５】
2012181578.tif 000007
【図６】
2012181578.tif 000008
【図７】
2012181578.tif 000009
【図８】
2012181578.tif 000010
【図９】
2012181578.tif 000011
【図１０】
2012181578.tif 000012
【図１１】
2012181578.tif 000013