5

この質問に対する答えが理解できません:

TLB レジスタで 1 レベルのページングを使用する OS を考えてみましょう。ページ フォールト率が 10% で、必要に応じてダーティ ページを再読み込みする必要がある場合は、次の場合に実効アクセス時間を計算します。

  • TLB ルックアップ = 20 ns
  • TLB ヒット率 = 80%
  • メモリアクセス時間 = 75 ns
  • スワップ ページ時間 = 500,000 ns
  • ページの 50% が汚れています。

答え:

T = 0.8(TLB+MEM) + 0.2 ( 0.9[TLB+MEM+MEM] + 0.1[TLB+MEM + 0.5(ディスク) + 0.5(2ディスク+MEM)] ) = 15,110 ns

理由を説明できますか?

4

2 に答える 2

9

このコンテキストでの「有効な」時間は、「期待される」または「平均的な」時間を意味します。したがって、個々のケースでページにアクセスするのにかかる時間を取り、それぞれにその確率を掛けます。式は、いくつかのレベルでケースに分割されているため、やや複雑です。ケースは次のとおりです。

  • 物理アドレスが 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が含まれていない場合、前者を示唆している場合、後者を想定します。

于 2013-01-07T09:35:34.530 に答える
0

質問を読んで、たとえば 2 レベルのページング システムに基づく、より現実的なシナリオについて考えていました。

このシナリオでは、私が理解できる限り、ページテーブル (PT) 自体がメモリに常駐していない可能性があります (PT 自体が RAM からスワッピング領域 (Linux など) またはページファイル (Windows など) にページアウトされている可能性があります)。 )))。

ページ ディレクトリ (ページング階層の最初のレベル) に関しては、常にRAM に常駐する必要があると思います (そうしないと、コンテキストの切り替え時に x86 CR3 レジスタの内容がまったく役に立たなくなります...)

したがって、少なくとも含める必要があるオカレンスのパーセンテージが存在します。

  • PT 自体を (スワッピング領域またはページファイルから) メモリに読み込んで取り込むために必要なディスク アクセス時間
  • 現在メモリ内の PT にアクセスするのに必要な MEM 時間

それは理にかなっていますか?

于 2016-12-08T09:35:35.070 に答える