👋

【初心者向け】ページングとスワッピングの違いをわかりやすく解説

2025/01/24に公開

こんにちは!今回は、コンピュータのメモリ管理でよく出てくる「ページング (Paging)」と「スワッピング (Swapping)」について、なるべく専門用語を使わずにザックリ解説します。難しそうに見えますが、身近な例に置き換えると意外とイメージしやすいですよ。


ページング (Paging) とは

基本イメージ

  • メモリを小さな「ページ」単位に区切って管理 する方法
  • プログラム(ソフトウェア)も同じサイズのページに分割して、必要に応じてメモリ上に配置
  • 「ページテーブル」という対応表を使って、仮想アドレスと物理アドレスを結び付け

目的

  1. メモリを無駄なく使う
    プログラムを細かく区切って配置するため、隙間を最小限にできます。
  2. プログラム同士の干渉を防ぐ
    他のプログラムが別の領域を勝手に上書きしないよう、保護できます。

例えると…

  • 本や書類
    大きな本でも、必要なページだけ開けば読みやすいですよね。全部広げずに、必要なところだけ扱うイメージです。
  • オフィスのファイル管理
    書類を一定のサイズでクリアファイルに入れておけば、必要な書類をさっと取り出せます。

スワッピング (Swapping) とは

基本イメージ

  • メインメモリがいっぱいになったときに、いま使わないプログラムやデータをハードディスクなどに一時的に移す仕組み
  • メモリから外部ストレージへ移すことを「スワップアウト」、必要になったらメモリに戻すことを「スワップイン」と呼びます

目的

  1. メモリを空ける
    別のプログラムを動かすために、今使っていないものをどかしてスペースを確保します。
  2. 必要に応じて戻す
    後から必要になったとき、またメモリに戻して使います。

例えると…

  • タンスと倉庫
    シーズンオフの服は邪魔になるので倉庫へ移しておき、必要なときに取りに行きます。
  • 店舗と倉庫の在庫管理
    店舗スペースが足りなければ、売れない商品は倉庫に移し、必要になったら取り寄せます。

ページングとスワッピングの違い

項目 ページング (Paging) スワッピング (Swapping)
扱う単位 プログラムを小さな「ページ」に分割(例: 4KBごと など) プログラム全体や比較的大きな単位
目的 - メモリを効率的に使う
- プログラム同士の干渉を防ぐ
- メモリを解放し、別のプログラムを動作させる
- 必要になればまた呼び戻すことができる
実行頻度 プログラム動作中は常に行われる(ページテーブルでアドレス変換を継続的に実施) 主にメモリが不足した場合にのみ実行
身近なイメージ - 必要なページだけめくって読む本
- クリアファイルで書類を小分けする
- タンスに入りきらない服を倉庫へ
- 店舗に置けない在庫を倉庫へ移す

まとめ

  • ページング (Paging)

    • プログラムをページ単位で分割し、メモリを効率よく使う仕組み
    • プログラム同士の領域を守りながら、メモリを無駄なく利用
  • スワッピング (Swapping)

    • メモリが足りなくなったとき、不要なプログラムを外部ストレージに移してスペースを空ける仕組み
    • 必要なときはまたメモリに戻して使う

ページングは毎日使う整理整頓、スワッピングは「緊急時の倉庫利用」と捉えると理解しやすいでしょう。どちらもコンピュータで複数のプログラムを同時に動かすために欠かせない技術です。

「言葉だけだとピンとこない」という場合は、ぜひ今回の身近な例でイメージしてみてくださいね。少しずつ慣れていけば、自然と仕組みがわかってくるはずです。ぜひ学習を続けてみてください。応援しています!

Discussion