linux内存管理

内存管理:页框管理和内存区管理

每个页框用一个数据结构来描述(page)这个数据结构包含一下一些内容:

struct page

{

unsigned long flags;

atomic_t          _count;

atomic_t         _mapcount;

unsigned long private;

struct   adress_space* mapping;

unsigned long  index;

struct list_head  lru;

}

._count页的引用计数,如果为-1则表示页面空闲,page_count()返回该页使用者个数(_count+1);

.flags描述页面状态的标志,具体位的含义见(深入linux内核p297);

._mapcount页框中页表项目(如果没有则为-1);

内存管理区:ZONE_DMA(包含低于MB的内存页框)

                     ZONE_NORMAL(包含高于16MB低于896MB的内存页框)

      ZONE_HIGHMEM(包含从896MB开始高于896MB的内存页框)

ZONE_DMA和ZONE_NORMAL区包含内存的“常规”页框,通过把他们的物理地址映射到线性地址空间的第4G

posted @ 2013-03-07 22:54  积跬步集小流  阅读(88)  评论(0)    收藏  举报