FAT文件数据读取/写入方法、系统和移动通信终端技术方案

技术编号:2917793 阅读:460 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及计算机技术,特别涉及一种基于Linux操作系统的FAT文件数据读取/写入方法、系统和移动通信终端,用以提高存储设备中的FAT文件数据读取/写入操作速度。本发明专利技术实施例在Linux操作系统中,为提高FAT文件的读取/写入速度,将逻辑块的大小设定为连续2个或2个以上扇区,并根据文件数据在存储设备中占用的逻辑块号码确定每一次数据读取/写入操作的第一个扇区号码,根据第一个扇区号码和逻辑块包含的扇区个数,利用一次数据读取/写入操作命令就可以完成一个逻辑块大小数据的操作,从而成倍减少了数据读取/写入操作命令的发送次数,提高了存储设备中的FAT文件数据读取/写入操作速度。

【技术实现步骤摘要】

本专利技术涉及计算机技术,特别涉及一种基于Linux操作系统的FAT文件数据读取/写入技术。
技术介绍
Linux是一套免费使用和自由传播的操作系统,主要用于基于Intel x86系列中央处理器的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。Linux以高效性和灵活性著称,能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力,被广泛应用在各种具有多媒体处理能力的便携式设备中,例如手机、照相机等便携式设备。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,文件管理系统由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。从系统角度来看,文件管理系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。文件管理系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。Linux操作系统支持多种的文件管理系统格式,支持文件管理系统使用不同设备。Linux操作系统中的文件管理系统比较复杂,软件结构如图1所示,包括:VFS(虚拟文件管理系统层)、Disk Caches(磁盘数据缓冲区层)、MappingLayer(文件管理系统映射层)、Generic Block Layer(通用存储设备层)、I/Oschedule layer(输入/输出调度层)和Block Device Driver(存储设备驱动层),-->其中:VFS是最上层,不同的文件管理系统使用相同的软件接口,调用者不需要考虑实际的文件管理系统类型,只需要告诉VFS所要读取/写入的文件路径和文件名;Disk Caches位于VFS下层,为了提高读取/写入速度,已经读取/写入的数据暂时保存到数据缓冲区中,如果下次再次读取/写入这些数据可以直接操作数据缓冲区而不需要读取/写入设备。如果数据缓冲区没有需要的数据,VFS软件使用Mapping Layer层接口,根据所使用的具体文件管理系统得到用户所需要的文件数据在具体存储设备中的物理位置;VFS通过Generic Block Layer层和I/O schedule layer层,将读取/写入所需数据的起始物理位置、大小请求发送给Block Device Driver层;存储设备驱动层根据使用的具体不同的数据存储设备,发送读取/写入操作命令,完成一次读取/写入操作,将读取的数据保存到数据缓冲区中或者将数据缓冲区数据写入数据存储设备。其中:Generic Block Layer层、I/O schedule layer层和Block Device Driver层协调负责数据存储设备中的数据读取/写入管理。现有Linux操作系统以逻辑块(Block)为单位管理存储设备,并为每一个逻辑块设定对应的号码作为逻辑块的物理地址,VFS从具体的文件管理系统中获得的物理位置实际上就是文件数据在存储设备中占用的逻辑块号码信息。一个逻辑块的大小可以设定为一个或一个以上连续的扇区,而存储设备读取/写入操作的最小单位是一个扇区,读取/写入操作命令中需要指定读取/写入操作的数据所在的扇区。因此如图2所示,为方便管理,现有Linux操作系统中将一个逻辑块的大小设定为一个扇区,以保持扇区号码和逻辑块号码的一致,这样VFS从具体的文件管理系统中获得的逻辑块号码实质上就是扇区号码,可以直接将逻辑块号码作为扇区号码进行数据读取/写入控制。-->由于对每一个扇区中的数据进行读取/写入操作时,VFS都需要将数据所在扇区号码发送给Block Device Driver层,Block Device Driver层根据每次收到的扇区号码,在对应扇区中进行数据的读取/写入操作。例如当扇区大小只有一个sector(512字节)时,用户需要读取/写入4K字节数据时,VFS层需要发送给8次请求,由于VFS每一次发送请求都需要检查磁盘数据缓冲区所需要的数据是否存在,调用文件管理系统映射层得到文件所在的逻辑块号码,通过调用通用块设备层、输入/输出调度层和块设备驱动层向数据存储设备发送读取/写入操作命令,数据存储设备接收命令后需要一定时间后才能开始数据读取/写入操作。因此发送请求越多,各种开销和延时越大,数据读取/写入操作整体性能越低,数据读取/写入速度较慢,则无法满足多媒体业务对文件高速读写的要求。
技术实现思路
本专利技术实施例提供一种基于Linux操作系统的FAT文件数据读取/写入方法、系统和移动通信终端,用以提高存储设备中的FAT文件数据读取/写入操作速度。一种基于Linux操作系统的FAT文件数据读取/写入方法,包括:从FAT文件管理系统中获得存储FAT文件数据的逻辑块的号码,并分别根据每一个存储FAT文件数据的逻辑块的号码进行数据读取/写入操作,每一个逻辑块包括至少两个连续扇区,其中:每一次根据一个逻辑块号码进行的数据读取/写入操作过程具体包括:根据逻辑块号码确定本次需要进行数据读取/写入操作的第一个扇区号码N为:N=n×m+q,其中:n为逻辑块号码,m为一个逻辑块包含的扇区个数,m为大于等于2的整数,q为FAT文件信息区包含的扇区个数x除以m的余数;向数据存储设备的管理单元发送携带所述N和m的数据读取/写入操作命令;-->所述数据存储设备的管理单元根据数据读取/写入操作命令中的N和m,在以第N个扇区开始的连续m个扇区上分别进行数据读取/写入操作。较佳的,从FAT文件管理系统中获得存储FAT文件数据的逻辑块的号码之前,还包括:根据所述x和m确定q并将所述q保存到数据缓冲区中;以及在每一次根据一个逻辑块号码进行的数据读取/写入操作之前,还包括:从数据缓冲区获取q。较佳的,当进行FAT文件数据读取操作时,所述根据所述x和m确定q并将所述q保存到数据缓冲区中之前,还包括:确定数据缓冲区中是否已经保存有需要读的FAT文件数据,如果是则从数据缓冲区中读取该FAT文件数据,否则根据存储FAT文件数据的逻辑块个数,申请相应大小的数据缓冲区后,再执行根据所述x和m确定q并将所述q保存到数据缓冲区中。一种基于Linux操作系统的FAT文件数据读取/写入系统,包括:数据存储设备,用于存储FAT文件数据,所述数据存储设备包含多个逻辑块,每一个逻辑块包含m个扇区,m为大于等于2的整数;FAT文件管理单元,用于管理存储的FAT文件数据,所述FAT文件的存储区包含FAT文件信息区和FAT文件数据区,所述FAT文件信息区包含x个扇区;虚拟文件管理单元,用于从所述FAT文件管理单元中获得存储FAT文件数据的逻辑块的号码,并分别根据每一个逻辑块的号码确定每一次进行数据读取/写入操作的对应的第一个扇区号码N为:N=n×m+q,其中:n为逻辑块号码,q为所述x除以m的余数,并分别根据确定出的N发送一次携带所述N和m的数据读取/写入操作命令;数据存储管理单元,用于接收所述虚拟文件管理单元发送的读取/写入操作命令,并本文档来自技高网
...

【技术保护点】
一种基于Linux操作系统的FAT文件数据读取/写入方法,包括:从FAT文件管理系统中获得存储FAT文件数据的逻辑块的号码,并分别根据每一个存储FAT文件数据的逻辑块的号码进行数据读取/写入操作,每一个逻辑块包括至少两个连续扇区,其中:每一次根据一个逻辑块号码进行的数据读取/写入操作过程具体包括: 根据逻辑块号码确定本次需要进行数据读取/写入操作的第一个扇区号码N为:N=n×m+q,其中:n为逻辑块号码,m为一个逻辑块包含的扇区个数,m为大于等于2的整数,q为FAT文件信息区包含的扇区个数x除以m的余数; 向数据存储设备的管理单元发送携带所述N和m的数据读取/写入操作命令; 所述数据存储设备的管理单元根据数据读取/写入操作命令中的N和m,在以第N个扇区开始的连续m个扇区上分别进行数据读取/写入操作。

【技术特征摘要】
1、一种基于Linux操作系统的FAT文件数据读取/写入方法,包括:从FAT文件管理系统中获得存储FAT文件数据的逻辑块的号码,并分别根据每一个存储FAT文件数据的逻辑块的号码进行数据读取/写入操作,每一个逻辑块包括至少两个连续扇区,其中:每一次根据一个逻辑块号码进行的数据读取/写入操作过程具体包括:根据逻辑块号码确定本次需要进行数据读取/写入操作的第一个扇区号码N为:N=n×m+q,其中:n为逻辑块号码,m为一个逻辑块包含的扇区个数,m为大于等于2的整数,q为FAT文件信息区包含的扇区个数x除以m的余数;向数据存储设备的管理单元发送携带所述N和m的数据读取/写入操作命令;所述数据存储设备的管理单元根据数据读取/写入操作命令中的N和m,在以第N个扇区开始的连续m个扇区上分别进行数据读取/写入操作。2、如权利要求1所述的方法,其特征在于:从FAT文件管理系统中获得存储FAT文件数据的逻辑块的号码之前,还包括:根据所述x和m确定q并将所述q保存到数据缓冲区中;以及在每一次根据一个逻辑块号码进行的数据读取/写入操作之前,还包括:从数据缓冲区获取q。3、如权利要求2所述的方法,其特征在于,当进行FAT文件数据读取操作时,所述根据所述x和m确定q并将所述q保存到数据缓冲区中之前,还包括:确定数据缓冲区中是否已经保存有需要读的FAT文件数据,如果是则从数据缓冲区中读取该FAT文件数据,否则根据存储FAT文件数据的逻辑块个数,申请相应大小的数据缓冲区后,再执行根据所述x和m确定q并将所述q保存到数据缓冲区中。4、一种基于Linux操作系统的FAT文件数据读取/写入系统,包括:数据存储设备,用于存储FAT文件数据,所述数据存储设备包含多个逻辑块,每一个逻辑块包含m个扇区,m为大于等于2的整数;FAT文件管理单元,用于管理存储的FAT文件数据,所述FAT文件的存储区包含FAT文件信息区和FAT文件数据区,所述FAT文件信息区包含x个扇区;虚拟文件管理单元,用于从所述FAT文件管理单元中获得存储FAT文件数据的逻辑块的号码,并分别根据每一个逻辑块的号码确定每一次进行数据读取/写入操作的对应的第一个扇区号码N为:N=n×m+q,其中:n为逻辑块号码,q为所述x除以m的余数,并分别根据确定出的N发送一次携带所述N和m的数据读取/写入操作命令;数据存储管理单元,用于接收所述虚拟文件管理单元发送的读取/写入操作命令,并在接收到每一个数据读取/写入操作命令时,根据其中的N和m,对以第N个扇区开始的连续m个扇区上分别进行数据读取/写入操作。5、如权利要求...

【专利技术属性】
技术研发人员:谢志宇
申请(专利权)人:青岛海信移动通信技术股份有限公司
类型:发明
国别省市:95[中国|青岛]

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

1