论文部分内容阅读
随着嵌入式系统的发展,嵌入式操作系统得到广泛应用,文件系统在整个嵌入式系统中日益成为重要的组成部分。JFFS2是一种基于Flash存储器的日志型文件系统。做为一种纯日志型的文件系统,它采用了一种全新的存储方案来实现磨损平衡和垃圾收集的要求。 到目前为止,JFFS2文件系统日益完善,但是它仍然存在一些缺点,这是由于Flash本身的硬件特性和当时构建文件系统的目的所决定的。JFFS2最初是针对小规模的Flash容量而设计的,当它应用到大容量设备上时,就会存在一些问题。主要是在整个文件系统挂载时,整个过程花费了大量的时间。为了有效的实现系统的管理,将不得不在内存中构建相应的数据结构。此外,相对于嵌入式系统中较小的内存容量而言,这些数据结构又占据了过多的内存空间。与此同时,整个挂载过程的时间复杂度是与节点的数量成线性关系的,即O(n),n代表着Flash上节点的数量。 论文提出一种以空间换时间的改进方案,在文件系统卸载的过程中将整个系统中重要的数据结构都存储在Flash上,然后在文件系统的挂载过程中再将它从Flash中直接读入到内存。这样,就可以避免原方案繁琐复杂的扫描过程。因此,构建整个文件系统的过程将变得相对简单。为了实现这一目的,采用的方法是将第一个擦除块保留下来存储索引信息,系统通过它就能够找到先前存储在Flash上的重要信息。因为第一个擦除块的读写次数并不会高于平均擦写次数,所以不会造成磨损平衡的问题。第一次的挂载过程没有变化,如果没有意外发生,系统将在第一次的卸载过程中存储信息。从第二次开始,所有的挂载过程只需要从Flash上直接读取相应的信息即可。 通过在Arm-Linux平台的实验数据测试,证明了采用这样的改进方案能够在一定程度上克服了文件系统挂载时间过长的问题。