14

Web で公開されている John Kubiatowicz (Prof. Kuby) による OS に関する UC Berkley Video レクチャーで、彼は、TLB ヒットは対応するページがメイン メモリにあることを意味しないと述べました。ページ フォールトは引き続き発生する可能性があります。
技術的には、TLB はページ テーブル エントリのキャッシュであり、すべてのページ テーブル エントリは対応するページをメイン メモリで使用できるわけではないためです。同じことが TLB にも当てはまります。TLB ヒットは、ページ フォールトにつながる可能性があります。

しかし、テキストブックに記載されているアルゴリズムによると、そのようなケースを見つけることができません。TLB ミス カーネルでは、ページ テーブルを参照し、適切なアドレス変換のために TLB キャッシュを更新します。次の TLB ヒットでページ フォールトが発生することはありません。カーネルがページをスワップアウトすると、そのページ テーブル エントリの適切なビットが更新され、対応する TLB が無効になります。そのため、ページがメイン メモリにロードされるまで、次回は TLB がヒットすることはありません。

誰かが kuby 教授の主張の正しさを支持し、TLB ヒット (TLB で見つかった対応する仮想アドレスの変換された物理アドレス) の代わりに、ページ フォールトが発生する可能性があるケースを指摘できますか?

4

3 に答える 3

13

1 つの例は、メモリ アクセスが許可されたものと異なる場合です。

たとえば、書き込み保護されているメモリに書き込みたいとします。TLB が存在し、ヒットしてアドレスが変換されます。ただし、読み取り専用のメモリに書き込もうとしているため、アクセス時にトラップが発生します

于 2011-06-18T21:42:30.867 に答える
-2

パターソンは言う:「ページがメモリに存在しない場合、TLBに翻訳を持たせることはできません」[コンピュータの構成と設計、改訂第4版、507ページ]

于 2013-11-08T14:44:24.000 に答える