本发明涉及计算机领域,尤其涉及一种存储卡读和写方法和系统。
背景技术:
现有的存储卡写方法包括如下步骤:
步骤一一,用户空间至内核空间:用户空间的第一程序将写请求发送到内核中的专有文件系统,如安卓专有文件系统;
步骤一二,内核至用户空间:所述内核中的专有文件系将所述写请求发送到用户空间的第二程序;
步骤一三,用户空间至内核空间:所述用户空间的第二程序将所述写请求中具体要写的内容写入内核中的SD卡文件系统的缓存中;
步骤一四,当所述缓存中的内容积累到一定量,所述内核中的SD卡文件系统将所述缓存中的内容写入SD卡中。
现有的存储卡读方法包括如下步骤:
步骤二一,用户空间至内核:用户空间的第一程序将读请求发送到内核中的专有文件系统,如安卓专有文件系统;
步骤二二,内核至用户空间:所述内核中的专有文件系将所述读请求发送到用户空间的第二程序;
步骤二三,用户空间至内核:所述用户空间的第二程序将所述读请求发送给所述内核的SD卡文件系统;
步骤二四,所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
步骤二五,所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
现有的方案的缺点是:
1.不停的生成写缓存,会增加内存压力;
2.大量的无用写缓存占据了缓存空间,常用数据无法得到长时间缓存,降低系统性能;
3.用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,降低读写速度。
技术实现要素:
本发明的一个目的是提供一种存储卡读和写方法和系统,能够解决用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,降低读写速度的问题。
根据本发明的一个方面,提供了一种存储卡写方法,该方法包括:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
进一步的,上述方法中,根据所述写请求将具体要写的内容写入SD卡中,包括:
将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
根据本发明的另一面,还提供一种存储卡读方法,该方法包括:
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种存储卡读写方法,该方法包括:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
进一步的,上述中,根据所述写请求将具体要写的内容写入SD卡中,包括:
将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
根据本发明的另一方面,还提供了一种存储卡写系统,该系统包括:
发送模块,用于用户空间将写请求发送到内核中的的SD卡文件系统中;
写模块,用于所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
进一步的,上述系统中,所述写模块,用于将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
根据本发明的另一面,还提供一种存储卡读系统,该系统包括:
发送模块,用于用户空间将读请求发送到内核的SD卡文件系统;
读取模块,用于所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
反馈模块,用于所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种存储卡读写系统,该系统包括:
第一发送模块,用于用户空间将写请求发送到内核中的的SD卡文件系统中;
写模块,用于所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
第二发送模块,用于用户空间将读请求发送到内核的SD卡文件系统;
读取模块,用于所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
反馈模块,用于所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
进一步的,上述系统中,所述写模块,用于将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种计算器设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
根据本发明的另一面,还提供一种计算器设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种计算器设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
与现有技术相比,本发明通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。另外,通过直接输入/输出的方式写内容如码流文件至SD卡中,而不是先写入缓存中,再由缓存写入SD卡中,即码流数据直接写入存储卡中,不在内核中缓存,减小内存压力,内核空间的缓存中可以保存更多有效的内容,提升系统性能。本发明可以实现存储卡随机写速度提升20%-30%。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一实施例的存储卡写方法的流程图;
图2示出本发明一实施例的存储卡读方法的流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本发明一实施例的存储卡写方法包括如下步骤:
步骤S11,用户空间至内核:用户空间将写请求发送到内核中的的SD卡文件系统中;
步骤S12,所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
在此,本实施例通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。另外,通过直接输入/输出的方式写内容如码流文件至SD卡中,而不是先写入缓存中,再由缓存写入SD卡中,即码流数据直接写入存储卡中,不在内核中缓存,减小内存压力,内核空间的缓存中可以保存更多有效的内容,提升系统性能。本发明可以实现存储卡随机写速度提升20%-30%。
本发明一实施例的存储卡写方法中,根据所述写请求将具体要写的内容写入SD卡中,包括:
将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
在此,以直接输入/输出方式读写存储卡中的数据,同时,写文件时,每次写入的数据必须是块大小的整数倍,以避免写失败,保证可靠写入。
如图2所示,本发明一实施例的存储卡读方法包括如下步骤:
步骤S21,用户空间至内核:用户空间将读请求发送到内核的SD卡文件系统;
步骤S22,所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
步骤S23,所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
在此,本实施例通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。
本发明一实施例的存储卡读写方法,包括:
步骤S31,用户空间至内核:用户空间将写请求发送到内核中的的SD卡文件系统中;
步骤S32,所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
步骤S33,用户空间至内核:用户空间将读请求发送到内核的SD卡文件系统;
步骤S34,所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
步骤S35,所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
在此,本实施例通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。另外,通过直接输入/输出的方式写内容如码流文件至SD卡中,而不是先写入缓存中,再由缓存写入SD卡中,即码流数据直接写入存储卡中,不在内核中缓存,减小内存压力,内核空间的缓存中可以保存更多有效的内容,提升系统性能。本发明可以实现存储卡随机写速度提升20%-30%。
本发明一实施例的存储卡读写方法中,根据所述写请求将具体要写的内容写入SD卡中,包括:
将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
在此,以直接输入/输出方式读写存储卡中的数据,同时,写文件时,每次写入的数据必须是块大小的整数倍,以避免写失败,保证可靠写入。
根据本发明的另一面,还提供一种存储卡写系统,该系统包括:
发送模块,用于用户空间将写请求发送到内核中的的SD卡文件系统中;
写模块,用于所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
在此,本实施例通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。另外,通过直接输入/输出的方式写内容如码流文件至SD卡中,而不是先写入缓存中,再由缓存写入SD卡中,即码流数据直接写入存储卡中,不在内核中缓存,减小内存压力,内核空间的缓存中可以保存更多有效的内容,提升系统性能。本发明可以实现存储卡随机写速度提升20%-30%。
本发明一实施例的存储卡写系统中,所述写模块,用于将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
在此,以直接输入/输出方式读写存储卡中的数据,同时,写文件时,每次写入的数据必须是块大小的整数倍,以避免写失败,保证可靠写入。
根据本发明的另一面,还提供一种存储卡读系统,该系统包括:
发送模块,用于用户空间将读请求发送到内核的SD卡文件系统;
读取模块,用于所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
反馈模块,用于所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
在此,本实施例通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。
根据本发明的另一面,还提供一种存储卡读写系统,该系统包括:
第一发送模块,用于用户空间将写请求发送到内核中的的SD卡文件系统中;
写模块,用于所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
第二发送模块,用于用户空间将读请求发送到内核的SD卡文件系统;
读取模块,用于所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
反馈模块,用于所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
在此,本实施例通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。另外,通过直接输入/输出的方式写内容如码流文件至SD卡中,而不是先写入缓存中,再由缓存写入SD卡中,即码流数据直接写入存储卡中,不在内核中缓存,减小内存压力,内核空间的缓存中可以保存更多有效的内容,提升系统性能。本发明可以实现存储卡随机写速度提升20%-30%。
本发明一实施例的存储卡读写系统中,所述写模块,用于将预设数据块的整数倍大小的所述具体要写的内容写入所述SD卡中。
在此,以直接输入/输出方式读写存储卡中的数据,同时,写文件时,每次写入的数据必须是块大小的整数倍,以避免写失败,保证可靠写入。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种计算器设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中。
根据本发明的另一面,还提供一种计算器设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
根据本发明的另一面,还提供一种计算器设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
用户空间将写请求发送到内核中的的SD卡文件系统中;
所述内核中的SD卡文件系统,根据所述写请求将具体要写的内容写入SD卡中;
用户空间将读请求发送到内核的SD卡文件系统;
所述内核的SD卡文件系统根据所述读请求,从所述存储卡中读取对应的数据存储到缓存中;
所述内核的SD卡文件系统将缓存中的数据反馈给所述用户空间。
综上所述,通过使用存储卡的文件系统挂载存储卡,而不再以专有文件系统挂载存储卡,能够避免用户空间文件系统进行一次数据读写需要进行三次用户空间与内核空间之间的转换,提高读写速度。另外,通过直接输入/输出的方式写内容如码流文件至SD卡中,而不是先写入缓存中,再由缓存写入SD卡中,即码流数据直接写入存储卡中,不在内核中缓存,减小内存压力,内核空间的缓存中可以保存更多有效的内容,提升系统性能。本发明可以实现存储卡随机写速度提升20%-30%。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。