ELFセクションの仮想アドレスと物理アドレスについてこの基本的な疑問があります。
objdump -hは、論理アドレスと物理アドレスのセットを示します。
$ objdump -h my.elf
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0003c3d0 00080000 00080000 00010000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
また、理論上、LMA(物理アドレス)はロードアドレスとも呼ばれ、これはアプリケーションをロードする必要のあるアドレスです。
すべて問題ありませんが、私の質問は、なぜこれほど早く物理アドレスを割り当てるのかということです。ロードアドレスについて言及しているプログラムを起動したが、ロード中に、システムは、ロード可能なアドレスが属するページフレームがすでに他のタスクに割り当てられていることを検出した場合はどうなりますか。その場合、システムはプロセスを待機するのでしょうか、それともすぐにページをスワップアウトして、ページを使用可能にするのでしょうか。
利用可能なページフレームに基づいて、elfセクションをロードするアドレスをシステムに決定させると、はるかに良いと思いませんか。