首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分页文件是堆的一部分吗?我认为堆不必是一个连续的内存块,这是正确的吗?

问分页文件是堆的一部分吗?我认为堆不必是一个连续的内存块,这是正确的吗?
EN

Stack Overflow用户
提问于 2016-06-09 23:46:52
回答 1查看 174关注 0票数 0

只有两个简单的问题我找不到合适的答案。我决定学习汇编语言,因为它是我的编程能力缺乏的一个领域。

另外,在递归调用函数的情况下,操作系统如何确定线程的堆栈应该有多大?或者它只是将堆栈放在堆栈的位置,在堆栈与堆发生冲突之前,堆栈可以扩展到大量内存中?

EN

回答 1

Stack Overflow用户

发布于 2016-06-10 10:04:19

是堆的分页文件部分吗?

不怎么有意思。您不能直接访问它;操作系统可能会透明地使用它来调出进程的虚拟地址空间的一部分。

堆不一定是一个连续的内存块?

是的,使用mmap(MAP_ANONYMOUS)的分配被认为是堆的一部分,可以在虚拟地址空间中的任何位置。正如Weather Vane所指出的,“堆”是一个相当宽泛/古老的术语。对于理解幕后到底发生了什么,这不是一个有用的概念。

例如,你可以mmap一个文件,使其内容成为你的虚拟地址空间的一部分。这是“堆”的一部分吗?我不知道,也不在乎。

还在函数被递归调用的情况下,操作系统如何确定线程的堆栈应该有多大?

它只是在进程启动时设置最大堆栈大小限制。使用递归函数与此无关。(尽管这是最常见的用完固定大小限制的方法,另一种方法是大型局部数组)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37730696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档