文件系统管理方法、系统、电子设备及介质

文档序号:168657 发布日期:2021-10-29 浏览:7次 >En<

阅读说明:本技术 文件系统管理方法、系统、电子设备及介质 (File system management method, system, electronic device and medium ) 是由 袁东平 于 2021-07-28 设计创作,主要内容包括:本发明提供一种文件系统管理方法、系统、电子设备及介质,该方法通过获取待创建文件的文件创建请求,并为待创建文件配置预分配所需空间大小,获取文件系统的空闲信息,获取包括空闲启示位置的标签信息,自空闲起始位置起,按照各所述空闲区间的排序,根据预分配所需空间大小为待创建文件分配待创建文件空间,这样可以减少或者避免写入时出现文件碎片,提升对于同一文件的连续存储能力,并提升该文件系统的读写性能。(The invention provides a file system management method, a file system management system, an electronic device and a medium, wherein the method comprises the steps of obtaining a file creation request of a file to be created, configuring the size of a pre-allocation required space for the file to be created, obtaining idle information of the file system, obtaining label information comprising an idle enlightenment position, and allocating a file space to be created for the file to be created according to the size of the pre-allocation required space from an idle initial position and the sequencing of each idle interval, so that file fragments can be reduced or avoided during writing, the continuous storage capacity of the same file is improved, and the read-write performance of the file system is improved.)

文件系统管理方法、系统、电子设备及介质

技术领域

本发明涉及钢铁领域内的图像处理技术领域,特别是涉及一种文件系统管理方法、系统、电子设备及介质。

背景技术

Leveldb(多层键值数据库)是一个google实现的非常高效的开源key-value数据库,基于LSM(Log Structured Merge Trees,,LSM树)的数据组织方式在顺序写入时拥有非常高的写入效率,在大量随机写入时合并操作成为写入瓶颈,严重时造成level0文件数量膨胀,影响可用性。

文件系统的作用是实现二进制数据的存取功能。常用文件系统EXT4(Fourthextended filesystem,第四代扩展文件系统)、XFS等在嵌入式等资源受限场景下表现不佳,多媒体文件并行写入时易出现文件碎片,使得对于同一文件的连续存储能力降低,而后将影响该文件系统的读写性能。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种文件系统管理方法、系统、电子设备及介质,用于解决多媒体文件并行写入时易出现文件碎片,使得对于同一文件的连续存储能力降低,而后将影响该文件系统的读写性能的技术问题。

针对于上述问题,本发明提供了一种文件系统管理方法,所述方法包括:

获取待创建文件的文件创建请求,并为所述待创建文件配置预分配所需空间大小;

获取文件系统的空闲信息,所述空闲信息包括若干个空闲区间的空闲位置标识;

获取标签信息,所述标签信息包括所述文件系统最近一次进行空间分配后剩余的各所述空闲区间的空闲起始位置,其中一个所述空闲区间的空闲位置标识包括所述空闲起始位置;

自所述空闲起始位置起,按照各所述空闲区间的排序根据所述预分配所需空间大小为所述待创建文件分配待创建文件空间。

可选的,所述空闲位置标识包括空闲区间初始位置和空闲区间结束位置,所述自所述空闲起始位置起,根据所述预分配所需空间大小为所述待创建文件分配待创建文件空间包括以下任意之一:

获取所述空闲信息中空闲区间大小及所述空闲位置标识的数量,并根据一个或多个所述空闲区间大小、预分配所需空间大小、空闲起始位置为所述待创建文件分配预分配所需空间大小的待创建文件空间,所述空闲区间大小根据所述空闲区间初始位置和空闲区间结束位置确定。

可选的,所述获取所述空闲信息中空闲区间大小及所述空闲位置标识的数量,并根据一个或多个所述空闲区间大小、预分配所需空间大小、空闲起始位置为所述待创建文件分配预分配所需空间大小的待创建文件空间包括以下任意之一:

若所述空闲信息中仅包括一个所述空闲区间的空闲位置标识,所述空闲起始位置与所述空闲区间初始位置相同,若所述空闲区间大小大于或等于所述预分配所需空间大小,自所述空闲区间初始位置起,为所述待创建文件分配预分配所需空间大小的待创建文件空间;

若所述空闲信息中包括多个所述空闲区间的空闲位置标识,根据所述空闲起始位置从各所述空闲区间中确定目标区间,根据所述目标区间的各空闲区间大小确定目标区间大小,若所述目标区间大小大于或等于所述预分配所需空间大小,自所述空闲起始位置起,在所述目标区间中为所述待创建文件分配预分配所需空间大小的待创建文件空间;

若所述空闲信息中包括多个所述空闲区间的空闲位置标识,根据所述空闲起始位置从各所述空闲区间中确定目标区间,根据所述目标区间的各空闲区间大小确定目标区间大小,若所述目标区间大小小于所述预分配所需空间大小,获取所述目标区间大小与所述预分配所需空间大小之间的差额空间大小,根据所述差额空间确定补充区间,所述补充区间包括位于所述目标区间之后按照排序顺序选取所述差额空间大小的若干个空闲区间,将所述目标区间和所述补充区间作为所述待创建文件空间。

可选的,所述补充区间的确定方式包括以下至少之一:

获取所述目标区间之后的第一个空闲区间的第一个空闲区间大小,若所述差额空间大小小于或等于第一个空闲区间大小,在所述第一个空闲区间中分配差额空间大小的空间作为补充区间;

按顺序获取目标区间之后的空闲区间第一组合的空闲区间第一组合大小,若所述差额空间大小小于或等于所述空闲区间第一组合大小,在空闲区间第一组合中分配差额空间大小的空间作为补充区间;

按顺序获取目标区间之后的空闲区间第一组合的空闲区间第一组合大小,若所述差额空间大小大于所述空闲区间第一组合大小,按顺序获取目标区间之前的空闲区间第二组合的空闲区间第二组合大小,若所述空闲区间第一组合大小与空闲区间第二组合大小大于所述差额空间大小,按顺序在空闲区间第一组合和空闲区间第二组合中分配差额空间大小的空间作为补充区间。

可选的,所述方法还包括:

获取删除文件的删除信息,所述删除信息包括删除文件的占用位置标识;

将所述删除文件占用位置标识所对应的占用区间与所述空闲区间进行合并,并更新所述空闲信息。

可选的,所述删除文件占用位置标识包括占用初始位置和占用结束位置,所述空闲位置标识包括空闲区间初始位置和空闲区间结束位置,更新所述空闲信息包括:

若所述空闲信息中各空闲区间初始位置和空闲区间结束位置均与所述占用初始位置和占用结束位置不同,则将所述占用初始位置和占用结束位置增加到所述空闲信息;

若所述空闲信息中存在一个空闲区间的空闲区间初始位置与所述占用结束位置相同,将所述空闲区间初始位置替换为占用结束位置;

若所述空闲信息中存在一个空闲区间的空闲区间结束位置与所述占用初始位置相同,将所述空闲区间结束位置替换为占用初始位置。

可选的,所述方法还包括:

打开所述待创建文件,并获取所述待创建文件的待创建文件空间,所述待创建文件空间包括若干个所述空闲区间;

对所述待创建文件进行数据读写,并根据所述待创建文件的文件偏移将各所述空闲区间分别依次加载到缓存中。

可选的,所述方法还包括:

记录进行数据读写后的所述待创建文件的修改时间和文件大小。

可选的,通过缓存模块缓存所述文件系统的全路径和全部节点信息,通过元数据存储模块存储所述文件系统中的元数据,所述方法还包括以下至少之一:

在查询节点信息时,先在所述缓存模块中逐级匹配所述全路径,若匹配失败,则在所述元数据存储模块中查找所述节点信息,并将所述节点信息缓存入所述缓存模块;

在更新节点信息时,先更新所述缓存模块中的所述节点信息,再将所述节点信息存储入所述元数据存储模块;

通过批量操作写入对所述元数据存储模块进行更新。

可选的,还包括:若发生掉电重启,获取预写日志并进行解析,根据解析后的所述预写日志对所述文件系统进行数据恢复。

本发明还提供了一种文件系统管理系统,所述文件系统管理系统包括文件系统模块和用于存储文件系统元数据的元数据存储模块,所述文件系统模块包括所述元数据存储模块的访问接口,所述元数据存储模块包括空闲单元和系统记录单元,其中:

所述空闲单元用于记录未分配给文件的空闲空间的空闲信息,所述空闲信息包括若干个空闲区间的空闲位置标识;

所述系统记录单元用于记录标签信息,包括所述文件系统最近一次进行空间分配后剩余的各所述空闲区间的空闲起始位置,其中一个所述空闲区间的空闲位置标识包括所述空闲起始位置;

若通过所述访问接口接收到待创建文件的文件创建请求,以所述空闲起始位置为起点,按照各所述空闲区间的排序,分配所述预分配所需空间大小的空闲空间作为待创建文件空间。

可选的,所述元数据存储模块包括以下至少之一:

节点单元,所述节点单元包括文件单元与目录单元,用于记录文件和目录的属性信息,所述属性信息包括节点身份识别信息、父身份识别信息、创建时间、修改时间、已使用大小、待创建文件空间大小、名称中至少之一;

索引单元,用于文件查找和目录扫描,包括包含父身份识别信息,名称,身份识别信息,类型中至少之一;

活跃节点单元,用于记录进行数据读写后的所述待创建文件的修改时间和文件大小;

分配单元,用于记录已分配给文件的空闲空间的占用信息。

可选的,所述文件系统管理系统还包括缓存模块,所述缓存模块用于缓存所述文件系统的路径和节点信息;

在查询节点信息时,先在所述缓存模块中逐级匹配所述路径,若匹配失败,则在所述元数据存储模块中查找所述节点信息,并将所述节点信息缓存入所述缓存模块;

在更新节点信息时,先更新所述缓存模块中的所述节点信息,再将所述节点信息存储入所述元数据存储模块;

通过批量操作写入对所述元数据存储模块进行更新。

可选的,所述文件系统管理系统还包括以下至少之一:

获取待创建文件的父目录,若所述文件系统包括所述父目录,为所述待创建目录分配待创建目录节点身份识别信息,并将所述待创建目录节点身份识别信息分别写入所述节点单元、索引单元、分配单元;

将所述待创建文件空间的占用信息写入所述分配单元;

根据所述待创建文件空间的占用信息更新所述空闲单元和/或系统记录单元;

获取待删除目录,若所述索引单元中所述待删除目录为空目录,在所述节点单元与索引单元中删除所述待删除目录;

获取删除文件的删除信息,所述删除信息包括删除文件的占用位置标识,将所述删除文件占用位置标识所对应的占用区间与所述空闲区间进行合并,并更新所述空闲单元中的空闲信息和所述分配单元中的占用信息。

可选的,所述文件系统管理系统还包括输入输出模块,所述输入输出模块用于对打开的所述待创建文件的文件句柄进行管理,所述文件句柄关联所述节点信息,打开所述待创建文件后获取所述待创建文件的待创建文件空间,所述待创建文件空间包括若干个所述空闲区间,对所述待创建文件进行数据读写,并根据所述待创建文件的文件偏移将各所述空闲区间分别依次加载到所述缓存模块中。

可选的,所述元数据存储模块包括数据库,所述空闲单元包括空闲表,所述系统记录单元包括系统表,所述节点单元包括节点表,所述索引单元包括索引表,活跃节点单元包括活跃节点表,所述分配单元包括分配表,其中,各个表分别包括表头标识和表尾标识,各个表之间的主键前缀不同。

本发明还提供了一种电子设备,包括处理器、存储器和通信总线;

所述通信总线用于将所述处理器和存储器连接;

所述处理器用于执行所述存储器中存储的计算机程序,以实现如上述实施例中任一项所述的方法。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于使所述计算机执行如上述实施例中任一项所述的方法。

如上所述,本发明提供的一种文件系统管理方法、系统、电子设备及介质,具有以下有益效果:

通过获取待创建文件的文件创建请求,并为待创建文件配置预分配所需空间大小,获取文件系统的空闲信息,获取包括空闲启示位置的标签信息,自空闲起始位置起,按照各所述空闲区间的排序根据预分配所需空间大小为待创建文件分配待创建文件空间,这样可以减少或者避免写入时出现文件碎片,提升对于同一文件的连续存储能力,并提升该文件系统的读写性能。

附图说明

图1为本发明实施例一提供的文件系统管理方法的一种流程示意图;

图2为本发明实施例二提供的文件系统管理系统的一种结构示意图;

图3-1为一实施例提供的索引表Index的一种示意图;

图3-2为一实施例提供的节点表Node的一种示意图;

图3-3为一实施例提供的活跃节点表Active的一种示意图;

图3-4为一实施例提供的空闲表Free的一种示意图;

图3-5为一实施例提供的分配表Alloc的一种示意图;

图3-6为一实施例提供的系统记录表SYS的一种示意图;

图4为一实施例提供的缓存模块的一种结构示意图;

图5-1、图5-2和图5-3为一实施例提供的待创建文件空间的分配的示例示意图;

图6-1、图6-2和图6-3为一实施例提供的删除文件后的空间合并的示例示意图;

图7为一实施例提供的另一种文件系统管理系统的结构示意图;

图8为一实施例提供的一种典型的嵌入式文件系统场景示意图;

图9为一实施例提供的终端的一种结构示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

实施例一

请参阅图1,本发明实施例提供的文件系统管理方法,包括:

S101:获取待创建文件的文件创建请求,并为待创建文件配置预分配所需空间大小。

其中,文件创建请求可以包括但不限于文件类型、文件格式、用途、请求来源(请求方的信息)等中至少之一,可以根据该文件创建请求为待创建文件配置对应的预分配所需空间大小,也即根据该文件创建请求确定该待创建文件的预留文件大小。例如,当文件创建请求中文件类型为视频文件,则预分配所需空间大小配置为1G,当文件创建请求中文件类型为音频文件,则预分配所需空间大小配置为500M。预分配所需空间大小的配置规则也可以由本领域技术人员根据需要设定。

可选的,在步骤S101之前,该方法还包括:

获取待创建文件的父目录信息,若文件系统中存在该父目录信息所对应的父目录,则为该待创建文件分配对应的节点标识信息(节点ID)。

可选的,本实施例中的文件系统包括基于leveldb的嵌入式虚拟文件系统。

S102:获取文件系统的空闲信息。

其中,空闲信息包括但不限于若干个空闲区间的空闲位置标识。

可选的,空闲信息可以是空白块的位置信息。例如,将可存储虚拟文件的数据块预先配置有对应的数据块序号,以若干个数据块行程的空闲区间中各个数据块的数据块序号作为空闲位置标识,例如,数据块10-20形成一个空闲区间,该空闲区间的空闲位置标识为(10,20)。

通过该空闲信息可以知晓当前文件系统中可用数据块的情况。

S103:获取标签信息。

其中,标签信息包括文件系统最近一次进行空间分配后剩余的各空闲区间的空闲起始位置,一个空闲区间的空闲位置标识包括空闲起始位置。

可选的,文件系统最近一次进行空间分配后剩余的各空闲区间可以理解为文件系统上一次接收到文件创建请求,为上一个待创建文件完成空间分配后(上一次空间分配后),剩余了一个或多个空闲区间(也即步骤S102中的空闲信息中的若干个空闲区间)。空闲起始位置也即这若干个空闲区间中一个空闲区间的空闲区间初始位置。换句话说,空闲起始位置也即各个空闲区间中当前排序最为靠前的一个空闲区间的空闲区间初始位置。

可选的,空闲起始位置可以为上一次空间分配所占用的占用空间结束位置之后的第一个空闲区间的空闲区间初始位置。需要说明的是,占用空间结束位置之后的第一个空闲区间的确定方式包括但不限于下述方式:

若占用空间结束位置不是初始可分配空间的结束位置,则第一个空闲区间为排序在该占用空间结束位置之后的空闲区间;

若占用空间结束位置是初始可分配空间的结束位置,则第一个空闲区间为初始可分配空间的起始位置起的排序最为靠前的空闲区间。

换句话说,空前区间的排序是自占用空间结束位置始,经初始可分配空间的结束位置,再循环回初始可分配空间的起始位置,到占用空间结束位置止。

这样,可以按照空闲区间的顺序依次进行占用,实现元数据基于数据库顺序存储,读写效率更高,元数据操作对硬盘IO压力小且可以与文件数据读写分离到不同设备(如不同磁盘等)。

例如,数据块的数据块序号为1-100,上一次空间分配所占用的最后一个数据块为30,当前空白的数据块为0-15,31-50,75-100,则占用空间结束位置为30,其之后的第一个空闲区间为31-50,故空闲起始位置为31。又例如,数据块序号为1-100,上一次空间分配所占用的最后一个数据块为30,当前空白的数据块为0-15,45-50,75-100,则占用空间结束位置为30,其之后的第一个空闲区间为45-50,故空闲起始位置为45。又例如,数据块序号为1-100,上一次空间分配所占用的最后一个数据块为100,当前空白的数据块为0-15,45-50,则占用空间结束位置为100,其之后的第一个空闲区间为0-15,故空闲起始位置为0。又例如,数据块序号为1-100,上一次空间分配所占用的最后一个数据块为100,当前空白的数据块为5-15,45-50,则占用空间结束位置为100,其之后的第一个空闲区间为5-15,故空闲起始位置为5。又例如,数据块序号为1-100,上一次空间分配所占用的最后一个数据块为100,当前空白的数据块为0,5-15,45-50,则占用空间结束位置为100,其之后的第一个空闲区间为0,故空闲起始位置为0。

可选的,空闲起始位置可以为自初始可分配空间的起始位置起的第一个空闲区间的空闲区间初始位置。

例如,数据块的数据块序号为1-100,当前空白的数据块为0-15,31-50,75-100,空闲起始位置为0。又例如,数据块的数据块序号为1-100,当前空白的数据块为31-50,75-100,空闲起始位置为31。

对于空闲起始位置可以为自初始可分配空间的起始位置起的第一个空闲区间的空闲区间初始位置、空闲起始位置可以为上一次空间分配所占用的占用空间结束位置之后的第一个空闲区间的空闲区间初始位置这两种情况,可以在完成上一次空间分配后,即记录标签信息。

可选的,空闲起始位置可以为与预分配所需空间大小匹配度最佳的一个空闲区间的空闲区间初始位置。此时,需要在获取到预分配所需空间大小后,再根据当前各个空闲区间的大小情况加以匹配。其中匹配度可以通过计算预分配所需空间大小与各个空闲区间大小的相对误差来确定,相对误差越小,匹配度越佳。若存在至少两个空闲区间的匹配度相同,则可以选定匹配度相同的各个空闲区间中位于占用空间结束位置之后的第一个空闲区间的空闲区间初始位置作为空闲起始位置。若存在至少两个空闲区间的匹配度相同,也可按照本领域技术人员所预先设定的其他方式来确定选用哪一个空闲区间的空闲区间初始位置作为空闲起始位置。

例如,数据块的数据块序号为1-100,当前空白的数据块为0-15,31-50,75-100,预分配所需空间大小为15个数据块,则空闲起始位置为0。又例如,数据块的数据块序号为1-100,当前空白的数据块为0-15,31-50,75-100,预分配所需空间大小为20个数据块,则空闲起始位置为31。又例如,数据块的数据块序号为1-100,当前空白的数据块为0-15,35-50,75-100,预分配所需空间大小为15个数据块,最近一次空间分配的占用空间结束位置为34,则空闲起始位置为35。

这样,可以为待创建文件选择合适的空闲区间,以“填空”的方式尽可能的将待创建文件设置在同一个连续的空闲区间中,可以有效避免文件碎片的产生。同时,若能够兼顾最近一次空间分配的占用空间结束位置,在占用空间结束位置之后进行空间分配,也可以实现元数据基于数据库顺序存储,读写效率更高,元数据操作对硬盘IO压力小且可以与文件数据读写分离到不同设备(如不同磁盘等)。

S104:自空闲起始位置起,根据预分配所需空间大小为待创建文件分配待创建文件空间。

可选的,由于空闲起始位置为其中一个空闲区间A的空闲区间初始位置,也即,待创建文件空间至少包括空闲区间A的至少一部分空间。

可选的,空闲区间包括一个或多个数据块,由于空闲区间所对应的数据块是预先排序好的,因此,待创建文件空间包括自空闲起始位置所在的数据块起,按照数据块的排序所选择的若干个数据块。换句话说,待创建文件区间可以自空闲起始位置起,按照空闲区间的排序选取预分配所需空间大小的空间。

通过为待创建文件预先配置一个预分配所需空间大小,并依据该预分配所需空间大小配置待创建文件空间,可以有效的避免在多文件并行写入是所出现特别多的文件碎片,有效的减少了文件系统中碎片的产生。

可选的,后续该待创建文件在进行读写时,仅占用该待创建文件空间,当该待创建文件的数据超出待创建文件空间,则可以自待创建文件空间的起始位置开始数据覆盖(删除原有的数据,写入新的数据),也可以重新创建新的待创建文件,以记录超出的数据。

可选的,自空闲起始位置起,根据预分配所需空间大小为待创建文件分配待创建文件空间包括:

自空闲起始位置起,按照空闲区间的排序根据预分配所需空间大小为待创建文件分配待创建文件空间。

其中,空闲区间的排序包括以下至少之一:

空闲区间的循环排序,例如,自占用空间结束位置始,经初始可分配空间的结束位置,再循环回初始可分配空间的起始位置,到占用空间结束位置止。

空闲区间的匹配度排序,例如,空闲起始位置可以为与预分配所需空间大小匹配度最佳的一个空闲区间的空闲区间初始位置,将该空闲起始位置所对应的空闲区间作为排序第一名的空闲区间,确定差额空间,将与差额空间匹配度最佳的一个空闲区间作为排序第二名的空闲区间,依次类推,可选的,当存在多个空闲区间匹配度一致时,可以由本领域技术人员制定一定的规则选择一个空闲区间(如结合自然排序或循环排序等);

空闲区间的自然排序,例如空闲区间内各个数据块的自然排序由前到后。

在一些实施例中,空闲位置标识包括空闲区间初始位置和空闲区间结束位置,自空闲起始位置起,根据预分配所需空间大小为待创建文件分配待创建文件空间包括以下任意之一:

获取空闲信息中空闲区间大小及空闲位置标识的数量,并根据一个或多个空闲区间大小、预分配所需空间大小、空闲起始位置为待创建文件分配预分配所需空间大小的待创建文件空间,空闲区间大小根据空闲区间初始位置和空闲区间结束位置确定。

可选的,获取空闲信息中空闲区间大小及空闲位置标识的数量,并根据一个或多个空闲区间大小、预分配所需空间大小、空闲起始位置为待创建文件分配预分配所需空间大小的待创建文件空间包括以下任意之一:

若空闲信息中仅包括一个空闲区间的空闲位置标识,空闲起始位置与空闲区间初始位置相同,根据空闲区间初始位置和空闲区间结束位置确定空闲区间大小,若空闲区间大小大于或等于预分配所需空间大小,自空闲区间初始位置起,为待创建文件分配预分配所需空间大小的待创建文件空间;

若空闲信息中包括多个空闲区间的空闲位置标识,根据空闲起始位置从各空闲区间中确定目标区间,根据目标区间的各空闲区间大小确定目标区间大小,若目标区间大小大于或等于预分配所需空间大小,自目标区间的空闲起始位置起,在目标区间中为待创建文件分配预分配所需空间大小的待创建文件空间;

若空闲信息中包括多个空闲区间的空闲位置标识,根据空闲起始位置从各空闲区间中确定目标区间,根据目标区间的各空闲区间大小确定目标区间大小,若目标区间大小小于预分配所需空间大小,获取目标区间大小与预分配所需空间大小之间的差额空间大小,根据差额空间确定补充区间,补充区间包括位于目标区间之后按照排序顺序选取差额空间大小的若干个空闲区间,将目标区间和补充区间作为待创建文件空间。

可选的,由于目标区间内包括至少两个空闲区间,故可以将各个空闲区间的空闲区间大小累积得到目标区间大小。由于各空闲区间是有自然排序(从前到后,与空闲起始位置无关)的,若自空闲起始位置起到各空闲区间中最后一个空闲区间的空闲区间结束位置止所得到的目标区间的目标区间大小仍然小于预分配所需空间大小,此时可以从空闲区间的自然排序起始处开始确定补充区间。可选的,各空闲区间还包括有当前排序,当前排序是自空闲起始位置起到自然排序中最后一个空闲区间的空闲区间结束位置,承接自然排序中第一个空闲区间的空闲区间初始位置,到自然排序中空闲起始位置之前一个空闲区间的空闲区间结束位置。

若空闲信息中仅包括一个空闲区间的空闲位置标识,也即当前文件系统中仅有一个空闲区间。若空闲信息中仅包括多个空闲区间的空闲位置标识,也即当前文件系统中有多个空闲区间。

若空闲信息中仅包括一个空闲区间的空闲位置标识,空闲起始位置与空闲区间初始位置相同,根据空闲区间初始位置和空闲区间结束位置确定空闲区间大小,若空闲区间大小小于预分配所需空间大小,则反馈创建失败。若空闲区间大小大于或等于预分配所需空间大小,自空闲区间初始位置起,为待创建文件配置连续的预分配所需空间大小的空间作为待创建文件空间。

若空闲信息中包括多个空闲区间的空闲位置标识,则可以通过标签信息来从各空闲区间中确定目标区间,进而根据目标区间的目标区间大小与预分配所需空间大小的关系对应的进行空间分配。具体的,若目标区间大小满足预分配所需空间大小,则仅占用目标区间,自空闲区间初始位置起,在目标区间中为待创建文件配置连续的预分配所需空间大小的空间作为待创建文件空间。若目标区间大小不能满足预分配所需空间大小,则需要确定补充区间,进而在目标区间和补充区间中配置待创建文件空间。可选的,空前区间的排序包括自占用空间结束位置始,经初始可分配空间的结束位置,再循环回初始可分配空间的起始位置,到占用空间结束位置止。

补充区间的确定方式包括以下至少之一:

获取目标区间之后的第一个空闲区间的第一个空闲区间大小,若差额空间大小小于或等于第一个空闲区间大小,在第一个空闲区间中分配差额空间大小的空间作为补充区间;

按顺序获取目标区间之后的空闲区间第一组合的空闲区间第一组合大小,若差额空间大小小于或等于空闲区间第一组合大小,在空闲区间第一组合中分配差额空间大小的空间作为补充区间;

按顺序获取目标区间之后的空闲区间第一组合的空闲区间第一组合大小,若差额空间大小大于空闲区间第一组合大小,按顺序获取目标区间之前的空闲区间第二组合的空闲区间第二组合大小,若空闲区间第一组合大小与空闲区间第二组合大小大于差额空间大小,按顺序在空闲区间第一组合和空闲区间第二组合中分配差额空间大小的空间作为补充区间。

为方便理解,空闲区间位置标识以数据块序号来标识为例,待创建文件空间的确定若干个示例如下:

若预分配所需空间大小为10个数据块,当前空闲区间分别为(2,8),(11,19),(50,100),空闲起始位置为2,差额空间为3,目标区间之后的第一个空闲区间的第一个空闲区间(11,19)大小为9,则目标区间为(2,8),补充区间为(11,13),待创建文件空间为【(2,8)、(11,13)】。

若预分配所需空间大小为10个数据块,当前空闲区间分别为(2,8),(11,19),(98,100),空闲起始位置为97,则目标区间为(98,100),补充区间为(2,8),待创建文件空间为【(2,8)、(98,100)】,其中,待创建文件的存储顺序为先存储(98,100)再存储(2,8)。

若预分配所需空间大小为10个数据块,当前空闲区间分别为(2,8),(11,12),(98,100),空闲起始位置为2,空闲区间第一组合为(11,12),(98,100),空闲区间第一组合大小为:2+3=5,差额空间大小为3,则目标区间为(2,8),补充区间为(11,12)、(98),待创建文件空间为【(2,8)、(11,12)、(98)】,其中,待创建文件的存储顺序为先存储(2,8)再存储(11,12)最后存储98。

若预分配所需空间大小为10个数据块,当前空闲区间分别为(2,8),(11,12),(98,100),空闲起始位置为11,空闲区间第一组合为(98,100),空闲区间第一组合大小为3,空闲区间第二组合为(2,8),空闲区间第一组合大小为7,差额空间大小为:10-2=8,则目标区间为(11,12),补充区间为(98,100)、(2,6),待创建文件空间为【(2,6)、(11,12)、(98,100)】,其中,待创建文件的存储顺序为先存储(11,12)再存储(98,100)最后存储(2,6)。

需要说明的是,空闲区间第一组合、空闲区间第二组合中可以包括一个或多个空闲区间。

在待创建文件元数据的存储的过程中,以空闲起始位置为起点开始存储,可以实现对元数据的按顺序存储,这样,又例如后续在删除数据后,空闲空间的合并。

在一些实施例中,文件管理方法还包括:

获取删除文件的删除信息,删除信息包括删除文件的占用位置标识;

将删除文件占用位置标识所对应的占用区间与空闲区间进行合并,并更新空闲信息。

可选的,占用区间与空闲区间进行合并也即若占用区间与空闲区间连续,则将该占用区间与空闲区间合并。

可选的,删除文件占用位置标识包括占用初始位置和占用结束位置,空闲位置标识包括空闲区间初始位置和空闲区间结束位置,更新空闲信息包括:

若空闲信息中各空闲区间初始位置和空闲区间结束位置均与占用初始位置和占用结束位置不同,则将占用初始位置和占用结束位置增加到空闲信息,也即增加了一个空闲区间;

若空闲信息中存在一个空闲区间的空闲区间初始位置与占用结束位置相同,将空闲区间初始位置替换为占用结束位置,也即增大了一个空闲区间;

若空闲信息中存在一个空闲区间的空闲区间结束位置与占用初始位置相同,将空闲区间结束位置替换为占用初始位置,也即增大了一个空闲区间。

在一些实施例中,文件管理方法还包括:

获取删除文件的删除信息,删除信息包括删除文件的占用位置标识;

将删除文件占用位置标识与空闲信息进行合并,更新空闲信息;

删除文件系统中的删除文件占用位置标识。

通过对空闲区间的合并,并更新合并后的空闲区间的空闲信息,以及删除掉删除文件占用位置标识,这样可以减少存储数据的数据量。

在一些实施例中,在完成待创建文件空间的分配之后,文件管理方法还包括:

更新空闲信息和/或标签信息。

可选的,空闲区间包括若干个空闲块(数据块),更新标签信息的方式包括以下任意之一:

若空闲信息中仅包括一个空闲区间的空闲位置标识,且空闲区间大小等于预分配所需空间大小,更新位置标识包括空值;

若空闲信息中仅包括一个空闲区间的空闲位置标识,且空闲区间大小大于预分配所需空间大小,更新位置标识包括更新初始位置和空闲区间的空闲区间结束位置,更新初始位置包括待创建文件空间中最后一个空闲块之后剩余空闲区间的第一个空闲块的位置;

若空闲信息中仅包括多个空闲区间的空闲位置标识,且目标区间大小等于预分配所需空间大小,更新位置标识包括除目标区间外其余空闲区间的空闲位置标识;

若空闲信息中仅包括多个空闲区间的空闲位置标识,且目标区间大小大于预分配所需空间大小,更新位置标识包括除目标区间外其余空闲区间的空闲位置标识,更新位置标识包括更新初始位置和空闲区间的空闲区间结束位置,更新初始位置包括待创建文件空间中最后一个空闲块之后剩余空闲区间的第一个空闲块的位置。

在一些实施例中,在完成步骤S104之后,文件管理方法还包括:

打开待创建文件,并获取待创建文件的待创建文件空间,待创建文件空间包括若干个空闲区间;

对待创建文件进行数据读写,并根据待创建文件的文件偏移将各空闲区间分别依次加载到缓存中。

可选的,将各空闲区间分别依次加载到缓存中包括:

获取待创建文件空间所对应的空闲起始位置,自空闲起始位置起,按照排序依次获取各个空闲区间,并加载到缓存中。

当前一个空闲区间的写满之后,再获取下一个空闲区间,这样可以避免缓存分配记录占用过多的内存。

例如,在打开文件系统中的一个文件(如已分配空间后的待创建文件),将该文件的分配记录(待创建文件空间的信息)部分加载到内存,读写时通过缓存的分配记录计算读写位置进行数据读写,读写偏移超过缓存记录时从数据库重新加载相关分配记录,避免缓存分配记录占用过多内存。

在一些实施例中,文件管理方法还包括:

记录进行数据读写后的待创建文件的修改时间和文件大小。

可选的,对待创建文件的修改时间和文件大小进行实时记录,这样可以避免掉电造成文件大小确实,同时可避免频繁更新文件节点信息使IO模型退化成随机读写后性能下降造成导致数据库膨胀。

在一些实施例中,通过缓存模块缓存所述文件系统的全路径和全部节点信息,通过元数据存储模块存储文件系统中的元数据,文件管理方法还包括以下至少之一:

在查询节点信息时,先在缓存模块中逐级匹配全路径,若匹配失败,则在元数据存储模块中查找节点信息,并将节点信息缓存入缓存模块,这样可以减少从元数据存储模块中的查询次数;

在更新节点信息时,先更新缓存模块中的节点信息,再将节点信息存储入元数据存储模块,这样可以保持缓存模块中的信息与元数据存储模块中的数据一致;

通过批量操作写入对元数据存储模块进行更新,这样可以避免出现数据不一致。

在一些实施例中,文件管理方法还包括:

若发生掉电重启,获取预写日志并进行解析,根据解析后的预写日志对文件系统进行数据恢复。

元数据存储模块包括但不限于数据库,如leveldb数据库等。

其中,数据恢复中对于数据库多个表的更新,可以通过批量操作写入进行更新,这样可以避免掉电出现数据不一致。

在一些实施例中,元数据通过K-V(key-value)形式存储在leveldb数据库中。

可选的,元数据也可存储在其它关系型数据库中。

在一些实施例中,缓存模块包括一颗红黑树和一个LRU(Least Recently Used,最近最少使用)链表,红黑树用于通过路径查询节点信息,LRU链表用于对缓存进行老化处理。

可选的,插入缓存时将缓存节点同时加入红黑树与LRU链表。缓存被访问时更新LRU链表。缓存数量达到上限后释放最老的缓存。缓存被io引用时从LRU链表中移出,使用引用计数进行管理,引用计数为0时重新加入LRU链表。

本实施例中的文件系统管理方法可以用以控制下述任一实施例中的文件系统管理系统,具体的实现方式可以参见下述实施例,在此不再赘述。

本实施例提供了一种文件系统管理方法,该方法通过获取待创建文件的文件创建请求,并为待创建文件配置预分配所需空间大小,获取文件系统的空闲信息,获取标签信息,自空闲起始位置起,根据预分配所需空间大小为待创建文件分配待创建文件空间,这样可以减少或者避免写入时出现文件碎片,提升对于同一文件的连续存储能力,并提升该文件系统的读写性能。

可选的,本实施例中文件系统的元数据基于leveldb顺序存储,读写效率高,元数据操作对硬盘IO压力小且可以与文件数据读写分离到不同设备。

可选的,通过记录进行数据读写后的所述待创建文件的修改时间和文件大小,避免掉电造成文件大小丢失,同时可避免频繁更新文件节点信息使IO模型退化成随机读写后性能下降造成leveldb中level0出现大量重复数据导致数据库膨胀。

可选的,自空闲起始位置起顺序分配待创建文件空间、存储,方便在释放空间(删除文件时删除文件的占用区间)时与相邻数据(空闲区间)进行合并,同时使用预分配(预分配所需空间大小)+循环分配(自空闲起始位置起顺序分配待创建文件空间,特别是当空前区间的排序是自占用空间结束位置始,经初始可分配空间的结束位置,再循环回初始可分配空间的起始位置,到占用空间结束位置止)机制可以有效地避免文件碎片。

可选的,通过节点缓存可大幅减少查询文件目录时读盘操作,降低硬盘压力并提高效率。

可选的,本实施例提出一种基于leveldb数据库和块设备的单进程文件系统的构建方法及碎片处理机制、高效的掉电保护机制,有效的避免碎片的产生,以及有效的实现了掉电保护。

实施例二

请参阅图2,本实施例提供了一种文件系统管理系统200,文件系统管理系统包括文件系统模块201和用于存储文件系统元数据的元数据存储模块202,文件系统模块201包括元数据存储模块的访问接口,元数据存储模块202包括空闲单元2021和系统记录单元2022,其中:

空闲单元2021用于记录未分配给文件的空闲空间的空闲信息,空闲信息包括若干个空闲区间的空闲位置标识;

系统记录单元2022用于记录标签信息,包括文件系统最近一次进行空间分配后剩余的各空闲区间的空闲起始位置,其中一个空闲区间的空闲位置标识包括空闲起始位置;

若通过访问接口接收到待创建文件的文件创建请求,以空闲起始位置为起点,按照各空闲区间的排序,分配预分配所需空间大小的空闲空间作为待创建文件空间。

在一些实施例中,空闲位置标识包括空闲区间初始位置和空闲区间结束位置,以空闲起始位置为起点,按照各空闲区间的排序,分配预分配所需空间大小的空闲空间作为待创建文件空间包括以下任意之一:

获取空闲信息中空闲区间大小及空闲位置标识的数量,并根据一个或多个空闲区间大小、预分配所需空间大小、空闲起始位置为待创建文件分配预分配所需空间大小的待创建文件空间,空闲区间大小根据空闲区间初始位置和空闲区间结束位置确定。

可选的,获取空闲信息中空闲区间大小及空闲位置标识的数量,并根据一个或多个空闲区间大小、预分配所需空间大小、空闲起始位置为待创建文件分配预分配所需空间大小的待创建文件空间包括以下任意之一:

若空闲信息中仅包括一个空闲区间的空闲位置标识,空闲起始位置与空闲区间初始位置相同,根据空闲区间初始位置和空闲区间结束位置确定空闲区间大小,若空闲区间大小大于或等于预分配所需空间大小,自空闲区间初始位置起,为待创建文件分配预分配所需空间大小的待创建文件空间;

若空闲信息中包括多个空闲区间的空闲位置标识,根据空闲起始位置从各空闲区间中确定目标区间,根据目标区间的各空闲区间大小确定目标区间大小,若目标区间大小大于或等于预分配所需空间大小,自目标区间的空闲起始位置起,在目标区间中为待创建文件分配预分配所需空间大小的待创建文件空间;

若空闲信息中包括多个空闲区间的空闲位置标识,根据空闲起始位置从各空闲区间中确定目标区间,根据目标区间的各空闲区间大小确定目标区间大小,若目标区间大小小于预分配所需空间大小,获取目标区间大小与预分配所需空间大小之间的差额空间大小,根据差额空间确定补充区间,补充区间包括位于目标区间之后按照排序顺序选取差额空间大小的若干个空闲区间,将目标区间和补充区间作为待创建文件空间。

可选的,补充区间的确定方式包括以下至少之一:

获取目标区间之后的第一个空闲区间的第一个空闲区间大小,若差额空间大小小于或等于第一个空闲区间大小,在第一个空闲区间中分配差额空间大小的空间作为补充区间;

按顺序获取目标区间之后的空闲区间第一组合的空闲区间第一组合大小,若差额空间大小小于或等于空闲区间第一组合大小,在空闲区间第一组合中分配差额空间大小的空间作为补充区间;

按顺序获取目标区间之后的空闲区间第一组合的空闲区间第一组合大小,若差额空间大小大于空闲区间第一组合大小,按顺序获取目标区间之前的空闲区间第二组合的空闲区间第二组合大小,若空闲区间第一组合大小与空闲区间第二组合大小大于差额空间大小,按顺序在空闲区间第一组合和空闲区间第二组合中分配差额空间大小的空间作为补充区间。

在一些实施例中,元数据存储模块包括以下至少之一:

节点单元,节点单元包括文件单元与目录单元,用于记录文件和目录的属性信息,属性信息包括节点身份识别信息、父身份识别信息、创建时间、修改时间、已使用大小、待创建文件空间大小、名称中至少之一,其中,节点身份识别信息为全局唯一,通过累加分配,重新加载时从元数据存储模块中加载当前最大值;

索引单元,用于文件查找和目录扫描,包括包含父身份识别信息,名称,身份识别信息,类型中至少之一;

活跃节点单元,用于记录进行数据读写后的待创建文件的修改时间和文件大小;

分配单元,用于记录已分配给文件的空闲空间的占用信息。

可选的,索引单元记录由上至下的层级管理。

可选的,活跃节点单元记录第一层目录和已打开文件的实时信息,包含节点身份识别信息、修改时间、文件大小、预分配所需空间大小。

可选的,分配单元还用于记录在文件中的偏移;系统记录单元还用于记录文件系统模块的配置与状态信息,如硬盘的信息、分区信息、已分配(占用)情况等。

可选的,若文件系统发生掉电重启,获取预写日志并进行解析,根据解析后的预写日志对文件系统进行数据恢复。其中,预写日志可以采用本领域技术人员所知晓的方式进行记录与解析,在此不做限定。掉电重启后,可以在活跃节点单元中读取进行数据读写后的所述待创建文件的修改时间和文件大小,进而可以避免免掉电出现数据不一致。

可选的,元数据存储模块包括数据库,空闲单元包括空闲表,系统记录单元包括系统表,节点单元包括节点表,索引单元包括索引表,活跃节点单元包括活跃节点表,分配单元包括分配表,其中,各个表分别包括表头标识和表尾标识,各个表之间的主键前缀不同。

可选的,元数据存储模块包括但不限于数据库,如leveldb数据库等,上述各单元可以以数据表的形式存在,各数据表间通过KEY前缀进行区分,额外插入[email protected][email protected]~作为表头和表尾用于快速定位。

参见图3-1,图3-1为索引表Index的一种示意图,其包括父身份识别信息pid,名称name,身份识别信息id,类型type;参见图3-2,图3-2为节点表Node的一种示意图,其包括节点身份识别信息id、父身份识别信息pid、创建时间ctime、修改时间mtiem、已使用大小size、待创建文件空间大小allocsize、名称name;参见图3-3,图3-3为活跃节点表Active的一种示意图,包括节点身份识别信息id、修改时间mtiem、已使用大小size、待创建文件空间大小allocsize;参见图3-4,图3-4为空闲表Free的一种示意图,包括空闲区间初始位置blkstart和空闲区间结束位置blkend;参见图3-5,图3-5为分配表Alloc的一种示意图,包括节点身份识别信息id、在文件中的偏移offset、占用初始位置blkstart和占用结束位置blkend;参见图3-6,图3-6为系统记录表SYS的一种示意图,其包括硬盘大小disksize、已分配(占用)情况unisize、标签信息lastblk和系统信息SYS;

在一些实施例中,文件系统管理系统还包括缓存模块,缓存模块用于缓存文件系统的路径和节点信息;

在查询节点信息时,先在缓存模块中逐级匹配路径,若匹配失败,则在元数据存储模块中查找节点信息,并将节点信息缓存入缓存模块;

在更新节点信息时,先更新缓存模块中的节点信息,再将节点信息存储入元数据存储模块;

通过批量操作写入对元数据存储模块进行更新。

图4为缓存模块的一种结构示意图,如图4所示,缓存模块内部包含一颗红黑树Tree和一个LRU链表,红黑树用于通过路径查询节点信息,LRU链表用于对缓存进行老化处理,其中:

插入缓存时将缓存节点TreeNode同时加入红黑树与LRU链表,缓存被访问时更新LRU链表,缓存数量达到上限后释放最老的缓存,缓存被io引用时从LRU链表中移出,使用引用计数进行管理,引用计数为0时重新加入LRU链表。FCache为文件缓存数据、DCache为数据缓存数据,IONode为缓存被io的节点。LRU链表包括若干个ListNode。

在一些实施例中,文件系统管理系统还包括以下至少之一:

获取待创建文件的父目录,若文件系统包括父目录,为待创建目录分配待创建目录节点身份识别信息,并将待创建目录节点身份识别信息分别写入节点单元、索引单元、分配单元;

将待创建文件空间的占用信息写入分配单元;

根据待创建文件空间的占用信息更新空闲单元和/或系统记录单元;

获取待删除目录,若索引单元中待删除目录为空目录,在节点单元与索引单元中删除待删除目录;

获取删除文件的删除信息,删除信息包括删除文件的占用位置标识,将删除文件占用位置标识所对应的占用区间与空闲区间进行合并,并更新空闲单元中的空闲信息和分配单元中的占用信息。

在一些实施例中,文件系统管理系统还包括输入输出模块(io模块),输入输出模块用于对打开的待创建文件的文件句柄进行管理,文件句柄关联节点信息,打开待创建文件后获取待创建文件的待创建文件空间,待创建文件空间包括若干个空闲区间,对待创建文件进行数据读写,并根据待创建文件的文件偏移将各空闲区间分别依次加载到缓存模块中。

在一些实施例中,文件偏移可以采用本领域技术人员所知晓的方式取得。

可选的,io模块对已经打开的文件句柄进行管理。句柄直接关联缓存节点以减少内存使用并共享文件实时状态。打开文件时将分配记录部分加载到内存,读写时通过缓存的分配记录计算读写位置进行数据读写,读写偏移超过缓存记录时从数据库重新加载相关分配记录,避免缓存分配记录占用过多内存。写入数据后更新文件修改时间和大小,写入活跃记录。元数据通过K-V形式存储在leveldb数据库中。通过对元数据以一定方式改写,也可存储在其它关系型数据库中。

待创建文件空间的分配的示例如图5-1、图5-2和图5-3所示,图5-1所示的场景一空闲区间的大小与预分配所需空间大小相等时只删除空闲信息,由图5-1可见,占用空间结束位置为0,预分配所需空间大小为50,节点ID为2,空闲区间为(0,50),经空间分配后,删除空闲信息,此时空闲信息Free为空,新的占用空间结束位置为50,占用空间为(0,50)。图5-2所示的场景二各空闲区间的大小之和超过预分配所需空间大小后删除旧记录并写入剩余记录,由图5-2可见,占用空间结束位置为0,预分配所需空间大小为50,节点ID为2,空闲区间为(0,100),经空间分配后,新的空闲信息为(50,100),新的占用空间结束位置为50,占用空间为(0,50)。图5-3所示的场景三空闲记录查询到达表尾时从表头继续查找。由图5-3可见,占用空间结束位置为75,预分配所需空间大小为50,节点ID为2,空闲区间为(0,50)和(75,100),经空间分配后,新的空闲信息为(25,50),新的占用空间结束位置为25,占用空间为(75,100)和(0,25)两个空闲区间构成。

删除文件后的空间合并的示例如图6-1、图6-2和图6-3所示,图6-1所示的场景一占用信息不与空闲信息相临直接插入空闲信息,由图6-1可见,当空闲信息Free为空时,将占用信息Alloc直接插入空闲信息,删除占用信息。图6-2和图6-3所示的场景二、三分配记录于空闲信息相邻时删除相邻记录写入合并后记录。由图6-2可见,当空闲信息Free中存在与占用信息Alloc相邻的“0”,将空闲信息与占用信息进行合并后,更新空闲信息(0,100),并删除占用信息。由图6-3可见,当空闲信息Free中存在与部分占用信息Alloc相邻的“25”,将空闲信息与占用信息进行合并后,更新空闲信息(0,50)、(75,100),并删除占用信息。

在本实施例中,该系统实质上是设置了多个模块用以执行上述任一实施例中的方法,具体功能和技术效果参照上述实施例一即可,此处不再赘述。

参见图7,图7为另一种文件系统管理系统的结构示意图,该系统包括文件系统模块fs,数据库db,输入输出模块io,缓存模块cache,其中数据库模块用于存储元数据meta,io模块处理数据data。

参见图8,图8为一种典型的嵌入式文件系统场景示意图,如图8所示场景中,主要包含硬盘disk、分区、数据data、缓存cache、IO、文件系统接口fs,对其阐述如下:

硬盘被划分成索引分区、数据分区、备份分区。数据分区以1MiB为单位进行划分。db0的更新通过批量操作形式异步写入到db1进行备份,增加数据库可靠性。完成加载后检查主库与背库的完整性,主库完整的情况下优先使用主库同步备库,反之使用备库同步主库。

参见图9,本发明实施例还提供了一种电子设备600,包括处理器601、存储器602和通信总线603;

通信总线603用于将处理器601和存储器连接602;

处理器601用于执行存储器602中存储的计算机程序,以实现如上述实施例一中的一个或多个所述的方法。

本发明实施例还提供了一种计算机可读存储介质,其特征在于,其上存储有计算机程序,

计算机程序用于使计算机执行如上述实施例一中的任一项所述的方法。

本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例的实施例一所包含步骤的指令(instructions)。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:文件管理方法、管理平台及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!