(57)【要約】【課題】キャッシュ機能によってＲＡＭに確保される記憶領域の容量を適切に制限する情報処理装置及びその制御方法、並びにプログラムを提供する。【解決手段】本実施形態に係る情報処理装置は、ＲＡＭの記憶領域に、各プロセスによって使用されるユーザ領域と、当該プロセスによってＨＤＤへ格納されるデータを一時的に記憶するキャッシュ領域とを含む。また、プロセスによってＨＤＤへデータを格納することが要求されると、当該データを一時的にＲＡＭのキャッシュ領域に記憶するために、ユーザ領域からキャッシュ領域へ配分される領域の容量を制限する閾値を設定する。さらに、当該データの容量が、閾値を超えない場合には、当該データをキャッシュ領域に格納し、ＨＤＤへ格納する一方で、閾値を超える場合には、当該データをキャッシュ領域に格納せずに、直接ＨＤＤへ格納する。【選択図】図１
2011039849.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶手段と、プログラムの実行単位であるプロセスによって使用されるユーザ領域及び該プロセスによって前記不揮発性記憶手段へ格納されるデータを一時的に記憶するキャッシュ領域を含む主記憶手段と、前記ユーザ領域における使用可能な領域が不足すると、該ユーザ領域の記憶内容の一部を前記不揮発性記憶手段へ一時的に退避させる退避手段とを備える情報処理装置であって、
前記プロセスによって、データを前記不揮発性記憶手段へ格納することが要求されると、前記ユーザ領域から前記キャッシュ領域へ配分される空き領域の容量を制限するための閾値を設定する閾値設定手段と、
前記データの容量が、設定された前記閾値を超えるか否かを判定する判定手段と、
前記データの容量が前記閾値を超えない場合、前記キャッシュ領域に前記データを格納するとともに、該データを前記不揮発性記憶手段へ格納し、
前記データの容量が前記閾値を超える場合、前記退避手段によって前記ユーザ領域の記憶内容が退避されることを防止するために、前記データを前記キャッシュ領域に格納せずに前記不揮発性記憶手段へ直接格納する格納制御手段と
をさらに備えることを特徴とする情報処理装置。
【請求項２】
前記格納制御手段は、
前記データの容量が前記閾値を超えない場合、前記キャッシュ領域に前記データを格納し、他の処理が実行されていない期間に、該キャッシュ領域に格納した該データを前記不揮発性記憶手段へ格納することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ユーザ領域において前記プロセスが使用する領域の記憶内容が、前記退避手段によって退避されることを防止する優先度を、該プロセスに対して設定する優先度設定手段をさらに備え、
前記閾値設定手段は、
前記優先度が高いほど、前記プロセスが使用する領域の記憶内容が前記退避手段によって退避されることを防止するように、前記閾値を設定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記優先度設定手段は、前記プロセスで実行される機能に応じて前記優先度を設定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記優先度設定手段は、前記情報処理装置の動作状況に応じて前記優先度を設定することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記閾値設定手段は、
前記ユーザ領域から前記キャッシュ領域へ空き領域が配分されることによって該ユーザ領域における使用可能な領域が不足することを防止するように、該ユーザ領域における空き領域の容量に基づいて前記閾値を設定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項７】
前記閾値設定手段は、
前記ユーザ領域における空き領域の容量から、前記プロセスが前記データを処理するために必要とする領域の容量を減算した値を、前記閾値に設定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記プロセスが前記データを処理するために必要とする領域の容量は、該プロセスの動作履歴に基づいて、該プロセスが平均的に使用する容量として推定されることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
不揮発性記憶手段と、プログラムの実行単位であるプロセスによって使用されるユーザ領域及び該プロセスによって前記不揮発性記憶手段へ格納されるデータを一時的に記憶するキャッシュ領域を含む主記憶手段と、前記ユーザ領域における使用可能な領域が不足すると、該ユーザ領域の記憶内容の一部を前記不揮発性記憶手段へ一時的に退避させる退避手段とを備える情報処理装置の制御方法であって、
閾値設定手段が、前記プロセスによって、データを前記不揮発性記憶手段へ格納することが要求されると、前記ユーザ領域から前記キャッシュ領域へ配分される空き領域の容量を制限するための閾値を設定する閾値設定ステップと、
判定手段が、前記データの容量が、設定された前記閾値を超えるか否かを判定する判定ステップと、
格納制御手段が、前記データの容量が前記閾値を超えない場合、前記キャッシュ領域に前記データを格納するとともに、該データを前記不揮発性記憶手段へ格納し、
前記データの容量が前記閾値を超える場合、前記退避手段によって前記ユーザ領域の記憶内容が退避されることを防止するために、前記データを前記キャッシュ領域に格納せずに前記不揮発性記憶手段へ直接格納する格納制御ステップと
を実行することを特徴とする情報処理装置の制御方法。
【請求項１０】
請求項９に記載の情報処理装置の制御方法における各ステップを、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年、情報処理装置では、主記憶メモリ（ＲＡＭ）の記憶領域に加えて、ハードディスクドライブ（ＨＤＤ）の記憶領域をＯＳのワークメモリとして使用可能とする仮想メモリ機能を含むＯＳを備えたものが知られている。このような情報処理装置では、プロセスの実行のために使用可能なＲＡＭの容量が不足すると、ＲＡＭの記憶内容の一部をＨＤＤへ退避させるスワップと呼ばれる動作を実行することによって、ＲＡＭに空き領域を確保する。この仮想メモリ機能によれば、情報処理装置は、搭載されたＲＡＭの容量よりも大きなメモリ空間を使用することが可能となる。
【０００３】
仮想メモリ機能を備える情報処理装置において、例えば、プロセスの動作状況に応じて仮想メモリ機能を使用するものが知られている（例えば、特許文献１）。具体的には、動作を休止中のプロセスに割り当てられているＲＡＭの領域の記憶内容を、一時的にＨＤＤへ退避させる。これにより、ＲＡＭに空き領域を確保するとともに、動作中のプロセスに対して当該領域を割り当てる。また、ＨＤＤへスワップされたプロセスを再び実行する場合には、ＲＡＭの領域を当該プロセスに再び割り当てて、ＨＤＤへ退避された記憶内容をＲＡＭに戻すことにより、当該プロセスの実行を再開する。このようなＲＡＭとＨＤＤとの間のデータの移動には一定の時間を要するため、スワップ動作が頻発すると情報処理装置の動作速度が低下してしまう。このため、情報処理装置においては、十分な容量のＲＡＭが搭載され、スワップの実行が可能な限り回避されることが望ましい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２０５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のような従来の情報処理装置が、ＨＤＤへデータを書き込む際に、ＲＡＭの一部の領域に当該データを一時的に格納するキャッシュ機能を有する場合、以下のような問題がある。例えば、情報処理装置が十分な容量のＲＡＭを搭載していたとしても、ＨＤＤへ大量のデータを格納するような場合、キャッシュ機能によってデータを格納するためのＲＡＭ上の領域が、データの容量に応じて際限なく確保されてしまうことがある。その場合に確保される領域は、ＲＡＭ上でプロセスによって使用されている領域から配分される。このため、プロセスによって使用されるＲＡＭの領域が不足し、その記憶内容がＨＤＤへ退避されてしまい、情報処理装置の動作速度が低下してしまうという問題がある。
【０００６】
本発明は、上述の問題に鑑みてなされたものであり、キャッシュ機能によってＲＡＭに確保される記憶領域の容量を適切に制限する情報処理装置及びその制御方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、例えば、情報処理装置として実現できる。情報処理装置は、不揮発性記憶手段と、プログラムの実行単位であるプロセスによって使用されるユーザ領域及びプロセスによって不揮発性記憶手段へ格納されるデータを一時的に記憶するキャッシュ領域を含む主記憶手段と、ユーザ領域における使用可能な領域が不足すると、ユーザ領域の記憶内容の一部を不揮発性記憶手段へ一時的に退避させる退避手段とを備える情報処理装置であって、プロセスによって、データを不揮発性記憶手段へ格納することが要求されると、ユーザ領域からキャッシュ領域へ配分される空き領域の容量を制限するための閾値を設定する閾値設定手段と、データの容量が、設定された閾値を超えるか否かを判定する判定手段と、データの容量が閾値を超えない場合、キャッシュ領域にデータを格納するとともに、データを不揮発性記憶手段へ格納し、データの容量が閾値を超える場合、退避手段によってユーザ領域の記憶内容が退避されることを防止するために、データをキャッシュ領域に格納せずに不揮発性記憶手段へ直接格納する格納制御手段とをさらに備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、例えば、キャッシュ機能によってＲＡＭに確保される記憶領域の容量を適切に制限する情報処理装置を提供できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る画像形成装置におけるＯＳによるメモリの使用の一例を示す図である。
【図２】本発明の実施形態に係る画像形成装置のブロック構成の一例を示す図である。
【図３】本発明の実施形態に係るＨＤＤ２４０へのデータの格納方法の概念を示す図である。
【図４】本発明の実施形態に係るキャッシュ領域の容量を制限するための閾値の設定処理及び判定処理の概念を示す図である。
【図５】本発明の実施形態に係る画像形成装置におけるＨＤＤ３００へデータを格納する処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に本発明の一実施形態を示す。以下で説明される実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の実施形態によって限定されるわけではない。
【００１１】
＜画像形成装置の構成＞
まず、図２を参照して、画像形成装置（情報処理装置）２００の構成例について説明する。システム制御部２１０は、画像形成装置２００のコントローラ機能を有する。また、システム制御部２１０は、操作部２３１、スキャナ部２３２、及びプリンタ部２３３と電気的に接続される。また、システム制御部２１０は、ネットワークＩ／Ｆ２０６を介して外部のＬＡＮと接続される。このため、システム制御部２１０は、ＬＡＮに接続されたＰＣ等の外部装置との間で相互に通信が可能であり、ＬＡＮを介して画像データやデバイス情報を送受信できる。
【００１２】
ＣＰＵ２０１は、ＲＯＭ２０３に記憶された制御プログラム等に基づいて、システム制御部２１０に接続された各デバイスとの間のアクセスを制御するとともに、システム制御部２１０内部で実行される各種の処理を制御する。ＲＡＭ２０２（メインメモリ）は、主記憶手段の一例であって、ＣＰＵ２０１が動作するためのシステムワークメモリとして機能するとともに、画像データを一時的に記憶するためのメモリとしても機能する。また、ＲＡＭ２０２は、電源ＯＦＦ後において記憶内容を保持し続けるＳＲＡＭと、電源ＯＦＦ後において記憶内容が消去されるＤＲＡＭとを備える。ＲＯＭ２０３には、画像形成装置のブートプログラムが格納される。
【００１３】
ハードディスク（ＨＤＤ）コントローラ２０７には、ハードディスク（ＨＤＤ）ユニット２３０が接続される。当該ＨＤＤユニット２３０内のハードディスク（ＨＤＤ）２４０は、不揮発性記憶手段の一例であり、システムソフトウェアや画像データが格納され得る。操作部Ｉ／Ｆ２０５は、システムバス２０４と操作部２３１とを接続するインタフェース部である。操作部２３１は、操作部Ｉ／Ｆ２０５を介して入力される画像データを表示する表示部を備える。また、当該表示部上には、タッチパネルが設けられており、ユーザは、当該タッチパネルを介して、表示部の画面表示に従って画像形成装置２００に対する指示を入力できる。操作部Ｉ／Ｆ２０５は、操作部２３１に表示される画像データがシステムバス２０４から入力されると、当該画像データを操作部２３１へ出力する。また、操作部Ｉ／Ｆ２０５は、操作部２３１から入力された情報を、システムバス２０４へと出力する。ネットワークＩ／Ｆ２０６は、システムバス２０４とＬＡＮとを接続するインタフェース部である。
【００１４】
画像バス２２０は、接続されたデバイス間で画像データを送受信するための伝送路であり、ＰＣＩバスが使用される。スキャナ画像処理部２１２は、スキャナ部２３２からスキャナＩ／Ｆ２１１を介して受信した画像データに対して、補正、加工及び編集を行う。なお、スキャナ画像処理部２１２は、受信した画像データがカラー原稿と白黒原稿の何れか、及び文字原稿と写真原稿の何れか等を判定する。さらに、当該判定結果を画像データに付加する。ここで、当該情報は一般に像域データと称される。圧縮部２１３は、スキャナ画像処理部２１２から画像データを受信するとともに、当該画像データを３２画素×３２画素のブロック単位に分割する。
【００１５】
画像形成装置２００において、オペレーティングシステム（ＯＳ）は、予めＨＤＤ２４０等に格納されている。画像形成装置２００が電源ＯＦＦの状態から電源が起動した状態へ移行すると、ＣＰＵ２０１は、ＲＡＭ２０２にＯＳを読み出して、その実行を開始する。ＯＳは、例えばマルチタスクＯＳであり、ＣＰＵ２０１は、当該ＯＳの機能に従って、多数のプロセスの処理を短い時間単位で切り替えながら実行する。これにより、ユーザからは複数のプロセスが同時に実行されているように見える。ここで、プロセスとは、ＣＰＵ２０１によって実行されるプログラムの実行単位を表す。各プロセスは、ＯＳの機能によって、ＲＡＭ２０２の記憶領域の一部が割り当てられるとともに、割り当てられた領域を使用する。ＣＰＵ２０１は、ＯＳを介して各プロセスを実行することによって、画像形成装置２００の種々の機能を実現する。当該機能としては、例えば、スキャン、印刷、コピー、ＦＡＸ、ＢＯＸ等の機能が挙げられる。
【００１６】
画像形成装置２００において、例えば、コピー機能は以下のように実現される。まず、ユーザは、スキャナ部２３２に原稿をセットするとともに、操作部２３１を操作することによってコピー機能の実行指示を画像形成装置２００に対して入力する。画像形成装置２００では、当該実行指示に基づいて、ＣＰＵ２０１の制御によって、以下の処理が実行される。まず、スキャナ部２３２において原稿から画像が読み取られ、取得された画像データは、スキャナＩ／Ｆ２１１を介してスキャナ画像処理部２１２に送られる。スキャナ画像処理部２１２から当該画像データを受信した圧縮部２１３は、当該画像データを圧縮する。即ち、圧縮部２１３は、当該画像データを３２画素×３２画素のブロック単位に分割することにより、タイルデータを生成する。当該圧縮処理の後、当該画像データは圧縮部２１３からＲＡＭ２０２に送信され、一時的に格納される。なお、圧縮後の画像データは、必要に応じて画像変換部２１７へ送られる。画像変換部２１７において、当該画像データに対して所定の画像処理が施された後に、ＲＡＭ２０２へ格納される。その後、ＲＡＭ２０２から読み出されたデータは、ＨＤＤコントローラ２０７を介して、ＨＤＤ２４０へ書き込まれる。なお、ＨＤＤ２４０は、ページの入れ替え処理等のための作業領域として使用される。
【００１７】
次に、ＨＤＤユニット３００から読み出されたデータは、システムバス２０４へ送出されるとともに、画像バス２２０を介して伸張部２１６に送られる。伸張部２１６は、受信した画像データを伸張した後に、複数のタイルデータから成る当該画像データをラスタ展開する。ラスタ展開後の画像データは、プリンタ画像処理部２１５に送られる。プリンタ画像処理部２１５において所定の処理が施された画像データは、プリンタＩ／Ｆ２１４を介してプリンタ部２３３に送られる。最終的に、プリンタ部２３３において、用紙に対する画像形成（印刷）が行われることにより、コピー処理が完了する。
【００１８】
＜ＯＳによるＲＡＭ２０２の使用例＞
次に、図１を参照して、ＯＳの機能に基づくＲＡＭ２０２の使用について説明する。図１において、実メモリ１０１はＲＡＭ２０２の中のＤＲＡＭの部分に相当し、ＯＳによって使用される領域となる。ＣＰＵ２０１が使用するワークメモリには、ＯＳの基本機能を実行するプログラムであるカーネルの実行に使用するカーネルメモリ１１０と、各プロセス（ユーザプロセス）の実行に使用する仮想メモリ１２０とがある。ここで、画像形成装置２００のＯＳは、その機能の１つとして仮想メモリ機能を有する。仮想メモリ機能とは、ＲＡＭ２０２の記憶領域に加えて、ＨＤＤ２４０の記憶領域をＯＳのワークメモリとして使用可能にする機能である。仮想メモリ機能によれば、画像形成装置２００が現実に搭載するＲＡＭ２０２の容量以上のメモリ領域をＯＳで使用可能となる。
【００１９】
図１において、実メモリ１０１は、カーネルメモリ１１０として使用される領域１０２と、各プロセスの実行用に使用される仮想メモリ１２０として使用される領域１０３とに分かれる。また、ＨＤＤ２４０の記憶領域上の領域１０４（スワップ領域）は、仮想メモリ１２０の一部として使用される。ＣＰＵ２０１は、各プロセスを実行する場合、仮想メモリ１２０のうち実メモリ１０１の領域１０３を優先的に使用する。また、ＣＰＵ２０１は、使用可能な領域１０３の容量が不足すると、領域１０３の記憶内容の一部をＨＤＤ２４０のスワップ領域１０４へスワップファイルとして退避する。なお、ＣＰＵ２０１は退避手段の一例である。
【００２０】
さらに、画像形成装置２００のＯＳは、カーネルメモリ１１０の一部をディスクキャッシュ１１１として使用する機能を有する。ディスクキャッシュ１１１には、例えば、ＨＤＤ２４０に格納されるデータのうち使用頻度の高いデータが一時的に格納される。これにより、ＣＰＵ２０１は、使用頻度の高いデータを処理する場合に、記憶領域への読み書きの速度がＨＤＤ２４０よりも高速なＲＡＭ２０２を使用できるため、全てのデータの処理にＨＤＤ２４０を使用するよりも処理を高速化できる。
【００２１】
また、ＣＰＵ２０１は、ＨＤＤ２４０へ何らかのデータを格納する場合にも、ディスクキャッシュ１１１を利用できる。具体的には、ＣＰＵ２０１は、当該データを一時的にディスクキャッシュ１１１へ格納した後、他の処理を実行していない期間に当該データをＨＤＤ２４０へ転送して格納する。当該処理は、一般に「遅延書き込み」と称される。これにより、他の処理の合間にデータを一斉にＨＤＤ２４０へ転送できるため、処理効率を向上させることができる。なお、以下では、実メモリ１０１において、ディスクキャッシュ１１１を含む領域１０２を「キャッシュ領域」、各プロセス用のメモリとして使用される領域１０３を「ユーザ領域」と称する。
【００２２】
次に、再び図１を参照して、ディスクキャッシュ１１１を使用する場合の、カーネルメモリ１１０及び仮想メモリ１２０の使用状況について説明する。ＣＰＵ２０１は、何らかのプロセスの実行中に、データをＨＤＤ２４０へ格納することを当該プロセスによって要求されると、通常、当該データをまずディスクキャッシュ１１１に格納する。その際に、当該データを格納するための領域として、ユーザ領域１０３の空き領域をキャッシュ領域１０２へ配分する。これにより、当該空き領域の容量分、ユーザ領域１０３の容量が減少し、キャッシュ領域１０２の容量が増加する。その際に、ＣＰＵ２０１は、ユーザ領域１０３の使用可能な空き領域が不足すると、上述の仮想メモリ機能によってユーザ領域１０３の記憶内容の一部をＨＤＤ２４０へ一時的に退避させて空き領域を確保し、それをキャッシュ領域１０２へ割り当てる。
【００２３】
図１において、ディスクキャッシュ１１１へ新たにデータを格納する場合、当該データを格納するために必要な容量の空き領域が、ユーザ領域１０３からキャッシュ領域１０２へ配分される。これにより、キャッシュ領域１０２の容量ＡがＡ’に増加し、その増加分だけユーザ領域１０３の容量ＢがＢ’へ減少している。その際、仮想メモリ１２０上に存在する各プロセス用のメモリ領域１２１〜１２５の記憶内容のうち、容量の減少によってユーザ領域１０３に格納しきれなくなった記憶内容が、ＨＤＤ２４０のスワップ領域１０４へ退避される。図１では、プロセス３及び４で使用される領域１２３、１２４の記憶内容が退避されている。その場合、ＯＳを実行するＣＰＵ２０１から見た仮想メモリ１２０全体の容量は、当該配分前（Ｄ）と配分後（Ｄ’）とで変化しない。しかし、ＨＤＤ２４０のスワップ領域１０４へ記憶内容を退避されたプロセスに関しては、上述のＨＤＤ２４０への読み書きの速度に起因して、ＣＰＵ２０１によるプロセスの実行速度が低下することになる。
【００２４】
この現象は、特に、ＨＤＤ２４０に対して大量のデータを連続して格納する場合に顕著となる。即ち、ＣＰＵ２０１は、ディスクキャッシュ１１１へデータを格納するために必要な領域をユーザ領域１０３から際限なく確保しようとするために、ユーザ領域１０３における各プロセスの使用領域の記憶内容が、次々にＨＤＤ２４０へスワップされる。その結果、スワップされた記憶内容を使用するプロセスをＣＰＵ２０１が実行しようとした場合に、当該プロセスの実行速度が低下するとともに、画像形成装置２００全体の動作速度が低下してしまう。
【００２５】
＜ＨＤＤ２４０への書き込み処理＞
本実施形態において、ＣＰＵ２０１は、ユーザ領域１０３からキャッシュ領域１０２へ配分される空き領域の容量を制限するための閾値を設定することによって、当該閾値を上限として、キャッシュ領域１０２の容量を制限する。ここで、図４は、閾値の設定処理、及び設定された閾値に基づく判定処理の概念を示している。ＣＰＵ２０１は、何らかのプロセスの実行中に、データをＨＤＤ２４０へ格納することを当該プロセスによって要求されると、閾値設定部４１０において上述の閾値を設定する。図４に示すように、閾値設定部４１０は、テーブル４００、４０１、画像形成装置２００の動作状況情報４０２、メモリ搭載量情報４０３、空きメモリ量情報４０４、プロセス機能情報４０５等に基づいて、所定の方法で閾値を設定する。閾値の設定方法の詳細については後述する。さらに、判定部４２０は、閾値設定部４１０で設定された閾値と、ＨＤＤ２４０へ書き込むファイル（データ）の容量（書き込みファイルサイズ情報４０６）との比較に基づいて、所定の判定処理を実行する。当該判定処理の詳細については後述する。なお、閾値設定部４１０及び判定部４２０における処理は、ＣＰＵ２０１がＲＯＭ２０３やＨＤＤ２４０に格納されたプログラムを読み出して実行することにより実現され得る。また、図４に示すテーブル等の情報は、ＲＡＭ２０２、ＲＯＭ２０３又はＨＤＤ２４０等の、記憶装置の何れかに記憶されている。
【００２６】
閾値設定部４１０は、以下に示すいくつかの方法で閾値を設定することができる。一例としては、ユーザ領域１０３の空き領域の容量である空きメモリ量情報４０４に基づいて、当該容量以下の任意の値を閾値として設定する。設定された閾値は、閾値設定部４１０から判定部４２０へ送られる。判定部４２０は、ＨＤＤ２４０へ格納されるデータの容量である書き込みファイルサイズ情報４０６に基づいて、当該容量が、設定された閾値を超えるか否かを判定する。この判定結果に基づいて、ＣＰＵ２０１は、図３に示す２つの方法の何れかを選択し、ＨＤＤ２４０へデータを格納する格納制御を実行する。
【００２７】
判定部４２０における判定の結果、ＨＤＤ２４０へ格納するデータの容量が閾値を超える場合、ＣＰＵ２０１は、当該データを、キャッシュ領域１０２に格納することなくＨＤＤ２４０へ直接格納する格納制御（以下では、「直接書き込み」と称する。）を実行する（３１１、３３１）。一方で、ＨＤＤ２４０へ格納するデータの容量が閾値を超えない場合、上述の遅延書き込みを実行する。具体的には、ＣＰＵ２０１は、当該データをまず、当該データをキャッシュ領域１０２のディスクキャッシュ１１１へ格納する（３２１）。その後、ディスクキャッシュ１１１に格納したデータを適当なタイミングでＨＤＤ２４０へ格納する遅延書き込み（３２２、３３１）を実行する。
【００２８】
設定された閾値を用いた上述の処理によって、ディスクキャッシュ１１１にデータを格納するために必要な領域が、ユーザ領域１０３から際限なく確保されることを防止できる。さらに、閾値を設定する際に、ユーザ領域１０３における使用可能な領域が不足することを防止するように、当該ユーザ領域の空き領域の容量に基づいて閾値を設定することによって、ディスクキャッシュ１１１の使用によるスワップの発生を防止できる。これにより、スワップの発生に起因する画像形成装置２００の動作速度の低下を防止できる。
【００２９】
＜他の閾値設定方法＞
閾値設定部４１０は、他の方法で閾値を設定することも可能である。例えば、ＨＤＤ２４０へ格納されるデータをプロセスが処理するために、ユーザ領域の空き領域をプロセスに対して新たに確保する必要がある場合、確保する領域の容量を考慮して閾値を設定してもよい。例えば、ユーザ領域の空き領域の容量が３０ＭＢ、プロセスに必要な容量が１０ＭＢの場合、空き領域の容量からプロセスに必要な容量を減算した値（３０−１０＝２０ＭＢ）を閾値として設定してもよい。この場合、ＨＤＤ２４０へ格納するデータの容量が２０ＭＢ以下であれば、ディスクキャッシュ１１１へデータを格納しても、ユーザ領域の空き領域でスワップが発生することはない。一方で、当該データの容量が２０ＭＢ以上であれば、ディスクキャッシュ１１１へデータを格納すると、ユーザ領域からキャッシュ領域への空き領域の配分によって、ユーザ領域においてプロセスに割り当てるための容量（１０ＭＢ）が不足する。このため、その場合には、設定した閾値を用いた判定処理に基づいて直接書き込みを実行することにより、スワップの発生を防止できる。
【００３０】
なお、データの処理のためにプロセスで必要となるメモリの容量は、例えば、図４のテーブル４００、４０１のように、各プロセスに対して予め設定されていてもよい。あるいは、プロセスの動作履歴に基づいて、当該プロセスの実行に平均的に使用されるメモリの容量が推定されてもよい。閾値設定部４１０は、テーブルの参照又は動作履歴に基づく推定によって、プロセスに必要なメモリの容量を取得し、これを用いて閾値を設定できる。これにより、プロセスの動作状況に応じて必要なメモリの容量を適切に推定できるとともに、これに基づいて閾値を適切に設定できる。
【００３１】
また、閾値設定部４１０は、ユーザ領域において各プロセスが使用する領域の記憶内容がＨＤＤ２４０へスワップ（退避）されることを防止するための、各プロセスに対して予め設定された優先度に基づいて、閾値を設定してもよい。その場合、閾値設定部４１０は、優先度が高いプロセスであるほど、当該プロセスが使用する領域の記憶内容が退避されることを防止するように、閾値を設定するとよい。例えば、閾値設定部４１０は、ＨＤＤ２４０へのデータの格納を要求したプロセスに予め設定された優先度が高い場合、低い優先度が設定されたプロセスの閾値よりも低い閾値を設定する。これにより、ディスクキャッシュ１１１を使用した遅延書き込みよりも、直接書き込みが優先的に実行されることとなる。その結果、当該プロセスの使用するユーザ領域の記憶内容がスワップされる可能性を低くすることができる。
【００３２】
図４で、優先度は、プロセスと関連付けてテーブル４００、４０１に保存されている。この優先度は、プロセスによって実行される機能、又はプロセスが実行されている際の画像形成装置２００の動作状況に応じて設定され得る。テーブル４００、４０１には、当該機能又は当該動作状況に対応して優先度が設定されている。閾値設定部４１０は、まず、プロセスによって実行される機能を示すプロセス機能情報４０５、又は画像形成装置２００の動作状況を示す動作状況情報４０２に対応する優先度を、テーブル４００、４０１から求める。さらに、閾値設定部４１０は、当該優先度に基づいて閾値を設定する。ここで、閾値設定部４１０は、上述のように、ユーザ領域の空き容量と、当該プロセスに必要となるメモリの容量とに基づいて閾値を求めるとともに、その値を優先度に応じて調整してもよい。例えば、求めた値を優先度に応じて増減させることによって、即ち、優先度が高い場合に値を減少させ、又は優先度が低い場合に値を増加させることによって、優先度に応じた閾値の設定を実現できる。
【００３３】
設定された閾値の使用により、ユーザ領域１０３の容量が際限なくディスクキャッシュ１１１へ確保されることを防止できるだけでなく、優先度の高いプロセスが使用する領域の記憶内容がスワップされることを防止できる。なお、優先度は、操作部２３１の表示部に設けられたタッチパネルを介したユーザの操作に基づいて、自由に設定及び変更され得る。ＣＰＵ２０１は、操作部２３１から入力された情報に基づいて、テーブル４００、４０１に対する優先度設定を実行できる。これにより、画像形成装置２００のユーザの利便性を向上させることができる。
【００３４】
＜画像形成装置２００のＨＤＤ２４０への書き込み処理の手順＞
次に、図５を参照して、画像形成装置２００における、ＨＤＤ２４０へデータを書き込む場合の処理手順について説明する。なお、以下の動作は、例えば、ＲＯＭ２０３又はＨＤＤ２４０に格納されたプログラムをＣＰＵ２０１が読み出して実行することによって実現される。実行中のプロセスにおいて、ＨＤＤ２４０へのデータの格納要求が生じると、ＣＰＵ２０１は、Ｓ５０１〜Ｓ５０５の処理を実行する。Ｓ５０１で、ＣＰＵ２０１は、当該プロセスによって実行する機能を確認する。次に、Ｓ５０２で、ＣＰＵ２０１は、当該機能の優先度をテーブル４００を参照することによって確認する。次に、ＣＰＵ２０１は、Ｓ５０４で、ユーザ領域における空き領域の容量を確認するとともに、Ｓ５０５で、ＨＤＤ２４０への格納対象のデータの容量を確認する。その後、Ｓ５０６へ移行する。
【００３５】
Ｓ５０６で、ＣＰＵ２０１は、Ｓ５０１〜Ｓ５０４で取得した情報に基づいて、上述の処理に従って閾値を設定し、Ｓ５０７へ移行する。Ｓ５０７で、ＣＰＵ２０１は、Ｓ５０５で確認したデータの容量が、Ｓ５０６で設定した閾値を超えるか否かを判定する。ここで、データの容量が閾値を超えると判定した場合、Ｓ５１１へ移行する。Ｓ５１１で、ＣＰＵ２０１は、遅延書き込みを実行し、処理を終了する。
【００３６】
一方、Ｓ５０７で、ＣＰＵ２０１は、データの容量が閾値を超えないと判定した場合、Ｓ５０８へ移行する。Ｓ５０８で、ＣＰＵ２０１は、ディスクキャッシュ１１１にデータを格納するためのメモリ領域を、ユーザ領域から配分する。さらに、Ｓ５０９で、ＣＰＵ２０１は、配分した領域にデータを格納し、Ｓ５１０へ移行する。Ｓ５１０で、ＣＰＵ２０１は、ディスクキャッシュ１１１に格納したデータを使用して、他の処理を実行していない期間にＨＤＤ２４０への遅延書き込みを実行し、処理を終了する。
【００３７】
以上説明したように、本実施形態に係る画像形成装置は、ＲＡＭの記憶領域に、各プロセスによって使用されるユーザ領域と、当該プロセスによってＨＤＤへ格納されるデータを一時的に記憶するキャッシュ領域とを含む。また、プロセスによってＨＤＤへデータを格納することが要求されると、当該データを一時的にＲＡＭのキャッシュ領域に記憶するためにユーザ領域からキャッシュ領域へ配分される領域の容量を制限する閾値を設定する。さらに、当該データの容量が、閾値を超えない場合には、当該データをキャッシュ領域に格納して、ＨＤＤへ格納する一方で、閾値を超える場合には、当該データをキャッシュ領域に格納せずに、直接ＨＤＤへ格納する。これにより、ＨＤＤへデータを格納する際に、キャッシュ領域にデータを一時的に格納するために必要な記憶領域が、ユーザ領域からキャッシュ領域へ際限なく確保されることを防止できる。さらに、閾値を適切に設定することによって、ユーザ領域の使用可能な領域が不足した場合に、当該領域の記憶内容の一部がＨＤＤへ一時的に退避されるスワップが実行されることを防止し、画像形成装置の動作速度の低下を防止できる。
【００３８】
また、本実施形態に係る画像形成装置は、プロセスによって実行される機能や画像形成装置の動作状況に応じて、プロセスに対して予め優先度を設定するとともに、当該優先度に応じて閾値を設定する。具体的には、ＨＤＤへデータを格納する際に、優先度の高いプロセスの使用するユーザ領域の記憶内容がＨＤＤへスワップされることを防止するように、閾値を設定する。これにより、優先度の高いプロセスが使用するユーザ領域の記憶内容がスワップされることを防止できる。
【００３９】
＜他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2011039849.tif 000003
【図２】
2011039849.tif 000004
【図３】
2011039849.tif 000005
【図４】
2011039849.tif 000006
【図５】
2011039849.tif 000007