首页 > 试题广场 >

为什么要引入动态重定位?如何实现?

[问答题]
为什么要引入动态重定位?如何实现?
由于紧凑:一个系统或用户冲虚必须被装入一片连续的内存空间中,当计算机运行了很久之后,内存就会出现很多被分割的晓得分区,缺乏大的空闲空间,就算这些分散的许多小的分区的容量总和要大于要装入的程序,但由于这些分区不相邻所以也无法将程序装进去
    那么向装大作业就把内存中的所有作业进行移动,让这些碎片全都做邻居,就可以拼在一起了。但是,这样紧凑之后的就需要对所有移动的程序和数据地址修改,这样就大大影响了系统的效率
动态重定位:由于将作业动态运行时装入内存之后所有的地址仍然都是相对(逻辑)地址,而将相对地址转换为绝对地址的工作被延迟到程序要真正进行时才开始,这样慢要想影响到指令执行的速度,必须要有硬件支持地址变换,+上一个重定位寄存器,程序将要存放的数据的起始地址,把逻辑地址和重定位寄存器的实时起始地址相加就好了
发表于 2021-07-12 21:36:39 回复(0)