[发明专利]一种在文件分配表中给文件分配空间的方法及装置有效
申请号: | 200810110793.7 | 申请日: | 2008-05-30 |
公开(公告)号: | CN101286177A | 公开(公告)日: | 2008-10-15 |
发明(设计)人: | 周立超;杨骐;周元庆;颜伟 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 信息产业部电子专利中心 | 代理人: | 吴永亮 |
地址: | 518057广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 分配 空间 方法 装置 | ||
技术领域
本发明涉及计算机原理领域,尤其涉及一种在文件分配表中给文件分配空间的方法及装置。
背景技术
在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表的值建立的空闲簇组链表的示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810110793.7/2.html,转载请声明来源钻瓜专利网。