我在Linux OS中使用gcc。我已禁用ASLR。现在我得到的数据总是与我预期的数组相同。
现在,我的问题是,在程序执行期间,虚拟到物理地址的映射是否也相同,或者在执行程序期间虚拟到物理地址的映射是否会发生变化?
我的问题的任何答案/指针都将受到高度赞赏。提前谢谢。
答案 0 :(得分:0)
通常,从虚拟地址到物理地址的映射在执行期间保持不变,只有少数例外。例如,如果您的阵列所在的页面成为要交换到磁盘的受害者,则操作系统可能会稍后将其重新映射到另一个物理地址。
但是为什么你需要将你的阵列固定在物理内存中?您只能从内核操作物理内存,如果您已在内核中执行某些操作,则可以始终执行分页来获取实际和最新的翻译。