1

这是一张总结我对内核组织的进程内存布局的理解的图片。我想了解

1)分割和分页过程何时发生?在编译期间或程序执行之后

2)在任何给定的情况下,是否可以通过任何方式访问我的进程中任何给定实体(变量、对象)的物理地址

我在理解内核一书中发现的信息很少,或者可能是解释与我的理解相距甚远,我不确定。可能有人可以帮助我

在此处输入图像描述

4

1 回答 1

3

@Keen Learner,1)分段和分页过程在程序执行后立即进行。仅当程序中存在的代码的某些部分尝试访问受保护的内存或在其进程/虚拟内存块中不存在的内存时,才会发生分段错误。分页进程,因为我们不能在主内存中同时拥有所有与进程相关的页面。仅在流程执行期间相应地引入或换出适当的页面。2)据我所知,没有访问变量物理地址的机制/方法,因为我们玩的一切都是虚拟地址,将其转换为物理地址是MMU的工作。希望我已经消除了您的疑虑:-)

于 2013-07-29T03:42:34.977 回答