ページング方式
前述の通り、ページングとはメモリ空間を一定サイズのページに分けるのが基本であるが、TLBミスが多発すると実行効率が落ち、またTLBミスをソフトウエアで扱う時TLBフォールトハンドラをどう置くかという問題がある。このため、いくつかのMMUの設計では、最小ページサイズの倍数(多くは2の冪乗倍)サイズのページをサポートしている。OSのメモリ管理に可変ページサイズをサポートさせると、断片化等の関係で設計が複雑になるため、サポートされない事があるが(このサポートのことをスーパーページと言う)、その場合でもOS自身を巨大なページに置く事によって実行効率を上げる事が出来るので、そのような設計になっている事が多い。また、後者の問題の解決の一つとしても使用される事がある(その場合は、あるページをTLBから追い出されない事を保証出来るようになっている)。また、OS用にアドレス変換されない領域を用意するMMUの設計も存在する。
ページング方式の主な問題点は、それを実装するコードが相対的に複雑になる点であり、特に仮想記憶を実現しようとすると複雑化する。他にはMMUが必要になるという問題もあり、古くて小さいマイクロプロセッサでページングを実装するのは困難である(例えば、x86シリーズでは、i386以上でないとページングをサポートしたMMUがない)。また、ページ単位以下の小さなメモリを要求されてもページ単位でしか割り当てられないというフラグメンテーション(内部断片化)問題もある。
歴史的には、「ページング」という用語は可変長のセグメントではなく固定長のページによるメモリ管理を指すこともあり、仮想記憶や二次記憶装置への転送などといった技法を含まないこともある。しかし近年ではそのような用法は稀である。
最近の一部システムでは、「ページング」と同時に「スワッピング」という用語を使っている。歴史的には「スワッピング」はプログラム全体を二次記憶に転送(あるいは二次記憶から主記憶に転送)することを意味する。
1960年代にセグメント方式とページング方式の仮想記憶の概念が登場すると、「スワッピング」という用語はセグメント単位およびページ単位の二次記憶と主記憶間の転送を意味するようになった。今日の仮想記憶はほとんどがページング方式となったため、「スワッピング」は「ページング」とほぼ同義に使われることもある。
フリーページのキューは、ページフォールト時に使用可能なページフレームのリストである。一部のオペレーティングシステムはページの再利用をサポートしている。すなわち、かつて奪われたが他に再割当てされていないページに対してページフォールトが発生した場合、ページイン処理をせずにフリーとなっている当該ページフレームをそのまま再利用するものである。