- ベストアンサー
OSはどのようにして、CPUにメモリ上の物理アドレスを伝えるのか?
一般的なシステムにおいて、プログラムを実行するには、コンパイラが再配置可能なオブジェクトファイルにして、そのオブジェクトファイルをローダがメモリ上にローディングして、CPUによって実行が行われると認識しています。 では、実際にCPUにより実行される時に、どのようにしてCPUは、ローディングされている物理アドレスを知ることが出来るのですか?一番初めにOSがどのようにCPUに先頭番地を伝えているのかが見当がつきません。例えば、486では、セグメントレジスタの値とオフセットアドレスを加算したアドレスを基にメモリとやり取りしていますが、OSがこのセグメントレジスタに先頭アドレスをどのように格納しているのかを教えてください。お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- edomin
- ベストアンサー率32% (327/1003)
回答No.1
補足
ご回答ありがとうございます。再び質問なのですが、x86では、メモリ管理ユニット(MMU)の中にページングを行う表をOSがローディングしているのですか?そして、x86ではセグメント方式を必ず使うかもしれませんが、プロセッサを作る場合に、セグメント方式を使わずに(プロセッサ内にセグメント方式のハードウェアを用意せずに)、MMUを別途用意してページングだけを利用したメモリ管理は可能ですか?よろしくお願いします。