这是一张总结了我对内核组织的进程内存布局的理解的图片。我想了解
1)何时进行分段和分页过程?在编译期间或执行程序之后
2)在任何给定的实例中,它都可以通过任何方式访问我的进程中任何给定实体(变量,对象)的物理地址
我在了解内核书中找不到什么信息,或者说解释离我的理解太远了我不确定。可能有人可以帮助我
答案 0 :(得分:3)
@Keen Learner,1)分段和分页过程在程序执行后立即进行。仅当程序中存在的某些代码试图访问其进程/虚拟内存块中不存在的受保护内存或内存时,才会发生分段错误。分页过程,因为我们不能在主内存中同时拥有所有与进程相关的页面。在执行流程期间,仅会相应地引入或交换适当的页面。 2)据我所知,没有机制/方法来访问变量的物理地址,因为我们玩的所有东西都是虚拟地址,并将其转换为物理地址是 MMU 的工作。希望我已经清除了你的怀疑: - )