首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
备考首页
>
操作系统
>
内存管理
33
问答题
33
/
43
为什么静态重定位后的程序在内存中不能移动?为什么动态重定位的程序在内存中可以移动?
参考答案
静态重定位后的程序在内存中不能移动的原因如下:静态重定位后的程序的代码发生了变化,由原来逻辑地址的程序已经变为物理地址的程序,按物理地址的方式运行,因此不能再进行移动。动态重定位的程序在内存中可以移动的原因如下:动态重定位是在程序运行过程中由硬件进行地址变换,变换的结果存放在内存地址寄存器中。程序代码并没有发生变化,仍然是逻辑地址的代码,按逻辑地址的方式运行。因此,在内存中移动程序代码之后,仅需要根据代码新的起始位置,重新设定基地址寄存器的值。
纠错
收藏
查看讨论
1
...
28
29
30
31
32
33
34
35
36
37
38
...
43
跳转到
确 定
上一题
下一题
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题