免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1355 | 回复: 3
打印 上一主题 下一主题

关于内存管理方面,有个小问题请高手做答 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-10 14:35 |只看该作者 |倒序浏览
在为一段程序创建进程的时候,需要给他分配内存.
其中,所分到内存区域的代码段是存放CODE的,请问系统是如何把放在文件中的代码跟所分配到的内存区域联系起来的呢?按照我的理解,刚开始是没有分配实际的物理内存给代码的,当程序执行第一行代码的时候,发生缺页中断,系统分配新的页面,但是系统如何知道该把什么内容映射到这个新分配的物理页面上呢?

论坛徽章:
0
2 [报告]
发表于 2005-05-10 14:57 |只看该作者

关于内存管理方面,有个小问题请高手做答

这就是所谓的cow技术,copy on write

论坛徽章:
0
3 [报告]
发表于 2005-05-10 15:02 |只看该作者

关于内存管理方面,有个小问题请高手做答

稍微详细的解释一下?大哥

论坛徽章:
0
4 [报告]
发表于 2005-05-10 15:19 |只看该作者

关于内存管理方面,有个小问题请高手做答

cow技术通过复制页面表项暂时共享这个页面,到子进程或是父进程真的写这个页面时再来分配页面和复制。
首先将父进程的页面表项 改为写保护,然后把这个页面表项设置到子进程的页面表中,这样一来,相应的页面在两个进程中都变成了“只读,”当子进程或是父进程企图写入该页面的时候,就发生页面异常。然后由页面异常处理函数另外分配一个物理页面,再把内容复制到新的页面中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP