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