Ama*_*tam 12
问题已经问了很长时间,但我只是为归档目的添加了答案.
我们来看看以下定义:
Logical address:CPU生成的地址
Physical address:内存管理单元(MMU)看到的地址
现在compile time binding我们假设一系列的内存位置始终可用(这对程序来说已经足够)并且生成了绝对代码.因此,CPU生成的任何地址(如指针地址等)都与MMU看到的相同.
更好的内存利用率是将绑定延迟到加载时间,以便不占用磁盘上程序使用的内存.为此,代码以可重定位格式生成.这是load time binding.
现在execution time binding有点不同,绑定被延迟到执行时间.在这种情况下,CPU生成一个地址,让我们说300,并对地址进行所有操作,300但是只要有实际的存储器访问,就可以通过将可重定位寄存器的值添加到该地址来转换R该地址.因此逻辑地址范围是0-LIM物理地址空间R-(R+LIM).
我还要用一个例子来解释它,以便它变得更加清晰:
考虑交换一个程序,load time binding你需要将它交换回相同的位置(因为指令中的所有地址都按照这个地址进行了出价),而execution time binding你可以将任何进程交换回任何地方,因为你只需要更改可重定位寄存器中的值,它将正常工作.因此提高内存利用率.