(57)【要約】【課題】画像形成装置におけるメモリ不足に起因する問題の発生を抑制する。【解決手段】複数の機能を実現する画像形成装置は、所定の記憶領域を有する記憶部と、所定の記憶領域の一部を割り当てて、複数のプロセスを実行することによって複数の機能の少なくとも一部を実現するオペレーティングシステムと、画像形成装置が処理対象とするジョブの発生に応じて、ジョブの処理に利用されるメモリ量である消費メモリ量を予測し、消費メモリ量が所定の記憶領域においてジョブに割り当て可能であるか否かを判断する記憶領域管理部とを備える。記憶領域管理部は、割り当て可能でないと判断した場合に、複数のプロセスのうちでジョブの処理で使用されない少なくとも１つのプロセスを終了し、予測されたメモリ量をジョブに割り当て可能とする。【選択図】図１
2020061637.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能を実現する画像形成装置であって、
所定の記憶領域を有する記憶部と、
前記所定の記憶領域の一部を割り当てて、複数のプロセスを実行することによって前記複数の機能の少なくとも一部を実現するオペレーティングシステムと、
前記画像形成装置が処理対象とするジョブの発生に応じて、前記ジョブの処理に利用されるメモリ量である消費メモリ量を予測し、前記消費メモリ量が前記所定の記憶領域において前記ジョブに割り当て可能であるか否かを判断する記憶領域管理部と、
を備え、
前記記憶領域管理部は、前記割り当て可能でないと判断した場合に、前記複数のプロセスのうちで前記ジョブの処理で使用されない少なくとも１つのプロセスを終了し、前記消費メモリ量を前記ジョブに割り当て可能とする画像形成装置。
【請求項２】
請求項１に記載の画像形成装置であって、さらに、
不揮発性の記憶領域を有する不揮発性記憶部を備え、
前記不揮発性記憶部は、前記消費メモリ量と、前記消費メモリ量に紐付けられている属性情報とを格納し、
前記属性情報は、前記ジョブの属性情報を含み、
前記記憶領域管理部は、前記属性情報を使用して前記消費メモリ量を検索して取得する画像形成装置。
【請求項３】
請求項２記載の画像形成装置であって、
前記属性情報は、さらに、前記ジョブの発生時の複数のプロセスの各起動状態を含んでいる画像形成装置。
【請求項４】
請求項３記載の画像形成装置であって、さらに、
不揮発性の記憶領域を有する不揮発性記憶部を備え、
前記記憶領域管理部は、前記複数のプロセスの各起動状態が前記不揮発性記憶部に格納されていない場合には、前記複数のプロセスを制御して前記不揮発性記憶部に格納されている各起動状態に一致させて前記消費メモリ量を検索して取得する画像形成装置。
【請求項５】
請求項２乃至４のいずれか１項に記載の画像形成装置であって、
前記記憶領域管理部は、前記ジョブの処理に利用されないデータが前記記憶部から前記不揮発性記憶部にスワップアウトされることを前提として、前記ジョブの処理に利用可能なメモリ量である利用可能メモリ量を推定し、前記消費メモリ量が前記利用可能メモリ量よりも多い場合に、前記割り当て可能でないと判断する画像形成装置。
【請求項６】
所定の記憶領域を有する記憶部を用い、複数の機能を実現する画像形成方法であって、
前記所定の記憶領域の一部を割り当てて、複数のプロセスを実行することによって前記複数の機能の少なくとも一部を実現するオペレーティング工程と、
前記画像形成方法が処理対象とするジョブの発生に応じて、前記ジョブの処理に利用されるメモリ量である消費メモリ量を予測し、前記消費メモリ量が前記所定の記憶領域において前記ジョブに割り当て可能であるか否かを判断する記憶領域管理工程と、
を備え、
前記記憶領域管理工程は、前記割り当て可能でないと判断した場合に、前記複数のプロセスのうちで前記ジョブの処理で使用されない少なくとも１つのプロセスを終了し、前記消費メモリ量を前記ジョブに割り当て可能とする工程を含む画像形成方法。
【請求項７】
所定の記憶領域を有する記憶部を備え、複数の機能を実現する画像形成装置を制御する画像形成プログラムであって、
前記所定の記憶領域の一部を割り当てて、複数のプロセスを実行することによって前記複数の機能の少なくとも一部を実現するオペレーティングシステム、及び
前記画像形成装置が処理対象とするジョブの発生に応じて、前記ジョブの処理に利用されるメモリ量である消費メモリ量を予測し、前記消費メモリ量が前記所定の記憶領域において前記ジョブに割り当て可能であるか否かを判断する記憶領域管理部として前記画像形成装置を機能させ、
前記記憶領域管理部は、前記割り当て可能でないと判断した場合に、前記複数のプロセスのうちで前記ジョブの処理で使用されない少なくとも１つのプロセスを終了し、前記消費メモリ量を前記ジョブに割り当て可能とする画像形成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成方法及び画像形成プログラムに関し、特にメモリ管理に関する。
【背景技術】
【０００２】
近年、画像形成装置は、高解像度化及び多機能化に伴って多くのメモリを使用するようになっている。一方、画像形成装置はオフィスにおいて複数のユーザーによって共有され、複写や印刷、画像データの送信といった様々なジョブを並行して処理可能なので、並行処理に起因して一時的にメモリが大量に消費されることがある。さらに、画像形成装置は、複数のユーザーから多数のジョブの処理を要求されるので、メモリリークの問題にも曝されることになる。このような問題に対して、たとえば特許文献１は、画像形成装置に対して印刷ジョブを送信するパーソナルコンピュータにおいて、スプール領域として使用することができる記憶領域の容量を検出し、印刷可否メッセージを表示することによって文字抜けや文字化けを含む不適切な印刷を防止する技術を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２２７３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来は、画像形成装置におけるメモリ不足に起因する問題の発生に対する対策については必ずしも十分な検討が行われていなかった。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、画像形成装置におけるメモリ不足に起因する問題の発生を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、複数の機能を実現する画像形成装置を提供する。前記画像形成装置は、所定の記憶領域を有する記憶部と、前記所定の記憶領域の一部を割り当てて、複数のプロセスを実行することによって前記複数の機能の少なくとも一部を実現するオペレーティングシステムと、前記画像形成装置が処理対象とするジョブの発生に応じて、前記ジョブの処理に利用されるメモリ量である消費メモリ量を予測し、前記消費メモリ量が前記所定の記憶領域において前記ジョブに割り当て可能であるか否かを判断する記憶領域管理部とを備え、前記記憶領域管理部は、前記割り当て可能でないと判断した場合に、前記複数のプロセスのうちで前記ジョブの処理で使用されない少なくとも１つのプロセスを終了し、前記消費メモリ量を前記ジョブに割り当て可能とする。
【０００７】
本発明は、所定の記憶領域を有する記憶部を用い、複数の機能を実現する画像形成方法を提供する。前記画像形成方法は、前記所定の記憶領域の一部を割り当てて、複数のプロセスを実行することによって前記複数の機能の少なくとも一部を実現するオペレーティング工程と、前記画像形成方法が処理対象とするジョブの発生に応じて、前記ジョブの処理に利用されるメモリ量である消費メモリ量を予測し、前記消費メモリ量が前記所定の記憶領域において前記ジョブに割り当て可能であるか否かを判断する記憶領域管理工程とを備え、前記記憶領域管理工程は、前記割り当て可能でないと判断した場合に、前記複数のプロセスのうちで前記ジョブの処理で使用されない少なくとも１つのプロセスを終了し、前記消費メモリ量を前記ジョブに割り当て可能とする工程を含む。
【０００８】
本発明は、所定の記憶領域を有する記憶部を備え、複数の機能を実現する画像形成装置を制御する画像形成プログラムを提供する。前記画像形成プログラムは、前記所定の記憶領域の一部を割り当てて、複数のプロセスを実行することによって前記複数の機能の少なくとも一部を実現するオペレーティングシステム、及び前記画像形成装置が処理対象とするジョブの発生に応じて、前記ジョブの処理に利用されるメモリ量である消費メモリ量を予測し、前記消費メモリ量が前記所定の記憶領域において前記ジョブに割り当て可能であるか否かを判断する記憶領域管理部として前記画像形成装置を機能させ、前記記憶領域管理部は、前記割り当て可能でないと判断した場合に、前記複数のプロセスのうちで前記ジョブの処理で使用されない少なくとも１つのプロセスを終了し、前記消費メモリ量を前記ジョブに割り当て可能とする。
【発明の効果】
【０００９】
本発明によれば、画像形成装置におけるメモリ不足に起因する問題の発生を抑制する技術を提供する。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る画像形成装置を示す概略構成図である。
【図２】一実施形態に係る画像形成装置の各機能と各プロセスの関係を示す説明図である。
【図３】一実施形態に係る画像形成装置のメインメモリの各領域の状態の一例を示す説明図である。
【図４】一実施形態に係る画像形成装置のメインメモリの各領域の状態の他の例を示す説明図である。
【図５】一実施形態に係る印刷処理手順の内容を示すフローチャートである。
【図６】一実施形態に係る印刷実行処理の内容を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態（以下、「実施形態」という）を、図面を参照して説明する。
【００１２】
図１は、本発明の一実施形態に係る画像形成装置１００を示す概略構成図である。画像形成装置１００は、制御部１１０と、画像読取部１２０と、ＲＩＰ処理部１３０と、記憶部１４０と、通信インターフェース部１５０（通信Ｉ／Ｆとも呼ばれる。）と、画像形成部１６０と、ＦＡＸ通信部１７０とを備えている。ＲＩＰ処理部１３０は、ＰＤＬ解析部１３１と、色変換処理部１３２と、ハーフトーン処理部１３３とを備えている。画像読取部１２０は、原稿から画像を読み取ってデジタルデータである画像データＩＤを生成する。ＲＩＰ処理部１３０は、画像データに対してＲＩＰ処理を実行してビットマップデータであるドットデータを生成する。ＦＡＸ通信部１７０は、ＦＡＸの送受信を実行する。ＦＡＸの送信では、２値化処理が実行される。
【００１３】
画像形成装置１００は、ＬＡＮ３０を介してパーソナルコンピュータ２０に接続されている。画像形成装置１００は、後処理装置４０に接続されている。後処理装置４０は、画像が形成された印刷用紙に対して、穿孔処理やステープル処理、印刷用紙の束を整合する整合処理といった後処理を実行することができる。
【００１４】
画像形成部１６０は、ドットデータに基づいて印刷媒体（図示せず）に画像を形成して排出する。本実施形態では、画像形成部１６０は、画像データＩＤやパーソナルコンピュータ２０から受信した印刷ジョブに基づいて印刷媒体（図示せず）に画像を形成して排出する。ドットデータは、画像形成媒体上のドットの形成状態を表すビットマップデータである。印刷媒体は、画像形成媒体とも呼ばれる。印刷ジョブは、画像形成ジョブとも呼ばれる。
【００１５】
制御部１１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の制御手段を備えている。また、制御部１１０は、各種Ｉ／Ｏ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、バス、その他ハードウェア等のインターフェースに関連するコントローラー機能を備えている。制御部１１０は、画像形成装置１００の全体を制御する。制御部１１０は、この例では、オペレーティングシステムとしてＬｉｎｕｘ（登録商標）カーネルを使用して作動するものとする。
【００１６】
制御部１１０は、記憶領域管理部１１１と、メモリ管理ユニット（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ、ＭＭＵとも呼ばれる。）１１２と、所定の記憶領域を有するメインメモリ１１３とを有している。メインメモリ１１３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から構成されている。ＣＰＵは、メインメモリ１１３内において、記憶領域管理部１１１によって確保された記憶領域を利用して各処理を実行する。ＭＭＵ１１２は、仮想アドレスを物理アドレスに変換する機能を有している。
【００１７】
記憶部１４０は、非一時的な不揮発性の記録媒体であるハードディスクドライブからなる記憶装置である。記憶部１４０は、プログラム格納領域１４１と、スワップ領域１４２と、ＢＯＸ領域１４３と、消費メモリ情報格納領域１４４とを有している。プログラム格納領域１４１は、制御部１１０が実行する各プロセスを実行するためのプログラムを記憶する。スワップ領域１４２は、メインメモリ１１３のデータをスワップアウトするために予め確保されている領域である。ＢＯＸ領域１４３は、画像形成装置１００のユーザーが画像データその他のデータを保存するために予め確保されている領域である。消費メモリ情報格納領域１４４は、印刷機能や複写機能といった各機能で消費されるメモリ量を表す情報を格納する領域である。
【００１８】
図２は、一実施形態に係る画像形成装置１００の各機能と各プロセスの関係を示す説明図である。画像形成装置１００は、主な機能として印刷機能、複写機能、ＦＡＸ機能、送信機能、ＢＯＸ機能及びメンテナンス機能を有し、各機能を実現するための複数のプロセスを実装している。印刷機能は、ＰＤＬ解析プロセス、色変換プロセス及びハーフトーンプロセスによって実現されている。複写機能は、画像読取プロセス、色変換プロセス及びハーフトーンプロセスによって実現されている。ＦＡＸ機能には、画像読取プロセス及び二値化プロセスが使用される。
【００１９】
送信機能は、この例では、画像を読み取ってｐｄｆファイルとしてパーソナルコンピュータ２０に送信する機能である。送信機能は、画像読取プロセス及びＰＤＦ化プロセスが使用される。ＢＯＸ機能は、画像データ等を圧縮してＢＯＸ領域１４３に格納し、ＢＯＸ領域１４３から読み出して伸張する機能である。ＢＯＸ機能には、画像読取プロセス及び圧縮伸張プロセスが使用される。メンテナンス機能は、この例では、たとえば消耗品（トナー等）の残存状況や印刷枚数を記録し、サポートセンターに送信する機能である。メンテナンス機能には、管理プロセスが使用される。
【００２０】
図３は、一実施形態に係る画像形成装置１００のメインメモリ１１３の各領域の状態の一例を示す説明図である。メインメモリ１１３は、テキスト領域１１３Ｔ、静的領域１１３Ｓ、ヒープ領域１１３Ｈ、空き領域１１３Ｆ及びスタック領域１１３Ｖから構成されている。
【００２１】
テキスト領域１１３Ｔは、プログラム領域とも呼ばれ、機械語に翻訳されたプログラムが格納される固定サイズの領域である。画像形成装置１００は、起動時において、プログラム格納領域１４１から機械語に翻訳されたプログラムを読み出して、テキスト領域１１３Ｔに格納する。各プロセスは、この機械語の命令がＣＰＵで実行されることによって作動する。
【００２２】
静的領域１１３Ｓは、グローバル変数などの静的変数が格納される固定サイズの領域である。静的変数とは、各プロセスの作動時において変化しない変数である。スタック領域１１３Ｖは、自動変数(局所変数)や関数の引数、戻り値といった一時変数などが格納される固定サイズの領域である。スタック領域１１３Ｖには、ＣＰＵのレジスタを一時的に退避させることもできる。
【００２３】
ヒープ領域１１３Ｈは、たとえばＣ言語においては、各プロセスがｍａｌｌｏｃ関数で物理メモリを確保し、ｆｒｅｅ関数で物理メモリを開放することができる動的な領域である。各プロセスは、その動作に必要な記憶領域をｍａｌｌｏｃ関数で物理メモリを確保して動作し、その動作の完了後にｆｒｅｅ関数で物理メモリを開放する。一方、空き領域１１３Ｆは、ヒープ領域１１３Ｈで確保された領域を除いた領域である。したがって、ヒープ領域１１３Ｈ及び空き領域１１３Ｆは、各プロセスの動作に応じて変動する領域である（図３の矢印参照）。
【００２４】
なお、空き領域１１３Ｆの領域の多くは、現実には、制御部１１０のＬｉｎｕｘ（登録商標）カーネルによってバッファやファイルキャッシュの用途に使用されている。しかしながら、Ｌｉｎｕｘ（登録商標）カーネルは、空き領域１１３Ｆの減少に応じて、バッファやファイルキャッシュ用の記憶領域を自動的に開放し、利用可能な記憶領域を増やして各プロセスで利用可能とすることができる。ただし、バッファやファイルキャッシュ用の記憶領域は、過度に制御部１１０の処理能力が低下しない範囲で確保される。
【００２５】
さらに、Ｌｉｎｕｘ（登録商標）カーネルは、バッファやファイルキャッシュ用の記憶領域が小さくなってくると、記憶部１４０のスワップ領域１４２にスワップアウトして利用可能な記憶領域を増やして各プロセスで利用可能とすることができる。ただし、記憶部１４０は、ハードディスクドライブからなる記憶装置なので、スワップアウトは、制御部１１０の処理能力の低下の要因となり得る。
【００２６】
図３（ａ）は、ＲＩＰ処理開始前のメインメモリ１１３の各領域を示している。テキスト領域１１３Ｔ、静的領域１１３Ｓ及びスタック領域１１３Ｖは、各プロセスの作動中においては固定サイズの領域である。この例では、テキスト領域１１３Ｔには、全てのプロセスのプログラムが格納され、全てのプロセスが起動されているものとする。各プロセスは、ヒープ領域１１３Ｈにおいて処理開始に必要な記憶領域を確保している。ＲＩＰ処理は、パーソナルコンピュータ２０からの印刷ジョブの受信や複写操作に応じて開始される。
【００２７】
図３（ｂ）は、ＲＩＰ処理中のメインメモリ１１３の各領域を示している。ＲＩＰ処理では、制御部１１０は、少なくとも色変換プロセス及びハーフトーンプロセスを起動する。色変換プロセス及びハーフトーンプロセスは、各処理に必要な記憶領域のｍａｌｌｏｃ関数での確保と、ｆｒｅｅ関数での開放とを繰り返して作動する。このように、ヒープ領域１１３Ｈは、ＲＩＰ処理に起因して増加することになる。
【００２８】
図４は、一実施形態に係る画像形成装置１００のメインメモリ１１３の各領域の状態の他の例を示す説明図である。図４（ａ）は、ＲＩＰ処理後のメインメモリ１１３の各領域を示している。ＲＩＰ処理後のメインメモリ１１３は、非開放領域が残存してメインメモリ１１３の記憶領域が減少している点で、ＲＩＰ処理前のメインメモリ１１３（図３（ａ）参照）と相違する。このような非開放領域の発生は、一般にメモリリークと呼ばれる。メモリリークは、ガベージコレクションによって軽減されるが、限界も指摘されている。
【００２９】
図４（ｂ）は、ＲＩＰ処理再開後のメインメモリ１１３の各領域を示している。ＲＩＰ処理では、色変換プロセス及びハーフトーンプロセスは、各処理に必要な記憶領域のｍａｌｌｏｃ関数での確保と、ｆｒｅｅ関数での開放とを繰り返して作動する。ただし、空き領域１１３Ｆは、メモリリークに起因する非開放領域よって減少している。画像形成装置１００は、複数のユーザーから多数のジョブの処理を要求されるので、本願発明者は、メモリリークが無視できない問題である点に着目した。
【００３０】
図５は、一実施形態に係る印刷処理手順の内容を示すフローチャートである。印刷処理手順では、画像形成装置１００は、ＰＤＬ解析プロセス、色変換プロセス及びハーフトーンプロセスを使用し、パーソナルコンピュータ２０から受信した印刷ジョブに基づいて印刷媒体（図示せず）に画像を形成して排出する処理である。本実施形態では、印刷ジョブの受信に基づいてジョブが発生するものとする。
【００３１】
ステップＳ１００では、制御部１１０は、印刷ジョブ受信処理を実行する。印刷ジョブ受信処理では、パーソナルコンピュータ２０からの印刷ジョブ受信に応じて、ＣＰＵは、ＰＤＬ解析プロセス、色変換プロセス及びハーフトーンプロセスを必要に応じて起動する。ＰＤＬ解析プロセス、色変換プロセス及びハーフトーンプロセスは、仮想メモリ空間において仮想アドレスを使用して記憶領域を設定する。ＭＭＵ１１２は、仮想アドレスを物理アドレスに変換してメインメモリ１１３内の物理メモリを確保する。
【００３２】
ステップＳ２００では、制御部１１０の記憶領域管理部１１１は、ジョブの属性を表す属性情報と、複数のプロセスの各起動状態とに基づいて、消費メモリ情報格納領域１４４において消費メモリ量を検索して取得する。消費メモリ情報は、印刷機能や複写機能といった機能の内容と、カラー印刷／モノクロ印刷や解像度といった機能（この例では印刷機能）に関する属性情報とともに消費メモリ量が紐付けられてデータベース化されている。
【００３３】
属性情報には、さらに、複数のプロセスの各起動状態、すなわち各プロセスが印刷ジョブの受信時に起動済みであるか否かを含むようにしてもよい。起動済みであれば、新たに割り当てられるメモリ量が少なくなるからである。消費メモリ情報は、各機能の実行中の使用メモリサイズのピーク値（最大値）を表している。
【００３４】
記憶領域管理部１１１は、属性情報が一致する消費メモリ情報が存在する場合には、処理をステップＳ３００に進め、属性情報が一致する消費メモリ情報が存在しない場合には、処理をステップＳ７００に進める。なお、記憶領域管理部１１１は、複数のプロセスの各起動状態が一致するデータが消費メモリ情報格納領域１４４に格納されていない場合には、画像形成装置１００の複数のプロセスを制御して消費メモリ情報格納領域１４４に格納されている各起動状態に一致させて消費メモリ量を検索するようにしてもよい。
【００３５】
ステップＳ３００では、記憶領域管理部１１１は、空きメモリサイズを取得する。空きメモリサイズは、オペレーティングシステムとしてＬｉｎｕｘ（登録商標）カーネルが使用されているので、たとえば／ｐｒｏｃ／ｍｅｍｉｎｆｏコマンドを使用して取得することができる。この例では、空きメモリサイズは、各プロセスで利用可能なメモリサイズである。
【００３６】
本実施形態では、記憶領域管理部１１１は、バッファやファイルキャッシュ用の記憶領域のうち過度に処理能力を低下させないメモリ量として予め設定されたメモリ量を残して開放可能なメモリ量と、未使用のｆｒｅｅ領域と、印刷機能に不要なデータをスワップアウトして開放可能なメモリ量との和として、空きメモリサイズを算出するものとする。ただし、スワップアウトは、制御部１１０の処理能力の低下の要因ともなり得るので、スワップ処理を前提とすることなく、空きメモリサイズを算出するようにしてもよい。
【００３７】
ステップＳ４００では、記憶領域管理部１１１は、消費メモリ情報によって表されているメモリ量である消費メモリ量に対して空きメモリサイズが不足するか否かを判断する。記憶領域管理部１１１は、空きメモリサイズが不足する場合には、処理をステップＳ５００に進め、空きメモリサイズが不足しない場合には、処理をステップＳ７００に進める。
【００３８】
ステップＳ５００では、記憶領域管理部１１１は、空きメモリを増やすために印刷機能に不要な他のプロセスを終了させる。具体的には、記憶領域管理部１１１は、たとえば画像読取プロセス、二値化プロセス、圧縮伸張プロセス及びＰＤＦ化プロセスを終了させることができる。これにより、記憶領域管理部１１１は、画像読取プロセス、二値化プロセス、圧縮伸張プロセス及びＰＤＦ化プロセスに割り当てられているメモリを解放させることによって空きメモリを増やすことができる。
【００３９】
図６は、一実施形態に係る印刷実行処理の内容を示すフローチャートである。ステップＳ６００では、制御部１１０は、印刷処理を実行する。ステップＳ６１０では、記憶領域管理部１１１は、印刷ジョブ実行開始前の使用メモリサイズを取得する。記憶領域管理部１１１は、使用メモリサイズとして、各プロセスで利用可能でないメモリサイズを空きメモリサイズを使用して算出する。空きメモリサイズは、ステップＳ３００の処理と同一内容の処理で算出される。
【００４０】
ステップＳ６２０では、制御部１１０は、ＰＤＬ解析プロセス、色変換プロセス及びハーフトーンプロセスを作動させて、印刷ジョブの処理の実行を開始させる。一方、記憶領域管理部１１１は、印刷ジョブの処理と並行して使用メモリサイズを監視する。
【００４１】
ＰＤＬ解析プロセスは、ページ記述言語で記述された印刷ジョブを解析して、印刷ジョブに含まれるテキスト（文字）やイメージ、ベクターグラフィックスといったオブジェクトを抽出し、描画処理やフォント処理を実行する。色変換プロセスは、色変換処理を実行して、オブジェクトを表しているＲＧＢ画像データを画像形成部１６０が使用する色材で再現可能なＣＭＹＫ画像データに変換する。ハーフトーンプロセスは、ＣＭＹＫ画像データに対して組織的ディザや誤差拡散といった処理を実行して、画像形成部１６０がトナードットで再現可能な階調数に減色する。
【００４２】
このように、印刷実行処理は、印刷ジョブの内容によっては非常に多量のメモリを消費する処理である。このため、メモリリークの問題は、印刷実行処理において顕在化することが多く、エラーや処理遅延を引き起こすことがあった。
【００４３】
ステップＳ６３０では、記憶領域管理部１１１は、印刷ジョブの処理の完了に応じて、使用メモリサイズのピーク値（最大値）を取得する。ステップＳ６４０では、記憶領域管理部１１１は、消費メモリ情報生成処理を実行する。消費メモリ情報生成処理では、カラー印刷／モノクロ印刷や解像度といった印刷処理に関する属性情報を使用して消費メモリ情報を生成する。消費メモリ情報には、さらに、複数のプロセスの各起動状態、すなわち印刷機能で使用されるプロセス、たとえばＰＤＬ解析プロセス、色変換プロセス及びハーフトーンプロセスが印刷ジョブの受信時に起動済みであるか否かを含めてもよい。
【００４４】
ステップＳ６５０では、記憶領域管理部１１１は、消費メモリ情報格納処理を実行する。消費メモリ情報格納処理では、記憶領域管理部１１１は、消費メモリ情報格納領域１４４内のデータベースに消費メモリ情報を新規登録又は更新（たとえば消費メモリの最大値に更新）する。
【００４５】
なお、ステップＳ７００は、ステップＳ６００と同一内容の処理である。消費メモリ情報は、たとえば画像形成装置１００の出荷検査の際に蓄積することができる。画像形成装置１００は、消費メモリ情報の蓄積を目的として画像形成媒体を使用せず、メインメモリ１１３の使用状態を模擬するための処理、すなわち露光信号の生成までの処理を実行するためのシミュレーションモードを有するように構成されていてもよい。
【００４６】
ステップＳ８００では、記憶領域管理部１１１は、空きメモリを増やすために終了させた他のプロセスを起動させる。この例では、記憶領域管理部１１１は、たとえば画像読取プロセス、二値化プロセス、圧縮伸張プロセス及びＰＤＦ化プロセスを起動させることになる。これにより、画像読取プロセス、二値化プロセス、圧縮伸張プロセス及びＰＤＦ化プロセスは、ジョブ発生に応じて迅速に処理を開始することができる。
【００４７】
このように、一実施形態に係る画像形成装置１００は、各機能（たとえば印刷機能）で使用されるメモリ量を過去の実績値に基づいて推定し、オペレーティングシステムのメモリ管理方法に拘わらず高い信頼性でメモリ不足に起因する問題の発生を抑制することができる。画像形成装置１００は、さらに、過去の実績値に基づいて空きメモリサイズの不足が予測される場合に、予め処理対象に使用されない他のプロセスを終了してメモリを解放させるので、メモリ不足の解消も実現することができる。
【００４８】
本発明は、上記実施形態だけでなく、以下のような変形例でも実施することができる。
【００４９】
変形例１：上記実施形態では、記憶領域管理部１１１は、メモリリークに起因する非開放領域による空きメモリサイズの減少が予め設定されている閾値に達した場合には、全てのジョブの完了後に再起動するように構成されていてもよい。こうすれば、画像形成装置１００は、メモリリークによって発生するメモリ不足に起因する問題の発生を抑制することができる。
【００５０】
変形例２：上記実施形態では、画像形成装置は、オペレーティングシステムとしてＬｉｎｕｘ（登録商標）カーネルを採用しているが、必ずしもＬｉｎｕｘ（登録商標）カーネルに限定されない。本発明は、他のオペレーティングシステムを採用する画像形成装置に適用可能である。
【符号の説明】
【００５１】
１００  画像形成装置
１１０  制御部
１１１  記憶領域管理部
１１２  メモリ管理ユニット（ＭＭＵ）
１１３  メインメモリ
１２０  画像読取部
１３０  ＲＩＰ処理部
１３１  ＰＤＬ解析部
１３２  色変換処理部
１３３  ハーフトーン処理部
１４０  記憶部
１４１  プログラム格納領域
１４２  スワップ領域
１４３  ＢＯＸ領域
１４４  消費メモリ情報格納領域
１５０  通信インターフェース部
１６０  画像形成部
【図１】
2020061637.tif 000003
【図２】
2020061637.tif 000004
【図３】
2020061637.tif 000005
【図４】
2020061637.tif 000006
【図５】
2020061637.tif 000007
【図６】
2020061637.tif 000008