重定位程序是指 将程序中的逻辑地址转换为内存中的物理地址的过程。在计算机系统中,程序在内存中执行时,其指令和数据通常使用逻辑地址。这些地址在程序装入内存时可能还没有被转换成物理地址。为了能够在内存中正确执行,程序中的这些地址需要被转换成实际的物理地址,这一过程就称为重定位。
重定位是操作系统实现多道程序在内存中同时运行的基础。它允许操作系统动态地分配内存,并在程序执行时根据需要调整地址,从而提高内存空间的使用效率。
重定位可以分为两种类型:
静态重定位:
在程序装入内存的过程中完成,即在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。
动态重定位:
在处理器每次访问主存储器时,由动态地址变换机构自动执行,将相对地址转换为绝对地址。
通过重定位,程序能够正确地在其分配的内存空间中执行,并且操作系统可以根据需要动态地调整程序的地址,从而实现多道程序在内存中的高效运行。