深入浅出内存管理--页描述符(Page)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rikeyone/article/details/85036702

内核中采用struct page来描述物理内存页,它的主要成员如下(非全部成员):

  • unsigned long flags;
    标志位,内核中每个page的状态可以由此标志位来表示,列举几个标志位:
PG_locked 页被锁定,比如在磁盘I/O操作中涉及到的页,不能被页框回收算法回收。
PG_reserved 页留给内核代码或者没有使用,这种页是不受内存管理系统用于分配的,所以不能被回收算法回收。
PG_dirty 表示页已经被修改
PG_lru 页在活动或者非活动页链表中
PG_active 页在活动页链表中
  • atomic_t _count;
    页被引用的计数器,如果为-1代表该页空闲,每被一个进程引用该计数器就加1。
  • atomic_t _mapcount;
    页框中的页表项计数,该成员在页框回收时会用到,用于反向映射查找并释放对应的页表项。
  • struct address_space* mapping;
    当页被作为“映射页”或者作为匿名页时使用。
  • struct list_head lru;
    这是一个链表头,用于把该页加入都lru(最近最少使用)链表中,作为页面回收时使用。

猜你喜欢

转载自blog.csdn.net/rikeyone/article/details/85036702
今日推荐