C言語入門(15) そもそもメモリーって一体何なのか

Posted: 2012年10月30日

いままでポインターについて書いてきましたが
メモリーって一体何なのか

メモリー

様々な言い方はありますがメインメモリー

こんなやつ

たまに、メモリーとハードディスクがよくわかっていない方もいますが
見た目は結構違うので見ればわかるが
どちらも記憶装置だから勘違いするのも無理はないかも

何をするものなのか

ノイマン型コンピュータになってからメモリーに処理とデータを格納し実行する
具体的には、1+5(ADD 1,5)のようなイメージ

つまり、実行中のプログラムやデータが格納されています。
メモリーは記憶装置のため、プログラムを処理(実行)することは出来ず
CPUがメモリーから、プログラムやデータを読み込み処理を行い
処理を行なっています。

メモリーの容量と、パソコンに表示されている容量が違う

例えば4Gbyteのメモリーが付いているパソコンを購入したとしても
4Gの計算がメーカーによって異なる場合や、破損して認識できる容量が表示される
または、OS(Windows)などが認識できないなど様々な理由があります。

メモリーの容量<表示されている容量の場合もあります。
それは、仮想メモリーという技術を用いている場合です。
仮想メモリーは、ハードディスクの一部をメモリーの代わりとして使用する技術です。
これを使用することでメモリーが少ない環境でもプログラムの実行が可能です。
しかし、ハードディスクを用いているため処理は圧倒的に遅くなります。

メモリーにアクセスできるならプログラムは何でもできる?

メモリーは実質OSに管理されています。
そのため、書込み禁止領域に書きこむ際は、プログラムは異常終了する場合があります。
それは、OSが管理している証拠です。

また、書き込み可能領域でも、プロセス(exeの実行単位)領域を決められているため、別のプロセスが使用している
メモリーにアクセスすることはできません。
具体的には、メモ帳を2つ表示している場合
片方のメモ帳に表示されている情報は、もう片方のメモ帳は、相手のメモリー上からは、取得することができない
※受け渡しを行うプログラムが作成されていれば別

つまり、私達が作成したプログラムが暴走したとしても他のプロセスには、影響が無いため
安心して開発ができる
毎回ブルースクリーンになられたら開発どころではなくなるし〜

OSのメモリーの管理方法

OSによって管理が異なるため一概になんとも言えないが
基本的には、NULL(0)アドレスは、書込み禁止になっているが
そうではないOSも存在したりと
実行環境のOSの理解が必要となります。

メモリーの詳細

メモリーの詳細は、
ここに書くと長くなりすぎ
誤った情報を載せそう
進化が早いため、情報が古くなり役に立た無くなりそう
な理由のため省略します。

検索すれば、すぐに出てくる・・・
これを言ったらおしまいな気もするけど〜

カテゴリー: プログラム, 入門 | タグ: , | コメント無し »

コメント