メモリとは
メモリとはデータや演算結果を保持するための領域です。
大きく分けてメモリには2種類があります。
主記憶装置(メインメモリ)
メインメモリとはプログラムを動かす際にデータや計算結果などを保存しておくための領域の事です。
ある程度は高速にアクセスできますが、比較的に高価なので容量が少ないです。
※ただ昔に比べるとかなり大容量にはなっています。
プログラム上では必要に応じてHDD等からデータをメモリ上に展開して使用しています。
又、計算結果の保持用にも使用されます。
C言語やC++等では、この展開するメモリの制御をプログラムで行う必要があります。
補助記憶装置
HDD等のデータ等を保存しておくための領域の事です。
DVDやBD等の外部に保存する媒体も含まれます。
メインメモリと比べてアクセス速度が遅いが、比較的に大容量が保存できる。
CPUからは直接アクセスすることが出来ないため、メインメモリに展開してから使用する必要があります。
メモリ領域
プログラムで扱うメモリの領域にはいくつか種類があります。
これら領域は基本的にメインメモリ上に割り当てられます。
プログラム領域
機械語に翻訳されたプログラムが格納される領域です。
プログラムを実行したタイミングで自動的にメモリが確保されて展開されます。
プログラムのコード量に応じてサイズが変化します。
静的領域
グローバル変数等のサイズの可変しない静的な値が格納される領域です。
これもプログラムを実行したタイミングでメモリが確保されます。
グローバル変数等の使用量に応じてサイズが変化します。
ヒープ領域
プログラムでメモリを制御して動的に使用される領域です。
必要に応じてプログラマが確保と解放を行って管理する必要があります。
使えるサイズが比較的に大きいが、メモリ量が足りなくならないように制御する必要があります。
スタック領域
関数内で定義されたローカル変数等の寿命の短い値が格納される領域です。
使用できる領域が小さく、環境にもよりますが1MB程度の領域になる場合が多いです。
今回紹介した内容がプログラマーが扱う代表的なメモリの内容になります。
基礎的な知識なのでこれらは必ず理解するようにしておきましょう!