ページング方式
メモリ管理の やり方だよ
決まった大きさのページ単位で管理するよ
ハードディスクの一部をメモリとして使う話で出てくることが多いよ
簡単に書くよ
ページング方式(読:ページングホウシキ 英:Paging?)とは
ハードディスクの一部をメモリっぽく使うことで実際のメモリよりも大きなメモリがあるように見せるやり方(仮想メモリ、仮想記憶方式)の話で出てくることが多い用語のひとつ
であり
大きさの決まっている「ページ」という単位でメモリを管理する やり方
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・メモリ
・仮想メモリ(仮想記憶)
・仮想記憶方式
について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
今回 登場するメモリは「パソコンさんが作業するときに使う机」です。
物としては、緑色の長方形に黒い四角が何個かくっついた板です。
パソコンさんが仕事中の内容を記憶させます。
仮想メモリは「なんちゃってメモリ」です。
実際のメモリとは違うけどメモリっぽいやつですね。
「仮想記憶」とも呼ばれます。
いきなり「なんちゃってメモリ」とか言われても分からないですよね。
大丈夫です。
順を追って説明します。
単に「仮想メモリ」と言った場合、
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」と読み替えてください。
以上を踏まえて
メモリとハードディスクの間でメモリの内容を移動させるのを、決まった大きさのページ単位でやる やり方
が「ページング方式」です。
……というのは仮想メモリの話に寄った説明ですけどね。
もう少し正確に書くと
ページ単位でメモリを管理する やり方
がページング方式です。
例えば、そうですね。
ここにメモリがあります。
ピヨ太君がExcelのファイルを開きました。
そうすると、メモリの上にExcelのファイルが広げられます。
次にピヨ太君はWordのファイルを開きました。
そうすると、メモリ上にWordのファイルが広げられます。
このとき、ExcelのファイルとWordのファイルの大きさが同じとは限りません。
中身がいっぱいであれば大きくなりますし、まだ少ししかなければ小さくなります。
コンピュータさんは、このメモリを管理します。
コンピュータさんは、いろいろ考えた結果、そのままの形で管理するのは大変だと判断しました。
そこで、縦横に切れ目を入れて、それぞれが同じ大きさになるように分割します。
これで、同じ大きさの細かい破片が いっぱいできました。
この破片を「ページ」と言います。
この「ページ」単位で(メモリとハードディスクの間で)メモリの内容を移動させるのがページング方式です。
あと、ついでなので書いておくと、メモリを一定の大きさで細切れにしない管理のやり方もあります。
(本当は少し違いますが)ファイルを そのまま移動する やり方です。
このやり方における、まとめて移動する一塊を「セグメント」と呼びます。
ファイルの大きさは、それぞれ違いますよね。
ですから、セグメントの大きさも、それぞれ違います。
このような
それぞれの大きさが違う(同じ大きさとは限らない)セグメント単位でメモリを管理する やり方
を「セグメント方式」と言います。
気が向いたら、セットで覚えてあげてください。
ページング方式:同じ大きさのページ単位で管理する やり方
セグメント方式:それぞれの大きさが違う(同じ大きさとは限らない)セグメント単位で管理する やり方
です。
一言でまとめるよ
まぁ「ページング方式」って単語が出てきたら「決まった大きさのページ単位でメモリを管理する やり方なんだな~」と お考えください。
おまけ
■訳してみるよ
「paging(ページング)」は「page(ページ)」+「ing」です。
「page(ページ)」はカタカナで「ページ」で分かりますかね。
「方式」は日本語です。
何となく くっつけると
ページ方式
となります。






