一种对打包文件进行碎片整理的方法、系统及设备与流程

文档序号:12010657阅读:256来源:国知局
一种对打包文件进行碎片整理的方法、系统及设备与流程
本发明涉及文件的碎片整理,特别是一种对打包文件进行碎片整理的方法、系统及设备。

背景技术:
打包文件因其占用资源小、便于传输、易于加密的特点,广泛应用于服务器与客户端。但对于打包文件的本身碎片的管理,目前并没有相关的技术手段。打包文件本身经常需要更新,对于存储于服务端的打包文件,此类打包文件更多的是软件包等打包文件,这些打包文件经常需要进行更新,而经常性的更新会导致打包文件本身碎片的增加,从而增大打包文件,致使用户下载时增加流量。因此,需要对这些打包文件进行碎片整理,缩小其存储空间,减少用户下载时的流量,以节省时间。对于用户来说,用户的电子设备存储的打包文件也存在同样打包文件过大的问题,当设备上的打包文件需要同步更新时,下载更新文件后,同样需要保持与服务端一致的碎片整理。目前的碎片整理,普遍是对于整个电子设备本身进行的,主要是整合电子设备中存储单元里面的空间,对其中的文件进行重新整合,使资源分布合理并释放可利用的空间,而相关的对于某种文件进行的碎片整理的技术手段则未曾有过。

技术实现要素:
为解决上述问题,本发明的目的在于提供一种对打包文件进行碎片整理的方法、系统及设备,对打包文件进行碎片整理,节省打包文件的存储空间,节约用户的整理时间。本发明解决其问题所采用的技术方案是:一种对打包文件进行碎片整理的方法,包括:生成与打包文件对应的滑动窗口,所述滑动窗口沿着打包文件中数据块的地址进行移动;通过滑动窗口对打包文件中的数据块进行碎片检测,生成对应的碎片整理指令;以及运行碎片整理指令,对打包文件进行碎片整理。所述方法还包括:更新碎片整理后打包文件的索引区,使得碎片整理前指向打包文件中的数据块地址的所有索引指向对应的碎片整理后打包文件中的数据块地址。所述生成与打包文件对应的滑动窗口具体为:加载打包文件,以打包文件的起始地址为起始地址,生成对应的滑动窗口。所述滑动窗口的大小设置为固定值,所生成的滑动窗口以起始地址与此固定值的大小之和为其终止地址。其中,对打包文件中的数据块进行碎片检测时,每次将滑动窗口的起始地址移动至与起始地址相邻的下一个数据块,并保持终止地址不动,之后,对比滑动窗口中所包含数据块大小的总和与所述滑动窗口的固定值的大小,当符合条件大于或等于时,则统计、记录此滑动窗口中所包含碎片数据块的信息,并根据碎片数据块的信息生成对应的碎片整理指令,当符合条件小于时,则移动滑动窗口的终止地址,直至滑动窗口中所包含的数据块大小的总和满足大于或等于滑动窗口的固定值的条件时,统计、记录此滑动窗口中所包含碎片数据块的信息,并根据碎片数据块的信息生成对应的碎片整理指令,当滑动窗口的终止地址移动超出打包文件的结束地址时,则结束滑动窗口的移动。所述碎片整理指令包括原数据块地址与目的数据块地址,所述原数据块地址为滑动窗口中碎片数据块的初始地址,所述目的数据块地址为滑动窗口外空块的初始地址。所述运行碎片整理指令时,将所述原数据块地址指向的碎片数据块复制,并且以紧密相邻的方式存储到所述目的数据地地址所指向的空块的位置,当运行完所有的碎片整理指令后,清除原数据块地址所指向的碎片数据块。所述方法还包括:更新打包文件的索引区,使得指向原数据块地址的所有索引指向目的数据块地址。所述通过滑动窗口对打包文件中的数据块进行碎片检测时,设定碎片数据块的最大值,滑动窗口中小于此最大值的单独的数据块皆认定为碎片,连续数据块的大小小于此最大值的,此连续数据块也认定为碎片,连续数据块的大小大于或等于此最大值的,则不认定为碎片。一种对打包文件进行碎片整理的系统,所述系统包括:窗口模块,用于生成与打包文件对应的滑动窗口,所述滑动窗口沿着打包文件中的数据块的地址进行移动;碎片检测模块,用于通过滑动窗口对打包文件中的数据块进行碎片检测,生成对应的碎片整理指令;碎片整理模块,用于运行碎片整理指令,对打包文件进行碎片整理。所述系统还包括:索引更新模块,用于更新碎片整理后打包文件的索引区,使得碎片整理前指向打包文件中数据块地址的所有索引指向对应的碎片整理后打包文件中的数据块地址。一种对打包文件进行碎片整理的设备,所述设备采用以上所述一种对打包文件进行碎片整理的系统。所述设备为服务端设备或客户端设备,所述服务端设备或客户端设备用于生成与打包文件对应的滑动窗口,通过滑动窗口对打包文件中的数据块进行碎片检测,生成对应的碎片整理指令,以及运行碎片整理指令,对打包文件进行碎片整理。所述设备包括服务端设备和客户端设备;所述服务端设备用于生成与打包文件对应的滑动窗口,通过滑动窗口对打包文件中的数据块进行碎片检测,生成对应的碎片整理指令,以及运行碎片整理指令,对打包文件进行碎片整理;所述客户端设备用于接收所述服务端设备生成的碎片整理指令,并运行所接收的碎片整理指令,对客户端的打包文件进行碎片整理,此客户端的打包文件为从服务端设备接收的打包文件,两个打包文件在碎片整理前完全一致。本发明的有益效果是:本发明采用的一种对打包文件进行碎片整理的方法、系统及设备,可以直接对服务端或客户端的打包文件进行碎片整理,以便减少打包文件所占用的存储空间,在对客户端的打包文件进行碎片整理时,如果此打包文件为从服务端下载的打包文件,则可以直接从服务端下载碎片整理指令,通过运行此碎片整理指令,直接对此客户端的打包文件进行碎片整理,减少了下载流量,并节约碎片整理的时间。附图说明下面结合附图和实例对本发明作进一步说明。图1是本发明所述滑动窗口与打包文件示意图;图2是本发明所示方法的示意图;图3是本发明所述方法流程图;图4是本发明所述碎片检测过程流程图;图5是本发明所述碎片整理流程图;图6是本发明所述系统结构组成框图。具体实施方式参照图1所示,打包文件在存储时,以数据块的形式进行存储,数据块之间通常会有空隙,导致打包文件存储空间变大,且打包文件进行读写时,影响读写的效率,这些数据块即所谓碎片数据块。本发明基于打包文件,对打包文件中碎片数据块进行整理,以减小打包文件占有的空间,并提高对打包文件的读写效率,节省时间。参照图2所示本发明所示方法的示意图,此示意图以服务端与客户端作为说明,一般客户端需要下载或接收的文件存储于服务端,比如软件安装包等一系列打包文件,在服务端存储的打包文件变化时,客户端的打包文件也需要进行相应的更新,本发明以服务端与客户端为说明,只是为了更好地说明本发明的实用性。当对服务端的打包文件进行碎片检测之后,会生成对应的碎片整理指令,碎片整理指令也可以称为移动指令,当在服务端生成碎片整理指令后,则直接执行此碎片整理指令,即可对服务端的打包文件进行碎片整理。当客户端的打包文件需要与服务端的打包文件进行同步时,不用重新下载或通过其他方式覆盖客户端的原打包文件,只需要下载或通过U盘、移动硬盘等工具将服务端生成的碎片整理指令传递至客户端,由客户端执行此碎片整理指令即可,执行完成后,即完成了对打包文件的整理。参照图3所示方法流程图,在对打包文件进行碎片检测时,首先加载打包文件,生成一个滑动窗口,此滑动窗口可以沿着打包文件中数据块的地址进行滑动。打包文件在存储时,有起始地址与终止地址,生成滑动窗口时,以打包文件的起始地址为滑动窗口的起始地址,同时,指定滑动窗口的大小为一个固定值,滑动窗口的终止地址为起始地址与此固定值之和。滑动窗口生成后,则需要统计滑动窗口中的碎片数据块信息,每次统计时,将滑动窗口的起始地址移动至与起始地址相邻的下一个数据块,并保持终止地址不动,滑动窗口生成时,则相当于移动滑动窗口的起始地址至打包文件的第一个数据块,之后,对比滑动窗口中所包含数据块大小的总和与所述滑动窗口的固定值的大小,当符合条件大于或等于时,则统计、记录此滑动窗口中所包含碎片数据块的信息,并根据碎片数据块的信息生成对应的碎片整理指令,当符合条件小于时,则移动滑动窗口的终止地址,直至滑动窗口中所包含的数据块大小的总和满足大于或等于滑动窗口的固定值的条件时,统计、记录此滑动窗口中所包含碎片数据块的信息,并根据碎片数据块的信息生成对应的碎片整理指令,当滑动窗口的终止地址移动超出打包文件的结束地址时,则结束滑动窗口的移动。对于一个数据块是不是碎片数据块,是否需要整理,本发明在进行碎片检测时,设定了碎片数据块的最大值,滑动窗口中小于此最大值的单独的数据块皆认定为碎片,连续数据块的大小小于此最大值的,此连续数据块也认定为碎片,连续数据块的大小大于或等于此最大值的,则不认定为碎片。生成的碎片整理指令包含有原数据块地址与目的数据块地址,所述原数据块地址为滑动窗口中碎片数据块的初始地址,所述目的数据块地址为滑动窗口外空块的初始地址,运行碎片整理指令时,将所述原数据块地址指向的碎片数据块复制,并且以紧密相邻的方式存储到所述目的数据地地址所指向的空块的位置,当运行完所有的碎片整理指令后,清除原数据块地址所指向的碎片数据块;之后,更新打包文件的索引区,使得指向原数据块地址的所有索引指向目的数据块地址。参照图4所示的碎片检测过程流程图,在加载打包文件,生成滑动窗口后,此时生成的滑动窗口位于打包文件的首部,在滑动窗口移动时,统计的滑动窗口中的碎片数据块信息包括有碎片数据块的数目、碎片数据块的总体积(即碎片数据块大小的总和)、碎片数据块体积的平均值(碎片数据块的总体积与碎片数据块数目的商),以上三个信息表明了滑动窗口中的碎片化程度。在滑动窗口移动时,可以选择任何一个信息作为碎片化程度的依据,以碎片数据块的数目为例,每当统计滑动窗口中的信息后,则对比前后两个滑动窗口中哪个滑动窗口中的碎片数据块的数目较大,将数目较大的滑动窗口标记为待整理窗口,直到滑动窗口移动结束,这样便生成了待整理的窗口,说明此窗口中的碎片化程度最高,亟需整理,则生成并输出将滑动窗口中的碎片数据移动到滑动窗口以外的连续空块中的碎片整理指令,通过运行生成的碎片整理命令,即可对此待整理窗口中的碎片数据块进行整理。以碎片数据块的总体积或碎片数据块体积的平均值作为整理的依据,其方法相同。本发明在执行过程中,窗口大小可以指定,可以根据需要控制碎片清理的时间,当碎片化程度较高时,进行整理即可,所整理的滑动窗口中的碎片都可以全部清除,且此滑动窗口为此次整理过程中碎片化程度最大的数据段。参照图5所示碎片整理流程图,在执行碎片整理指令时,同时加载打包文件及碎片整理指令,之后逐条读取并执行碎片整理指令,在执行时,将指令中原数据块地址所指向的碎片数据块以紧密相邻的方式复制到目的数据块地址所指向的空块的位置,此空块的位置足够大。指令读取并执行完成后,清除原数据块地址所指向的碎片数据块,最后,更新打包文件的索引区,使得指向原数据块地址的所有索引指向目的数据块地址。参照图6所示,本发明提供了一种对打包文件进行碎片整理的系统,所述系统包括窗口模块、碎片检测模块、碎片整理模块和索引更新模块,其中,所述窗口模块,用于生成与打包文件对应的滑动窗口,所述滑动窗口沿着打包文件中的数据块的地址进行移动;所述碎片检测模块,用于通过滑动窗口对打包文件中的数据块进行碎片检测,生成对应的碎片整理指令;所述碎片整理模块,用于运行碎片整理指令,对打包文件进行碎片整理;所述索引更新模块,用于更新打包文件的索引区,使得碎片整理前指向打包文件中数据块地址的所有索引指向对应的碎片整理后打包文件中的数据块地址。所述系统在具体过程执行时采用了以上所述的方法,具体参见以上方法中所述内容。本发明提供了一种对打包文件进行碎片整理的设备,所述设备采用以上所述方法对打包文件进行碎片整理,具体方法参见以上所述方法中的具体内容,所述设备为服务端设备或客户端设备,所述服务端设备或客户端设备用于生成与打包文件对应的滑动窗口,通过滑动窗口对打包文件中的数据块进行碎片检测,生成对应的碎片整理指令,以及运行碎片整理指令,对打包文件进行碎片整理。本发明所述方法可以在服务端单独执行,也可以在客户端单独执行。所述设备也可以是服务端设备和客户端设备组成的整体,所述服务端设备用于生成与打包文件对应的滑动窗口,通过滑动窗口对打包文件中的数据块进行碎片检测,生成对应的碎片整理指令,以及运行碎片整理指令,对打包文件进行碎片整理;所述客户端设备用于接收所述服务端设备生成的碎片整理指令,并运行所接收的碎片整理指令,对客户端的打包文件进行碎片整理,此客户端的打包文件为从服务端设备接收的打包文件,两个打包文件在碎片整理前完全一致。对于从服务端下载或以其他方式传输到客户端的打包文件,在对服务端的打包文件进行碎片整理之后,不需要单独对客户端的打包文件重新执行,只需要从服务端下载或从U盘、移动硬盘等其他方式将服务端生成的碎片整理指令传输到客户端并执行此碎片整理指令即可。避免重新覆盖客户端打包文件,节省了碎片整理时间。以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1