速度を度外視した場合の厳密なワーキングセットの具体的な計算法を書いて
おきます。

まず、タイマー割り込み内で、物理ページが割り付けられているページエントリ
のアクセスビットを調査します。調査が済むと0にします。

そして、各ページエントリに対応して例えば1BYTEの統計情報を対応させます。
IA32では、ページエントリにはそれだけの余地がないので、別の場所に
入れます。今、k 番目のエントリのアクセスビットを参照し、accessだと
すると、

page_entry[k]->m_bit <<= 1;
page_enetr[k]->m_bit |= access;

とします。

これで、m_bit の 1 のビットの数が、直前の 80(ms)の間のページ k の
アクセス頻度になります。

このアクセス頻度が一番小さいページをページアウトするというわけです。

しかし、この処理は、256MBの物理メモリだと、最悪、秒間 100 * 65536 回の
繰り返し処理が必要になると思います。