1

1) 単一レベルのページ テーブルとしましょう3) TLB
ミスが発生します
3) 必要なページ テーブルがメイン メモリにあります実行できますか?高価なハードウェアではないと思います 4) MMU 物理ページ番号を取得します (MMU は、上位 n ビットを仮想ページ番号として、下位 m ビットを物理ページ フレーム番号として保存する必要があると思います。修正してください。間違っている場合は説明してください)質問: 仮想ページ番号をキーとして、物理フレーム番号を指定したキー値マップが必要だと思います。値として。MMU がページ テーブルでキーを検索する方法。線形検索のようにそのままの場合は、非常にコストがかかります。





5) ハードウェアでは、オフセット ビットをページ フレーム番号に追加します。

最後に、物理アドレスの読み取りが発生します。

したがって、この質問は私を大いに悩ませています.MMUはページテーブルで特定のキー(仮想ページエントリ)の検索をどのように実行しますか?

4

1 に答える 1

2

ページ テーブルが適度に小さい場合 (たとえば、256 エントリ)、ページ テーブルにレジスタを使用しても問題ありません。ただし、最近のほとんどのコンピュータでは、ページ テーブルを非常に大きくすることができます (たとえば、100 万エントリ)。これらのマシンでは、高速レジスタを使用してページ テーブルを実装することはできません。代わりに、ページ テーブルはメイン メモリに保持され、ページ テーブル ベース レジスタ( PTBR ) がページ テーブルを指します。ページ テーブルを変更するには、この 1 つのレジスタのみを変更する必要があるため、コンテキスト切り替え時間が大幅に短縮されます。

このアプローチの問題は、ユーザー メモリ ロケーションへのアクセスに必要な時間です。位置iにアクセスしたい場合は、最初にiのページ番号による PTBR オフセットの値を使用して、ページ テーブルにインデックスを作成する必要があります。このタスクにはメモリ アクセスが必要です。フレーム番号が提供され、ページ オフセットと組み合わされて実際のアドレスが生成されます。その後、メモリ内の目的の場所にアクセスできます。この方式では、1 バイトにアクセスするために 2 回のメモリ アクセスが必要です (ページ テーブル エントリに 1 回、バイトに 1 回)。したがって、メモリ アクセスは 2 分の 1 に遅くなります。この遅延は、ほとんどの環境では耐えられません。スワッピングに頼るかもしれません!

この問題の標準的な解決策は、変換ルックアサイド バッファー (TLB)と呼ばれる特別な小さい高速ルックアップ ハードウェア キャッシュを使用することです。TLB は連想型の高速メモリです。TLB の各エントリは、キー (またはタグ) と値の 2 つの部分で構成されます。連想記憶にアイテムが提示されると、アイテムはすべてのキーと同時に比較されます。アイテムが見つかった場合、対応する値フィールドが返されます。検索は高速です。ただし、ハードウェアは高価です。通常、TLB のエントリ数は少なく、多くの場合 64 ~ 1,024 です。

出典: Silberschatz らによるオペレーティング システムの概念。333ページ

于 2013-07-21T21:30:55.863 に答える