本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.画像形成装置の全体構成>
まず、本実施の形態に従う画像形成装置1の全体構成について説明する。
図1は、本実施の形態に従う画像形成装置1の全体構成を示す概略断面図である。図1を参照して、画像形成装置1は、自動原稿送り装置2と、イメージスキャナー3と、プリントエンジン4と、給紙部5と、制御部100とを含む。
自動原稿送り装置2は、原稿の連続的なスキャンを行なうためのものであり、原稿給紙台21と、送出ローラー22と、レジストローラー23と、搬送ドラム24と、排紙台25とを含む。スキャン対象の原稿は、原稿給紙台21上にセットされ、送出ローラー22の作動により一枚ずつ送り出される。そして、この送り出された原稿は、レジストローラー23により一旦停止されて先端が整えられた後に、搬送ドラム24へ搬送される。さらに、この原稿は、搬送ドラム24のドラム面と一体に回転し、その過程において後述するイメージスキャナー3により画像面がスキャンされる。その後、原稿は、搬送ドラム24のドラム面を略半周した位置においてドラム面から分離されて排紙台25へ排出される。
イメージスキャナー3は、撮像デバイス33と、原稿台35とを含む。撮像デバイス33は、被写体である原稿に対する相対位置を時間的に変化させて、原稿の画像を読み取って画像データを生成する。この画像データを含むデータがジョブとして処理される。撮像
デバイス33は、主要な構成要素として、原稿に対して光を照射する光源と、光源から照射された光が原稿で反射して生じる画像を取得するイメージセンサーと、イメージセンサーから画像信号を出力するためのAD(Analog to Digital:アナログデジタル)変換器
と、イメージセンサーの前段に配置された結像光学系とを含む。イメージセンサーとしては、典型的には、CCD(Coupled Charged Device)イメージセンサーや、密着イメージセンサー(Contact Image Sensor)が用いられる。なお、スキャン対象の原稿は、原稿台35にセットされることもできる。また、原稿の表面側および裏面側にそれぞれ撮像デバイスを配置することで、両面同時スキャンを実現してもよい。
プリントエンジン4は、一例として、電子写真方式の画像形成プロセスが実行される。具体的には、フルカラーのプリント出力が可能である。具体的には、プリントエンジン4は、それぞれイエロー(Y)、マゼンタ(M)、シアン(C)、ブラック(K)の各色のトナー像を生成するイメージング(作像)ユニット44Y,44M,44C,44Kを含む。イメージングユニット44Y,44M,44C,44Kは、プリントエンジン4内に張架されて駆動される転写ベルト27に沿って、その順序に配置される。
イメージングユニット44Y,44M,44C,44Kは、それぞれ画像書込部43Y,43M,43C,43Kと、感光体ドラム41Y,41M,41C,41Kとを含む。画像書込部43Y,43M,43C,43Kの各々は、対象のプリントデータに含まれる各色イメージに応じたレーザ光を発するレーザダイオードと、このレーザ光を偏向して対応の感光体ドラム41Y,41M,41C,41Kの表面を主走査方向に露光させるポリゴンミラーとを含んでいる。
感光体ドラム41Y,41M,41C,41Kの表面には、上述のような画像書込部43Y,43M,43C,43Kによる露光によって静電潜像が形成され、この静電潜像がそれぞれ対応するトナーユニット441Y,441M,441C,441Kから供給されるトナー粒子によってトナー像として現像される。
感光体ドラム41Y,41M,41C,41Kの表面に現像された各色のトナー像は、転写ベルト27に順次転送される。さらに、この転写ベルト27上に重ねられたトナー像は、給紙部5からタイミングを合わせて供給される記録紙にさらに転写される。
この記録紙上に転写されたトナー像は、下流部に配置された定着部において定着された後、トレイ57に排出される。
上述の感光体ドラム41Y,41M,41C,41Kにおける動作と並行して、記録紙を収容する給紙部5の給紙カセットにそれぞれ対応する送出ローラー52,53,54および手差給紙部26のうち、画像形成に用いられるべき記録紙に対応する部位が作動して記録紙を供給する。この供給された記録紙は、搬送ローラー55および56ならびにタイミングローラー51によって搬送され、感光体ドラム41上に形成されたトナー像に同期するように、感光体ドラム41に給紙される。
転写器45は、感光体ドラム41に反対極性の電圧を印加することで、感光体ドラム41上に形成されたトナー像を記録紙に転写する。そして、除電器46は、トナー像が転写された記録紙を除電することで、記録紙を感光体ドラム41から分離させる。その後、トナー像が転写された記録紙は定着装置47へ搬送される。なお、転写器45としては、図1に示すような転写ベルトを用いた転写方式に代えて、転写チャージャーまたは転写ローラーを用いた転写方式を採用してもよい。あるいは、感光体ドラム41から記録紙へトナー像を直接転写する直接転写方式に代えて、感光体ドラム41と記録紙との間に、転写ローラー、転写ベルトといった中間転写体を配置して、2段階以上のプロセスによって転写
を行なうようにしてもよい。
定着装置47は、加熱ローラー471と加圧ローラー472とを含む。加熱ローラー471は、記録紙を加熱することで、その上に転写されたトナーを溶融するとともに、加熱ローラー471と加圧ローラー472との間の圧縮力により、溶融したトナーが記録紙上に定着される。そして、記録紙はトレイ57に排出される。なお、定着装置47としては、図1に示すような定着ベルトを用いた定着方式に代えて、定着ローラー等用いた定着方式、もしくは非接触の定着方式を採用してもよい。
一方、記録紙が分離された感光体ドラム41では、その残留電位が除去された後、クリーニング部によって残留トナーが除去および清掃される。そして、次の画像形成処理が実行される。クリーニング部は、一例として、クリーニングブレード、クリーニングブラシ、クリーニングローラー、またはこれらの組み合わせにより、残留トナーを除去および清掃する。あるいは、感光体ドラム41Y,41M,41C,41Kを用いて残留トナーを回収するクリーナーレス方式を採用してもよい。
IDCセンサー49は、感光体ドラム41上に形成されるトナー像の濃度を検知する。このIDCセンサー49は、代表的に反射型フォトセンサからなる光強度センサーであり、感光体ドラム41の表面からの反射光強度を検知する。
制御部100は、画像形成装置1における全体の制御を司る。本実施の形態に従う画像形成装置1の制御部100には、複数のOSの同時起動(または、並列起動)を可能にする仮想化環境が実現される。複数のOSとしては、最低限実行されるホストOSと、要求などに応じて適宜実行されるゲストOSとがある。すなわち、ホストOSは、退避されない。
仮想化環境を実現するための処理の詳細については、後述する。
<B.画像形成装置1の制御部100のハードウェア構成>
次に、本実施の形態に従う画像形成装置1の制御部100のハードウェア構成について説明する。図2は、本実施の形態に従う画像形成装置1の制御部100のハードウェア構成を示すブロック図である。
図2を参照して、制御部100は、画像形成装置1の全体を制御する演算処理主体であり、1または複数の演算部を有する。具体的には、制御部100は、主たる構成要素として、CPU(Central Processing Unit)またはMPU(Micro Processing Unit)などからなるプロセッサー102と、DRAMなどからなるメインメモリー110と、画像処理ASIC(Application Specific Integrated Circuit)130,140と、画像形成装
置1の各コンポーネントと信号またはデータを遣り取りするインターフェイス回路105,106,107,108と、二次記憶装置の一例であるHDD(Hard Disk Drive)1
50とを含む。これらの構成要素は、内部バス104を介して、互いにデータ通信可能に構成される。
メインメモリー110の物理メモリー空間は、システムメモリー112と、画像メモリー114とに区分されて、それぞれに応じた用途で使用される。システムメモリー112は、プロセッサー102でプログラムを実行するための各種データを格納するためのワークメモリとして用いられる。画像メモリー114は、画像データに対する編集・加工・表示などの処理過程で一時的に作成される画像データのバッファリングに用いられる。例えば、複数の画像データを合成する際の画像バッファ、あるいは、操作パネルなどに画像データの全部または一部をプレビュー表示する際の画像バッファなどとして用いられる。
メインメモリー110と内部バス104との間には、メモリー制御IC(Integrated Circuit)118が配置されており、プロセッサー102などからの要求に応答して、メインメモリー110へのデータ書込み、または、メインメモリー110からのデータ読出しを行なう。なお、メモリー制御IC118には、圧縮/伸張IC120が接続されており、メインメモリー110に書込まれる画像データをブロック単位で圧縮するとともに、メインメモリー110から読出される画像データを伸長する。このような圧縮伸長管理によって、メモリー空間の効率的な利用および処理の高速化を実現する。
一例として、図2には、原稿の両面を一度にスキャンできる構成を例示する。すなわち、制御部100は、原稿の表面側に配置された撮像デバイス(表面側撮像デバイス)が原稿をスキャンすることで読み取られた画像データを処理する画像処理ASIC130と、原稿の裏面側に配置された撮像デバイス(裏面側撮像デバイス)が原稿をスキャンすることで読み取られた画像データを処理する画像処理ASIC140とを含む。このような構成を採用することで、スキャンニーズの高まりに対して、両面同時スキャンによる生産性改善を実現できる。
なお、画像処理ASIC130および140に代えて、プロセッサー102が画像処理を実行するようにしてもよいが、ジョブをより高速に処理するためには、ASICなどの回路ロジックを採用することが好ましい。
画像処理ASIC130は、表面側撮像デバイスからの画像データをサブメモリー134に格納する。画像処理ASIC130とサブメモリー134との間には、メモリー制御IC132が配置されており、サブメモリー134へのデータ書込み、および、サブメモリー134からのデータ読出しを仲介する。サブメモリー134の物理メモリー空間は、表面側撮像デバイスからの画像データを格納するための表面入力画像データバッファ136と、画像メモリー138とに区分されて、それぞれに応じた用途で使用される。画像メモリー138は、画像データに対する編集・加工・表示などの処理過程で一時的に作成される画像データのバッファリングに用いられる。例えば、表面側撮像デバイスからの画像データ(生データ)を指定された画像形式に変換する際の画像バッファ、FAXを送信する際の画像バッファ、または、外部ネットワークあるいは外部機器へ画像データを出力する際の画像バッファなどとして用いられる。
同様に、画像処理ASIC140は、裏面側撮像デバイスからの画像データをサブメモリー144に格納する。画像処理ASIC140とサブメモリー144との間には、メモリー制御IC142が配置されており、サブメモリー144へのデータ書込み、および、サブメモリー144からのデータ読出しを仲介する。サブメモリー144の物理メモリー空間は、裏面側撮像デバイスからの画像データを格納するための裏面入力画像データバッファ146と、画像メモリー148とに区分されて、それぞれに応じた用途で使用される。
HDD150には、各種プログラムが不揮発的に格納されている。具体的には、HDD150は、ハイパーバイザー152と、ホストOS154と、1または複数のゲストOS156と、1または複数のアプリケーション158と、制御ファームウェア160とを格納している。これらのプログラムは、DVD−ROM(Digital Versatile Disk Read Only Memory)などの光学記録媒体、磁気記録媒体、半導体記録媒体、光磁気記憶媒体など
の非過渡的(non-transitory)なコンピューター読取可能な記録媒体を媒介としてインストールされてもよい。あるいは、有線通信回線または無線通信回線を介して図示しないサーバー装置などから必要なプログラムがダウンロードされて、制御部100にインストールされてもよい。これらの各プログラムの詳細および実行タイミングなどについては、後述する。
内部バス104には、インターフェイス回路105,106,107,108が接続されている。
インターフェイス回路105は、FAXを送受信するFAX通信部、および/または、ネットワークを介して他の装置との間でデータを遣り取りするネットワーク通信と接続される。プロセッサー102からの指令などを受けて、通信部から外部装置への送信処理、および、通信部での外部装置からのデータの受信処理などを仲介する。なお、ゲストOS156が提供する機能を外部端末で利用する機能を実装してもよい。
インターフェイス回路106は、操作パネル123に各種情報を表示する処理、および、操作パネル123に対するユーザー操作を受け付ける処理などを仲介する。操作パネル123は、ユーザーによるタッチ操作を受け付ける表示操作部であり、典型的には、表示部であるLCD(Liquid Crystal Display:液晶表示部)と、タッチ操作を受け付けるタッチパネルとを含む。なお、表示部には、ホストOS154およびゲストOS156の動作状況を可視化する機能を実装してもよい。例えば、表示部上に、空きメモリー空間の量およびプロセッサーの利用時間などをグラフまたは数値で表示するようにしてもよい。すなわち、画像形成装置1は、ゲストOS156上の情報を表示する表示部を有していてもよい。
インターフェイス回路107は、複数の認証デバイスとのデータの遣り取りを仲介する。認証デバイスとしては、典型的には、カード認証デバイス121および指紋認証デバイス122を含む。
インターフェイス回路108は、プロセッサー102とプリントエンジン4との間のデータの遣り取りを仲介する。
図2に示す制御部100においては、メインメモリー110内の画像メモリー114と、サブメモリー134内の画像メモリー138と、サブメモリー144内の画像メモリー148との、3つの画像メモリーが用意されている。
画像メモリーは、画像形成装置1の本体での画像処理において利用するメモリーである。このような画像メモリーは、画像形成装置1において必須の構成である。図2に示すように、画像メモリーは、メインメモリー110上に専用の画像処理領域として確保されてもよいし、画像処理ASIC130,140ごとに設けられるローカルメモリー(サブメモリー134,144)上に専用の画像処理領域として確保されてもよい。上述したように、表面用の画像処理ASIC130に加えて、裏面の画像処理ASIC140にもローカルメモリー(サブメモリー144)を配置し、このローカルメモリー上に画像メモリーを設けることで、高速スキャンを実現する。
このように、画像形成装置1のメモリー構成の設計としては、それぞれの目的に応じて専用の領域が確保されることも多い。
また、プリント処理(画像形成装置)において、例えば、画像形成装置1を外部のプリントサーバーと接続する場合にも、図2に示すような画像処理ASICおよびサブメモリー(画像メモリー)を追加することもある。このように、画像形成装置1の機能を拡張する場合にも、より多くの画像メモリーが追加されることもあり、これらの画像メモリーが同時に利用されることでマルチ動作を実現している。
<C.画像形成装置1の制御部100での仮想化環境>
次に、本実施の形態に従う画像形成装置1の制御部100での仮想化環境について説明する。図3は、本実施の形態に従う画像形成装置1の制御部100でのプログラムの実行状態の一例を示す模式図である。
図3には、ホストOS154に加えて、3つのゲストOS156(ゲストOS1〜OS3)が同時実行されている状態を示す。図3を参照して、これらの複数のOSは、共通のハードウェアリソース(すなわち、プロセッサー102およびシステムメモリー112)を用いて実行される。図3には、プロセッサー102がシステムメモリー112にハイパーバイザー152を展開して実行することで、複数のOSが同時実行されている状態を示す。すなわち、それぞれのOSを動作させるためのデータを格納するメモリー空間は、システムメモリー112内に用意される。システムメモリー112のメモリー空間の利用制御(メモリー領域の割り当てなど)は、ハイパーバイザー152によって管理される。
ハイパーバイザー152は、プロセッサー102およびシステムメモリー112を含むリソースを用いて、ホストOS154および複数のゲストOS156を含む複数のOSの同時実行を制御する。ハイパーバイザー152は、各OSの実行に必要な仮想化されたプロセッサーリソースの割り当て処理、割込み処理、メモリー制御、デバイスドライバーの提供などを行なう。このような処理を提供することで、複数のゲストOS156の切り替え実行を可能にする。ハイパーバイザー152は、画像形成装置1および画像形成装置1に接続されたデバイスをゲストOS156が利用するための適切な初期化を行なう機能を有している。このような機能によって、ゲストOS156に切り替えられた直後であっても、ホストOS154と同様の処理を実行することができる。
なお、ハイパーバイザー152の機能として、メモリー空間のマネージメントに加えて、電力のマネージメントを行なってもよい。例えば、ハイパーバイザー152は、画像形成装置1が省電力モードのときに、ゲストOS156の動作を制限する機能を実装してもよい。
ホストOS154は、制御部100において常時実行されているOSである。ホストOS154上では、制御ファームウェア160が実行される。ホストOS154としては、Linux(登録商標)などの仮想メモリー機構をもつOSが用いられる。但し、ホストOS154としては、汎用的なOSではなく、後述するような、調停モジュール170による介入制御を受け付けるように、画像形成装置1に独自の機能が拡張されている。
制御ファームウェア160は、ホストOS154上で実行され、画像形成装置1の主たる制御を司る。より具体的には、制御ファームウェア160は、画像形成装置1の主たる処理(本体動作)の制御、画像メモリーを扱う画像処理ASIC130,140の制御を主体としたジョブの処理、各種のデバイス制御などを担当する。
ゲストOS156は、仮想メモリー機能をもつOSであれば、ホストOS154と同一種類のOSであってもよいし、異なる種類のOSであってもよい。例えば、ゲストOS156としては、LinuxおよびWindows(登録商標)などを用いることができる。
ゲストOS156上では、各種のアプリケーション158が実行される。例えば、アプリケーション158としては、ユーザー認証を行なうアプリケーションを含み得る。より具体的には、アプリケーション158として、カード認証アプリケーション1581と、指紋認証アプリケーション1582と、ID認証アプリケーション1583とを含む。これらの複数の認証プログラムは、複数の認証方式にそれぞれ対応して互いに独立して配置される。
カード認証アプリケーション1581、指紋認証アプリケーション1582、および、ID認証アプリケーション1583は、複数の認証プログラムの各々を実行するためのホストOSとは異なる複数のゲストOS(ゲストOS1、ゲストOS2、および、ゲストOS3)上でそれぞれ実行される。
さらに、ゲストOS156上に画像形成装置1のユーザーごとのデスクトップ環境を実現し、ジョブ内容を管理する機能を実装してもよい。なお、ゲストOS156に任意のプログラムを提供するアプリストアーに類似した機構を採用してもよい。
さらに、ハイパーバイザー152の機能の一部、または、ハイパーバイザー152と連携する独立した機能として、調停モジュール170、空きメモリー管理モジュール172、認証管理モジュール174が実行される。
調停モジュール170は、ハイパーバイザー152と同一レベルで動作し、制御ファームウェア160とハイパーバイザー152とを連携させ、同時実行中のゲストOS156との間でメモリー空間を調停して利用する。本実施の形態においては、調停モジュール170は、処理対象のジョブの動作を考慮して、画像メモリーを効率的に利用することで、ゲストOS156の切り替えに対して先行読出し、および、メモリーの内容の退避などを実行する。なお、調停モジュール170は、いずれかのゲストOS156上のユーザー管理情報を必要に応じて退避前に制御ファームウェア160と共有する機能を有していてもよい。
空きメモリー管理モジュール172は、システムメモリー112のうちホストOS154およびホストOS154と同時実行されるゲストOS156が利用していない空きメモリー空間を管理する。すなわち、空きメモリー管理モジュール172は、制御ファームウェア160が画像処理に利用するメモリー空間と他のゲストOS156の認証プログラム(カード認証アプリケーション1581、指紋認証アプリケーション1582、ID認証アプリケーション1583)に利用するメモリー空間とを管理する。このとき、空きメモリー管理モジュール172は、調停モジュール170と連携動作することで、画像メモリー空間を含めた空きメモリー空間を管理する。調停モジュール170を管理するためのAPI(Application Programming Interface)を実装することで、モジュール間の連携性を高めるようにしてもよい。
認証管理モジュール174は、認証デバイスとゲストOSと関連を管理し、認証デバイスからの通知があると、対応するゲストOSを先行起動させてから、制御ファームウェア160への通知を行なう。認証管理モジュール174は、認証デバイスの各々での認証に必要な認証プログラムの実行に必要なゲストOSとの組み合わせを管理する。認証デバイスとしては、カード認証を行なうためにカード情報を読み取るデバイスであるカード認証デバイス121と、指紋認証を行なうために指紋を読み取るデバイスである指紋認証デバイス122と、ID認証を行なうためにタッチパネルでID/パスワードが入力されたことを検知するタッチパネルデバイスである操作パネル123とを想定する。このように、画像形成装置1は、複数の認証方式にそれぞれ対応する複数の認証デバイスを有している。
例えば、認証管理モジュール174は、認証デバイスの各々での認証に必要な認証プログラムの実行に必要なゲストOSとの組み合わせとして、以下のようなテーブルを管理している。
ホストOS154およびゲストOS156について、連続するメモリー空間を優先して画像メモリーに退避することが好ましい。
あるゲストOS156上のプログラムを他のゲストOS156上で実行させるように、マイグレーション処理を適切に行なう機能を実装してもよい。この場合には、あるゲストOS156に何らかの不具合が生じても、別のゲストOS156がアプリケーションの処理を継続できる。すなわち、調停モジュール170は、ゲストOS156を外部システムへマイグレーションしたときに退避したデータ内容を移動管理する機能をさらに含む。
さらに、画像形成装置1を管理するサーバー型または常駐型のプログラムが、ゲストOS156の構成を管理し、複数の画像形成装置1および画像形成装置群の全体として、最適な構成になるように実行するゲストOS156および各ゲストOS156上で実行するアプリケーションを選択するようにしてもよい。
ところで、図2に示すように、画像形成装置1の制御部100には、複数の画像メモリーが用意されている場合が多い。一方で、画像形成装置1において、プリント動作(画像形成動作)のみが連続する場合、または、原稿の片面のみをスキャンする場合などのように、一度にすべての画像メモリーが利用されていない状態も多くある。
また、一般的には、画像メモリーは、ブロック単位で圧縮伸長管理されている。さらに、画像メモリーを単位分割して共用利用することで、複数タスクが物理メモリーを効率よく利用できるような構成も採用されている。
一方で、本実施の形態に従う画像形成装置1のように、複数のゲストOSを搭載して多機能化されることもあるが、ゲストOSのメモリー消費量が大きくなる場合がある。また、複数のゲストOSを稼動させるマルチOSの実現が要求されているが、一般的な仮想環境の実現の場合と同様の課題がある。そのため、画像形成装置の限られたリソース内で、複数のOSの切り替えについての応答性能に低下させず、マルチOSを実現することは容易ではない。
例えば、上述の特許文献1は、単一システム内に共存させた複数のオペレーティングシステムを高速に切り替えて使用できる環境を開示する。この特許文献1に記載の発明では、システムメモリー上にOS管理外の独立したメモリー空間を事前に確保し、ゲストOSの動作コンテキストの保存に利用する。但し、このような構成を採用したとしても、独立したメモリー空間をシステムメモリー上に確保することの制限があり、また、メモリー空間が不足した場合には二次記憶装置を併用せざるを得ず、遅延が生じるため、複数のOSを高速に切り替え実行することが難しい場合もある。
また、上述の特許文献3は、第1OSユーザー名を第2OSユーザー名として用いてログイン手順を簡略化することで、第2OSログイン手順を高速化している。しかしながら、画像処理ジョブが発生しメモリーなどリソースが枯渇する場合において、本体制御の第1OSへリソースを明け渡すために第2OSのリソース解放のためのログアウト処理時間が発生し、画像処理実行開始が遅れ得る。特に、リソース確認詳細が開示されておらず画像メモリーについて言及がないため、リソース不足時のフロー手順から第2OSの終了によりリソース解放すると終了手順に大きく時間を取られる。その結果、第1OSジョブ実行開始への遅延が大きくなりジョブ生産性への影響が大きい。
<D.認証処理>
次に、本実施の形態に従う画像形成装置1での認証処理の一例について説明する。
ユーザー認証が行なわれる際、カード認証デバイス121または指紋認証デバイス122からホストOSの仮想デバイスに制御信号が与えられ、ホストOS154上で実行されるアプリケーション(制御ファームウェア160に含まれる、プリントアプリケーション1601、スキャンアプリケーション1602、FAXアプリケーション1603、BOXアプリケーション1604)がその制御信号を受け取って、認証処理を実施する。この場合、認証を行なうアプリケーションは、ゲストOS156上で実行される認証アプリケーション(カード認証アプリケーション1581、指紋認証アプリケーション1582、ID認証アプリケーション1583)に対して認証処理を行なうために、必要なゲストOS156が立ち上がっているかをチェックし、必要に応じてゲストOS156を立ち上げた上で認証処理を実施する。
画像形成装置1においては、カード認証デバイス121または指紋認証デバイス122の認証デバイスから通知される制御信号を認証管理モジュール174が受け取り、必要なゲストOSを起動した上でホストOS154の仮想デバイス1605に制御信号を通知する。このような処理を採用することで、ホストOS154に対して認証を行なうアプリケーション158はゲストOS156の起動処理と並行して、認証要求を行なうことができるため、認証処理を高速に行なうことが可能となる。
図4は、本実施の形態に従う画像形成装置1の制御部100での認証処理の実行状態の一例を示す模式図である。図4を参照して、制御部100のハードウェアを利用してハイパーバイザー152が実行され、ハイパーバイザー152の管理下で、ホストOS154および複数のゲストOS156が実行されている例を示す。
制御部100のハードウェアとしては、メモリー制御IC118および圧縮/伸張IC120(図2)により提供される、MMU(メモリー管理部:Memory Management Unit)およびICの機能と、プロセッサー102と、メインメモリー110とを含む。さらに、制御部100のハードウェアとしては、サブメモリー134,144に加えて、認証デバイス192と、NIC(Network Interface Card)デバイス194と、各種の記憶デバイス196を含む。
ハイパーバイザー152は、複数ゲストOSの実行環境の起動、一時停止、再開、停止を管理する。典型的には、ハイパーバイザー152は、異なる仮想メモリー空間でプログラム実行が可能な仮想メモリー制御システムに相当する仮想的なメモリー管理部(VMMU)1521と、異なる割込み情報を扱うことが可能な仮想割込み制御システムである割込み管理部(VIC)1522と、異なるプロセッサーを扱う仮想プロセッサー制御システムに相当する仮想的な演算リソース(VCPU)1523とを、複数のOSが利用可能な状態で提供する。また、ゲストOS1〜OS3上では、アプリケーション158(カー
ド認証アプリケーション1581、指紋認証アプリケーション1582、ID認証アプリケーション1583)がそれぞれ実行されるものとする。ハイパーバイザー152は、スタブプログラム1584,1585,1586を用いてそれぞれゲストOS156およびアプリケーション158の実行を管理する。
画像メモリーは、ブロック単位で圧縮伸長管理されている。さらに、画像メモリーを単位分割して共用利用することで、複数タスクが物理メモリーを効率よく利用できるような構成が採用されているとする。
ホストOS154およびゲストOS156についても、仮想メモリー機構を用いて一定のページ単位でメモリー空間を管理している。なお、以下の説明では、仮想メモリー機構をもたないOSについては考慮していない。
しかしながら、画像メモリーで管理されるブロック単位と、仮想メモリー機構を用いて管理されるページ単位とは、単位サイズが同一とは限らない。また、管理対象の画像メモリーがメインメモリー110に設けられる場合と、サブメモリー134,144に設けられる場合とでは、その取扱いも同一にはできない。
そこで、画像形成装置1での管理単位および制御を前提として、ホストOS154およびゲストOS156、ならびに、ハイパーバイザー152でのメモリー共有化機構が必要になる。
本実施の形態に従う画像形成装置1には、画像処理ASIC130,140が組み込まれている。但し、プリント制御に利用される画像メモリーは、プロセッサー102と共有するメインメモリー100内の画像メモリー114、ならびに、画像処理ASIC130,140に関連付けられる専用のサブメモリー134,144内の画像メモリー138,148の2種類から構成される。このように、画像メモリーを利用するジョブに応じた利用形態となるため、メモリー領域の確保をジョブ動作に応じて上述のような単位サイズで実施する。
また、ゲストOS156上で実行されるアプリケーション158がホストOS154と共有する画像メモリーを適切に利用するためには、認証に必要なゲストOS156がハイパーバイザー152および調停モジュール170と情報交換し、メモリー割り当てを行なう必要がある。複数のアプリケーション158の各々が独自にメモリー割り当てを実施すると、画像形成装置1のシステム全体としてのホストOS154および制御ファームウェア160にて優先される動作を管理できなくなること、各ゲストOS156での異なるメモリー管理を実装するためにラッパーが必要となるため、両者をみたすスタブプログラム1584,1585,1586を各ゲストOS156に適合させてスタブ管理プログラム190によりインストールしなければならない。
スタブ管理プログラム190は、ハイパーバイザー152またはホストOS154上にて稼働し、各ゲストOS156に合わせたスタブプログラム1584,1585,1586を管理保存、各ゲストOS156のインストール方法でアプリケーション158が必要な情報を取得可能な実装にてインストール実施するように構成される。
また、アプリケーションからアクセス可能なAPI(Application Programming Interface)をもち、メモリー要求、解放、拡張、ページアウトの指示、およびメモリー割り当て情報の入手が可能になるよう構成されている。
退避メモリー管理モジュール178は、二次記憶装置(図2のHDD150)にアクセ
ス可能であり、メモリーをスワップアウトして空きメモリー空間を提供する。
図5は、本実施の形態に従う画像形成装置1におけるゲストOSの追加手順を説明するフローチャートである。図5に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102がハイパーバイザー152を実現するプログラムを実行することで実現される。
図5を参照して、プロセッサー102は、新しいゲストOSの追加要求を受けたか否かを判断する(ステップS100)。新しいゲストOSの追加要求を受けていなければ(ステップS100においてNOの場合)、処理は終了する。
新しいゲストOSの追加要求を受けていれば(ステップS100においてYESの場合)、プロセッサー102は、追加要求を受けたゲストOSに応じたスタブプログラムが存在するか否かを判断する(ステップS102)。
追加要求を受けたゲストOSに応じたスタブプログラムが存在すれば(ステップS102においてYESの場合)、プロセッサー102は、追加要求を受けたゲストOSに対して、対応するスタブプログラムのインストールを指示する(ステップS104)。そして、処理は終了する。
これに対して、追加要求を受けたゲストOSに応じたスタブプログラムが存在しなければ(ステップS102においてNOの場合)、プロセッサー102は、追加要求を受けたゲストOSの追加を停止する(ステップS106)。そして、処理は終了する。
図6は、本実施の形態に従う画像形成装置1における認証要求があった場合の処理手順を説明するフローチャートである。図6に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102が認証管理モジュール174を実現するプログラムを実行することで実現される。
図6を参照して、プロセッサー102は、複数の認証デバイスのうちいずれかの認証デバイスからの信号を受けたか否かを判断する(ステップS200)。いずれの認証デバイスからも信号を受けていなければ(ステップS200においてNOの場合)、処理は終了する。
いずれかの認証デバイスから信号を受けていれば(ステップS200においてYESの場合)、プロセッサー102は、受けた認証デバイスからの信号に応じて、認証プログラムおよび認証プログラムの実行に必要なゲストOSを決定する(ステップS202)。そして、プロセッサー102は、決定した必要なゲストOSを起動する(ステップS204)。このゲストOSの起動に際しては、図5に示す処理が実行されてもよい。
決定した必要なゲストOSの起動後、プロセッサー102は、受けた認証デバイスからの信号に応じた認証プログラムを起動したゲストOS上で実行する(ステップS206)。そして、処理は終了する。
<E.画像形成装置1でのメモリーマネージング>
次に、画像メモリー特有のデータ構造を利用したメモリーマネージングについて説明する。特に、ブロック分割された画像メモリーの利用に適した処理について説明する。
本実施の形態に従う画像形成装置1では、物理的な画像メモリーは、画像ブロック単位で圧縮伸長管理される。そして、一定サイズの単位メモリーは、ツリー構造で管理される
。より具体的には、単位メモリーの各々は、リンクトリストを用いたツリー状のデータ構造を用いて管理され、各単位メモリーの種別およびアドレスが拡張アドレス・データ構造に格納されている。
図7は、本実施の形態に従う画像形成装置1の制御部100におけるブロック分割された画像メモリーの利用形態を説明するための模式図である。図7を参照して、物理的な画像メモリーは、画像ブロック単位で圧縮伸長管理される。そして、一定サイズの単位メモリーは、ツリー構造で管理される。より具体的には、単位メモリーの各々は、リンクトリストを用いたツリー状のデータ構造を用いて管理され、各単位メモリーの種別およびアドレスが拡張アドレス・データ構造に格納されている。
図7に示すような構成において、調停モジュール170は、画像処理ASICと調停動作するように構成されることが好ましい。このような構成は、ホストOS154およびゲストOS156ならびにハイパーバイザー152の仮想メモリー機構との親和性は高い。一方で、このような構成は、ジョブ制御に依存した従来の画像処理を前提に構成されているため、他の目的、特にOSが扱えるメモリー空間としての利用については考慮されていない。
本実施の形態に従う画像形成装置1では、画像形成の管理単位に対して、ホストOS154およびゲストOS156ならびにハイパーバイザー152でのページ単位構造を割り当て、通常のメモリー空間として管理することで、ゲストOS156でも画像メモリーを利用することを可能にする。
すなわち、仮想メモリーとしては、一定サイズのページメモリーがツリー構造で管理され、いずれのゲストOSも利用可能になっている。画像メモリーは、画像メモリーの種別(すなわち、メインメモリー110内に設けられた場合と、サブメモリー134,144に設けられた場合)により、メモリー応答性能が異なる。そのため、単純なメモリー空間として利用すると、メモリー応答性能を考慮せずアクセスされるので、全体としての性能が劣化する可能性がある。
本実施の形態に従う画像形成装置1では、本体OS(ホストOS154およびゲストOS156とハイパーバイザー152との間に、調停モジュール170を介在させ、画像メモリーの種別に応じて、通常のメモリー空間、および、ストレージメモリー空間のいずれかとして選択的に割り当てる。
例えば、ストレージメモリー空間は、ページ退避可能性が高く(Swappableに)設定さ
れ、ジョブ動作に応じてスワップされるよう、調停モジュール170によってメモリー管理が調停される。また、一旦ページ化した場合、再度ストレージメモリー空間へレストアされるのではなく、通常スワップと同様に扱うことで、高速なメモリー復帰が可能になる。
図7には、ハイパーバイザー152と連携する調停モジュール170が、メインメモリー110をページ退避可能性が低いと(Residentialに)設定し、サブメモリー134,
144をページ退避可能性が高いと(Swappableに)設定してもよい。また、サブメモリ
ー134,144上の退避メモリーはHDD150のスワップ領域にスワップアウトされてもよい。
これらのメモリー管理には、ゲストOS156を特定するIDをメモリー空間に配置されるデータに付与することで、読出し済みのゲストOS156がジョブ実行により破壊されたことを調停モジュール170が把握する機能においても利用できるようにしてもよい
。すなわち、調停モジュール170は、読出し済みのゲストOS156がジョブ実行により破壊されたことを検知し、ジョブ開始前に検知された破壊されたゲストOS156を再度読出す。
図8は、本実施の形態に従う画像形成装置1の制御部100におけるブロック分割された画像メモリーの管理方法を説明するための模式図である。図8を参照して、あるメモリー空間内の画像ブロック単位(例えば、4kByte)の各々に対して、属性情報を含むテーブル(カラム)が関連付けられる。
このテーブルには、複数の属性情報が格納される。図8に示す例では、ブロック番号、アドレス、メモリーID、OSID、JOB情報、C、Uなどである。
ブロック番号は、メモリー空間上の領域を特定する情報である。アドレスは、メモリー空間上の対応するブロックのアドレスである。メモリーIDは、システムメモリー112上に設けられる画像メモリーであるのか、サブメモリー134,144上に設けられる画像メモリーであるのかを示す。OSIDは、対応するOSのIDを示す。JOB情報は、ゲストOSに対応する認証JOBであるか否かを示す。Cは、対応ブロックが参照された回数を示し、Uは、対応ブロックが更新されたか否かを示す。
このように、調停モジュール170は、メモリー空間の種別に区分して、単位メモリーごとに利用しているOSを特定可能なIDを含むリストを管理する機能を有している。このようなブロック単位ごとの情報に基づいて、スワップアウトまたは書き戻しなどが制御される。
図9は、本実施の形態に従う画像形成装置1の制御部100における複数のメモリー間でのデータ管理の一例を示す模式図である。図9を参照して、ハイパーバイザーは、要求などに応じて、HDD150からゲストOSを、メインメモリー110内のシステムメモリー112上に読み出して起動する((1)起動)。その後、状況に応じて、メインメモリー110内の画像メモリー114に退避する((2)退避)。なお、メインメモリー110内の画像メモリー114に十分な空きメモリー空間が存在しなければ、いずれかの画像処理ASICに関連付けられるサブメモリー134,144内の画像メモリー138,148に読み出された内容が退避されることもある。
その後、画像処理ASICによる処理要求などに応じて、サブメモリー134,144に、十分な空きメモリー空間を確保するために、退避しているデータをHDD150にページアウトする。
図9に示すように、本実施の形態に従う画像形成装置1においては、HDD150、メインメモリー110(含:システムメモリー112、画像メモリー114)、および、画像処理ASICに関連付けられたサブメモリー134,144(画像メモリー138,148)の三者あるいは四者の間で、メモリーの使用要求および空きメモリー空間の量などに応じて、データの退避処理、ページアウト処理などが最適化された状態で実施される。
図10は、本実施の形態に従う画像形成装置1の制御部100におけるメモリー空間の利用形態の一例を示す図である。図10を参照して、例えば、システムメモリー112にホストOSならびにゲストOS1およびゲストOS2の実行に必要なデータが保存されている状態で、ゲストOS3の起動が指令されたとする((1)要求発生)。すると、調停モジュール170は、例えば、その実行が一時的に中止されるゲストOS1に割り当てていたメモリー領域をサブメモリー134に退避(スワップアウト)する。あるいは、ゲストOS1に割り当てていたメモリー領域をHDD150のスワップ領域に退避(スワップ
アウト)するようにしてもよい。
このとき、システムメモリー112からサブメモリー134へのデータ転送は、システムメモリーを中継して、そのバッファ容量(例えば、4kB)の単位(すなわち、ブロック単位)でパラレル伝送することもできる。
その後、サブOS3の実行の必要性がなくなると、システムメモリー112の内容がHDD150にスワップアウトされ、サブメモリー134からシステムメモリー112へ書き戻される。
このように、調停モジュール170は、必要なシステムメモリー112が利用可能になるまでブロック単位で並列にメモリー転送を実施し、ゲストOS156に対してメモリー空間を割り当てる。そして、調停モジュール170は、メモリー転送の完了後にゲストOS156への切り替えを行なう。さらにその後、調停モジュール170は、ホストOS154へ切り替える場合に、先に実行されたゲストOSおよび当該ゲストOS156で動作するプログラムが利用するシステムメモリーを一時凍結する処理、先に転送されたメモリーを順次入れ替える処理と、入れ替え完了後にホストOSへ切り替える処理とを連続動作させる。
また、調停モジュール170は、ゲストOS156切り替えた後に、ゲストOS156からホストOS154ではなく他のゲストOS156に切り替える場合に、ホストOS154に関するファイルメモリーのデータをHDD150(二次記憶装置)へ順次並列転送する処理、先に実行されたゲストOS156および当該ゲストOS156で動作するプログラムが利用するシステムメモリーを一時凍結する処理、HDD150へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送する処理と、他のゲストOSが必要とするシステムメモリーになるまで先のゲストOSが転送完了したシステムメモリーから順次確保する処理と、他のゲストOSが動作可能なシステムメモリーが確保されたことで切り替えする処理とを連続動作させる。
図11は、本実施の形態に従う画像形成装置1でのメモリーマネージングに係る処理手順を示すフローチャートである。図11に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102が調停モジュール170のプログラムを実行することで実現される。
図11を参照して、プロセッサー102(調停モジュール170)は、メモリー空間の種別に区分して、単位メモリーごとに利用しているOSを特定可能なIDを含むリストを更新する(ステップS300)。ホストOSからゲストOSへの切り替えが要求されたか否かを判断する(ステップS302)。
ホストOSからゲストOSへの切り替えが要求されると(ステップS302においてYESの場合)、プロセッサー102(調停モジュール170)は、必要なシステムメモリーが利用可能になるまで、ブロック単位で並列にメモリー転送を実施する(ステップS304)。これにより、切り替えが要求されたゲストOSに対して必要なメモリー空間を割り当てることができる。メモリー転送の完了後に、プロセッサー102(調停モジュール170)は、ホストOSからゲストOSへの切り替えを行なう(ステップS306)。
その後、プロセッサー102(調停モジュール170)は、ゲストOSから別のゲストOSへの切り替えが要求されたか否かを判断する(ステップS308)。
ゲストOSから別のゲストOSへの切り替えが要求されると(ステップS308におい
てYESの場合)、すなわち、ゲストOSへ切り替えた後に、ゲストOSからホストOSではなく他のゲストOSに切り替える場合に、まず、プロセッサー102(調停モジュール170)は、ホストOSに関するファイルメモリーのデータをHDD150(二次記憶装置)へ順次並列転送する(ステップS310)。続いて、プロセッサー102(調停モジュール170)は、先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する(ステップS312)。さらに、プロセッサー102(調停モジュール170)は、HDD150(二次記憶装置)へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送し(ステップS314)、他のゲストOSが必要とするシステムメモリーになるまで先のゲストOSが転送完了したシステムメモリーから順次確保する(ステップS316)。最終的に、プロセッサー102(調停モジュール170)は、他のゲストOSが動作可能なシステムメモリーが確保されたことで、ゲストOSから指定された別のゲストOSへ切り替える(ステップS318)。そして、処理はステップS320へ進む。
ホストOSからゲストOSへの切り替えが要求されていなければ(ステップS302においてNOの場合)、あるいは、ゲストOSから別のゲストOSへの切り替えが要求されていなければ(ステップS308においてNOの場合)、あるいは、ステップS318の実行後、ゲストOSからホストOSへの切り替えが要求されたか否かを判断する(ステップS320)。
ゲストOSからホストOSへの切り替えが要求されると(ステップS320においてYESの場合)、プロセッサー102(調停モジュール170)は、先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する(ステップS322)。そして、プロセッサー102(調停モジュール170)は、先に転送されたメモリーを順次入れ替える(ステップS324)。メモリーの入れ替え完了後に、プロセッサー102(調停モジュール170)は、ゲストOSからホストOSへ切り替える(ステップS326)。そして、処理はステップS300へ戻る。
ゲストOSからホストOSへの切り替えが要求されていなければ(ステップS320においてNOの場合)、ステップS300以下の処理が繰り返される。
<F.認証処理が必要なジョブの処理>
次に、認証処理が必要なジョブの処理について説明する。図12は、本実施の形態に従う画像形成装置1での認証処理が必要なジョブに対する処理手順を示すフローチャートである。図12に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102が制御ファームウェア160を実行することで実現される。
図12を参照して、プロセッサー102は、管理するジョブリストに含まれるジョブについて、異なるゲストOS上で実行される複数の認証アプリケーションが必要であるか否かを判断する(ステップS400)。異なるゲストOS上で実行される複数の認証アプリケーションが必要でなければ(ステップS400においてNOの場合)、通常の処理が実行される(ステップS402)。
異なるゲストOS上で実行される複数の認証アプリケーションが必要であれば(ステップS400においてYESの場合)、プロセッサー102は、ゲストOSが使用するメモリー量を必要なゲストOSの数に比例させて推定する(ステップS404)。続いて、プロセッサー102は、推定した必要なメモリー量を空きメモリー空間から確保できるか否かを判断する(ステップS406)。
推定した必要なメモリー量を空きメモリー空間から確保できれば(ステップS406に
おいてYES)、プロセッサー102は、推定した必要なメモリー量を空きメモリー空間から確保し(ステップS408)、通常の処理を進行する(ステップS402)。
これに対して、推定した必要なメモリー量を空きメモリー空間から確保できなければ(ステップS406においてNO)、プロセッサー102は、処理対象のジョブについての認証方式に必要なメモリー量を空きメモリー空間から確保できるか否かを判断する(ステップS410)。
処理対象のジョブについての認証方式に必要なメモリー量を空きメモリー空間から確保できれば(ステップS410においてYES)、プロセッサー102は、通常の処理を進行する(ステップS402)。この場合、ステップS400以下の処理が再度実行される。
処理対象のジョブについての認証方式に必要なメモリー量を空きメモリー空間から確保できなければ(ステップS410においてNO)、プロセッサー102は、退避メモリーをして空きメモリー空間を提供する(ステップS412)。そして、プロセッサー102は、処理対象のジョブについての認証方式に必要なメモリー量を空きメモリー空間から確保し(ステップS414)、通常の処理を進行する(ステップS402)。この場合も、ステップS400以下の処理が再度実行される。
なお、推定した必要なメモリー量を空きメモリー空間から確保できなければ(ステップS406においてNO)、ジョブリストに格納されているそれぞれのジョブについて、認証方式を変更できるか否かを評価してもよい。
<G.メモリーの使用量変化の監視>
本実施の形態に従う画像形成装置1は、システムメモリー112に加えて、画像メモリーを用いて、複数のOS(ホストOS154ならびに1または複数のゲストOS156)を、共通のハードウェア上で同時実行させる。
そのため、複数のメモリー空間全体を考慮して、メモリー領域のマネージメントを行なうことが好ましい。具体的には、調停モジュール170は、ホストOS154で制御されるジョブ実行において利用される画像メモリー空間の使用量変化を監視し、ゲストOS156の実行環境において認証プログラムが利用するメモリー空間の使用量変化を監視するようにしてもよい。
さらに、調停モジュール170は、何らかの処理の開始または終了を都度記録する更新履歴を保持しておき、メモリー使用量または空きメモリー量の増減傾向に基づいて、格納している内容の配置場所を都度変更してもよい。
図13は、本実施の形態に従う画像形成装置1でのメモリー使用量の監視に係る処理手順を示すフローチャートである。図13に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102が調停モジュール170のプログラムを実行することで実現される。
図13を参照して、プロセッサー102は、メモリー領域の要求(ページフォルト)が発生したか否かを判断する(ステップS500)。メモリー領域の要求が発生していなければ(ステップS500においてNOの場合)には、ステップS500の処理が繰り返される。
メモリー領域の要求が発生していれば(ステップS500においてYESの場合)には
、プロセッサー102は、空きメモリー管理モジュール172へ空きメモリー量を問い合わせる(ステップS502)。そして、プロセッサー102は、過去の空きメモリー量の実績と、問い合わせに対して応答された空メモリー量とから、空きメモリー量の変化量を算出する(ステップS504)。
さらに、プロセッサー102は、算出した空きメモリー量の変化量が減少傾向を示しているか否かを判断する(ステップS506)。算出した空きメモリー量の変化量が減少傾向を示していなければ(ステップS506においてNOの場合)、ステップS500以下の処理が繰り返される。
算出した空きメモリー量の変化量が減少傾向を示していれば(ステップS506においてYESの場合)、プロセッサー102は、退避メモリー管理モジュール178へ退避メモリー量を問い合わせる(ステップS508)。そして、プロセッサー102は、対象となる退避メモリーを特定し、特定した退避メモリーをページアウトする(ステップS510)。
最後に、プロセッサー102は、退避メモリー管理モジュール178が管理する退避メモリー量を更新し(ステップS512)、ステップS500以下の処理を繰り返す。
このようなトータルでのメモリー領域の管理を行なうことで、オーバーコミットメントの発生頻度などを低減できる。また、制限のあるメモリーリソースの利用効率を向上させることができる。
<H.複数装置の連携>
上述の説明では、単一のハードウェアで実現される画像形成装置において仮想環境を実現する構成について例示したが、複数装置を連携させて仮想環境を実現するようにしてもよい。
図14は、本実施の形態に従う画像形成装置が他の装置と連携した認証処理の実行状態の一例を示す模式図である。図14に示す構成においては、本体装置1Aと補助装置1Bとが連携して仮想環境を実現する。
本体装置1A上では、ハイパーバイザー152がハードウェアを利用して、仮想環境を実現する。具体的には、ホストOS154ならびにゲストOS156(ゲストOS1およびゲストOS2)が実行されている。ホストOS154上では制御ファームウェア160が実行され、ゲストOS1上ではカード認証アプリケーション1581が実行され、ゲストOS2上では指紋認証アプリケーション1582が実行される。
一方、補助装置1B上においても、ハイパーバイザー153がハードウェアを利用して、仮想環境を実現する。具体的には、ホストOS154ならびにゲストOS156(ゲストOS1およびゲストOS2)が実行されている。ゲストOS3上ではID認証アプリケーション1583が実行される。
本体装置1A上で実行されるハイパーバイザー152および補助装置1B上で実行されるハイパーバイザー153とは、いずれも実行環境を管理する機能を有しており、互いに連携可能になっている。補助装置1B上で実行されるハイパーバイザー153は、マイグレーション後に初期化設定を行なう設定機能を有している。一方、本体装置1A上で実行されるハイパーバイザー152は、補助装置1Bでの初期化設定に必要な初期化手順指示書(プレイブック)を送受信する機能を有している。すなわち、補助装置1B上で実行されるハイパーバイザー153は、本体装置1Aからの初期化手順指示書(プレイブック)
に従って、初期化設定を行なう。
具体的な応用例としては、画像形成装置1の本体部が本体装置1Aに相当し、操作パネル123が補助装置1Bに相当するような構成が想定される。すなわち、操作パネル123にも認証処理が可能なプロセッサーが搭載されており、画像形成装置1での認証処理のうち、特定の認証処理を操作パネル123で分担して実行するような応用が想定される。あるいは、画像形成装置1が外部サーバーに対して認証処理を委任するような形態が想定される。すなわち、外部サーバーが補助装置1Bに相当するような構成が想定される。
すなわち、本体装置1A上で実行されるハイパーバイザー152は、異なるOSの実行環境を補助装置1Bへマイグレーションすることができる。但し、本体装置1A上で実行されるハイパーバイザー152は、リソースに余裕があれば、自装置上で認証処理を実行するように切り替えることもできる。
図15は、本実施の形態に従う画像形成装置1でのマイグレーションに係る処理手順を示すフローチャートである。図15に示す各ステップは、主として、本体装置1Aのプロセッサー102がハイパーバイザー152を実現するプログラムを実行することで実現される。
図15を参照して、プロセッサー102は、管理するジョブリストに含まれるジョブについて、異なるゲストOS上で実行される複数の認証アプリケーションが必要であるか否かを判断する(ステップS600)。異なるゲストOS上で実行される複数の認証アプリケーションが必要でなければ(ステップS600においてNOの場合)、通常の処理が実行される(ステップS602)。
異なるゲストOS上で実行される複数の認証アプリケーションが必要であれば(ステップS600においてYESの場合)、プロセッサー102は、他の装置へのマイグレーションが可能な状況か否かを判断する(ステップS604)。すなわち、プロセッサー102は、異なるOSの実行環境を他の装置へマイグレーションすること、および、当該マイグレーションに必要なページアウトされたメモリー領域の読み出すことを、ジョブ実行状態において実施するかを判断する。
他の装置へのマイグレーションが不可能な状況であれば(ステップS604においてNOの場合)、通常の認証処理が実行される(ステップS606)。
他の装置へのマイグレーションが可能な状況であれば(ステップS604においてYESの場合)、プロセッサー102は、マイグレーションする認証アプリケーションを無効化する(ステップS608)とともに、当該無効化された認証アプリケーションが実行されていたゲストOSからスタブプログラムを削除する(ステップS610)。そして、プロセッサー102は、メモリー管理方式をスタブプログラムによるものから、認証プログラムでメモリー管理する方式に切り替える(ステップS612)。
プロセッサー102は、調停モジュール170が管理するメモリーおよびページアウトの管理を空きメモリー管理モジュール172へ戻す(ステップS614)。そして、プロ
セッサー102は、当該無効化された認証アプリケーションが実行されていたゲストOSを停止する(ステップS616)。
プロセッサー102は、ゲストOSの停止を確認する(ステップS618)と、マイグレーション先のハイパーバイザーに対して、ゲストOSを転送する(ステップS620)とともに、初期化手順指示書(プレイブック)を転送する(ステップS622)。
そして、プロセッサー102は、マイグレーション先の装置においてゲストOSが起動されているか否かを判断する(ステップS624)。マイグレーション先の装置においてゲストOSが起動されていれば(ステップS624においてYESの場合)、通常の処理が実行される(ステップS602)。
マイグレーション先の装置においてゲストOSが起動されていなければ(ステップS624においてNOの場合)、プロセッサー102は、自装置側でゲストOSを再度起動する(ステップS626)。そして、通常の処理が実行される(ステップS602)。
以上のようなマイグレーション機能を実装することで、複数装置が連携した柔軟なシステムを実現できる。
<I.複数ユーザー認証>
次に、連続するジョブに対して複数のユーザー認証処理が必要になった場合の処理について説明する。例えば、複数のユーザーについてユーザー認証処理がそれぞれ必要になった場合には、ジョブ実行を優先してユーザー認証処理を遅延させるように変更を提案してもよいし、あるいは、認証方法の変更によりジョブをより早く完了できそうな場合には、該当のユーザーへ現ユーザーの認証方法への変更を提案してもよい。
図16は、本実施の形態に従う画像形成装置1での複数のユーザーに対する認証処理が競合した場合の処理手順を示すフローチャートである。図16に示す各ステップは、主として、画像形成装置1のプロセッサー102が制御ファームウェア160を実行することで実現される。図16に示す処理手順は、例えば、現実行中のジョブについて、当該ジョブについて認証済みのユーザーが利用した認証方法に対応する認証アプリケーションが動作しているものとする。
図16を参照して、異なるユーザーについての異なる認証方法の実行が要求されたか否かを判断する(ステップS700)。異なるユーザーについての異なる認証方法の実行が要求されていなければ(ステップS700においてNOの場合)、以下の処理はスキップされる。
異なるユーザーについての異なる認証方法の実行が要求されていれば(ステップS700においてYESの場合)、プロセッサー102は、要求された異なる認証方法を実現するための認証アプリケーションを実行させるゲストOSが稼働しているか否かを判断する(ステップS702)。
要求された異なる認証方法を実現するための認証アプリケーションを実行させるゲストOSが稼働していれば(ステップS702においてYESの場合)、プロセッサー102は、要求された異なる認証方法でユーザー認証処理を実行する(ステップS704)。そして、次のジョブの処理準備を開始する(ステップS706)。
要求された異なる認証方法を実現するための認証アプリケーションを実行させるゲストOSが稼働していなければ(ステップS702においてNOの場合)、プロセッサー102は、要求された異なる認証方法は現在実行中のジョブについての認証方式で代替できるか否かを判断する(ステップS708)。要求された異なる認証方法は現在実行中のジョブについての認証方式で代替できなければ(ステップS708においてNOの場合)、ステップS710〜S714の処理はスキップされ、プロセッサー102は、次のジョブの処理準備を開始する(ステップS706)。
要求された異なる認証方法は現在実行中のジョブについての認証方式で代替できれば(ステップS708においてYESの場合)、プロセッサー102は、次のジョブのユーザーに対して、現ユーザーの認証方式を利用することを提案し、ユーザーが当該提案を受け入れるか否かを判断する(ステップS710)。
ユーザーが提案を受け入れれば(ステップS710においてYESの場合)、プロセッサー102は、現ユーザーの認証方式でユーザー認証を実施する(ステップS712)。そして、プロセッサー102は、次のジョブの処理準備を開始する(ステップS706)。
これに対して、ユーザーが提案を受け入れなければ(ステップS710においてNOの場合)、プロセッサー102は、現在のジョブの実行が完了するまで待ち(ステップS714)、その後、次のジョブの処理準備を開始する(ステップS706)。
このように、制御ファームウェア160にて管理実施する連続するジョブのうち、現ユーザーが認証を行なってジョブを開始したときに、他ユーザーが当該現ユーザーとは異なる認証方式を要求し、該当の認証方式のゲストOSがページアウトされていた場合には、現ユーザーのジョブを優先して実行して他ユーザーは現ユーザーのジョブ完了まで待たせること、および、現ユーザーの認証方式に変更もしくは変更するように警告すること、の一方を実施する。
このような構成を採用することで、ユーザーの事情を考慮しつつ、セキュアな画像形成処理を実現できる。
<J.付記>
本発明は、別の局面として、さらに以下のように表現することができる。
本発明の別の局面に従う画像形成装置は、画像形成動作に必要な制御を行なう制御ファームウェアおよびホストOSと、複数のユーザー認証方式とを有している。画像形成装置は、ユーザーごとに異なるユーザー認証方式を選択する手段を備えることと、ユーザー認証方式ごとに独立した認証プログラムと、認証プログラムを実行するためのホストOSとは異なるゲストOSと、ゲストOSの実行を管理するハイパーバイザーと、ユーザー認証方式と認証に必要なゲストOSとの組み合わせを保持することにより、ユーザー認証方式に応じたゲストOSをハイパーバイザーに通知する認証管理プログラムとを有する。認証管理プログラムは、認証デバイスからの信号に応じて認証に必要なゲストOSを判断し、いずれのゲストOSを起動するかをハイパーバイザーに指示して起動させることにより、認証プログラムが動作する前に、認証に必要なゲストOSを起動させる。
画像形成装置は、制御ファームウェアとハイパーバイザーとを連携させる調停プログラムと、制御ファームウェアが画像処理に利用するメモリー空間と他のゲストOSの認証プログラムに利用するメモリー空間とを同じテーブルを用いて管理する空きメモリー管理手段と、ハイパーバイザーが物理メモリーをページテーブルで管理する手段と、制御ファームウェアが利用する画像メモリー空間において、CPUが管理するメインメモリーおよび画像処理ASICが管理する画像メモリーのメモリー種別に応じて、データをページテーブルに割り当ててメモリー種別ごとに管理する手段と、画像メモリーが管理する画像ブロック単位と同じサイズの合成ページ単位で空きページを管理する手段と、合成ページの内画像メモリーに値するページテーブルを管理する退避メモリー管理手段とを含む。選択された認証方式以外のゲストOSで必要としないメモリー領域を退避するメモリーとして、制御ファームウェアと調停プログラムとを介して退避メモリー管理手段が管理するメモリー空間を共有する。
画像形成装置は、ジョブ開始時の認証実行時に、選択された認証方式に必要な認証プログラムとゲストOSと対応したテーブルから稼動させるゲストOSを選択する手段と、各画像メモリーの種別に応じて実行ジョブおよびジョブ情報に基づき優先度を設定することと、利用している各ゲストOSを特定可能なIDを設定することが可能な利用可能メモリーリストを管理する手段と、上述したメモリー量となるシステムメモリーが得られるまでファイルメモリーブロック単位に合わせてメモリー転送を順次並列実施する手段と、メモリー転送完了後にゲストOSへ切り替える手段と、次にホストOSへ切り替える場合にゲストOSおよび動作プログラムが利用するシステムメモリーを一時凍結する手段と、上述のメモリー転送手段によって先に転送したメモリーと順次入れ替え並列転送する手段と、順次転送するなかで保存された元のメモリーアドレスに割り当てする手段と、入れ替え転送完了後にホストOSへ切り替える手段とが連続動作することを可能とする手段により、選択したゲストOS以外のゲストOSが使用するメモリーを退避メモリー管理手段が管理するメモリーへ退避する手段と、認証実行後に退避したメモリーを、ページアウトを行なうように制御する手段と、それらを制御FWが必要とするタイミングに従い実施する調停プログラムおよびタイミングを定義する手段とを含む。
画像形成装置は、本体OSと、異なる仮想メモリー空間でプログラム実行が可能な仮想メモリー制御システム、および、異なる割込み情報を扱う仮想割込み制御システム、および、異なるCPUを扱う仮想CPU制御システムと、複数のゲストOS実行環境の起動・一時停止・再開・停止を管理するハイパーバイザーと、本体OSとハイパーバイザーを仲介する調停プログラムとを含む。調停プログラムは、本体OSで制御される画像形成ジョブ動作で利用する画像メモリー空間の利用量変化を監視することと、ゲストOS実行環境の認証プログラムが利用するメモリー空間の利用量変化を監視することとを含む。
画像形成装置は、異なるOS実行環境を他の画像形成装置またはサーバーへマイグレーションすることと、マイグレーションに必要なページアウトされたメモリー領域の読み出しをジョブ実行状態において実施するか判断する手段と、マイグレーション後の初期化設定を行なう手段と、初期化手順指示書(プレイブック)を送受信する手段とを含む。
画像形成装置は、制御ファームウェアが管理実施する連続するジョブのうち現ユーザーが認証を行なってジョブを開始したときに、他ユーザーが現ユーザーと異なる認証方式を要求し、該当の認証方式のゲストOSがページアウトされていた場合には、メモリー取得をできなくする制限を実施するのではなく、制御ファームウェアがジョブ実行を制御し、現ユーザーのジョブを優先して実行して他ユーザーは現ユーザーのジョブ完了まで待たせること、または、現ユーザーの認証方式に変更あるいは変更するように警告する。
<K.まとめ>
本実施の形態に従う画像形成装置は、認証方式のための仮想実行環境を備えることで、より簡便に、様々な種類の認証方式を実装できる。また、異なるハードウェアを利用していた認証方式(例えば、中間認証サーバを用いた方式)をゲストOSとして取り込むこと、さらに、既にサーバーをもつ大規模環境ではゲストOSをサーバーへマイグレーションすることが可能となり、特別なハードウェアを必要としないためコストダウン効果がある。さらに、マイグレーションにより、認証運用環境の構築を容易に行なうことができるようになり、環境セットアップ工数の削減や、より安全な環境提供が期待できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。