wanpeng81 发表于 2005-5-10 14:16:55

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

在为一段程序创建进程的时候,需要给他分配内存.
其中,所分到内存区域的代码段是存放CODE的,请问系统是如何把放在文件中的代码跟所分配到的内存区域联系起来的呢?按照我的理解,刚开始是没有分配实际的物理内存给代码的,当程序执行第一行代码的时候,发生缺页中断,系统分配新的页面,但是系统如何知道该把什么内容映射到这个新分配的物理页面上呢?

wugamp 发表于 2005-5-19 00:37:57

原来执行时是把代码复制到内存中来的?

我觉得内存中应该主要放数据,
代码都在硬盘上。

blue_hacker 发表于 2005-6-1 16:45:30

内核在execv()中会调用do_mmap()讲可执行文件的code section衍射到内存中来
所以在发生缺页中断时,内核很容易定位该加载的代码在文件中的 位置
页: [1]
查看完整版本: 关于内存管理方面,有个小问题请高手做答