仮想メモリ
プログラムから見たメモリだよ
実際にはハードディスクだよ
メモリっぽいお仕事をするよ
簡単に書くよ
仮想メモリ(読:カソウメモリ 英:virtual memory)とは
プログラムから見たメモリのこと。
あるいは
メモリっぽい役割を与えられた、ハードディスクの一部
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「メモリ」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
今回 登場するメモリは「パソコンさんが作業するときに使う机」です。
物としては、緑色の長方形に黒い四角が何個かくっついた板です。
パソコンさんが仕事中の内容を記憶させます。
以上を踏まえて
なんちゃってメモリ
が「仮想メモリ」です。
実際のメモリとは違うけどメモリっぽいやつですね。
いきなり「なんちゃってメモリ」と言われても分からないですよね。
大丈夫です。
順を追って説明します。
単に「仮想メモリ」と言った場合、
1.プログラムから見たメモリ
2.メモリっぽい役割を与えられたハードディスクの一部
のどちらかを指していることが多いです。
この2つは同じと言えば同じです……が、まとめて考えると混乱します。
分けて見ていきましょう。
まずは
1.プログラムから見たメモリ
について説明します。
実は、ですね。
プログラムから見たメモリの大きさと実際にコンピュータにくっついているメモリの大きさは違います。
メモリ内のどーでもいい内容をハードディスクに一時的にしまうことで(ハードディスクの一部をメモリっぽく使うことで)、プログラムに対して実際のメモリより大きなメモリがあると錯覚させる技があるのです。
例えば、そうですね。
コンピュータにくっついている実際のメモリが10GBだったとしましょう。
普通に考えたら、同時に動かせるプログラムはメモリ10GB分ですよね?
使うメモリが6GBのプログラムと4GBのプログラムは同時に動かせます。
6GBのプログラムと5GBのプログラムは同時に動かせません。
1GB分、足りないからです。
ところが、です。
使うメモリが6GBのプログラムと5GBのプログラムを同時に動かす技があるのです。
まず、使うメモリが6GBのプログラム1を起動します。
そうすると、メモリが6GB分、使われます。
次に、6GBのうち、あまり使わない1GB分をハードディスクにしまってしまいます。
最初はメモリを6GB使っていました。
これをメモリ5GBとハードディスク1GBに分けるのです。
そうすると、メモリの空いている部分は5GBです。
メモリを5GB使うプログラム2を起動できます。
ところで、プログラム1がハードディスクにしまった1GB分を使いたくなったら、どうしましょうね?
使うときはメモリに持ってこなくては いけません。
ですが、メモリは10GB分、全部 使っている状態です。
そんなときは、プログラム2から1GB分、ハードディスクに移します。
プログラム2はメモリを5GB使っていました。
これをメモリ4GBとハードディスク1GBに移し替えるのです。
そうすると、メモリには1GB分の空きが できます。
この空いた部分にプログラム1で使う1GBを移します。
このような工夫と譲り合いの精神を発揮できれば素敵です。
実際のメモリが10GBでも合計11GBのメモリを使うプログラムを動かせます。
これは もう「メモリが11GBあるのと一緒」ですね。
この話において、実際のメモリは10GBです。
ですが、プログラムさんはメモリを11GB分使っています。
「プログラムから見たメモリは11GBある」と言えるでしょう。
このときの「プログラムさんから見たメモリ」が「仮想メモリ」です。
11GBの方ですね。
あと、ついでなので書いておくと、コンピュータにくっついている実際のメモリは「物理メモリ」と言います。
10GBの方です。
せっかくなので、仮想メモリと物理メモリは一緒に覚えてあげてください。
これが仮想メモリの1つ目の意味です。
1.プログラムから見たメモリ
ですね。
次に
2.メモリっぽい役割を与えられたハードディスクの一部
について説明します。
とはいえ、ここまでの説明で、すでに説明してしまいましたけどね。
先ほどの話を思い出してください。
メモリ上の使っていない部分をハードディスクに移しました。
これは言い方を変えると
ハードディスクの一部をメモリとして使っている
とも言えます。
この「メモリっぽく使っているハードディスクの一部」を指して「仮想メモリ」と表現する人もいます。
これが仮想メモリの2つ目の意味です。
2.メモリっぽい役割を与えられたハードディスクの一部
ですね。
まとめると、仮想メモリは
1.プログラムから見たメモリ
2.メモリっぽい役割を与えられたハードディスクの一部
のどちらかを意味する用語です。
改めて、この2つの意味を見比べて、いかがでしょう。
似たようなものと言えば似たようなものですし、違うと言えば違う気もしませんか?
一言でまとめるよ
まぁ「仮想メモリ」って単語が出てきたら「プログラムで使えるメモリの大きさ、もしくはメモリっぽく使えるハードディスクの一部なんだな~」と お考えください。
おまけ
■訳してみるよ
「仮想」は日本語ですね。
「memory(メモリ)」の意味は「記憶」とか「記憶力」とかです。
何となく くっつけると
仮想の記憶
となります。
■検索してみる?






