12.1 页

Linux内核用struct page结构表示系统中的每个物理页:

  1. struct page{
  2. unsigned long flags;
  3. atomic_t _count;
  4. atomic_t _mapcount;
  5. unsigned long private;
  6. struct address_space *mapping;
  7. pgoff_t index;
  8. struct list_head lru;
  9. void *virtual;
  10. };

flag域用于存放页的状态
_count域存放页的引用计数,当减为-1时,说明内核没有引用这一页,在新的分配中可以使用它。内核不应该直接检查它,而是调用page_count()来检查。
virtual域是页的虚拟地址