【发布时间】:2018-08-09 09:56:22
【问题描述】:
这是我到目前为止所理解的 - 虚拟和物理地址空间被划分为具有相同大小的页面,比如说 100 个字节(仅用于示例),所以一个页面中可以寻址的地址是从 0 到99,当需要给定的虚拟页面时,它被映射到物理内存。因此,当使用fork() 时,您将获得一个具有自己地址空间的单独进程,并从现在位于子地址空间中的父进程中复制所有变量。我的第一个问题是 - 每个页面是否都从地址 0 开始,因为如果我在父地址空间中定义一个变量并从两个进程打印它,它会给我相同的地址吗?第二个问题是 - 程序内存由文本、数据、堆、堆栈组成,这都是内存中的一页吗?
【问题讨论】: