「ページング方式」と「セグメント方式」の違い
予備知識
| 用語 | 意味 |
|---|---|
| メモリ | パソコンさんが作業するときに使う机。仕事中の内容を記憶させておく、パソコンさんの部品 |
| 仮想メモリ | プログラムから見たメモリ |
| 仮想記憶方式 | ハードディスクの一部をメモリっぽく使うことで、実際のメモリよりも大きなメモリがある気分にさせるやり方 |
今回 登場するメモリは「パソコンさんが作業するときに使う机」です。

物としては、緑色の長方形に黒い四角が何個かくっついた板です。
パソコンさんが仕事中の内容を記憶させます。

仮想メモリは「なんちゃってメモリ」です。
実際のメモリとは違うけどメモリっぽいやつですね。
「仮想記憶」とも呼ばれます。

いきなり「なんちゃってメモリ」とか言われても分からないですよね。
大丈夫です。
これから順を追って説明します。
単に「仮想メモリ」と言った場合、
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.メモリっぽい役割を与えられたハードディスクの一部
のどちらかを意味する用語です。
仮想記憶方式は「ハードディスクの一部をメモリっぽく使うことで実際のメモリよりも大きなメモリがある気分にさせる、メモリ管理の やり方」です。

先ほど仮想メモリの説明をしたときに
ハードディスクの一部をメモリとして使っている
と言いました。
このような やり方で、メモリを あれやこれやする やり方が仮想記憶方式です。
なお、話を単純化するために「ハードディスク」と表現していますが、最近のパソコンさんでは「SSD」と呼ばれる「ハードディスクと似たようなことができるメモリ」がハードディスクの代わりをやっていることも少なくありません。
必要に応じて「ハードディスク」を「SSD」と読み替えてください。

それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| ページング方式 | 大きさの決まっている「ページ」という単位でメモリを管理するやり方 |
| セグメント方式 | それぞれの大きさが違う(同じ大きさとは限らない)「セグメント」という単位でメモリを管理するやり方 |
似ているところ
どちらもメモリ管理のやり方を指す用語です。
また、どちらも仮想メモリ(仮想記憶方式)の話で出てくることが多いです。

違うところ
メモリを何単位で管理するかが違います。
それぞれ
ページング方式:同じ大きさのページ単位で管理する やり方
セグメント方式:それぞれの大きさが違う(同じ大きさとは限らない)セグメント単位で管理する やり方
です。
仮想メモリ(仮想記憶方式)の話を例に説明すると、まずメモリを同じ大きさに細切れにして、その細切れにした破片単位で(メモリとハードディスクの間で)メモリの内容を移動させるのがページング方式です。

(本当は少し違いますが)ファイル単位で移動させるのがセグメント方式です。

なお、話を単純化するために「ファイル単位」と表現しましたが、実際には違います。
そこら辺の あれやこれやが気になる方は他のところで情報を補完してください。






