一种在文件分配表中给文件分配空间的方法及装置制造方法及图纸

技术编号:2823943 阅读:248 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种在文件分配表中给文件分配空间的方法及装置,预先设置有一块内存空间,用于存放磁盘的空闲空间,所述方法包括:加载文件分配表时,将磁盘的空闲空间映射到该内存空间;当需要给文件分配空间时,直接到该内存空间中查找可以分配的空闲空间;或者,当从磁盘上删除文件时,将释放出来的空闲空间映射到该内存空间;所述装置包括:映射单元、存储单元和查找单元。本发明专利技术通过把查找空闲空间的操作由读盘操作变为内存操作,而内存操作要比读盘操作快得多,从而极大地提高给文件分配空间地效率。

【技术实现步骤摘要】

本专利技术涉及计算机原理领域,尤其涉及一种在文件分配表中给文件分配空间的方法及装置
技术介绍
在FAT(文件分配表)文件系统中,会将磁盘空间按一定数目的扇区为单位进行划分,这样的单位称为簇。FAT文件系统有两种给文件分配空间策略:单簇分配和簇组分配。相对于这两种策略,有两个变量clustAllocStart和groupAllocStart来分别记录单簇分配和簇组分配开始的簇数。在给文件分配空间时,首先从clustAllocStart或者groupAllocStart开始查找是否有满足条件的空闲簇,如果查找不到,再从FAT表头开始查找满足条件的空闲簇。上面的查找空闲簇或簇组的操作都是通过读盘操作实现的,因此在慢速磁盘(如电子硬盘,FLASH)上,在磁盘空间快要满的时候,给文件分配空间将会变得非常耗时。以1G的电子硬盘为例,1G的电子硬盘的FAT表占用的空间为1M,在快满的时候,每分配一次差不多都要把整个FAT表读一遍,按照1M/S的速度,每分配一次耗用的时间差不多为1S,读的速度可能快些,按照2M/S算的话,每分配一次也要0.5S。因此,上述的缺陷已经成为使用慢速磁盘的障碍。-->
技术实现思路
鉴于上述的分析,本专利技术的目的在于提供一种在文件分配表中给文件分配空间的方法及装置,用以解决现有技术中存在的通过读盘操作查找空闲簇或簇组速度慢的问题。本专利技术的目的主要是通过以下技术方案实现的:本专利技术提供了一种在文件分配表中给文件分配空间的方法,预先设置有一块内存空间,用于存放磁盘的空闲空间,所述方法包括:步骤A:加载文件分配表时,将磁盘的空闲空间映射到该内存空间;步骤B:当需要给文件分配空间时,直接到该内存空间中查找待分配的空闲空间;或者,当从磁盘上删除文件时,将释放出来的空闲空间映射到该内存空间。进一步地,预定义有空闲簇链表及空闲簇链表项对应的结构体、空闲簇组链表及空闲簇组链表项对应的结构体,则所述步骤A具体包括:步骤A1:扫描文件分配表,当找到空闲簇时,判断该空闲簇的相邻簇是否也为空闲簇,如果是,执行步骤A2,否则执行步骤A3;步骤A2:根据该空闲簇和其相邻簇构成的连续空闲空间与簇组的大小关系,决定将该连续空间加到空闲簇链表或者加到空闲簇组链表;步骤A3:直接将该空闲簇加到空闲簇链表。进一步地,所述步骤A2具体包括:判断该空闲簇和其相邻簇构成的连续空闲空间是否大于簇组:如果比簇组大,填充空闲簇组链表项对应的结构体,将该连续空闲空间加到空闲簇组链表,否则填充空闲簇链表项对应的结构体,将该连续空闲空间加到空闲簇链表。进一步地,所述步骤B具体包括:-->当需要给文件分配空间时,根据给文件分配的是簇或簇组修改所述空闲簇组链表或空闲簇链表;或者,当从磁盘上删除文件时,将归还的簇或簇组的信息填充到相应的结构体中,并将该结构体按照预定策略插入到相应的空闲簇链表或空闲簇组链表中。进一步地,所述空闲簇组链表项对应的结构体包括:空闲簇组起始簇、下一个空闲簇组链表项的地址;所述空闲簇链表对应的结构体包括:空闲簇的起始簇、从起始簇可供连续使用的簇数、下一个空闲簇链表项的地址。本专利技术还提供了一种在文件分配表中给文件分配空间的装置,所述装置包括:映射单元、存储单元和查找单元,其中,所述存储单元,设置于内存中,用于存放映射到其中的磁盘的空闲空间;所述映射单元,当加载文件分配表时,所述映射单元用于根据磁盘的使用情况,将磁盘的空闲空间映射到所述存储单元;当从磁盘上删除文件时,所述映射单元还用于将释放出来的空闲空间映射到所述存储单元;所述查找单元,用于在需要给文件分配空间时,到所述存储单元中查找待分配的空闲空间。本专利技术有益效果如下:本专利技术通过把查找空闲空间的操作由读盘操作变为内存操作,从而极大地提高给文件分配空间的效率。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明-->图1为本专利技术所述方法的流程示意图;图2为一段FAT表的值;图3为参照图2中FAT表的值建立的空闲簇链表的示意图;图4为参照图2中FAT表的值建立的空闲簇组链表的示意图;图5参照图4给文件分配一个簇组后的空闲簇组链表的示意图;图6为参照图3给文件分配一簇后的空闲簇链表的示意图;图7为图5归还一个簇组后的空闲簇组链表的示意图;图8为参照图6归还一簇后的空闲簇链表的示意图;图9为参照图8归还一簇后的空闲簇链表的示意图;图10为参照图7归还一簇后的空闲簇组链表的示意图;图11为参照图9归还一簇后的空闲簇链表的示意图;图12为本专利技术所述装置的结构示意图。具体实施方式本专利技术提出一种在FAT文件系统中给文件分配空间的方法及装置,其基本思想是把查找空闲空间的操作由读盘操作变为内存操作,从而极大地提高给文件分配空间的效率。下面结合附图来具体描述本专利技术的优先实施例,其中,附图构成本申请一部分,并与本专利技术的实施例一起用于阐释本专利技术的原理。首先结合附图对本专利技术所述方法进行详细说明。如图1所示,图1为本专利技术实施例所述方法的流程示意图,具体可以包括以下步骤:步骤101:预先申请一块内存空间用于存放映射的磁盘的空闲空间;同时,根据FAT表的使用情况和簇组的大小建立两个链表:空闲簇链表和空闲簇组链-->表,并定义空闲簇链表项对应的结构体和空闲簇组链表项对应的结构体,所述结构体分别用于存储空闲簇组链表项和空闲簇链表项的信息;本专利技术中,可以依据起始簇的大小建立有序的空闲簇链表。步骤102:当加载FAT表时,根据磁盘的使用情况,把磁盘的空闲空间映射到该内存空间;具体的说就是,扫描整个FAT表,如果找到空闲簇(对应的FAT表项为0),判断其相邻的簇是否也是空闲,如果其相邻的簇不是空闲簇,填充空闲簇链表项对应的结构体,把该空闲簇加到空闲簇链表。如果其相邻的簇是空闲簇,则要判断该簇和其相邻的簇所组成的连续空闲空间是否比簇组大,如果比簇组大,填充空闲簇组链表项对应的结构体,把该连续空闲空间加到空闲簇组链表;否则填充空闲簇链表项对应的结构体,把该连续空闲空间加到空闲簇链表。步骤103:当需要给文件分配空间时,直接到该内存空间中查找可以分配的空闲空间;具体的说就是,当给文件分配空间时,如果采用单簇分配,即给文件分配的是一个簇组,直接从空闲簇组链表头取空闲簇组,同时把表头从空闲簇组链表摘除。如果采用簇组分配,即给文件分配的是一簇,从空闲簇链表头取空闲簇,同时把表头的从起始簇可以连续使用的簇数减1,如果从起始簇可以连续使用的簇数减1后变为0,则把表头从空闲簇链表摘除。这里,采用单簇分配还是簇组分配是根据分配的文件的大小及磁盘的空闲空间决定的,如果分配的字节数大于簇组的大小且在磁盘上能找到不小于簇组大小的连续簇,则采用簇组分配,否则采用单簇分配。或者,步骤104:当从磁盘上删除文件时,把释放出来的空闲空间映射到该内存空-->间;具体的说就是,如果归还的空闲空间是一个簇组,则把该簇组的信息填充到空闲簇组对应的结构体后,直接放到空闲簇组链表的尾部。如果归还的是一簇,需要查找空闲簇链表,判断归还的簇是否可以和空闲簇链表中已经存在的空闲簇组成连续的空间。如果不能组本文档来自技高网...

【技术保护点】
一种在文件分配表中给文件分配空间的方法,其特征在于,预先设置有一块内存空间,用于存放磁盘的空闲空间,所述方法包括:步骤A:加载文件分配表时,将磁盘的空闲空间映射到该内存空间;步骤B:当需要给文件分配空间时,直接到该内存空间中查找待分配的空闲空间;或者,当从磁盘上删除文件时,将释放出来的空闲空间映射到该内存空间。

【技术特征摘要】
1、一种在文件分配表中给文件分配空间的方法,其特征在于,预先设置有一块内存空间,用于存放磁盘的空闲空间,所述方法包括:步骤A:加载文件分配表时,将磁盘的空闲空间映射到该内存空间;步骤B:当需要给文件分配空间时,直接到该内存空间中查找待分配的空闲空间;或者,当从磁盘上删除文件时,将释放出来的空闲空间映射到该内存空间。2、根据权利要求1所述的方法,其特征在于,预定义有空闲簇链表及空闲簇链表项对应的结构体、空闲簇组链表及空闲簇组链表项对应的结构体,则所述步骤A具体包括:步骤A1:扫描文件分配表,当找到空闲簇时,判断该空闲簇的相邻簇是否也为空闲簇,如果是,执行步骤A2,否则执行步骤A3;步骤A2:根据该空闲簇和其相邻簇构成的连续空闲空间与簇组的大小关系,决定将该连续空间加到空闲簇链表或者加到空闲簇组链表;步骤A3:直接将该空闲簇加到空闲簇链表。3、根据权利要求2所述的方法,其特征在于,所述步骤A2具体包括:判断该空闲簇和其相邻簇构成的连续空闲空间是否大于簇组:如果比簇组大,填充空闲簇组链表项对应的结构体,将该连续空闲空间加到空闲簇组链表,否则填充空闲簇链表项对应的结构体,将该连...

【专利技术属性】
技术研发人员:周立超杨骐周元庆颜伟
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1