Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35213
  • 博文数量: 28
  • 博客积分: 351
  • 博客等级: 一等列兵
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-24 18:36
文章分类

全部博文(28)

文章存档

2012年(18)

2011年(9)

2010年(1)

我的朋友

分类: 嵌入式

2011-04-28 23:12:28

  这章学习到了linux内核的内存管理,好像是关于内存的分配制度的,让人想起了小学学的《天朝田亩制度》,呵呵。。不禁也想起了耶稣的那句:“你们要的我都给”
 
  原来人linux内被把物理页作为内存管理的基本单位,尽管处理器最小的可寻址单位通常是字节。
 
  有个叫MMU的东东管了不少事儿,功不可没,大家有时间看看昂,这里重点看看它所说的页sturct page的结构,人page结构是与物理页相关的,而并非与虚拟页相关。
 
 再后来有了不平等,便分了区,ZONE_DMA,ZONE_NORMAL,和ZONE_HIGHMEM.这个挺好理解的,也有一个struct zone结构体,不贴代码了昂,主义几个重要的成员就行了。。哪怕记不住也要有个印象,哈?
 
 然后就是获得与释放页,这几个其实挺关键的,他们经常出现在内核的大大小小的招聘会中,脸熟。。
 
天朝的田亩分配制度:
 alloc_page(gfp_mask)  只分配一页,(一看单数就知道),返回指向页结构的指针(注意返回的不是地址,还得转换)
alloc_pages(gfp_mask,order)  看见复数了吧,其实是指数,即分配2的order个页,返回指向第一个页结构的指针
_get_free_page(gfp_mask) 只分配一页,返回指向其逻辑地址的指针
_get_free_pages(gfp_mask,order) 分配2的order页,返回指向第一个页逻辑地址的指针
get_zerod_page(gfp_mask) 只分配一页,让其内容_填充0,返回指向其逻辑地址的指针
 
天朝的田亩收回制度:
void _free_pages(struct page *page,unsigned int order)
void free_pages(unsigned long addr,unsigned int order)
void free_page(unsigned long addr)
 
天朝啊。
 
阅读(577) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~