据我了解,交换空间可用于交换不活动的进程以释放内存。但是单个进程可以利用交换空间吗?例如,如果我的系统内存很少,但有一个具有大交换空间的大硬盘,那么需要大量内存的进程是否仍然可以利用大磁盘交换空间来运行(尽管速度很慢)?我需要采取任何行动吗?Linux 会自动处理这个问题吗?
答案1
除了提供交换空间并安装它之外,您无需执行任何特殊操作。
对于具有 MMU(内存管理单元,即自 90 年代初以来的大多数处理器)的处理器,可以使用完整的地址空间,尽管不必在所有地址范围位置都存在实内存 (RAM)。如果某个内存位置被寻址,RAM 将使用查找机制“附加”。如果没有可用的空闲 RAM,则通过将某些块的内容写入交换空间来释放该块。
当然,处理器会跟踪被写出的内存地址范围,这样当再次需要该范围内的某个地址时,就会“换入”正确的块(通常是在通过写出其内容来释放其他一些 RAM 之后) 。
每个操作系统的实际细节有所不同,维基百科上的文章寻呼如果您想了解更多信息,这是一个好的开始。
请预先警告您所尝试的操作,竞争的交换应用程序很容易使您的系统速度慢几个数量级,使您的机器看起来像是死机了。