首页 > 试题广场 >

在虚拟内存管理中,地址变换机构将逻辑地址变为物理地址,形成该

[单选题]

在虚拟内存管理中,地址变换机构将逻辑地址变为物理地址,形成该逻辑地址的阶段是()。

  • 编辑
  • 编译
  • 链接
  • 装载

编译后形成的目标文件可以理解为一个小块一个小块的程序碎片,这样的小块一般都是具有从0开始的逻辑地址。 在和相应的库函数链接以后形成一个可执行的文件,需要修改这些小块的逻辑地址,使之统一有序。 所以在链接的过程中又把每个小段的逻辑地址按照一定的顺序组装成一个统一的逻辑地址范围,用来标识出此程序。 虽然编辑后的目标文件形成的小块内的也叫逻辑地址,但是和链接后形成的逻辑地址是截然不同的。

编辑于 2017-04-15 11:48:45 回复(0)
编译过程中是指将程序源代码编译成目标模块Object,此时会形成逻辑地址,链接之前的就已经形成了,是在编译过程形成的!!!
答案有误,应选B,2011年计算机操作系统选择题第30题!!!!
发表于 2019-01-07 14:58:50 回复(3)
选择B,在经过编译后会形成的目标模块,目标模块的地址可以称之为逻辑地址;在链接时,会将编译形成的多个目标模块和他们运行时需要的库函数链接在一起,形成装入模块,装入模块的地址也可以称之为逻辑地址。
但题意问的是“将逻辑地址变为物理地址“时候的逻辑地址,因此指的是装入模块的逻辑地址,即发生在链接过程。
发表于 2020-09-10 17:47:31 回复(0)
形成逻辑地址的阶段是链接
发表于 2016-12-07 19:27:08 回复(0)
注意“该逻辑地址”中的“该”字, .o文件中的逻辑地址经过链接之后才是该逻辑地址。
发表于 2020-09-03 00:00:48 回复(0)
编译过后的程序需要经过链接才能装载,而链接后形成的目标程序中的地址也就是逻辑地址。以C语言为例:C语言经过预处理(cpp)→编译(ccl)→汇编(as)→链接(1d)产生了可执行文件。其中链接的前一步,产生了可重定位的二进制的目标文件。C语言采用源文件独立编译的方法,如程序main.c,filel.c,file2.c,filel.h,file2.h,在链接的前一步生成了main.o,filel.o,file2.o,链接器将这三个文件,libc和其他的库文件链接成一个可执行文件。链接阶段主要完成了重定位,形成逻辑的地址空间。
发表于 2019-04-24 15:33:09 回复(0)
编译过后的程序需要经过链接才能装载,而链接后形成的目标程序中的地址也就是逻辑地址。以C语言为例:C语言经过预处理(cpp)→编译(ccl)→汇编(as)→链接(1d)产生了可执行文件。其中链接的前一步,产生了可重定位的二进制的目标文件。C语言采用源文件独立编译的方法,如程序main.c,filel.c,file2.c,filel.h,file2.h,在链接的前一步生成了main.o,filel.o,file2.o,链接器将这三个文件,libc和其他的库文件链接成一个可执行文件。链接阶段主要完成了重定位,形成逻辑的地址空间。
发表于 2020-10-05 15:51:14 回复(0)
我看的版本答案是B. 但是我觉得是C. 而且我实验过了. 只编译得到.o文件, 反汇编得到的是`0000000000000000 <_main>:`, 根本没有地址.

编辑于 2021-12-02 17:42:38 回复(0)
编译产生的那个逻辑地址只能说是相对地址吧
发表于 2022-11-18 10:58:42 回复(0)
链接形成逻辑地址。
发表于 2021-12-24 00:09:49 回复(0)
编译之后每个文件有自己的0开始的逻辑地址 但是本题问的是虚拟内存管理中,地址变换机构也就是页表使用的逻辑地址,是链接以后的逻辑地址,故选C
发表于 2021-11-07 17:32:13 回复(0)
编译产生逻辑地址,链接只是将逻辑地址链接起来
发表于 2021-01-22 15:06:04 回复(1)
B
在经过编译后会形成的目标模块,目标模块的地址可以称之为逻辑地址;在链接时,会将编译形成的多个目标模块和他们运行时需要的库函数链接在一起,形成装入模块. 
题目问形成该逻辑地址的阶段,所以是在编译时形成逻辑地址
发表于 2020-11-03 17:52:38 回复(0)
逻辑地址向物理地址转换的时机跟装入的方式有关
发表于 2020-03-23 12:26:39 回复(0)
形成逻辑地址的阶段是链接
发表于 2017-04-22 09:01:27 回复(0)