使用虚拟内存,系统上运行的程序可以分配比实际可用内存更多的内存;

时间:2015-07-07 05:30:40

标签: linux linux-kernel operating-system

操作系统如何执行此操作

  

使用虚拟内存,系统上运行的程序可以分配很多   比实际可用的内存更多;

1 个答案:

答案 0 :(得分:1)

实际上是#34;更多的记忆",而不是"更多的记忆",否则你正在试验thrashing

每个桌面,latop或服务器处理器都有MMUvirtual memory系统使用它来提供虚拟address space通过paging& page cache。当内核获得page fault时,它可以从磁盘中获取页面-e.g.在ELF可执行文件或共享对象或某个其他映射文件的一部分中,或交换区域中的某些页面 - 或发送SIGSEGV信号,请参阅signal(7)

在Linux上,多个system calls可以更改地址空间:mmap(2)munmap(以及过时的sbrk等等)和{{3} }。您可以使用execve(2)

建议内核

您可以使用cat /proc/$somepid/maps(例如您的shell中的cat /proc/$$/maps)来了解某些madvise(2)的地址空间地图。请参阅process

按照上面的所有链接阅读proc(5)Advanced Linux Programming