多くのCPUは メモリー領域を「ページ」という一定の大きさに分割して管理する。プログラム実行時 CPUはプログラムが指定する仮想アドレスを物理アドレスに変換するが その際 物理メモリーが存在しない仮想アドレスができる場合もある。そして プログラムが物理メモリーとして存在しないページにアクセスしようとした場合 CPUが例外を発生する。これがページ違反である。このほか 各ページには読み書き禁止や書き込み禁止などの属性を指定することもできる。プログラムがこれらの属性に違反するアクセスをした場合にも ページ違反が発生する。C/C++でNULLポインタの参照先をアクセスしようとするプログラムをWindows上で実行すると ページ違反で強制終了するのはこのためである。