【发布时间】:2012-10-08 04:24:55
【问题描述】:
我对 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(物理地址)也称为加载地址,这是应用程序应该加载的地址。
一切都很好,但我的问题是为什么我们这么早就分配物理地址。我的意思是,如果我启动一个提到某个加载地址的程序,但在加载时,系统发现可加载地址所属的页框已分配给其他任务。在这种情况下,系统是等待进程还是立即换出页面以使页面可用。
您不认为如果我们让系统根据可用的页框来决定在哪个地址加载精灵部分会更好吗?
【问题讨论】:
-
您的用户模式应用程序将永远知道它的内存在哪个物理地址。见this question。