ページイン
一時的にハードディスクに移した内容を再度メモリに読み込むよ
「ページアウト」の逆だよ
ページング方式における呼び名だと思うけど「スワップイン」や「ロールイン」との使い分けはされていないことが多いよ
簡単に書くよ
ページイン(英:page-in)とは
ページアウトの逆
であり
一時的にハードディスクに書き出した内容を再度メモリに読み込むこと
です。
あるいは
一時的にハードディスクに書き出した内容を再度メモリに読み込むこと……を指す、ページング方式における呼び名
です。
詳しく書くよ
順番に見ていきましょう。
今回 登場するメモリは「パソコンさんが作業するときに使う机」です。
実はですね。
プログラムから見たメモリの大きさと実際にコンピュータにくっついているメモリの大きさは違います。
メモリ内のどーでもいい内容をハードディスクに一時的にしまうことで(ハードディスクの一部をメモリっぽく使うことで)、プログラムに対して実際のメモリより大きなメモリがあると錯覚させる技があるのです。
例えば、そうですね。
コンピュータにくっついている実際のメモリが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ある」と言えるでしょう。
このような「ハードディスクの一部をメモリっぽく使うことで、実際のメモリより大きなメモリがあると錯覚させる技」を「スワップ」と言います。
メモリを使い切った状態で「もっと~!もっと使いたいの~!」とプログラムさんに言われました。
でも、メモリの空きは ありません。
仕方がないので、メモリの一部をハードディスクに移して、メモリの空きを作ります。
そんな技です。
ハードディスクを上手く活用することで、メモリの水増しをします。
さて、スワップの仕組みにおいて、ハードディスクに移したメモリの内容を再度メモリ上に読み込みました。
この「ハードディスクに移したメモリの内容を再度メモリに読み込む」ことを、専門用語で「スワップイン」と言います。
……書くのが疲れました。
少し休憩します。
ここまでで話は一区切りです。
一旦、コーヒーブレイクでもして、頭をリフレッシュしてください。

リフレッシュできましたか?
それでは、続きを見ていきましょう。
先ほど
ハードディスクに移したメモリの内容を再度メモリ上に読み込む
と書きました。
その前提として
メモリの内容をハードディスクに移す
ということが行われています。
メモリの内容をハードディスクに移すとき、全部移すわけでは ありません。
メモリの内容の「一部」を移しています。
ということはですよ。
メモリをぶった切るわけです。
メモリをぶった切って、小さくなったものの一部をハードディスクに移します。
実は、このときのぶった切り方には、大きく分けて2つのやり方があります。
それは
・ページング方式
・セグメント方式
の2つです。
例えば、そうですね。
メモリ上にExcelのファイルとWordのファイルが広げられていたとします。
このとき、ExcelのファイルとWordのファイルの大きさが同じとは限りません。
中身がいっぱいであれば大きくなりますし、まだ少ししかなければ小さくなります。
おっと、メモリの空きが足りなくなったようです。
コンピュータさんは、メモリの一部をハードディスクに移すことにしました。
ページング方式とセグメント方式では、ここからが違います。
まずはページング方式から見てみましょう。
コンピュータさんは、メモリの縦横に切れ目を入れて、それぞれが同じ大きさになるように分割します。
これで、同じ大きさの細かい破片がいっぱいできましたね。
この同じ大きさの細かい破片を「ページ」と呼びます。
このページ単位で移動させるのがページング方式です。
ページング方式では、移動させるものは全部同じ大きさです。
あらかじめ同じ大きさにぶった切っていますからね。
それに対して、セグメント方式では、移動を(本当は少し違いますが)ファイル単位でやります。
セグメント方式における、まとめて移動する一塊は「セグメント」と呼びます。
ファイルの大きさは、それぞれ違いますよね?
ですから、セグメントの大きさもそれぞれ異なります。
セグメント方式では、移動させるものの大きさはバラバラなのです。
違いをまとめると
■ページング方式
・メモリの中身を同じ大きさのページ単位で管理する やり方
■セグメント方式
・メモリの中身を大きさの異なる(同じ大きさとは限らない)セグメント単位で管理する やり方
に なります。
ふぃー、長らくお待たせしました。
ここまでを踏まえて
ハードディスクに移したメモリの内容を再度メモリに読み込む
のが「ページイン」です。
つまり、スワップインの別の表現ですね。
あるいは、ハードディスクに移したメモリの内容を再度メモリに読み込むことを指す「ページング方式における呼び名」が「ページイン」です。
つまり、スワップインのページング方式における呼び名ですね。
なお、ページインの逆は「ページアウト」と言います。
せっかくなので、併せて覚えてあげてください。
「ページ」を「イン」するのですから、個人的には、ページング方式におけるスワップインっぽい動作を指す用語に思えます。
ですが、実際にはあまり使い分けをされていないのが現実です。
ややこしいですね。
さらに、おまけで説明しておきましょう。
スワップインやページインと似た意味の用語で「ロールイン」という用語もあります。
個人的な理解では
スワップイン:ハードディスクに移したメモリの内容を再度メモリに読み込むこと
ページイン:スワップインのページング方式における呼び名
ロールイン:スワップインのセグメント方式における呼び名
です。
ただし、一般的には
スワップイン:ハードディスクに移したメモリの内容を再度メモリに読み込むこと
ページイン:スワップインの別の表現
ロールイン:スワップインの別の表現
と扱われることも少なくありません。
そこら辺の違いは、ゆるく解釈してください。
動作としては、すべて「ハードディスクに移したメモリの内容を再度メモリに読み込む」です。
一言でまとめるよ
まぁ「ページイン」って単語が出てきたら「ハードディスクに書き出した内容を再度メモリに読み込むんだな~」と お考えください。
おまけ
■訳してみるよ
「page(ページ)」はカタカナで「ページ」で分かりますかね。
「in(イン)」の意味は「中に」とかです。
何となく くっつけると
ページを中に
となります。






