码迷,mamicode.com
首页 > 系统相关 > 详细

Linux源码学习(7) 2013-3-1

时间:2015-07-07 21:15:26      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

Linux源码学习(7) 2013-3-1

  • 空间
 

内存管理Memory.c 

主要用于内存分页管理。实现对主内存页面的动态分配和回收

Linux通过一个字节数组来管理所有的物理页面。每个字节用来表示其对应的物理页面被占用的次数

技术分享

 

1. invalidate宏 :通过重新赋值CR3寄存的方法使CPU缓存的页表数据刷新。用于页表相关属性变化时

2. CODE_SPACE(addr)宏:判断addr是否位于当前进程的代码段

3. copy_page(from,to)宏 :复制一页内存

4. unsigned long get_free_page(void)函数:获取一个空闲的物理页,返回物理页起始地址

5. void free_page(unsigned long addr)函数:释放一个物理页 

6. int free_page_tables(unsigned long from,unsigned long size)函数:释放线性地址from所对应的size个页表大小的内存。一个页表对应4M内存

7. int copy_page_table(unsigned long from,unsigned to, long size)函数:复制指定线性地址和长度的页目录表项和页表项。大小为字节

Linux源码学习(7) 2013-3-1

标签:

原文地址:http://www.cnblogs.com/fengpeng/p/4628404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!