重定位程序是指 将程序的逻辑地址空间变换成内存中的实际物理地址空间的过程。这个过程是多道程序在内存中同时运行的基础。重定位有两种主要类型:
静态重定位:
在程序装入内存的过程中完成,即在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变。
动态重定位:
它不是在程序装入内存时完成的,而是CPU每次访问内存时,由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。
通过重定位,操作系统能够动态地分配内存,并在程序执行时根据需要调整地址,从而提高内存空间的使用效率。重定位是操作系统实现多道程序在内存中同时运行的重要机制。