OSを作ろうpart5
■ このスレッドは過去ログ倉庫に格納されています
0583LightCone ◆sSJBc30S5w
NGNG実は#279でも書いていた通り(ちょっと一言ページでも私が気付いている
事には触れられていましたが)、本当は、実ページを割り振っている
ページに対し、アクセス統計(+書きこみフラグ)を取る目的だけのために
存在ビット(P)を0にすると言うアイデアは、置換アルゴリズムについて考え
始めた当初から気付いていました。
ただし、私のアイデアは、ワーキングセットアルゴリズムでの、
W(t0,τ)を厳密に高速に求めることができるような方法です。
例えば、W(t0,τ)を、10ms に一回調べたいならば、10ms周期で発生
させるタイマー割り込みの中で、調査対象のページのPを全て0にします。
ただし、このアルゴリズムでは、P=1のページはリストに保持できるので、
そのリストを利用してP=1のページだけをP=0にして、もともとP=0だった
ページを初期化するための時間は必要は有りません。
このようにすると、ページにアクセスされると必ずページ例外が発生します
ので、例外が起きたページをリストに加え、同時に、P=1にしておきます。
すると、次のタイマー割り込みまでには、10msの間にアクセスされた
ページのリストが出来上がります。
このリストの過去N回分から、10N (ms)分のワーキングセットを求める
のは容易です。
ただし、速度が少し心配なのと、コピー・オン・ライトや、
オン・デマンド・ページング、プリ・ページングなどと合わさった時の
事情を考慮しなくてはならない部分がちょっと心配です。
■ このスレッドは過去ログ倉庫に格納されています