メモリ管理
memory management
参考
メモリ管理の分類
手動
malloc/freeでガンバる
自動
コンピュータの動作の流れ
1. 命令をもとに、メモリからレジスタにデータを読み出す
2. レジスタ上のデータをもとに計算する
3. 計算結果をメモリに書き戻す
参照の局所性
多くのプログラムに見られる特徴
時間的局所性
ある時点でアクセスされたデータは近い将来に再びアクセスされる可能性が高い
ループ処理中のコード領域とか
空間的局所性
ある時点であるデータにアクセスされると、それに近い場所のデータにアクセスする可能性が高い
配列要素の全走査とか
プログラムが主記憶領域を要求するタイミング
プログラムの開始時
静的に決まる
実行中に必要となったメモリを確保する時点
動的に決まる
プロセスごとに予め決められた同じ大きさの領域を割り当てておく方式
プロセス生成時に、選択肢がほぼないので、領域を割り当てるコストが小さくて済む
しかし実際に使われなかった場合、確保した領域が無駄になる