🏷️ 知识点:程序的装入

共 1 道相关题目

2011 年第 30 题 操作系统 选择题

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

程序的链接 程序的装入

A. 编辑

B. 编译

C. 链接

D. 装载

[tag_link]

正确答案:C

编译后的模块需要经过链接才能装载,而链接后形成的地址才是整个程序的完整逻辑地址空间。以 C 语言为例:C 语言经过预处理 (cpp)→编译 (ccl)→汇编 (as)→链接 (ld) 产生可执行文件。其中链接的前一步,产生了可重定位的二进制的目标文件。C 语言采用源文件独立编译的方法,如程序 main.c,file1.c,file2.c,file1.h,file2.h,在链接的前一步生成了 main.o,file1.o,file2.o,这些目标模块采用的逻辑地址都从 0 开始,但只是相对于该模块的逻辑地址。链接器将这三个文件,libc 和其他的库文件链接成一个可执行文件。链接阶段主要完成了重定位,形成整个程序的完整逻辑地址空间。例如,file1.o 的逻辑地址为 01023,main.o 的逻辑地址为 01023,假设链接时将 file1.o 链接在 main.o 之后,则重定位之后 file1.o 对应的逻辑地址就应为 1024~2047。