动态运行时装入

#动态重定位


  • 亦称动态运行时装入
  • 和隔壁静态重定位一样,装入模块的地址都是逻辑地址,从0开始的
  • 装入内存后,不会立即把逻辑地址转换为物理地址,而是把地址转换推迟到程序真正要执行的时候才进行。故装入内存后的所有地址依旧是逻辑地址
  • 实现动态重定位呢,需要一个重定位寄存器的支持
  • 重定位寄存器:存放装入模块存放的起始位置(内存中该模块的起始物理地址)
  • cpu会根据该寄存器与模块中的逻辑地址相加,得出真正的内存中的地址
  • Pasted image 20260709105909.png
  • 采用动态重定位时,允许程序在内存中发生移动
  • 说实话,这个装入方式的优点很多,后面会继续讲述
  • 不出意外的话,应该会提到这三个装入方式的,到时候给个链接过来