JP5446602B2 - 画像形成装置 - Google Patents

画像形成装置 Download PDF

Info

Publication number
JP5446602B2
JP5446602B2 JP2009195981A JP2009195981A JP5446602B2 JP 5446602 B2 JP5446602 B2 JP 5446602B2 JP 2009195981 A JP2009195981 A JP 2009195981A JP 2009195981 A JP2009195981 A JP 2009195981A JP 5446602 B2 JP5446602 B2 JP 5446602B2
Authority
JP
Japan
Prior art keywords
application
size
area
java
heap
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.)
Expired - Fee Related
Application number
JP2009195981A
Other languages
English (en)
Other versions
JP2011048590A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009195981A priority Critical patent/JP5446602B2/ja
Publication of JP2011048590A publication Critical patent/JP2011048590A/ja
Application granted granted Critical
Publication of JP5446602B2 publication Critical patent/JP5446602B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、画像形成装置に関する。
Java(登録商標)を搭載したシステムでは、メモリ管理が2重管理となっている。一つは、OS(Operating System)によるメモリ管理である。OSによるメモリ管理は、大きなプログラムに対して、使用頻度の高いもののみ実メモリに置き、使用頻度の低いものをスワップ処理によりHDD(Hard Disk Drive)などの補助記憶装置に退避させて、メモリを有効に利用している。したがって、OSによるメモリ管理によれば、見かけ上、メモリが足りなくなることがない。
もう一つは、そのOS上にあるJava(登録商標)によるメモリ管理である。Java(登録商標)によるメモリ管理は、Java(登録商標)プログラムを実行するための利用空間であるヒープ領域において、プログラムの実行に使用しなくなった領域やプログラムの実行に使用されている領域の隙間の領域を回収して、他のプログラムが使用可能な領域を増やすといったガーベージコレクション(以下、GCとする)という管理機構でメモリを有効に利用している(特許文献1参照)。
ところで、GCによるメモリ管理では、ヒープ領域において、プログラムを実行するための領域が無い場合、メモリが枯渇して“Out Of Memory”というエラーが発生する。パーソナルコンピュータなど、メモリが豊富にある機器においては、Java(登録商標)プログラムを実行するためのヒープ領域を大きく確保することができるが、画像形成装置などの組み込み機器においては、Java(登録商標)プログラムを実行するためのメモリ資源が限られているため、Java(登録商標)動作環境において複数のJava(登録商標)プログラムを起動させた場合、メモリが足りなくなりエラーが発生し、Java(登録商標)プログラムを利用することができない、という課題がある。
また、Java(登録商標)動作環境において複数のJava(登録商標)プログラムを起動するために、ヒープ領域を大きくする方法もあるが、ヒープ領域を大きくすればするほど、GCに要する処理時間が長くなり、機器の性能に影響を与える、という課題がある。
さらに、メモリを増設するなど、組み込み機器の構成により、Java(登録商標)プログラムの実行に最適なサイズにヒープ領域を増減する方法もあるが、Java(登録商標)プログラムが実行中はヒープ領域のサイズを変更することができない、という課題がある。
本発明は、上記に鑑みてなされたものであって、メモリの有効性の維持およびGCによる機器の性能への影響を抑えることができる画像形成装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、記憶媒体が有するメモリ領域のうち、アプリケーションの実行に使用するヒープ領域のサイズの変更要因となる、アプリケーションの追加または削除の発生を検出する検出手段と、検出手段により、変更要因となる前記アプリケーションの追加または削除の発生が検出された場合に、ヒープ領域を使用して実行する前記アプリケーションの数に応じて、ヒープ領域のサイズを変更する変更手段と、を備えたことを特徴とする。
本発明によれば、Java(登録商標)動作環境において、組み込み機器の状態に応じて適切にヒープ領域を確保することができるので、メモリの有効性の維持およびGCによる機器の性能への影響を抑えることができる、という効果を奏する。
図1は、本実施の形態にかかる複合機のハードウェア構成を示すブロック図である。 図2は、コントローラ部で実行されるソフトウェアプログラムの構成を示す機能ブロック図である。 図3は、ソフトウェアプログラムの各プログラムに割り当てられるRAM内のメモリ領域の配置を示す図である。 図4は、ヒープ領域内の状態を示す図である。 図5は、本実施の形態にかかる複合機が備える特長的な機能構成を示すブロック図である。 図6は、ヒープ領域のサイズを大きくした後のRAM内のメモリ領域の配置を示す図である。 図7は、ヒープ領域のサイズの変更による複合機の性能面への影響を説明するための図である。 図8は、RAMのメモリ領域を増設した場合のRAM内のメモリ領域の配置を示す図である。 図9は、ヒープ領域のサイズの算出に用いるアプリケーション定義ファイルを示す図である。 図10は、Java(登録商標)アプリケーションの追加または削除が発生した場合のヒープ領域のサイズの変更処理の流れを示すフローチャートである。 図11は、メモリ不足エラーが発生した場合のヒープ領域のサイズの変更処理の流れを示すフローチャートである。
以下に添付図面を参照して、この発明にかかる画像形成装置の最良な実施の形態を詳細に説明する。なお、本実施の形態では、本発明にかかる画像形成装置を、コピー(複写)やプリントが可能な複合機に適用した例について説明する。
図1は、本実施の形態にかかる複合機のハードウェア構成を示すブロック図である。本実施の形態にかかる複合機1は、コントローラ部100、I/F群107、エンジン部108、操作部109、HDD(Hard Disk Drive)110などを備えている。エンジン部108は、電子写真を出力するためのプリンタなどのエンジンを制御するものである。操作部109は、タッチパネルやハードキーを備え、ユーザインターフェースとして機能するものである。HDD110は、各種のソフトウェアプログラム等を格納するものである。I/F群107は、コントローラ部100とHDD110を接続するものであって、例えば、USB(Universal Serial Bus)、ネットワーク、S−ATA(Serial Advanced Technology Attachment)などである。
コントローラ部100は、ソフトウェアプログラムが実行されるマザーボードであり、チップセット(Chipset)102を介して、CPU(Central Processing Unit)101、RAM(Random Access Memory)103、ROM(Read Only Memory)104、ASIC(Application Specific Integrated Circuit) A105、ASIC B106が接続されている。
ROM104は、OS(Operating System)などを記憶した読み出し専用のメモリである。CPU101は、コントローラ部100の主要部であって、HDD110およびROM104に記憶したソフトウェアプログラム200(図2参照)を実行することにより各部を集中的に制御するものである。RAM103は、CPU101がソフトウェアプログラム200(図2参照)を実行するためのメモリ領域を有する記憶媒体である。ASIC A105およびASIC B106は、それぞれエンジン部108および操作部109との通信制御を行うものである。
図2は、コントローラ部で実行されるソフトウェアプログラムの構成を示す機能ブロック図である。コントローラ部100(CPU101)で実行されるソフトウェアプログラム200には、複合機1が有する複数の機能を実現するため、マルチタスク系のUNIX(登録商標)ベースのOS201が含まれている。本実施の形態にかかる複合機1には、このOS201によりJVM(Java(登録商標) Virtual Machine)202が組み込まれている。JVM202上には、後述するJava(登録商標)アプリケーションA204、Java(登録商標)アプリケーションB205、Java(登録商標)アプリケーションC206を起動するJava(登録商標)制御処理プログラム203が存在する。なお、Java(登録商標)制御処理プログラム203は、マルチVMと呼ばれ、JVM202に含まれるケースもある。
Java(登録商標)アプリケーション210(Java(登録商標)アプリケーションA204、Java(登録商標)アプリケーションB205、およびJava(登録商標)アプリケーションC206)は、JVM202上において、マルチスレッドにより複数の処理を並行して行うマルチ動作を実現している。このマルチ動作は、JVM202により管理されているものとする。また、Java(登録商標)アプリケーション210は、ソフトウェアプログラム200の機能を拡張または縮小するために、追加または削除が実施されるプラグインである。
さらに、本実施の形態にかかる複合機1は、JVM202以外にも、ハードウェアを制御したり、複合機1のリソースを制御・管理したりするためのネイティブ制御処理プログラム207が組み込まれている。ネイティブ制御処理プログラム207には、ネットワークとの通信を制御するネットワーク制御プログラムや画像データに画像処理を行う画像データ処理プログラムなどが含まれている。また、ネイティブ制御処理プログラム207には、本実施の形態にかかる複合機1が備える特長的な機能を実現するヒープメモリ管理コントローラ208が含まれている。なお、ネイティブ制御処理プログラム207およびJava(登録商標)動作環境211(JVM202、Java(登録商標)制御処理プログラム203、Java(登録商標)アプリケーション210)は、OS201からみて、マルチタスクにより複数の処理を並行して行うマルチ動作を実現している。
ここで、図3を用いて、CPU101により実行されるソフトウェアプログラム200の各プログラムに割り当てられるRAM103内のメモリ領域の配置について説明する。図3は、ソフトウェアプログラムの各プログラムに割り当てられるRAM内のメモリ領域の配置を示す図である。
RAM103内のメモリ領域は、ネイティブ制御処理プログラム207(画像データ処理プログラム)が画像処理を行う画像データを扱う画像処理用領域305、OS201を実行するためのOS制御領域301、ネイティブ制御処理プログラム207を実行するためのネイティブプログラム領域304、およびJava(登録商標)に関連するプログラム(Java(登録商標)動作環境211)を実行するためのJava(登録商標)動作領域302を有している。
Java(登録商標)動作領域302は、Java(登録商標)アプリケーション210の実行に使用するヒープ領域303を有している。なお、ヒープ領域303は、JVM202の管轄で管理されるものとする。
ここで、図4を用いて、ヒープ領域303内の状態について説明する。図4は、ヒープ領域内の状態を示す図である。Java(登録商標)アプリケーションA204、Java(登録商標)アプリケーションB205、およびJava(登録商標)アプリケーションC206がCPU101により実行された場合、Java(登録商標)動作領域302内のヒープ領域303には、Java(登録商標)アプリケーション領域A401、Java(登録商標)アプリケーション領域B402、およびJava(登録商標)アプリケーション領域C403が設けられる。なお、Java(登録商標)アプリケーション領域A401がJava(登録商標)アプリケーションA204に対応し、Java(登録商標)アプリケーション領域B402がJava(登録商標)アプリケーションB205に対応し、Java(登録商標)アプリケーション領域C403がJava(登録商標)アプリケーションC206に対応するものとする。
Java(登録商標)動作領域302内のヒープ領域303には、Java(登録商標)アプリケーション領域A401、Java(登録商標)アプリケーション領域B402、およびJava(登録商標)アプリケーション領域C403のサイズは、図4に示すように、アプリケーションごとに異なる。また、図4に示すヒープ領域303内には、これ以上Java(登録商標)アプリケーション210を追加することができない。仮に、新たなJava(登録商標)アプリケーション210を追加した場合、JVM202が、ヒープ領域303の不足によるメモリ不足エラー(Out Of Memory)の発生を検知して、実行中のJava(登録商標)アプリケーション210が全て停止する。
従来、JVM202によりメモリ不足エラーの発生が検知された場合、現在実行中のJava(登録商標)アプリケーションA204、Java(登録商標)アプリケーションB205、およびJava(登録商標)アプリケーションC206のいずれかを削除して、新たなJava(登録商標)アプリケーション210を追加しなければならなかった。若しくは、ガーベージコレクション(GC)により、新たなJava(登録商標)アプリケーション210が使用可能な領域を増やすことも可能なケースもある。これらは、ヒープ領域303のサイズが固定されている限り、回避することができない処理である。
そこで、本実施の形態では、ネイティブ制御処理プログラム207に含まれるヒープメモリ管理コントローラ208により実現されるヒープメモリ管理コントローラ部500(図5参照)により、ヒープ領域303のサイズを可変にし、複合機1の状態によってヒープ領域303のサイズを変更する。
次に、図5を用いて、図2に示すソフトウェアプログラム200(ヒープメモリ管理コントローラ208)がCPU101に実行させる機能のうち、本実施の形態にかかる複合機1が備える特長的な機能について説明する。図5は、本実施の形態にかかる複合機が備える特長的な機能構成を示すブロック図である。
図5に示すように、複合機1は、ヒープサイズ管理制御部501、JVM起動・終了制御部502、Java(登録商標)アプリ・中断・再開・中止制御部503、動作環境の退避・復帰制御部504などを含むヒープメモリ管理コントローラ部500を備えている。なお、ヒープ領域303のサイズの変更は、実際上、Java(登録商標)動作環境211の変更そのものであるため、ヒープメモリ管理コントローラ部500は、JVM202自体を制御することになる。
JVM起動・終了制御部502は、JVM202の動作(起動および終了)を制御するものである。Java(登録商標)動作環境211においては、現状、ヒープ領域303のサイズはJVM202の起動時に設定しなければならない。そのため、本実施の形態では、JVM202の動作の制御をJVM起動・終了制御部502の管理下に置く必要がある。
Java(登録商標)アプリ中断・再開・中止制御部503は、JVM202によりメモリ不足エラーの発生が検知された場合に、各Java(登録商標)アプリケーション210に自己退避を指示したり、メモリ不足エラーの解消によりJava(登録商標)動作環境が復帰した後に、各Java(登録商標)アプリケーション210に自己復帰を指示したりするものである。
動作環境の退避・復帰制御部504は、メモリ不足エラーの発生が検知された場合に、JVM202およびヒープメモリ管理コントローラ208の実行に使用されている領域のヒープ領域303からの退避、およびJVM202およびヒープメモリ管理コントローラ208の実行に使用する領域のヒープ領域303への復帰を行うものである。
ヒープサイズ管理制御部501(検出手段)は、JVM202を介して、当該JVM202により検知されるメモリ不足エラー、Java(登録商標)アプリケーション210の追加または削除など、ヒープ領域303のサイズの変更要因の発生を検出するものである。
また、ヒープサイズ管理制御部501(変更手段)は、ヒープ領域303のサイズの変更要因が検出された場合に、ヒープ領域303のサイズを変更するものである。より具体的には、ヒープサイズ管理制御部501は、メモリ不足エラーをヒープ領域303のサイズの変更要因の発生として検出した場合、想定外のメモリの使用や一時的なメモリリーク状態が発生したケースが考えられるため、ヒープ領域303のサイズを大きくすることで、メモリ不足エラーを回避する。また、ヒープサイズ管理制御部501は、Java(登録商標)アプリケーション210の追加または削除をヒープ領域303のサイズの変更要因の発生として検出した場合、この時点で、ヒープ領域303内においてJava(登録商標)アプリケーション210を実行するために使用される領域が増加または減少することが分かるので、ヒープ領域303のサイズを拡張または縮小する。なお、ヒープサイズ管理制御部501は、ヒープ領域303のサイズの変更要因が検出された場合に、予め設定された基準サイズ毎に、ヒープ領域のサイズを変更するものとする。
図6は、ヒープ領域のサイズを大きくした後のRAM内のメモリ領域の配置を示す図である。ヒープサイズ管理制御部501は、ヒープ領域303のサイズの変更要因(例えば、メモリ不足エラー、Java(登録商標)アプリケーション210の追加など)が発生した場合、図6に示すように、ネイティブプログラム領域304のメモリ領域を削減し、ヒープ領域303を符号601で示すメモリ領域分増加させる。そして、ヒープ領域303のサイズを大きくすることにより、メモリ不足エラーの回避およびJava(登録商標)アプリケーション210の追加によるメモリ不足の回避を実現する。なお、ネイティブプログラム領域304はOS201の管理下にあるため、ネイティブプログラム領域304内のメモリ領域の残量が少なくなった場合、OS201が、当該OS201が有する機能であるSWAP処理(図7参照)を実行することにより、ネイティブプログラム領域304におけるメモリ不足を回避する。
このように、メモリ不足エラーやJava(登録商標)アプリケーション210の追加によるメモリ不足の回避が実現されることにより、複合機1全体として、エラーが発生しなくなり、複合機1の機能的な問題の発生を無くすことができる。ただし、ヒープ領域303のサイズを大きくすることによりメモリ不足を回避した場合、SWAP処理の頻度によっては、複合機1の性能面に影響を及ぼすことになる。なお、複合機1への性能面の影響が、使用者が許容できる範囲内であれば、問題はない。
次に、図7を用いて、ヒープ領域303のサイズの変更による複合機1の性能面への影響について説明する。図7は、ヒープ領域のサイズの変更による複合機の性能面への影響を説明するための図である。
ヒープサイズ管理制御部501は、ヒープ領域303のサイズを変更した場合、ヒープ領域303においてJava(登録商標)アプリケーション210の実行に使用されていない未使用領域を回収するガーベージコレクション(以下、GCとする)を任意に発生させる。ヒープ領域303のGCに要する時間は、GC範囲701(ヒープ領域303)が大きくなればなるほど長くなる。そのため、ヒープ領域303のサイズを大きくした場合、GCにより複合機1が停止する時間が発生して当該複合機1の性能を低下させてしまう。
さらに、削減したネイティブプログラム領域304は、上述したように、OS201の管理下にあるため、少ないメモリ領域でもSWAP処理を実行することにより、ネイティブ制御処理プログラム207を実行することができる。しかしながら、SWAP処理は、補助記憶装置であるHDD110に一時的にネイティブプログラム領域304に記憶する内容を退避したり、HDD110からネイティブプログラム領域304に内容を書き戻したりするため、その処理に時間がかかってしまい複合機1の性能を低下させてしまう。
なお、ヒープサイズ管理制御部501(通知手段)は、操作部109を介して、この性能の低下(例えば、GCまたはSWAP処理に要する処理時間)を基準にして、RAM103のメモリ領域の増設を促す通知を行うものとする。例えば、ヒープサイズ管理制御部501は、GCまたはSWAP処理に要する処理時間により、複合機1のコピー性能が通常の8割以下になった場合に、RAM103のメモリ領域の増設を促す通知を行う。または、ヒープサイズ管理制御部501は、Java(登録商標)アプリケーション210の追加に伴ってヒープ領域303のサイズが多くなり、GCに要する処理時間が所定のサイズのメモリ領域のGCに要する処理時間の2倍以上になった場合に、RAM103のメモリ領域の増設を促す通知を行う。
次に、図8を用いて、RAM103のメモリ領域を増設した場合のRAM103内のメモリ領域の配置について説明する。図8は、RAMのメモリ領域を増設した場合のRAM内のメモリ領域の配置を示す図である。メモリ領域増設前のRAM103内のメモリ領域の配置は、図6に示すメモリ領域の配置と同様、ネイティブプログラム領域304のメモリ領域を削減し、ヒープ領域303を符号601で示すメモリ領域分増加させたメモリ領域の配置となっている。一方、メモリ領域増設後のRAM103内のメモリ領域の配置は、削減したネイティブプログラム領域304のメモリ領域が元のサイズ(図3に示すネイティブプログラム領域304のサイズ)に戻り、ヒープ領域303のメモリ領域がメモリ領域の増設前と同じサイズに維持されている。なお、RAM103のメモリ領域をさらに増設することにより、ネイティブプログラム領域304やヒープ領域303により多くの空き領域を持たせることも可能である。
次に、図9を用いて、ヒープ領域303のサイズの変更要因の発生が検出された場合に、変更するヒープ領域303のサイズを算出する方法の一例について説明する。図9は、ヒープ領域のサイズの算出に用いるアプリケーション定義ファイルを示す図である。
ヒープサイズ管理制御部501は、ヒープ領域303のサイズの変更要因の発生が検出された場合、まず、ヒープ領域303内に配置された各Java(登録商標)アプリケーション領域901から、当該Java(登録商標)アプリケーション領域901に対応するJava(登録商標)アプリケーション210のプログラムサイズ、データサイズ、当該Java(登録商標)アプリケーション210のプログラムを実行するために必要なメモリ容量(ヒープ使用量)など、当該Java(登録商標)アプリケーション210に関する情報を含むアプリケーション定義ファイル902を読み出す。そして、ヒープサイズ管理制御部501は、読み出した各Java(登録商標)アプリケーション210のアプリケーション定義ファイル902に従って、ヒープ領域303のサイズを算出する。
具体的には、ヒープサイズ管理制御部501は、ヒープ領域303を使用して実行するJava(登録商標)アプリケーション210の数に応じてヒープ領域のサイズを変更する。例えば、1つのJava(登録商標)アプリケーション210を実行するために使用するヒープ領域303内におけるメモリ領域の基準サイズを10MBと定義して、実行するJava(登録商標)アプリケーション210の数分のヒープ領域303のサイズを算出する。したがって、3つのJava(登録商標)アプリケーション210を実行する場合には、30MBのヒープ領域303にサイズを変更する。
また、ヒープサイズ管理制御部501は、ヒープ領域303を使用して実行するJava(登録商標)アプリケーション210が有する機能のうち、有効な機能の数に応じてヒープ領域303のサイズを変更する。例えば、1つの有効な機能に実行するために使用するヒープ領域303内におけるメモリ領域の基準サイズを2MBと定義して、実行中のJava(登録商標)アプリケーション210が有する有効な機能分のヒープ領域303のサイズを算出する。したがって、3つのJava(登録商標)アプリケーション210が有する有効な機能が、それぞれ「5」,「6」,「4」であった場合、30MBのヒープ領域303にサイズを変更する。
さらに、ヒープサイズ管理制御部501は、ヒープ領域303を使用して実行する各Java(登録商標)アプリケーション210のアプリケーション定義ファイル902が示すメモリ容量の総数に応じてヒープ領域303のサイズを変更する。
なお、本実施の形態では、ヒープサイズ管理制御部501は、上述の算出方法により算出したサイズと、Java(登録商標)動作環境211を実行するために必要なメモリ領域のサイズを合算した値を、変更するヒープ領域303のサイズとして算出するものとする。
次に、図10を用いて、Java(登録商標)アプリケーション210の追加または削除が発生した場合のヒープ領域303のサイズの変更処理の流れについて説明する。図10は、Java(登録商標)アプリケーションの追加または削除が発生した場合のヒープ領域のサイズの変更処理の流れを示すフローチャートである。
Java(登録商標)アプリケーション210の追加または削除が実施されると(ステップS1001)、JVM202からヒープサイズ管理制御部501に対してヒープ領域303のサイズの変更を要求するサイズ変更通知が送信される。すると、ヒープサイズ管理制御部501が、Java(登録商標)アプリケーション210の追加または削除をヒープ領域303のサイズの変更要因の発生として検出するとともに、Java(登録商標)アプリ中断・再開・中止制御部503が、JVM202を再起動させるために、現在実行中のJava(登録商標)アプリケーション210を終了させる(ステップS1002)。続いて、JVM起動・終了制御部502は、JVM202を終了させる(ステップS1003)。
次に、ヒープサイズ管理制御部501は、上述したヒープ領域303のサイズの算出方法を用いて、変更するヒープ領域303のサイズを算出する(ステップS1004)。なお、ヒープ領域303のサイズの算出方法は、予め任意の算出方法を選定しておくものとする。次いで、ヒープサイズ管理制御部501は、算出したヒープ領域303のサイズを、JVM202の起動設定に再定義することにより、ヒープ領域303のサイズを変更する(ステップS1005)。そして、JVM起動・終了制御部502が、再定義されたJVM202の起動設定に基づいてJVM202を起動するとともに(ステップS1006)、Java(登録商標)アプリ中断・再開・中止制御部503がJava(登録商標)アプリケーション210を起動する(ステップS1007)。
次に、図11を用いて、メモリ不足エラーが発生した場合のヒープ領域303のサイズの変更処理の流れについて説明する。図11は、メモリ不足エラーが発生した場合のヒープ領域のサイズの変更処理の流れを示すフローチャートである。
JVM202がメモリ不足エラーの発生を検知すると(ステップS1101)、JVM202からヒープサイズ管理制御部501に対してヒープ領域303のサイズの変更を要求するサイズ変更通知が送信される。すると、ヒープサイズ管理制御部501が、メモリ不足エラーをヒープ領域303のサイズの変更要因の発生として検出するとともに、動作環境の退避・復帰制御部504が現在起動中のJava(登録商標)アプリケーション210を退避させる(ステップS1102)。
ここで、現在起動中のJava(登録商標)アプリケーション210を終了させないのは、既にヒープ領域303が足りない状態なので、当該現在起動中のJava(登録商標)アプリケーション210をこれ以上動作させることができないからである。仮に、現在起動中のJava(登録商標)アプリケーション210を終了させるために、当該現在起動中のJava(登録商標)アプリケーション210を動作させた場合、さらに、メモリ不足エラーが発生する。そのため、本実施の形態では、Java(登録商標)動作環境211以外(動作環境の退避・復帰制御部504)からJava(登録商標)アプリケーション210の退避を制御する必要がある。
現在起動中のJava(登録商標)アプリケーション210の退避が完了すると、JVM起動・終了制御部502が、JVM202を終了させる(ステップS1103)。次に、ヒープサイズ管理制御部501は、上述したヒープ領域303のサイズの算出方法を用いて、変更するヒープ領域303のサイズを算出する(ステップS1104)。なお、ヒープ領域303のサイズの算出方法は、予め任意の算出方法(アプリケーションの数に応じて算出するか、有効機能の数に応じて算出するか、メモリ容量に応じて算出するか、若しくは各アプリケーションが使用中のメモリ領域の何割分増加させるかなど)を選定しておくものとする。次いで、ヒープサイズ管理制御部501は、算出したヒープ領域303のサイズを、JVM202の起動設定に再定義することにより、ヒープ領域303のサイズを変更する(ステップS1105)。そして、JVM起動・終了制御部502が、再定義されたJVM202の起動設定に基づいてJVM202を起動するとともに(ステップS1106)、動作環境の退避・復帰制御部504がJava(登録商標)アプリケーション210を復帰させる(ステップS1107)。
このように、本実施の形態にかかる複合機1によれば、メモリ不足エラーやJava(登録商標)アプリケーション210の追加または削除など、ヒープ領域303のサイズの変更要因を検出した場合に、ヒープ領域303のサイズを変更することにより、Java(登録商標)動作環境において、複合機1の状態に応じて適切にヒープ領域303を確保することができるので、メモリの有効性の維持およびGCによる複合機1の性能への影響を抑えることができる。
なお、上記実施の形態では、本発明の画像形成装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機に適用した例を挙げて説明するが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも適用することができる。
1 複合機
103 RAM
204 Java(登録商標)アプリケーションA
205 Java(登録商標)アプリケーションB
206 Java(登録商標)アプリケーションC
210 Java(登録商標)アプリケーション
303 ヒープ領域
501 ヒープサイズ管理制御部
902 アプリケーション定義ファイル
特許第4170988号公報

Claims (5)

  1. 記憶媒体が有するメモリ領域のうち、アプリケーションの実行に使用するヒープ領域のサイズの変更要因となる、前記アプリケーションの追加または削除の発生を検出する検出手段と、
    前記検出手段により、前記変更要因となる前記アプリケーションの追加または削除の発生が検出された場合に、前記ヒープ領域を使用して実行する前記アプリケーションの数に応じて、前記ヒープ領域のサイズを変更する変更手段と、
    を備えたことを特徴とする画像形成装置。
  2. 記憶媒体が有するメモリ領域のうち、アプリケーションの実行に使用するヒープ領域のサイズの変更要因となる、前記アプリケーションの追加または削除の発生を検出する検出手段と、
    前記検出手段により、前記変更要因として前記アプリケーションの追加または削除の発生が検出された場合に、前記ヒープ領域を使用して実行する前記アプリケーションが有する機能のうち、有効な機能の数に応じて前記ヒープ領域のサイズを変更する変更手段と、
    を備えたことを特徴とする画像形成装置。
  3. 記憶媒体が有するメモリ領域のうち、アプリケーションの実行に使用され、前記各アプリケーションを実行するために必要なメモリ容量を示すアプリケーション定義ファイルが記憶されたヒープ領域のサイズの変更要因となる、前記アプリケーションの追加または削除の発生を検出する検出手段と、
    前記アプリケーションの追加または削除を前記変更要因の発生として検出した場合に、実行する前記各アプリケーションの前記アプリケーション定義ファイルが示すメモリ容量の総数に応じて前記ヒープ領域のサイズを変更する変更手段と、
    を備えたことを特徴とする画像形成装置。
  4. 前記検出手段は、前記ヒープ領域の不足によるメモリ不足エラーを前記変更要因の発生として検出し、
    前記変更手段は、前記メモリ不足エラーが前記変更要因の発生として検出された場合に、予め設定された基準サイズ毎に、前記ヒープ領域のサイズを変更することを特徴とする請求項1から3のいずれか一に記載の画像形成装置。
  5. 前記ヒープ領域のサイズの変更後、前記ヒープ領域のガーベージコレクションまたはSWAP処理に要する処理時間を基準にして、前記記憶媒体のメモリ領域の増設を促す通知を行う通知手段をさらに備えたことを特徴とする請求項1から4のいずれか一に記載の画像形成装置。
JP2009195981A 2009-08-26 2009-08-26 画像形成装置 Expired - Fee Related JP5446602B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009195981A JP5446602B2 (ja) 2009-08-26 2009-08-26 画像形成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009195981A JP5446602B2 (ja) 2009-08-26 2009-08-26 画像形成装置

Publications (2)

Publication Number Publication Date
JP2011048590A JP2011048590A (ja) 2011-03-10
JP5446602B2 true JP5446602B2 (ja) 2014-03-19

Family

ID=43834848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009195981A Expired - Fee Related JP5446602B2 (ja) 2009-08-26 2009-08-26 画像形成装置

Country Status (1)

Country Link
JP (1) JP5446602B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013146252A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム
JP6447959B2 (ja) 2016-03-25 2019-01-09 京セラドキュメントソリューションズ株式会社 画像形成装置およびアプリ起動管理プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110281A (ja) * 1997-10-06 1999-04-23 Canon Inc 画像形成装置及びメモリ管理方法
JP2006285871A (ja) * 2005-04-04 2006-10-19 Canon Inc 情報処理装置、制御方法、プログラム、及び記憶媒体
US8234378B2 (en) * 2005-10-20 2012-07-31 Microsoft Corporation Load balancing in a managed execution environment

Also Published As

Publication number Publication date
JP2011048590A (ja) 2011-03-10

Similar Documents

Publication Publication Date Title
US8949641B2 (en) Information processing apparatus and method for controlling information processing apparatus restoration order of images that reduces the waiting time when restoration from a hibernation state
JP6875808B2 (ja) 情報処理装置
JP2014032582A (ja) 画像処理装置、画像処理装置のストレージデバイス制御方法、及びプログラム
EP2613514A2 (en) Image forming apparatus and method of booting image forming apparatus having hibernation function
JP6524928B2 (ja) 画像処理装置及びメモリ制御プログラム並びにメモリ制御方法
JP2014026373A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP5446602B2 (ja) 画像形成装置
US9442843B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP5578811B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP5811611B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2009211537A (ja) 画像処理装置及びアクセス制御方法
JP2012058930A (ja) 画像形成装置、省エネ管理方法、及び省エネ管理プログラム
JP2018063676A (ja) 情報処理装置及びその制御方法、並びにプログラム
US10956090B2 (en) Memory system and electronic apparatus
JP2011034305A (ja) 画像形成装置、ガーベージコレクション機能の発生制御方法、プログラム、および記憶媒体
JP2011192142A (ja) 画像処理装置、休止方法および復帰方法
JP2005258967A (ja) データ処理装置
JP5444960B2 (ja) 情報処理装置、データ移行方法及び記録媒体
US20230185710A1 (en) Information processing apparatus and method of controlling information processing apparatus
JP4958723B2 (ja) 仮想記憶制御装置、仮想記憶制御方法、仮想記憶制御プログラム及び記録媒体
JP2023021707A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2017078930A (ja) 画像形成装置及びプログラム
JP2016132197A (ja) 画像形成装置及びジョブ処理制御方法並びにジョブ処理制御プログラム
JP6459570B2 (ja) 画像形成装置及び起動制御方法並びに起動制御プログラム
JP2023128642A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131120

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: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R151 Written notification of patent or utility model registration

Ref document number: 5446602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees