进程段(堆栈,堆,数据和代码)在内存中是连续的吗?

时间:2014-10-13 15:30:36

标签: process

有些身体可以帮助,所有段属于进程在内存中是连续的吗?如果是,那么为什么那些应该是连续的?。

根据我的理解堆栈降低并且堆增长(取决于CPU架构),显示所有段逐个放置(紧密耦合)。

2 个答案:

答案 0 :(得分:0)

  1. 细分本身在架构上依赖。除英特尔之外,很少有处理器使用细分。此外,英特尔处理器上没有64位模式的段。

  2. 如果您使用的是英特尔处理器,而不是64位模式,则这些段几乎是连续的。堆不与代码交错。但是,它们可能是支持该系统的系统中某个段内虚拟内存中的不连续性。这些段不必相互连接。

  3. 如果您在没有段的系统上运行,则代码,堆和数据可以是交错的。但是,每个堆栈必须是连续的。

答案 1 :(得分:0)

在虚拟内存中的x86上是的,它们从进程的角度来看是连续的,但是这些段的部分可以映射到任何随机的物理内存部分。