JP2011039849A - 情報処理装置及びその制御方法、並びにプログラム - Google Patents
情報処理装置及びその制御方法、並びにプログラム Download PDFInfo
- Publication number
- JP2011039849A JP2011039849A JP2009187483A JP2009187483A JP2011039849A JP 2011039849 A JP2011039849 A JP 2011039849A JP 2009187483 A JP2009187483 A JP 2009187483A JP 2009187483 A JP2009187483 A JP 2009187483A JP 2011039849 A JP2011039849 A JP 2011039849A
- Authority
- JP
- Japan
- Prior art keywords
- area
- data
- capacity
- threshold
- information processing
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】キャッシュ機能によってRAMに確保される記憶領域の容量を適切に制限する情報処理装置及びその制御方法、並びにプログラムを提供する。
【解決手段】本実施形態に係る情報処理装置は、RAMの記憶領域に、各プロセスによって使用されるユーザ領域と、当該プロセスによってHDDへ格納されるデータを一時的に記憶するキャッシュ領域とを含む。また、プロセスによってHDDへデータを格納することが要求されると、当該データを一時的にRAMのキャッシュ領域に記憶するために、ユーザ領域からキャッシュ領域へ配分される領域の容量を制限する閾値を設定する。さらに、当該データの容量が、閾値を超えない場合には、当該データをキャッシュ領域に格納し、HDDへ格納する一方で、閾値を超える場合には、当該データをキャッシュ領域に格納せずに、直接HDDへ格納する。
【選択図】図1
【解決手段】本実施形態に係る情報処理装置は、RAMの記憶領域に、各プロセスによって使用されるユーザ領域と、当該プロセスによってHDDへ格納されるデータを一時的に記憶するキャッシュ領域とを含む。また、プロセスによってHDDへデータを格納することが要求されると、当該データを一時的にRAMのキャッシュ領域に記憶するために、ユーザ領域からキャッシュ領域へ配分される領域の容量を制限する閾値を設定する。さらに、当該データの容量が、閾値を超えない場合には、当該データをキャッシュ領域に格納し、HDDへ格納する一方で、閾値を超える場合には、当該データをキャッシュ領域に格納せずに、直接HDDへ格納する。
【選択図】図1
Description
本発明は、情報処理装置及びその制御方法、並びにプログラムに関するものである。
近年、情報処理装置では、主記憶メモリ(RAM)の記憶領域に加えて、ハードディスクドライブ(HDD)の記憶領域をOSのワークメモリとして使用可能とする仮想メモリ機能を含むOSを備えたものが知られている。このような情報処理装置では、プロセスの実行のために使用可能なRAMの容量が不足すると、RAMの記憶内容の一部をHDDへ退避させるスワップと呼ばれる動作を実行することによって、RAMに空き領域を確保する。この仮想メモリ機能によれば、情報処理装置は、搭載されたRAMの容量よりも大きなメモリ空間を使用することが可能となる。
仮想メモリ機能を備える情報処理装置において、例えば、プロセスの動作状況に応じて仮想メモリ機能を使用するものが知られている(例えば、特許文献1)。具体的には、動作を休止中のプロセスに割り当てられているRAMの領域の記憶内容を、一時的にHDDへ退避させる。これにより、RAMに空き領域を確保するとともに、動作中のプロセスに対して当該領域を割り当てる。また、HDDへスワップされたプロセスを再び実行する場合には、RAMの領域を当該プロセスに再び割り当てて、HDDへ退避された記憶内容をRAMに戻すことにより、当該プロセスの実行を再開する。このようなRAMとHDDとの間のデータの移動には一定の時間を要するため、スワップ動作が頻発すると情報処理装置の動作速度が低下してしまう。このため、情報処理装置においては、十分な容量のRAMが搭載され、スワップの実行が可能な限り回避されることが望ましい。
しかしながら、上述のような従来の情報処理装置が、HDDへデータを書き込む際に、RAMの一部の領域に当該データを一時的に格納するキャッシュ機能を有する場合、以下のような問題がある。例えば、情報処理装置が十分な容量のRAMを搭載していたとしても、HDDへ大量のデータを格納するような場合、キャッシュ機能によってデータを格納するためのRAM上の領域が、データの容量に応じて際限なく確保されてしまうことがある。その場合に確保される領域は、RAM上でプロセスによって使用されている領域から配分される。このため、プロセスによって使用されるRAMの領域が不足し、その記憶内容がHDDへ退避されてしまい、情報処理装置の動作速度が低下してしまうという問題がある。
本発明は、上述の問題に鑑みてなされたものであり、キャッシュ機能によってRAMに確保される記憶領域の容量を適切に制限する情報処理装置及びその制御方法を提供することを目的としている。
本発明は、例えば、情報処理装置として実現できる。情報処理装置は、不揮発性記憶手段と、プログラムの実行単位であるプロセスによって使用されるユーザ領域及びプロセスによって不揮発性記憶手段へ格納されるデータを一時的に記憶するキャッシュ領域を含む主記憶手段と、ユーザ領域における使用可能な領域が不足すると、ユーザ領域の記憶内容の一部を不揮発性記憶手段へ一時的に退避させる退避手段とを備える情報処理装置であって、プロセスによって、データを不揮発性記憶手段へ格納することが要求されると、ユーザ領域からキャッシュ領域へ配分される空き領域の容量を制限するための閾値を設定する閾値設定手段と、データの容量が、設定された閾値を超えるか否かを判定する判定手段と、データの容量が閾値を超えない場合、キャッシュ領域にデータを格納するとともに、データを不揮発性記憶手段へ格納し、データの容量が閾値を超える場合、退避手段によってユーザ領域の記憶内容が退避されることを防止するために、データをキャッシュ領域に格納せずに不揮発性記憶手段へ直接格納する格納制御手段とをさらに備えることを特徴とする。
本発明によれば、例えば、キャッシュ機能によってRAMに確保される記憶領域の容量を適切に制限する情報処理装置を提供できる。
以下に本発明の一実施形態を示す。以下で説明される実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の実施形態によって限定されるわけではない。
<画像形成装置の構成>
まず、図2を参照して、画像形成装置(情報処理装置)200の構成例について説明する。システム制御部210は、画像形成装置200のコントローラ機能を有する。また、システム制御部210は、操作部231、スキャナ部232、及びプリンタ部233と電気的に接続される。また、システム制御部210は、ネットワークI/F206を介して外部のLANと接続される。このため、システム制御部210は、LANに接続されたPC等の外部装置との間で相互に通信が可能であり、LANを介して画像データやデバイス情報を送受信できる。
まず、図2を参照して、画像形成装置(情報処理装置)200の構成例について説明する。システム制御部210は、画像形成装置200のコントローラ機能を有する。また、システム制御部210は、操作部231、スキャナ部232、及びプリンタ部233と電気的に接続される。また、システム制御部210は、ネットワークI/F206を介して外部のLANと接続される。このため、システム制御部210は、LANに接続されたPC等の外部装置との間で相互に通信が可能であり、LANを介して画像データやデバイス情報を送受信できる。
CPU201は、ROM203に記憶された制御プログラム等に基づいて、システム制御部210に接続された各デバイスとの間のアクセスを制御するとともに、システム制御部210内部で実行される各種の処理を制御する。RAM202(メインメモリ)は、主記憶手段の一例であって、CPU201が動作するためのシステムワークメモリとして機能するとともに、画像データを一時的に記憶するためのメモリとしても機能する。また、RAM202は、電源OFF後において記憶内容を保持し続けるSRAMと、電源OFF後において記憶内容が消去されるDRAMとを備える。ROM203には、画像形成装置のブートプログラムが格納される。
ハードディスク(HDD)コントローラ207には、ハードディスク(HDD)ユニット230が接続される。当該HDDユニット230内のハードディスク(HDD)240は、不揮発性記憶手段の一例であり、システムソフトウェアや画像データが格納され得る。操作部I/F205は、システムバス204と操作部231とを接続するインタフェース部である。操作部231は、操作部I/F205を介して入力される画像データを表示する表示部を備える。また、当該表示部上には、タッチパネルが設けられており、ユーザは、当該タッチパネルを介して、表示部の画面表示に従って画像形成装置200に対する指示を入力できる。操作部I/F205は、操作部231に表示される画像データがシステムバス204から入力されると、当該画像データを操作部231へ出力する。また、操作部I/F205は、操作部231から入力された情報を、システムバス204へと出力する。ネットワークI/F206は、システムバス204とLANとを接続するインタフェース部である。
画像バス220は、接続されたデバイス間で画像データを送受信するための伝送路であり、PCIバスが使用される。スキャナ画像処理部212は、スキャナ部232からスキャナI/F211を介して受信した画像データに対して、補正、加工及び編集を行う。なお、スキャナ画像処理部212は、受信した画像データがカラー原稿と白黒原稿の何れか、及び文字原稿と写真原稿の何れか等を判定する。さらに、当該判定結果を画像データに付加する。ここで、当該情報は一般に像域データと称される。圧縮部213は、スキャナ画像処理部212から画像データを受信するとともに、当該画像データを32画素×32画素のブロック単位に分割する。
画像形成装置200において、オペレーティングシステム(OS)は、予めHDD240等に格納されている。画像形成装置200が電源OFFの状態から電源が起動した状態へ移行すると、CPU201は、RAM202にOSを読み出して、その実行を開始する。OSは、例えばマルチタスクOSであり、CPU201は、当該OSの機能に従って、多数のプロセスの処理を短い時間単位で切り替えながら実行する。これにより、ユーザからは複数のプロセスが同時に実行されているように見える。ここで、プロセスとは、CPU201によって実行されるプログラムの実行単位を表す。各プロセスは、OSの機能によって、RAM202の記憶領域の一部が割り当てられるとともに、割り当てられた領域を使用する。CPU201は、OSを介して各プロセスを実行することによって、画像形成装置200の種々の機能を実現する。当該機能としては、例えば、スキャン、印刷、コピー、FAX、BOX等の機能が挙げられる。
画像形成装置200において、例えば、コピー機能は以下のように実現される。まず、ユーザは、スキャナ部232に原稿をセットするとともに、操作部231を操作することによってコピー機能の実行指示を画像形成装置200に対して入力する。画像形成装置200では、当該実行指示に基づいて、CPU201の制御によって、以下の処理が実行される。まず、スキャナ部232において原稿から画像が読み取られ、取得された画像データは、スキャナI/F211を介してスキャナ画像処理部212に送られる。スキャナ画像処理部212から当該画像データを受信した圧縮部213は、当該画像データを圧縮する。即ち、圧縮部213は、当該画像データを32画素×32画素のブロック単位に分割することにより、タイルデータを生成する。当該圧縮処理の後、当該画像データは圧縮部213からRAM202に送信され、一時的に格納される。なお、圧縮後の画像データは、必要に応じて画像変換部217へ送られる。画像変換部217において、当該画像データに対して所定の画像処理が施された後に、RAM202へ格納される。その後、RAM202から読み出されたデータは、HDDコントローラ207を介して、HDD240へ書き込まれる。なお、HDD240は、ページの入れ替え処理等のための作業領域として使用される。
次に、HDDユニット300から読み出されたデータは、システムバス204へ送出されるとともに、画像バス220を介して伸張部216に送られる。伸張部216は、受信した画像データを伸張した後に、複数のタイルデータから成る当該画像データをラスタ展開する。ラスタ展開後の画像データは、プリンタ画像処理部215に送られる。プリンタ画像処理部215において所定の処理が施された画像データは、プリンタI/F214を介してプリンタ部233に送られる。最終的に、プリンタ部233において、用紙に対する画像形成(印刷)が行われることにより、コピー処理が完了する。
<OSによるRAM202の使用例>
次に、図1を参照して、OSの機能に基づくRAM202の使用について説明する。図1において、実メモリ101はRAM202の中のDRAMの部分に相当し、OSによって使用される領域となる。CPU201が使用するワークメモリには、OSの基本機能を実行するプログラムであるカーネルの実行に使用するカーネルメモリ110と、各プロセス(ユーザプロセス)の実行に使用する仮想メモリ120とがある。ここで、画像形成装置200のOSは、その機能の1つとして仮想メモリ機能を有する。仮想メモリ機能とは、RAM202の記憶領域に加えて、HDD240の記憶領域をOSのワークメモリとして使用可能にする機能である。仮想メモリ機能によれば、画像形成装置200が現実に搭載するRAM202の容量以上のメモリ領域をOSで使用可能となる。
次に、図1を参照して、OSの機能に基づくRAM202の使用について説明する。図1において、実メモリ101はRAM202の中のDRAMの部分に相当し、OSによって使用される領域となる。CPU201が使用するワークメモリには、OSの基本機能を実行するプログラムであるカーネルの実行に使用するカーネルメモリ110と、各プロセス(ユーザプロセス)の実行に使用する仮想メモリ120とがある。ここで、画像形成装置200のOSは、その機能の1つとして仮想メモリ機能を有する。仮想メモリ機能とは、RAM202の記憶領域に加えて、HDD240の記憶領域をOSのワークメモリとして使用可能にする機能である。仮想メモリ機能によれば、画像形成装置200が現実に搭載するRAM202の容量以上のメモリ領域をOSで使用可能となる。
図1において、実メモリ101は、カーネルメモリ110として使用される領域102と、各プロセスの実行用に使用される仮想メモリ120として使用される領域103とに分かれる。また、HDD240の記憶領域上の領域104(スワップ領域)は、仮想メモリ120の一部として使用される。CPU201は、各プロセスを実行する場合、仮想メモリ120のうち実メモリ101の領域103を優先的に使用する。また、CPU201は、使用可能な領域103の容量が不足すると、領域103の記憶内容の一部をHDD240のスワップ領域104へスワップファイルとして退避する。なお、CPU201は退避手段の一例である。
さらに、画像形成装置200のOSは、カーネルメモリ110の一部をディスクキャッシュ111として使用する機能を有する。ディスクキャッシュ111には、例えば、HDD240に格納されるデータのうち使用頻度の高いデータが一時的に格納される。これにより、CPU201は、使用頻度の高いデータを処理する場合に、記憶領域への読み書きの速度がHDD240よりも高速なRAM202を使用できるため、全てのデータの処理にHDD240を使用するよりも処理を高速化できる。
また、CPU201は、HDD240へ何らかのデータを格納する場合にも、ディスクキャッシュ111を利用できる。具体的には、CPU201は、当該データを一時的にディスクキャッシュ111へ格納した後、他の処理を実行していない期間に当該データをHDD240へ転送して格納する。当該処理は、一般に「遅延書き込み」と称される。これにより、他の処理の合間にデータを一斉にHDD240へ転送できるため、処理効率を向上させることができる。なお、以下では、実メモリ101において、ディスクキャッシュ111を含む領域102を「キャッシュ領域」、各プロセス用のメモリとして使用される領域103を「ユーザ領域」と称する。
次に、再び図1を参照して、ディスクキャッシュ111を使用する場合の、カーネルメモリ110及び仮想メモリ120の使用状況について説明する。CPU201は、何らかのプロセスの実行中に、データをHDD240へ格納することを当該プロセスによって要求されると、通常、当該データをまずディスクキャッシュ111に格納する。その際に、当該データを格納するための領域として、ユーザ領域103の空き領域をキャッシュ領域102へ配分する。これにより、当該空き領域の容量分、ユーザ領域103の容量が減少し、キャッシュ領域102の容量が増加する。その際に、CPU201は、ユーザ領域103の使用可能な空き領域が不足すると、上述の仮想メモリ機能によってユーザ領域103の記憶内容の一部をHDD240へ一時的に退避させて空き領域を確保し、それをキャッシュ領域102へ割り当てる。
図1において、ディスクキャッシュ111へ新たにデータを格納する場合、当該データを格納するために必要な容量の空き領域が、ユーザ領域103からキャッシュ領域102へ配分される。これにより、キャッシュ領域102の容量AがA’に増加し、その増加分だけユーザ領域103の容量BがB’へ減少している。その際、仮想メモリ120上に存在する各プロセス用のメモリ領域121〜125の記憶内容のうち、容量の減少によってユーザ領域103に格納しきれなくなった記憶内容が、HDD240のスワップ領域104へ退避される。図1では、プロセス3及び4で使用される領域123、124の記憶内容が退避されている。その場合、OSを実行するCPU201から見た仮想メモリ120全体の容量は、当該配分前(D)と配分後(D’)とで変化しない。しかし、HDD240のスワップ領域104へ記憶内容を退避されたプロセスに関しては、上述のHDD240への読み書きの速度に起因して、CPU201によるプロセスの実行速度が低下することになる。
この現象は、特に、HDD240に対して大量のデータを連続して格納する場合に顕著となる。即ち、CPU201は、ディスクキャッシュ111へデータを格納するために必要な領域をユーザ領域103から際限なく確保しようとするために、ユーザ領域103における各プロセスの使用領域の記憶内容が、次々にHDD240へスワップされる。その結果、スワップされた記憶内容を使用するプロセスをCPU201が実行しようとした場合に、当該プロセスの実行速度が低下するとともに、画像形成装置200全体の動作速度が低下してしまう。
<HDD240への書き込み処理>
本実施形態において、CPU201は、ユーザ領域103からキャッシュ領域102へ配分される空き領域の容量を制限するための閾値を設定することによって、当該閾値を上限として、キャッシュ領域102の容量を制限する。ここで、図4は、閾値の設定処理、及び設定された閾値に基づく判定処理の概念を示している。CPU201は、何らかのプロセスの実行中に、データをHDD240へ格納することを当該プロセスによって要求されると、閾値設定部410において上述の閾値を設定する。図4に示すように、閾値設定部410は、テーブル400、401、画像形成装置200の動作状況情報402、メモリ搭載量情報403、空きメモリ量情報404、プロセス機能情報405等に基づいて、所定の方法で閾値を設定する。閾値の設定方法の詳細については後述する。さらに、判定部420は、閾値設定部410で設定された閾値と、HDD240へ書き込むファイル(データ)の容量(書き込みファイルサイズ情報406)との比較に基づいて、所定の判定処理を実行する。当該判定処理の詳細については後述する。なお、閾値設定部410及び判定部420における処理は、CPU201がROM203やHDD240に格納されたプログラムを読み出して実行することにより実現され得る。また、図4に示すテーブル等の情報は、RAM202、ROM203又はHDD240等の、記憶装置の何れかに記憶されている。
本実施形態において、CPU201は、ユーザ領域103からキャッシュ領域102へ配分される空き領域の容量を制限するための閾値を設定することによって、当該閾値を上限として、キャッシュ領域102の容量を制限する。ここで、図4は、閾値の設定処理、及び設定された閾値に基づく判定処理の概念を示している。CPU201は、何らかのプロセスの実行中に、データをHDD240へ格納することを当該プロセスによって要求されると、閾値設定部410において上述の閾値を設定する。図4に示すように、閾値設定部410は、テーブル400、401、画像形成装置200の動作状況情報402、メモリ搭載量情報403、空きメモリ量情報404、プロセス機能情報405等に基づいて、所定の方法で閾値を設定する。閾値の設定方法の詳細については後述する。さらに、判定部420は、閾値設定部410で設定された閾値と、HDD240へ書き込むファイル(データ)の容量(書き込みファイルサイズ情報406)との比較に基づいて、所定の判定処理を実行する。当該判定処理の詳細については後述する。なお、閾値設定部410及び判定部420における処理は、CPU201がROM203やHDD240に格納されたプログラムを読み出して実行することにより実現され得る。また、図4に示すテーブル等の情報は、RAM202、ROM203又はHDD240等の、記憶装置の何れかに記憶されている。
閾値設定部410は、以下に示すいくつかの方法で閾値を設定することができる。一例としては、ユーザ領域103の空き領域の容量である空きメモリ量情報404に基づいて、当該容量以下の任意の値を閾値として設定する。設定された閾値は、閾値設定部410から判定部420へ送られる。判定部420は、HDD240へ格納されるデータの容量である書き込みファイルサイズ情報406に基づいて、当該容量が、設定された閾値を超えるか否かを判定する。この判定結果に基づいて、CPU201は、図3に示す2つの方法の何れかを選択し、HDD240へデータを格納する格納制御を実行する。
判定部420における判定の結果、HDD240へ格納するデータの容量が閾値を超える場合、CPU201は、当該データを、キャッシュ領域102に格納することなくHDD240へ直接格納する格納制御(以下では、「直接書き込み」と称する。)を実行する(311、331)。一方で、HDD240へ格納するデータの容量が閾値を超えない場合、上述の遅延書き込みを実行する。具体的には、CPU201は、当該データをまず、当該データをキャッシュ領域102のディスクキャッシュ111へ格納する(321)。その後、ディスクキャッシュ111に格納したデータを適当なタイミングでHDD240へ格納する遅延書き込み(322、331)を実行する。
設定された閾値を用いた上述の処理によって、ディスクキャッシュ111にデータを格納するために必要な領域が、ユーザ領域103から際限なく確保されることを防止できる。さらに、閾値を設定する際に、ユーザ領域103における使用可能な領域が不足することを防止するように、当該ユーザ領域の空き領域の容量に基づいて閾値を設定することによって、ディスクキャッシュ111の使用によるスワップの発生を防止できる。これにより、スワップの発生に起因する画像形成装置200の動作速度の低下を防止できる。
<他の閾値設定方法>
閾値設定部410は、他の方法で閾値を設定することも可能である。例えば、HDD240へ格納されるデータをプロセスが処理するために、ユーザ領域の空き領域をプロセスに対して新たに確保する必要がある場合、確保する領域の容量を考慮して閾値を設定してもよい。例えば、ユーザ領域の空き領域の容量が30MB、プロセスに必要な容量が10MBの場合、空き領域の容量からプロセスに必要な容量を減算した値(30−10=20MB)を閾値として設定してもよい。この場合、HDD240へ格納するデータの容量が20MB以下であれば、ディスクキャッシュ111へデータを格納しても、ユーザ領域の空き領域でスワップが発生することはない。一方で、当該データの容量が20MB以上であれば、ディスクキャッシュ111へデータを格納すると、ユーザ領域からキャッシュ領域への空き領域の配分によって、ユーザ領域においてプロセスに割り当てるための容量(10MB)が不足する。このため、その場合には、設定した閾値を用いた判定処理に基づいて直接書き込みを実行することにより、スワップの発生を防止できる。
閾値設定部410は、他の方法で閾値を設定することも可能である。例えば、HDD240へ格納されるデータをプロセスが処理するために、ユーザ領域の空き領域をプロセスに対して新たに確保する必要がある場合、確保する領域の容量を考慮して閾値を設定してもよい。例えば、ユーザ領域の空き領域の容量が30MB、プロセスに必要な容量が10MBの場合、空き領域の容量からプロセスに必要な容量を減算した値(30−10=20MB)を閾値として設定してもよい。この場合、HDD240へ格納するデータの容量が20MB以下であれば、ディスクキャッシュ111へデータを格納しても、ユーザ領域の空き領域でスワップが発生することはない。一方で、当該データの容量が20MB以上であれば、ディスクキャッシュ111へデータを格納すると、ユーザ領域からキャッシュ領域への空き領域の配分によって、ユーザ領域においてプロセスに割り当てるための容量(10MB)が不足する。このため、その場合には、設定した閾値を用いた判定処理に基づいて直接書き込みを実行することにより、スワップの発生を防止できる。
なお、データの処理のためにプロセスで必要となるメモリの容量は、例えば、図4のテーブル400、401のように、各プロセスに対して予め設定されていてもよい。あるいは、プロセスの動作履歴に基づいて、当該プロセスの実行に平均的に使用されるメモリの容量が推定されてもよい。閾値設定部410は、テーブルの参照又は動作履歴に基づく推定によって、プロセスに必要なメモリの容量を取得し、これを用いて閾値を設定できる。これにより、プロセスの動作状況に応じて必要なメモリの容量を適切に推定できるとともに、これに基づいて閾値を適切に設定できる。
また、閾値設定部410は、ユーザ領域において各プロセスが使用する領域の記憶内容がHDD240へスワップ(退避)されることを防止するための、各プロセスに対して予め設定された優先度に基づいて、閾値を設定してもよい。その場合、閾値設定部410は、優先度が高いプロセスであるほど、当該プロセスが使用する領域の記憶内容が退避されることを防止するように、閾値を設定するとよい。例えば、閾値設定部410は、HDD240へのデータの格納を要求したプロセスに予め設定された優先度が高い場合、低い優先度が設定されたプロセスの閾値よりも低い閾値を設定する。これにより、ディスクキャッシュ111を使用した遅延書き込みよりも、直接書き込みが優先的に実行されることとなる。その結果、当該プロセスの使用するユーザ領域の記憶内容がスワップされる可能性を低くすることができる。
図4で、優先度は、プロセスと関連付けてテーブル400、401に保存されている。この優先度は、プロセスによって実行される機能、又はプロセスが実行されている際の画像形成装置200の動作状況に応じて設定され得る。テーブル400、401には、当該機能又は当該動作状況に対応して優先度が設定されている。閾値設定部410は、まず、プロセスによって実行される機能を示すプロセス機能情報405、又は画像形成装置200の動作状況を示す動作状況情報402に対応する優先度を、テーブル400、401から求める。さらに、閾値設定部410は、当該優先度に基づいて閾値を設定する。ここで、閾値設定部410は、上述のように、ユーザ領域の空き容量と、当該プロセスに必要となるメモリの容量とに基づいて閾値を求めるとともに、その値を優先度に応じて調整してもよい。例えば、求めた値を優先度に応じて増減させることによって、即ち、優先度が高い場合に値を減少させ、又は優先度が低い場合に値を増加させることによって、優先度に応じた閾値の設定を実現できる。
設定された閾値の使用により、ユーザ領域103の容量が際限なくディスクキャッシュ111へ確保されることを防止できるだけでなく、優先度の高いプロセスが使用する領域の記憶内容がスワップされることを防止できる。なお、優先度は、操作部231の表示部に設けられたタッチパネルを介したユーザの操作に基づいて、自由に設定及び変更され得る。CPU201は、操作部231から入力された情報に基づいて、テーブル400、401に対する優先度設定を実行できる。これにより、画像形成装置200のユーザの利便性を向上させることができる。
<画像形成装置200のHDD240への書き込み処理の手順>
次に、図5を参照して、画像形成装置200における、HDD240へデータを書き込む場合の処理手順について説明する。なお、以下の動作は、例えば、ROM203又はHDD240に格納されたプログラムをCPU201が読み出して実行することによって実現される。実行中のプロセスにおいて、HDD240へのデータの格納要求が生じると、CPU201は、S501〜S505の処理を実行する。S501で、CPU201は、当該プロセスによって実行する機能を確認する。次に、S502で、CPU201は、当該機能の優先度をテーブル400を参照することによって確認する。次に、CPU201は、S504で、ユーザ領域における空き領域の容量を確認するとともに、S505で、HDD240への格納対象のデータの容量を確認する。その後、S506へ移行する。
次に、図5を参照して、画像形成装置200における、HDD240へデータを書き込む場合の処理手順について説明する。なお、以下の動作は、例えば、ROM203又はHDD240に格納されたプログラムをCPU201が読み出して実行することによって実現される。実行中のプロセスにおいて、HDD240へのデータの格納要求が生じると、CPU201は、S501〜S505の処理を実行する。S501で、CPU201は、当該プロセスによって実行する機能を確認する。次に、S502で、CPU201は、当該機能の優先度をテーブル400を参照することによって確認する。次に、CPU201は、S504で、ユーザ領域における空き領域の容量を確認するとともに、S505で、HDD240への格納対象のデータの容量を確認する。その後、S506へ移行する。
S506で、CPU201は、S501〜S504で取得した情報に基づいて、上述の処理に従って閾値を設定し、S507へ移行する。S507で、CPU201は、S505で確認したデータの容量が、S506で設定した閾値を超えるか否かを判定する。ここで、データの容量が閾値を超えると判定した場合、S511へ移行する。S511で、CPU201は、遅延書き込みを実行し、処理を終了する。
一方、S507で、CPU201は、データの容量が閾値を超えないと判定した場合、S508へ移行する。S508で、CPU201は、ディスクキャッシュ111にデータを格納するためのメモリ領域を、ユーザ領域から配分する。さらに、S509で、CPU201は、配分した領域にデータを格納し、S510へ移行する。S510で、CPU201は、ディスクキャッシュ111に格納したデータを使用して、他の処理を実行していない期間にHDD240への遅延書き込みを実行し、処理を終了する。
以上説明したように、本実施形態に係る画像形成装置は、RAMの記憶領域に、各プロセスによって使用されるユーザ領域と、当該プロセスによってHDDへ格納されるデータを一時的に記憶するキャッシュ領域とを含む。また、プロセスによってHDDへデータを格納することが要求されると、当該データを一時的にRAMのキャッシュ領域に記憶するためにユーザ領域からキャッシュ領域へ配分される領域の容量を制限する閾値を設定する。さらに、当該データの容量が、閾値を超えない場合には、当該データをキャッシュ領域に格納して、HDDへ格納する一方で、閾値を超える場合には、当該データをキャッシュ領域に格納せずに、直接HDDへ格納する。これにより、HDDへデータを格納する際に、キャッシュ領域にデータを一時的に格納するために必要な記憶領域が、ユーザ領域からキャッシュ領域へ際限なく確保されることを防止できる。さらに、閾値を適切に設定することによって、ユーザ領域の使用可能な領域が不足した場合に、当該領域の記憶内容の一部がHDDへ一時的に退避されるスワップが実行されることを防止し、画像形成装置の動作速度の低下を防止できる。
また、本実施形態に係る画像形成装置は、プロセスによって実行される機能や画像形成装置の動作状況に応じて、プロセスに対して予め優先度を設定するとともに、当該優先度に応じて閾値を設定する。具体的には、HDDへデータを格納する際に、優先度の高いプロセスの使用するユーザ領域の記憶内容がHDDへスワップされることを防止するように、閾値を設定する。これにより、優先度の高いプロセスが使用するユーザ領域の記憶内容がスワップされることを防止できる。
<他の実施形態>
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
Claims (10)
- 不揮発性記憶手段と、プログラムの実行単位であるプロセスによって使用されるユーザ領域及び該プロセスによって前記不揮発性記憶手段へ格納されるデータを一時的に記憶するキャッシュ領域を含む主記憶手段と、前記ユーザ領域における使用可能な領域が不足すると、該ユーザ領域の記憶内容の一部を前記不揮発性記憶手段へ一時的に退避させる退避手段とを備える情報処理装置であって、
前記プロセスによって、データを前記不揮発性記憶手段へ格納することが要求されると、前記ユーザ領域から前記キャッシュ領域へ配分される空き領域の容量を制限するための閾値を設定する閾値設定手段と、
前記データの容量が、設定された前記閾値を超えるか否かを判定する判定手段と、
前記データの容量が前記閾値を超えない場合、前記キャッシュ領域に前記データを格納するとともに、該データを前記不揮発性記憶手段へ格納し、
前記データの容量が前記閾値を超える場合、前記退避手段によって前記ユーザ領域の記憶内容が退避されることを防止するために、前記データを前記キャッシュ領域に格納せずに前記不揮発性記憶手段へ直接格納する格納制御手段と
をさらに備えることを特徴とする情報処理装置。 - 前記格納制御手段は、
前記データの容量が前記閾値を超えない場合、前記キャッシュ領域に前記データを格納し、他の処理が実行されていない期間に、該キャッシュ領域に格納した該データを前記不揮発性記憶手段へ格納することを特徴とする請求項1に記載の情報処理装置。 - 前記ユーザ領域において前記プロセスが使用する領域の記憶内容が、前記退避手段によって退避されることを防止する優先度を、該プロセスに対して設定する優先度設定手段をさらに備え、
前記閾値設定手段は、
前記優先度が高いほど、前記プロセスが使用する領域の記憶内容が前記退避手段によって退避されることを防止するように、前記閾値を設定することを特徴とする請求項1又は2に記載の情報処理装置。 - 前記優先度設定手段は、前記プロセスで実行される機能に応じて前記優先度を設定することを特徴とする請求項3に記載の情報処理装置。
- 前記優先度設定手段は、前記情報処理装置の動作状況に応じて前記優先度を設定することを特徴とする請求項3に記載の情報処理装置。
- 前記閾値設定手段は、
前記ユーザ領域から前記キャッシュ領域へ空き領域が配分されることによって該ユーザ領域における使用可能な領域が不足することを防止するように、該ユーザ領域における空き領域の容量に基づいて前記閾値を設定することを特徴とする請求項1又は2に記載の情報処理装置。 - 前記閾値設定手段は、
前記ユーザ領域における空き領域の容量から、前記プロセスが前記データを処理するために必要とする領域の容量を減算した値を、前記閾値に設定することを特徴とする請求項6に記載の情報処理装置。 - 前記プロセスが前記データを処理するために必要とする領域の容量は、該プロセスの動作履歴に基づいて、該プロセスが平均的に使用する容量として推定されることを特徴とする請求項7に記載の情報処理装置。
- 不揮発性記憶手段と、プログラムの実行単位であるプロセスによって使用されるユーザ領域及び該プロセスによって前記不揮発性記憶手段へ格納されるデータを一時的に記憶するキャッシュ領域を含む主記憶手段と、前記ユーザ領域における使用可能な領域が不足すると、該ユーザ領域の記憶内容の一部を前記不揮発性記憶手段へ一時的に退避させる退避手段とを備える情報処理装置の制御方法であって、
閾値設定手段が、前記プロセスによって、データを前記不揮発性記憶手段へ格納することが要求されると、前記ユーザ領域から前記キャッシュ領域へ配分される空き領域の容量を制限するための閾値を設定する閾値設定ステップと、
判定手段が、前記データの容量が、設定された前記閾値を超えるか否かを判定する判定ステップと、
格納制御手段が、前記データの容量が前記閾値を超えない場合、前記キャッシュ領域に前記データを格納するとともに、該データを前記不揮発性記憶手段へ格納し、
前記データの容量が前記閾値を超える場合、前記退避手段によって前記ユーザ領域の記憶内容が退避されることを防止するために、前記データを前記キャッシュ領域に格納せずに前記不揮発性記憶手段へ直接格納する格納制御ステップと
を実行することを特徴とする情報処理装置の制御方法。 - 請求項9に記載の情報処理装置の制御方法における各ステップを、コンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009187483A JP2011039849A (ja) | 2009-08-12 | 2009-08-12 | 情報処理装置及びその制御方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009187483A JP2011039849A (ja) | 2009-08-12 | 2009-08-12 | 情報処理装置及びその制御方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011039849A true JP2011039849A (ja) | 2011-02-24 |
Family
ID=43767541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009187483A Withdrawn JP2011039849A (ja) | 2009-08-12 | 2009-08-12 | 情報処理装置及びその制御方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011039849A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353860A (zh) * | 2013-06-28 | 2013-10-16 | 贵阳朗玛信息技术股份有限公司 | 内存管理方法及装置 |
JP2015511350A (ja) * | 2012-01-26 | 2015-04-16 | メモリー テクノロジーズ リミティド ライアビリティ カンパニー | 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法 |
US10042586B2 (en) | 2012-04-20 | 2018-08-07 | Memory Technologies Llc | Managing operational state data in memory module |
US10540094B2 (en) | 2008-02-28 | 2020-01-21 | Memory Technologies Llc | Extended utilization area for a memory device |
US10983697B2 (en) | 2009-06-04 | 2021-04-20 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
-
2009
- 2009-08-12 JP JP2009187483A patent/JP2011039849A/ja not_active Withdrawn
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182079B2 (en) | 2008-02-28 | 2021-11-23 | Memory Technologies Llc | Extended utilization area for a memory device |
US11907538B2 (en) | 2008-02-28 | 2024-02-20 | Memory Technologies Llc | Extended utilization area for a memory device |
US11829601B2 (en) | 2008-02-28 | 2023-11-28 | Memory Technologies Llc | Extended utilization area for a memory device |
US11550476B2 (en) | 2008-02-28 | 2023-01-10 | Memory Technologies Llc | Extended utilization area for a memory device |
US10540094B2 (en) | 2008-02-28 | 2020-01-21 | Memory Technologies Llc | Extended utilization area for a memory device |
US11494080B2 (en) | 2008-02-28 | 2022-11-08 | Memory Technologies Llc | Extended utilization area for a memory device |
US11775173B2 (en) | 2009-06-04 | 2023-10-03 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
US10983697B2 (en) | 2009-06-04 | 2021-04-20 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
US11733869B2 (en) | 2009-06-04 | 2023-08-22 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
US10877665B2 (en) | 2012-01-26 | 2020-12-29 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US11797180B2 (en) | 2012-01-26 | 2023-10-24 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
JP2015511350A (ja) * | 2012-01-26 | 2015-04-16 | メモリー テクノロジーズ リミティド ライアビリティ カンパニー | 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法 |
US11226771B2 (en) | 2012-04-20 | 2022-01-18 | Memory Technologies Llc | Managing operational state data in memory module |
US10042586B2 (en) | 2012-04-20 | 2018-08-07 | Memory Technologies Llc | Managing operational state data in memory module |
US11782647B2 (en) | 2012-04-20 | 2023-10-10 | Memory Technologies Llc | Managing operational state data in memory module |
CN103353860A (zh) * | 2013-06-28 | 2013-10-16 | 贵阳朗玛信息技术股份有限公司 | 内存管理方法及装置 |
CN103353860B (zh) * | 2013-06-28 | 2016-02-24 | 贵阳朗玛信息技术股份有限公司 | 内存管理方法及装置 |
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 | |
JP5641900B2 (ja) | 管理装置及びその制御方法、並びにプログラム | |
US20120246390A1 (en) | Information processing apparatus, program product, and data writing method | |
JP6201944B2 (ja) | 画像処理装置、同装置における画像処理方法及び画像処理プログラム | |
JP2011039849A (ja) | 情報処理装置及びその制御方法、並びにプログラム | |
JP2014032582A (ja) | 画像処理装置、画像処理装置のストレージデバイス制御方法、及びプログラム | |
US9065953B2 (en) | Image forming apparatus, method for controlling the image forming apparatus, and program, with mode shifting based on duration required for shifting and amount of information to be stored | |
EP3812904A1 (en) | Swap area in memory using multiple compression algorithms | |
JP2007287084A (ja) | 画像処理装置及びプログラム | |
JP5928505B2 (ja) | 画像処理装置、同装置における画像処理方法及び画像処理プログラム | |
JP2006318177A (ja) | 情報処理装置およびタスク実行方法 | |
JP5232728B2 (ja) | 画像形成装置 | |
JP6579324B2 (ja) | 画像形成装置およびデータ処理プログラム | |
JP5414305B2 (ja) | 情報処理装置、仮想記憶管理方法及びプログラム | |
JP2008067299A (ja) | 画像形成装置 | |
JP5915670B2 (ja) | 画像処理装置、同装置における画像処理方法及び画像処理プログラム | |
JP2012058930A (ja) | 画像形成装置、省エネ管理方法、及び省エネ管理プログラム | |
US10437488B2 (en) | Electronic device and non-transitory computer readable storage medium | |
JP6720824B2 (ja) | 画像処理装置、画像処理装置の制御方法、およびプログラム | |
JP7081477B2 (ja) | 画像処理装置、画像処理装置の制御方法、およびプログラム | |
JP5652076B2 (ja) | 画像形成装置、省エネ管理方法、及び省エネ管理プログラム | |
JP2011068012A (ja) | 情報処理装置、その制御方法およびプログラム | |
JP2017134604A (ja) | 画像形成装置およびデータ処理プログラム | |
JP2003067243A (ja) | 画像処理装置、プログラム、プログラムが書き込まれた記録媒体および画像形成装置 | |
JP2018049511A (ja) | 情報処理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20121106 |