设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 操作系统 >> Linux >> Linux系统的内存管理技巧总结
精品推荐
Linux点击TOP10
·Linux下安装LumaQQ
·口袋里的Linux:在您的U盘上运行SLAX
·Linux命令Man解释:PPPD(8) :点对点daemon协议
·虚拟网络计算工具VNC使用指南
·Linux系统中如何正确安装摄像头驱动
·Linux 内核文件系统与设备操作流程分析
·Linux 核心--4.内存管理
·Ethernet HOWTO Linux以太网-HOWTO (4)型号的信息
·Linux精彩桌面 GNOME桌面主题安装实例
·Linux下Flash/Shockwave播放器安装
操作系统点击TOP10
·Windows Vista完全硬盘安装法
·Windows Vista 激活不求人
·Windows Vista局域网网络连接设置
·Windows Vista系统动态桌面截图欣赏
·Windows XP中磁盘的分区应用
·Windows NT/2000/XP 出现蓝屏并显示“STOP 0x0000007f”错误
·让Windows XP变身Vista
·一招搞定Vista系统软件不兼容问题
·教你如何正确配置和优化Windows Vista
·只转两圈 加快Windows XP启动速度
精选专题

Linux系统的内存管理技巧总结

作者: 来源:http://www.xgdown.com/ 时间:2007-7-29 11:24:28

1 mem_map[PAGING_PAGES]数组为什么不直接从主存储区开始记录,而从1M开始记录,然后又把1M到主存储区之间的内容置为100

2 mem_map[i]在那些时候会大于1:同一物理页面被n个(n>1)线性地址共享,如copy_page_table()会影响这里的值

3 哪些地方需要执行刷新页变换缓冲(invalidate()函数实现):

3.1 free_page_tables()

3.2 copy_page_tables()

3.3 un_wp_page()

3.4 try_to_share()

改变页目录项活页表项

4 写时复制的相关函数

4.1 copy_page_tables():负责把原始和新的页目录项和页表项都设置为只读

4.2 do_wp_page():页写保护处理函数

4.3 un_wp_page():判断页面是否被共享,若没有共享,则把页面设置为可写,然后退出,若共享,则需要重新申请一新页面并复制被写页面的内容,以供写进程单独使用共享被取消

5 COPY_SPACE(addr)不理解

6 在free_page_table()函数中,若addr(物理地址)所在的页面由n个(n>=2)线性地址共享(copy_page_table函数可以让一个物理页面被多个线性地址共享),那么在释放addr所在页面时,执行mem_map[addr]--(mm/memory.c Line 96)语句后,并不能让mem_map[addr]的值变为0,而是变为n-1,这并不代表该物理页面已被释放,是不是应该改为mem_map [addr] = 0(mm/memory.c Line 96)呢?还是我那里想错了。

7 取线性地址addr所对应页目录项的物理地址

dir = (unsigned long*)((addr>>20)&0xffc)

说明:首先,addr>>22得出对应页目录项在页目录表中的项号,即表内偏移,因为页目录表的起始地址为物理地址0,而每项大小为4byte,所以,实际物理地址为addr>>20,又因为只右移了20位,最后两位是页表项的内容,所以和0xffc相与把最后两位屏蔽掉,得出最终结果

8 取线性地址addr所对应页表项的物理地址

table = ((unsigned long*)(((address >> 0) & oxffc) + (0xfffff000 & *((unsigned long*)((address>>20 & 0xffc)))))

即,偏移+基址,参考7
其中有些问题还没有解决,若发现文中有错,或提出相关建议,发送到: xuyufei13@gmail.com

(内核源代码版本为0.11)


Linux系统的内存管理技巧总结 相关文章:
Linux系统的内存管理技巧总结 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com