CN102855327B - 一种小型嵌入式文件存储管理系统 - Google Patents
一种小型嵌入式文件存储管理系统 Download PDFInfo
- Publication number
- CN102855327B CN102855327B CN201210346964.2A CN201210346964A CN102855327B CN 102855327 B CN102855327 B CN 102855327B CN 201210346964 A CN201210346964 A CN 201210346964A CN 102855327 B CN102855327 B CN 102855327B
- Authority
- CN
- China
- Prior art keywords
- block
- file
- piece number
- points
- last
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明是一种小型嵌入式文件存储管理系统。它是将存储器的空间分成两部分,一部分是区块分配表区,其由一个特殊0区块信息单元和若干普通区块信息单元组成;另一部分是文件数据存储区,该区采用区块化管理方式,由若干个大小相同的数据存储区块组成;每一个数据存储区块都有一个对应的普通区块信息单元,通过各个区块信息单元形成由文件环形双向链表、未用区块环形单向链表和文件区块线形单向链表三条链表组成的链表系统来链接所有的区块,并通过设置区块信息单元中的各种状态参数对链表系统进行管理。本发明基于存储器区块化管理方式、适用于小容量存储器文件管理,能够高效的存取数据,减少存储空间的浪费,方便文件的管理,保证数据的安全性。
Description
技术领域
本发明是一种小型嵌入式文件存储管理系统,涉及数字数据处理装置和信息的存贮技术领域。
背景技术
随着各种仪器设备的发展,各种小容量存储器在设计中已经变的不可或缺。因此,在小容量存储器上实现文件管理系统也变的非常重要。
现有很多小容量存储器的文件管理方法是:首先,根据存储器容量、文件大小和文件数目划分存储器的存储空间,然后计算出各空间的首地址,并将文件依次存入指定首地址的空间内。这样的存储管理方法存在很多弊端:当存储器剩余空间、所存文件大小或文件数目发生变化时,如果不重新分配存储空间可能会造成存储空间浪费或;很多小容量存储器的文件管理方法虽然在可以任意改变存储器大小,文件大小和数目,但是,因为其索引的不完善导致读取,写入和删除等程序的运行很慢,影响存储器的效率,甚至影响整个仪器设备的运行效率和流畅度。
对于小容量存储器来说,空间的合理利用既能节省存储空间,又能提高存储效率,所以,一个好的文件管理系统对于存储空间的优化管理是尤其重要的。它能够更高效地存取数据,减少存储空间的浪费,加快程序运行速度,便于文件的索引、添加、修改和删除。最重要的是当存储器正常工作期间发生掉电时,它可以保证所存储文件数据的完整性和安全性,并且如果数据因为某些特殊原因出现问题时,也可以进行数据恢复。
CN1405683A公开了一种FLASH存储文件管理方法,CN102103597A公开了一种DSP嵌入式FLASH文件存储系统,但它们都不够理想。
发明内容
本发明的目的是发明一种基于存储器区块化管理方式、适用于小容量存储器文件管理、能够高效的存取数据、减少存储空间的浪费、方便文件的管理、保证数据的安全性的小型嵌入式文件存储管理系统。
本发明采用了如下技术方案来实现:将存储器的空间分成两部分(图1),一部分是区块分配表区(表1),其由一个特殊0区块信息单元和若干普通区块信息单元组成;另一部分是文件数据存储区,该区采用区块化管理方式,由若干个大小相同的数据存储区块组成。每一个数据存储区块都有一个对应的普通区块信息单元,通过各个区块信息单元形成由文件环形双向链表、未用区块环形单向链表和文件区块线形单向链表三条链表组成的链表系统(图2、3、4)来链接所有的区块,并通过设置区块信息单元中的各种状态参数对链表系统(图2、3、4)进行管理。
在该文件管理系统的区块管理中使用了三个链表:
1、文件环形双向链表(见图2);
区块信息0将下一文件首块号指向文件1,文件1将下一文件首块号指向文件2,文件2将下一文件首块号指向文件3,一直到文件n-1将下一文件首块号指向文件n,文件n将下一文件首块号指回区块信息0;区块信息0将最后一文件首块号指向文件n,文件n将最后一文件首块号指向文件n-1,文件n-1将最后一文件首块号指向文件n-2,一直到文件2将最后一文件首块号指向文件1,文件1将最后一文件首块号指回区块信息0;
2、未用区块环形单向链表(见图3);
区块信息0将下一未用区块号指向未用区块1,未用区块1将下一未用区块号指向未用区块2,如此,一直到未用区块n-2将下一未用区块号指向未用区块n-1,未用区块n-1将下一未用区块号指向未用区块n,未用区块n将下一未用区块号指回区块信息0;区块信息0将最后一未用区块号指向未用区块n;
3、文件区块线形单向链表(见图4);
文件X首区块将下一块号指向文件X区块1,文件X区块1将下一块号指向文件X区块2,文件X区块2将下一块号指向文件X区块3,一直到文件X区块n-2将下一块号指向文件X区块n-1,文件X区块n-1将下一块号指向文件X区块n。
区块分配表内容解释:
文件标号:所存储文件按存储先后顺序的标号(在该文件管理系统中暂时没有用到);
下一块号:同一文件所包括的区块的链表指向,用于串联整个文件所包含的区块;
下一文件首块号:用于记录下一文件的首块号,用于形成文件环形链表;
上一文件首块号:用于记录上一文件的首块号,用于形成文件环形链表;
区块标号:记录了当前区块的区块号,方便区块管理和链表的指向;
下一未用区块号:用于记录下一未用区块的区块号,用于形成未用区块环形链表;
最后一未用区块号:用于记录链表最后一个未用区块的区块号,用于形成环形链表;
文件链表长度:用于记录文件个数,便于快速读出存储器内的文件总个数。
在此链表结构中,区块信息0(表1)的作用尤其重要,从该区块可以直接读出所存储文件数,可以根据链表算出未用区块数。其中最重要的:一是,可以根据“最后一文件首块号”直接读出“文件环形双向链表”的首区块号,从而在该链表的末端加入新的文件;二是,可以根据“下一未用区块号”读出“未用区块环形单向链”的第一个未用区块,从而用于新文件存储空间的申请;三是,可以根据“最后一个未用区块号”直接找到“未用区块环形单向链表”的末尾,从而将已删除文件的区块根据“文件区块线形单向链表”直接加入“未用区块环形单向链表”。
本发明的优点是:
1)可以方便的实现文件的添加,文件的删除,文件的提取;
2)可以充分利用闲置的区块用于存储,避免存储空间的浪费;
3)可以加快程序的运行速度;
4)可以保证数据存储时其它已存储数据的安全性;
5)当由于断电等特殊情况的发生而导致区块分配表的破坏时,可以利用这三条链表推理出各个区块相互间的链接关系,从而对区块分配表和链表进行修复,恢复全部或者部分数据。
附图说明
图1存储器区块分配表
图2文件环形双向链表
图3未用区块环形单向链表
图4文件区块线形单向链表
具体实施方式
下面结合该发明的附图,对该发明的实施技术方案进行详细、完整和清晰的描述。
实施例.将存储器的空间分成两部分(图1),一部分是区块分配表区(表1),其由一个特殊0区块信息单元和若干普通区块信息单元组成;另一部分是文件数据存储区,该区采用区块化管理方式,由若干个大小相同的数据存储区块组成。每一个数据存储区块都有一个对应的普通区块信息单元,通过各个区块信息单元形成由三条链表组成的链表系统(图2、3、4)来链接所有的区块,并通过设置区块信息单元中的各种状态参数对链表系统(图2、3、4)进行管理。
初始化文件管理系统:
一、如图1所示,将存储器分成区块分配表区和文件数据存储区。
二、如表1所示,生成区块分配表,即将区块分配表初始化,在表1中所示的“区块标号”中写入对应的区块标号,使用“下一未用区块标号”从0区块信息开始,顺序将区块全部分配到“未用区块环形单向链表”(图3)中,其余链表为空,形成链表系统(图2、3、4)。
在该文件管理系统的区块管理中使用了三个链表:
1、文件环形双向链表(见图2);
区块信息0将下一文件首块号指向文件1,文件1将下一文件首块号指向文件2,文件2将下一文件首块号指向文件3,一直到文件n-1将下一文件首块号指向文件n,文件n将下一文件首块号指回区块信息0;区块信息0将最后一文件首块号指向文件n,文件n将最后一文件首块号指向文件n-1,文件n-1将最后一文件首块号指向文件n-2,一直到文件2将最后一文件首块号指向文件1,文件1将最后一文件首块号指回区块信息0;
所述文件标号:所存储文件按存储先后顺序的标号;
所述下一文件首块号:用于记录下一文件的首块号,用于形成文件环形链表;
所述上一文件首块号:用于记录上一文件的首块号,用于形成文件环形链表;
所述区块标号:记录了当前区块的区块号,方便区块管理和链表的指向所述文件链表长度:用于记录文件个数,便于快速读出存储器内的文件总个数。
2、未用区块环形单向链表(见图3);
区块信息0将下一未用区块号指向未用区块1,未用区块1将下一未用区块号指向未用区块2,如此,一直到未用区块n-2将下一未用区块号指向未用区块n-1,未用区块n-1将下一未用区块号指向未用区块n,未用区块n将下一未用区块号发回区块信息0;区块信息0将最后一未用区块号指向未用区块n;
所述下一未用区块号:用于记录下一未用区块的区块号,用于形成未用区块环形链表;
所述最后一未用区块号:用于记录链表最后一个未用区块的区块号,用于形成环形链表;
3、文件区块线形单向链表(见图4);
文件X首区块将下一块号指向文件X区块1,文件X区块1将下一块号指向文件X区块2,文件X区块2将下一块号指向文件X区块3,一直到文件X区块n-2将下一块号指向文件X区块n-1,文件X区块n-1将下一块号指向文件X区块n。
所述下一块号:同一文件所包括的区块的链表指向,用于串联整个文件所包含的区块;
文件管理系统的读取,写入,删除:
一、读取
1)从0区块信息(表1)的“下一文件首块号”开始,根据“文件环形双向链表”(图2)读出相应文件的“区块标号”(表1);
2)根据当前文件所在的首块信息中的“下一块号”(表1)和“文件区块线形单向链表”(图4)读出整个文件的链表;
3)根据读出的链表计算出数据存储区所有对应的存储区块,然后读出文件数据。
二、写入
1)从0区块信息(表1)的“下一未用区块标号”(图3)读出相应的“区块标号”;
2)根据读出的“区块标号”和“未用区块环形单向链表”(图3)修改相应的分配表信息,从而将该区块从“未用区块环形单向链表”(图3)中申请出来;
3)根据“文件环形双向链表”(图2)修改相应的分配表信息,从而将该区块添加到“文件环形双向链表”(图2)的末尾;
4)如果数据满一个区块并需要继续写入,则重复步骤1)和2);
5)根据“文件区块线形单向链表”(图4)修改相应的分配表,从而将申请出的区块添加到“文件区块线形单向链表”(图4)的末尾;
6)重复步骤4)和5),直到存储完毕。
三、删除
1)从0区块信息(表1)的“下一文件首块号”开始,根据“文件环形双向链表”(图2)读出要删除的文件的“区块标号”;
2)根据读出的“区块标号”和“文件环形双向链表”(图2)修改相应的分配表,从而将“文件的首块号”从“文件环形双向链表”(图2)中删除;
3)根据“文件区块线形单向链表”(图4)修改相应的分配表,从而将所有的属于该文件的区块依次删除到“未用区块环形单向链表”(图3)的末尾,最后一条“文件区块线形单向链表”被删除,即一个文件被删除。
本例只需要通过修改分配表来对文件进行写入和删除,无需擦除存储区域,大大提高的存储效率。
表1文件管理系统的区块分配表
本例经试验,可以方便的实现文件的添加,文件的删除,文件的提取;可以充分利用闲置的区块用于存储,避免存储空间的浪费;可以加快程序的运行速度;可以保证数据存储时其它已存储数据的安全性;当由于断电等特殊情况的发生而导致区块分配表的破坏时,可以利用这三条链表推理出各个区块相互间的链接关系,从而对区块分配表和链表进行修复,恢复全部或者部分数据。
Claims (3)
1.一种小型嵌入式文件存储管理系统,其特征是将存储器的空间分成两部分,一部分是区块分配表区,其由一个0区块信息单元和若干普通区块信息单元组成;另一部分是文件数据存储区,该区采用区块化管理方式,由若干个大小相同的数据存储区块组成;每一个数据存储区块都有一个对应的普通区块信息单元,通过各个区块信息单元形成由文件环形双向链表、未用区块环形单向链表和文件区块线形单向链表三条链表组成的链表系统来链接所有的区块,并通过设置区块信息单元中的各种状态参数对链表系统进行管理;
所述文件环形双向链表为:
区块信息0将下一文件首块号指向文件1,文件1将下一文件首块号指向文件2,文件2将下一文件首块号指向文件3,一直到文件n-1将下一文件首块号指向文件n,文件n将下一文件首块号指回区块信息0;区块信息0将最后一文件首块号指向文件n,文件n将最后一文件首块号指向文件n-1,文件n-1将最后一文件首块号指向文件n-2,一直到文件2将最后一文件首块号指向文件1,文件1将最后一文件首块号指回区块信息0;
所述文件标号为:所存储文件按存储先后顺序的标号;
下一文件首块号为:用于记录下一文件的首块号,用于形成文件环形链表;
上一文件首块号为:用于记录上一文件的首块号,用于形成文件环形链表;
所述区块标号为:记录了当前区块的区块号,方便区块管理和链表的指向;
所述文件链表长度为:用于记录文件个数,便于快速读出存储器内的文件总个数。
2.根据权利要求1所述的一种小型嵌入式文件存储管理系统,其特征是所述未用区块环形单向链表为:
区块信息0将下一未用区块号指向未用区块1,未用区块1将下一未用区块号指向未用区块2,如此,一直到未用区块n-2将下一未用区块号指向未用区块n-1,未用区块n-1将下一未用区块号指向未用区块n,未用区块n将下一未用区块号指回区块信息0;区块信息0将最后一未用区块号指向未用区块n;
所述下一未用区块号为:用于记录下一未用区块的区块号,用于形成未用区块环形链表;
所述最后一未用区块号为:用于记录链表最后一个未用区块的区块号,用于形成环形链表。
3.根据权利要求1所述的一种小型嵌入式文件存储管理系统,其特征是所述文件区块线形单向链表为:
文件X首区块将下一块号指向文件X区块1,文件X区块1将下一块号指向文件X区块2,文件X区块2将下一块号指向文件X区块3,一直到文件X区块n-2将下一块号指向文件X区块n-1,文件X区块n-1将下一块号指向文件X区块n;
所述下一块号为:同一文件所包括的区块的链表指向,用于串联整个文件所包含的区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210346964.2A CN102855327B (zh) | 2012-09-18 | 2012-09-18 | 一种小型嵌入式文件存储管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210346964.2A CN102855327B (zh) | 2012-09-18 | 2012-09-18 | 一种小型嵌入式文件存储管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102855327A CN102855327A (zh) | 2013-01-02 |
CN102855327B true CN102855327B (zh) | 2015-12-02 |
Family
ID=47401915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210346964.2A Active CN102855327B (zh) | 2012-09-18 | 2012-09-18 | 一种小型嵌入式文件存储管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102855327B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050251B (zh) * | 2014-06-11 | 2017-03-08 | 深圳市茁壮网络股份有限公司 | 一种文件管理方法及管理系统 |
CN110109624B (zh) * | 2019-05-13 | 2020-07-14 | 成都易我科技开发有限责任公司 | 一种调整ntfs分区的方法及装置 |
CN112445792B (zh) * | 2019-09-04 | 2024-05-24 | 中移物联网有限公司 | 区块链区块数据存储方法、装置、电子设备及存储介质 |
CN111191082B (zh) * | 2019-12-23 | 2023-09-05 | 宁波港信息通信有限公司 | 数据管理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1285549A (zh) * | 2000-10-23 | 2001-02-28 | 大唐电信科技股份有限公司微电子分公司 | 采用逻辑区间链表寻址的智能卡嵌入式软件的实现方法 |
CN101034416A (zh) * | 2007-04-25 | 2007-09-12 | 北京中星微电子有限公司 | 一种利用文件分配表进行文件寻道的方法及系统架构 |
CN101042696A (zh) * | 2006-03-23 | 2007-09-26 | 北京握奇数据系统有限公司 | 智能卡存储系统及该系统中文件创建管理的方法 |
CN101692252A (zh) * | 2009-08-31 | 2010-04-07 | 上海宝信软件股份有限公司 | 文件空闲块的分配和回收方法 |
CN101782918A (zh) * | 2008-12-31 | 2010-07-21 | 北京泉舜广恒科技有限公司 | 针对实时性的媒体数据的档案系统vfs设计算法 |
-
2012
- 2012-09-18 CN CN201210346964.2A patent/CN102855327B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1285549A (zh) * | 2000-10-23 | 2001-02-28 | 大唐电信科技股份有限公司微电子分公司 | 采用逻辑区间链表寻址的智能卡嵌入式软件的实现方法 |
CN101042696A (zh) * | 2006-03-23 | 2007-09-26 | 北京握奇数据系统有限公司 | 智能卡存储系统及该系统中文件创建管理的方法 |
CN101034416A (zh) * | 2007-04-25 | 2007-09-12 | 北京中星微电子有限公司 | 一种利用文件分配表进行文件寻道的方法及系统架构 |
CN101782918A (zh) * | 2008-12-31 | 2010-07-21 | 北京泉舜广恒科技有限公司 | 针对实时性的媒体数据的档案系统vfs设计算法 |
CN101692252A (zh) * | 2009-08-31 | 2010-04-07 | 上海宝信软件股份有限公司 | 文件空闲块的分配和回收方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102855327A (zh) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其系统 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN104063186A (zh) | 一种电子设备的数据访问方法 | |
CN102081577A (zh) | Flash存储器的数据存储结构及其数据操作方式 | |
CN102855327B (zh) | 一种小型嵌入式文件存储管理系统 | |
CN101582076A (zh) | 一种基于数据库的重复数据删除方法 | |
CN106407050A (zh) | 一种数据存储方法 | |
CN106682077A (zh) | 一种基于Hadoop技术的海量时序数据存储实现方法 | |
CN101882141A (zh) | 一种实现重复数据数据删除的方法和系统 | |
CN103914522A (zh) | 一种应用于云存储重复数据删除的数据块合并方法 | |
CN102339254A (zh) | 用于智能电能表的flash数据存储方法 | |
JP5574464B2 (ja) | ストレージリソースの階層化管理方法及びシステム | |
CN105718530A (zh) | 文件存储系统及其文件存储控制方法 | |
CN102158349A (zh) | 一种日志管理装置及方法 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN100463492C (zh) | 安全接收芯片存储台名的方法 | |
CN103885887A (zh) | 用户数据存储方法、读取方法及系统 | |
CN104123237A (zh) | 海量小文件分级存储方法及系统 | |
CN102024060B (zh) | 存储文件及恢复误删除文件的方法 | |
CN103473258A (zh) | 云存储文件系统 | |
CN103268270A (zh) | 快照的管理方法和装置 | |
CN103559139A (zh) | 一种数据存储方法及装置 | |
CN105045850A (zh) | 云存储日志文件系统中垃圾数据回收方法 | |
CN104985939A (zh) | 一种激光打标机控制方法和激光打标机 | |
CN102609484A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211208 Address after: Room 08-10, 6 / F, block a, No. 5, Dongtucheng Road, Chaoyang District, Beijing 100013 Patentee after: National Petroleum and natural gas pipeline network Group Co.,Ltd. Address before: 100007 Oil Mansion, 9 North Avenue, Dongcheng District, Beijing, Dongzhimen Patentee before: PETROCHINA Co.,Ltd. |
|
TR01 | Transfer of patent right |