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

文档序号:9235545阅读:694来源:国知局
文件系统以及采用该文件系统的文件管理方法
【技术领域】
[0001] 本发明设及计算机文件管理技术领域,特别设及一种文件系统W及采用该文件系 统的文件管理方法。
【背景技术】
[0002] 文件系统是操作系统用于明确存储设备或分区上的文件管理方法和数据结构,即 在存储设备上组织文件的方法。从系统角度来看,文件系统是对文件存储设备的空间进行 组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用 户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时删除文件等。 [000引传统的文件系统(如FAT文件系统、NTFS文件系统)在一般存储设备(例如磁盘) 中被经常使用,该些文件系统具有系统完善、兼容性好的优点。而大容量记录场合大多采用 固态存储器实现,容量一般都W太字节(TB)为单位,且几乎都具有均匀的读写带宽需求。 若在此种大容量记录场合采用传统的FAT文件系统或者NTFS文件系统,存在两个问题:
[0004] 一是系统保留的文件管理区间很大。FAT文件系统需要构建簇链表,簇链表占用的 空间大小为总容量^簇大小X 4字节炬),如对4TB容量的记录仪,簇大小设置为1兆字节 (MB),则还需要16MB的簇链表区域。NTFS文件系统虽然采用动态的文件组织格式,但系统 还是预保留了总容量的12. 5%作为文件记录表等系统管理空间,且NTFS文件系统采用"日 志式"的管理方式,需要记录详细的读写操作,并将该些读写操作频繁地存入固态存储器, 该样会减少固态存储器的寿命。
[0005] 二是数据读写带宽越来越低。随着读写、删除次数变多,单个文件离散化程度越来 越高,系统需要遍历查找空白簇,并频繁的跳动簇地址进行读写,该些操作都会降低数据读 写的速度,导致数据读写带宽不可保证。

【发明内容】

[0006] 本发明所要解决的是现有的文件系统应用于大容量记录场合中文件管理区间大、 数据读写带宽不可保证的问题。
[0007] 为解决上述问题,本发明提供一种文件系统,包括;文件索引表、F个文件属性表、 释放簇集链表W及释放簇集索引表,其中,F为文件数量;所述文件索引表适于指示各个文 件属性表是否可分配;所述文件属性表包括文件信息表和簇集流列表,所述文件信息表适 于存储文件的相关信息,所述簇集流列表适于存储文件占用的每个簇集的起始簇和文件占 用的每个簇集的大小,所述簇集为连续簇的集合;所述释放簇集链表包括P个链表单元,所 述链表单元适于存储当前释放簇集的起始簇、当前释放簇集的大小、上一释放簇集的位置 W及下一释放簇集的位置,其中,P为不大于R+F的正整数,R为可回收簇集的最大数量,所 述可回收簇集为连续簇大小不小于预设阔值的释放簇集;所述释放簇集索引表适于指示各 个链表单元是否可分配。
[000引与FAT文件系统和NTFS文件系统不同,本发明提供的文件系统通过设置释放簇集 链表存放释放簇集的起始簇和释放簇集的大小。FAT文件系统通过构建簇链表指示可用的 簇,对已使用的簇和未使用的簇都会进行记录,且记录是W单个簇的形式进行,因而会占用 很大的管理区间;NTFS文件系统预保留了总容量的12. 5%作为文件记录表,占用的管理区 间也很大。而本发明提供的文件系统采用释放簇集链表指示可用的簇,不需要对已使用的 簇进行记录,且构成所述释放簇集链表的每个链表单元记录的是释放簇集,簇集是连续簇 的集合,因而所述释放簇集链表占用的空间非常小,整个管理区间也就大大减小了。由于所 述释放簇集链表占用的空间非常小,在文件写入、读取的过程中,遍历所述释放簇集链表获 得可回收簇集的地址范围消耗的时间减少,提高了文件的读写速度,数据读写带宽提高。
[0009] 可选的,所述文件索引表采用位表格式存储二进制数据,第f位二进制数据对应 指示第f个文件属性表是否可分配,1《f《F,f为整数。
[0010] 可选的,所述文件的相关信息包括文件属性、文件大小、文件起始簇、文件创立时 间、文件修改时间W及文件名。
[0011] 可选的,所述簇集流列表包括化1个连续放置的簇集流单元,N为文件占用的簇集 数量;第n个簇集流单元对应存储文件占用的第n个簇集的起始簇和文件占用的第n个簇 集的大小,1《n《N,n为整数;第化1个簇集流单元适于存储标记所述簇集流列表结束的 符号。
[0012] 可选的,所述簇集流单元占用8个字节,第化1个簇集流单元占用的8个字节全部 存储二进制数据0。
[0013] 可选的,在文件删除后文件占用的前N-1个簇集为可回收簇集。
[0014] 可选的,所述释放簇集索引表采用位表格式存储二进制数据,第a位二进制数据 对应指示第a个链表单元是否可分配,1《a《P,a为整数。
[0015] 可选的,所述文件系统还包括:可回收簇集加速访问表,所述可回收簇集加速访问 表适于存储所述释放簇集链表中存放可回收簇集的链表单元的位置。通过设置所述可回收 簇集加速访问表,在文件写入、读取的过程中,不需要遍历所述释放簇集链表,只需从所述 可回收簇集加速访问表中取出存放可回收簇集的链表单元的位置,从而获得可回收簇集的 地址范围,进一步提高了文件的读写速度。
[0016] 基于上述文件系统,本发明还提供一种采用上述文件系统的文件管理方法,包括: 新建文件、写入文件、保存文件W及删除文件;其中,
[0017] 所述新建文件包括;步骤S11,查找所述文件索引表W获得可分配的文件属性表; 步骤S12,将文件的相关信息写入所述可分配的文件属性表中的文件信息表;步骤S13,更 新所述文件索引表W将所述可分配的文件属性表标记为不可分配;
[001引所述写入文件包括;步骤S21,遍历所述释放簇集链表W获得可回收簇集;步骤 S22,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或者所述可 回收簇集用完;若所述可回收簇集用完,执行步骤S23,释放所述可回收簇集对应的链表单 元,更新所述释放簇集索引表W将所述可回收簇集对应的链表单元标记为可分配,将所述 可回收簇集的起始簇和当前文件的可回收簇集的大小存入所述簇集流列表,并重复执行步 骤S21~步骤S22 ;若收到保存文件指令,执行步骤S24,保存文件;
[0019] 所述保存文件包括;步骤S31,更新写入文件的最后一个释放簇集对应的链表单 元;步骤S32,标记当前文件的簇集流列表结束;步骤S33,更新所述文件属性表;
[0020] 所述删除文件包括;步骤S41,根据所述文件索引表获得待删除文件的文件属性 表;步骤S42,读取所述待删除文件对应的簇集流列表;步骤S43,将所述待删除文件占用的 簇集逐个释放至所述释放簇集链表中,并更新所述释放簇集索引表。
[0021] 通过遍历所述释放簇集链表获得可回收簇集W写入文件,由于所述可回收簇集为 连续簇大小不小于预设阔值的释放簇集,因而文件占用的不连续簇更少,减小了文件离散 化程度,避免频繁地跳动簇地址进行读写,提高了文件的读写速度,保证数据的读写带宽。
[0022] 基于上述文件系统,本发明还提供另一种采用上述文件系统的文件管理方法,包 括:新建文件、写入文件、保存文件W及删除文件;其中,
[0023] 所述新建文件包括;步骤S51,查找所述文件索引表W获得可分配的文件属性表; 步骤S52,将文件的相关信息写入所述可分配的文件属性表中的文件信息表;步骤S53,更 新所述文件索引表W将所述可分配的文件属性表标记为不可分配;
[0024] 所述写入文件包括;步骤S61,读取所述可回收簇集加速访问表W获得可回收簇 集;步骤S62,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指令或 者所述可回收簇集用完;若所述可回收簇集用完,执行步骤S63,释放所述可回收簇集对应 的链表单元,更新所述释放簇集索引表W将所述可回收簇集对应的链表单元标记为可分 配,将所述可回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并 重复执行步骤S61~步骤S62 ;若收到保存文件指令,执行步骤S64,保存文件;
[0025] 所述保存文件包括;步骤S71,更新写入文件的最后一个释放簇集对应的链表单 元和所述可回收簇集加速访问表;步骤S72,标记当前文件的簇集流列表结束;步骤S73,更 新所述文件属性表;
[0026] 所述删除文件包括;步骤S81,根据所述文件索引表获得待删除文件的文件属性 表;步骤S82,读取所述待删除文件对应的簇集流列表;步骤S83,将所述待删除文件占用的 簇集逐个释放至所述释放簇集链表中,并更新所述释放簇集索引表;步骤S84,遍历所述释 放簇集链表,将存放可回收簇集的链表单元的位置存入所述可回收簇集加速访问表。
[0027] 通过读取所述可回收簇集加速访问表获得存放可回收簇集的链
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1