このコンテキストでの「有効な」時間は、「期待される」または「平均的な」時間を意味します。したがって、個々のケースでページにアクセスするのにかかる時間を取り、それぞれにその確率を掛けます。式は、いくつかのレベルでケースに分割されているため、やや複雑です。ケースは次のとおりです。
- 物理アドレスが TLB キャッシュにある時間の 80%。これにより、TLB レジスタへの 80% のアクセスと、ページ自体へのアクセスが可能になります。
0.8(TLB + MEM)
- 残りの 20% は TLB キャッシュにありません。それはさらに別のケースに分かれるので、
0.2(loooong expression)
(式には実際にはその括弧はありませんが、係数がないと係数が 1 にならないため、タイプミスと見なします。しないでください)。ケースは次のとおりです。
- 90% (そのうち 20%) の時間はページがまだマップされていますが、アドレスがキャッシュから落ちたため、ページ マップから余分なメモリを読み取る必要があります。つまり、TLB レジスタへのアクセス、ページ テーブルへのアクセス、およびページ自体へのアクセスの 90% の回数です
0.9(TLB + MEM + MEM)
。1 レベルのページングが言及されているため、ここでは 1 つの余分なメモリ アクセスにすぎませんが、実際の実装では一般に 2 レベルのページングがあるため、2 つの余分なメモリ アクセスが発生します。
- ページをディスクからロードする必要がある回数の 10% (これらの 20% のうち、表現はこれを示唆していますが、質問は明確ではなく、むしろ全体の 10% であることを示唆しています)。これにより、TLB レジスタへの (失敗した) アクセスとページ テーブルへの (失敗した) アクセスの 10% 倍が与えられ、ページをロードする必要があります。ロードするには、そのためのスペースを確保する必要があるため、別のページをドロップする必要があります。これは 2 つのオプションに分かれます。
- ドロップされるページの 50% はクリーンであるため、システムは新しいコンテンツを読み取るだけで済みます:
0.5(Disk)
.
- 削除するページの 50% はダーティであるため、システムはそれをディスクに書き込み
(MEM+Disk)
、新しいコンテンツを読み込む(Disk)
必要があります。0.5(2Disk + MEM)
最後の 2 つの (スワップ) ケースには追加のメモリ アクセスを含める必要があると思います。これは、前のページを使用不可とマークし、新しいページをページ テーブルで使用可能とマークするために 2 つのアクセスが必要だからです。
また、実際のシステムでは、ページを読み取るためのスペースが必要な場合、システムは常にクリーンなページを選択して置き換えるため、非常に非現実的です。クリーン ページがあることを確認するために、ダーティ ページを調べてそれらを書き出すバックグラウンド プロセスがあります。コンピューティング リソースが必要になるため、実際にはメモリ アクセスに少しカウントされますが、ページ フォールトは書き込みが完了するまで待機する必要がないため、はるかに少なくなります。
実は表現が間違っています。どちらかである必要があります
T = 0.8(TLB + MEM) + 0.2 ( (0.9(TLB + MEM + MEM)) + 0.1(TLB + MEM + 0.5(ディスク) + 0.5(2ディスク + MEM)) )
ページ フォールトが TLB ミスの 10% である場合、または
T = 0.8(TLB + MEM) + 0.1 (TLB + MEM + MEM) + 0.1(TLB + MEM + 0.5(ディスク) + 0.5(2 ディスク + MEM))
ページ フォールトがすべてのアクセスの 10% である場合。あなたはそれについて明確ではありませんが、式にその0.2 * 0.9が含まれていない場合、前者を示唆している場合、後者を想定します。