像堆栈这样的段使用需求分页吗?

Posted

技术标签:

【中文标题】像堆栈这样的段使用需求分页吗?【英文标题】:does segments like stack use demand paging? 【发布时间】:2021-07-04 11:12:20 【问题描述】:

我可以通过shell的ulimit -s获取堆栈大小,但是我不确定是否所有的虚拟内存都已经位于物理内存上,换句话说,这里是否使用了按需分页?

我粗略的猜测不是因为the max thread numbers per process is limited。如果栈使用按需分页,线程的数量可以超量使用,这个数量应该存在。

【问题讨论】:

我认为你应该在另一个网站下问这个问题:serverfault.com 是的,进程地址空间中的所有内存都是逻辑/虚拟的。线程数的限制与虚拟内存无关 【参考方案1】:

我可以通过shell的ulimit -s获取堆栈大小,但是我不确定是否所有的虚拟内存都已经位于物理内存上,换句话说,这里是否使用了按需分页?

使用按需分页。进程可能永远不会使用它们所允许的最大堆栈空间的大部分,浪费宝贵的物理内存是没有意义的,这些物理内存可以用作可能永远不会被使用的堆栈空间的磁盘缓存。

我粗略的猜测并不是因为每个进程的最大线程数是有限的。如果栈使用按需分页,线程的数量可以超量使用,这个数量应该存在。

您将唯一的进程堆栈(由创建进程时创建的线程使用)与进程在启动后创建的线程堆栈混淆。它们是不同的东西。当一个新线程被创建时,一个新的内存块(与创建新线程的线程的堆栈完全无关)来保存它的堆栈。

【讨论】:

谢谢!最后一段我还是一头雾水,有没有参考,希望多了解,谢谢!

以上是关于像堆栈这样的段使用需求分页吗?的主要内容,如果未能解决你的问题,请参考以下文章

您可以对引导布局网格列进行分页吗?

jsPDF可以分页吗?

交易搜索有分页吗?

我可以在 HTML 打印中强制分页吗?

如果我们有无限的内存,那么我们还需要分页吗?

FTP支持分页吗?