[英]How are the different segments like heap, stack, text related to the physical memory?
[英]does segments like stack use demand paging?
我可以通过 shell 的ulimit -s
获取堆栈大小,但我不确定所有虚拟 memory 是否已经位于物理 memory 上,换句话说,这里使用了按需分页吗?
我粗略的猜测不是因为每个进程的最大线程数是有限的。 如果堆栈使用请求分页,线程的数量可以过度使用,并且该数量应该存在。
我可以通过 shell 的 ulimit -s 获取堆栈大小,但我不确定是否所有虚拟 memory 都已经位于物理 memory 上,换句话说,这里使用了按需分页吗?
使用请求分页。 进程可能永远不会使用它们允许的最大堆栈空间的大部分,浪费宝贵的物理 memory 是没有意义的,这些物理 memory 可以用作可能永远不会被使用的堆栈空间的磁盘缓存。
我粗略的猜测不是因为每个进程的最大线程数是有限的。 如果堆栈使用请求分页,线程的数量可以过度使用,并且该数量应该存在。
您将唯一的进程堆栈(由创建进程时创建的线程使用)与进程在启动后创建的线程堆栈混淆。 它们是不同的东西。 当创建一个新线程时,一个新的 memory 块(与创建新线程的线程的堆栈完全无关)来保存它的堆栈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.