我问的是以下使用的数据结构:
我想知道linux如何跟踪所有物理页面。我不担心它如何保持vm_area_struct
。用于存储所有数据结构的数据结构是什么?
当它被赋予虚拟地址时它如何查找特定的物理页面?
基数树?红黑树?哈希表?什么?
感谢。
答案 0 :(得分:2)
内核保留一组struct page
结构,每个物理页面一个。
通过遍历页表结构(一个树(由硬件定义))来查找虚拟地址。
答案 1 :(得分:0)
来自: 在include / linux / mm_types.h
/ * *系统中的每个物理页面都有一个与之关联的结构页面 它跟踪我们正在使用页面的任何内容 时刻。请注意,我们无法跟踪正在使用的任务 一个页面,但如果它是一个pagecache页面,rmap结构可以告诉我们 是谁来映射它。 * /