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
特定的代码,以及页面错误也涉及调度,等...)
你为什么要问? “让它有点大”是什么意思? – 2013-02-25 18:27:56