程序地址重定位是指把程序中的逻辑地址变换成主存空间的物理地址的过程,其中动态重定位是
A、在编辑程序中完成转换
B、在编译程序中完成转换
C、在程序装入时完成转换
D、在程序执行的过程中完成转换
【正确答案】:D
【题目解析】:程序地址重定位是将程序中的逻辑地址转换为主存空间的物理地址的过程。在计算机系统中,程序通常使用逻辑地址来访问内存中的数据和指令。逻辑地址是相对于程序自身的地址空间的,与实际的物理内存地址无关。 在程序加载到内存并准备执行之前,需要进行地址重定位操作。地址重定位的目的是将程序中的逻辑地址映射到实际的物理内存地址上,以便程序能够正确地访问内存中的数据和指令。 动态重定位是在程序执行的过程中完成地址转换的过程。在动态重定位中,程序中的逻辑地址会根据当前的内存布局和分配情况进行实时的转换。这种方式可以使得程序在运行时适应不同的内存布局和分配情况,提高了程序的灵活性和可移植性。 动态重定位通常由操作系统或者硬件支持。操作系统会为每个进程分配独立的地址空间,并在程序加载和执行时进行动态重定位。硬件支持动态重定位的方式包括使用基址寄存器和限长寄存器等。 总之,程序地址重定位是将逻辑地址转换为物理地址的过程,动态重定位是在程序执行过程中实时完成地址转换,以适应不同的内存布局和分配情况。