[发明专利]一种嵌入式系统中文件系统的缓冲方法及系统在审
申请号: | 201310692885.1 | 申请日: | 2013-12-17 |
公开(公告)号: | CN103699613A | 公开(公告)日: | 2014-04-02 |
发明(设计)人: | 张德强 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/08 |
代理公司: | 成都宏顺专利代理事务所(普通合伙) 51227 | 代理人: | 周永宏 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 系统 文件系统 缓冲 方法 | ||
技术领域
本发明属于数据通信技术领域,涉及一种文件系统的缓冲方法及系统,具体是一种嵌入式系统中文件系统的缓冲方法及系统的设计。
背景技术
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
在嵌入式系统的文件系统中,包括FAT16、FAT32在内的大多数磁盘系统,其磁盘内部的分布形式基本上是:根目录区+文件分配表+文件数据区这种结构,其中文件分配表和文件数据区统称为系统区,但是文件分配表占用磁盘空间的比例很小,大部分是文件数据区。为了提高性能,文件系统基本上都会分配一小段内存,作为磁盘的缓冲,缓冲区以扇区为单位进行缓冲,并按照一定的算法,在缓冲和磁盘间调度。磁盘缓冲看作为整个磁盘,是一个一个扇区,并不区分哪里是数据区,哪里是文件分配表,对整个磁盘的所有扇区统一缓冲。文件分配表部分的扇区访问特点是:访问频繁、每次访问数据量少,访问有连续性、就近性、重复性;数据区部分扇区访问特点是:单次访问数据量大,数据较少且,具且很少重复访问。由于嵌入式系统磁盘缓冲区大小有限,常常有文件分配表给数据区让路的情况,而文件分配表全部恰恰是需要频繁访问的,因而它频繁的失效,需要频繁的从磁盘刷新。对于SD卡或flash磁盘系统,文件分配表碎片化的访问会带来大量的扇区擦除和搬移动作;对于硬盘光盘这样的磁盘,会让机械磁头在文件分配表和数据区间频繁移动,对磁盘的总体性能有很大影响。
发明内容
本发明所要解决的技术问题是针对现有的嵌入式系统中的文件系统中文件分配表的访问与数据区的访问存在冲突的缺点,提供一种嵌入式系统中文件系统的缓冲方法及缓冲系统。
本发明解决其技术问题采用的技术方案是:一种嵌入式系统中文件系统的缓冲方法,具体包括:
S1、设置文件分配表FAT缓冲区在磁盘内的结束位置在磁盘内设为内存变量PA;
S2、将磁盘内的缓冲区cache划分为第一缓冲区和第二缓冲区两个区域,所述第一缓冲区和第二缓冲区分别作为文件分配表FAT的缓冲区和文件数据的缓冲区;
S3、嵌入式文件系统向磁盘内的缓冲区发起一次磁盘调用,判断此次磁盘调用的扇区号落在哪个缓冲区,并将访问请求传递到对应的缓冲区,如果请求中的磁盘扇区号小于或等于文件分配表FAT在磁盘内的结束位置,所述文件分配表FAT缓冲区在磁盘内的结束位置在磁盘内设为内存变量PA,则访问请求传递到第一缓冲区,否则访问请求传递到第二缓冲区。
进一步的,所述步骤S1具体为:读取磁盘内的引导扇区,根据引导扇区中文件分配表FAT的数目和每个文件分配表FAT的大小,计算出文件分配表FAT在磁盘内的结束位置。
进一步的,所述第二缓冲区的区域大小大于第一缓冲区的区域大小。
进一步的,所述步骤S2还包括:修改磁盘驱动的描述句柄,将磁盘描述句柄的数据成员的缓冲修改为两个数据成员,分别为DiskCacheFat和DiskCacheDat,并在cache初始化时分别对DiskCacheFat和DiskCacheDat两个数据成员进行初始化,使其缓冲指针分别指向第一缓冲区和第二缓冲区,缓冲大小分别设置为第一缓冲区和第二缓冲区的大小。
进一步的,在进行所述步骤S3之前,还包括:将底层磁盘扇区的读写函数参数增加一个cache指针参数,所述cache指针参数用于指明文件系统输入输出请求向哪个cache发起。
进一步的,所述步骤S3具体为:嵌入式文件系统向磁盘内的缓冲区发起一次磁盘调用,请求参数中包含有起始需要访问的磁盘扇区号,记为SecId,如果SecId小于或等于PA,则用DiskCacheFat作为参数,调用读写函数向文件分配表FAT缓冲区第一缓冲区发起读写请求;如果SecId大于PA,则用DiskCacheDat作为参数,调用读写函数向文件数据的缓冲区第二缓冲区发起读写请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310692885.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:气流可调雾化器
- 下一篇:一种通过WIFI网络遥控的装置