交换分区中存储了什么类型的数据?

交换分区中存储了什么类型的数据?

当发生页面错误时,系统必须从磁盘获取该页面。

这是否意味着硬盘上存储了每个正在运行的进程的页表(以从中获取页面)?

如果是,交换分区是否保存这些页表?

答案1

页表存储在内存中,实际交换出的页面存储在交换文件中。页表跟踪哪些页面存储在内存中,哪些页面存储在交换文件中以及它们位于何处。页表中的某些页面也可能被虚拟化。

您可以在维基百科上找到更多信息http://en.wikipedia.org/wiki/Page_table

答案2

是的。每个进程都有一个与之对应的页表,该页表存储在主内存 (RAM) 中。页表不能存储在磁盘上,因为每次访问内存时都需要很长时间才能访问磁盘中的页表(假设没有 TLB 或 TLB 未命中)。对于多级页表(用于减少 RAM 上页表占用的空间),在 RAM 中至少有 2 个级别的页表是有意义的(第一个指向第二个,第二个为您提供 VA 到 PA 的转换)。

至于交换分区,这就像 RAM 的溢出。很少访问的页面或由于溢出而无法存储在 RAM 中的页面存储在交换分区中。交换内存比磁盘更快,因为您确切知道它在硬盘上的位置。

相关内容