様々な学問/勉強課目をシミュレーションで解説!シミュレーター/ツール/ゲームで、いろんな学問を楽しく分かりやすく解説するサイトです!思考の改善や、効率化の話題も!
⇒ 本ブログの詳細/連絡先はコチラ!
学問系TOP AI/ChatGPT 数学 物理 統計学 コンピューター 経済学 Webツール
  1. ホーム
  2. 〇学問シミュレーター/改善・効率化
  3. 情報科学/コンピューター
  4. OS
  5. 主記憶管理
  6. 「ページング方式(ページイン/ページアウト)」をシミュレーターで理解しよう!
■注目記事一覧

高校数学 教科書用シミュレーターの制作に携わりました!!

本サイトの「サイコロ シミュレーター」が熊本の特別教育テレビ授業で使われました!

浮動小数点型の仕組みをシミュレーターで理解しよう!

コンピューターの全理基礎:半加算器の原理をシミュレーターで理解しよう!

マルチタスクのCPUの動きをシミュレーターで見てみよう!

ストレージのRAID5構成をシミュレーターで理解しよう!

ページングをシミュレーターで体感しよう!
 
全テーマ共通記事一覧

「ページング方式(ページイン/ページアウト)」をシミュレーターで理解しよう!

$$\newcommand\CB[1]{\textcolor{blue}{#1}} \newcommand\CR[1]{\textcolor{red}{#1}} \newcommand\CG[1]{\textcolor{magenta}{#1}}$$

「ページング方式(ページイン/ページアウト)」をシミュレーターで体感しよう!

前回記事に続いて、メモリ管理について解説します!今回は「ページング方式(ページイン/ページアウト)」についてです!

「ページング方式(ページイン/ページアウト)」をシミュレーターで理解しよう!

おさらい:メモリはページという区画ごとに管理される

コンピューターは↓のようにページという区画で管理します。区画は4KBなどある程度の大きさを持っています。

このように区画単位で管理するほうが、1バイト1バイト管理するよりも楽なんですね。この区画をページと呼びます

メモリが足りない場合は、、、ストレージ上に保存!

↑のようにメモリは区画で管理されます。
もし、この区画が足りなくなったらどうなるでしょうか?必要なデータ保存領域がなくて、コンピューターが動けなくなってしまいますよね。

そうならないためにも、コンピューターは↓のように「メモリが足りなくなったら、ページファイルと呼ばれるストレージ上のファイルに代替保存」を行います。

ストレージのほうが、圧倒的に保存できる容量が広いので、これが使えれば溢れることはないんですね!

しかし、ストレージは遅いという問題があります。コチラのシミュレーターでも示している通り、CPUやメモリと比べて動画がめちゃくちゃ遅いんです

そのため、「できる限りストレージにあるページファイルにアクセスしないよう、メモリを有効活用する」ことが重要なのです!
 

POINTメモリが足りなかったら、ストレージ上のファイルに代替格納する!

メモリ管理は通常LRUで行われる

メモリを有効活用するために、↓LRUというアルゴリズムを使うのが通常です。

メモリLRU制御の定義

LRU = Least Recently Used
メモリのページ(区画)の中で、もっとも最近使われていないページ区画を選択して、ストレージに追いやる

「最近使われていないページ区画」とは、「一番使った時間が古いページ区画」です。もし、ページ区画が足りなくなったら、各ページで使った時間を記録していて、一番古いページ区画を見つけて追いやるんです!

実際には、「ページファイルに退避してあるデータにアクセスした時=ページ区画が足りなくなった時=一番古いデータを追い出す時」です。ページファイルにあるデータが必要になったときに、メモリとストレージで交換が走るんですね。

このメモリとページファイルのデータの交換をページングといいます!また、↓のように各方向のデータのやり取りをページイン,ページアウトと呼びます。

ページング関連の用語

ページング = メモリとページファイルのデータ交換が起こること
ページアウト = メモリからページファイルへの追い出し(out)
ページイン = ページファイルからメモリへの読み込み(in)

実際にこの動きをシミュレーターで確認してみましょう!

「ページング方式(ページイン/ページアウト)」をシミュレーターで確認してみよう!

それではシミュレーターで実際のページングの動きを確認してみましょう!

少しややこしいので前提から説明します!

前提1:各データは使う頻度に差があり。その頻度の差を「数字」で示してます

実際のコンピューターでもそうですが、メモリにあるデータが全て平等にアクセスされることは稀です。大概は、1割のデータに9割のアクセスが集中するようなことが多いです。

このため、今回のシミュレーターは「書いてある数字に比例して呼ばれる頻度が高い」ようにしています。今回の場合、↓のように1~50の数字が書かれていますが、「1のデータは、50のデータの1/50の確率でしか呼ばれない」という設定です。「数字が高いほど頻繁にアクセスされる=追い出されにくい」状態になっています。

前提2:直近でアクセスされたデータほど赤く表示。古いデータほど白く表示

シミュレーターでも↑で示したLRU方式で、どのデータを追い出すか決めます。これがわかりやすいように、「直近でアクセスされたデータほど赤く」「触られていないデータほど白く」表示するようにしてます。

↓の絵だと、「15」が一番白っぽく、追い出される候補になることを示しています。

「ページング方式(ページイン/ページアウト)」シミュレーター

シミュレーターの説明
  • 実行ボタンを押すとページングシミュレーターが開始します
  • 各メモリ/ページファイルのデータにランダムアクセスをしていきます。アクセスされたメモリは赤くなります
  • ページファイル内のデータにアクセスされると、ページイン/ページアウト(交換)が起きます
  • どのようなデータが追い出され、どのような動きをするのか観察してみましょう!

 



 

「ページング方式(ページイン/ページアウト)」シミュレーターの要点解説

アクセス頻度が低いデータほど、ページファイルに追いやられる

シミュレーターを観察していると「高い数字のデータは頻繁にアクセスされるのでメモリに残りやすい」「低い数字のデータはなかなかアクセスがないのでページファイルに追い出されやすい」ことがわかると思います。

最終的には↓のように、低い数字のデータが多くページファイルに残る状況になります。ただ、頻度は低いだけで、低い数字もメモリには戻されることもあるというのがキーポイントです!

メモリとページファイルとのデータ交換(ページング)はかなりの時間がかかる!

今回のシミュレーターで、メモリとページファイルとのデータ交換(ページング)が起こるとかなり時間がとられているのがわかると思います。

しかし、本当はこの100倍ぐらい時間かかるんですね!コチラのシミュレーターで示しているとおり、それぐらいストレージアクセスは遅いんです

だからこそ、「余計なページングをなくす」ことが非常に重要なんです!
 

「ページング方式(ページイン/ページアウト)」まとめ

  • メモリが足りなくなった場合、ページファイルというストレージ領域に保管される
  • メモリは「LRU=もっとも使われていないデータ選択」方式で管理して、どれをページファイルに追いやるか決めている
  • メモリとページファイルとのデータ交換をページングという。これはメモリアクセスと比べると、非常に長い時間がかかる

 


⇒「主記憶管理」カテゴリ記事一覧

その他関連カテゴリ




お気軽にコメントお願いします!

Your email address will not be published. Required fields are marked *




記事カテゴリ