操作系统如何执行此操作
使用虚拟内存,系统上运行的程序可以分配很多 比实际可用的内存更多;
答案 0 :(得分:1)
实际上是#34;更多的记忆",而不是"更多的记忆",否则你正在试验thrashing。
每个桌面,latop或服务器处理器都有MMU。 virtual 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