通过将页面移入和移出磁盘,分页会产生每个进程都有无限 RAM 的错觉。所以如果我们有无限内存(在某些假设情况下),我们还需要 Paging 吗?如果是,那为什么?我在一次采访中遇到了这个问题。
假设“无限内存”意味着无限可随机访问的内存或 RAM,我们仍然需要分页。尽管分页通常与将页面进出 RAM 交换到硬盘以节省内存的能力相关联,但这只是分页的一个方面。以下是使用分页的其他一些原因:
安全。分页是一种通过确保一个进程不能访问另一个进程的内存和它不能修改常驻内核来强制执行操作系统安全和内存保护的方法。 多任务处理。分页通过虚拟化内存空间来辅助多任务处理,即进程 A 中的地址 0xFOO 可能与进程 B 中的地址 0xFOO 完全不同 内存分配。分页通过减少碎片并确保仅在访问时分配 RAM 来帮助分配内存。这意味着虽然一个进程需要,假设,100MB 的连续 RAM 空间,但这在物理上不需要是连续的。此外,当一个程序请求 100MB 的空间时,操作系统会告诉程序它可以安全地使用这 100MB 的空间,但在程序充分利用该空间之前它不会被实际分配。
诚然,如果有无限 RAM,后者就不是完全必要的了。即使在我们不受资源限制的情况下,保持高效始终是一种很好的做法。它还演示了有时不被考虑的分页用法。