【问题标题】:How Linux manages and keeps track of the physical memory pages?Linux 如何管理和跟踪物理内存页面?
【发布时间】:2014-04-29 21:15:35
【问题描述】:

我在询问以下使用的数据结构:

我想知道 linux 如何跟踪所有物理页面。我不担心它如何保留vm_area_struct。用于存储所有这些的数据结构是什么?

当它被赋予一个虚拟地址时它如何查找一个特定的物理页面?

基数树?红黑树?哈希表?什么?

谢谢。

【问题讨论】:

标签: linux memory-management linux-kernel linux-device-driver process-management


【解决方案1】:

内核保留一组struct page 结构,每个物理页一个。

通过遍历页表结构查找虚拟地址,该结构是一棵树(由硬件定义)。

【讨论】:

    【解决方案2】:

    来自: 包括/linux/mm_types.h

    /* * 系统中的每一个物理页面都有一个struct page与之关联 它来跟踪我们在 片刻。请注意,我们无法跟踪哪些任务正在使用 一个页面,但如果它是一个 pagecache 页面,rmap 结构可以告诉我们 谁在映射它。 */

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多