我的操作系统教科书说压缩是一个重新排列磁盘块的过程,这样所有的空闲磁盘块都会形成一个连续的“块”块。可用磁盘空间。
但我一直认为这是碎片整理的作用吗?这两个术语是一样的吗?或者我错过了什么?
答案 0 :(得分:5)
在现代磁盘操作系统中,文件被细分为块,每个块可以存储在磁盘上的任意位置。如果连续存储块,可以从物理磁盘中最快速地读取文件,但我认为自1980年代中期以来创建的每个操作系统都可以毫无困难地创建一个大于单个最大连续空闲区域的文件。磁盘,前提是所有空闲区域的总大小足以容纳文件。这样的文件最终将存储在磁盘的不同以前空闲部分中的不同部分,因此访问它通常不会像连续存储整个文件那样快。
从概念上讲,“理想”磁盘布置会使每个文件的内容连续存储,所有文件都“背靠背”存储,因此所有未使用的块都处于连续范围内。这样的安排既可以“压缩”也可以“碎片整理”。但是,一般来说,完美地安排一切的努力量很少是值得的(明显的例外是一次性写入的磁盘,并且永远不会被修改,例如CD-ROM通常就是这种情况) 。对磁盘进行碎片整理会将构成每个文件的所有块移动到磁盘上的连续块序列,但不一定会尝试消除文件之间的空闲区域。压缩磁盘将通过将数据从磁盘的后期部分移动到早期部分中的未使用位置来合并所有空闲区域,但可能会导致现有文件碎片化。
通常,执行碎片整理的软件会尽量避免创建太多分散的空闲区域,执行压缩的软件会尽量避免造成不必要的碎片,但这取决于软件尝试做什么(例如,最大化现有文件的效率) ,与准备大量连续的空间区域以准备需要平稳运行的大型数据采集操作相比,软件可能会以牺牲另一种操作为代价来专注于一种操作。
答案 1 :(得分:5)
压缩: - 意味着移动" in-use"内存区域消除由终止进程引起的漏洞。假设我们有五个进程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 |。
碎片整理也可以促进压实。