一种文件定位方法

文档序号:6587555阅读:111来源:国知局

专利名称::一种文件定位方法
技术领域
:本发明涉及一种文件定位方法,特别是一种实现手持设备文件定位的方法。
背景技术
:手持设备对其所存储的信息文件提供多种操作(如播放、浏览、快进快退及拖动等),大部分操作需要不断地进行文件定位,即需要实现Seek功能。目前主流文件系统(如FAT16、FAT32)的文件定位功能都只是采用单向非增量索引方式,在频繁进行文件定位时必将花费更多时间,增加系统负担,影响响应速度。而以低功耗、持久电池续航能力为追求目标的便携式嵌入设备,其核心工作频率一般低于100MHz,同时考虑系统与客户的实时交互,主要表现为界面的实时更新和按键的及时响应,将会把不足、缺点表现的更为明显,出现界面更新时间不均匀、滞后,按键响应迟钝,或者运行与显示不匹配,甚至死机,从视觉和感受上挑战客户的忍耐度。为了区别及便于理解本技术,在此叙述下传统文件定位方式FAT32文件系统可分为目录区,簇链表和数据区三大部分。其中,目录区和簇链表是文件管理最重要的数据区,任何的文件操作都通过这两部分索引来完成。这是典型的二级索引,即先从目录区索引得到文件首簇,再根据首簇从簇链表索引得到文件后续簇。而文件定位功能主要是对簇链表进行索引,目前采用的是单向非增量索引方式,所谓的单向非增量索引方式,是指每次文件定位时都从首簇开始索引到目标位置。其主要特征依赖于传统、主流的FAT文件系统组织架构,一般由目录区、簇链区和数据区组成。(参考图1FAT32文件系统的组成结构)采用二级索引工作机制。其中,第一级索引是指在目录区索引到对应的目录项;第二级索引是指根据某一簇号在簇链区索引到下一个簇号,直至结束。(参考图2FAT32文件系统的二级索引形式)实现二级索引的重要依据是簇链区。该簇链区是分为簇链表1和簇链表2,简称为FAT1和FAT2,且FAT1和FAT2存储的数据完全相同,使用时以FAT1为主,FAT2仅用于备份、错误纠正等。每次Seek不管新位置所在簇号相对于当前簇号是正偏移(即;文件定位时,新目标位置相对于文件首的偏移量大于当前位置相对于文件首的偏移量)还是负偏移(即文件定位时,新目标位置相对于文件首的偏移量小于当前位置相对于文件首的偏移量),都只能从首簇开始顺序索引。这就是单向索引。(参考图3单向非增量正偏移和图4单向非增量负偏移)每次文件Seek时都是从首簇号开始,而不能从当前簇号开始索引。这就是非增量索引。(参考图3单向非增量正偏移和图4单向非增量负偏移)
发明内容本发明的目的是提供一种文件定位的方法,能有效提高文件定位的速度,从而优化系统,具有较好的使用价值。本发明是这样实现的,一种文件定位方法,其特征在于,按以下步骤实现(1)、改造文件系统组织架构中的簇链包括双簇链或三簇链,所述的双簇链是簇链一存储的是正向索引所需的簇链,簇链二存储的是逆向索引所需的簇链,所述的三簇链是簇链一和簇链二存储的是正向索引所需的簇链,簇链三存储的是逆向索引所需的簇链;(2)、每次索引前计算出要索引目标位置所在的簇号相对于当前簇号的偏移量;(3)、如果是正偏移,就根据改造的正向簇链顺序索引到目标位置,如果是负偏移,就根据改造的逆向簇链顺序索引到目标位置。本发明通过构建或者改造传统文件系统的簇链区存储原则,为频繁的文件Seek提供双向索引,避免每次都从文件首簇开始索引,同时提供增量索引,只需在当前簇号基础上进行索引,极大地縮小索引时间,在多任务实时系统中,有效地处理实时请求,减少停顿、死机。图1是公知的FAT32文件系统的组成结构示意图。图2是公知的FAT32文件系统的二级索引形式。图3是公知的单向非增量正偏移示意图。图4是公知的单向非增量负偏移示意图。图5是本发明双向增量正偏移示意图。图6是本发明双向增量负偏移示意图。图7是本发明新构建的三FAT簇链表示意图。具体实施例方式下面结合附图及实施例子对本发明做进一步说明。本发明提供一种文件定位方法,其特征在于,按以下步骤实现(1)、改造文件系统组织架构中的簇链包括双簇链或三簇链,所述的双簇链是簇链一存储的是正向索引所需的簇链,簇链二存储的是逆向索引所需的簇链,所述的三簇链是簇链一和簇链二存储的是正向索引所需的簇链,簇链三存储的是逆向索引所需的簇链;(2)、每次索引前计算出要索引目标位置所在的簇号相对于当前簇号的偏移量;(3)、如果是正偏移,就根据改造的正向簇链顺序索引到目标位置,如果是负偏移,就根据改造的逆向簇链顺序索引到目标位置。所述改造簇链存储索引所需的簇链的方法包括a、创建文件时,假设文件A首簇为30,大小为10簇,则首先获取文件首簇号30并写入文件目录区;b、将改造后的簇链中位置为30的地方写入结束标志0xFF;C、写文件索引到下一个空簇时,假设位置为31的地方原先存储的是0,则在正向簇链中位置31的地方写入结束标志0xFF,在位置为30的地方写入31,同时在逆向簇链中位置31的地方写入30,如此循环即可构建所需的簇链。为了加深理解,在此对本发明的双向增量索引的特征及要点进行简单说明如下所谓的双向增量索引方式,是指每次文件定位时都是在当前簇基础上根据偏移量进行正向(即按照文件数据从头到尾顺序读取)或逆向(即按照文件数据从尾到头逆序读取)增量索引到目标位置。其主要特征依赖于传统、主流的FAT文件系统组织架构,一般由目录区、簇链区和数据区组成。(参考图1FAT32文件系统的组成结构)采用二级索引工作机制。其中,第一级索引是指在目录区索引到对应的目录项;第二级索引是指根据某一簇号在簇链区索引到下一个簇号,直至结束。(参考图2FAT32文件系统的二级索引形式)实现二级索引的重要依据是簇链区。为了实现双向增量索引,必须改造传统的簇链区或者构建新的簇链区,可以有两种形式双FAT和三FAT(参考图7新构建的三FAT簇链表)。经过改造的双FAT不同于传统的双FAT,此时的FAT1存储的是正向索引所需的簇链,而FAT2存储的就是逆向索引所需的簇链,二者合一,就构成了一个双向索引链表。如果是三FAT形式,那么FAT1和FAT2存储正向索引所需的簇链,FAT3存储逆向索引所需的簇链。每次Seek时必须先计算出要索引目标位置所在的簇号相对于当前簇号的偏移。如果是正偏移,就根据FAT1正向簇链顺序索引到目标位置(参考图5双向增量正偏移);如果是负偏移,就根据FAT2或者FAT3逆向簇链顺序索引到目标位置(参考图6双向增量负偏移)。这就是双向索引。每次文件Seek时都是从当前所在簇号开始索引,而不需要从文件首簇开始索引。这就是增量索引。(参考图5双向增量正偏移和图6双向增量负偏移)。现在对双向增量索引方式中的几个要点进行说明为什么考虑改造FAT2针对双向增量索引方式中的双FAT,由于便携式嵌入设备的功能并未很好使用FAT2,大部分只是处于兼容性考虑,最多也只是用于特殊情况下的文件完整性检验,但是效果不明显,所以可以将FAT2进行改造,存储逆向索引数据。为什么考虑增加FAT3针对双向增量索引方式中的三FAT,基于两点首先,保证兼容性,避免其他应用程序识别文件系统时错误;其次,所需存储空间较小。在便携式嵌入设备上,存储介质容量可以是1G、2G、4G,8G、16G和32G,以低于8G较为常见。那么以8G的存储介质为例,新增加FAT3,最多占用存储空间也就1M字节。如何填充改造后FAT2或者新增的FAT3的数据?以填充改造后的FAT2为例,假设文件A首簇为30,大小为10簇。请参照表1至表4其具体实现是创建文件时,获取文件首簇号30并写入文件目录区;将FATl中位置为30的地方写入结束标志0xFF,同时也在FAT2中位置为30的地方写入结束标志OxFF;写文件索引到下一个空簇时,假设位置为31的地方原先存储的是0,那么31簇就是个空簇,可以使用。这样,FAT1就在位置31的地方写入结束标志OxFF,在位置30的地方写入31;同时,FAT2只是在位置31的地方写入30。如此循环,就可构建出所需要的FAT链表。表1初始FAT簇链分布<table>tableseeoriginaldocumentpage6</column></row><table>(注X表示该簇已被使用,0表示该簇为空簇可以被使用)表2填充首簇后FAT簇链分布<table>tableseeoriginaldocumentpage6</column></row><table>表3填充第二簇后簇链分布<table>tableseeoriginaldocumentpage6</column></row><table>表4填充第三簇后簇链分布<table>tableseeoriginaldocumentpage6</column></row><table><table>tableseeoriginaldocumentpage7</column></row><table>以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。权利要求一种文件定位方法,其特征在于,按以下步骤实现(1)、改造文件系统组织架构中的簇链包括双簇链或三簇链,所述的双簇链是簇链一存储的是正向索引所需的簇链,簇链二存储的是逆向索引所需的簇链,所述的三簇链是簇链一和簇链二存储的是正向索引所需的簇链,簇链三存储的是逆向索引所需的簇链;(2)、每次索引前计算出要索引目标位置所在的簇号相对于当前簇号的偏移量;(3)、如果是正偏移,就根据改造的正向簇链顺序索引到目标位置,如果是负偏移,就根据改造的逆向簇链顺序索引到目标位置。2.根据权利要求1所述的一种文件定位方法,其特征在于所述改造簇链存储索引所需的簇链的方法包括a、创建文件时,假设文件A首簇为30,大小为10簇,则首先获取文件首簇号30并写入文件目录区;b、将改造后的簇链中位置为30的地方写入结束标志OxFF;c、写文件索引到下一个空簇时,假设位置为31的地方原先存储的是0,则在正向簇链中位置31的地方写入结束标志OxFF,在位置为30的地方写入31,同时在逆向簇链中位置31的地方写入30,如此循环即可构建所需的簇链。全文摘要本发明涉及一种文件定位方法,其特征在于,按以下步骤实现(1)、改造文件系统组织架构中的簇链包括双簇链或三簇链,所述的双簇链是簇链一存储的是正向索引所需的簇链,簇链二存储的是逆向索引所需的簇链,所述的三簇链是簇链一和簇链二存储的是正向索引所需的簇链,簇链三存储的是逆向索引所需的簇链;(2)、每次索引前计算出要索引目标位置所在的簇号相对于当前簇号的偏移量;(3)、如果是正偏移,就根据改造的正向簇链顺序索引到目标位置,如果是负偏移,就根据改造的逆向簇链顺序索引到目标位置。本发明能有效提高文件定位的速度,从而优化系统,具有较好的使用价值。文档编号G06F17/30GK101692256SQ200910307399公开日2010年4月7日申请日期2009年9月21日优先权日2009年9月21日发明者林国强申请人:福州思迈特数码科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1