url: https://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%E6%96%B9%E5%BC%8F
title: "ページング方式 - Wikipedia"
host: ja.wikipedia.org
favicon: https://ja.wikipedia.org/static/favicon/wikipedia.ico
paging は、OS においてメモリを ページ と呼ばれる小さな単位に分割し、ページごとに割当を行う。 論理メモリと物理メモリ空間をページ単位で page-table で紐づける。
ページという単位で割り当てることによって以下のメリットがある。
- 物理メモリを連続的に確保しなくてよい
- 物理メモリにおいて N アドレス連続して確保する、を各プロセスで行うと frag-mentation が発生する
- よって、物理メモリ上では散らばった不連続のメモリをページサイズ単位で取得する
- そうして集めた非連続性物理メモリを、仮想メモリ上に page-table で紐づけながら割り当てる
- → 仮想メモリ上のプロセスからは1つの連続した仮想アドレスに見れるけど、OS 側から見ると不連続の物理メモリを利用しており、効率がいい
- 各プロセスごとに独立した物理メモリを扱える
- 各プロセスの仮想メモリ空間はページ単位で分離されている
ページサイズの計算方法
getconf でページサイズの単位がわかる。 下記の場合だと 4096 byte = 4KB
┌──(ganyariya㉿utmkali)-[~]
└─$ getconf PAGE_SIZE
4096