一种嵌入式文件系统,整个文件系统被设置成树形的数据结构,采用Phase Tree算法,并有一个根节点指向文件系统,系统中细分为三个树形的子数据结构,分别为完成树、分支树和进行树,三个树形数据结构会不断进行转换,并修改文件系统的根结点,整个文件系统操作具有原子性,每个树形数据结在转换中仅修改差异的部分。本发明专利技术的优点是大幅度提升性能,并实现文件系统的可靠性,当系统非正常断电的时候,整个文件系统仍可以保持一致性而不被损坏,并且再次开机的时候无需做任何文件系统扫描和修复操作,使得系统可以像正常情况一样快速启动起来,具有实现简单、效率高、不过多消耗系统资源和不会额外占有文件系统空间的优点,非常适合用于嵌入式系统。
【技术实现步骤摘要】
本专利技术涉及一种,特别涉及一种嵌入式文件系统。 技术背景电脑文件系统的可靠性是指在非正常断电等特殊情况下,文件系统的健 壮性。在特殊情况出现后,--个可靠的文件系统可以保证自己仍然处于一个正确的状态,而不影响在其上面的继续操作(可能会丢失部分数据)。PC机在使用中特殊情况出现后,即使文件系统不保证其可靠性,用户也可以通过运行类似fsck程序或者第三方工具来对文件系统进行修复。然而在嵌入式 系统中,这个方法则行不通,因为相当的嵌入式系统是没有软件管理员的, 他们可能被大量安装在无人值守环境下,如果一旦出现断电就要把他们取回 进行文件系统修复操作,这是不可想象的。所以可靠性对于嵌入式文件系统 来说,尤为重要。
技术实现思路
本专利技术的目的是针对已有技术中存在的缺陷,本专利技术提供了一种嵌入式 文件系统。整个文件系统被设置成树形的数据结构,采用Phase Tree算法, 并有一个根节点指向文件系统,系统中细分为三个树形的子数据结构,分别 为Recorded Tree、 Branching Tree和Recording Tree, Recorded Tree记录了 当前位于磁盘上的文件系统镜像,Recording Tree记录了最新的文件系统镜 像,Branching Tree记录了距离目前为止最近的文件系统位于一致性状态的镜 像,三个树形数据结构会不断进行转换,并修改文件系统的根结点,整个文 件系统操作具有原子性,每个树形数据结在转换中仅修改差异的部分,系统包含以下步骤A文件系统的原子化;B 确定根节点(metaroot);C开辟一个工作区域;D转换操作,所有对FAT的操作在FAT2上进行,所有的操作都不影 响当前位于磁盘上文件系统的一致性,修改完成后,再修改根节点 (BPB),将FAT2作为新的有效的FAT表,将根目录工作区作为新的根目录;E建立FAT Phase Tree数据结构,原子文件系统采用Fat Phase Tree算法;F系统初始化,纪录该目^/文件在meta子树中的位置;G写文件操作,采用copy-on-write的方式来进行写入操作,对于所有 涉及到修改的数据,都必须在原有系统得空闲空间上复制一块然后 在上面修改,最后再将修改后的数据替换原有数据;H新建节点Cluster操作;].删除节点Cluster操作;J读操作。由于修改根结点操作是原子性的(要么做完,要么没有做,不会产生一 个做了--半的情况),听以使得整个文件系统操作也具有原子性,从而不再会产生不一致的状态。为了提高效率,每颗树在转换的时候仅仅修改差异的 部分,这样就避免了大数据的修改工作,此外,对关键数据在内存中进行缓 冲也可以加快关键数据的访问速度,也将大幅度提升该文件系统的效率。该文件系统采用Phase Tree算法,当系统非正常断电的时候,整个文件 系统仍可以保持一致性而不被损坏,并且再次开机的时候无需做任何文件系 统扫描和修复操作,使得系统可以像正常情况一样快速启动起来。利用优化改进的Phase Tree算法,成功的将Linux原有的ext2文件系统 转换成了一个可靠的文件系统。树形数据中的节点为文件系统元数据MetaData,而非目录树,每当有 写操作的时候,就在空闲空间内创建这棵树形数据结构的分支,再执行原子 化的更新,将旧的树形数据结构更新为分支,操作一步完成,中间不可被打 断,保证文件系统的一致性。三个树形的子数据结构Phase Treee同时存在,每一个树形的子数据结构 都有着自己独立的meta root。其中一棵记录了磁盘上当前已经完整写入的一 致状态,称为Recorded Tree,该树形的全部数据都位于磁盘。另一个树形的 子数据结构也记录了—个一致状态,不过它的meta root位于系统内存中, 而且其中可能有一些数据还没有被写入到磁盘中(即为Dirty Buffer),称为 Recording Treee第三个树形的子数据结构全部位于系统内存中,不处于一致 状态,我们把它叫做Branching Treec三个树形的子数据结构分别代表不同的状态,并且不断循环转换着, Recorded Tree准确的记录了当前磁盘的状态;Recording Tree记录了下.-次要被写入的数据,而Branching Tree则记录了操作系统看来最新的文件系统 数据,它还包含了一个释放列表,记录了被释放的inode和block。每一次作 原子更新的时候,三个文件系统就做一次切换,Recording Tree被写入到磁 盘并转换为Recorded Tree, Branching Tree被修正到一个最新的一致性状态 转换为Reconied Tree,而Recorded Tree则更新写入操作后变成Branching Tree。所有操作进行的时候都采用copy-on-write方式,不仅保证文件系统元数 据的一致性,还保证文件数据的一致性。本专利技术的优点是大幅度提升性能,并实现文件系统的可靠性,当系统非正常 断电的时候,整个文件系统仍可以保持一致性而不被损坏,并且再次开机的 时候无需做任何文件系统扫描和修复操作,使得系统可以像正常情况一样快 速启动起来,具有实现简单、效率高、不过多消耗系统资源和不会额外占有 文件系统空间的优点,非常适合用于嵌入式系统。 附图说明图l本专利技术的树形的子数据结构示意图; 图2本专利技术的三个树形数据结构示意图; 图3本专利技术的节点结构示意图1块位图Block biti胎ps、 2结点位图Inode bitmaps、 3组描述块Gro叩 Descriptors, 4組.元文件Group metafile、 5根结点Meraroot、 6结点 元文件Inode metafil.e、 7结点表Inode Table具体实施方式 下面结合附图进--步说明具体实施例方式参见图l, FAT32文件系统的原子化与FAT32兼容意味着该文件系统在磁盘上的存储完全符合微软的FAT32 规范,原子化意味着在文件系统部分对数据的组织和操作要完全按照原子文 4牛系统的方式来进行。 根节点(metaroot)原子化文件系统要求文件系统一定要有一个根节点(metaroot),该根节 点指向了当前文件系统数据。在FAT32文件系统中,BPB就可以当作根节 点来看待,因为在这个扇区中存储了所有其他文件系统的位置FAT表位置 和根目录位置。 工作区原子文件系统要求在存储介质上除了有当前文件系统数据区外,还要另 外开辟一个工作区。我们可以利用FAT32BPB中的双FAT表结构来实现这一 点。首先看一下FAT32扩展部分的描述 —u32 fat32 length; /* sectors/FAT */ 》—u16 flags; /* bit S: fat mirroring, low 4: active fet */ >> 一u8 version[2]; /* major, minor filesystem version */ —u32 root—duster: /* first cluster in root directory */ 》ui6 info—sector; /* filesystem info本文档来自技高网...
【技术保护点】
一种嵌入式文件系统,整个文件系统被设置成树形的数据结构,采用Phase Tree(相位树)算法,并有一个根节点指向文件系统,系统中细分为三个树形的子数据结构,分别为完成树Recorded Tree、分支树Branching Tree和进行树Recording Tree,Recorded Tree记录了当前位于磁盘上的文件系统镜像,Recording Tree记录了最新的文件系统镜像,Branching Tree记录了距离目前为止最近的文件系统位于一致性状态的镜像,三个树形数据结构会不断进行转换,并修改文件系统的根结点,整个文件系统操作具有原子性,每个树形数据结在转换中仅修改差异的部分,系统包含以下步骤: A文件系统的原子化; B确定根节点(metaroot); C开辟一个工作区域; D转换操作,所有对FAT的操作在FAT2上进行,所有的操作都不影响当前位于磁盘上文件系统的一致性,修改完成后,再修改根节点(BPB),将FAT2作为新的有效的FAT表,将根目录工作区作为新的根目录; E建立FAT Phase Tree数据结构,原子文件系统采用Fat Phase Tree算法; F系统初始化,纪录该目录/文件在meta子树中的位置; G写文件操作,采用copy-on-write(即时拷贝)的方式来进行写入操作,对于所有涉及到修改的数据,都必须在原有系统得空闲空间上复制一块然后在上面修改,最后再将修改后的数据替换原有数据; H新建节点Cluster操作; I删除节点Cluster操作; J读操作。...
【技术特征摘要】
1.一种嵌入式文件系统,整个文件系统被设置成树形的数据结构,采用Phase Tree(相位树)算法,并有一个根节点指向文件系统,系统中细分为三个树形的子数据结构,分别为完成树Recorded Tree、分支树Branching Tree和进行树Recording Tree,Recorded Tree记录了当前位于磁盘上的文件系统镜像,Recording Tree记录了最新的文件系统镜像,Branching Tree记录了距离目前为止最近的文件系统位于一致性状态的镜像,三个树形数据结构会不断进行转换,并修改文件系统的根结点,整个文件系统操作具有原子性,每个树形数据结在转换中仅修改差异的部分,系统包含以下步骤A文件系统的原子化;B确定根节点(metaroot);C开辟一个工作区域;D转换操作,所有对FAT的操作在FAT2上进行,所有的操作都不影响当前位于磁盘上文件系统的一致性,修改完成后,再修改根节点(BPB),将FAT2作为新的有效的FAT表,将根目录工作区作为新的根目录;E建立FAT Phase Tree数据结构,原子文件系统采用Fat Phase Tree算法;F系统初始化,纪录该目录/文件在meta子树中的位置;G写文件操作,采用copy-on-write(即时拷贝)的方式来进行写入操作,对于所有涉及到修改的数据,都必须在原有系统得空闲空间上复制一块然后...
【专利技术属性】
技术研发人员:李禹雄,于涛,范树春,
申请(专利权)人:上海万安电子科技有限公司,范树春,
类型:发明
国别省市:31[中国|上海]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。