Linux如何管理和跟踪物理内存页面?

时间:2014-04-29 21:15:36

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

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

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

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

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

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

来自: 在include / linux / mm_types.h

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