next up previous contents index
Next: メモリの状態遷移 Up: メモリ管理 Previous: メモリ管理

行列クラスのメモリ管理

B.1に示すように,メモリ管理はメモリの状態遷移 という概念に基づいて行なわれる。
  
図 B.1: MATXのメモリ管理
¥includegraphics[width=0.5¥linewidth]{Fig/memory.eps}

メモリは関数呼び出しによって
1.
SYS状態 (OSによって管理されている状態)
2.
TMP状態 (malloc()によってOSからメモリを確保した状態)
3.
VAR状態 (変数に代入された状態)
4.
REV状態 (メモリ管理リストに登録された状態)
4つの状態を遷移する。状態遷移に関係する関数について説明する。

行列クラスライブラリにおいてメモリが必要になった場合,まず,メモリ管理リス トを調べて適当な大きさの行列が登録されていれば,そのメモリを用い, 適当な大きさの行列が登録されていなければ,OSからメモリを確保する。 このメモリ管理機構によって,関数malloc()free()が呼ばれる 回数を減らし,内部処理の高速化を行なっている。特に,この方法はシミュレー ションのように同じプログラムが繰り返し呼ばれる場合に有効である。


Masanobu KOGA 平成10年8月19日