2013-02-25 35 views
0

我知道“即使一个进程的虚拟地址空间大于系统的物理内存”,所以只是想知道哪个内核代码负责创建大于物理内存的虚拟内存?负责虚拟存储的内核代码

第二件事情是,我可以更改代码,使其稍大,是否有任何性能优势如果我更改代码以扩展虚拟内存?

+0

你为什么要问? “让它有点大”是什么意思? – 2013-02-25 18:27:56

回答

0

涉及到所有内存管理(和address space)管理代码。

从应用的角度看,您应该了解更多virtual memory(内核控制MMU并处理page faults),特别是mmap(2)mprotect(2)madvise(2)execve(2)系统调用。应用程序使用这些系统调用改变它们的地址空间。您可以使用proc(5)文件系统来查询它。例如cat /proc/self/maps显示正在执行的进程的地址空间cat

也请阅读Advanced Linux Programming。了解更多关于VDSO & ASLR

在内核中,相关的源代码,主要是其mm/子目录 (但几乎所有的文件系统有mmap特定的代码,以及页面错误也涉及调度,等...)