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

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

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

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

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

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

ページングをシミュレーターで体感しよう!

コンピューターの半理基礎:半加算器の原理をシミュレーターで理解しよう!
 
全テーマ共通記事一覧

「メモリの容量が足りないとどうなる?」をシミュレーターで解説します!

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

前回記事で、ページングとは何かを説明しました。メモリが足りなくなるとどうなっていくかをシミュレーターを用いて解説していきます!

「メモリの容量が足りないとどうなる?」をシミュレーターで解説します!

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

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

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

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

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

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

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

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

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

メモリLRU制御の定義

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

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

「メモリ容量とメモリ使用量の関係」をシミュレーターで確認してみよう!

それでは、シミュレーターを用いてメモリ使用量が足りなくなっていくと、コンピューターがどう遅くなっていくかを確認してみましょう!

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

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

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

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

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

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

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

前提3:メモリ容量は40区画固定で、メモリ使用量をシミュレーターで変更できます

今回は↑の絵のようにメモリに40区画のデータがおける状況でシミュレートします。この状況で、メモリ使用量が40より少ない場合、それ以上となった場合でどうなるか確認してみましょう!

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

シミュレーターの説明
  • ↓でメモリ使用量を指定し、実行ボタンを押すとページングシミュレーターが開始します
  • 各メモリ/ページファイルのデータにランダムアクセスをしていきます。アクセスされたメモリは赤くなります
  • ページファイル内のデータにアクセスされると、ページイン/ページアウト(交換)が起きます
  • ↓のメモリ使用量を変えてみて、使用量がメモリ容量の40より少ない場合や多い場合にどのような動きになるか確認してみましょう!

 

使用量
50


 

シミュレーターの要点解説

「メモリ容量>メモリ使用量」の場合

この場合は単純です。すべてメモリの中で納まるので、高速に処理が行えます!逆にいうと、「メモリ容量がどれだけ大きくても、使用量を超えていなければ速度は同じ」なんです!

無暗に使用する以上にメモリ容量を大きくしても意味がないのです。

「メモリ容量<メモリ使用量(少し)」の場合

この場合は↓のようになります。少しメモリ使用量がメモリ容量を超えても、そこまで遅くはなりません。LRUのアルゴリズムにより、使用頻度が少ないデータ(↓の絵だと1,2,3)が追い出されるため、ページファイルにアクセスする頻度はものすごく低いです。

「メモリ容量<<メモリ使用量(大量)」の場合

メモリ使用量を増やしていくと、↓のようになり、2~3回に一回はページファイルにアクセスしているような状況になります。メモリに入りきらないので、アクセス頻度の高い大きな数もページファイルに押し込まれてしまうんです。メモリアクセスより、ページファイルアクセスのほうが圧倒的に遅いため、ほぼページファイル(ストレージ)アクセスしてる時間が大半になってしまうんです><

このような、ページング(メモリとページファイルのデータ交換)が多発して状態をスラッシングといいます

 

「メモリの容量が足りないとどうなる?」まとめ

  • メモリが足りなくなった場合、ページファイルというストレージ領域に保管される
  • 「メモリ使用量<メモリ容量」の場合は、高速に処理ができる。逆に言うと、どれだけ容量が多くても速度は変わらない
  • 「メモリ使用量>メモリ容量」になると、少しずつページファイルへのアクセスが多くなり、最終的にはページファイルのアクセス時間が大半になってしまう

 


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

その他関連カテゴリ




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

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




記事カテゴリ