代码之家  ›  专栏  ›  技术社区  ›  mawia

解释freebsd中的CPU缓存分页,特别是分页队列

  •  1
  • mawia  · 技术社区  · 17 年前

    freebsd使用 寻呼队列。排好队 根据大小 处理器的l1和l2缓存;以及何时 需要分配新页面, Freebsd试图得到一个 为缓存优化对齐。

    有人能解释一下上面的行吗?分页队列的概念是什么?

    谢谢!

    1 回复  |  直到 16 年前
        1
  •  3
  •   Dana the Sane    16 年前

    操作系统必须管理CPU缓存的大小以减少 cache misses (也解释了页面着色)。更简单地说,存储在缓存中的数据(以称为页的单位)必须根据使用频率、是否可能很快再次使用以及从主内存/hd/someotherdevice重新检索数据的“代价”来仔细选择。在内存带宽成为瓶颈的应用程序中,这些选择非常重要。

    这类事情通常是通过一个优先级队列来完成的,该队列实现OS开发人员选择的分页替换策略。这些队列确定将新数据移动到缓存时替换哪些页,以及数据将位于缓存中的位置。如果您想了解正在使用的策略,应该参考Freebsd的文档。

    为了对齐,需要将缓存(或主内存)中的数据从特定的边界开始放置,以便有效地访问(即移动到CPU寄存器中)。如果数据没有对齐,则需要额外的计算来对齐数据。