linux / 虚拟/物理页面大小
页面大小是否恒定?更具体地说,getconf PAGE_SIZE 给出 4096,这很公平。但这可以通过程序的运行时来改变吗?或者它在整个操作系统进程生成过程中是恒定的。即,一个进程是否可以拥有 1024 和 2048 AND 4096 页面大小?现在我们只讨论虚拟页面大小。但更进一步,虚拟页是否可以跨越更大尺寸的物理页?
Is the page size constant? To be more specific , getconf PAGE_SIZE gives 4096, fair enough. But can this change through a program's runtime? Or is it constant throughout the entire OS process spawn. I.e. , is it possible for a process to have 1024 and 2048 AND 4096 page sizes? Let's just talk virtual page sizes for now. But going further is it possible for a virtual page to span a physical page of greater size?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一个进程可以使用多个页面大小。在较新的内核上,这种情况甚至可能会在没有通知的情况下发生,请参阅Andrea Arcangelis 透明大页面。
除此之外,您可以通过 hugetlbfs 请求不同(通常更大)页面大小的内存。
使用大页面的主要原因是性能,处理器中的 TLB 大小非常有限,更少但更大的页面意味着更多的命中。
It is possible for a process to use more than one pagesize. On newer kernels this may even happen without notice, see Andrea Arcangelis transparent huge pages.
Other than that, you can request memory with a different (usually larger) page size over hugetlbfs.
The main reason for having big pages is performance, the TLB in the processor is very limited in size, and fewer but bigger pages mean more hits.