1

我在 Linux 操作系统中使用 gcc。我已禁用 ASLR 。现在,对于我按预期声明的数组,我总是得到相同的虚拟地址。

现在,我的问题是,在我的程序执行期间,虚拟到物理地址的映射是否也相同,或者,在我的程序执行期间,虚拟到物理地址的映射是否会发生变化?

我的问题的任何答案/指针将不胜感激。提前致谢。

4

1 回答 1

0

通常,从虚拟地址到物理地址的映射在执行期间保持不变,几乎没有例外。例如,如果您的阵列所在的页面成为要交换到磁盘的牺牲品,则操作系统稍后可能会将其重新映射到另一个物理地址。

但是为什么需要将阵列固定在物理内存中呢?您只能从内核操作物理内存,如果您已经在内核中执行了某些操作,则始终可以执行页面遍历以获取实际和最新的翻译。

于 2013-12-05T23:10:56.283 回答