(57)【要約】【課題】  画像処理装置で動作するプロセスのうち、スワップアウトを禁止するプロセスを動的に変更することで、複合機のスループットの低下を防止することを目的とする。【解決手段】  メモリ管理１００２は、ジョブログ１００６を参照して実行頻度の高いジョブの種類を特定し、特定されたジョブの種類とジョブプロセステーブル１００７とに基づいて実行頻度の高いプロセスを特定し、当該プロセスをスワップアウトを禁止するプロセスとして管理する。【選択図】  図３
2010003076.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の機能を備え、前記複数種類の機能いずれかに関するジョブを実行可能な画像処理装置であって、
前記画像処理装置がジョブを実行するためのプログラムを実行可能なプログラム実行手段と、
前記プログラム実行手段がプログラムを実行するための記憶領域を第１記憶装置中に確保するメモリ管理手段と、
前記メモリ管理手段が前記主記憶装置中に確保した記憶領域に記憶された情報を、第２記憶装置へ退避する退避手段と、
ジョブを実行する毎にジョブの実行に関する履歴を記録する履歴記録手段と、
前記複数種類の機能のうち前記履歴記録手段に記録されたジョブの履歴に基づいて特定される機能に関するジョブの実行のために前記メモリ管理手段が前記第１記憶装置に確保した記憶領域を、前記第２記憶装置へ退避しない記憶領域とする退避制限手段と、を備えることを特徴とする画像処理装置。
【請求項２】
前記プログラム実行手段は複数のプログラムを実行可能であり、
前記メモリ管理手段は前記プログラム実行手段が実行する複数のプログラムの各々に対応して前記第１記憶装置中に複数の記憶領域を確保し、
前記退避制限手段は前記複数の記憶領域のうち、前記特定された機能に関するジョブを実行するために確保した記憶領域を、前記第２記憶装置へ退避しない記憶領域とすることを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
前記複数種類の機能の各々に対して機能に関するジョブを実行するために前記プログラム実行手段が実行するプログラムを対応付けた情報である対応付け情報を記憶する対応付け情報記憶手段を更に備え、
前記退避制限手段は、前記対応付け情報記憶手段を参照して、前記履歴記録手段に記録されたジョブ履歴から得られるジョブの実行頻度に基づいて特定された種類の機能に対応付けられたプログラムの実行のために確保された前記第１記憶装置中の記憶領域を、前記第２記憶装置へ退避しない記憶領域とすることを特徴とする、請求項１に記載の画像処理装置。
【請求項４】
前記履歴記録手段が記録したジョブの履歴と、前記対応付け情報記憶手段が記憶する対応付け情報とに基づいてプログラムの実行頻度を示すプログラム実行頻度情報を生成するプログラム頻度情報生成手段を更に備え、
前記退避制限手段は、前記プログラム実行頻度情報に基づいて特定されたプログラムのために確保された前記第１記憶装置中の記憶領域を、前記第２記憶装置へ退避しない記憶領域とすることを特徴とする、請求項３に記載の画像処理装置。
【請求項５】
前記プログラム頻度情報生成手段は、予め定められたタイミングで前記プログラム実行頻度情報を更新することを特徴とする、請求項４に記載の画像処理装置。
【請求項６】
前記画像処理装置にログインするユーザを認証するユーザ認証手段を更に備え、
前記履歴記録手段はジョブの実行に関する履歴として前記ユーザ認証手段が認証しジョブの実行を指示したユーザを特定する情報を記録し、
前記プログラム頻度情報生成手段は、ユーザ認証手段がユーザを認証するごとに認証されたユーザに関するジョブの履歴と前記対応付け情報とに基づいて前記プログラム実行頻度情報を更新することを特徴とする、請求項５に記載の画像処理装置。
【請求項７】
前記第１記憶装置は主記憶装置であり、前記第２記憶装置は二次記憶装置であることを特徴とする、請求項１乃至請求項６のいずれか１項に記載の画像処理装置。
【請求項８】
複数種類の機能を備え、前記複数種類の機能いずれかに関するジョブを実行可能であり、ジョブを実行するためのプログラムを実行可能なプログラム実行手段を備える画像処理装置のメモリ管理方法であって、
前記プログラム実行手段がプログラムを実行するための記憶領域を第１記憶装置中に確保するメモリ管理工程と、
前記メモリ管理工程において前記第１記憶装置中に確保された記憶領域に記憶された情報を、第２記憶装置へ退避する退避工程と、
ジョブを実行する毎にジョブの実行に関する履歴を記録する履歴記録工程と、
前記複数種類の機能のうち前記履歴記録工程で記録されたジョブの履歴に基づいて特定される機能に関するジョブの実行のために前記メモリ管理工程で前記主記憶装置に確保された記憶領域を、前記第２記憶装置へ退避しない記憶領域とする退避制限工程と、を備えることを特徴とする画像処理装置のメモリ管理。
【請求項９】
複数種類の機能を備え、前記複数種類の機能いずれかに関するジョブを実行可能であり、ジョブを実行するためのプログラムを実行可能なプログラム実行手段を備える画像処理装置にメモリ管理方法を実行させるための制御プログラムであって、前記メモリ管理方法は、
前記プログラム実行手段がプログラムを実行するための記憶領域を第１記憶装置中に確保するメモリ管理工程と、
前記メモリ管理工程において前記第１記憶装置中に確保された記憶領域に記憶された情報を、第２記憶装置へ退避する退避工程と、
ジョブを実行する毎にジョブの実行に関する履歴を記録する履歴記録工程と、
前記複数種類の機能のうち前記履歴記録工程で記録されたジョブの履歴に基づいて特定される機能に関するジョブの実行のために前記メモリ管理工程で前記第１記憶装置に確保された記憶領域を、前記第２記憶装置へ退避しない記憶領域とする退避制限工程と、を備えることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想記憶方式を採用する画像処理装置におけるメモリ管理技術に関するものである。
【背景技術】
【０００２】
仮想記憶方式を採用する計算機システムでは実メモリ（物理メモリ）容量以上のメモリ領域（アドレス空間）を管理する事ができる。
【０００３】
実メモリ容量以上のメモリ領域を使用する場合は、メモリに記憶されたデータやプログラムの一部を一時的にハードディスク（ＨＤＤ）などの記憶装置へ待避するスワップ処理を行う。スワップ処理は大きく分けて以下の２つの処理を含む。１つは、実メモリの容量をあけるために当面の間必要無い内容をハードディスクなどに書き出すこと、即ちスワップアウトである。もう１つは、ハードディスクなどに書き出して退避した内容がプログラム処理の都合上必要となったときにメモリに書き戻すこと、即ちスワップインである。
【０００４】
スワップアウトした内容を使用する場合は、退避した内容を記憶領域から実メモリ領域へ再度転送してから使用するため、スワップしたメモリを使用するプロセスは転送オーバーヘッドが発生しプログラムの動作が遅くなる。
【０００５】
スワップアウトするメモリ領域は一般にＬｅａｓｔＲｅｃｅｎｔｌｙＵｓｅｄアルゴリズム（最も使われていないデータから破棄するというキャッシュの管理方法）により、最後にアクセスされてからの時間が長いものが選択される。
【０００６】
しかし、メモリ容量の少ないシステムでは実メモリ領域全体が頻繁にアクセスされ、全プロセスの動作が遅くなるスラッシング状態に陥る問題がある。
【０００７】
計算機システム全体のスループットを改善するために、既に一部のメモリ領域がスワップされているプロセスのメモリ領域を優先的にスワップする事で動作の遅いプロセスを減らす技術が知られている（たとえば特許文献１）。
【０００８】
一方、特定のメモリ領域をスワップ対象にしない機能がＬｉｎｕｘ（登録商標）等の汎用ＯＳでは提供されている。
【０００９】
メモリ容量の少ないシステムでも優先的に動かす必要があるプロセスの使用するメモリ領域をスワップアウト禁止にする事で、緊急プロセスの動作保証や重要機能の優先実行を実施することができる。
【特許文献１】特開２００４−２２７１８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
コピー、プリント、スキャン、ファクシミリなどの複数の機能を備える複合機などの画像処理装置の機能は年々多様化しているため、これら複数の機能を実現するために複合機に搭載されるプログラム（プロセス）の量も増加し続けている。複合機が処理を実行するために必要なプロセスを同時に実行してもスワップが発生しない容量のメモリ領域を確保する実メモリを搭載することはコストの観点から現実的ではない。従って、いずれかのプロセスが使用するメモリをスワップアウトして動作する必要がある。
【００１１】
優先的に実行するプロセスをスワップアウトしないことでスワップアウトしないプロセスの動作が遅くなることを防止して、システムのスループットを向上させる事ができる。従って、使用環境に関わらずに用途が特定できるシステムでは、設計時に高頻度機能を特定し、高頻度機能に必要な高頻度プロセスを特定して、高頻度プロセスにはスワップアウトしないメモリを割り当てる事ができる。
【００１２】
しかし、スキャン、プリント、コピー、ファクシミリなどの多様な機能を持つ複合機では、使用環境によって優先的に実行するプロセスが必ずしも固定的ではない。
【００１３】
例えば、プリント機能に特化した設計を行い、プリント機能に関わるメモリ領域をスワップ禁止にしても、スキャン機能を主に用いるユーザの使用環境であれば、スキャン機能を制御するためのプログラムの動作が遅くなり、スキャン機能のスループットが低下する。また、ファクシミリ送信機能を主に用いる使用環境においてもスループットの向上は見込めない。
【００１４】
従って、機能の豊富なシステムでは優先機能を画一的に決めてスループットを向上させる事ができない。
【００１５】
さらに、複合機を用いるユーザの使用環境においても、業務プロセスが変化する可能性があるため、それにより高頻度に用いられる複合機の機能も変換することがある。したがって、複合機の導入時に優先機能を特定し、それを固定して運用し続けてもスループットが向上できないこともある。
【００１６】
本発明は、上述の課題を鑑みてなされたものであり、スワップアウトを禁止するプロセスを動的に変更することで、複合機のスループットの低下を防止することを目的とする。
【課題を解決するための手段】
【００１７】
上述の課題を解決するために、本発明の画像処理装置は、複数種類の機能を備え、前記複数種類の機能いずれかに関するジョブを実行可能な画像処理装置であって、前記画像処理装置がジョブを実行するためのプログラムを実行可能なプログラム実行手段と、前記プログラム実行手段がプログラムを実行するための記憶領域を第１記憶装置中に確保するメモリ管理手段と、前記メモリ管理手段が前記主記憶装置中に確保した記憶領域に記憶された情報を、第２記憶装置へ退避する退避手段と、ジョブを実行する毎にジョブの実行に関する履歴を記録する履歴記録手段と、前記複数種類の機能のうち前記履歴記録手段に記録されたジョブの履歴に基づいて特定される機能に関するジョブの実行のために前記メモリ管理手段が前記第１記憶装置に確保した記憶領域を、前記第２記憶装置へ退避しない記憶領域とする退避制限手段と、を備えることを特徴とする。
【００１８】
また、本発明のメモリ管理方法は、複数種類の機能を備え、前記複数種類の機能いずれかに関するジョブを実行可能であり、ジョブを実行するためのプログラムを実行可能なプログラム実行手段を備える画像処理装置のメモリ管理方法であって、前記プログラム実行手段がプログラムを実行するための記憶領域を第１記憶装置中に確保するメモリ管理工程と、前記メモリ管理工程において前記第１記憶装置中に確保された記憶領域に記憶された情報を、第２記憶装置へ退避する退避工程と、ジョブを実行する毎にジョブの実行に関する履歴を記録する履歴記録工程と、前記複数種類の機能のうち前記履歴記録工程で記録されたジョブの履歴に基づいて特定される機能に関するジョブの実行のために前記メモリ管理工程で前記主記憶装置に確保された記憶領域を、前記第２記憶装置へ退避しない記憶領域とする退避制限工程と、を備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、複合機はユーザの使用頻度に応じて最適化されたスワップ制御のもとで機能を実行することができるため、スループットの低下を防止することができる。
【発明を実施するための最良の形態】
【００２０】
＜第１の実施形態＞
以下、本発明の実施の形態を図面に基づいて説明する。
【００２１】
ここでは画像処理装置を例に説明するが、本発明は計算機システム全般に適用可能である。
【００２２】
図１は本実施形態における画像処理装置の概略構成の一例を示す図である。
【００２３】
本実施形態において画像処理装置１は、例えば、コピー、スキャン、ファクシミリ、プリントといった複数種類の機能を備えた複合機である。
【００２４】
画像処理装置１は、イーサネット（登録商標）等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）４００を介してパーソナルコンピュータ（ＰＣ）３、４に接続されている。
【００２５】
画像処理装置１は、原稿画像の読取処理を行うリーダ部２と、画像データの印刷出力を行うプリンタ部６を有する。また、画像データや操作画面の表示などを行う液晶パネルを備えた操作部７を備える。
【００２６】
コントローラ１１０は、上述の各構成要素を接続し、これら構成要素を制御し、画像処理装置１全体の制御を統括する。
【００２７】
リーダ部２は原稿用紙を搬送する原稿給紙ユニット（部）１０と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット（部）１１とを有する。
【００２８】
プリンタ部６は記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット（部）１２と画像データを記録用紙に転写、定着するマーキングユニット（部）１３を有する。プリンタ部６はさらに、印字された記録用紙にソート処理やステイプル処理を施して、外部に排出する排紙ユニット（部）１４とを有している。
【００２９】
図２はコントローラ１１０のハードウェアブロックの一例を示す図である。
【００３０】
メインコントローラ３２は、ＣＰＵ３３とバスコントローラ３４と後述する各種コントローラ回路を含む機能ブロックとを内蔵する。
【００３１】
メインコントローラ３２は、ＲＯＭＩ／Ｆ３５を介してＲＯＭ３６と接続し、ＤＲＡＭＩ／Ｆ３７を介してＤＲＡＭ３８と接続する。
【００３２】
メインコントローラ３２はさらに、コーデックＩ／Ｆ３９を介してコーデック４０と接続し、ネットワークＩ／Ｆ４１を介してネットワークコントローラ４２と接続する。
【００３３】
ＲＯＭ３６は、メインコントローラ３２のＣＰＵ３３で実行される各種制御プログラムや演算データを格納する。第１記憶装置の一例であり、主記憶装置であるＤＲＡＭ３８は、ＣＰＵ３３が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック４０はＤＲＡＭ３８に記憶されたラスターイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧなどの周知の圧縮方式で圧縮したり、圧縮されたデータをラスターイメージに伸長する。また、コーデック４０にはＳＲＡＭ４３が接続されており、ＳＲＡＭ４３は前記コーデック４０の一時的な作業領域として使用される。
【００３４】
ネットワークコントローラ４２は、ネットワークコネクタ４４を介してＬＡＮ４００と接続する。
【００３５】
また、メインコントローラ３２はスキャナバス４５を介してスキャナＩ／Ｆ４６に接続し、プリンタバス４７を介してプリンタＩ／Ｆ４８に接続する。さらに、メインコントローラ３２は、ＰＣＩバス等の汎用高速バス４９を介して拡張ボードを接続するための拡張コネクタ５０及び入出力制御部（Ｉ／Ｏ制御部）５１に接続する。
【００３６】
Ｉ／Ｏ制御部５１はリーダ部２やプリンタ部６との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ５２を２チャンネル装備している。
【００３７】
シリアル通信コントローラ５２はＩ／Ｏバス５３を介してスキャナＩ／Ｆ４６及びプリンタＩ／Ｆ４８に接続する。
【００３８】
スキャナＩ／Ｆ４８は、第一の調歩同期シリアルＩ／Ｆ５４及び第一のビデオＩ／Ｆ５５を介してスキャナコネクタ５６に接続され、さらにスキャナコネクタ５６はリーダ部２のスキャナユニット１１（図１）に接続されている。そして、スキャナＩ／Ｆ４６はスキャナ部１１から受信した画像データに対し所望の２値化処理や、主走査方向及び／又は副走査方向の変倍処理を行う。またスキャナ部１１から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス４５を介してメインコントローラ３２に転送する。
【００３９】
プリンタＩ／Ｆ４８は、第２の調歩同期シリアルＩ／Ｆ５７及び第２のビデオＩ／Ｆ５８を介してプリンタコネクタ５９に接続され、さらに該プリンタコネクタ５９はプリンタ部６のマーキングユニット１３（図１）に接続されている。そして、プリンタＩ／Ｆ４８はメインコントローラ３２から出力された画像データにスムージング処理などの画像処理を施して画像データをマーキングユニット１３に出力する。さらにマーキングユニット１３から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス４７に出力する。
【００４０】
ＣＰＵ３３は、ＲＯＭ３６からＲＯＭＩ／Ｆ３５を介して読み込んだプログラムを実行する。また、或いは、ＣＰＵ３３は、ハードディスク８または９に格納され、ＤＲＡＭ３８にロードされたプログラムを実行する。ＣＰＵ３３は後述するフローチャートを処理するためのプログラム実行の主体となる。例えば、ＣＰＵは、ホストコンピュータ３、４から受信したＰＤＬ（ページ記述言語）データを解釈し、ラスターイメージデータに展開処理を行う。
【００４１】
バスコントローラ３４は、スキャナＩ／Ｆ４６プリンタＩ／Ｆ４８、その他拡張コネクタ５０等に接続された外部機器から入出力されるデータの転送を制御するものであり、バス競合時のアービトレーション（調停）やＤＭＡデータ転送の制御を行う。即ち、例えば、ＤＲＡＭ３８とコーデック４０との間のデータ転送や、スキャナユニット１１からＤＲＡＭ３８へのデータ転送、ＤＲＡＭ３８からマーキングユニット１３へのデータ転送等は、バスコントローラ３４によって制御される。
【００４２】
Ｉ／Ｏ制御部５１は、ＬＣＤコントローラ６０及びキー入力Ｉ／Ｆ６１を介してパネルＩ／Ｆ６２と接続する。パネルＩ／Ｆ６２は操作部７（図１）に接続する。
【００４３】
また、Ｉ／Ｏ制御部５１は不揮発性メモリ領域としてのフラッシュメモリ６６に接続されている。またＩ／Ｏ制御部５１はＥ−ＩＤＥコネクタ６３を介して第２記憶装置の一例であるハードディスクドライブ（ＨＤＤ）８及び９に接続する。ＨＤＤ８、９には、ＣＰＵ３３が実行するプログラムや、画像データが記憶される二次記憶装置である。ＨＤＤ８、９に記憶されたプログラムはＤＲＡＭ３８にロードさ、ＣＰＵ３３はＤＲＡＭ３８にロードされたプログラムを実行する。本実施形態ではＨＤＤ８、９という２台のハードディスクドライブを備える構成をとっているが、この台数に限る必要は無い。また、複数台のハードディスクドライブによってＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を構成するようにしても良い。また、ＨＤＤ８または９を、他の不揮発性記憶装置に置き換えてもよい。例えばＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）などを用いてもよい。なお、本実施形態では、ＨＤＤ８或いは９よりも、ＤＲＡＭ３８の方がデータの読み出し、書き込みに必要な時間は短いものとする。
【００４４】
さらに、Ｉ／Ｏ制御部５１は、機器内で管理する日付と時刻を更新／保存するリアルタイムクロックモジュール６４に接続する。
【００４５】
尚、リアルタイムクロックモジュール６４はバックアップ用電池６５に接続し、バックアップ用電池６５によりバックアップされている。
【００４６】
次に図３を用いてメモリ制御に関わるプログラムのモジュール構成について説明する。
【００４７】
図３は、画像処理装置のメモリ制御に関するプログラムモジュールの一例を示す図である。
【００４８】
プロセス１００１、メモリ管理１００２、ログ解析１００４、ログ管理１００５はＲＯＭ３６もしくはＨＤＤ８、９にあらかじめ格納されたプログラムである。ＣＰＵ３３は、ＲＯＭ３６、或いはＨＤＤ８、９からプロセスの単位でＤＲＡＭ３８に読み込んだプログラムを実行する。
【００４９】
プロセス１００１は、画像処理装置を制御するために実行するプログラムの処理の単位である。プロセス１００１は実際には複数存在して、ＣＰＵ３３が複数のプロセスを実行することで、画像処理装置１が備える様々な機能（コピー、プリント、ＦＡＸ、スキャン、等）のジョブを制御することができる。
【００５０】
ＣＰＵ３３がプロセス１００１を実行するために作業用のメモリ領域が必要になるとＤＲＡＭ３８上の一部の領域を獲得する。以下、特に断りの無い限り、「メモリ領域」とはＤＲＡＭ３８上の記憶領域のことを指すものとする。ＣＰＵ３３は複数のプロセスを実行することができる。複数のプロセスがＤＲＡＭ３８上のメモリ領域を獲得することで、ＤＲＡＭ３８の空き領域が不足した場合、あるプロセスがＤＲＡＭ３８上に確保した領域内のデータをハードディスク８、９に一時待避することでＤＲＡＭ３８の空き領域を確保する。このように、実メモリ（ＤＲＡＭ３８）の容量を空けるためにあるメモリ領域のデータをハードディスクなどに書き出すことをスワップアウトという。一方、ハードディスクなどに書き出して退避したデータがプログラム処理の都合上必要となったときにＤＲＡＭ３８に書き戻すことをスワップインという。スワップアウト、スワップインによりＤＲＡＭ３８からＨＤＤへ退避したりＨＤＤからＤＲＡＭ３８へ書き戻すデータとしては、プログラムや、プログラムで用いられるデータが含まれる。
【００５１】
なお、本実施形態ではこれらプログラムが動作するためのオペレーティングシステム（ＯＳ）としてＬｉｎｕｘ（登録商標）を用いるものとするが、仮想メモリ管理システムを持つ他のマルチタスクＯＳでもよい。
【００５２】
本実施形態の画像処理装置のように多数の機能を有するシステムでは、モジュール間の境界としてプロセスを分ける事で、モジュールの堅牢性や再利用性を実現することが一般的に行われている。画像処理装置１は、プロセス分割を適切に行うことで、画像処理装置が持つ機能毎に対応したプロセスが存在することになる。ある機能を使用するジョブを実行する場合には、ＣＰＵ３３はその機能に対応したプロセスを実行する。プロセスの粒度を細分化した場合、複数のプロセスを組み合わせて単一の機能を実現する。
【００５３】
プロセス１００１はジョブを実行するたびにログ管理１００５へ通知する。
【００５４】
メモリ管理１００２はプロセス１００１へＤＲＡＭ３８上に確保可能なメモリ領域を提供する。
【００５５】
プロセス１００１は実行に必要なメモリ領域をメモリ管理１００２から獲得する。
【００５６】
メモリ管理１００２が提供するＤＲＡＭ３８上のメモリ領域は、スワップアウト禁止のメモリ領域と通常のメモリ領域との２種類がある。
【００５７】
本実施形態では、便宜上、スワップアウトを禁止したメモリ領域を高速メモリ領域、スワップアウトを禁止していない通常のメモリ領域を低速メモリ領域とする。高速メモリ領域はＨＤＤ８または９への退避制限がなされた領域となる。
【００５８】
メモリ管理１００２はＯＳが管理するメモリ領域を、プロセスがメモリ領域を獲得するためにＯＳ（Ｌｉｎｕｘ）が用意したｍｍａｐシステムコールなどにより低速メモリ領域を作成する。
【００５９】
メモリ管理１００２は通常に獲得したメモリ領域である低速メモリに対して、ＯＳにスワップ禁止領域であることを通知するための機能であるｍｌｏｃｋシステムコールを用いて当該領域にスワップ禁止属性を付加すると、スワップアウト禁止の高速メモリを作成する。
【００６０】
ＯＳはＤＲＡＭ３８に空き領域が無い（メモリ枯渇）を検知すると、メモリ領域の中からスワップアウトを実施するのに適したメモリ領域を検索する。スワップアウト禁止属性が設定された高速メモリはＯＳがスワップ対象メモリ領域を検索する時にスワップ対象から除外されるため、スワップアウトされることはない。一方、スワップアウト禁止属性を設定しない通常の低速メモリは、ＯＳがスワップ対象を検索する時に対象になるため、ＯＳの判断でスワップアウトされる場合がある。高速メモリと低速メモリのサイズ配分はシステム設計段階で一意に定める事ができないため、メモリ管理１００２は要求に応じて高速メモリを作り出しプロセス１００１に提供する。
【００６１】
メモリ管理１００２は前記２種類のメモリ領域を、高頻度プロセスリスト１００３に基づいて動的に設定する。
【００６２】
メモリ管理１００２は獲得元のプロセス名を確認する事で高頻度プロセスか否かを判断する。実際には、メモリ管理１００２は、ライブラリプログラムとしてプロセス１００１に内包された形で動作するため、メモリ管理１００２は自分のプロセス名をＯＳに問い合わせる事でメモリ領域要求元のプロセス名を特定する。
【００６３】
高頻度プロセスリスト１００３はログ解析１００４により高頻度に実行されるプロセスであると特定されたプロセスを登録するリストであり、具体例を図７に示す。高頻度プロセスリスト１００３は画像処理装置１のＨＤＤ８または９、或いはフラッシュメモリ６６のいずれかに記憶される。
【００６４】
図７の高頻度プロセスリストには、高頻度に実行されるプロセス名がリストされる。実際にはプロセス名の文字列の配列として表現される。高頻度プロセスリスト１００３の管理方法としては更新のたびに古いものを破棄する方法と、更新の時に古い高頻度プロセスを残す方法が有り、ユーザや管理者が指定可能である。
【００６５】
古いものを破棄する構成ではログの解析を実施するたびに、その時点での高頻度プロセスで高頻度プロセスリスト１００３を上書きする。この場合は、ユーザの使用状況の変動に即座に対応してメモリ管理を実現できる反面、変則的な突発作業があった場合に一時的に効率の悪いメモリ管理をしてしまう可能性がある。一方、古いものを残す構成では高頻度プロセスリスト１００３への登録を世代管理しておいて、登録の処理では新規の高頻度プロセスと１世代前の登録分を合わせたものを高頻度プロセスリスト１００３へ登録する。
【００６６】
ログ解析１００４はジョブログ１００６の解析とジョブプロセステーブル１００７の確認をする事で高頻度プロセスを特定し、高頻度プロセスリスト１００３へ登録する。
【００６７】
使用状況を反映した高頻度プロセスはユーザの使用状況に応じて構成されるが、未使用のシステムに対しては使用履歴が存在しない。この時点での使用に備えて、設計時に選択されたプロセスを高頻度プロセスリストとして作成しておくようにしてもよい。ログ解析１００４は予め定められたタイミング、或いは画像処理装置のユーザや管理者が任意に設定したタイミングで実施される。設定としては毎ジョブ実行後、指定時刻が選択可能である。
【００６８】
毎ジョブ実行後に解析を実施すると、ユーザは常に最新の使用状況を反映したメモリ制御が実施された環境で動作できる。
【００６９】
一方で、別の通常ジョブの実行と同時に解析が行われる可能性が高いため、通常ジョブの実行速度が低下してしまうことがある。
【００７０】
指定時刻に解析を実施すると、ユーザは通常ジョブの実行の妨げにならない時間帯を指定する事ができるため、通常ジョブの実行速度を低下させる事なく機能を使用する事ができる。
【００７１】
一方で、例えば解析を夜間実行した場合などでは、ユーザが使用状況に最適化されたメモリ制御が実施された環境で動作できるのは、翌日以降となる。例えば、日単位で業務プロセスが変動する環境では適切にスループットを改善できない可能性がある。
【００７２】
ログ管理１００５はプロセス１００１からの通知によりジョブが実行された事をジョブログ１００６に記録する。
【００７３】
ジョブログ１００６はログ管理１００５から登録されたジョブ実行履歴を記録する図８に示すようなリストである。ジョブログ１００６は画像処理装置１のＨＤＤ８または９、或いはフラッシュメモリ６６のいずれかに記憶される。実際にはジョブ名の文字列の配列として表現される。
【００７４】
ジョブログ１００６は、一般的なジョブ履歴としての機能を果たすための付加的な情報を含んでいてもかまわないが、本実施形態では使用しないものとする。付加的な情報は例えば、ジョブ実行時刻などが含まれる。
【００７５】
ジョブプロセステーブル１００７はジョブの種類（画像処理装置１の備える機能の種類）とプロセスの対応関係を保持する図９に示すようなテーブルである。ジョブプロセステーブル１００７は画像処理装置１のＨＤＤ８または９、或いはフラッシュメモリ６６のいずれかに記憶される。ジョブプロセステーブルは、画像処理装置１の持つ機能とプロセスとを対応付けたジョブプロセス情報の一例である。１つのジョブは複数のプロセスが連携し合うことにより実行される。ジョブプロセステーブル１００７はシステムのモジュール構造を設計する際に一意に求まるため、設計時に作成してシステム内に静的な情報として保持される。
【００７６】
ログ解析１００４はジョブログ１００６を参照して、高頻度に実行されるジョブの種類を特定することができる。そして、ジョブプロセステーブル１００７を参照して高頻度に実行されるジョブの実行に必要なプロセスを特定することができ、これを高頻度に実行されるプロセスとして特定し、高頻度プロセスリスト１００３へ登録する。高頻度プロセスリスト１００３はプロセスの実行頻度を示す情報となる。
【００７７】
次に、画像処理装置がジョブを実行するために起動されたプロセス１００１がメモリ領域を獲得する処理について説明する。
【００７８】
図４は、画像処理装置１のＣＰＵ３３が実行するプロセスのメモリ領域獲得処理の一例を示すフローチャートである。本フローチャートは画像処理装置１のＣＰＵ３３が実行する。
【００７９】
ステップ２００１で本フローチャートを開始する。メモリ領域の獲得はプロセスやジョブが動作する任意のタイミングで起こりえるため、本フローチャートはプロセスが起動している任意のタイミングで開始する。
【００８０】
プロセス１００１がメモリ管理１００２にメモリ領域を要求する（ステップ２００２）。
【００８１】
ステップ２００３で、メモリ領域を要求されたメモリ管理１００２は、要求元プロセスのプロセス名を取得する。プロセス名は文字列形式のデータとして取得する。
【００８２】
ステップ２００４で、メモリ管理１００２は高頻度プロセスリスト１００３を読み込む。高頻度プロセスリスト１００３は文字列データの配列である。
【００８３】
ステップ２００５で、メモリ管理１００２は、ステップ２００２でメモリ領域を要求したプロセス１００１が高頻度プロセスであるか否かを判断する。具体的には、ステップ２００２でメモリ領域を要求したプロセス１００１がステップ２００３で取得した高頻度プロセスリストに登録されていれば当該プロセスは高頻度プロセスであると判断し、そうでなければ高頻度プロセスではないと判断する。実際にはステップ２００３で得られた文字列と一致するものが、ステップ２００４で得られた配列に存在するか確認する処理となる。
【００８４】
ステップ２００５で、ステップ２００２でメモリ領域を要求したプロセス１００１が高頻度プロセスであると判断した場合はステップ２００６へ進む。
【００８５】
ステップ２００６で、メモリ管理１００２は高速メモリを割り当て、メモリ領域を要求したプロセス１００１へ割り当てたメモリ領域を提供する。
【００８６】
一方、ステップ２００５で、ステップ２００２でメモリ領域を要求したプロセス１００１が高頻度プロセスでないと判断した場合はステップ２００９へ進む。
【００８７】
ステップ２００９、メモリ管理１００２は低速メモリを割り当て、メモリ領域を要求したプロセス１００１へ割り当てたメモリ領域を提供する。
【００８８】
ステップ２００７で、プロセス１００１はメモリ管理１００２から提供されたメモリ領域を獲得する。
【００８９】
ステップ２００８でプロセス１００１はメモリ領域獲得に成功している事を条件にメモリ領域獲得フローを終了する。
【００９０】
これでプロセス１００１はＤＲＡＭ３８上に領域を確保することができ、ＣＰＵ３３はプロセス１００１を実行することができる。
【００９１】
そして、プロセス１００１は獲得するメモリ領域がスワップ禁止か否かにより処理を切り替える必要はなく、状況に応じて自動的に設定されたメモリ領域を使用する事ができる。
【００９２】
次に、画像処理装置のジョブの実行に伴いＣＰＵ３３が実行したプロセス１００１がジョブログを作成する処理について説明する。
【００９３】
図５は、画像処理装置１のＣＰＵ３３が実行するプロセスがログを作成する処理の一例を示すフローチャートである。本フローチャートはＣＰＵ３３が実行する。
ステップ３００１で本フローチャートを実行開始する。ジョブの実行は任意のタイミングで起こりえるため、ジョブの実行に伴い起動するプロセスも任意のタイミングで実行することになり、ログ作成処理のフローも任意のタイミングで実行することになる。
【００９４】
ステップ３００２でプロセス１００１はジョブの実行を終了する。
【００９５】
ステップ３００３でプロセス１００１はジョブの終了をログ管理１００５へ通知する。実際にはジョブの処理の最後でログ管理１００５へ通知する処理を実施することで、どのジョブが実行されたかを識別して通知する事ができる。
【００９６】
ステップ３００４で、ログ管理１００５はプロセス１００１から通知されたジョブ終了の通知に基づいて、画像処理装置１が実行したジョブのログ（履歴）をジョブログ１００６へ履歴記録する。ジョブログ１００６が記録するジョブログは図８に示すような情報であり、ジョブログはＨＤＤ８または９に記録される。
【００９７】
ステップ３００５でジョブのログを記録できていることを条件に本フローを終了する。
【００９８】
次に、ログ解析１００４が高頻度プロセスリストを作成する処理であるログ解析処理について説明する。
【００９９】
図６は、本実施形態の画像処理装置における高頻度プロセスリスト作成処理の一例を示すフローチャートである。本フローチャートはＣＰＵ３３が実行する。
【０１００】
ステップ４００１で本フローチャートを開始する。本フローチャートは予め設定されたタイミングで開始する。例えば、所定時間おきや、所定回数ジョブを実行した後などが考えられる。これらタイミングは画像処理装置１のユーザや管理者が設定するものとし、設定内容はＨＤＤ８または９、或いはフラッシュメモリ６６に記憶されているものとする。或いは、予め設定されたタイミング以外に、操作部７を介してユーザや管理者から受け付けた指示に基づいて本フローチャートを実行開始するようにしてもよい。
【０１０１】
ステップ４００２でログ解析１００４はジョブログ１００６の解析処理を開始する。
【０１０２】
ステップ４００３でログ解析１００４はジョブログ１００６を読み込む。
【０１０３】
ステップ４００４でログ解析１００４は読み込んだジョブログ１００６を集計して、実行の頻度が高いジョブの種類を特定する。実際にはジョブログ１００６にはジョブの種類を示すジョブ名名の文字列が格納されていて、全てのジョブ名のジョブログ１００６での出現回数を数える事でジョブログの集計を行う。そして、ジョブログの集計結果から高頻度ジョブを特定する。高頻度ジョブの特定の仕方としては、例えば、ジョブログの集計結果のうち、所定数以上の出現回数であるジョブを高頻度ジョブとする。また、或いはジョブログの集計結果のうち、最上位、あるいは所定順位以上のジョブを高頻度ジョブとする。
【０１０４】
そして、ステップ４００５で、ログ解析１００４はジョブプロセステーブル１００７を読み込む。そして、ステップ４００６に進み、ログ解析１００４は高頻度ジョブに対応するプロセスを特定して高頻度プロセスと判断する。実際にはステップ４００４で特定した高頻度ジョブのジョブ名をステップ４００５で読み込んだジョブプロセステーブル１００７の中から探し、対応する一つ以上のプロセス名を取得する処理を行う。そして、ステップ４００７へ進み、ログ解析１００４はステップ４００６で特定した高頻度プロセスを高頻度プロセスリスト１００３へ登録する。実際にはステップ４００６で特定した一つ以上のプロセス名で高頻度プロセスリスト１００３を上書きする。
【０１０５】
図７は高頻度プロセスリスト１００３の一例を示したものである。高頻度プロセスリスト１００３ではシステム内で一意なプロセス名が文字列データとしてリスト形式で表現される。
【０１０６】
図８は本実施形態におけるジョブログの一例を示したものである。
【０１０７】
ジョブログ１００６には、画像処理装置１内でジョブの種類を一意に特定するジョブ名と、該当ジョブが実行された時刻がそれぞれ文字列としてリスト形式で表現される。図８の例では、コピージョブ（ｃｏｐｙ）８０２、８０８と、ファクシミリ送信ジョブ（ｆａｘ＿ｔｘ）８０４と、プリントジョブ（ｐｄｌ）８０６とがジョブログとして記録されている。もちろん、画像処理装置１が他の種類のジョブを実行すれば、図８に示した以外の種類のジョブ名がジョブログ１００６に記録される。
【０１０８】
図９は本実施形態におけるジョブプロセステーブルの一例を示したものである。
【０１０９】
ジョブプロセステーブル１００７には、画像処理装置１内でジョブの種類を一意に特定するジョブ名と、ジョブ名で特定されるジョブを実行するために必要となる、画像処理装置１内で一意なプロセス名の対応関係がそれぞれ文字列として表形式で表現される。図９の例では、ジョブ名としてコピージョブ（ｃｏｐｙ）、プリントジョブ（ｐｄｌ）が登録されており、例えば、コピージョブに対応するプロセス名としては、ｓｃａｎ  ｐｒｏｃｅｓｓ、ｐｒｉｎｔ  ｐｒｏｃｅｓｓ、ｉｍａｇｉｎｇ  ｐｒｏｃｅｓｓの３つのプロセスが記録されている。なお、図９では図示していないが、ジョブプロセステーブル１００７には、コピージョブ、プリントジョブ以外にも、画像処理装置１が実行可能な種類のジョブの各々について、ジョブとプロセスとの対応関係を記録している。
【０１１０】
以上、本実施形態によれば、画像処理装置１が実行したジョブの種類毎の頻度によって、高頻度に実行するプロセスを特定し、該特定したプロセスに対しては高速メモリ領域を提供する。これにより、当該プロセスがスワップアウトすることを防止することができるので画像処理装置１のスループットの低下を防止することができる。そして、画像処理装置１の使用状況によって実行するジョブの種類毎の頻度に変化が生じた場合でも、それに応じて高頻度プロセスを適宜特定することができ、高速メモリ領域を提供する対象となるプロセスを動的に変更することができる。これにより、ユーザは使用状況に応じて最適化されたメモリ管理機能のもと、最適なスループットで画像処理装置１の機能を使用する事ができる。
【０１１１】
＜第２の実施形態＞
第１の実施形態では画像処理装置が実行したジョブの種類毎の実行頻度によって高頻度プロセスを特定する構成を説明した。
【０１１２】
オフィス内において、画像処理装置は複数のユーザによって共同で使用されることが多い。しかし、画像処理装置が提供する複数の機能（ジョブの種類）のうち、どの機能が頻繁に用いられるかはユーザによって異なることが多い。それは、担当する業務の内容がユーザ毎に異なるので、ユーザが画像処理装置に対して求める機能もユーザ毎に異なるからである。
【０１１３】
第２の実施形態では、画像処理装置を共有使用する複数のユーザ間で業務が異なる場合にユーザ毎に高頻度プロセスを最適化する構成を説明する。
【０１１４】
第２の実施形態において、画像処理装置１のハード構成、メモリ管理に関するプログラム構成は、少なくとも図１、図２に示したものと同一の構成を備えているものとする。図１、図２に無い構成を第２の実施形態の画像処理装置１が備えている場合にはその都度説明する。
【０１１５】
ユーザは、操作部７を操作してユーザ情報（例えば、ユーザＩＤとパスワード）を入力する。画像処理装置１は、パネルＩ／Ｆ６２を介してユーザ情報を受け付け、ＣＰＵ３３がユーザ情報をチェックするログイン処理（ユーザ認証処理）を実行した上で、複合機の機能を使用する。なお、画像処理装置１がログイン処理を行う場合には、画像処理装置１の外部のディレクトリサーバ（不図示）へ問い合わせを行い、ディレクトリサーバでの認証結果を受信するようにしてもよい。また、ユーザがユーザ情報を操作部７を用いて入力する代わりに、Ｉ／Ｏ制御部５１に接続されるＩＣカードリーダ（不図示）にユーザ情報が記録されたＩＣカードを読み取らせるようにしてもよい。
【０１１６】
ログイン情報はジョブを表現するデータに含まれるため、ログイン後は処理の任意のステップでログイン情報を参照する事ができる。
【０１１７】
プロセス１００１は実行するジョブがどのユーザにより実行されたのか、ログイン情報を参照する事で識別できる。
【０１１８】
図１０は第２の実施形態における画像処理装置のメモリ制御に関するプログラムモジュールの一例を示す図である。なお、図１０において、図３と同一の構成については図３と同一の符号を付し、説明を省略する。
【０１１９】
図１０において、図３と異なる部分は、ジョブログ１００６の代わりにユーザ毎ジョブログ１１０２を備えている点である。ユーザ毎ジョブログ１１０２は、画像処理装置１にログインしたユーザ毎にジョブログを管理している。
【０１２０】
そして、図１０において、図３の高頻度プロセスリスト１００３の代わりにユーザ毎高頻度プロセスリスト１１００を備えている。ユーザ毎高頻度プロセスリスト１１００は、ログ解析１００４がユーザ毎ジョブログ１１０２を解析した結果として、高い頻度で実行するプロセスである高頻度プロセスを、ユーザ毎に管理している。
【０１２１】
画像処理装置１に新たにユーザがログインすると、当該ユーザ用のジョブログがユーザ毎ジョブログ１１０２に新規に追加され、当該ユーザ用の高頻度プロセスリストがユーザ毎高頻度プロセスリスト１１００に新規に追加される。
【０１２２】
ログインによりＣＰＵ３３によりユーザ情報が識別されたジョブの実行履歴（ログ）がユーザ毎に管理されたユーザ毎ジョブログ１１０２に記録され、ユーザ毎ジョブログ１１０２を解析した結果がユーザ毎高頻度プロセスリスト１１００に記録される。
【０１２３】
プロセス起動時のメモリ領域の割り当てを行う際に使われる高頻度プロセスリストは、ユーザ毎高頻度プロセスリスト１１００のうち、そのプロセスを起動するタイミングでログインしているユーザの高頻度プロセスリストであり、これを有効高頻度プロセスリストとする。
【０１２４】
第２の実施形態における、画像処理装置のＣＰＵが実行するプロセスのメモリ領域獲得処理について説明する。
【０１２５】
第２の実施形態におけるメモリ領域獲得処理は、第１の実施形態における図４のフローチャートの処理とほぼ同様であるが、図４のフローチャートとの違いを説明する。
【０１２６】
即ち、第２の実施形態では、ステップ２００４でメモリ管理１００２はプロセスを起動してメモリ領域を獲得する際にログインしているユーザに対応した高頻度プロセスリストである有効高頻度プロセスリストを読み込む。これにより、ログインしているユーザ特有の画像処理装置１の使用スタイルに適合した高頻度プロセスを特定することができ、当該プロセスに対してメモリ管理１００２は高速メモリを割り当てることができる。
【０１２７】
次に、第２の実施形態における、画像処理装置のジョブログ作成処理について説明する。
【０１２８】
第２の実施形態におけるジョブログ作成処理は、第１の実施形態における図５のフローチャートの処理とほぼ同様であるが、図５のフローチャートとの違いを説明する。
【０１２９】
第２の実施形態では、ステップ３００３でプロセス１００１はログ管理１００５へジョブの終了を通知するとともに、どのユーザが実行したジョブであったのか、即ち、ジョブを実行した時点で画像処理装置１にログインしていたユーザのユーザ情報を通知する。
【０１３０】
そして、ステップ３００４でログ管理１００５は通知されたジョブの終了ログを、ユーザ毎ジョブログ１１０２中の通知されたユーザ情報に対応するユーザのジョブログへ記録する。
【０１３１】
次に図１１のフローチャートを用いて、ユーザがログインした時に有効高頻度プロセスリストを更新するフローを説明する。図１１のフローチャートの各ステップは画像処理装置１のＣＰＵ３３が実行する。
【０１３２】
ステップ５００１で処理が開始する。
【０１３３】
ステップ５００２において、ユーザからのログインのための操作を受け付け、ユーザ情報を特定し、ログイン処理を行う。ログイン処理は画像処理装置１が稼働中の任意のタイミングで実行する。
【０１３４】
ステップ５００３でユーザ毎高頻度プロセスリスト１１００のうち、ログインしたユーザに対応した高頻度プロセスリストを特定する。
【０１３５】
ステップ５００４で、ステップ５００３で特定された高頻度プロセスリストを有効高頻度プロセスリストとして定義する。
【０１３６】
ステップ５００５で、有効高頻度プロセスリストを更新した事を条件に有効高頻度プロセスリストを更新するフローは終了する。
【０１３７】
図１１のフローチャートを実行することによって、ログインしたユーザに適した有効高頻度プロセスリストを特定することができる。そして、メモリ管理１００２が有効高頻度プロセスリストを参照して高頻度プロセスを特定し、当該高頻度プロセスをスワップアウトさせないメモリ領域（高速メモリ領域）に割り当てることができる。これにより、画像処理装置１はログインしたユーザに最適化したメモリ管理機能のもと、最適なスループットでジョブを実行することができる。
【０１３８】
＜他の実施形態＞
本発明は、前述した実施形態の各機能を実現するための制御プログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータや画像処理装置が該供給されたプログラムコードを読み出して実行することによっても達成される。
【０１３９】
従って、本発明の機能・処理をコンピュータや上述の装置で実現するために、該コンピュータや上述の装置にインストールされる制御プログラムのプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するための制御プログラム自体も本発明の一つである。
【０１４０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１４１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）、ＵＳＢメモリなどもある。
【０１４２】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネット／イントラネットのウェブサイトからダウンロードしてもよい。すなわち、該ウェブサイトから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるウェブサイトからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるサーバも、本発明の構成要件となる場合がある。
【０１４３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネット／イントラネットを介してウェブサイトから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【０１４４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【０１４５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【０１４６】
【図１】画像処理装置の概略構成の一例を示す図である。
【図２】画像処理装置のコントローラ部のハードウェアブロックの一例を示す図である。
【図３】画像処理装置のメモリ制御に関するプログラムモジュールの一例を示す図である。
【図４】画像処理装置のＣＰＵが実行するプロセスのメモリ領域獲得処理の一例を示すフローチャートである。
【図５】画像処理装置のＣＰＵが実行するプロセスがログを作成する処理の一例を示すフローチャートである。
【図６】画像処理装置における高頻度プロセスリスト作成処理の一例を示すフローチャートである。
【図７】高頻度プロセスリストの一例を示す図である。
【図８】ジョブログの一例を示す図である。
【図９】ジョブプロセステーブルの一例を示す図である。
【図１０】第２の実施形態における画像処理装置のメモリ制御に関するプログラムモジュールの一例を示す図である。
【図１１】有効高頻度プロセスリストを更新する処理を示すフローチャートである。
【符号の説明】
【０１４７】
１  画像処理装置
８  ＨＤＤ
９  ＨＤＤ
３３  ＣＰＵ
３８  ＤＲＡＭ
１００１  プロセス
１００２  メモリ管理モジュール
１００３  高頻度プロセスリスト
１００４  ログ解析モジュール
１００５  ログ管理モジュール
１００６  ジョブログ
１００７  ジョブプロセステーブル
【図１】
2010003076.tif 000003
【図２】
2010003076.tif 000004
【図３】
2010003076.tif 000005
【図４】
2010003076.tif 000006
【図５】
2010003076.tif 000007
【図６】
2010003076.tif 000008
【図７】
2010003076.tif 000009
【図８】
2010003076.tif 000010
【図９】
2010003076.tif 000011
【図１０】
2010003076.tif 000012
【図１１】
2010003076.tif 000013