【问题标题】:Swap Space vs Backing Store交换空间与后备存储
【发布时间】:2016-08-09 00:27:05
【问题描述】:

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

【问题讨论】:

    标签: memory-management process operating-system paging


    【解决方案1】:

    术语“后备存储”通常用于图形用户界面的上下文中。背后的故事是一块存储窗口图像的内存。如果窗口被覆盖(即使是部分覆盖)然后又被覆盖,则后备存储用于重绘。

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

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

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

    后备存储按原样存储在视频内存中

    页面文件是物理内存。

    但是,正如您所描述的那样,背景故事与分页并不真正相关。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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


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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 1970-01-01
        • 2018-05-24
        • 1970-01-01
        • 2018-10-07
        • 1970-01-01
        • 2022-11-24
        相关资源
        最近更新 更多