JP2009048258A - 情報処理装置、情報処理方法、情報処理プログラム - Google Patents

情報処理装置、情報処理方法、情報処理プログラム Download PDF

Info

Publication number
JP2009048258A
JP2009048258A JP2007211365A JP2007211365A JP2009048258A JP 2009048258 A JP2009048258 A JP 2009048258A JP 2007211365 A JP2007211365 A JP 2007211365A JP 2007211365 A JP2007211365 A JP 2007211365A JP 2009048258 A JP2009048258 A JP 2009048258A
Authority
JP
Japan
Prior art keywords
storage area
size
processing
storage
allocating
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.)
Pending
Application number
JP2007211365A
Other languages
English (en)
Inventor
Takashi Igarashi
貴 五十嵐
Yukio Kumazawa
幸夫 熊澤
Takashi Nagao
隆 長尾
Yoichi Isaka
洋一 井坂
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.)
Fujifilm Corp
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Corp
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 Fuji Xerox Co Ltd, Fujifilm Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2007211365A priority Critical patent/JP2009048258A/ja
Publication of JP2009048258A publication Critical patent/JP2009048258A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】メモリを予め確保する場合に、適切なサイズのメモリを確保することを可能とする情報処理装置、情報処理方法、及び情報処理プログラムを提供する。
【解決手段】記憶領域の確保を要求した記憶領域通知手段に対して記憶領域の割り当てを行う場合に、記憶領域を確保するためのシステムコールを用いて記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、検出手段により検出された空き容量に応じて用いることにより記憶領域の割り当てを行う記憶領域管理手段を有する。
【選択図】図6

Description

本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関し、特に適切なメモリ管理を行う情報処理装置、情報処理方法、及び情報処理プログラムに関する。
従来より、メモリの管理方法については種々の提案がされている。例えば特許文献1には、各画像処理モジュールの間に画像データを一時保持するバッファを配置し、バッファに出力要求に応えられるだけのデータが蓄積されていなければ、データを蓄積するために前段の画像処理モジュールに処理を行わせる事で、後段の画像処理モジュールは処理しやすい処理単位で処理を行いながら全体を連携させて処理する方式におけるメモリ管理方法が提案されている。
具体的には、メモリ割当/解放要求に応じてその都度OS(Operating System)のシステムコールを用いてメモリの割当/解放を行うメモリ管理方法が提案されている。また、予め所定サイズのメモリを確保しておき、メモリ割当要求に応じてその確保していたメモリから割り当て、割当/解放の状態をテーブル等で管理するメモリ管理方法が提案されている。更に、予め確保したサイズで不足であれば、再度OSに対してメモリ割当を求めるメモリ管理方法が提案されている。
特開2006−338498号公報
しかしながら、予めメモリを確保する場合、確保するメモリの適切なサイズがユーザには分からないため、接続された処理の関係によっては、処理速度向上の効果がほとんどなかったり、小さかったりすることが起こり易い。具体的には、ライン単位の処理がない場合にライン分のサイズだけメモリを予め確保していても、一度も使われないことなどがある。
このように従来の技術では、メモリを予め確保する場合に、適切なサイズのメモリを確保することが出来ないという問題点があった。
本発明は上記問題点に鑑み、メモリを予め確保する場合に、適切なサイズのメモリを確保することを可能とする情報処理装置、情報処理方法、及び情報処理プログラムに関する。
上記目的を達成するために、請求項1の発明は、記憶手段と、前記記憶手段の記憶領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報を前記記憶手段の記憶領域に記憶する複数の処理手段と、前記処理手段が前段及び後段に接続され、前段の前記処理手段が前記処理済み情報を記憶するための記憶領域を前記記憶手段に確保し、該記憶領域の前記記憶手段における位置を前段の前記処理手段に通知するとともに、前記処理済み情報が記憶されている記憶領域の前記記憶手段における位置を後段の前記処理手段に通知する記憶領域通知手段と、前記記憶手段に記憶可能な空き容量を検出する検出手段と、前記記憶領域通知手段から記憶領域の確保を要求する記憶領域要求が通知され、該要求した前記記憶領域通知手段に対して前記記憶領域の割り当てを行う場合に、前記記憶領域を確保するためのシステムコールを用いて前記記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び前記第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、前記検出手段により検出された空き容量に応じて用いることにより前記記憶領域の割り当てを行う記憶領域管理手段と、を有する。
請求項1の発明は、処理手段が記憶手段の記憶領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報を前記記憶手段の記憶領域に記憶し、記憶領域通知手段が前記処理手段が前段及び後段に接続され、前段の前記処理手段が前記処理済み情報を記憶するための記憶領域を前記記憶手段に確保し、該記憶領域の前記記憶手段における位置を前段の前記処理手段に通知するとともに、前記処理済み情報が記憶されている記憶領域の前記記憶手段における位置を後段の前記処理手段に通知し、検出手段が前記記憶手段に記憶可能な空き容量を検出し、記憶領域管理手段が前記記憶領域通知手段から記憶領域の確保を要求する記憶領域要求が通知され、該要求した前記記憶領域通知手段に対して前記記憶領域の割り当てを行う場合に、前記記憶領域を確保するためのシステムコールを用いて前記記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び前記第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、前記検出手段により検出された空き容量に応じて用いることにより前記記憶領域の割り当てを行うので、メモリを予め確保する場合に、適切なサイズのメモリを確保することを可能とする情報処理装置を提供することができる。
また、請求項2の発明は、請求項1の発明において、前記検出手段により検出された空き容量が、前記記憶領域通知手段の前段に接続された前記処理手段が前記記憶領域に記憶する前記処理済み情報のサイズの総和である第1のサイズ以上である場合に、前記記憶領域管理手段は、前記第2の方式を用いるとともに、該第2の方式で予め確保される記憶領域のサイズを前記第1のサイズとするものである。
請求項2の発明によれば、空き容量に応じて、処理済み情報のサイズの総和だけ確保するので、記憶領域が不足することを回避できるとともに、必要以上に確保することないので、適切なサイズのメモリを確保することを可能とする情報処理装置を提供することができる。
また、請求項3の発明は、請求項2の発明において、前記複数の処理手段のうち、異なる3つの前記記憶領域通知手段と接続されている処理手段が存在する場合に、前記検出手段により検出された空き容量が、前記異なる3つの前記記憶領域通知手段の前段に接続された前記処理手段が前記記憶領域に記憶する前記処理済み情報のサイズの総和と、前記異なる3つの前記記憶領域通知手段以外の記憶領域通知手段が確保する記憶領域のサイズの最大値を3倍したサイズとの和である第2のサイズ以上、かつ前記第1のサイズ未満の場合に、前記記憶領域管理手段は、前記第2の方式を用いるとともに、該第2の方式で予め確保される記憶領域のサイズを前記第2のサイズとするものである。
請求項3の発明によれば、空き容量に応じて、第2のサイズだけ確保するので、記憶領域が不足することを回避できるとともに、必要以上に確保することないので、適切なサイズのメモリを確保することを可能とする情報処理装置を提供することができる。
また、請求項4の発明は、請求項3の発明において、前記複数の処理手段のうち、異なる3つの前記記憶領域通知手段と接続されている処理手段が存在する場合に、前記検出手段により検出された空き容量が、前記異なる3つの前記記憶領域通知手段の前段に接続された前記処理手段が前記記憶領域に記憶する前記処理済み情報のサイズの総和と、前記異なる3つの前記記憶領域通知手段以外の記憶領域通知手段が確保する記憶領域のサイズの最大値を2倍したサイズとの和である第3のサイズ以上、かつ前記第2のサイズ未満の場合に、前記記憶領域管理手段は、前記第3の方式を用いるとともに、該第3の方式で予め確保される記憶領域のサイズを前記第3のサイズとするものである。
請求項4の発明によれば、空き容量に応じて、第3のサイズだけ確保するので、記憶領域が不足することを回避できるとともに、必要以上に確保することないので、適切なサイズのメモリを確保することを可能とする情報処理装置を提供することができる。
また、請求項5の発明は、請求項4の発明において、前記検出手段により検出された空き容量が、前記第3のサイズ未満の場合に、前記記憶領域管理手段は、前記第1の方式を用いるものである。
請求項5の発明によれば、空き容量に応じて、必要な時に必要なサイズだけ確保するので、他の資源を圧迫することなく、適切なサイズのメモリを確保することを可能とする情報処理装置を提供することができる。
また、請求項6の発明は、記憶手段の記憶領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報を前記記憶手段の記憶領域に記憶する複数の処理手段と、前記処理手段が前段及び後段に接続された記憶領域通知手段と、を有する情報処理装置における情報処理方法であって、前記記憶手段に記憶可能な空き容量を検出する検出段階と、前記記憶領域通知手段から記憶領域の確保を要求する記憶領域要求が通知され、該要求した前記記憶領域通知手段に対して前記記憶領域の割り当てを行う場合に、前記記憶領域を確保するためのシステムコールを用いて前記記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び前記第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、前記検出段階により検出された空き容量に応じて用いることにより前記記憶領域の割り当てを行う記憶領域管理段階と、を有する。
請求項6の発明は、請求項1の発明と同様に作用するので、請求項1と同様の効果が得られる。
請求項7の発明は、情報を記憶するための記憶手段の記憶領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報を前記記憶手段の記憶領域に記憶する複数の処理手段と、前記処理手段が前段及び後段に接続された複数の記憶領域通知手段と、を有する情報処理装置としてコンピュータを機能させるためのプログラムであって、前記記憶手段に記憶可能な空き容量を検出する検出ステップと、前記記憶領域通知手段から記憶領域の確保を要求する記憶領域要求が通知され、該要求した前記記憶領域通知手段に対して前記記憶領域の割り当てを行う場合に、前記記憶領域を確保するためのシステムコールを用いて前記記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び前記第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、前記検出ステップにより検出された空き容量に応じて用いることにより前記記憶領域の割り当てを行う記憶領域管理ステップと、を有する処理をコンピュータに実行させるための情報処理プログラムである。
請求項7の発明は、請求項1の発明と同様に作用するので、請求項1と同様の効果が得られる。
本発明によれば、メモリを予め確保する場合に、適切なサイズのメモリを確保することを可能とする情報処理装置、情報処理方法、及び情報処理プログラムを提供することができるという効果が得られる。
以下、図面を参照して、本発明の実施の形態について詳細に説明する。なお、本実施の形態では、情報処理装置としてパソコンを用いた例について説明する。また、本実施の形態で処理対象となる情報は、画像情報を例にしている。
まず、図1を用いて、パソコン10の構成について説明する。パソコン10は、CPU(Central Processing Unit)18と、HDD(Hard Disk Drive)20と、RAM(Random Access Memory)22と、通信I/F(インタフェース)24と、ROM(Read Only Memory)26と、表示部28と、操作入力部30と、バス32とを含む。
CPU18は、パソコン10の全体の動作を司るものであり、後述するフローチャートに示される処理は、CPU18により実行される。HDD20は、プログラム、OS(Operating System)等が記録される記憶装置である。RAM22(記憶手段)は、OSやプログラムやデータ等が展開される記憶装置である。以下の説明におけるメモリ領域は、このRAM22上の領域を示している。
通信I/F24は、ネットワークに接続するためのものであり、NICやそのドライバで構成される。この通信I/F24は、ネットワークに接続しない場合には不要である。
ROM26は、パソコン10の起動時に動作するブートプログラムなどが記憶されている記憶装置である。表示部28は、パソコン10に関する情報をパソコン10のユーザに表示するものである。操作入力部30は、ユーザがパソコン10の操作や情報を入力する際に用いられるものである。バス32は、情報のやりとりが行われる際に使用される。
次に、図2を用いて、本実施の形態に係るソフトウェア構成について説明する。同図に示されるように、パソコン10のソフトウェアは、大別して処理管理部46、画像処理モジュール(処理手段)38a、38b、38c、及びバッファモジュール(記憶領域通知手段)40a、40bを含んで構成される。
以下の説明では、バッファモジュール40a、40bのように、末尾にa、b等の添字が付与された符号により表される複数の要素を総称して指し示す時、或いは、それら複数の要素のうちの任意の1つを指し示す時は、末尾の添字を省いて説明する。
上記処理管理部46は、画像処理モジュール38やバッファモジュール40に係る処理の管理を行う。また、処理管理部46は、更にメモリ領域管理部(記録領域管理部)46a、空きメモリ検出部(検出手段)46b、エラー検出部46c、ワークフロー管理部46d、及びリソース管理部46eを含む。
リソース管理部46eは、メモリ等の資源の管理を行うものである。このリソース管理部46eに含まれるメモリ領域管理部46aは、バッファモジュール40からメモリ領域(記憶領域)の確保を要求するメモリ要求(記憶領域要求)が通知され、該要求したバッファモジュール40に対してメモリ領域の割り当てを行う場合に、メモリ領域を確保するためのシステムコールを用いてメモリ領域の割り当てを行う第1の方式、予めメモリ領域を確保しておき、確保していたメモリ領域を割り当てる第2の方式、及び第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、空きメモリ検出部46bにより検出された空き容量に応じて用いることによりメモリ領域の割り当てを行うものである。
なお、第1の方式と第2の方式とを併用する第3の方式とは、第2の方式のように、予めメモリを確保しておき、確保した領域で足りない場合には、第1の方式のようにシステムコールを用いてメモリ領域を確保するものである。
なお、上記システムコールとは、OSが提供する関数であり、本実施の形態では、メモリ領域を確保するために、OSに対してメモリ領域を要求するためのものと、メモリ領域を解放するものとしている。
空きメモリ検出部46bは、RAM22に記憶可能な空き容量を検出するものである。これも通常はシステムコールにより得られる。エラー検出部46cは、各画像処理モジュール38や各バッファモジュール40に係るエラーを検出するものであるが、本実施の形態では特にメモリ領域を確保するシステムコールによりメモリ領域が確保できなかったことを検出するものである。
ワークフロー管理部46dは、バッファモジュール40に関する情報を持ち、本実施の形態では、上記メモリ領域管理部46aがどれだけメモリ領域を確保する必要があるのかを判断する際に、バッファモジュール40の情報を提供するものである。
上記画像処理モジュール38は、RAM22のメモリ領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報をRAM22のメモリ領域に記憶するもので、同図に示されるように複数存在する。
また、バッファモジュール40は、画像処理モジュール38が前段及び後段に接続され、前段の画像処理モジュール38が処理済み情報を記憶するためのメモリ領域をRAM22に確保し、メモリ領域のRAM22における位置(以下、アドレスと記す)を前段の画像処理モジュール38に通知するとともに、処理済み情報が記憶されているメモリ領域のRAM22におけるアドレスを後段の画像処理モジュール38に通知するものである。
このように、本実施の形態における各画像処理モジュール38や各バッファモジュール40は、パイプライン形態又はDAG(Directed Acyclic Graph:有向非循環グラフ)形態で連結されている。
そして、上記ソフトウェア構成における基本的な処理の流れは、例えば画像処理モジュール38aが処理した処理済み情報をバッファモジュール40aがメモリ領域管理部46aにより確保したメモリ領域に記憶し、記憶された処理済み情報に対して画像処理モジュール38bが更に処理を行い、それにより得られた処理済み情報をバッファモジュール40bがメモリ領域管理部46aにより確保したメモリ領域に記憶する、という流れとなっている。
上記流れにおいて、各画像処理モジュール38が処理を行う際に、処理対象の情報が記憶されたメモリ領域のアドレス、及び処理済み情報を記憶するためのメモリ領域のアドレスが必要となるが、このアドレスをバッファモジュール40が画像処理モジュール38に通知する。
次に、図3を用いて、異なる3つのバッファモジュールと接続されている画像処理モジュールの例について説明する。
図3に示される「M」は画像処理モジュール38を示し、「B」はバッファモジュール40を示しており、このように表現した場合、図2に示した画像処理モジュール38とバッファモジュール40は、図3(A)に示される表現となる。
そして、同図(B)は、バッファモジュール40の前段に1つの画像処理モジュール38が接続され、後段には2つの画像処理モジュール38が接続された例を示している。
また、同図(C)は、異なる3つのバッファモジュールと接続されている画像処理モジュールの例を示すものであり、画像処理モジュール38の前段に2つのバッファモジュール40が接続され、後段に1つのバッファモジュール40が接続された例を示している。
同図(C)の場合、バッファモジュール40が3つとなるため、各バッファモジュール40が確保するメモリ領域の数は、少なくとも3つとなる。
次に、図4を用いて、確保したメモリ領域を管理するためのテーブルについて説明する。このテーブルは、同図に示されるように、使用されていないメモリ領域の先頭アドレスとサイズとを管理するテーブルである。このテーブルにより使用可能なメモリ領域の先頭アドレス、及びサイズを得ることができる。また、メモリ領域を確保する場合には、最大サイズの領域を、要求サイズの領域と残りの領域とに分割して確保し、要求サイズの領域はテーブルから削除する。
以下、本実施の形態に係る処理を、フローチャートを用いて説明する。このフローチャートは、上述したCPU18により行われるものである。また、以下の説明では、画像処理モジュール38を単にモジュールと表現し、バッファモジュール40を単にバッファと表現する。また、上述した1つの画像処理モジュール38に接続された異なる3つのバッファモジュールを分岐バッファと表現する。更に、バッファモジュール40の処理により得られ、メモリ領域に記憶される処理済み情報の情報量を、そのバッファモジュール40の出力量と表現し、バッファの前段を単にバッファ前段と表現する。
また、以下で説明する処理は、バッファモジュール40から要求されたメモリ領域の管理に関する処理であり、画像処理モジュール38からのメモリ領域の要求については、リソース管理部46eが、その都度システムコールを用いて行うものとする。これは、画像処理モジュール38からのメモリ領域の要求は、通常初期化時のみに発生し、実行時の処理性能に影響を及ぼさないためである。
まず、図5を用いて、メモリ領域管理部46aにより行われる初期化処理について説明する。この初期化処理とは、各画像処理モジュール38が最初の処理を行う前に行われる処理である。
まず、ステップ101で、バッファ前段のモジュールの出力量P[i]の総和Pt、分岐バッファ前段のモジュールの出力量の総和Pb、分岐バッファ以外のバッファが確保する記憶量の最大値Bm、をそれぞれ求める。
上記P[i]とは、例えば図2において、モジュール38a、38bの各々の出力量を示し、この場合は、P[0]がモジュール38aの出力量、P[1]がモジュール38bの出力量を示す。そして、総和Ptは、P[0]+P[1]となる。
また、総和Pbとは、異なる3つのバッファが各々確保する3つメモリ領域のサイズの和を示している。
更に、最大値Bmとは、例えば図2において、バッファモジュール40a、40bが確保するメモリ領域のサイズの中で最も大きいサイズを示している。
次のステップ102で、方式設定処理を行う。この方式設定処理とは、上記3つの方式のうち、いずれの方式を用いるかをRAM22の空き容量に応じて定める処理である。
この方式設定処理の詳細を、図6のフローチャートを用いて説明する。まず、ステップ201で、空き容量Fを検出する。次のステップ202で、F≧Ptか否か判断する。ステップ202で肯定判断した場合には、ステップ203で、バッファ毎に第2の方式を用いることとし、ステップ204でバッファ毎にP[i]のサイズ(全体でPt)のメモリを確保し、処理を終了する。ここで確保されたメモリ領域は、P[i]ずつバッファ毎に固定的に割り当てられる。
一方、ステップ202で、否定判断した場合には、ステップ205で、F≧3×Bm+Pbか否か判断する。ステップ205で、肯定判断した場合には、ステップ206でバッファ毎に第2の方式を用いることとし、ステップ207で3×Bm+Pbのサイズのメモリを確保し、処理を終了する。ここで確保されたメモリ領域のうち、Pbは分岐バッファ前段のモジュールの出力量の総和であるので、各分岐バッファにPbから固定的にメモリ領域が割り当てられる。そして、残った3×Bmのサイズのメモリ領域で、分岐バッファ以外のバッファからのメモリ領域の要求に対応することとなる。
ステップ205で否定判断した場合には、ステップ208で更にF≧2×Bm+Pbか否か判断する。ステップ208で肯定判断した場合には、ステップ209で第3の方式を用いることとし、ステップ210で2×Bm+Pbのサイズのメモリを確保し、処理を終了する。ここで確保されたメモリ領域のうち、Pbは分岐バッファ前段のモジュールの出力量の総和であるので、各分岐バッファにPbから固定的にメモリ領域が割り当てられる。そして、残った2×Bmのサイズのメモリ領域で、分岐バッファ以外のバッファからのメモリ領域の要求に対応することとなる。
一方、ステップ208で、否定判断した場合には、ステップ211で、第1の方式を用いることとし、処理を終了する。
上述したフローチャートでは、3×Bm+Pbと、2×Bm+Pbを用いた2つの分岐処理がされている。これらの理由について説明する。まず、2×Bm+Pbでメモリを管理する場合、2×Bmのサイズのメモリ領域を分断するように、サイズがBmのメモリ領域を割り当てている状態で、更にサイズがBmのメモリ領域を要求された場合、サイズがBmのメモリ領域を連続して確保することができない。従って、ステップ208で2×Bm+Pbだけ確保できた場合には、必要に応じてシステムコールを用いるようにする。
一方、3×Bm+Pbでメモリを管理する場合、3×Bmのサイズのメモリ領域を分断するように、サイズがBmのメモリ領域を割り当てている状態で、更にサイズがBmのメモリ領域を要求された場合でも、残りのサイズが2×Bmであり、しかも分断されたことにより2つの空き領域が発生することとなるが、いずれかの空き領域には、サイズがBmのメモリ領域が連続している。従って、ステップ205で3×Bm+Pbだけ確保できた場合には、必要に応じてシステムコールを用いる必要がないため、第3の方式でメモリを管理することができる。
以上説明した処理が初期化処理である。次に、図7のフローチャートを用いて、バッファからメモリ領域を要求された場合の処理について説明する。
バッファからメモリ領域を要求されると、ステップ301で、方式切り替え処理を行い、ステップ302で、方式に応じたメモリ確保処理を行う。これらの処理について、以下順に説明する。
まず、図8のフローチャートを用いて、方式切り替え処理について説明する。最初のステップ401で、現在用いている方式が第1の方式か否か判断する。ステップ401で肯定判断した場合には、ステップ402で上述した方式設定処理を行い、否定判断した場合には、そのまま処理を終了する。
このように、この処理は、第1の方式の場合には、第2、或いは第3の方式に切り替えるための処理である。
次に、図9、図10、図11のフローチャートを用いて、メモリ確保処理について説明する。まず、図9のフローチャートを用いて、第1の方式の場合のメモリ確保処理を説明する。
第1の方式は、メモリ領域が要求される度にシステムコールを用いて確保する処理であるので、ステップ501で、OSにメモリを要求し、ステップ502で、システムコールの戻り値によりメモリ確保が成功したか否か判断する。
ステップ502で、肯定判断した場合には、ステップ503で、確保したメモリ領域を要求元のバッファに割り当て、処理を終了する。一方、ステップ502で否定判断した場合には、ステップ504で現在用いている方式が第1の方式か否か判断する。ステップ504で肯定判断した場合には、ステップ508でエラーを要求元のバッファに返し、処理を終了する。
ステップ504で否定判断した場合には、第1の方式以外の方式であるため、メモリ領域が予め確保されていることとなる。そのメモリ領域をステップ505で解放する。そしてステップ506で、再びOSにメモリを要求し、ステップ507で、システムコールの戻り値によりメモリ確保が成功したか否か判断する。ステップ507で否定判断した場合には、上記ステップ508でエラーを要求元のバッファに返し、処理を終了する。一方、ステップ507で肯定判断した場合には、ステップ503で、確保したメモリ領域を要求元のバッファに割り当て、処理を終了する。
上述した処理のように、最初にメモリ領域が確保できない場合には、確保しておいたメモリ領域を解放することで、更にメモリ領域の確保を試みるので、メモリ領域が確保できない事態を極力回避することができる。
次に、図10のフローチャートを用いて、第2の方式の場合のメモリ確保処理を説明する。
まず、ステップ601で、メモリ領域を確保し、ステップ602で確保したメモリ領域をテーブルから削除することでテーブルを更新する。次のステップ603で、確保したメモリ領域を要求元に割り当て、処理を終了する。
以上説明した第2の方式の場合は、全てのバッファに対して必要なメモリ領域が確保されているため、ステップ601でメモリ領域を必ず確保することができる。
次に、図11のフローチャートを用いて、第3の方式の場合のメモリ確保処理を説明する。まず、ステップ701で、テーブルに要求サイズ以上のメモリ領域が存在するか否か判断する。ステップ701で肯定判断した場合には、ステップ704で、メモリ領域を確保し、ステップ705で、確保したメモリ領域をテーブルから削除することでテーブルを更新し、ステップ706に処理が進む。
一方、ステップ701で否定判断した場合には、ステップ702で、OSにメモリを要求し、ステップ703で、システムコールの戻り値によりメモリ確保が成功したか否か判断する。
ステップ703で、肯定判断した場合には、ステップ706で、確保したメモリ領域を要求元のバッファに割り当て、処理を終了する。一方、ステップ703で否定判断した場合には、ステップ707でエラーを要求元のバッファに返し、処理を終了する。
次に、図12のフローチャートを用いて、メモリ領域を解放する処理について説明する。バッファがメモリ領域の解放を要求すると、ステップ801で、現在用いている方式が第1の方式か否か判断する。
ステップ801で肯定判断した場合には、システムコールを用いて確保されたメモリ領域であるので、ステップ802で、OSにメモリ解放要求をして処理を終了する。一方、ステップ801で否定判断した場合には、ステップ803で、テーブルを更新し、処理を終了する。ここでの更新は、解放するメモリ領域をテーブルに登録することを示している。
以上説明した実施の形態によれば、空きメモリ量に応じて、メモリの管理方法を切り替えるため、メモリ不足になりにくく、また処理速度を向上することが可能となる。また、サーバーマシンのように負荷状況の変動が大きい場合でも、スワップアウトによる大幅な速度低下及びメモリ割当失敗による途中終了を防止することができる。
なお、以上説明した各フローチャートの処理の流れは一例であり、本発明の主旨を逸脱しない範囲内で処理順序を入れ替えたり、新たなステップを追加したり、不要なステップを削除したりすることができることは言うまでもない。
パソコンの構成を示す図である。 ソフトウェア構成を示す図である。 分岐バッファを示す図である。 確保したメモリ領域を管理するためのテーブルを示す図である。 初期化処理を示すフローチャートである。 方式設定処理を示すフローチャートである。 メモリ領域要求時処理を示すフローチャートである。 方式切り替え処理を示すフローチャートである。 メモリ領域確保処理(第1の方式)を示すフローチャートである。 メモリ領域確保処理(第2の方式)を示すフローチャートである。 メモリ領域確保処理(第3の方式)を示すフローチャートである。 解放処理を示すフローチャートである。
符号の説明
10 パソコン
18 CPU
20 HDD
22 RAM
38、38a、38b、38c 画像処理モジュール
40、40a、40b バッファモジュール
46 処理管理部
46a メモリ領域管理部
46b 空きメモリ検出部
46c エラー検出部
46d ワークフロー管理部
46e リソース管理部

Claims (7)

  1. 記憶手段と、
    前記記憶手段の記憶領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報を前記記憶手段の記憶領域に記憶する複数の処理手段と、
    前記処理手段が前段及び後段に接続され、前段の前記処理手段が前記処理済み情報を記憶するための記憶領域を前記記憶手段に確保し、該記憶領域の前記記憶手段における位置を前段の前記処理手段に通知するとともに、前記処理済み情報が記憶されている記憶領域の前記記憶手段における位置を後段の前記処理手段に通知する記憶領域通知手段と、
    前記記憶手段に記憶可能な空き容量を検出する検出手段と、
    前記記憶領域通知手段から記憶領域の確保を要求する記憶領域要求が通知され、該要求した前記記憶領域通知手段に対して前記記憶領域の割り当てを行う場合に、前記記憶領域を確保するためのシステムコールを用いて前記記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び前記第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、前記検出手段により検出された空き容量に応じて用いることにより前記記憶領域の割り当てを行う記憶領域管理手段と、
    を有する情報処理装置。
  2. 前記検出手段により検出された空き容量が、前記記憶領域通知手段の前段に接続された前記処理手段が前記記憶領域に記憶する前記処理済み情報のサイズの総和である第1のサイズ以上である場合に、前記記憶領域管理手段は、前記第2の方式を用いるとともに、該第2の方式で予め確保される記憶領域のサイズを前記第1のサイズとする請求項1に記載の情報処理装置。
  3. 前記複数の処理手段のうち、異なる3つの前記記憶領域通知手段と接続されている処理手段が存在する場合に、前記検出手段により検出された空き容量が、前記異なる3つの前記記憶領域通知手段の前段に接続された前記処理手段が前記記憶領域に記憶する前記処理済み情報のサイズの総和と、前記異なる3つの前記記憶領域通知手段以外の記憶領域通知手段が確保する記憶領域のサイズの最大値を3倍したサイズとの和である第2のサイズ以上、かつ前記第1のサイズ未満の場合に、前記記憶領域管理手段は、前記第2の方式を用いるとともに、該第2の方式で予め確保される記憶領域のサイズを前記第2のサイズとする請求項2に記載の情報処理装置。
  4. 前記複数の処理手段のうち、異なる3つの前記記憶領域通知手段と接続されている処理手段が存在する場合に、前記検出手段により検出された空き容量が、前記異なる3つの前記記憶領域通知手段の前段に接続された前記処理手段が前記記憶領域に記憶する前記処理済み情報のサイズの総和と、前記異なる3つの前記記憶領域通知手段以外の記憶領域通知手段が確保する記憶領域のサイズの最大値を2倍したサイズとの和である第3のサイズ以上、かつ前記第2のサイズ未満の場合に、前記記憶領域管理手段は、前記第3の方式を用いるとともに、該第3の方式で予め確保される記憶領域のサイズを前記第3のサイズとする請求項3に記載の情報処理装置。
  5. 前記検出手段により検出された空き容量が、前記第3のサイズ未満の場合に、前記記憶領域管理手段は、前記第1の方式を用いる請求項4に記載の情報処理装置。
  6. 記憶手段の記憶領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報を前記記憶手段の記憶領域に記憶する複数の処理手段と、前記処理手段が前段及び後段に接続された記憶領域通知手段と、を有する情報処理装置における情報処理方法であって、
    前記記憶手段に記憶可能な空き容量を検出する検出段階と、
    前記記憶領域通知手段から記憶領域の確保を要求する記憶領域要求が通知され、該要求した前記記憶領域通知手段に対して前記記憶領域の割り当てを行う場合に、前記記憶領域を確保するためのシステムコールを用いて前記記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び前記第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、前記検出段階により検出された空き容量に応じて用いることにより前記記憶領域の割り当てを行う記憶領域管理段階と、
    を有する情報処理方法。
  7. 情報を記憶するための記憶手段の記憶領域に記憶された所定の情報に対して予め定められた処理を行い、該処理により得られた処理済み情報を前記記憶手段の記憶領域に記憶する複数の処理手段と、前記処理手段が前段及び後段に接続された複数の記憶領域通知手段と、を有する情報処理装置としてコンピュータを機能させるためのプログラムであって、
    前記記憶手段に記憶可能な空き容量を検出する検出ステップと、
    前記記憶領域通知手段から記憶領域の確保を要求する記憶領域要求が通知され、該要求した前記記憶領域通知手段に対して前記記憶領域の割り当てを行う場合に、前記記憶領域を確保するためのシステムコールを用いて前記記憶領域の割り当てを行う第1の方式、予め記憶領域を確保しておき、確保していた記憶領域を割り当てる第2の方式、及び前記第1の方式と第2の方式とを併用する第3の方式のいずれか1つの方式を、前記検出ステップにより検出された空き容量に応じて用いることにより前記記憶領域の割り当てを行う記憶領域管理ステップと、
    を有する処理をコンピュータに実行させるための情報処理プログラム。
JP2007211365A 2007-08-14 2007-08-14 情報処理装置、情報処理方法、情報処理プログラム Pending JP2009048258A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007211365A JP2009048258A (ja) 2007-08-14 2007-08-14 情報処理装置、情報処理方法、情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007211365A JP2009048258A (ja) 2007-08-14 2007-08-14 情報処理装置、情報処理方法、情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2009048258A true JP2009048258A (ja) 2009-03-05

Family

ID=40500440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007211365A Pending JP2009048258A (ja) 2007-08-14 2007-08-14 情報処理装置、情報処理方法、情報処理プログラム

Country Status (1)

Country Link
JP (1) JP2009048258A (ja)

Similar Documents

Publication Publication Date Title
JP6219512B2 (ja) 仮想ハドゥープマネジャ
CN103098014B (zh) 存储系统
JP6213053B2 (ja) プログラム、情報処理装置およびスケジュール決定方法
JP2008226181A (ja) 並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法
CN110196770B (zh) 云系统内存数据处理方法、装置、设备及存储介质
JP2007115246A (ja) ソフトウェアによって使用される資源を動的に割り当てるための方法及び装置
US10853128B2 (en) Virtual machine management device and virtual machine management method
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
JP2006350780A (ja) キャッシュ割当制御方法
CN110213128B (zh) 服务端口检测方法、电子设备及计算机存储介质
CN110750336B (zh) 一种OpenStack虚拟机内存热扩容方法
CN111506423A (zh) 一种资源的调度方法、装置、电子设备及存储介质
CN109960569B (zh) 一种虚拟化处理方法及装置
US8458719B2 (en) Storage management in a data processing system
JP6653710B2 (ja) 計算機および計算機の制御方法
JP2008107966A (ja) 計算機システム
CN111177032A (zh) 缓存空间申请方法、系统、装置及计算机可读存储介质
US10552318B2 (en) Working set adjustment in a managed environment
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
JP2007328413A (ja) 負荷分散方法
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
CN117078495A (zh) 图形处理器的内存分配方法、装置、设备及存储介质
JP2006107197A (ja) メモリ制御方法およびプログラムならびに端末装置
JP2009048258A (ja) 情報処理装置、情報処理方法、情報処理プログラム
JP5699665B2 (ja) サーバ装置、処理実行方法およびプログラム