交换空间与支持商店

时间:2016-04-17 08:07:09

标签: memory-management process operating-system paging

我目前正在阅读操作系统教科书中的内存管理,如果交换空间和后备存储之间存在差异,我很好奇。他们似乎都在做同样的事情。根据我的理解,当发生页面错误时,会发现非活动页面并将其存储在交换空间中,以便可以存储导致错误的页面。后备存储似乎做同样的事情,除了它对整个过程而不仅仅是一个页面。这是两者之间的主要区别吗?或者还有其他我在看的东西?

2 个答案:

答案 0 :(得分:2)

术语"支持商店"通常用于图形用户界面的上下文中。支持故事是一个内存块,用于保存窗口的图像。如果窗口被覆盖(甚至部分覆盖)然后被覆盖,则使用后备存储来重绘。

某些系统(例如,X和Windoze)通常不使用后备存储(对话框除外)。他们只是让应用程序重绘屏幕。

在旧时代,交换空间用于将整个进程移动到磁盘。页面文件用于存储单个页面。传统的交换已经消失。但是,在技术上分页时,Unix保留术语掉交。

在一般意义上,页面文件和后备存储是类似的:

后备存储按原样存储到视频内存

页面文件是物理内存。

然而,支持故事与您描述的分页并不真正相关。

答案 1 :(得分:0)

摘自第10章:虚拟内存,摘录自操作系统概念书:

某些系统试图限制通过以下方式使用的交换空间量 要求分页二进制可执行文件。此类文件的需求页面 直接从文件系统中获取。但是,当页面 需要更换,这些框架可以简单地覆盖 (因为它们从未被修改),因此可以从中读取页面 如果需要,请再次访问文件系统。使用这种方法,文件系统 本身充当后备商店。但是,交换空间必须仍然是 用于不与文件关联的页面(称为匿名内存); 这些页面包括进程的堆栈和堆。这个方法 似乎是一个很好的折衷方案,并且已在多个系统中使用, 包括Linux和BSD UNIX。

据此,我收集到的不是交换空间是文件系统上专门用于包含换出页面以供以后使用的空间。

后备存储只能是用于生成需求页面的文件,例如实际上需要读取的二进制文件。不必出于虚拟内存的目的而创建它们,它们可以本身就是文件。

但是,在另一章(9.5节:交换)中,书中提到

但是,可以交换一个过程或过程的一部分 暂时内存不足到后备存储,然后带回 进入内存以继续执行(图9.19)。


我认为后备存储包括交换空间,但是并非所有形式的后备存储都被视为交换空间。例如,将包含要运行的实际程序的文件系统视为后备存储,但不视为交换空间。

相关问题