古い UNIX カーネルをハックしようとしています。ソフトウェアを使用して MMU と TLB を実装したいだけです。構築に使用するのに最適なデータ構造とアルゴリズムを教えてください。LRU の実装が簡単なため、多くの人がスプレイ ツリーを使用しているのを見てきました。より良いデータ構造はありますか? ソフトウェアで仮想アドレスを物理アドレスに変換する最も効率的な方法は何ですか。その x86 アーキテクチャと変換を基本的なページ テーブル変換と仮定します。
1 に答える
0
あなたは効率性に言及しています。それがエンジニアリングの目標ですか?特定の目標に制約されていない場合は、それを機能させるようにしてください。可能であれば、直接または完全に関連付けられた単一レベルのページテーブルを作成します。あなたはこれを過ぎたように聞こえますが。
最も効率的なのは、サイズと速度のトレードオフと、期待する局所性の種類によって異なります。重要なアプリのプロファイリングはありますか? それとも、いくつかの実装を試すためにいじっているだけですか? 一部の新しいアーキテクチャでは、逆ページ テーブルが使用されています。これは、これに多くの時間を費やしている人が、これは良い方法だと考えていることを示していると考えています。
于 2010-07-20T03:04:40.480 に答える