[发明专利]文件空闲块的分配和回收方法有效
申请号: | 200910194886.7 | 申请日: | 2009-08-31 |
公开(公告)号: | CN101692252A | 公开(公告)日: | 2010-04-07 |
发明(设计)人: | 沈春锋;张超锋;丛力群;闻扬;董文生;李振光 | 申请(专利权)人: | 上海宝信软件股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海金盛协力知识产权代理有限公司 31242 | 代理人: | 罗大忱 |
地址: | 201203 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件 空闲 分配 回收 方法 | ||
1.一种文件空闲块的分配方法,其特征在于:
将文件按预设大小划分成N个文件块,并对文件块进行编号,将N个文件块中K个作为 索引块,索引块采用双向链表连接,索引块中存储有本索引块的前索引块序号、后索引块序 号和本索引块管理的空闲块的块数,根据索引块在双向链表中的顺序依次分配索引块管理的 空闲块,并相应修改索引块中存储的信息;
所述N个文件块中设有一保留块,所述索引块中的第一个索引块中的前索引块序号和最 后一个索引块中的后索引块序号为保留块的序号;
所述N个文件块编号依次为0、1、2、…、N-1,所述保留块的块号为0,所述索引块的 块号依次为1到K,每一索引块最多可存储m个文件块的编号,从序号为1的索引块开始,将 从N-1开始到K+1的整数依次写入该K个索引块中;
在系统启动时,从文件保留块中获取索引块链表的首位置,然后在链表中遍历,如果索 引块中的后索引块序号为0,将该索引块读入内存作为当前索引块,读取当前索引块中的第三 个参数:块数h,如果h大于0,进入步骤11);如果h等于0,则转步骤12):
11)通过块数获取当前索引块管理的空闲块的序号;
将空闲块的序号分配给用户使用;
当前索引块中的块数减1;
12)如果当前索引块的前索引块序号不为0,则进入步骤121);如果当前索引块的前索
引块序号为0,则转步骤122):
121)读取当前索引块中的前索引块序号;
将当前索引块作为空闲块,将其序号分配给用户;
将前索引块中的后索引块序号置为0;
122)将当前索引块作为空闲块,将其序号分配给用户;
将保留块中的索引块链表首序号置为0。
2.一种文件空闲块的回收方法,其特征在于:
将文件按预设大小划分成N个文件块,并对文件块进行编号,将N个文件块中K个作为 索引块,索引块采用双向链表连接,索引块中存储有本索引块的前索引块序号、后索引块序 号和本索引块管理的空闲块的块数,根据索引块在双向链表中的顺序由索引块依次回收空闲 块,并相应修改索引块中存储的信息;
所述N个文件块中设有一保留块,所述索引块采用双向链表连接,所述索引块中的第一 个索引块中的前索引块序号和最后一个索引块中的后索引块序号为保留块的序号;
所述N个文件块编号依次为0、1、2、…、N-1,所述保留块的块号为0,所述索引块的 块号依次为1到K,每一索引块最多可存储m个文件块的编号,从序号为1的索引块开始,将 从N-1开始到K+1的整数依次写入该K个索引块中;
在系统启动时,从文件保留块中获取索引块链表的首位置,在链表中遍历,判断索引块 链表首序号是否为0,如果是,进入步骤21);否则转步骤22):
21)置要释放的空闲块的前索引块序号为0,置其后索引块序号为0,置其块数为0;
置保留块中的索引块链表首序号为要释放的空闲块的序号;
22)在索引块链表中遍历,如果索引块中的后索引块序号为0,将该最后一个索引块读入 内存作为当前索引块,读取当前索引块中的第三个参数:块数h;如果h小于m,则进入步骤 221);如果h等于m,则转步骤222);
221)将释放的空闲块的序号写入当前索引块第h+1个数据块序号的位置,当前索引块的 块数h加1;
222)将要释放的空闲块当作索引块,置其前索引块序号为当前索引块的序号,置其后索 引块序号为0,置其块数为0;置当前索引块的后索引块序号为要释放的空闲块的序号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海宝信软件股份有限公司,未经上海宝信软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910194886.7/1.html,转载请声明来源钻瓜专利网。