はじめに
structとclassの違いについて勉強している時、ヒープ領域・スタック領域は、プログラム中で一時的に使用するメモリのことで、RAM上の領域として割り当てられるということを知りました。
基本情報技術者試験とかで聞いたことあるけど、RAMって何という疑問が出てきたので、調べてみました!
主記憶装置(メモリ)とは
主記憶装置はCPUから直接アクセスできる記憶装置のこと。
CPUはメモリのアドレスを指定して、データを読み込んだり書き込んだりする。
メモリにはRAMとROMの2種類ある。
RAM
RAMとは、「Random Access Memory」の略称で、日本語に訳すと自由に読み書きができるメモリです。主に、パソコンやスマートフォンに搭載されている作業用のメインメモリを指す。高速なデータアクセスと一時的なデータ保持能力を持つ。電源を切ると、データが消えるため、一時的なデータのみを保存する。この性質を「揮発性」という。
そこで、電源を切った後も継続的に保持する必要がある情報については、HDDやSSDなどの補助記憶装置に保存する。
ROM
ROMとは、「Read Only Memory」の略称で、日本語に訳すると読み取り専用メモリです。保存されているデータだけを読み込むことができるメモリで、書き込むことは基本的にできません。
コンピュータの基本的な動作情報が格納されている。書き換えることができないため、永続的な情報を保存するのに適している。
電源を切っても、データが失われず、データを保持し続ける。この性質を「不揮発性」という。
補助記憶装置とは
主記憶装置(メインメモリ)以外の外部記憶装置のこと。
HDD/SSD
HDDはデータを永続的に保存することが可能。RAMのようにデータを書き換えることはできるが、電源を切ってもデータはそのまま保存される。大量のデータを保存できるのもストレージのメリットですが、RAMと比べるとデータの読み書きの速度は遅いのが欠点。
SSDは、HDDの遅さをカバーし、より高速なデータ処理を実現することができる。
はじめの疑問の解決
RAMは、「システムが動作中に任意に書き換える可能性があるデータ」を格納する場所。プログラムが使用する変数データだけではなく、スタックメモリ・ヒープメモリなどもRAM上の領域として割り当てられる。
参考文献