CN104951569A - 文件系统以及采用该文件系统的文件管理方法 - Google Patents

文件系统以及采用该文件系统的文件管理方法 Download PDF

Info

Publication number
CN104951569A
CN104951569A CN201510430178.4A CN201510430178A CN104951569A CN 104951569 A CN104951569 A CN 104951569A CN 201510430178 A CN201510430178 A CN 201510430178A CN 104951569 A CN104951569 A CN 104951569A
Authority
CN
China
Prior art keywords
file
cluster
released
linked list
recyclable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510430178.4A
Other languages
English (en)
Other versions
CN104951569B (zh
Inventor
操飞
戴荣
阴陶
林峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHENGDU FOURIER ELECTRONIC TECHNOLOGY Co Ltd
Original Assignee
CHENGDU FOURIER ELECTRONIC TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHENGDU FOURIER ELECTRONIC TECHNOLOGY Co Ltd filed Critical CHENGDU FOURIER ELECTRONIC TECHNOLOGY Co Ltd
Priority to CN201510430178.4A priority Critical patent/CN104951569B/zh
Publication of CN104951569A publication Critical patent/CN104951569A/zh
Application granted granted Critical
Publication of CN104951569B publication Critical patent/CN104951569B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/41Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种文件系统以及采用该文件系统的文件管理方法,所述文件系统包括文件索引表、F个文件属性表、释放簇集链表和释放簇集索引表。文件索引表适于指示各个文件属性表是否可分配;文件属性表包括文件信息表和簇集流列表,文件信息表适于存储文件的相关信息,簇集流列表适于存储文件占用的每个簇集的起始簇和文件占用的每个簇集的大小;释放簇集链表包括P个链表单元,链表单元适于存储当前释放簇集的起始簇、当前释放簇集的大小、上一释放簇集的位置以及下一释放簇集的位置;释放簇集索引表适于指示各个链表单元是否可分配。本发明提供的文件系统以及采用该文件系统的文件管理方法,应用于大容量记录场合中文件管理区间小、能够保证数据读写带宽。

Description

文件系统以及采用该文件系统的文件管理方法
技术领域
本发明涉及计算机文件管理技术领域,特别涉及一种文件系统以及采用该文件系统的文件管理方法。
背景技术
文件系统是操作系统用于明确存储设备或分区上的文件管理方法和数据结构,即在存储设备上组织文件的方法。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时删除文件等。
传统的文件系统(如FAT文件系统、NTFS文件系统)在一般存储设备(例如磁盘)中被经常使用,这些文件系统具有系统完善、兼容性好的优点。而大容量记录场合大多采用固态存储器实现,容量一般都以太字节(TB)为单位,且几乎都具有均匀的读写带宽需求。若在此种大容量记录场合采用传统的FAT文件系统或者NTFS文件系统,存在两个问题:
一是系统保留的文件管理区间很大。FAT文件系统需要构建簇链表,簇链表占用的空间大小为总容量÷簇大小×4字节(B),如对4TB容量的记录仪,簇大小设置为1兆字节(MB),则还需要16MB的簇链表区域。NTFS文件系统虽然采用动态的文件组织格式,但系统还是预保留了总容量的12.5%作为文件记录表等系统管理空间,且NTFS文件系统采用“日志式”的管理方式,需要记录详细的读写操作,并将这些读写操作频繁地存入固态存储器,这样会减少固态存储器的寿命。
二是数据读写带宽越来越低。随着读写、删除次数变多,单个文件离散化程度越来越高,系统需要遍历查找空白簇,并频繁的跳动簇地址进行读写,这些操作都会降低数据读写的速度,导致数据读写带宽不可保证。
发明内容
本发明所要解决的是现有的文件系统应用于大容量记录场合中文件管理区间大、数据读写带宽不可保证的问题。
为解决上述问题,本发明提供一种文件系统,包括:文件索引表、F个文件属性表、释放簇集链表以及释放簇集索引表,其中,F为文件数量;所述文件索引表适于指示各个文件属性表是否可分配;所述文件属性表包括文件信息表和簇集流列表,所述文件信息表适于存储文件的相关信息,所述簇集流列表适于存储文件占用的每个簇集的起始簇和文件占用的每个簇集的大小,所述簇集为连续簇的集合;所述释放簇集链表包括P个链表单元,所述链表单元适于存储当前释放簇集的起始簇、当前释放簇集的大小、上一释放簇集的位置以及下一释放簇集的位置,其中,P为不大于R+F的正整数,R为可回收簇集的最大数量,所述可回收簇集为连续簇大小不小于预设阈值的释放簇集;所述释放簇集索引表适于指示各个链表单元是否可分配。
与FAT文件系统和NTFS文件系统不同,本发明提供的文件系统通过设置释放簇集链表存放释放簇集的起始簇和释放簇集的大小。FAT文件系统通过构建簇链表指示可用的簇,对已使用的簇和未使用的簇都会进行记录,且记录是以单个簇的形式进行,因而会占用很大的管理区间;NTFS文件系统预保留了总容量的12.5%作为文件记录表,占用的管理区间也很大。而本发明提供的文件系统采用释放簇集链表指示可用的簇,不需要对已使用的簇进行记录,且构成所述释放簇集链表的每个链表单元记录的是释放簇集,簇集是连续簇的集合,因而所述释放簇集链表占用的空间非常小,整个管理区间也就大大减小了。由于所述释放簇集链表占用的空间非常小,在文件写入、读取的过程中,遍历所述释放簇集链表获得可回收簇集的地址范围消耗的时间减少,提高了文件的读写速度,数据读写带宽提高。
可选的,所述文件索引表采用位表格式存储二进制数据,第f位二进制数据对应指示第f个文件属性表是否可分配,1≤f≤F,f为整数。
可选的,所述文件的相关信息包括文件属性、文件大小、文件起始簇、文件创立时间、文件修改时间以及文件名。
可选的,所述簇集流列表包括N+1个连续放置的簇集流单元,N为文件占用的簇集数量;第n个簇集流单元对应存储文件占用的第n个簇集的起始簇和文件占用的第n个簇集的大小,1≤n≤N,n为整数;第N+1个簇集流单元适于存储标记所述簇集流列表结束的符号。
可选的,所述簇集流单元占用8个字节,第N+1个簇集流单元占用的8个字节全部存储二进制数据0。
可选的,在文件删除后文件占用的前N-1个簇集为可回收簇集。
可选的,所述释放簇集索引表采用位表格式存储二进制数据,第a位二进制数据对应指示第a个链表单元是否可分配,1≤a≤P,a为整数。
可选的,所述文件系统还包括:可回收簇集加速访问表,所述可回收簇集加速访问表适于存储所述释放簇集链表中存放可回收簇集的链表单元的位置。通过设置所述可回收簇集加速访问表,在文件写入、读取的过程中,不需要遍历所述释放簇集链表,只需从所述可回收簇集加速访问表中取出存放可回收簇集的链表单元的位置,从而获得可回收簇集的地址范围,进一步提高了文件的读写速度。
基于上述文件系统,本发明还提供一种采用上述文件系统的文件管理方法,包括:新建文件、写入文件、保存文件以及删除文件;其中,
所述新建文件包括:步骤S11,查找所述文件索引表以获得可分配的文件属性表;步骤S12,将文件的相关信息写入所述可分配的文件属性表中的文件信息表;步骤S13,更新所述文件索引表以将所述可分配的文件属性表标记为不可分配;
所述写入文件包括:步骤S21,遍历所述释放簇集链表以获得可回收簇集;步骤S22,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或者所述可回收簇集用完;若所述可回收簇集用完,执行步骤S23,释放所述可回收簇集对应的链表单元,更新所述释放簇集索引表以将所述可回收簇集对应的链表单元标记为可分配,将所述可回收簇集的起始簇和当前文件的可回收簇集的大小存入所述簇集流列表,并重复执行步骤S21~步骤S22;若收到保存文件指令,执行步骤S24,保存文件;
所述保存文件包括:步骤S31,更新写入文件的最后一个释放簇集对应的链表单元;步骤S32,标记当前文件的簇集流列表结束;步骤S33,更新所述文件属性表;
所述删除文件包括:步骤S41,根据所述文件索引表获得待删除文件的文件属性表;步骤S42,读取所述待删除文件对应的簇集流列表;步骤S43,将所述待删除文件占用的簇集逐个释放至所述释放簇集链表中,并更新所述释放簇集索引表。
通过遍历所述释放簇集链表获得可回收簇集以写入文件,由于所述可回收簇集为连续簇大小不小于预设阈值的释放簇集,因而文件占用的不连续簇更少,减小了文件离散化程度,避免频繁地跳动簇地址进行读写,提高了文件的读写速度,保证数据的读写带宽。
基于上述文件系统,本发明还提供另一种采用上述文件系统的文件管理方法,包括:新建文件、写入文件、保存文件以及删除文件;其中,
所述新建文件包括:步骤S51,查找所述文件索引表以获得可分配的文件属性表;步骤S52,将文件的相关信息写入所述可分配的文件属性表中的文件信息表;步骤S53,更新所述文件索引表以将所述可分配的文件属性表标记为不可分配;
所述写入文件包括:步骤S61,读取所述可回收簇集加速访问表以获得可回收簇集;步骤S62,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或者所述可回收簇集用完;若所述可回收簇集用完,执行步骤S63,释放所述可回收簇集对应的链表单元,更新所述释放簇集索引表以将所述可回收簇集对应的链表单元标记为可分配,将所述可回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并重复执行步骤S61~步骤S62;若收到保存文件指令,执行步骤S64,保存文件;
所述保存文件包括:步骤S71,更新写入文件的最后一个释放簇集对应的链表单元和所述可回收簇集加速访问表;步骤S72,标记当前文件的簇集流列表结束;步骤S73,更新所述文件属性表;
所述删除文件包括:步骤S81,根据所述文件索引表获得待删除文件的文件属性表;步骤S82,读取所述待删除文件对应的簇集流列表;步骤S83,将所述待删除文件占用的簇集逐个释放至所述释放簇集链表中,并更新所述释放簇集索引表;步骤S84,遍历所述释放簇集链表,将存放可回收簇集的链表单元的位置存入所述可回收簇集加速访问表。
通过读取所述可回收簇集加速访问表获得存放可回收簇集的链表单元的位置,进而获得可回收簇集的地址范围,避免遍历所述释放簇集链表,进一步提高了文件的读写速度。
与现有技术相比,本发明具有以下优点:
本发明提供的文件系统采用释放簇集链表指示可用的簇,不需要对已经使用的簇进行记录,且构成所述释放簇集链表的每个链表单元记录的是释放簇集,簇集是连续簇的集合,因而所述释放簇集链表占用的空间非常小,减小了整个管理区间。
本发明提供的文件管理方法,采用可回收簇集写入文件,由于所述可回收簇集为连续簇大小不小于预设阈值的释放簇集,因而文件占用的不连续簇更少,减小了文件离散化程度,避免频繁地跳动簇地址进行读写,提高了文件的读写速度,保证数据的读写带宽。并且,由于所述释放簇集链表占用的空间非常小,在文件写入、读取的过程中,遍历所述释放簇集链表获得可回收簇集的地址范围消耗的时间减少,提高了文件的读写速度。
进一步,通过设置可回收簇集加速访问表,在文件写入、读取的过程中,不需要遍历所述释放簇集链表,只需从所述可回收簇集加速访问表中取出存放可回收簇集的链表单元的位置,从而获得可回收簇集的地址范围,进一步提高了文件的读写速度,提高了数据读写带宽。
附图说明
图1是本发明一种实施例的文件系统的结构示意图;
图2是本发明实施例的文件索引表的示意图;
图3是本发明实施例的文件属性表的示意图;
图4是本发明实施例的簇集流单元的示意图;
图5是本发明实施例的释放簇集链表的示意图;
图6是本发明实施例的释放簇集索引表的示意图;
图7是本发明另一种实施例的文件系统的结构示意图;
图8是本发明实施例的可回收簇集加速访问表的示意图。
具体实施方式
FAT文件系统和NTFS文件系统都是通过遍历查找空白簇的方式来写入文件,对空白簇是否连续没有要求,即只要查找到空白簇就写入文件,即使只有一个孤立的空白簇。将FAT文件系统和NTFS文件系统应用于大容量记录场合中时,随着读写、删除次数变多,单个文件离散化程度必然越来越高。并且,文件管理区间也非常大。
本发明提供一种文件系统以及采用该文件系统的文件管理方法,采用连续簇的集合—簇集来记录文件存储的区域。簇集大小不固定,大到整个存储设备只有一个簇集,小到为单个簇。根据目前大部分存储设备特性,在顺序写入一定数据量的情况下,存取的速度较快。因此,设置连续簇大小不小于预设阈值的释放簇集来存储文件,即可保证最低带宽需求。在本发明实施例中,将连续簇大小不小于预设阈值的释放簇集定义为可回收簇集。这样,存储的结构即为:存储的粒度还是为簇,但是用来写入文件的释放簇集只能为可回收簇集。当单个文件删除时,连续簇大小小于预设阈值的释放簇集记为碎片,在多个首尾相接的碎片联合区域形成连续簇大小不小于预设阈值后,这些首尾相接的碎片联合区域形成新的可回收簇集。
下面结合实施例及附图,对本发明作进一步地的详细说明,但本发明的实施方式不限于此。
图1是本发明一种实施例的文件系统的结构示意图,文件系统1包括文件索引表11、F个文件属性表、释放簇集链表13以及释放簇集索引表14。其中,F为文件数量,所述文件数量F是根据存储设备的总容量预先设置好的,每个文件对应有一个文件属性表。由于每个文件属性表的结构相同,在本实施例中仅以文件属性表12为例进行说明。
具体地,所述文件索引表11适于指示各个文件属性表是否可分配。在本实施例中,所述文件索引表11采用位表格式存储二进制数据,第f位二进制数据对应指示第f个文件属性表是否可分配,1≤f≤F,f为整数。图2是本实施例的所述文件索引表11的示意图,第f位二进制数据0对应指示第f个文件属性表未使用,是可分配的;第f位二进制数据1对应指示第f个文件属性表已使用,是不可分配的。例如,第2位二进制数据0对应指示第2个文件属性表未使用,是可分配的;第6位二进制数据1对应指示第6个文件属性表已使用,是不可分配的。当然,也可以采用第f位二进制数据1对应指示第f个文件属性表可分配、采用第f位二进制数据0对应指示第f个文件属性表不可分配,本发明对此不作限定。
图3是本发明实施例的所述文件属性表12的示意图,所述文件属性表12包括文件信息表30和簇集流列表。所述文件信息表30适于存储文件的相关信息,所述文件的相关信息包括文件属性、文件大小、文件起始簇、文件创立时间、文件修改时间以及文件名等信息。表一所示为所述文件信息表30的一种示例格式,其大小为256字节。
表一
如前所述,本发明采用连续簇的集合—簇集来记录文件存储的区域,每个文件占用至少一个簇集,所述簇集流列表适于存储文件占用的每个簇集的起始簇和文件占用的每个簇集的大小。具体地,所述簇集流列表包括N+1个连续放置的簇集流单元,N为文件占用的簇集数量。第n个簇集流单元对应存储文件占用的第n个簇集的起始簇和文件占用的第n个簇集的大小,1≤n≤N,n为整数;第N+1个簇集流单元适于存储标记所述簇集流列表结束的符号,即最后一个簇集流单元适于存储标记所述簇集流列表结束的符号。
以文件占用两个簇集为例,图4是本发明实施例的所述簇集流列表的示意图。所述簇集流列表包括3个簇集流单元,每个簇集流单元占用8个字节。第1个簇集流单元存储第1个簇集的起始簇(亦即文件的起始簇)0和第1个簇集的大小5000,第2个簇集流单元存储第2个簇集的起始簇6000和第2个簇集的大小7000,最后一个簇集流单元占用的8个字节全部存储二进制数据0,标记所述簇集流列表结束。通过所述簇集流列表可知,文件的起始簇为0,第1个簇集范围为0~4999,紧接着第2个簇集范围为6000~12999,12999即是文件的结束簇。
文件删除后,其原本占用的簇集空了出来,被称为释放簇集,释放簇集的位置由所述释放簇集链表13存储。所述释放簇集链表13包括P个链表单元,每个链表单元对应存放一个释放簇集。所述释放簇集可分为两类:一类是连续簇大小不小于预设阈值的释放簇集,即可回收簇集,在文件删除后文件占用的前N-1个簇集为可回收簇集;另一类是连续簇大小小于预设阈值的释放簇集,即碎片。为方便描述,用R表示所述可回收簇集的最大数量,所述可回收簇集的最大数量R为存储设备的总容量除以所述预设阈值。而碎片的最大数量为所述文件数量F,即极限情况下每个文件占用的最后一个簇集释放后都为碎片,因此,所述链表单元的数量P为不大于R+F的正整数。需要说明的是,所述预设阈值根据实际需求进行设置。
所述链表单元适于存储当前释放簇集的起始簇、当前释放簇集的大小、上一释放簇集的位置以及下一释放簇集的位置。所述释放簇集链表13采用链表格式存储,这样便于按实际簇空间分布关系来插入、删除、合并释放簇集。图5是本发明实施例的所述释放簇集链表13的示意图,所述释放簇集链表13包括5个链表单元,每个链表单元采用12个字节存储。第一个4字节存储当前释放簇集的起始簇,第二个4字节存储当前释放簇集的大小,紧接着的两字节存储上一释放簇集的位置,最后的两字节存储下一释放簇集的位置。第一个链表单元存储的上一释放簇集的位置为0xFFFF,表示链表头;最后一个链表单元存储的下一释放簇集的位置为0xFFFF,表示链表结束。以所述预设阈值为1GB、每个簇的大小为1MB为例,第1个链表单元的连续簇大小为300M,第2个链表单元的连续簇大小为600M,第3个链表单元的连续簇大小为2000M,第4个链表单元的连续簇大小为300M,第5个链表单元的连续簇大小为300M,因此仅第3个链表单元对应的释放簇集为可回收簇集,其余链表单元对应的释放簇集为碎片。
所述释放簇集链表13需要和所述释放簇集索引表14联合使用,以便在有新的释放簇集不能合并需要插入时,能够迅速查找到可利用的链表单元来插入新的释放簇集。所述释放簇集索引表14适于指示各个链表单元是否可分配。在本实施例中,所述释放簇集索引表14采用位表格式存储二进制数据,第a位二进制数据对应指示第a个链表单元是否可分配,1≤a≤P,a为整数。图6是本实施例的所述释放簇集索引表14的示意图,第a位二进制数据0对应指示第a个链表单元可分配;第a位二进制数据1对应指示第a个链表单元不可分配。例如,第2位二进制数据0对应指示第2个链表单元可使用,是可分配的;第6位二进制数据1对应指示第6个链表单元已使用,是不可分配的。当然,也可以采用第a位二进制数据1对应指示第a个链表单元可分配、采用第a位二进制数据0对应指示第a个链表单元不可分配,本发明对此不作限定。
基于图1所示的文件系统,本发明实施例提供一种采用该文件系统的文件管理方法。所述文件管理方法包括新建文件、写入文件、保存文件以及删除文件。
所述新建文件包括:
步骤S11,查找所述文件索引表11以获得可分配的文件属性表。具体地,查找图2所示的位表,获得一个值为0的位,该位对应的文件属性表即为可用的文件属性表。在本实施例中,若获得值为0的为第2位,则确定第2个文件属性表为可用的文件属性表。
步骤S12,将文件的相关信息写入所述可分配的文件属性表中的文件信息表。具体地,将文件属性、文件名等相关信息写入第2个文件属性表的文件信息表。
步骤S13,更新所述文件索引表11以将所述可分配的文件属性表标记为不可分配。将所述文件索引表11的第2位置1,以表示第2个文件属性表已使用。
所述写入文件包括:
步骤S21,遍历所述释放簇集链表13以获得可回收簇集。仍以图5所示的所述释放簇集链表13为例,第3个链表单元存放的释放簇集为可回收簇集,获得可回收簇集的地址范围为5000~6999。
步骤S22,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或者所述可回收簇集用完。
若所述可回收簇集用完,执行步骤S23,释放所述可回收簇集对应的链表单元,更新所述释放簇集索引表14以将所述可回收簇集对应的链表单元标记为可分配,将所述可回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并重复执行步骤S21~步骤S22。具体地,所述可回收簇集对应第3个链表单元,将所述释放簇集索引表14的第3位置0,以表示第3个链表单元可以使用。并且,将所述可回收簇集的起始簇5000和所述可回收簇集的大小2000存入当前文件对应的簇集流列表。
若收到保存文件指令,执行步骤S24,保存文件。
所述保存文件包括:
步骤S31,更新写入文件的最后一个释放簇集对应的链表单元。具体地,将最后一个释放簇集的剩余情况回写至其对应的链表单元。仍以图5中的第3个链表单元存放的释放簇集为例,若该释放簇集被文件占用了1000个簇,则更新第3个链表单元存储当前释放簇集的起始簇为6000、更新第3个链表单元存储当前释放簇集的大小为1000。
步骤S32,标记当前文件的簇集流列表结束。在本实施例中,将当前文件的最后一个簇集流单元全写为二进制数据0。
步骤S33,更新所述文件属性表。具体地,将文件大小、文件起始簇、文件创立时间、文件修改时间等信息写入所述文件信息表。
所述删除文件包括:
步骤S41,根据所述文件索引表11获得待删除文件的文件属性表。根据所述待删除文件的文件属性表,可以获得所述待删除文件对应的簇集流列表。
步骤S42,读取所述待删除文件对应的簇集流列表。
步骤S43,将所述待删除文件占用的簇集逐个释放至所述释放簇集链表13中,并更新所述释放簇集索引表14。具体地,依次读取待删除文件对应的簇集流列表,查找所述释放簇集链表13,找到待插入释放簇集的前一个释放簇集和后一个释放簇集。通过比较前一个释放簇集的结束簇与待插入释放簇集的起始簇之间的关系以及后一个释放簇集的起始簇和待插入释放簇集的结束簇之间的关系,可以决定待插入释放簇集是直接合并到已有的链表单元中还是新占用一个链表单元。待插入释放簇集的几种可能处理方式如下:
查找到待插入释放簇集的起始簇与前一个释放簇集的结束簇以及待插入释放簇集的结束簇和后一个释放簇集的起始簇均没有相接关系,搜索所述释放簇集索引表14,找到可用的链表单元,存入待插入释放簇集,并将待插入释放簇集对应的链表单元作为新元素插入到链表中,并标记所述释放簇集索引表14。
查找到待插入释放簇集的起始簇与前一个释放簇集的结束簇相连,那么将待插入释放簇集合并到前一个释放簇集对应的链表单元中。
查找到待插入释放簇集的结束簇和后一个释放簇集的起始簇相连,那么将待插入释放簇集合并到后一个释放簇集对应的链表单元中。
查找到待插入释放簇集的起始簇与前一个释放簇集的结束簇相连,且待插入释放簇集的结束簇和后一个释放簇集的起始簇相连,那么将待插入释放簇集合并到前一个释放簇集对应的链表单元中,并释放后一个释放簇集对应的链表单元,并标记所述释放簇集索引表14。
本实施例提供的文件系统及采用该文件系统的文件管理方法,采用所述释放簇集链表13指示可用的簇,不需要对已使用的簇进行记录,且构成所述释放簇集链表13的每个链表单元记录的是释放簇集,因而所述释放簇集链表13占用的空间非常小,整个管理区间也就大大减小了。以存储设备的总容量为2TB、所述文件数量F为10000个、所述预设阈值为1GB为例,所述释放簇集链表13的容量最大仅为(R+F)*12B,即(2*1024+10000)*12B=141.1875KB。
并且,由于所述释放簇集链表13占用的空间非常小,在文件写入、读取的过程中,遍历所述释放簇集链表13获得可回收簇集的地址范围消耗的时间减少,提高了文件的读写速度,数据读写带宽提高。
图7是本发明另一种实施例的文件系统的结构示意图。与图1对应的实施例相比,本实施例的文件系统1还包括可回收簇集加速访问表15,所述可回收簇集加速访问表15适于存储所述释放簇集链表13中存放可回收簇集的链表单元的位置。在本实施例中,所述可回收簇集加速访问表15采用循环队列结构,每个单元采用两个字节存储一个存放可回收簇集的链表单元的位置,因而空间大小固定为所述可回收簇集的最大数量R*2B。图8是本实施例的所述可回收簇集加速访问表15的示意图,所述释放簇集链表13每增加一个可回收簇集,图8所示的队列写入指针加1(即字节偏移2B);每利用完一个可回收簇集,释放该可回收簇集对应的链表单元,即图8所示的队列读取指针加1。
基于图7所示的文件系统,本发明实施例还提供一种采用该文件系统的文件管理方法。所述文件管理方法包括新建文件、写入文件、保存文件以及删除文件。
所述新建文件包括:
步骤S51,查找所述文件索引表11以获得可分配的文件属性表。
步骤S52,将文件的相关信息写入所述可分配的文件属性表中的文件信息表。
步骤S53,更新所述文件索引表11以将所述可分配的文件属性表标记为不可分配。
步骤S51~步骤S53与步骤S11~步骤S13类似,在此不再赘述。
所述写入文件包括:
步骤S61,读取所述可回收簇集加速访问表15以获得可回收簇集。具体地,读取所述可回收簇集加速访问表15,获得存放可回收簇集的链表单元的位置,继而获得可回收簇集的地址范围。
步骤S62,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或者所述可回收簇集用完。
若所述可回收簇集用完,执行步骤S63,释放所述可回收簇集对应的链表单元,更新所述释放簇集索引表14以将所述可回收簇集对应的链表单元标记为可分配,将所述可回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并重复执行步骤S61~步骤S62。
若收到保存文件指令,执行步骤S64,保存文件。
步骤S62~步骤S64与步骤S22~步骤S24类似,在此不再赘述。
所述保存文件包括:
步骤S71,更新写入文件的最后一个释放簇集对应的链表单元和所述可回收簇集加速访问表15。具体地,将最后一个释放簇集的剩余情况回写至其对应的链表单元。若最后一个释放簇集的剩余空间仍为可回收簇集,则不对所述可回收簇集加速访问表15做任何处理;若最后一个释放簇集的剩余空间为碎片,则将其从所述可回收簇集加速访问表15中删除,即图8所示的队列读取指针加1。
步骤S72,标记当前文件的簇集流列表结束。
步骤S73,更新所述文件属性表。
步骤S72~步骤S73与步骤S32~步骤S33类似,在此不再赘述。
所述删除文件包括:
步骤S81,根据所述文件索引表11获得待删除文件的文件属性表。
步骤S82,读取所述待删除文件对应的簇集流列表。
步骤S83,将所述待删除文件占用的簇集逐个释放至所述释放簇集链表13中,并更新所述释放簇集索引表14。步骤S81~步骤S83与步骤S41~步骤S43类似,在此不再赘述。
步骤S84,遍历所述释放簇集链表13,将存放可回收簇集的链表单元的位置存入所述可回收簇集加速访问表15。具体地,所述释放簇集链表13每增加一个可回收簇集,图8所示的队列写入指针加1。
本实施例提供的文件系统及采用该文件系统的文件管理方法,通过设置所述可回收簇集加速访问表15,在文件写入、读取的过程中,不需要遍历所述释放簇集链表13,只需从所述可回收簇集加速访问表15中取出存放可回收簇集的链表单元的位置,在所述释放簇集链表13中找到相应的链表单元,从而获得可回收簇集的地址范围,进一步提高了文件的读写速度,提高了数据读写带宽。
为验证本发明实施例的文件系统应用于大容量记录场合的效果,将图7对应的实施例的文件系统应用于eMMC的大容量阵列存储上。该存储阵列采用32片eMMC流水操作,单片eMMC芯片具有连续写入速度达40MB/s,但是离散4kB写入速度仅1200IOPS的特性。实际测试每片每次连续写入长度若小于50MB,不能达到平均40MB/s的速度,而当单片连续读写长度达到100MB时,完全能够保证达到该平均速度,从而保证系统速度可达1.2GB/s以上。
由于eMMC芯片具有离散读写时系统读写速度严重下降的特性,为此采用图7对应的实施例的文件系统。eMMC大容量阵列采用2TB容量,簇单位为1MB,所述预设阈值为3.2GB,每片eMMC连续读写100MB,所述文件数量F为2048个。所述释放簇集链表13的实际空间小于36KB,可存在FRAM等非易失存储器中,测试系统能够稳定存储速度为1.2GB/s的数据源。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (10)

1.一种文件系统,其特征在于,包括:文件索引表、F个文件属性表、释放簇集链表以及释放簇集索引表,其中,F为文件数量;
所述文件索引表适于指示各个文件属性表是否可分配;
所述文件属性表包括文件信息表和簇集流列表,所述文件信息表适于存储文件的相关信息,所述簇集流列表适于存储文件占用的每个簇集的起始簇和文件占用的每个簇集的大小,所述簇集为连续簇的集合;
所述释放簇集链表包括P个链表单元,所述链表单元适于存储当前释放簇集的起始簇、当前释放簇集的大小、上一释放簇集的位置以及下一释放簇集的位置,其中,P为不大于R+F的正整数,R为可回收簇集的最大数量,所述可回收簇集为连续簇大小不小于预设阈值的释放簇集;
所述释放簇集索引表适于指示各个链表单元是否可分配。
2.根据权利要求1所述的文件系统,其特征在于,所述文件索引表采用位表格式存储二进制数据,第f位二进制数据对应指示第f个文件属性表是否可分配,1≤f≤F,f为整数。
3.根据权利要求1所述的文件系统,其特征在于,所述文件的相关信息包括文件属性、文件大小、文件起始簇、文件创立时间、文件修改时间以及文件名。
4.根据权利要求1所述的文件系统,其特征在于,所述簇集流列表包括N+1个连续放置的簇集流单元,N为文件占用的簇集数量;
第n个簇集流单元对应存储文件占用的第n个簇集的起始簇和文件占用的第n个簇集的大小,1≤n≤N,n为整数;
第N+1个簇集流单元适于存储标记所述簇集流列表结束的符号。
5.根据权利要求4所述的文件系统,其特征在于,所述簇集流单元占用8个字节,第N+1个簇集流单元占用的8个字节全部存储二进制数据0。
6.根据权利要求4所述的文件系统,其特征在于,在文件删除后文件占用的前N-1个簇集为可回收簇集。
7.根据权利要求1所述的文件系统,其特征在于,所述释放簇集索引表采用位表格式存储二进制数据,第a位二进制数据对应指示第a个链表单元是否可分配,1≤a≤P,a为整数。
8.根据权利要求1至7任一项所述的文件系统,其特征在于,还包括:可回收簇集加速访问表,所述可回收簇集加速访问表适于存储所述释放簇集链表中存放可回收簇集的链表单元的位置。
9.一种采用权利要求1至7任一项所述的文件系统的文件管理方法,其特征在于,包括新建文件、写入文件、保存文件以及删除文件;其中,
所述新建文件包括:
步骤S11,查找所述文件索引表以获得可分配的文件属性表;
步骤S12,将文件的相关信息写入所述可分配的文件属性表中的文件信息表;
步骤S13,更新所述文件索引表以将所述可分配的文件属性表标记为不可分配;
所述写入文件包括:
步骤S21,遍历所述释放簇集链表以获得可回收簇集;
步骤S22,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或者所述可回收簇集用完;
若所述可回收簇集用完,执行步骤S23,释放所述可回收簇集对应的链表单元,更新所述释放簇集索引表以将所述可回收簇集对应的链表单元标记为可分配,将所述可回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并重复执行步骤S21~步骤S22;
若收到保存文件指令,执行步骤S24,保存文件;
所述保存文件包括:
步骤S31,更新写入文件的最后一个释放簇集对应的链表单元;
步骤S32,标记当前文件的簇集流列表结束;
步骤S33,更新所述文件属性表;
所述删除文件包括:
步骤S41,根据所述文件索引表获得待删除文件的文件属性表;
步骤S42,读取所述待删除文件对应的簇集流列表;
步骤S43,将所述待删除文件占用的簇集逐个释放至所述释放簇集链表中,并更新所述释放簇集索引表。
10.一种采用权利要求8所述的文件系统的文件管理方法,其特征在于,包括新建文件、写入文件、保存文件以及删除文件;
所述新建文件包括:
步骤S51,查找所述文件索引表以获得可分配的文件属性表;
步骤S52,将文件的相关信息写入所述可分配的文件属性表中的文件信息表;
步骤S53,更新所述文件索引表以将所述可分配的文件属性表标记为不可分配;
所述写入文件包括:
步骤S61,读取所述可回收簇集加速访问表以获得可回收簇集;
步骤S62,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或者所述可回收簇集用完;
若所述可回收簇集用完,执行步骤S63,释放所述可回收簇集对应的链表单元,更新所述释放簇集索引表以将所述可回收簇集对应的链表单元标记为可分配,将所述可回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并重复执行步骤S61~步骤S62;
若收到保存文件指令,执行步骤S64,保存文件;
所述保存文件包括:
步骤S71,更新写入文件的最后一个释放簇集对应的链表单元和所述可回收簇集加速访问表;
步骤S72,标记当前文件的簇集流列表结束;
步骤S73,更新所述文件属性表;
所述删除文件包括:
步骤S81,根据所述文件索引表获得待删除文件的文件属性表;
步骤S82,读取所述待删除文件对应的簇集流列表;
步骤S83,将所述待删除文件占用的簇集逐个释放至所述释放簇集链表中,并更新所述释放簇集索引表;
步骤S84,遍历所述释放簇集链表,将存放可回收簇集的链表单元的位置存入所述可回收簇集加速访问表。
CN201510430178.4A 2015-07-21 2015-07-21 文件系统以及采用该文件系统的文件管理方法 Active CN104951569B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510430178.4A CN104951569B (zh) 2015-07-21 2015-07-21 文件系统以及采用该文件系统的文件管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510430178.4A CN104951569B (zh) 2015-07-21 2015-07-21 文件系统以及采用该文件系统的文件管理方法

Publications (2)

Publication Number Publication Date
CN104951569A true CN104951569A (zh) 2015-09-30
CN104951569B CN104951569B (zh) 2018-09-25

Family

ID=54166227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510430178.4A Active CN104951569B (zh) 2015-07-21 2015-07-21 文件系统以及采用该文件系统的文件管理方法

Country Status (1)

Country Link
CN (1) CN104951569B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188084A (zh) * 2019-05-16 2019-08-30 浙江讯盟科技有限公司 一种分布式文件存储系统及文件存储方法
CN111427513A (zh) * 2020-03-25 2020-07-17 上海威固信息技术股份有限公司 一种提高高速信号采集系统存储性能的方法
CN113722271A (zh) * 2021-07-20 2021-11-30 湖南艾科诺维科技有限公司 用于数据采集回放的文件管理方法、系统及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090012929A1 (en) * 2002-06-10 2009-01-08 Swan Paul R Seek minimized recoverable streaming file system
CN101441634A (zh) * 2007-11-19 2009-05-27 凤凰微电子(中国)有限公司 适用于智能卡应用环境的嵌入式文件系统
CN103092849A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 文件系统簇管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090012929A1 (en) * 2002-06-10 2009-01-08 Swan Paul R Seek minimized recoverable streaming file system
CN101441634A (zh) * 2007-11-19 2009-05-27 凤凰微电子(中国)有限公司 适用于智能卡应用环境的嵌入式文件系统
CN103092849A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 文件系统簇管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
汤小丹 等: "《计算机操作系统》", 31 May 2007, 西安电子科技大学出版社 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188084A (zh) * 2019-05-16 2019-08-30 浙江讯盟科技有限公司 一种分布式文件存储系统及文件存储方法
CN110188084B (zh) * 2019-05-16 2021-10-15 浙江讯盟科技有限公司 一种分布式文件存储系统及文件存储方法
CN111427513A (zh) * 2020-03-25 2020-07-17 上海威固信息技术股份有限公司 一种提高高速信号采集系统存储性能的方法
CN111427513B (zh) * 2020-03-25 2023-02-28 上海威固信息技术股份有限公司 一种提高高速信号采集系统存储性能的方法
CN113722271A (zh) * 2021-07-20 2021-11-30 湖南艾科诺维科技有限公司 用于数据采集回放的文件管理方法、系统及介质
CN113722271B (zh) * 2021-07-20 2023-11-21 湖南艾科诺维科技有限公司 用于数据采集回放的文件管理方法、系统及介质

Also Published As

Publication number Publication date
CN104951569B (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
JP5129156B2 (ja) アクセス装置、および、ライトワンス記録システム
CN107239526B (zh) 文件系统实现方法、碎片整理方法、操作位置定位方法
US9229860B2 (en) Storage system
JP2007200333A (ja) オブジェクト・ベースのデータ記憶装置
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
CN108628542B (zh) 一种文件合并方法及控制器
US10976946B2 (en) Method and computer system for managing blocks
US11853566B2 (en) Management method and system for address space of low delay file system and medium
US10268717B2 (en) System and method for reading file blocks
CN102169460A (zh) 变长数据管理方法及装置
CN111143285A (zh) 一种小文件存储文件系统以及小文件处理方法
CN104951569B (zh) 文件系统以及采用该文件系统的文件管理方法
CN104133640B (zh) 从休眠快速恢复
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
US9542402B2 (en) Computing devices with multi-layer file systems
CN107430546B (zh) 一种文件更新方法及存储设备
CN103530067A (zh) 一种数据操作的方法和设备
US10528263B2 (en) Data storage device and data maintenance method thereof
KR20020081696A (ko) 단편화를 감소시키기 위한 방법 및 장치
EP2381354A2 (en) Data recording device
CN105630406A (zh) 利用mram作为编辑缓存区的存储系统及编辑缓存方法
US11086798B2 (en) Method and computer program product and apparatus for controlling data access of a flash memory device
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
CN106033454B (zh) 虚拟文件系统的格式化方法、处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant