简述程序的静态再定位和动态再定位的含义及实现方法
操作系统中的动态重定位和静态重定位? 静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为。
为什么说经过动态重定位(而不是静态重定位),目标程序可以不经过任何改动而装入物理内存单元 动态重定位即在程序运行过程中要访问数据时再进行逻辑地址与物理地址的变换(即在逐条指令执行时完成地址映射。一般为了提高效率,此工作由硬件地址映射机制来完成。硬件支持,软硬件结合完成)硬件上需要一对寄存器的支持。程序放在不连续的实际物理空间中,要进行逻辑地址到物理地址的转换,实现动态重定位一般需要页式存储管理,页式存储管理用的不是寄存器,使用的是称为page table(页表)的数据结构page table记录了所有逻辑地址到物理地址的转换信息,进程切换的时候需要冲洗硬件上的page table。一句话就是动态重定位,有地址映射机制完成,硬件支持与目标程序无关,使用页表进行逻辑地址到物理地址的转换。