7

仮想メモリ環境で実行中のプロセスに割り当てる必要があるページ フレームの最小数を決定するもの。

上記の質問に対する答えは であることがわかりましたが、そのinstruction set architecture背後にある理由を理解できませんでした。

説明してください。

編集: 質問は次のリンクにあります http://www.geeksforgeeks.org/archives/4036(質問3を参照)、答えの背後にある論理を理解できません。

4

1 に答える 1

19

はい、ISAは役割を果たします。
ISA が 3 レベルの間接化 (x86 の間接アドレス指定モードを思い出してください) の後にオペランドを取ることができる命令 (x86 の mov など) をサポートしている場合、この仮説的な条件を想像してみてください。このシステムを A と呼び
ましょう。別のシステムでは、最大 2 レベルの間接参照を B と呼ぶことができます。

A と B で、フレームの最小数として 4 を指定すると、何が起こるかがわかります。B は A ではなく正常に実行されます。その理由は次のとおりです。
オペランドに 3 レベルの間接性を持つ命令が実行のために CPU にロードされる場合、このプロセスには 4 つのフレームしかないことを思い出してください。このシナリオ
のフレーム 1 は命令自体用であると仮定します。 .
フレーム 2 は第 1 レベルの間接参照用です オペランドは別のページにあります
フレーム 3 は第 2 レベルの間接参照用です これは以前に割り当てられたフレームのアドレス範囲にない可能性があります。
フレーム 4 では、次のレベルの間接化でも同じことが起こります。
ここで、パイプラインを思い出してください。オペランドのフェッチが完了した後でのみ、次の実行ステージに進むことができますが、最後のオペランドがなく、フレーム 4 内のアドレスしかありません。ページ フォールトが発生するため、以前に割り当てられたフレームの 1 つを処理するために削除し、障害の原因となった命令を再起動しますが、再び同じことが起こります。システム B にはこの問題はありません。

私が思い出す限り、これはプロセスの最小フレーム数を決定する際に ISA が役割を果たす方法です。ガルビンを参照してください。この本は仮想メモリのセクションでこれをカバーしていると思います。
しかし、これは理論上の話であり、Linux のような実際のシステムでプロセスがどのように行われるかはわかりません。

乾杯 :)

編集:-あなたが指摘したリンクに示されているように、指示はページの境界を越える可能性があります

于 2012-06-27T21:23:26.307 に答える