当前位置: 首页 > 面试题库 >

为什么Linux(x86)的页面大小为4 KB,如何计算?

拓拔稳
2023-03-14
问题内容

x86体系结构上的Linux内核的默认内存页面大小为4 KB,我想知道该如何计算的,为什么?


问题答案:

默认页面大小由CPU的MMU(内存管理单元)支持。在32位保护模式下,x86支持两种页面:

  • 普通的,4 KiB
  • 巨大的,4 MiB

并非所有的x86处理器都支持大页面。一个人需要有一个具有页面大小扩展(PSE)功能的CPU。这不包括奔腾之前的处理器。实际上,当前所有的x86
CPU都可以实现它。

4 KiB在其他体系结构中也是广泛流行的页面粒度。有人可能会争辩说,此大小是由于将32位虚拟地址划分为页面目录/表中的两个10位索引,其余12位给出4
KiB页面大小。



 类似资料:
  • 问题内容: 限制Java JVM上Permgen空间大小的目的是什么?为什么不总是将其设置为等于最大堆大小?Java为什么默认为这么少的64MB?他们是否正在试图通过这种方式迫使人们注意代码中的Permgen问题? 如果我的应用使用85MB的permgen,那么将其设置为96MB可能是安全的,但是如果它只是主堆的一部分,为什么还要设置得如此之小呢?允许JVM使用堆允许的PermGen效率不高吗?

  • 问题内容: 我正在学习Java 8文档。我知道最大数组大小定义为均值2 ^ 31 – 8 = 2147483639 。然后,我集中讨论了为什么要减去8 或减去? 有些人根据文档给出了一些逻辑。因此,对于标题字,减去8。但是在这种情况下,如果标题字需要大于8,那么答案是什么? 请在此基础上澄清我。预先感谢您的合作。 问题答案: 阅读上述有关Java内存管理的文章,其中清楚指出 我认为这适用于Arra

  • 我测试了的速度,发现速度在I*4KB时急剧下降。结果表明:Y轴是的速度(MB/秒),X轴是的缓冲区大小,从1KB增加到2MB。子图2和子图3详细说明了1KB-150KB和1KB-32KB的部分。 环境: CPU:Intel(R)至强(R)CPU E5620@2.40 GHz 考虑到@usr、@chrisw和@leeor的建议,我更精确地重做了测试,下图显示了结果。缓冲区大小从26KB到38KB,我

  • 我在创建.pdf文件时遇到问题,页面设置为信封,横向格式。 这是我的代码,用于将asp页面转换为Itext Sharp中的pdf。 我谷歌了一下,但找不到信封size.How我要动态设置页面大小为信封、风景。 提前致谢

  • 问题内容: Java中的数组的长度是固定的。Java为什么要允许大小为0的数组呢? 问题答案: 它表示它为空。即您可以遍历它,就好像它有项目并且没有结果发生一样: 从而避免了检查的需要。如果所讨论的数组为,则会发生异常,但是在这种情况下,它什么也不做,这可能是适当的。

  • 我为我的Java web应用程序分配了一个最大值。由于一些内存泄漏,应用程序已经消耗了将近2 GB的分配内存。此时,我已经使用进行了内存转储。在一个实例中,堆转储大小接近>1.5GB,而在另一个实例中,堆转储大小<100 MB。这背后的原因是什么?