私はgalvinの第6版からオペレーティングシステムの概念を研究していましたが、プログラムの実行の流れについていくつか質問があります。図は、ユーザープログラムの処理を次のように説明しています。
リンケージエディタポイントに到達すると、実行可能なバイナリファイルを取得します。本が言うように、「プログラムを実行するには、プログラムをメモリに入れてプロセス内に配置する必要があります」今、私の愚かな質問のいくつかは次のとおりです。
プログラムがメモリにロードされる前に、リンケージエディタによって生成されたバイナリ実行可能ファイルがハードディスクに保存されます。バイナリ実行可能ファイルがハードディスクに保存されているアドレスは、CPUによって生成された論理アドレスですか?
前の答えが「はい」の場合、CPUが論理アドレスを生成する必要があるのはなぜですか?つまり、実行可能ファイルはアドレスに関連するハードディスクのどこかに保存されているのですが、なぜCPUが個別に処理を実行する必要があるのでしょうか。CPUの主な目的は結局のところ処理です!
実行可能ファイルが物理メモリ、つまりRAMにある必要があり、ハードディスクで実行できないのはなぜですか?速度の問題によるものですか?
私はこれらの質問をするのが愚かであることを知っていますが、私を信じてください、私は答えを見つけることができません!:|