【问题标题】:What is the difference between compaction and defragmentation?压缩和碎片整理有什么区别?
【发布时间】:2014-07-18 08:11:00
【问题描述】:

我的操作系统教科书说压缩是一个重新排列磁盘块的过程,这样所有空闲磁盘块形成一个连续的可用磁盘空间“块”。

但我一直认为这就是碎片整理的作用?这两个术语是一样的吗?还是我错过了什么?

【问题讨论】:

    标签: operating-system disk fragmentation


    【解决方案1】:

    Compaction :- 表示移动“正在使用”的内存区域以消除因终止进程造成的空洞。假设我们有五个进程 A、B、C、D、E,分配为 |A |B|C|D|E|在记忆中。一段时间后,进程 B 和 D 被终止。现在我们的内存布局为 |A| |C| |E|。应用压缩后,我们将得到 |A|C|E| | |即,我们有一个两块内存单元,而不是两个单块内存单元。

    碎片整理:- 意味着将完整的文件存储在最少数量的连续区域中。 也就是说,如果该大小的连续内存可用,它会尝试将文件存储为一个完整的单元。假设进程 A 有分片 A1、A2、A3,进程 B 有分片 B1、B2。现在,假设内存布局是|A1|B1|A2|A3|B2|,碎片整理后我们有|A1|A2|A3|B1|B2|。

    碎片整理也有助于压缩。

    【讨论】:

      【解决方案2】:

      在现代磁盘操作系统中,文件被细分为块,每个块都可以存储在磁盘上的任意位置。如果块是连续存储的,则可以最快地从物理磁盘读取文件,但我认为自 1980 年代中期以来创建的每个操作系统都可以毫无困难地创建一个大于单个最大连续空闲区域的文件磁盘,前提是所有空闲区域的总大小足以容纳文件。这样的文件最终会在磁盘的不同以前空闲部分存储不同的部分,因此访问它通常不会像连续存储整个文件那样快。

      从概念上讲,“理想”的磁盘排列将连续存储每个文件的内容,所有文件“背靠背”存储,因此所有未使用的块都在连续范围内。这样的安排将是“压缩的”和“碎片整理的”。然而,一般来说,为完美安排一切而付出的努力很少值得(一个明显的例外是一次写入的磁盘,并且永远不会被修改,例如 CD-ROM 的典型情况) .对磁盘进行碎片整理会将构成每个文件的所有块移动到磁盘上的连续块序列中,但不一定会尝试消除文件之间的空闲区域。压缩磁盘将通过将数据从磁盘的后面部分移动到前面部分的未使用位置来整合所有空闲区域,但可能会导致现有文件的碎片。

      一般来说,执行碎片整理的软件会尽量避免创建太多分散的空闲区域,而执行压缩的软件会尽量避免造成不必要的碎片,但这取决于软件试图做什么(例如最大化现有文件的效率,而不是准备一个大的连续空间区域来准备需要平稳运行的大型数据采集操作)软件可能会专注于一种操作而牺牲另一种操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-06
        • 1970-01-01
        • 2019-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多