[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ロールアウト【メモリ】 (roll-out)

pointこの用語のポイント

pointメモリの中身を一時的にハードディスクに移すことだよ

pointメモリが足りないときに行われるよ

pointセグメント方式における呼び名だと思うけど「スワップアウト」や「ページアウト」との使い分けはされていないことが多いよ

スポンサーリンク

簡単に書くよ

ロールアウト【メモリ】 (roll-out)とは

メモリの中身を一時的にハードディスクに書き出すこと。
あるいは

メモリの中身を一時的にハードディスクに書き出すこと……を指す、セグメント方式における呼び名
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

メモリは「パソコンさんが作業するときに使う机」です。

ロールアウト

実はですね。
プログラムから見たメモリの大きさと実際にコンピュータにくっついているメモリの大きさは違います。

メモリ内のどーでもいい内容をハードディスクに一時的にしまうことで(ハードディスクの一部をメモリっぽく使うことで)、プログラムに対して実際のメモリより大きなメモリがあると錯覚させる技があるのです。

例えば、コンピュータにくっついている実際のメモリが10GBだったとしましょう。

ロールアウト2

普通に考えたら、同時に動かせるプログラムはメモリ10GB分ですよね?
使うメモリが6GBのプログラムと4GBのプログラムは同時に動かせます。
6GBのプログラムと5GBのプログラムは同時に動かせません。
1GB分、足りないからです。

ロールアウト3

ところがです。
使うメモリが6GBのプログラムと5GBのプログラムを同時に動かす技があるのです。

まず、使うメモリが6GBのプログラム1を起動します。
そうすると、メモリが6GB分、使われます。

ロールアウト4

次に、6GBのうち、あまり使わない1GB分をハードディスクにしまってしまいます。
最初はメモリを6GB使っていました。
これを、メモリ5GBとハードディスク1GBに分けるのです。

ロールアウト5

そうすると、メモリの空いている部分は5GBです。
メモリを5GB使うプログラム2を起動することができます。

ロールアウト6

ところで、プログラム1がハードディスクにしまった1GB分を使いたくなったら、どうしましょうね?
使うときはメモリに持ってこなくてはいけません。
ですが、メモリは10GB分、全部使っている状態です。

そんなときは、プログラム2から1GB分、ハードディスクに移します。
プログラム2はメモリを5GB使っていました。
これを、メモリ4GBとハードディスク1GBに移し替えるのです。

ロールアウト7

そうすると、メモリには1GB分の空きができます。
この空いた部分に、プログラム1で使う1GBを移します。

ロールアウト8

このような工夫と譲り合いの精神を発揮できれば、素敵です。
実際のメモリが10GBでも、合計11GBのメモリを使用するプログラムを動かせます。
これは、もう「メモリが11GBあるのと一緒」ですね。

実際のメモリは10GBです。
ですが、プログラムさんは、メモリを11GB分使っています。
「プログラムから見たメモリは11GBある」と言えるでしょう。

ロールアウト9

このような「ハードディスクの一部をメモリっぽく使うことで、実際のメモリより大きなメモリがあると錯覚させる技」を「スワップ」と言います。

メモリを使い切った状態で「もっと~!もっと使いたいの~!」とプログラムさんに言われました。
でも、メモリの空きはありません。
仕方がないので、メモリの一部をハードディスクに移して、メモリの空きを作ります。
そんな技です。
ハードディスクを上手く活用することで、メモリの水増しをします。

さて、スワップの仕組みにおいて、メモリの内容をハードディスクに移しました。
この「メモリの内容をハードディスクに移す」ことを、専門用語で「スワップアウト」と言います。

ロールアウト10

……書くのが疲れました。
少し休憩します。

ここまでで話は一区切りです。
一旦、コーヒーブレイクでもして、頭をリフレッシュしてください。

……。

準備OKですか?
それでは、続きを見ていきましょう。

先ほど

メモリの内容をハードディスクに移す

と書きました。

このとき、メモリの内容を全部ハードディスクに移すわけでは、ありません。
メモリの内容の「一部」を移します。

ということはですよ。
メモリをぶった切るわけです。

ロールアウト11

メモリをぶった切って、小さくなったものの一部をハードディスクに移します。

ロールアウト12

実は、このときのぶった切り方には、大きく分けて2つのやり方があります。
それは

セグメント方式
ページング方式


の2つです。

例えば、そうですね。

メモリ上にExcelファイルWordのファイルが広げられていたとします。

ロールアウト13

このとき、ExcelのファイルとWordのファイルの大きさが同じとは限りません。
中身がいっぱいであれば大きくなりますし、まだ少ししかなければ小さくなります。

ロールアウト14

おっと、メモリの空きが足りなくなったようです。
コンピュータさんは、メモリの一部をハードディスクに移すことにしました。

ロールアウト15

セグメント方式とページング方式では、ここからが違います。
まずはセグメント方式から見てみましょう。

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

ロールアウト16

セグメント方式における、まとめて移動する一塊は「セグメント」と呼びます。

ロールアウト17

ファイルの大きさは、それぞれ違いますよね?
ですから、セグメントの大きさもそれぞれ異なります。
セグメント方式では、移動させるものの大きさはバラバラなのです。

それに対して、ページング方式では、移動させるものの大きさは同じです。
コンピュータさんは、まずメモリの縦横に切れ目を入れて、それぞれが同じ大きさになるように分割します。

ロールアウト18

これで、同じ大きさの細かい破片がいっぱいできましたね。
この同じ大きさの細かい破片を「ページ」と呼びます。

このページ単位で移動させるのがページング方式です。

ロールアウト19

ページング方式では、移動させるものは全部同じ大きさです。
あらかじめ同じ大きさにぶった切っていますからね。

違いをまとめると

■セグメント方式
・メモリの中身を大きさの異なる(同じ大きさとは限らない)セグメント単位で管理するやり方

■ページング方式
・メモリの中身を同じ大きさのページ単位で管理するやり方


になります。

ふぃー、長らくお待たせしました。

ここまでを踏まえて、メモリの内容をハードディスクに移すのが「ロールアウト」です。
つまり、スワップアウトの別の表現ですね。

ロールアウト20

あるいは、メモリの内容をハードディスクに移すことを指す「セグメント方式における呼び名」が「ロールアウト」です。
つまり、スワップアウトのセグメント方式における呼び名ですね。

ロールアウト21

さらに、おまけで説明しておきましょう。
スワップアウトやロールアウトと同じような意味の用語で「ページアウト」という用語もあります。

個人的な理解では

スワップアウト:メモリの中身をハードディスクに書き出すこと
ロールアウト:スワップアウトのセグメント方式における呼び名
ページアウト:スワップアウトのページング方式における呼び名


です。
ただし、一般的には

スワップアウト:メモリの中身をハードディスクに書き出すこと
ロールアウト:スワップアウトの別の表現
ページアウト:スワップアウトの別の表現


と扱われることも少なくありません。

そこら辺の違いは、ゆるく解釈してください。
動作としては、すべて「メモリの内容をハードディスクに移す」です。

image piyo2

一言でまとめるよ

まぁ「ロールアウト」って単語が出てきたら「メモリの中身をハードディスクに書き出すことなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク