じっさいより 大きな 記おく
プロセスが いくつも 同時に 動くと 言いました(2話)。 その プログラムたちは、それぞれ おぼえる 場所、メモリが いります。 でも じっさいの メモリ(RAM)は、量が きっちり 決まって います。 みんなが じっさいの 場所を じかに とると、すぐ なくなり ぶつかります。 だから OSは、それぞれに「かりの 大きな メモリ」を あたえます。
みんなが メモリを ほしがる
同時に 動く プログラムは、それぞれ おぼえる 場所が いります。
でも じっさいの メモリは、かぎられた 小さな 空間です。
みんなが じっさいの 場所を じかに もとうと すると、
すぐ 場所が 足りなくなり、たがいの はんいが ぶつかります。
メモリを めぐる 争いに なる わけです。
プログラムを もっと のせて。じっさいの メモリの ぼうが すぐ いっぱいに なって あふれます。
じっさいの メモリだけでは、ぜんぶ さばけません。
かと いって、プログラムに「メモリを ゆずれ」とは 言えません。
それぞれ たっぷり 使える 必要が ある からです。
OSは ここで かしこい トリックを 使います。
それぞれに「自分だけの 大きな メモリ」を
OSは プログラムごとに、かりの メモリを 一つずつ あたえます。
広くて、0番から きれいに はじまり、自分だけで 使う ように 見えます。
Aの「0番の ます」と Bの「0番の ます」は、じつは べつの 場所です。
それぞれ 自分の メモリだけを 見て、人のは 見えも しません。
この 自分だけの かりの メモリを、仮想メモリと いいます。
プログラム A と B を 切りかえて。どちらも 0番からの「自分のメモリ」を べつに もちます。
どちらも 0番から きれいに 使えて、便利ですね。
でも かりの アドレスは、じっさいの 場所では ない ですよね?
プログラムが「自分の 3番の ます」と 言ったら、
その ことばを、だれが、どう じっさいの 場所に かえるのでしょう?
かりの アドレスを じっさいの 場所に うつす
プログラムが「自分の 3番」を 使う たびに、
OSと ハードウェアが こっそり じっさいの 場所に かえます。
小さな 地図 一つが「自分の 3番 → じっさいの 27番」のように つなぎます。
Aの「自分の 0番」は じっさいの 5番、Bの「自分の 0番」は じっさいの 40番。
同じ かりの 番号でも、じっさいの 場所が ちがうので、ぶつかりません。
かりの アドレスを 押して。地図を 通って じっさいの 場所に つながります。A と B は 同じ 番号でも ちがう 所に つきます。
地図が かりを じっさいに かえるので、それぞれ 安全に べつべつに くらします。
でも みんなの かりの メモリを 合わせると、
じっさいの メモリより ずっと 大きく なる ことも あります。
その たくさんを、小さな じっさいの メモリに、どう 入れるのでしょう?
じっさいより 大きく、使わないのは ディスクへ
OSの ひみつは これです。
今 使わない 部分は、おそい ディスクに しばらく 出します。
そして その 場所に、今 必要な 部分を のせます。
あとで 出した ものが また 必要なら、呼びもどします。
だから じっさいの メモリより 大きな メモリが 使えます。
新しい 部分を 呼んで。じっさいの メモリが いっぱいなら、使わない ものが ディスクへ 出て、必要な ものが 入ります。
出したり 呼びもどしたり するので、じっさいより 大きな 記おくが できました。
でも ディスクは、じっさいの メモリより ずっと おそい ですよね?
毎回 ディスクまで 行き来したら、もどかしい はずです。
OSは 最後に、もう 一つ 気を つかいます。
よく 使うのは 近くに おく
OSは、よく 使う 部分を 近い じっさいの メモリに のこします。
たまに 一度だけ 使う ものだけを、遠くて おそい ディスクに 送ります。
構造で 出会った キャッシュと 同じ 考えです。「よく 使うのは 近くに。」
だから ほとんどは はやい じっさいの メモリで すぐ おわり、
ディスクまで 行くのは たまに だけ なので、おそさを ほとんど 感じません。
何度か 取り出して。よく 使うのは じっさいの メモリ(近く)に、たまに 使うのは ディスク(遠く)に とどまります。
まとめると、仮想メモリは かりの アドレスを じっさいの 場所に うつし、
使わないのを ディスクに 送り、よく 使うのを 近くに おく わざです。
おかげで それぞれ、じっさいより 大きな メモリを 一人で 使う ように 感じます。
でも それぞれが「自分の 場所」だけを 見て、人のは 見えない という こと、
これが じつは、自分のと 他人のを 分けて 守る 壁に なります。次の 話です。