JP6398963B2 - 画像形成装置および画像形成装置で実行されるプログラム - Google Patents

画像形成装置および画像形成装置で実行されるプログラム Download PDF

Info

Publication number
JP6398963B2
JP6398963B2 JP2015243357A JP2015243357A JP6398963B2 JP 6398963 B2 JP6398963 B2 JP 6398963B2 JP 2015243357 A JP2015243357 A JP 2015243357A JP 2015243357 A JP2015243357 A JP 2015243357A JP 6398963 B2 JP6398963 B2 JP 6398963B2
Authority
JP
Japan
Prior art keywords
memory
guest
image
forming apparatus
image forming
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.)
Active
Application number
JP2015243357A
Other languages
English (en)
Other versions
JP2017111499A (ja
Inventor
鈴江 正
正 鈴江
上田 滋之
滋之 上田
真央 細野
真央 細野
了敏 大迫
了敏 大迫
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.)
Konica Minolta Inc
Original Assignee
Konica Minolta 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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2015243357A priority Critical patent/JP6398963B2/ja
Priority to US15/375,470 priority patent/US9880791B2/en
Publication of JP2017111499A publication Critical patent/JP2017111499A/ja
Application granted granted Critical
Publication of JP6398963B2 publication Critical patent/JP6398963B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1263Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1817Buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Facsimiles In General (AREA)
  • Image Input (AREA)
  • Storing Facsimile Image Data (AREA)

Description

本発明は、複数のOSを切り替え実行可能な画像形成装置およびそのような画像形成装置で実行されるプログラムに関する。
近年の情報通信技術の進歩に伴って、コンピューターの仮想化技術が様々な分野に応用されつつある。このような仮想化技術においては、例えば、ハイパーバイザーを利用して、主となるOS(Operating System)(以下では、「ホストOS」とも称する。)に加えて、1または複数の異なるOS(以下では、「ゲストOS」とも称する。)を、共通のハードウェア上で同時実行させることが可能である。
例えば、特開2001−256066号公報(特許文献1)は、単一システム内に共存させた複数のオペレーティングシステムを高速に切り替えて使用できる環境を開示する。
また、「IBM PowerVM Virtualization Active Memory Sharing」(非特許文献1)は、複数の論理メモリパーティション(LPAR:Logical PARtition)を一つの共通物理メモリー空間としてまとめ、論理メモリパーティション割り当て先としてマルチOS間で共有利用するシステムを開示する。
一般的に、ホストOSに加えて、1または複数のゲストOSが同時実行される場合には、実行されるOS(特に、ゲストOS)の数に比例して、より大きなメモリー空間が必要となる。そのため、多くの仮想化技術においては、ゲストOSの実行によってハードウェア的に用意されているシステムメモリーの上限を超える場合に、オーバーコミットメントを許容する仕組みが備えられている。例えば、特開2014−157476号公報(特許文献2)は、仮想マシン間で共有する物理リソースの不足を検出する構成を開示する。
オーバーコミットメントを許容する仕組みの具体例としては、ハードディスクなどの二次記憶装置にメモリー空間として利用されるメモリー領域を確保し、その確保したメモリー領域にシステムメモリーに格納されていた内容を一時的に退避する処理が含まれる。
しかしながら、ハードディスクなどの二次記憶装置は、DRAM(Dynamic Random Access Memory)などのシステムメモリーに比較して応答性が劣るため、例えば、ホストOSからゲストOSへ切り替えの実行に大きな時間を要する。このような課題は、有限のリソースにおいては解決が難しい。十分に大きなリソースを用意すれば、このような課題が発生する可能性を低減することはできる。
画像形成装置においても、コスト制約上、利用可能なリソースをそれほど大きくすることができない。特に、最新のコンピューティング環境のように処理性能が高いハードウェアではなく、コストメリットのあるハードウェアが採用されることが一般的である。このようなコスト制約の下、画像形成装置では、ジョブをより優先して処理できるようにメモリー構成が設計される。
例えば、特開2014−238665(特許文献3)は、ハードウェア資源を用いて画像形成に係わる処理が装置制御ファームウェアにより行なわれる第1OS、および、第1OSとは別であって第1OS上の第2OS、がそれぞれ動作可能に構成されている画像形成装置を開示する。装置制御ファームウェアは、該装置制御ファームウェアでの処理に伴って予め定められた特定の状態が検出された場合に、第2OSを起動するよう制御するとともに、当該第2OSに対するログイン処理を実行するよう制御する。この画像形成装置では、第1OSユーザー名を第2OSユーザー名として用いてログイン手順を簡略化することで、第2OSログイン手順を高速化している。
特開2001−256066号公報 特開2014−157476号公報 特開2014−238665号公報
"IBM PowerVM Virtualization Active Memory Sharing", Second Edition (June 2011), IBM International Technical Support Organization, June 2011
特許文献3に開示された画像形成装置において、画像処理などのジョブが発生した場合に、メモリーなどのリソースが枯渇するときには、本体制御の第1OSへリソースを明け渡す必要があり、この必要性に伴って、第2OSのリソース解放のためのログアウト処理が必要になる。このログアウト処理に要する時間によって、画像処理の実行開始が遅れる可能性がある。
従来の画像形成装置においては、ジョブの優先処理と複数のOSを高速に切り替えて実行することとを両立させるメモリーの利用形態が考慮されていない。そのため、例えば、ゲストOS上のアプリケーションで認証が必要なジョブを実行する際に、システムメモリーにリソース不足が発生すると、システムメモリーの内容を退避する処理に要する時間が生じ、ホストOSからゲストOSに切り替えて実行する際に遅延が生じる。その結果、ジョブの処理に対するユーザビリティの劣化、および、生産性の低下といった課題が生じ得る。
画像形成装置においては、ジョブの処理に影響を与えないゲストOSの機能を利用する作業であれば許容できるが、ジョブの処理に連携したゲストOS機能を利用する場合には、ホストOSからゲストOSへの高速な切り替えが必要である。
本願発明者らは、ジョブの処理を優先的に実行しつつ、複数のOSを高速に切り替えて実行しなければならないという新規な課題を見出した。しかしながら、このような新規な課題は、単に、従来のハイパーバイザーなどを画像形成装置に適用するだけでは、解決することができない。
そのため、画像形成装置において、ジョブを優先的に処理しつつ、複数のOSを同時実行させるための新規な構成が要望されている。
本発明のある局面に従う画像形成装置は、プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストOSおよび少なくとも1つのゲストOSを含む複数のOSの同時実行を制御するハイパーバイザーと、ホストOS上で実行され、画像形成装置の主たる制御を司る制御ファームウェアと、ハイパーバイザーと同一レベルで動作する協調モジュールと、システムメモリーのうちホストOSおよびホストOSと同時実行されるゲストOSが利用していない空きメモリー空間を管理する空きメモリー管理モジュールとを含む。リソースは、制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含む。協調モジュールは、制御ファームウェアと連携して画像メモリーのうち利用可能なメモリー空間を取得する取得手段と、処理すべきジョブの内容と、当該ジョブに必要な1つ以上のゲストOSで動作するプログラムを関連付ける関連付け手段と、ジョブの開始前に必要なゲストOSを画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行手段と、ホストOSおよび他のゲストOSが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストOSのシステムメモリーとして利用可能にする退避手段とを含む。
好ましくは、協調モジュールは、メモリー空間の種別に区分して、単位メモリーごとに利用しているOSを特定可能なIDを含むリストを管理する管理手段と、必要なシステムメモリーが利用可能になるまでブロック単位で並列にメモリー転送を実施し、ゲストOSに対してメモリー空間を割り当てる割り当て手段と、メモリー転送の完了後にゲストOSへの切り替えを行なう切り替え手段とを含む。
好ましくは、協調モジュールは、ホストOSへ切り替える場合に、先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する処理と、先に転送されたメモリーを順次入れ替える処理と、入れ替え完了後にホストOSへ切り替える処理とを、連続動作させる連続動作実行手段を含む。
好ましくは、協調モジュールは、読出し済みのゲストOSがジョブ実行により破壊されたことを検知する検知手段と、ジョブ開始前に検知された破壊されたゲストOSを再度読出す読出し手段とを含む。
好ましくは、退避手段は、メインメモリー内のシステムメモリーからメインメモリー内の画像メモリーにシステムメモリーの内容を退避するとともに、メインメモリー内の画像メモリーに空きがなければ、システムメモリーから画像処理のためのサブメモリー内の画像メモリーに退避する。
好ましくは、協調モジュールは、画像メモリーの種別に応じてジョブおよびジョブ情報に基づき優先度を設定し、当該設定した優先度に基づいてジョブの実行を制御する。
好ましくは、協調モジュールは、ホストOSおよびゲストOSについて、連続するメモリー空間を優先して画像メモリーに退避する。
好ましくは、協調モジュールは、ゲストOSを外部システムへマイグレーションしたときに退避したデータ内容を移動管理する機能をさらに含む。
好ましくは、画像形成装置は、ゲストOS上の情報を表示する表示手段をさらに含む。
好ましくは、協調モジュールは、ゲストOS上のユーザー管理情報を必要に応じて退避前に制御ファームウェアと共有する共有手段をさらに含む。
好ましくは、リソースは、画像処理ASICをさらに含む。協調モジュールは、画像処理ASICと協調動作する。
好ましくは、画像処理用に適合された画像メモリーは、メインメモリーにおけるシステムメモリーと異なる領域および画像処理ASICにより管理されるサブメモリーが有する領域、の少なくとも一方を含む。
好ましくは、画像メモリーは、ディスク媒体以外の記憶装置である。
好ましくは、画像メモリーは、RAMである。
好ましくは、リソースは、二次記憶装置をさらに含む。協調モジュールは、ゲストOSへ切り替えた後に、ゲストOSからホストOSではなく他のゲストOSに切り替える場合に、ホストOSに関するファイルメモリーのデータを二次記憶装置へ順次並列転送する処理、先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する処理、二次記憶装置へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送する処理と、他のゲストOSが必要とするシステムメモリーになるまで先のゲストOSが転送完了したシステムメモリーから順次確保する処理と、他のゲストOSが動作可能なシステムメモリーが確保されたことで切り替えする処理とを連続動作させる連続動作手段をさらに含む。
本発明のある局面に従う画像形成装置で実行されるプログラムであって、プログラムは、プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストOSおよび少なくとも1つのゲストOSを含む複数のOSの同時実行を制御するハイパーバイザーを実現するプログラムと、ホストOS上で実行され、画像形成装置の主たる制御を司る制御ファームウェアと、ハイパーバイザーと同一レベルで動作する協調モジュールを実現するプログラムと、システムメモリーのうちホストOSおよびホストOSと同時実行されるゲストOSが利用していない空きメモリー空間を管理する空きメモリー管理モジュールを実現するプログラムとを含む。リソースは、制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含む。協調モジュールは、制御ファームウェアと連携して画像メモリーのうち利用可能なメモリー空間を取得する取得機能と、処理すべきジョブの内容と、当該ジョブに必要な1つ以上のゲストOSで動作するプログラムを関連付ける関連付け機能と、ジョブの開始前に必要なゲストOSを画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行機能と、ホストOSおよび他のゲストOSが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストOSのシステムメモリーとして利用可能にする退避機能とを含む。
本開示によれば、ジョブを優先的に処理しつつ、複数のOSを同時実行させるための新規な画像形成装置を実現できる。
本実施の形態に従う画像形成装置の全体構成を示す概略断面図である。 本実施の形態に従う画像形成装置の制御部のハードウェア構成を示すブロック図である。 本実施の形態に従う画像形成装置の制御部でのプログラムの実行状態の一例を示す模式図である。 本実施の形態に従う画像形成装置の制御部による処理例1での処理手順を示すシーケンス図である。 本実施の形態に従う画像形成装置の制御部の初期処理の手順を示すフローチャートである。 本実施の形態に従う画像形成装置の制御部でのプログラムの別の実行状態の一例を示す模式図である。 本実施の形態に従う画像形成装置の制御部におけるブロック分割された画像メモリーの利用形態を説明するための模式図である。 本実施の形態に従う画像形成装置の制御部におけるブロック分割された画像メモリーの管理方法を説明するための模式図である。 本実施の形態に従う画像形成装置の制御部における複数のメモリー間でのデータ管理の一例を示す模式図である。 本実施の形態に従う画像形成装置の制御部におけるメモリー空間の利用形態の一例を示す図である。 本実施の形態に従う画像形成装置の制御部による処理例2でのメモリー確保に係る処理手順を示すフローチャートである。 本実施の形態に従う画像形成装置の制御部でのメモリー領域のマネージメント処理の手順を示すフローチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.課題および解決手段の概要>
まず、本発明の実施の形態に従う画像形成装置で採用する解決手段の概要について、関連技術における課題とともに説明する。
上述したように、従来のハイパーバイザーなどを画像形成装置に適用した仮想化環境では、システムメモリーなどのリソースが枯渇した際には、それらがジョブの処理に必要であるか否かにかかわらず、ゲストOSの起動もしくは実行、ならびに、ゲストOS上でのアプリケーションの起動もしくは実行が完了するまでに遅延時間が発生し得る。
すなわち、上述したように、ゲストOSへの切り替え時に、システムメモリーの内容を退避する処理が発生することによる時間遅延が課題であり、このような課題は、従来の画像形成装置と従来のハイパーバイザーとを単に組み合わせただけでは解決できない。
本願発明者らは、鋭意検討の結果、これらの課題を解決する手段として、画像形成装置において、システムメモリーとは別に設けられるシステムメモリーを仮想化環境の実現に利用するという新規な着想に至った。すなわち、画像形成装置固有のメモリー構成の設計として、OSを含む各種プログラムを実行するために利用されるシステムメモリーに加えて、ジョブを処理するために利用される画像メモリーが用意される。画像メモリーに対しては、比較的大きなメモリー空間がジョブの処理専用に割り当てられる。画像メモリーは、アクセス速度などを考慮して、ディスク媒体以外の記憶装置として実装されることが好ましい。典型的には、記画像メモリーは、DRAMなどのRAM(Random Access Memory)が採用される。
一方で、画像メモリーは、ホストOS上で実行される制御ファームウェアが操作および管理するメモリー空間であり、ゲストOSおよびハイパーバイザーがこれらのメモリー空間に勝手にアクセスすると、ジョブの処理が破たんする恐れもある。一般的には、メモリー種別、例えば、システムメモリー、サブメモリー(IOアクセス)、入出力バッファなどの処理に応じて最適化されたメモリーなどに応じて、利用形態は異なる。しかしながら、従来のハイパーバイザーは、ゲストOSが利用するメモリー空間の競合管理が主たる処理であり、個々のOSが利用する専用のメモリー空間(画像メモリー)の内容を把握することはできない。また、従来のハイパーバイザーは、個々のOSが利用する専用のメモリー空間に対する詳細なメモリー制御を行なうこともできない。
ここで、ホストOS上で実行される制御ファームウェアと連携することで、画像メモリーへのアクセス状態および画像メモリー中のデータの格納状態などを取得し、詳細なメモリー制御を実現することも考えられる。しかしながら、ハイパーバイザーが制御ファームウェアと連携するために、制御ファームウェアを稼働させるホストOSへの余分な切り替えが発生すること、および、画像メモリーについての複数の制御主体間での排他制御などの余分な負荷が発生することは好ましくない。
本実施の形態に従う画像形成装置では、ジョブの処理に利用される画像メモリーを、ゲストOSを実行するために必要な一時退避メモリー(スワップメモリー)として利用することで、複数のOSを高速に切り替え実行することで、ホストOSでの処理が必要なジョブであっても、可能な限り遅延時間を発生させることなく、優先的な処理を可能にする。また、本実施の形態に従う画像形成装置は、このようなシステムメモリーおよび画像メモリーのそれぞれのメモリー空間を効率的に利用可能な制御方法を採用する。
<B.画像形成装置の全体構成>
次に、本実施の形態に従う画像形成装置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は、退避されない。
仮想化環境を実現するための処理の詳細については、後述する。
<C.画像形成装置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)150とを含む。これらの構成要素は、内部バス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は、操作パネルに各種情報を表示する処理、および、操作パネルに対するユーザー操作を受け付ける処理などを仲介する。操作パネルは、ユーザーによるタッチ操作を受け付ける表示操作部であり、典型的には、表示部であるLCD(Liquid Crystal Display:液晶表示部)と、タッチ操作を受け付けるタッチパネルとを含む。なお、表示部には、ホストOS154およびゲストOS156の動作状況を可視化する機能を実装してもよい。例えば、表示部上に、空きメモリー空間の量およびプロセッサーの利用時間などをグラフまたは数値で表示するようにしてもよい。すなわち、画像形成装置1は、ゲストOS156上の情報を表示する表示部を有していてもよい。
インターフェイス回路107は、各種の認証デバイスとのデータの遣り取りを仲介する。認証デバイスとしては、ICカードリーダー、指紋読み取り装置、近距離無線通信デバイスなどを含む。
インターフェイス回路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の機能を拡張する場合にも、より多くの画像メモリーが追加されることもあり、これらの画像メモリーが同時に利用されることでマルチ動作を実現している。
<D.画像形成装置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および少なくとも1つのゲスト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としては、ユーザー認証を行なうアプリケーションを含み得る。さらに、ゲストOS156上に画像形成装置1のユーザーごとのデスクトップ環境を実現し、ジョブ内容を管理する機能を実装してもよい。なお、ゲストOS156に任意のプログラムを提供するアプリストアーに類似した機構を採用してもよい。
さらに、ハイパーバイザー152の機能の一部、または、ハイパーバイザー152と連携する独立した機能として、協調モジュール170および空きメモリー管理モジュール172が実行される。
協調モジュール170は、ハイパーバイザー152と同一レベルで動作し、制御ファームウェア160とハイパーバイザー152との間を仲介し、同時実行中のゲストOS156との間でメモリー空間を協調して利用する。「同一レベル」とは、実行の優先度などが同じレベルで実行される状態を意味する。本実施の形態においては、協調モジュール170は、処理対象のジョブの動作を考慮して、画像メモリーを効率的に利用することで、ゲストOS156の切り替えに対して先行読出し、および、メモリーの内容の退避などを実行する。なお、協調モジュール170は、いずれかのゲストOS156上のユーザー管理情報を必要に応じて退避前に制御ファームウェア160と共有する機能を有していてもよい。
空きメモリー管理モジュール172は、システムメモリー112のうちホストOS154およびホストOS154と同時実行されるゲストOS156が利用していない空きメモリー空間を管理する。すなわち、空きメモリー管理モジュール172は、ハイパーバイザー152が管理する物理メモリー空間で利用されていない空きメモリー空間を管理する。このとき、空きメモリー管理モジュール172は、協調モジュール170と連携動作することで、画像メモリー空間を含めた空きメモリー空間を管理する。協調モジュール170を管理するためのAPI(Application Programming Interface)を実装することで、モジュール間の連携性を高めるようにしてもよい。
さらに、退避メモリー管理モジュール174をさらに実行させるようにしてもよい。退避メモリー管理モジュール174は、システムメモリーまたは画像メモリーの格納されているデータのうちゲストOS以外のデータを二次記憶装置の一例であるHDD150内の一時退避メモリー(スワップメモリー)に退避する処理を実施する。あるいは、退避メモリー管理モジュール174は、その逆に、一時退避メモリー(スワップメモリー)に退避したデータを、システムメモリーまたは画像メモリーに戻す処理も実施する。
なお、ホスト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ジョブ実行開始への遅延が大きくなりジョブ生産性への影響が大きい。
そこで、本実施の形態に従う画像形成装置1は、ジョブの処理に影響を与えないように、システムメモリーに加えて、画像メモリーのメモリー空間を効率的に利用することで、複数OSを高速に切り替えて実行する環境を実現する。
<E.画像形成装置1でのジョブの処理例1>
次に、本実施の形態に従う画像形成装置1でのジョブの処理例1について説明する。処理例1としては、単一のジョブとして親展FAXを処理する際に、ゲストOS156にて認証処理が必要になった場合のホストOS154およびゲストOS156に対するメモリー空間の割り当て処理について説明する。ここで、親展FAXとは、登録番号またはパスワードなどによる認証を介して、特定の相手に限ってFAXを遣り取りする機能である。
画像形成装置1の本体動作の状態が、ジョブ開始前、スキャン動作、親展モードでのFAX受信(プリント出力時に認証が必要)、コピープリントのような順番で連続した例の場合には、下表に示すように、協調モジュール170による2つのゲストOS156の先行読出しが実行される。
図4は、本実施の形態に従う画像形成装置1の制御部100による処理例1での処理手順を示すシーケンス図である。図4には、シングルジョブの例のシーケンス図を示す。なお、図4には、読出されたゲストOS2が破壊された場合の処理も含む。
図4を参照して、制御ファームウェア160およびハイパーバイザー152の起動が完了した後、本体動作を司る制御ファームウェア160がハイパーバイザー152に対して、ジョブ開始前であることを通知する(シーケンスSQ100:「1.ジョブ開始前」)。この通知に応答して、ハイパーバイザー152がゲストOS1およびOS2を読出す(シーケンスSQ102:「2.ゲストOS読出し」)。すなわち、必要なゲストOSの起動が指示される。
図4に示す例では、ゲストOS1が起動されると(シーケンスSQ104)、ゲストOS1は、出力メモリーのFAX送信に割り当てられている領域にあるデータを読出す(シーケンスSQ106:「3.読出し」)。ゲストOS1では、認証アプリケーションが実行されるものとする。
また、ゲストOS2が起動されると(シーケンスSQ108)、ゲストOS2は、出力メモリーのスキャン出力に割り当てられている領域にあるデータを読出す(シーケンスSQ110:「4.読出し」)。ゲストOS2では、画像変換アプリケーションが実行されるものとする。
制御ファームウェア160がジョブ開始前の認証処理を実行するにあたって、既に読出し済みのゲストOS1へ切り替え、ゲストOS1に対して、ゲストOS1で実行される認証アプリケーションでの認証処理を指示する(シーケンスSQ112:「5.認証実施」)。
また、制御ファームウェア160が画像変換を伴うスキャン動作を実行するにあたって、スキャンによって取得された画像データを入力メモリーのスキャン入力に割り当てられている領域に画像データを書込む(シーケンスSQ114:「6.スキャン」)。すると、書込まれた画像データは入力メモリーの画像変換に割り当てられている領域に書込まれる(シーケンスSQ116:「6.1.画像変換」)。
さらに、制御ファームウェア160は、既に読出し済みのゲストOS2へ切り替え、ゲストOS2に対して、ゲストOS2で実行される画像変換アプリケーションでの画像変換処理を指示する(シーケンスSQ118:「7.画像変換」)。ゲストOS2は、画像変換処理によって得られた画像データ(変換結果)を入力メモリーのアプリ入力に割り当てられている領域に画像データを書込む(シーケンスSQ120:「8.変換出力」)。さらに、書込まれた画像データは出力メモリーのスキャン出力に割り当てられている領域に書込まれる(シーケンスSQ122:「9.アプリ出力」)。
ここで、ゲストOS2での処理後に、出力メモリーのスキャン出力に割り当てられている領域が別処理に占有されて、ゲストOS2が利用可能なメモリー領域を確保できなくなると、ゲストOS2での画像変換処理が失敗し得る。すなわち、ゲストOS2が破壊され得る。
例えば、制御ファームウェア160が画像変換を伴うスキャン動作を続けて実行すると、スキャンによって取得された画像データを入力メモリーのスキャン入力に割り当てられている領域に画像データを書込む(シーケンスSQ124:「10.スキャン」)。すると、書込まれた画像データは入力メモリーの画像変換に割り当てられている領域に書込まれる(シーケンスSQ126:「11.画像変換」)。さらに、制御ファームウェア160は、ゲストOS2で実行される画像変換アプリケーションでの画像変換処理を指示する(シーケンスSQ128:「11.1.画像変換」)。ここで、例えば、連続して親展FAXを受信しているとすると、画像変換処理によって得られた画像データ(変換結果)を出力メモリーのスキャン出力に割り当てられている領域に書込むことができなくなり、ゲストOS2での画像変換処理は失敗し得る。すなわち、ゲストOS2での読出しができないため、次のジョブである画像変換を伴うスキャン動作に高速で応答することができず、失敗したと判定され得る。
すると、制御ファームウェア160は、ゲストOS2での失敗をハイパーバイザー152にエラー報告する(シーケンスSQ130:「12.ゲストOSエラー」)。一方で、制御ファームウェア160は、それに続くジョブを処理する。この親展FAXのジョブ完了後に、ゲストOS2が読出された時点で、先の画像変換を伴うスキャン動作を再開することも可能である。
図4に示す例では、制御ファームウェア160は、受信したFAXの画像データを入力メモリーのFAX受信に割り当てられている領域に画像データを書込む(シーケンスSQ132:「13.親展FAX」)。そして、書込まれた画像データは、スキャン印刷の処理の後、出力メモリーのエンジン出力に割り当てられている領域に書込まれる(シーケンスSQ140:「16.プリント出力」)。
さらに、制御ファームウェア160は、スキャンによって取得された画像データを入力メモリーのスキャン入力に割り当てられている領域に画像データを書込む(シーケンスSQ134:「14.スキャン」)。すると、書込まれた画像データは出力メモリーのエンジン出力に割り当てられている領域に書込まれる(シーケンスSQ136:「14.1.プリント出力」)。
その後、制御ファームウェア160は、既に読出し済みのゲストOS1へ切り替え、ゲストOS1に対して、ゲストOS1で実行される認証アプリケーションでの認証処理を指示する(シーケンスSQ138:「15.認証実施」)。
これらの先のジョブについての処理が終了した後、制御ファームウェア160がハイパーバイザー152に対して、ジョブ開始前であることを通知する(シーケンスSQ142:「17.ジョブ開始前」)。この通知に応答して、ハイパーバイザー152がゲストOS2を読出す(シーケンスSQ144:「18.ゲストOS読出し」)。すなわち、必要なゲストOS2の起動が指示される。
ゲストOS2が起動されると(シーケンスSQ146)、ゲストOS2は、出力メモリーのスキャン出力に割り当てられている領域にあるデータを読出す(シーケンスSQ148:「19.読出し」)。
ゲストOS2での認証処理の実行後、先のジョブである画像変換が完了し、ゲストOS2に対して、画像変換が成功したことが通知される(シーケンスSQ150:「11.2:画像変換:成功」)。
さらに、ゲストOS2は、状態変化を示す情報を出力し(シーケンスSQ152:「20:変化出力」)、その情報は、出力メモリーのスキャン出力に割り当てられている領域に書込まれる(シーケンスSQ144:「20.1:アプリ出力」)。
図4に示すように、先に親展FAXを受信した後にさらに親展FAXを受信すると、読出し済みのゲストOS1へ切り替えて認証アプリケーションを利用することで、当該後続の受信FAXについても滞りなくプリント出力が実施できる。そのため、全体としてのジョブ終了が早くなり、ゲストOS2の読出しまでに要する時間が短縮され、読出し制御のない場合に比べて、連続ジョブの生産性も向上できる。
上述したシーケンス図に対応させた、画像形成装置1がシングルジョブを処理する際に利用されるリソースを示す対応表を示す。表中において、「○」はジョブが利用するメモリーを示す。
上表では、説明上の便宜上、処理を簡略化して画像メモリーを固定的に利用することを前提としている。但し、後述するように、画像メモリーを分割して管理することで、OSの優先度などに応じて、各画像メモリーに分散された混在のメモリー利用が可能となる。例えば、上述の非特許文献1によれば、一定長の固定領域確保に比べて、複数のOS状態に依存して、より多くの空きメモリーが期待できるため、ゲストOS数を増加できるという利点がある。
なお、複数の認証デバイスを用いる場合には、例えば、以下の表に示すようにそれぞれ異なるゲストOS156にその処理を実行させるようにしてもよい。
図5は、本実施の形態に従う画像形成装置1の制御部100の初期処理の手順を示すフローチャートである。図5に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102が図示しない各種プログラムを指定された順序で実行することで実現される。
図5を参照して、プロセッサー102は、システムが起動(ブート)されると(ステップS100)、ハイパーバイザー152および協調モジュール170を起動する(ステップS102)。さらに、プロセッサー102は、制御ファームウェア160を起動する(ステップS104)。
必要なプログラムの起動が開始されると、プロセッサー102(協調モジュール170)は、システムメモリーのうち利用可能なメモリー空間を取得する(ステップS106)とともに、制御ファームウェア160と連携して画像メモリーのうち利用可能なメモリー空間を取得する(ステップS108)。
続いて、プロセッサー102(協調モジュール170)は、処理すべきジョブの内容と、当該ジョブに必要な1つ以上のゲストOSで動作するプログラムを関連付ける(ステップS110)。例えば、上述したような親展FAXについては、ゲストOS上で実行される認証アプリケーションが必要であるといった情報が登録される。
続いて、プロセッサー102(協調モジュール170)は、処理すべきジョブの開始前に、ステップS110において、当該処理すべきジョブにいずれかのプログラムが必要であることが登録されていれば、ジョブの開始前に必要なゲストOSを画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる(ステップS112)。
プロセッサー102(協調モジュール170)は、システムメモリー112、画像メモリー、HDD150のスワップ領域との間で、データ退避が必要であるか否かを判断する(ステップS114)。データ退避が必要であると判断されると(ステップS114においてYESの場合)、プロセッサー102(協調モジュール170)は、ホストOS154および他のゲストOS156が利用していないと判断されたシステムメモリー112の内容を画像メモリーに退避する(ステップS116)。これにより、新たに実行されたゲストOSのシステムメモリーとして利用可能にする。
その後、プロセッサー102は、ジョブの受付けを開始する(ステップS118)。その後、ジョブが入力されると、入力されたジョブに応じた処理が実行される。なお、ホストOS154上の要求だけでなく、ゲストOS156上の要求を本体ジョブとして受け付けるようにしてもよい。
以上のとおり、例えば、ジョブの処理と並行して、認証処理が必要な場合には、ハイパーバイザー152がゲストOS156を先行読出しすることで、より高速なジョブの処理を実現できる。
<F.画像形成装置1でのジョブの処理例2>
次に、画像メモリー特有のデータ構造を利用したメモリーマネージメントについて説明する。特に、ブロック分割された画像メモリーの利用に適した処理について説明する。
図6は、本実施の形態に従う画像形成装置1の制御部100でのプログラムの別の実行状態の一例を示す模式図である。図6を参照して、制御部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は、仮想的なメモリー管理部(VMMU)1521と、圧縮/伸張IC(VIC)1522と、仮想的な演算リソース(VCPU)1523とを複数のOSが利用可能な状態で提供する。ホストOS154上では、プリントアプリケーション1601と、スキャンアプリケーション1602と、FAXアプリケーション1603と、BOXアプリケーション1604とが実行される。また、ゲストOS1〜OS3上では、認証アプリケーション1581,1582,1583がそれぞれ実行されるものとする。ハイパーバイザー152は、スタブ1584,1585,1586を用いてそれぞれゲストOSおよびアプリケーションの実行を管理する。
画像メモリーは、ブロック単位で圧縮伸長管理されている。さらに、画像メモリーを単位分割して共用利用することで、複数タスクが物理メモリーを効率よく利用できるような構成が採用されているとする。
ホストOS154およびゲストOS156についても、仮想メモリー機構を用いて一定のページ単位でメモリー空間を管理している。なお、以下の説明では、仮想メモリー機構をもたないOSについては考慮していない。
しかしながら、画像メモリーで管理されるブロック単位と、仮想メモリー機構を用いて管理されるページ単位とは、単位サイズが同一とは限らない。また、管理対象の画像メモリーがメインメモリー110に設けられる場合と、サブメモリー134,144に設けられる場合とでは、その取扱いも同一にはできない。
そこで、画像形成装置1での管理単位および制御を前提として、ホストOS154およびゲストOS156、ならびに、ハイパーバイザー152でのメモリー共有化機構が必要になる。
本実施の形態に従う画像形成装置1には、画像処理ASIC130,140が組み込まれている。但し、プリント制御に利用される画像メモリーは、プロセッサー102と共有するメインメモリー100内の画像メモリー114、ならびに、画像処理ASIC130,140に関連付けられる専用のサブメモリー134,144内の画像メモリー138,148の2種類から構成される。このように、画像メモリーを利用するジョブに応じた利用形態となるため、メモリー領域の確保をジョブ動作に応じて上述のような単位サイズで実施する。
図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に退避(スワップアウト)する。
このとき、システムメモリー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の制御部100による処理例2でのメモリー確保に係る処理手順を示すフローチャートである。図11に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102が協調モジュール170のプログラムを実行することで実現される。
図11を参照して、プロセッサー102(協調モジュール170)は、メモリー空間の種別に区分して、単位メモリーごとに利用しているOSを特定可能なIDを含むリストを更新する(ステップS200)。ホストOSからゲストOSへの切り替えが要求されたか否かを判断する(ステップS202)。
ホストOSからゲストOSへの切り替えが要求されると(ステップS202においてYESの場合)、プロセッサー102(協調モジュール170)は、必要なシステムメモリーが利用可能になるまで、ブロック単位で並列にメモリー転送を実施する(ステップS204)。これにより、切り替えが要求されたゲストOSに対して必要なメモリー空間を割り当てることができる。メモリー転送の完了後に、プロセッサー102(協調モジュール170)は、ホストOSからゲストOSへの切り替えを行なう(ステップS206)。
その後、プロセッサー102(協調モジュール170)は、ゲストOSから別のゲストOSへの切り替えが要求されたか否かを判断する(ステップS208)。
ゲストOSから別のゲストOSへの切り替えが要求されると(ステップS208においてYESの場合)、すなわち、ゲストOSへ切り替えた後に、ゲストOSからホストOSではなく他のゲストOSに切り替える場合に、まず、プロセッサー102(協調モジュール170)は、ホストOSに関するファイルメモリーのデータをHDD150(二次記憶装置)へ順次並列転送する(ステップS210)。続いて、プロセッサー102(協調モジュール170)は、先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する(ステップS212)。さらに、プロセッサー102(協調モジュール170)は、HDD150(二次記憶装置)へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送し(ステップS214)、他のゲストOSが必要とするシステムメモリーになるまで先のゲストOSが転送完了したシステムメモリーから順次確保する(ステップS216)。最終的に、プロセッサー102(協調モジュール170)は、他のゲストOSが動作可能なシステムメモリーが確保されたことで、ゲストOSから指定された別のゲストOSへ切り替える(ステップS218)。そして、処理はステップS220へ進む。
ホストOSからゲストOSへの切り替えが要求されていなければ(ステップS202においてNOの場合)、あるいは、ゲストOSから別のゲストOSへの切り替えが要求されていなければ(ステップS208においてNOの場合)、あるいは、ステップS218の実行後、ゲストOSからホストOSへの切り替えが要求されたか否かを判断する(ステップS220)。
ゲストOSからホストOSへの切り替えが要求されると(ステップS220においてYESの場合)、プロセッサー102(協調モジュール170)は、先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する(ステップS222)。そして、プロセッサー102(協調モジュール170)は、先に転送されたメモリーを順次入れ替える(ステップS224)。メモリーの入れ替え完了後に、プロセッサー102(協調モジュール170)は、ゲストOSからホストOSへ切り替える(ステップS226)。そして、処理はステップS200へ戻る。
ゲストOSからホストOSへの切り替えが要求されていなければ(ステップS220においてNOの場合)、ステップS200以下の処理が繰り返される。
<G.画像メモリー領域の確保>
上述の図4に示すシーケンス図においては、ゲストOSへの切り替えが発生したときに、先に処理されているジョブによって、利用可能なメモリー領域を確保できなければ、ゲストOSでの処理が失敗し得る。すなわち、ゲストOSでの処理と先に入力されたジョブの処理とのうち、先に入力されたジョブの処理が優先される設計となっているが、これを逆にしてもよい。すなわち、ゲストOSへの切り替えが発生したときに、ジョブ利用によって利用可能な画像メモリーがない場合にジョブを停止させ画像メモリーを確保するようにしてもよい。
さらに、先に画像メモリーを利用しているジョブと、当該ゲストOSへの切り替えの起因となったジョブとの間で、優先度を評価し、先行のジョブまたはゲストOSへの切り替えのいずれを優先させるかを判断するようにしてもよい。
このように、協調モジュール170は、画像メモリーの種別に応じてジョブおよびジョブ情報に基づき優先度を設定し、当該設定した優先度に基づいてジョブの実行を制御する。
<H.メモリー領域の取得可否の判断>
上述したように、本実施の形態に従う画像形成装置1は、システムメモリー112に加えて、画像メモリーを用いて、複数のOS(ホストOS154ならびに1または複数のゲストOS156)を、共通のハードウェア上で同時実行させる。
そのため、複数のメモリー空間全体を考慮して、メモリー領域のマネージメントを行なうことが好ましい。具体的には、協調モジュール170は、ホストOS154上で実行される制御ファームウェア160、ハイパーバイザー152、空きメモリー管理モジュール172(および、退避メモリー管理モジュール174)と情報交換し、登録された空きメモリー量および退避メモリー量を適宜更新することで、各種アプリケーション(認証アプリケーションなどを含む)の動作に必要なメモリー領域を取得できるか否かを判断するようにしてもよい。
さらに、協調モジュール170は、何らかの処理の開始または終了を都度記録する更新履歴を保持しておき、メモリー使用量または空きメモリー量の増減傾向に基づいて、格納している内容の配置場所を都度変更してもよい。例えば、空きメモリー量(画像メモリー)に減少傾向がみられる場合に、退避している内容を先行的にページアウト(スワップアウト)、すなわちHDD150に書き戻すようにしてもよい。
図12は、本実施の形態に従う画像形成装置1の制御部100でのメモリー領域のマネージメント処理の手順を示すフローチャートである。図12に示す各ステップは、主として、画像形成装置1の制御部100のプロセッサー102が協調モジュール170のプログラムを実行することで実現される。
図12を参照して、プロセッサー102は、メモリー領域の要求(ページフォルト)が発生したか否かを判断する(ステップS300)。メモリー領域の要求が発生していなければ(ステップS300においてNOの場合)には、ステップS300の処理が繰り返される。
メモリー領域の要求が発生していれば(ステップS300においてYESの場合)には、プロセッサー102は、空きメモリー管理モジュール172へ空きメモリー量を問い合わせる(ステップS302)。そして、プロセッサー102は、過去の空きメモリー量の実績と、問い合わせに対して応答された空メモリー量とから、空きメモリー量の変化量を算出する(ステップS304)。
さらに、プロセッサー102は、算出した空きメモリー量の変化量が減少傾向を示しているか否かを判断する(ステップS306)。算出した空きメモリー量の変化量が減少傾向を示していなければ(ステップS306においてNOの場合)、ステップS300以下の処理が繰り返される。
算出した空きメモリー量の変化量が減少傾向を示していれば(ステップS306においてYESの場合)、プロセッサー102は、退避メモリー管理モジュール174へ退避メモリー量を問い合わせる(ステップS308)。そして、プロセッサー102は、対象となる退避メモリーを特定し、特定した退避メモリーをページアウトする(ステップS310)。
最後に、プロセッサー102は、退避メモリー管理モジュール174が管理する退避メモリー量を更新し(ステップS312)、ステップS300以下の処理を繰り返す。
このようなトータルでのメモリー領域の管理を行なうことで、オーバーコミットメントの発生頻度などを低減できる。また、制限のあるメモリーリソースの利用効率を向上させることができる。
<I.付記>
本発明は、別の局面として、さらに以下のように表現することができる。
本発明の別の局面に従う画像形成装置は、画像形成動作に必要な制御を行なう制御ファームウェアおよびホストOSと、複数のゲストOSを切り替えて使用するハイパーバイザーと、制御ファームウェアを含むホストOSとハイパーバイザーの動作に必要なシステムメモリーと、制御ファームウェアにより管理される画像処理に専用に用いる画像メモリーと、空きシステムメモリーならびに制御ファームウェアおよびホストOSが利用するシステムメモリーについて退避可否を判断するモジュールと、制御ファームウェアおよびホストOSが利用していないシステムメモリーについて退避可否を判断するモジュールと、制御ファームウェアおよびホストOSで実行される画像メモリー管理と連携することで利用可能な画像メモリーを把握するモジュールとが、ハイパーバイザーと同一レベルで動作される協調モジュール内に実装されている。ここで、画像メモリー上にブロック単位でのメモリー管理を実施するファイルメモリーが実装されていることが好ましい。画像形成装置は、協調モジュールにおいてジョブ内容とゲストOSで動作するプログラムとを関連付けて登録するモジュール(例えば、認証プログラムなどゲストOSで動作するプログラムとジョブとの関連性が把握できる機能)と、ジョブの開始前に1つ以上のゲストOSを空き画像メモリーに読出すモジュールと、ジョブの動作前にジョブ内容とゲストOSとの関連付けにて判断した協調モジュールの指示により、ハイパーバイザーにより読出したゲストOSを稼動させるモジュールと、制御ファームウェアおよびホストOSや他ゲストOSが利用していないと判断されたシステムメモリー、および、稼働したゲストOSが必要とするメモリーを入れ替えてゲストOSのシステムメモリーとして利用可能にするモジュールと、を協調モジュールで連携動作させる。
ジョブの開始前に1つ以上のゲストOSを空き画像メモリーに読出すモジュールは、ジョブリストが追加されるごとに利用可能メモリーリストの空き画像メモリーを優先度およびIDによりソートし利用可否を判断するようにしてもよい。また、読出すモジュールは、既に読み込んだゲストOSに対して優先度が低い場合に高い優先度へ移動してもよい。また、読出すモジュールは、必要に応じて、メモリーリストに含まれる制御ファームウェアおよびホストOSが利用するメモリーを一時凍結してもよい。
上記画像形成装置は、各画像メモリーの種別に応じて実行されるジョブおよびジョブ情報に基づいて優先度を設定するモジュールと、利用している各ゲストOSを特定可能なIDを設定することが可能な利用可能空きメモリーリストを管理するモジュールにより連携し、(転送に必要な最小限のメモリーを2セット以上有するメモリー転送機能によって)上述したメモリー量となるシステムメモリーが得られるまでファイルメモリブロック単位に合わせてメモリー転送を順次並列実施するモジュールとにより得られるシステムメモリーに対して読出されたゲストOSを実行するメモリー空間として割り当てメモリー転送を行なうモジュールと、メモリー転送完了後にゲストOSへ切り替えるモジュールと、次にホストOSへ切り替える場合にゲストOSおよび動作プログラムが利用するシステムメモリーを一時凍結するモジュールと、上述のメモリー転送モジュールによって先に転送したメモリーと順次入れ替え並列転送するモジュールと、順次転送するなかで保存された元のメモリアドレスに割り当てするモジュールと、入れ替え転送完了後にホストOSへ切り替えるモジュールとが、連続動作することを可能とするモジュールと、上述した読出し済みのゲストOSがジョブの実行により破壊されたことを協調モジュールが把握するモジュールと、ジョブ開始前に上記読出し手段で破壊されたゲストOSを上述した手順に従って再度読出し実施すること。
上記画像形成装置は、切り替えが発生したときに、ジョブ利用によって利用可能な画像メモリーがない場合にジョブを停止させ画像メモリーを確保する。
上記画像形成装置は、ゲストOSへ切り替えた後に、ゲストOSからホストOSではなく他のゲストOSに切り替えるモジュールと、ファイルメモリーのホストOSに関するデータを二次記憶装置へ順次並列転送するもモジュールと、ゲストOSおよび動作プログラムが利用するメモリーを一時凍結するモジュールと、二次記憶装置へ順次転送されたファイルメモリーに対して一時凍結したメモリーを順次並列転送するモジュールと、他のゲストOSが必要とするシステムメモリーになるまで先のゲストOSが転送完了したシステムメモリーから順次確保する手段と、他のゲストOSが動作可能なシステムメモリーが確保されたことで切り替えする手段とを、連続動作することを可能にするモジュールを含む。
上記画像形成装置は、ホストOS・ゲストOSともに連続するメモリー空間を優先して画像メモリーに退避する。
上記画像形成装置は、画像形成装置の本体以外のシステムへのゲストOSマイグレーション時に退避した画像メモリーを適切に移動管理する。
上記画像形成装置は、画像ホストOSは退避しないことを有する。すなわち、本体動作を優先する。
上記画像形成装置は、ゲストOS上のプログラムを他のゲストOSへマイグレーションを適切に行なう。
上記画像形成装置は、画像形成装置および画像形成装置に接続されたデバイスをゲストOSが利用するための適切な初期化を行なう。
上記画像形成装置は、画像形成装置を管理するサーバー型または常駐型のプログラムがゲストOS構成を管理し、複数の画像形成装置および画像形成装置群で最適な構成になるように判断する。例えば、ビデオ通信プログラムや中間サーバーを必要とする認証プログラムなどが挙げられる。
上記画像形成装置は、ゲストOS上にユーザーごとのデスクトップ環境をもち、ジョブ内容を管理するモジュールを有していてもよい。
上記画像形成装置は、ゲストOS上にプログラムを提供するアプリストアーモジュールを有していてもよい。
上記画像形成装置は、ゲストOS上の情報(例えば、メモリー、稼働状況、ユーザー、対応ジョブ、対応ファイル、動作している画像形成装置およびサーバーなど)を操作部に表示するモジュールを有していてもよい。
上記画像形成装置は、ゲストOS上の要求をジョブとして受け付けるモジュールを有していてもよい。
上記画像形成装置は、ゲストOS上のユーザー管理情報を必要に応じて退避前に画像形成装置と共有するモジュールを有していてもよい。このような構成を採用することで、退避時に必要な情報が失われることを防止できる。
上記画像形成装置は、ホストOSおよびゲストOSの動作状況を可視化する(例えば、AR(Augmented Reality))モジュールを有していてもよい。
上記画像形成装置は、ゲストOSが提供する機能を外部端末で利用するモジュールを有していてもよい。
上記画像形成装置は、画像処理ASICと協調動作するハードウェア協調モジュールモジュールを有していてもよい。
上記画像形成装置は、協調モジュールを管理するためのAPIモジュール(例えば、メモリー管理機能、優先度、シーケンス制御パラメーターなどを外部から変更可能にするAPI)を有していてもよい。
上記画像形成装置は、省電力時にゲストOS動作を制限するモジュールを有していてもよい。
<J.まとめ>
本実施の形態に従う画像形成装置は、ハイパーバイザーに加えて、画像形成装置1での本体ジョブ動作による画像メモリーを把握する協調モジュールを追加するとともに、ジョブ開始前にゲストOSを画像メモリーに先行的に読出すことで、ゲストOSの切り替え時の時間遅延を削減できる、それによって、全体の本体ジョブ動作時間を延ばすことなくゲストOSで新たな処理を実施できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 画像形成装置、2 自動原稿送り装置、3 イメージスキャナー、4 プリントエンジン、5 給紙部、21 原稿給紙台、22,52,53,54 送出ローラー、23 レジストローラー、24 搬送ドラム、25 排紙台、26 手差給紙部、27 転写ベルト、33 撮像デバイス、35 原稿台、41C,41K,41M,41Y 感光体ドラム、43C,43K,43M,43Y 画像書込部、44C,44K,44M,44Y イメージングユニット、441C,441K,441M,441Y トナーユニット、45 転写器、46 除電器、47 定着装置、471 加熱ローラー、472 加圧ローラー、49 IDCセンサー、51 タイミングローラー、55 搬送ローラー、57 トレイ、100 制御部、102 プロセッサー、104 内部バス、105,106,107,108 インターフェイス回路、110 メインメモリー、112 システムメモリー、114,138,148 画像メモリー、118,132,142 メモリー制御IC、120 圧縮/伸張IC、130,140 画像処理ASIC、134,144 サブメモリー、136 表面入力画像データバッファ、146 裏面入力画像データバッファ、150 HDD、152 ハイパーバイザー、154 ホストOS、156 ゲストOS、158 アプリケーション、1581,1582,1583 認証アプリケーション、1584,1585,1586 スタブ、160 制御ファームウェア、1601 プリントアプリケーション、1602 スキャンアプリケーション、1603 FAXアプリケーション、1604 BOXアプリケーション、170 協調モジュール、172 空きメモリー管理モジュール、174 退避メモリー管理モジュール、192 認証デバイス、194 デバイス、196 記憶デバイス。

Claims (16)

  1. 画像形成装置であって、
    プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストOSおよび少なくとも1つのゲストOSを含む複数のOSの同時実行を制御するハイパーバイザーと、
    前記ホストOS上で実行され、前記画像形成装置の主たる制御を司る制御ファームウェアと、
    前記ハイパーバイザーと同一レベルで動作する協調モジュールと、
    前記システムメモリーのうち前記ホストOSおよび前記ホストOSと同時実行されるゲストOSが利用していない空きメモリー空間を管理する空きメモリー管理モジュールとを備え、
    前記リソースは、前記制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含み、
    前記協調モジュールは、
    前記制御ファームウェアと連携して前記画像メモリーのうち利用可能なメモリー空間を取得する取得手段と、
    処理すべきジョブの内容と、当該ジョブに必要な1つ以上のゲストOSで動作するプログラムを関連付ける関連付け手段と、
    ジョブの開始前に当該ジョブに関連付けられたプログラムの実行に必要なゲストOSを前記画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行手段と、
    前記ホストOSおよび新たに実行されたゲストOSの他のゲストOSが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストOSのシステムメモリーとして利用可能にする退避手段とを含む、画像形成装置。
  2. 前記協調モジュールは、
    メモリー空間の種別を区分して、単位メモリーごとに利用しているOSを特定可能なIDを含むリストを管理する管理手段と、
    新たに実行されたゲストOSに必要なシステムメモリーが利用可能になるまでブロック単位で並列にメモリー転送を実施し、ゲストOSに対してメモリー空間を割り当てる割り当て手段と、
    メモリー転送の完了後にゲストOSへの切り替えを行なう切り替え手段とを含む、請求項1に記載の画像形成装置。
  3. 前記協調モジュールは、
    前記ホストOSへ切り替える場合に、
    先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する処理と、
    前記割り当て手段により先に転送された内容とシステムメモリーの内容を順次入れ替える処理と、
    入れ替え完了後に前記ホストOSへ切り替える処理とを、連続動作させる連続動作実行手段を含む、請求項2に記載の画像形成装置。
  4. 前記協調モジュールは、
    読出し済みのゲストOSがジョブ実行により破壊されたことを検知する検知手段と、
    次ジョブ開始前に、検知された破壊されたゲストOSを再度読出す読出し手段とを備える、請求項1〜3のいずれか1項に記載の画像形成装置。
  5. 前記退避手段は、メインメモリー内のシステムメモリーからメインメモリー内の画像メモリーに前記システムメモリーの内容を退避するとともに、メインメモリー内の画像メモリーに空きがなければ、システムメモリーの内容を画像処理のためのサブメモリー内の画像メモリーに退避する、請求項1〜4のいずれか1項に記載の画像形成装置。
  6. 前記協調モジュールは、画像メモリーの種別に応じてジョブおよびジョブ情報に基づき、画像メモリーを利用しているジョブとゲストOSへの切り替えの起因となったジョブとの間で優先度を設定し、当該設定した優先度に基づいてジョブの実行を制御する、請求項1〜5のいずれか1項に記載の画像形成装置。
  7. 前記協調モジュールは、前記ホストOSおよび前記ゲストOSについて、連続するメモリー空間を優先して前記画像メモリーに退避する、請求項1〜6のいずれか1項に記載の画像形成装置。
  8. 前記協調モジュールは、ゲストOSを外部システムへマイグレーションしたときに退避したデータ内容を移動管理する機能をさらに含む、請求項1〜7のいずれか1項に記載の画像形成装置。
  9. 前記ゲストOS上の情報を表示する表示手段をさらに備える、請求項1〜8のいずれか1項に記載の画像形成装置。
  10. 前記協調モジュールは、前記ゲストOS上のユーザー管理情報を必要に応じて退避前に前記制御ファームウェアと共有する共有手段をさらに含む、請求項1〜9のいずれか1項に記載の画像形成装置。
  11. 前記リソースは、画像処理ASICをさらに含み、
    前記協調モジュールは、前記画像処理ASICと協調動作する、請求項1〜10のいずれか1項に記載の画像形成装置。
  12. 前記画像処理用に適合された画像メモリーは、メインメモリーにおけるシステムメモリーと異なる領域および前記画像処理ASICにより管理されるサブメモリーが有する領域、の少なくとも一方を含む、請求項11に記載の画像形成装置。
  13. 前記画像メモリーは、ディスク媒体以外の記憶装置である、請求項1〜12のいずれか1項に記載の画像形成装置。
  14. 前記画像メモリーは、RAMである、請求項13に記載の画像形成装置。
  15. 前記リソースは、二次記憶装置をさらに含み、
    前記協調モジュールは、前記ゲストOSへ切り替えた後に、前記ゲストOSから前記ホストOSではなく他のゲストOSに切り替える場合に、前記ホストOSに関するファイルメモリーのデータを二次記憶装置へ順次並列転送する処理、先に実行されたゲストOSおよび当該ゲストOSで動作するプログラムが利用するシステムメモリーを一時凍結する処理、前記二次記憶装置へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送する処理と、他のゲストOSが必要とするシステムメモリーになるまで先のゲストOSが転送完了したシステムメモリーから順次確保する処理と、他のゲストOSが動作可能なシステムメモリーが確保されたことで切り替えする処理とを連続動作させる連続動作手段をさらに備える、請求項2に記載の画像形成装置。
  16. 画像形成装置で実行されるプログラムであって、前記プログラムは、
    プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストOSおよび少なくとも1つのゲストOSを含む複数のOSの同時実行を制御するハイパーバイザーを実現するプログラムと、
    前記ホストOS上で実行され、前記画像形成装置の主たる制御を司る制御ファームウェアと、
    前記ハイパーバイザーと同一レベルで動作する協調モジュールを実現するプログラムと、
    前記システムメモリーのうち前記ホストOSおよび前記ホストOSと同時実行されるゲストOSが利用していない空きメモリー空間を管理する空きメモリー管理モジュールを実現するプログラムとを備え、
    前記リソースは、前記制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含み、
    前記協調モジュールは、
    前記制御ファームウェアと連携して前記画像メモリーのうち利用可能なメモリー空間を取得する取得機能と、
    処理すべきジョブの内容と、当該ジョブに必要な1つ以上のゲストOSで動作するプログラムを関連付ける関連付け機能と、
    ジョブの開始前に当該ジョブに関連付けられたプログラムの実行に必要なゲストOSを前記画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行機能と、
    前記ホストOSおよび新たに実行されたゲストOSの他のゲストOSが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストOSのシステムメモリーとして利用可能にする退避機能とを含む、画像形成装置で実行されるプログラム。
JP2015243357A 2015-12-14 2015-12-14 画像形成装置および画像形成装置で実行されるプログラム Active JP6398963B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015243357A JP6398963B2 (ja) 2015-12-14 2015-12-14 画像形成装置および画像形成装置で実行されるプログラム
US15/375,470 US9880791B2 (en) 2015-12-14 2016-12-12 Image formation apparatus and non-transitory computer-readable storage medium having stored thereon a program executable on image formation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015243357A JP6398963B2 (ja) 2015-12-14 2015-12-14 画像形成装置および画像形成装置で実行されるプログラム

Publications (2)

Publication Number Publication Date
JP2017111499A JP2017111499A (ja) 2017-06-22
JP6398963B2 true JP6398963B2 (ja) 2018-10-03

Family

ID=59019932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015243357A Active JP6398963B2 (ja) 2015-12-14 2015-12-14 画像形成装置および画像形成装置で実行されるプログラム

Country Status (2)

Country Link
US (1) US9880791B2 (ja)
JP (1) JP6398963B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180405A (zh) * 2016-03-10 2017-09-19 阿里巴巴集团控股有限公司 一种图片处理方法、装置和智能终端
US11256696B2 (en) * 2018-10-15 2022-02-22 Ocient Holdings LLC Data set compression within a database system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256066A (ja) 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
JP4101004B2 (ja) * 2001-09-14 2008-06-11 株式会社リコー 画像形成装置
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US20160344745A1 (en) * 2006-09-25 2016-11-24 Weaved, Inc. Method and protocol for secure device deployment using a partially-encrypted provisioning file
US8205194B2 (en) * 2007-06-29 2012-06-19 Microsoft Corporation Updating offline virtual machines or VM images
US8201161B2 (en) * 2008-01-07 2012-06-12 Lenovo (Singapore) Pte. Ltd. System and method to update device driver or firmware using a hypervisor environment without system shutdown
US8327085B2 (en) * 2010-05-05 2012-12-04 International Business Machines Corporation Characterizing multiple resource utilization using a relationship model to optimize memory utilization in a virtual machine environment
US8775590B2 (en) * 2010-09-02 2014-07-08 International Business Machines Corporation Reactive monitoring of guests in a hypervisor environment
US9069622B2 (en) * 2010-09-30 2015-06-30 Microsoft Technology Licensing, Llc Techniques for load balancing GPU enabled virtual machines
JP5743723B2 (ja) * 2011-06-03 2015-07-01 キヤノン株式会社 印刷システム、サービス処理方法、及びプログラム
US10986137B2 (en) * 2012-06-20 2021-04-20 Hewlett-Packard Development Company, L.P. Clipboard hardening
JP5673968B2 (ja) * 2012-11-16 2015-02-18 コニカミノルタ株式会社 画像形成装置および画像形成システム
US9569223B2 (en) * 2013-02-13 2017-02-14 Red Hat Israel, Ltd. Mixed shared/non-shared memory transport for virtual machines
JP2014157476A (ja) 2013-02-15 2014-08-28 Nippon Telegr & Teleph Corp <Ntt> 計測装置及び計測方法
US9436614B2 (en) * 2013-05-02 2016-09-06 Globalfoundries Inc. Application-directed memory de-duplication
JP2014238665A (ja) 2013-06-06 2014-12-18 コニカミノルタ株式会社 画像形成装置及び画像形成装置制御方法並びに画像形成装置制御プログラム
US9529617B2 (en) * 2014-03-21 2016-12-27 Ca, Inc. Instant virtual machines
WO2015176029A1 (en) * 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features

Also Published As

Publication number Publication date
US9880791B2 (en) 2018-01-30
US20170168758A1 (en) 2017-06-15
JP2017111499A (ja) 2017-06-22

Similar Documents

Publication Publication Date Title
US8230420B2 (en) Apparatus for transferring a virtual machine using stored correspondence information
US20090219569A1 (en) Information processing apparatus, information processing system, and information processing method
JP6398963B2 (ja) 画像形成装置および画像形成装置で実行されるプログラム
JP5401872B2 (ja) 画像形成装置
JP4852558B2 (ja) 複合装置及び複合装置におけるメモリ管理方法
JP4120874B2 (ja) 画像処理装置
JP2007207194A (ja) 印刷装置、外部装置、印刷システム及び印刷装置の制御方法
JP2012156645A (ja) 情報処理装置、通信装置、およびその制御方法
JP2007287084A (ja) 画像処理装置及びプログラム
JP6593110B2 (ja) 画像形成装置および画像形成装置で実行されるプログラム
JP2007323393A (ja) 画像処理装置及びプログラム
US20160094748A1 (en) Information processing system, image processing apparatus and information processing method
JP2013115519A (ja) データ処理装置とその制御方法、及びプログラム
JP6852762B2 (ja) 画像形成装置および画像形成装置で実行される調停プログラム
JP6597971B2 (ja) 画像形成装置、プログラム
US11425275B2 (en) Packet saving or discarding based on power status of device
JP6862807B2 (ja) 画像形成装置およびプログラム
JP2010146055A (ja) 画像処理装置、方法及びプログラム
US20090296145A1 (en) Image forming apparatus, image forming method, and storage medium
JP2010074432A (ja) 画像処理装置、画像処理方法、画像処理システム
JP5168220B2 (ja) 画像形成装置
JP2003091425A (ja) 画像処理装置および画像処理方法
JP6033383B2 (ja) 情報処理装置、その制御方法、および制御プログラム
JP2008139968A (ja) 画像処理装置及びプログラム
JP2005197960A (ja) 画像処理装置及び画像処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R150 Certificate of patent or registration of utility model

Ref document number: 6398963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150