闪存文件系统碎片化的评估方法、装置以及电子设备与流程

专利2022-06-29  70


本申请涉及电子设备技术领域,更具体地,涉及一种闪存文件系统碎片化的评估方法、装置以及电子设备。



背景技术:

随着科学技术的发展,电子设备的使用越来越广泛,功能越来越多,已经成为人们日常生活中的必备之一。目前,电子设备可以安装linux操作系统,且在linux操作系统上使用第四代扩展文件系统(fourthextendedfilesystem,ext4),而对比ext4文件系统,闪存文件系统(flash-friendlyfilesystem,f2fs)由于可以将随机写转化为顺序写,从而可以大幅提升随机写的性能,但是电子设备在通过f2fs文件系统将随机写转化为顺序写时,缺少对f2fs文件系统碎片化的评估,导致写入效果不佳。



技术实现要素:

鉴于上述问题,本申请提出了一种闪存文件系统碎片化的评估方法、装置以及电子设备,以解决上述问题。

第一方面,本申请实施例提供了一种闪存文件系统碎片化的评估方法,应用于具有闪存文件系统的电子设备,所述方法包括:获取所述闪存文件系统的目标段中的无效块的分布信息,其中,所述目标段为包括有效块和无效块的段;基于所述分布信息,获取所述目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,所述多个指定区间段根据连续无效块的大小划分所述目标段获得;获取所述多个指定区间段中的每个指定区间段对应的权重;基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数。

第二方面,本申请实施例提供了一种闪存文件系统碎片化的评估装置,应用于具有闪存文件系统的电子设备,所述装置包括:分布信息获取模块,用于获取所述闪存文件系统的目标段中的无效块的分布信息,其中,所述目标段为包括有效块和无效块的段;数量获取模块,用于基于所述分布信息,获取所述目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,所述多个指定区间段根据连续无效块的大小划分所述目标段获得;权重获取模块,用于获取所述多个指定区间段中的每个指定区间段对应的权重;评估分数获取模块,用于基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数。

第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行上述方法。

第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。

本申请实施例提供的闪存文件系统碎片化的评估方法、装置以及电子设备,获取闪存文件系统的目标段中的无效块的分布信息,其中,目标段为包括有效块和无效块的段,基于分布信息,获取目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,多个指定区间段根据连续无效块的大小划分目标段获得,获取多个指定区间段中的每个指定区间段对应的权重,基于每个指定区间段的无效块数量和每个指定区间段对应的权重,获得加权分数作为闪存文件系统碎片化的评估分数,从而通过添加权重计算闪存文件系统中所有无效块对碎片化的贡献,获取闪存文件系统碎片化的评估分数,以提高闪存文件系统碎片化评估的准确性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1示出了本申请一个实施例提供的闪存文件系统碎片化的评估方法的流程示意图;

图2示出了本申请实施例提供的目标段的部分有效块和无效块的示意图;

图3示出了本申请又一个实施例提供的闪存文件系统碎片化的评估方法的流程示意图;

图4示出了本申请的图3所示的闪存文件系统碎片化的评估方法的步骤s240的流程示意图;

图5示出了本申请的图3所示的闪存文件系统碎片化的评估方法的步骤s260的流程示意图;

图6示出了本申请实施例提供的闪存文件系统碎片化的评估装置的模块框图;

图7示出了本申请实施例用于执行根据本申请实施例的闪存文件系统碎片化的评估方法的电子设备的框图;

图8示出了本申请实施例的用于保存或者携带实现根据本申请实施例的闪存文件系统碎片化的评估方法的程序代码的存储单元。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

其中,随着电子设备技术的发展,越来越多的电子设备采用f2fs文件系统代替ext4文件系统,以通过将随机写转化为顺序写的方式提升随机写的性能。但是,电子设备将随机写转化为顺序写需要f2fs文件系统中存在足够多的连续空闲块,因此,需要一种合理的方法来评估f2fs文件系统的剩余空间碎片化的程度,但是,目前f2fs文件系统缺少合理的评估方法。

发明人经过研究发现,可以将4kb、8kb、12kb等无效块(invalidblock,即系统不再使用的块)在总的无效块数量中的占比作为f2fs文件系统碎片化的指标,当占比超过50%时,可以认为f2fs文件系统碎片化验证。但是,发明人经过长期的研究发现,该方案仅考虑4kb、8kb、12kb等无效块对碎片化的贡献,但是在实际情况中,其他大小的无效块(如16kb)也会导致写性能的下降,因此,这种方式无法真实反映f2fs文件系统碎片化导致的写性能下降程度。

针对上述问题,发明人经过长期的研究发现,并提出了本申请实施例提供的闪存文件系统碎片化的评估方法、装置以及电子设备,通过添加权重计算闪存文件系统中所有无效块对碎片化的贡献,获取闪存文件系统碎片化的评估分数,以提高闪存文件系统碎片化评估的准确性。其中,具体的闪存文件系统碎片化的评估方法、装置以及电子设备在后续的实施例中进行详细的说明。

请参阅图1,图1示出了本申请一个实施例提供的闪存文件系统碎片化的评估方法的流程示意图。所述闪存文件系统碎片化的评估方法用于通过添加权重计算闪存文件系统中所有无效块对碎片化的贡献,获取闪存文件系统碎片化的评估分数,以提高闪存文件系统碎片化评估的准确性。在具体的实施例中,所述闪存文件系统碎片化的评估方法应用于如图6所示的闪存文件系统碎片化的评估装置200以及配置有闪存文件系统碎片化的评估装置200的电子设备100(图7)。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用于的电子设备可以为智能手机、平板电脑、穿戴式电子设备等具有闪存文件系统的电子设备,在此不做限定。下面将针对图1所示的流程进行详细的阐述,所述闪存文件系统碎片化的评估方法具体可以包括以下步骤:

步骤s110:获取所述闪存文件系统的目标段中的无效块的分布信息,其中,所述目标段为包括有效块和无效块的段。

在本实施例中,闪存文件系统(以下也称f2fs文件系统)可以包括多个段(以下也称segment),其中,f2fs文件系统的segment表示f2fs文件系统管理磁盘块的一个单元,f2fs文件系统的一个segment的大小为2mb,包含512个块(以下也称block),其中,每个块的大小为4kb。在一些实施方式中,f2fs文件系统可以包括freesegment,validsegment以及dirtysegment,其中,freesegment表征不包含有效块的段,即freesegment中的有效块的数量为0,validsegment表征所有块都是有效块的段,即validsegment中的有效块的数量为512,dirtysegment表征包含有效块和无效块的段,即dirtysegment中有效块的数量介于0~512之间。其中,无效块(以下也称invalidblock)表征f2fs文件系统不再使用的块,即f2fs文件系统可以回收的块,有效块(以下也称validblock)表征f2fs文件系统还在使用的块,包含文件数据、元数据等,即f2fs文件系统不可以回收的块。

在本实施例中,f2fs文件系统的目标段为包括有效块和无效块的段,即f2fs文件系统的目标段为dirtysegment。在一些实施方式中,电子设备可以获取闪存文件系统的目标段中的无效块的分布信息。其中,闪存文件系统的目标段的数量可以为一个或多个,相应的,电子设备可以获取闪存文件系统的一个目标段中的无效块的分布信息,也可以获取闪存文件系统的多个目标段中的无效块的分布信息,在此不做限定。其中,由于目标段中同时包括有效块和无效块,因此,目标段中的有效块的数量为(0,512),目标段中无效块的数量为(0,512)。其中,当目标段中的有效块的数量为1个时,则目标段中的无效块的数量为511个,当目标段中的有效块的数量为20个时,则目标段中的无效块的数量为492个,以此类推,在此不再赘述。

在一些实施方式中,电子设备可以将目标段中包括的所有块进行编号,并基于所有块的编号确定目标段中的无效块的分布信息。具体地,目标段包括512个块,电子设备可以将目标段中的512个块从1~512进行编号,获取512个块中属于无效块的编号,并获取512个块中属于有效块的编号,从而基于512个块中属于无效块的编号虎丘目标段中的无效块的分布信息。例如,当512个块中属于无效块的编号包括编号100~编号200以及编号250~编号300,可以确定在目标段中,编号1~编号99,编号201~编号249以及编号301~编号512属于有效块,编号100~编号200以及编号250~编号300属于无效块,从而可以获取目标段中的无效块的分布信息。

在一些实施方式中,电子设备可以检测目标段中包括的所有块属于有效块还是无效块,并基于检测结果获取目标段中包括的所有块中的连续无效块的数量和连续有效块的数量,基于连续无效块的数量和连续有效块的数量获取目标段中的无效块的分布信息。具体地,目标段包括512个块,则电子设备可以检测目标段中包括的512个块分别为无效块还是有效块,并基于检测结果获取目标段中包括的512个块中的连续无效块的数量和连续有效块的数量,以获取目标段中的无效块的分布信息。例如,当512个块中有100个连续无效块、50个连续无效块、62个连续无效块以及300个连续有效块时,可以获取目标段中的无效块的分布信息。

步骤s120:基于所述分布信息,获取所述目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,所述多个指定区间段根据连续无效块的大小划分所述目标段获得。

在本实施例中,电子设备可以基于连续无效块的大小预先将目标段划分为多个指定区间段,也可以基于连续无效块的数量预先将目标段划分为多个指定区间段。在一些实施方式中,当电子设备基于连续无效块的大小将目标段划分为多个指定区间段时,所划分的多个指定区间段中的每个指定区间段对应的连续无效块的大小不做限定。当电子设备基于连续无效块的数量将目标段划分为多个指定区间段时,所划分的多个指定区间段中的每个指定区间段对应的连续无效块的数量不做限定。

其中,由于目标段包括有效块和无效块,则在目标段中的连续无效块的大小在[4kb,2044mb]之间,由此,当基于连续无效块的大小将目标段划分为多个指定区间段时,例如可以将目标段划分为[4kb,8kb),[8kb,16kb),[16kb,32kb),[32kb,64kb),[64kb,128kb),[128kb,256kb),[256kb,512kb),[512kb,1024kb),[1024kb,2048kb)这9个区间段,9个区间段中的每个区间段对应的连续无效块的大小不同且依次增大。当然,在本实施例中,还可以基于连续无效块的大小将目标段划分为其他更多的区间段,例如,可以将目标段划分为[4kb,8kb),[8kb,16kb),[16kb,32kb),[32kb,64kb),[64kb,72kb),[72kb,128kb),[128kb,256kb),[256kb,512kb),[512kb,1024kb),[1024kb,2048kb)这10个区间段,可以将目标段划分为[4kb,8kb),[8kb,16kb),[16kb,32kb),[32kb,64kb),[64kb,72kb),[72kb,128kb),[128kb,256kb),[256kb,264kb),[264kb,512kb),[512kb,1024kb),[1024kb,2048kb)这11个区间段等,在此不再赘述。

其中,由于目标段包括有效块和无效块,则在目标段中的连续无效块的数量在[1block,511block]之间,由此,当基于连续无效块的数量将目标段划分为多个指定区间段时,例如可以将目标段划分为[1block,2block),[2block,4block),[4block,8block),[8block,16block),[16block,32block),[32block,64block),[64block,128block),[128block,256block),[256block,512block)这9个区间段,9个区间段中的每个区间段对应的连续无效块的数量不同且依次增大。当然,在本实施例中,还可以基于连续无效块的数量将目标段划分为其他更多的区间段,例如,可以将目标段划分为[1block,2block),[2block,4block),[4block,8block),[8block,16block),[8block,18block),[18block,32block),[32block,64block),[64block,128block),[128block,256block),[256block,512block)这10个区间段,可以将目标段划分为[1block,2block),[2block,4block),[4block,8block),[8block,16block),[8block,18block),[18block,32block),[32block,64block),[32block,66block),[66block,128block),[128block,256block),[256block,512block)这11个区间段等,在此不再赘述。

在本实施例中,在获取闪存文件系统中的无效块的分布信息后,可以基于该分布信息,获取目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量。以多个指定区间段包括[1block,2block),[2block,4block),[4block,8block),[8block,16block),[16block,32block),[32block,64block),[64block,128block),[128block,256block),[256block,512block)这9个区间段为例进行说明,则电子设备可以基于分布信息,获取目标段中的无效块落在指定区间段[1block,2block)中的无效块数量c0,获取目标段中的无效块落在指定区间段[2block,4block)中的无效块数量c1,获取目标段中的无效块落在指定区间段[4block,8block)中的无效块数量c2,获取目标段中的无效块落在指定区间段[8block,16block)中的无效块数量c3,获取目标段中的无效块落在指定区间段[16block,32block)中的无效块数量c4,获取目标段中的无效块落在指定区间段[32block,64block)中的无效块数量c5,获取目标段中的无效块落在指定区间段[64block,128block)中的无效块数量c6,获取目标段中的无效块落在指定区间段[128block,256block)中的无效块数量c7,获取目标段中的无效块落在指定区间段[256block,512block)中的无效块数量c8。

请参阅图2,图2示出了本申请实施例提供的目标段的部分有效块和无效块的示意图。如图2所示,其目标段中的无效块的分布信息为:连续无效块的数量为1个的无效块数量为4个,即落在多个指定区间段中的指定区间段[1block,2block)中的无效块数量为4个,即c0=4,连续无效块的数量为2个的无效块数量为2个,连续无效块的数量为3个的无效块数量为3个,即落在多个指定区间段中的指定区间段[2block,4block)中的无效块数量为2 3=5个,即c1=5,依次类推,在此不再赘述。

步骤s130:获取所述多个指定区间段中的每个指定区间段对应的权重。

在本实施例中,电子设备可以获取多个指定区间段中的每个指定区间段对应的权重。在一些实施方式中,电子设备可以预先设置并存储多个指定区间段中的每个指定区间段对应的权重,则在使用时,电子设备可以直接从本地读取多个指定区间段中的每个指定区间段对应的权重,或者电子设备可以在使用时设置多个指定区间段中的每个指定区间段对应的权重,在此不做限定。其中,每个指定区间段对应的连续无效块的大小与每个指定区间段对应的权重呈负相关,或者每个指定区间段对应的连续无效块的数量与每个指定区间段对应的权重呈负相关,也就是说,越小的连续块表征碎片化越严重,可以对应越高的权重,越大的连续块表征碎片化越不严重,可以对应越低的权重。

以多个指定区间段包括[1block,2block),[2block,4block),[4block,8block),[8block,16block),[16block,32block),[32block,64block),[64block,128block),[128block,256block),[256block,512block)这9个区间段为例进行说明,则电子设备可以分别获取9个指定区间段中的每个指定区间段对应的权重,获取目指定区间段[1block,2block)对应的权重w0,获取指定区间段[2block,4block)对应的权重w1,获取指定区间段[4block,8block)对应的权重w2,获取指定区间段[8block,16block)对应的权重w3,获取指定区间段[16block,32block)对应的权重w4,获取指定区间段[32block,64block)对应的权重w5,获取指定区间段[64block,128block)对应的权重w6,获取指定区间段[128block,256block)对应的权重w7,获取指定区间段[256block,512block)对应的权重w8。

步骤s140:基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数。

在本实施例中,电子设备在获取每个指定区间段的无效块数量以及该每个指定区间段对应的权重后,可以基于每个指定区间段的无效块数量和每个指定区间段对应的权重进行计算,以计算获得加权分数,并将计算获得的加权分数作为闪存文件系统碎片化的评估分数。在一些实施方式中,以多个指定区间段包括[1block,2block),[2block,4block),[4block,8block),[8block,16block),[16block,32block),[32block,64block),[64block,128block),[128block,256block),[256block,512block)这9个区间段为例进行说明,则可以基于指定区间段,[1block,2block)的无效块数量c0和对应的权重w0,指定区间段[2block,4block)的无效块数量c1和对应的权重w1,指定区间段[4block,8block)的无效块数量c2和对应的权重w2,指定区间段[8block,16block)的无效块数量c3和对应的权重w3,指定区间段[16block,32block)的无效块数量c4和对应的权重w4,指定区间段[32block,64block)的无效块数量c5和对应的权重w5,指定区间段包括[64block,128block)的无效块数量c6和对应的权重w6,指定区间段包括[128block,256block)的无效块数量c7和对应的权重w7,以及指定区间段包括[256block,512block)的无效块数量c8和对应的权重w8共同计算加权分数,以提高计算的加权分数的准确性。

其中,由于每个指定区间段对应的连续无效块的大小与每个指定区间段对应的权重呈负相关,因此,若计算获得的加权分数越高,表征闪存文件系统碎片化越严重,写性能下降程度越重,则闪存文件系统碎片化越有可能导致卡顿,若计算获得的加权分数越低,表征闪存文件系统碎片化越不严重,写性能下降程度越轻,则闪存文件系统碎片化越不可能导致卡顿。

本申请一个实施例提供的闪存文件系统碎片化的评估方法,获取闪存文件系统的目标段中的无效块的分布信息,其中,目标段为包括有效块和无效块的段,基于分布信息,获取目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,多个指定区间段根据连续无效块的大小划分目标段获得,获取多个指定区间段中的每个指定区间段对应的权重,基于每个指定区间段的无效块数量和每个指定区间段对应的权重,获得加权分数作为闪存文件系统碎片化的评估分数,从而通过添加权重计算闪存文件系统中所有无效块对碎片化的贡献,获取闪存文件系统碎片化的评估分数,以提高闪存文件系统碎片化评估的准确性。

请参阅图3,图3示出了本申请又一个实施例提供的闪存文件系统碎片化的评估方法的流程示意图。该方法应用于上述具有闪存文件系统的电子设备,下面将针对图3所示的流程进行详细的阐述,所述闪存文件系统碎片化的评估方法具体可以包括以下步骤:

步骤s210:获取所述闪存文件系统的目标段中的无效块的分布信息,其中,所述目标段为包括有效块和无效块的段。

步骤s220:基于所述分布信息,获取所述目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,所述多个指定区间段根据连续无效块的大小划分所述目标段获得。

步骤s230:获取所述多个指定区间段中的每个指定区间段对应的连续无效块的大小。

步骤s240:基于所述每个指定区间段对应的连续无效块的大小,获得所述每个指定区间段对应的权重,其中,所述每个指定区间段对应的连续无效块的大小与所述每个指定区间段对应的权重呈负相关。

其中,步骤s210-步骤s240的具体描述请参阅步骤s110-步骤s130,在此不再赘述。

请参阅图4,图4示出了本申请的3所示的闪存文件系统碎片化的评估方法的步骤s240的流程示意图,下面将针对图4所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:

步骤s241:基于所述每个指定区间段对应的连续无效块的大小,确定所述每个指定区间段对应的写入速度。

在一些实施方式中,电子设备在获取每个指定区间段对应的连续无效块的大小后,可以基于每个指定区间段对应的连续无效块的大小,确定每个指定区间段对应的写入速度。可以理解的,f2fs文件系统将随机写转化为顺序写,剩余空间的连续成都对f2fs文件系统的写性能有较大的影响,且指定区间段对应的连续无效块的大小,与指定区间段对应的写入速度呈正相关,即指定区间段对应的连续无效块的大小越大,则该指定区间段对应的写入速度越大,指定区级段对应的连续无效块的大小越小,则该指定区间段对应的写入速度越小。例如,假设4kb、8kb、16kb、32kb、64kb、128kb、256kb、512kb、1mb、2mb块的写入速度依次为s0、s1、s2、s3、s4、s5、s6、s7、s8、s9,则s0<s1<s2<s3<s4<s5<s6<s7<s8<s9。

步骤s242:基于所述每个指定区间段对应的写入速度,获得所述每个指定区间段对应的权重。

在一些实施方式中,电子设备在获取每个指定区间段对应的写入速度后,可以基于每个指定区间段对应的写入速度,获得每个指定区间段对应的权重,从而适应不同的存储器件,可以根据不同存储器件的写性能,给出合理的权重,以计算合理的闪存文件系统碎片化的评估分数。其中,指定区间段对应的写入速度与指定区间段对应的权重呈负相关,即指定区间段的写入速度越快,表征碎片化越不严重,该指定区间段对应的权重越小,指定区间段的写入速度越慢,表征碎片化越严重,该指定区间段对应的权重越大。

在一些实施方式中,可以通过wi=100*(sn-si)/(sn-s0)对所述每个指定区间段对应的写入速度进行计算获得所述每个指定区间段对应的权重,其中,i=0,1,2,...n-1,wi为多个指定区间段中的第i个区间段的对应的权重,si为多个指定区间段中的第i个区间段对应的写入速度,sn为所述目标段为仅包括无效块的段对应的写入速度,n为指定区间段的数量。例如,当指定区间段的数量为9个,n=9时,wi=100*(s9-si)/(s9-s0),显然,w0=100,且写入速度越接近s9,碎片化分数越低,反之计算得到的碎片化分数越高,则体现写入性能下降越严重。

步骤s250:基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数。

在一些实施方式中,可以通过对所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重进行计算,获得加权分数作为所述闪存文件系统碎片化的评估分数,其中,n为指定区间段的数量,ci为多个指定区间段中的第i个区间段的无效块数量,wi为多个指定区间段中的第i个区间段的对应的权重。例如,当指定区间段的数量为9个,n=9时,

步骤s260:基于所述评估分数,调整针对所述目标段的回收策略。

在本实施例中,电子设备在获取针对闪存文件系统碎片化的评估分数后,可以基于该评估分数调整针对目标段的回收策略,如调整针对目标段的垃圾回收(gc)策略。在一些实施方式中,可以基于评估分数,加大针对目标段的回收频率,可以基于评估分数,减小针对目标段的回收频率,可以基于评估分数,暂停针对目标段的回收频率等,在此不做限定。

请参阅图5,图5示出了本申请的3所示的闪存文件系统碎片化的评估方法的步骤s260的流程示意图,下面将针对图5所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:

步骤s261:当所述评估分数高于指定分数时,加大针对所述目标段的回收频率。

在一些实施方式中,电子设备可以预先设置并存储有指定分数,该指定分数用于作为闪存文件系统碎片化的评估分数的判断依据。因此,在本实施例中,电子设备在获取闪存文件系统碎片化的评估分数后,可以将评估分数与指定分数进行比较,以判断评估分数是否高于指定分数。其中,当判断结果表征评估分数高于指定分数时,可以认为闪存文件系统碎片化严重,可以加大针对目标段的回收频率,以释放更多连续空闲块,提升写性能。

步骤s262:当所述评估分数不高于指定分数时,暂停针对所述目标段的回收。

其中,当判断结果表征评估分数不高于指定分数时,可以认为闪存文件系统碎片化不严重,即目标段本身存在足够的连续空闲块供写入,不会影响写性能,因此,可以暂停针对目标段的回收,避免回收碎片化程度低的目标段。

本申请又一个实施例提供的闪存文件系统碎片化的评估方法,获取闪存文件系统的目标段中的无效块的分布信息,其中,目标段为包括有效块和无效块的段,基于分布信息,获取目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,多个指定区间段根据连续无效块的大小划分目标段获得,获取多个指定区间段中的每个指定区间段对应的连续无效块的大小,基于每个指定区间段对应的连续无效块的大小,获得每个指定区间段对应的权重,其中,每个指定区间段对应的连续无效块的大小与每个指定区间段对应的权重呈负相关,基于每个指定区间段的无效块数量和每个指定区间段对应的权重,获得加权分数作为闪存文件系统碎片化的评估分数,基于评估分数,调整针对目标段的回收策略。相较于图1所示的闪存文件系统碎片化的评估方法,本实施例还根据每个指定区间段对应的连续无效块的大小获得每个指定区间段对应的权重,且获得的权重与连续无效块的大小呈负相关,以提升获得的权重的准确性。另外,本实施例还根据评估分数调整针对目标段的回收策略,以加快写入速度。

请参阅图6,图6示出了本申请实施例提供的闪存文件系统碎片化的评估装置200的模块框图。该闪存文件系统碎片化的评估装置200应用于上述具有闪存文件系统的电子设备,下面将针对图6所示的框图进行阐述,所述闪存文件系统碎片化的评估装置200包括:分布信息获取模块210、数量获取模块220、权重获取模块230以及评估分数获取模块240,其中:

分布信息获取模块210,用于获取所述闪存文件系统的目标段中的无效块的分布信息,其中,所述目标段为包括有效块和无效块的段。

数量获取模块220,用于基于所述分布信息,获取所述目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,所述多个指定区间段根据连续无效块的大小划分所述目标段获得。

权重获取模块230,用于获取所述多个指定区间段中的每个指定区间段对应的权重。

进一步地,所述权重获取模块230包括:大小获取模块和权重获取模块,其中:

大小获取子模块,用于获取所述多个指定区间段中的每个指定区间段对应的连续无效块的大小。

权重获取子模块,用于基于所述每个指定区间段对应的连续无效块的大小,获得所述每个指定区间段对应的权重,其中,所述每个指定区间段对应的连续无效块的大小与所述每个指定区间段对应的权重呈负相关。

进一步地,所述权重获取子模块包括:写入速度获取单元和权重获取单元,其中:

写入速度获取单元,用于基于所述每个指定区间段对应的连续无效块的大小,确定所述每个指定区间段对应的写入速度。

权重获取单元,用于基于所述每个指定区间段对应的写入速度,获得所述每个指定区间段对应的权重。

进一步地,所述权重获取单元包括:权重获取子单元,其中:

权重获取子单元,用于通过wi=100*(sn-si)/(sn-s0)对所述每个指定区间段对应的写入速度进行计算获得所述每个指定区间段对应的权重,其中,i=0,1,2,...n-1,wi为多个指定区间段中的第i个区间段的对应的权重,si为多个指定区间段中的第i个区间段对应的写入速度,sn为所述目标段为仅包括无效块的段对应的写入速度,n为指定区间段的数量。

评估分数获取模块240,用于基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数。

进一步地,所述评估分数获取模块240包括:评估分数获取子模块,其中:

通过对所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重进行计算,获得加权分数作为所述闪存文件系统碎片化的评估分数,其中,n为指定区间段的数量,ci为多个指定区间段中的第i个区间段的无效块数量,wi为多个指定区间段中的第i个区间段的对应的权重。

进一步地,所述闪存文件系统碎片化的评估装置200还包括:回收策略调整模块,其中:

回收策略调整模块,用于基于所述评估分数,调整针对所述目标段的回收策略。

进一步地,所述回收策略调整模块包括:回收频率加大子模块和回收暂停子模块,其中:

回收频率加大子模块,用于当所述评估分数高于指定分数时,加大针对所述目标段的回收频率。

回收暂停子模块,用于当所述评估分数不高于指定分数时,暂停针对所述目标段的回收。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

请参阅图7,其示出了本申请实施例提供的一种电子设备100的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120、触摸屏130以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。

其中,处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessingunit,cpu)、图形处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。

存储器120可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。

请参阅图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质300中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质300可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质300包括非易失性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质300具有执行上述方法中的任何方法步骤的程序代码310的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码310可以例如以适当形式进行压缩。

综上所述,本申请实施例提供的闪存文件系统碎片化的评估方法、装置以及电子设备,获取闪存文件系统的目标段中的无效块的分布信息,其中,目标段为包括有效块和无效块的段,基于分布信息,获取目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,多个指定区间段根据连续无效块的大小划分目标段获得,获取多个指定区间段中的每个指定区间段对应的权重,基于每个指定区间段的无效块数量和每个指定区间段对应的权重,获得加权分数作为闪存文件系统碎片化的评估分数,从而通过添加权重计算闪存文件系统中所有无效块对碎片化的贡献,获取闪存文件系统碎片化的评估分数,以提高闪存文件系统碎片化评估的准确性。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。


技术特征:

1.一种闪存文件系统碎片化的评估方法,其特征在于,应用于具有闪存文件系统的电子设备,所述方法包括:

获取所述闪存文件系统的目标段中的无效块的分布信息,其中,所述目标段为包括有效块和无效块的段;

基于所述分布信息,获取所述目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,所述多个指定区间段根据连续无效块的大小划分所述目标段获得;

获取所述多个指定区间段中的每个指定区间段对应的权重;

基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数。

2.根据权利要求1所述的方法,其特征在于,所述获取所述多个指定区间段中的每个指定区间段对应的权重,包括:

获取所述多个指定区间段中的每个指定区间段对应的连续无效块的大小;

基于所述每个指定区间段对应的连续无效块的大小,获得所述每个指定区间段对应的权重,其中,所述每个指定区间段对应的连续无效块的大小与所述每个指定区间段对应的权重呈负相关。

3.根据权利要求2所述的方法,其特征在于,所述基于所述每个指定区间段对应的连续无效块的大小,获得所述每个指定区间段对应的权重,包括:

基于所述每个指定区间段对应的连续无效块的大小,确定所述每个指定区间段对应的写入速度;

基于所述每个指定区间段对应的写入速度,获得所述每个指定区间段对应的权重。

4.根据权利要求3所述的方法,其特征在于,所述基于所述每个指定区间段对应的写入速度,获得所述每个指定区间段对应的权重,包括:

通过wi=100*(sn-si)/(sn-s0)对所述每个指定区间段对应的写入速度进行计算获得所述每个指定区间段对应的权重,其中,i=0,1,2,...n-1,wi为多个指定区间段中的第i个区间段的对应的权重,si为多个指定区间段中的第i个区间段对应的写入速度,sn为所述目标段为仅包括无效块的段对应的写入速度,n为指定区间段的数量。

5.根据权利要求1所述的方法,其特征在于,所述基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数,包括:

通过对所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重进行计算,获得加权分数作为所述闪存文件系统碎片化的评估分数,其中,n为指定区间段的数量,ci为多个指定区间段中的第i个区间段的无效块数量,wi为多个指定区间段中的第i个区间段的对应的权重。

6.根据权利要求1-5任一项所述的方法,其特征在于,在所述基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数之后,还包括:

基于所述评估分数,调整针对所述目标段的回收策略。

7.根据权利要求6所述的方法,其特征在于,所述基于所述评估分数,调整针对所述目标段的垃圾回收策略,包括:

当所述评估分数高于指定分数时,加大针对所述目标段的回收频率;

当所述评估分数不高于指定分数时,暂停针对所述目标段的回收。

8.一种闪存文件系统碎片化的评估装置,其特征在于,应用于具有闪存文件系统的电子设备,所述装置包括:

分布信息获取模块,用于获取所述闪存文件系统的目标段中的无效块的分布信息,其中,所述目标段为包括有效块和无效块的段;

数量获取模块,用于基于所述分布信息,获取所述目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,所述多个指定区间段根据连续无效块的大小划分所述目标段获得;

权重获取模块,用于获取所述多个指定区间段中的每个指定区间段对应的权重;

评估分数获取模块,用于基于所述每个指定区间段的无效块数量和所述每个指定区间段对应的权重,获得加权分数作为所述闪存文件系统碎片化的评估分数。

9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行如权利要求1-7任一项所述的方法。

10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。

技术总结
本申请公开了一种闪存文件系统碎片化的评估方法、装置以及电子设备。所述方法包括:获取闪存文件系统的目标段中的无效块的分布信息,其中,目标段为包括有效块和无效块的段,基于分布信息,获取目标段中的无效块落在多个指定区间段中的每个指定区间段的无效块数量,其中,多个指定区间段根据连续无效块的大小划分目标段获得,获取多个指定区间段中的每个指定区间段对应的权重,基于每个指定区间段的无效块数量和每个指定区间段对应的权重,获得加权分数作为闪存文件系统碎片化的评估分数。本申请实施例通过添加权重计算闪存文件系统中所有无效块对碎片化的贡献,获取闪存文件系统碎片化的评估分数,以提高闪存文件系统碎片化评估的准确性。

技术研发人员:彭冬炜
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26053.html

最新回复(0)