-2

What happens when physical memory is fully occupied by process and a new process(similar priority) is introduced. How does the Memory Management unit handle the pages(resource) requested by the new and old processes(same priority tasks).

So I mean to ask how swapping of memory done for similar priority process and physical memory is full on the other side. Please explain with an example?

4

1 回答 1

3

你不应该关心在这种情况下会发生什么,并且在当前的 Linux 桌面和笔记本电脑上这是一个不太可能的情况(因为通常内核会从文件系统缓存中窃取页面)。

当使用execve(2)系统调用启动新程序时,会设置新的内存映射(好像几乎由mmap(2)完成),可能使用写时复制机制。一旦程序访问它们,内核将页面错误并最终将页面加载到物理 RAM 中。它可能必须选择应该窃取哪些页面。如果它们是脏的,它必须将它们写入某个交换区域(或者mmap如果映射为 ,则写入某个 -ed 文件MAP_SHARED)。否则,它只是重用它们(并重新分配物理页面)。

如果使用所有内存资源,可能会发生内存过量使用

linux内核使用MMU进行虚拟内存管理。应用程序在一些虚拟地址空间上看到(查看例如以了解它)。/proc/cat /proc/self/maps

MMU 正在执行虚拟地址到物理地址的转换并给出页面错误。内核负责配置 MMU(即设置虚拟地址空间转换机制)和处理页面错误(通常对应用程序不可见 - 例如,因为内核将从磁盘、文件系统或交换中获取页面area-,除非是在SIGSEGV访问“不存在”页面时出现的信号)。

请花时间阅读此处提供的所有链接。

于 2013-05-02T19:26:47.287 回答