5. 静态重定位与动态重定位有什么区别?
时间: 2023-12-30 07:07:07 浏览: 1083
静态重定位和动态重定位都是操作系统中关于程序运行时内存地址的概念,它们的区别在于重定位的时机不同。
静态重定位是在程序编译时进行的,程序中的地址都是相对于程序自身的基地址的偏移量。在程序加载到内存中时,操作系统会将程序的基地址确定下来,并将程序中的地址偏移量加上这个基地址,从而得到程序在内存中的真实地址。
动态重定位是在程序运行时进行的,程序中的地址是相对于程序运行时的基地址的偏移量。在程序运行时,操作系统会将程序加载到内存中,并将其基地址确定下来。当程序需要访问某个地址时,操作系统会将该地址的偏移量加上程序当前的基地址,从而得到该地址在内存中的真实地址。
总的来说,静态重定位是在编译时完成的,因此程序加载时速度较快,但是灵活性较差;而动态重定位则是在程序运行时完成的,因此程序加载时速度较慢,但是灵活性较好。
阅读全文
相关推荐


















