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