【发布时间】:2016-08-18 03:18:24
【问题描述】:
一个程序分为4部分:栈、数据、代码、堆。
我知道它们各自作为数据结构是什么(就像在 Java 中使用的那样),但是它们在操作系统中的区别(和定义)是什么?
【问题讨论】:
标签: multithreading process operating-system
一个程序分为4部分:栈、数据、代码、堆。
我知道它们各自作为数据结构是什么(就像在 Java 中使用的那样),但是它们在操作系统中的区别(和定义)是什么?
【问题讨论】:
标签: multithreading process operating-system
一个程序分为4部分:栈、数据、代码、堆。
这不是一个准确的起点。
一个程序被划分为具有各种属性的程序段。
堆栈只是一块内存,使用 push 和 pop 操作分配和释放。分配和释放通常使用堆栈指针寄存器实现。
堆是一个或多个内存块,可以按任意顺序和各种大小进行分配和释放。操作系统根本不知道程序堆。它们由链接到代码的库管理(尽管操作系统将拥有自己的堆)。操作系统只看到这些内存块。
【讨论】: