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

浙公网安备 33010602011771号