CN101051318A - 利用文件分配表进行磁盘数据簇链接及寻道的方法 - Google Patents
利用文件分配表进行磁盘数据簇链接及寻道的方法 Download PDFInfo
- Publication number
- CN101051318A CN101051318A CN 200710099119 CN200710099119A CN101051318A CN 101051318 A CN101051318 A CN 101051318A CN 200710099119 CN200710099119 CN 200710099119 CN 200710099119 A CN200710099119 A CN 200710099119A CN 101051318 A CN101051318 A CN 101051318A
- Authority
- CN
- China
- Prior art keywords
- list item
- data
- allocation table
- file allocation
- bunch
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000008569 process Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种利用文件分配表进行磁盘数据簇链接及寻道的方法,用于包括有第一文件分配表和第二文件分配表的系统架构,所述第一文件分配表的每个表项都链接一个磁盘数据区的数据簇,所述第一文件分配表的每个表项在所述第二文件分配表中都具有一个对应表项,其特征在于,对于连续数据簇的起始簇所链接的第一文件分配表的表项,在该第一文件分配表表项的对应表项中存储所述连续数据簇的数据簇个数。本发明简化了FAT表,相当于扩大了FAT表的空间,在文件寻道时,还可以减少FAT表的读取次数,大大提高了效率。
Description
技术领域
本发明涉及计算机的磁盘管理技术,特别是涉及一种利用文件分配表进行磁盘数据簇链接及寻道的方法。
背景技术
FAT(file allocation table,文件分配表)是微软定义的一种管理磁盘数据空间的文件系统,创建于70年代末80年代初,起初用于MS-DOS操作系统,当初设计FAT只把它定位为一种简单的文件系统,只适合于软盘管理,而当时的软盘也不过1M的存储范围而已。随着新技术的不断发展,磁盘存储空间不断变大,最初的FAT设计已不能满足,故而微软在原先的基础上扩展FAT,即我们现在常见到的FAT12、FAT16、FAT32,这三种文件系统已基本满足不同存储空间范围的空间管理了。
一个空白的磁盘数据区,可以认为是一块连续的空白数据区,用户可以直接在数据区上读写数据。而FAT文件系统,就是在该空白磁盘空间上做了一些定义规划,方便对磁盘空间的使用。定义了FAT以后,所有对磁盘空间的直接读写对用户而言是禁止的,只对FAT开放,用户对磁盘的操作通过FAT定义的接口来实现,例如打开文件、读写文件、关闭文件等。
从逻辑上看,FAT的逻辑结构包含如下4个层次:
1)参数区及一点保留区
2)FAT表
3)目录区(FAT12、FAT16有效,FAT32中没有)
4)数据区
四个层次的逻辑结构如图1所示,图中参数区主要记录整个FAT系统相关的参数设置,例如:一个cluster(簇)有几个block(块),一个FAT表有多少个block构成,一个系统有多少个FAT表构成等等。记录参数部分通常放在一个block中,另外可能会会有几个保留block作为其它用途。其中,block是FAT规定的对磁盘读写操作的基本单位,为512个字节,在block的基础上FAT定义了簇的概念,一个簇会包含1个或多个block,至于具体包含几个会在参数区中告知,block是读写磁盘的最小单位。
如图1所示,FAT表位于参数区的下一层。FAT文件系统是通过FAT表来管理整个磁盘空间的,FAT表中基本单位为12个bit(比特),16个bit或32个bit,所谓的FAT12、FAT16、FAT32即由此而来,这个基本单位对应一个簇,即FAT表中一个基本表项对应data(数据)区的一个簇,由此就不难明白FAT是怎样管理磁盘空间的了,简单说来,就是把磁盘划分为数据区和标记区,FAT表说白了就是一个做记号的地方,即标记区。那么这个记号如何应用呢?实际上FAT通过FAT表构造一个单向链表结构,就每一个FAT表项而言,它可以蕴含着两个信息,一是它是第几个表项,即FAT表项的索引值,这个简单就是从零开始数;二是表项里存储的数据,FAT系统将该数据的值定义为下一个FAT表项的索引值。这样就形成了一个单项链表,链表结束处FAT表项的值为零,图2为一个FAT表的示例图。
由FAT标准可知,FAT表每一个表项中的内容为下一个FAT表项的索引值,因为表项的索引值代表的是该表项在数据区的对应簇的存放位置,因此FAT表每一个表项中的内容代表的是:该表项在数据区的对应簇的下一个簇的存放位置,从而由FAT表的各项形成一个单项链表,用于标记文件或目录的存放位置。
由于FAT文件系统的局限性(FAT表是个单项链表),FAT中的文件seek每次总是从文件头(FAT表的第一项)开始,按照单项链表逐个搜索直到找到seek的文件所对应的表项,这样光是定位FAT链表就耗时很长。
而实际情况中,常常出现这种情况,就是多个簇连续出现,在存放位置上不曾有中断,此时原有的FAT表中就会对应多个表项来存储这段连续的簇位置;而实际上,这种情况下只有两个有效信息,即起始的表项位置和连续的簇个数。那么应该只存储这两个有效数据就够了,而FAT表要存储连续的FAT表项实则无用,因此按照现有FAT标准存储连续簇的话,不但造成FAT表存储空间的浪费,而且连续簇的seek需要连续读取FAT表项,也造成了时间和性能上的浪费。
发明内容
本发明的目的是提供一种利用文件分配表进行磁盘数据簇链接及寻道的方法,解决现有FAT表在存储连续簇时所造成的存储空间浪费的技术问题。
为了实现上述目的,本发明提供了一种利用文件分配表进行磁盘数据簇链接的方法,用于包括有第一文件分配表和第二文件分配表的系统架构,所述第一文件分配表的每个表项都链接一个磁盘数据区的数据簇,所述第一文件分配表的每个表项在所述第二文件分配表中都具有一个对应表项,其中,对于连续数据簇的起始簇所链接的第一文件分配表的表项,在该第一文件分配表表项的对应表项中存储所述连续数据簇的数据簇个数。
上述的方法,其中,所述起始簇所链接的第一文件分配表的表项中存储的表项值为与所述起始簇连续的第二数据簇所链接表项的索引值,所述第二数据簇所链接表项中存储的表项值为结束标识。
上述的方法,其中,所述第一文件分配表的每个表项通过以下方式链接数据簇:所述第一文件分配表的每个表项的索引值代表的是该表项在磁盘数据区中链接的数据簇的存放位置。
为了实现本发明的目的,本发明还提供了一种利用上述的文件分配表进行文件寻道的方法,其中,包括:
步骤一,从所述第一文件分配表读取起始簇在磁盘数据区的存放位置;
步骤二,从所述第二文件分配表读取连续数据簇的个数;
步骤三,根据所述起始簇的存放位置和所述连续数据簇的个数,从磁盘数据区连续寻道获得所述连续数据簇。
上述的方法,其中,在所述步骤一之前,还包括:判断要寻道的数据簇是否为连续数据簇,是则执行步骤一,否则按照常规寻道方式处理。
上述的方法,其中,通过以下方式判断是否为连续数据簇:如果所述第一文件分配表的表项在所述第二文件分配表的对应表项中存储有连续数据簇的个数,则为连续数据簇,并且所述第一文件分配表的表项为起始簇所对应链接的表项。
上述的方法,其中,通过以下方式判断是否为连续数据簇:如果所述第一文件分配表的表项中存储的表项值为与该表项相邻的邻接表项的索引值,并且所述邻接表项中存储的表项值为结束标识,则为连续数据簇。
本发明的技术效果在于:
本发明改变了常规的两个FAT表的应用方法,对第二个FAT表做了重新定义,不再用作第一个FAT表的备份,而表示第一个FAT表对应的表项开始有多少个连续的cluster是连在一起的。因此,本发明简化了FAT表,相当于扩大了FAT表的空间,在文件seek时,还可以减少FAT表的读取次数,大大提高了效率。
附图说明
图1为FAT的四个层次的逻辑结构图;
图2为FAT表的示例图;
图3为现有FAT标准存放连续数据簇的情况下FAT表的示例图;
图4为按照本发明方法存放连续数据簇时的FAT表的示例图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
在传统FAT标准中,第二个FAT表与第一个FAT表的内容完全一样,定义两个FAT表的目的是为了作备份,之所以如此,是要确保FAT表的安全性,一旦第一个FAT表被损坏,可以用第二个FAT表修复。实际情况表明第二个FAT表通常情况下意义不大,FAT本身是没有断电保护机制的,所以一旦物理性的断电,即使保存两个FAT表,也无济于事。
本发明就是要重新定义FAT表,用第二个FAT表标记连续簇的个数,以此简化FAT表,在文件seek时,还可以减少FAT表的读取次数,大大提高效率。
本发明的方法是一种利用文件分配表进行磁盘数据簇链接的方法,用于包括有第一文件分配表和第二文件分配表的系统架构,第一文件分配表的每个表项都链接一个磁盘数据区的数据簇,第一文件分配表的每个表项在第二文件分配表中都具有一个对应表项,其中,对于连续数据簇的起始簇所链接的第一文件分配表的表项,在该第一文件分配表表项的对应表项中存储所述连续数据簇的数据簇个数。
下面通过与存储连续簇的传统FAT技术相比较,来说明本发明方法。
参考图3,为传统FAT标准存放连续数据簇的情况下FAT表的示例图,如图,如果有一个文件的数据区占用cluster2到cluster6,则在传统FAT表中对应占有表项102至表项106,表项102在数据区的对应链接的数据簇为cluster2,依次类推,表项106对应链接cluster6,其中,表项102中存储的表项值为“103”,也就是表项103的索引值,也就是每个表项中存储的表项值为下一个表项的索引值,在连续簇的最后,因为表项106没有下一个表项,所以表项106中存储的为结束标识,这样连续簇cluster2到cluster6至少占有5个表项,而seek过程也必须每次都从FAT表中找到表项,才能得到数据区的对应簇。
参考图4,为按照本发明方法存放连续数据簇时的FAT表的示例图,如图,对于连续簇cluster2到cluster6,起始簇cluster2对应FAT表1中的表项202,而表项202在FAT表2中的对应表项为表项302,本发明在表项302中存储从表项202开始的连续簇的个数5,即代表从表项202开始的5个表项对应的数据簇都是连续的。而在FAT表1中,表项202存储的表项值为“203”,也就是与起始簇cluster2连续的第二数据簇cluster3所链接表项203的索引值,表项203中存储的表项值为结束标识。也就是在FAT表1中只需要两个表项,就可以表示任意长的连续簇,这样本发明方法大大减小了FAT表表项的使用数目。
对应以上实施例,本发明还提供了一种利用上述的文件分配表进行文件寻道的方法,包括:
步骤a,从FAT表1的表项202读取起始簇cluster2在磁盘数据区的存放位置;
步骤b,从FAT表2的表项302读取连续数据簇的个数5;
步骤c,根据起始簇的存放位置和连续数据簇的个数,从磁盘数据区连续寻道获得所述连续数据簇cluster2至cluster6。
其中,在所述步骤a之前,还包括:判断要寻道的数据簇是否为连续数据簇,是则执行步骤a,否则按照常规寻道方式处理。
其中判断是否为连续数据簇是通过以下方式实现:如果表项202的对应表项302中存储有连续数据簇的个数,则为连续数据簇,并且所述表项202为起始簇cluster2所对应链接的表项。还可通过以下方式实现:如果表项202中存储的表项值为与该表项相邻的邻接表项的索引值“203”,并且所述邻接表项203中存储的表项值为结束标识,则为连续数据簇。
因此,本发明在seek连续簇的过程中,不用连续读取FAT表1的表项,只需要读取起始表项和其在FAT表2的对应表项就可以获得连续簇,因此大大减少了寻道时间,提高了效率。
由上可知,本发明改变了常规的两个FAT表的应用方法,对第二个FAT表做了重新定义,不再用作第一个FAT表的备份,而表示第一个FAT表对应的表项开始有多少个连续的cluster是连在一起的。因此,本发明简化了FAT表,相当于扩大了FAT表的空间,在文件seek时,还可以减少FAT表的读取次数,大大提高了效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种利用文件分配表进行磁盘数据簇链接的方法,用于包括有第一文件分配表和第二文件分配表的系统架构,所述第一文件分配表的每个表项都链接一个磁盘数据区的数据簇,所述第一文件分配表的每个表项在所述第二文件分配表中都具有一个对应表项,其特征在于,对于连续数据簇的起始簇所链接的第一文件分配表的表项,在该第一文件分配表表项的对应表项中存储所述连续数据簇的数据簇个数。
2.根据权利要求1所述的方法,其特征在于,所述起始簇所链接的第一文件分配表的表项中存储的表项值为与所述起始簇连续的第二数据簇所链接表项的索引值,所述第二数据簇所链接表项中存储的表项值为结束标识。
3.根据权利要求1或2所述的方法,其特征在于,所述第一文件分配表的每个表项通过以下方式链接数据簇:所述第一文件分配表的每个表项的索引值代表的是该表项在磁盘数据区中链接的数据簇的存放位置。
4、一种利用权利要求1所述的文件分配表进行文件寻道的方法,其特征在于,包括:
步骤一,从所述第一文件分配表读取起始簇在磁盘数据区的存放位置;
步骤二,从所述第二文件分配表读取连续数据簇的个数;
步骤三,根据所述起始簇的存放位置和所述连续数据簇的个数,从磁盘数据区连续寻道获得所述连续数据簇。
5.根据权利要求4所述的方法,其特征在于,在所述步骤一之前,还包括:判断要寻道的数据簇是否为连续数据簇,是则执行步骤一,否则按照常规寻道方式处理。
6.根据权利要求5所述的方法,其特征在于,通过以下方式判断是否为连续数据簇:如果所述第一文件分配表的表项在所述第二文件分配表的对应表项中存储有连续数据簇的个数,则为连续数据簇,并且所述第一文件分配表的表项为起始簇所对应链接的表项。
7.根据权利要求5所述的方法,其特征在于,通过以下方式判断是否为连续数据簇:如果所述第一文件分配表的表项中存储的表项值为与该表项相邻的邻接表项的索引值,并且所述邻接表项中存储的表项值为结束标识,则为连续数据簇。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100991199A CN100533443C (zh) | 2007-05-11 | 2007-05-11 | 利用文件分配表进行磁盘数据簇链接及寻道的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100991199A CN100533443C (zh) | 2007-05-11 | 2007-05-11 | 利用文件分配表进行磁盘数据簇链接及寻道的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101051318A true CN101051318A (zh) | 2007-10-10 |
CN100533443C CN100533443C (zh) | 2009-08-26 |
Family
ID=38782730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100991199A Expired - Fee Related CN100533443C (zh) | 2007-05-11 | 2007-05-11 | 利用文件分配表进行磁盘数据簇链接及寻道的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100533443C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882153A (zh) * | 2010-06-10 | 2010-11-10 | 北京中星微电子有限公司 | 一种文件指针定位的方法及装置 |
CN102169487A (zh) * | 2010-02-25 | 2011-08-31 | 晨星软件研发(深圳)有限公司 | 文件读取方法与应用该方法的嵌入式系统 |
CN102623033A (zh) * | 2011-01-31 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于快速视频数据存储的文件系统的控制方法及装置 |
CN101908050B (zh) * | 2009-06-03 | 2013-04-24 | 晨星软件研发(深圳)有限公司 | 档案格式转换方法 |
TWI408554B (zh) * | 2010-02-12 | 2013-09-11 | Mstar Semiconductor Inc | 檔案讀取方法與應用該方法之嵌入式系統 |
CN103309890A (zh) * | 2012-03-15 | 2013-09-18 | 华北计算机系统工程研究所 | 一种Linux文件系统与实时数据库索引融合的技术 |
CN104394371A (zh) * | 2014-12-01 | 2015-03-04 | 北京理工大学 | 一种适合大量连续图像采集和快速存储的系统 |
CN109697019A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 基于fat文件系统的数据写入的方法和系统 |
CN107644056B (zh) * | 2017-08-04 | 2021-02-12 | 武汉烽火众智数字技术有限责任公司 | 一种文件存储方法、装置及系统 |
-
2007
- 2007-05-11 CN CNB2007100991199A patent/CN100533443C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908050B (zh) * | 2009-06-03 | 2013-04-24 | 晨星软件研发(深圳)有限公司 | 档案格式转换方法 |
TWI408554B (zh) * | 2010-02-12 | 2013-09-11 | Mstar Semiconductor Inc | 檔案讀取方法與應用該方法之嵌入式系統 |
CN102169487A (zh) * | 2010-02-25 | 2011-08-31 | 晨星软件研发(深圳)有限公司 | 文件读取方法与应用该方法的嵌入式系统 |
CN102169487B (zh) * | 2010-02-25 | 2013-09-11 | 晨星软件研发(深圳)有限公司 | 文件读取方法与应用该方法的嵌入式系统 |
CN101882153A (zh) * | 2010-06-10 | 2010-11-10 | 北京中星微电子有限公司 | 一种文件指针定位的方法及装置 |
CN102623033A (zh) * | 2011-01-31 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于快速视频数据存储的文件系统的控制方法及装置 |
CN103309890A (zh) * | 2012-03-15 | 2013-09-18 | 华北计算机系统工程研究所 | 一种Linux文件系统与实时数据库索引融合的技术 |
CN104394371A (zh) * | 2014-12-01 | 2015-03-04 | 北京理工大学 | 一种适合大量连续图像采集和快速存储的系统 |
CN104394371B (zh) * | 2014-12-01 | 2017-09-29 | 北京理工大学 | 一种适合大量连续图像采集和快速存储的系统 |
CN107644056B (zh) * | 2017-08-04 | 2021-02-12 | 武汉烽火众智数字技术有限责任公司 | 一种文件存储方法、装置及系统 |
CN109697019A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 基于fat文件系统的数据写入的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100533443C (zh) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101051318A (zh) | 利用文件分配表进行磁盘数据簇链接及寻道的方法 | |
US5442611A (en) | Method of recording information on record medium having data record region and file management information record region | |
JP5000316B2 (ja) | オブジェクト・ベースのデータ記憶装置 | |
CN100583832C (zh) | 数据管理方法及系统 | |
CN101419828B (zh) | 一种模拟磁带串行模式的硬盘视频记录及检索方法 | |
CN104346357A (zh) | 一种嵌入式终端的文件存取方法及系统 | |
CN101369252A (zh) | 基于nand闪存文件系统中静态数据损耗均衡的方法 | |
CN1750164A (zh) | 一种防止文件碎片产生的数字硬盘录像机文件管理方法 | |
CN1466060A (zh) | 闪速存储器文件系统 | |
CA2469402A1 (en) | Disk driver cluster management of time shift buffer with file allocation table structure | |
CN105335098A (zh) | 一种基于存储级内存的日志文件系统性能提高方法 | |
CN101488153A (zh) | 嵌入式Linux下大容量闪存文件系统的实现方法 | |
CN111522507B (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
CN103838853A (zh) | 一种基于不同存储介质的混合文件系统 | |
CN100543748C (zh) | 一种利用文件分配表进行文件寻道的方法及系统 | |
CN100347705C (zh) | 一种合并文件的方法 | |
CN103473298A (zh) | 数据归档方法和装置以及存储系统 | |
CN101051317A (zh) | 一种fat文件系统及其处理方法 | |
TWI399642B (zh) | 具區塊管理之非揮發性記憶體 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN1822174A (zh) | 一种嵌入式设备中硬盘关键信息区的保护方法 | |
US6757804B2 (en) | Method and system for reducing fragmentation | |
CN100470677C (zh) | 提高闪存盘数据写入速度的方法 | |
CN104133970A (zh) | 一种数据空间管理方法及装置 | |
CN111427513B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090826 Termination date: 20120511 |