0

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

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

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

萝卜树?红黑树?哈希表?什么?

谢谢。

4

2 回答 2

2

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

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

于 2014-04-30T05:36:04.000 回答
0

来自:include/linux/mm_types.h

/* * 系统中的每个物理页面都有一个与之关联的结构页面,以跟踪我们目前正在使用该页面的任何内容。请注意,我们无法跟踪哪些任务正在使用页面,但如果它是页面缓存页面,rmap 结构可以告诉我们谁在映射它。*/

于 2014-04-30T11:41:30.223 回答