OSを作ろうpart5
■ このスレッドは過去ログ倉庫に格納されています
0567LightCone ◆sSJBc30S5w
NGNGおきます。
まず、タイマー割り込み内で、物理ページが割り付けられているページエントリ
のアクセスビットを調査します。調査が済むと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 回の
繰り返し処理が必要になると思います。
■ このスレッドは過去ログ倉庫に格納されています