访问文件的方法、装置和存储系统制造方法及图纸

技术编号:13185799 阅读:79 留言:0更新日期:2016-05-11 16:26
本发明专利技术实施例提供一种访问文件的方法、装置和存储系统,包括:接收包括文件标识的文件访问请求;根据第一虚拟地址空间和第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问第一物理地址空间;在第一物理地址空间中获取文件标识指示的目标文件的索引节点;根据该索引节点中包含的目标文件的文件页表的信息,获取文件页表,该文件页表中记录有该目标文件的第二物理地址空间;为该目标文件分配第二虚拟地址空间;建立第二物理地址空间与第二虚拟地址空间之间的第二映射关系;根据该第二虚拟地址空间以及该第二映射关系,访问第二物理地址空间中的目标文件,能够有效降低访问文件的软件运行开销,同时可以提高文件访问速率。

【技术实现步骤摘要】
【国外来华专利技术】访问文件的方法、装置和存储系统
本专利技术实施例涉及计算机领域,并且更具体地,涉及一种访问文件的方法、装置和存储系统。
技术介绍
传统技术中,只有在内核空间中才可以访问文件系统,当进程要访问文件系统中的目标文件时,需要执行系统调用,从用户空间切换到内核空间执行目标文件的访问,这种方式会影响访问文件的速度,同时会产生较大的软件运行开销。因此需要提出一种可以实现直接在用户空间下访问文件的方法。
技术实现思路
本专利技术实施例提供了一种访问文件的方法、装置和存储系统,能够在产生较小软件运行开销的情况下,实现在用户空间访问文件。第一方面,提供了一种访问文件的方法,该方法包括:接收来自进程的文件访问请求,该文件访问请求包括文件标识,该文件标识用于指示要访问的目标文件;根据预设的第一虚拟地址空间和该第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问该第一物理地址空间,其中,该第一虚拟地址空间为操作系统的用户空间的一部分,该第一物理地址空间为内存空间的一部分;根据该目标文件的文件标识,在该第一物理地址空间中获取该目标文件的索引节点,该索引节点中包含有该目标文件的文件页表的信息;根据该索引节点中包含的该目标文件的文件页表的信息,获取该目标文件的文件页表,该文件页表中记录有在该第一物理地址空间中存储的该目标文件的数据页的第二物理地址空间,该目标文件的数据页用于存储文件数据;为该目标文件分配第二虚拟地址空间,该第二虚拟地址空间为操作系统的用户空间中为所有进程分配的共享空间的一部分,该第二虚拟地址空间为连续的地址空间;建立该第二物理地址空间与该第二虚拟地址空间之间的第二映射关系;根据该第二虚拟地址空间以及该第二映射关系,访问该第二物理地址空间中的该目标文件。结合第一方面,在第一方面的第一种可能的实现方式中,建立该第二物理地址空间与该第二虚拟地址空间之间的第二映射关系,包括:通过将该目标文件的文件页表链入该第二虚拟地址空间对应的进程页表的方式,建立该第二映射关系。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该第二虚拟地址空间大于该第二物理地址空间;根据该第二虚拟地址空间以及该第二映射关系,访问该第二物理地址空间中的该目标文件,包括:根据该第二虚拟地址空间以及该第二映射关系,对该第二物理地址空间中的该目标文件进行读操作;当该读操作待读取的数据所对应的虚拟地址超出该目标文件所对应的虚拟地址空间时,结束该读操作。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,该第二虚拟地址空间大于该第二物理地址空间;根据该第二虚拟地址空间以及该第二映射关系,访问该第二物理地址空间中的该目标文件,包括:根据该第二虚拟地址空间以及该第二映射关系,对该第二物理地址空间中的该目标文件进行写操作;当该写操作待写入的数据对应的虚拟地址超出该第二虚拟地址空间时,结束该写操作。结合第一方面和第一方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:在内核空间,建立该第一虚拟地址空间与该第一物理地址空间之间的该第一映射关系,并将该第一映射关系对应的映射页表存储在内核空间对应的进程页表中;在接收到来自该进程的该文件访问请求后,该方法还包括:确定该第一虚拟地址空间对应的进程页表中未记录有该第一映射关系;将存储在内核空间的该第一映射关系对应的映射页表链入该第一虚拟地址空间对应的进程页表中。第二方面,提供了一种访问文件的装置,该装置包括:接收模块,用于接收来自进程的文件访问请求,该文件访问请求包括文件标识,该文件标识用于指示要访问的目标文件;第一访问模块,用于根据预设的第一虚拟地址空间和该第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问该第一物理地址空间,其中,该第一虚拟地址空间为操作系统的用户空间的一部分,该第一物理地址空间为内存空间的一部分;获取模块,用于根据该接收模块接收的该目标文件的文件标识,在该第一物理地址空间中获取该目标文件的索引节点,该索引节点中包含有该目标文件的文件页表的信息;该获取模块还用于,根据该索引节点中包含的该目标文件的文件页表的信息,获取该目标文件的文件页表,该文件页表中记录有在该第一物理地址空间中存储的该目标文件的数据页的第二物理地址空间,该目标文件的数据页用于存储文件数据;分配模块,用于为该目标文件分配第二虚拟地址空间,该第二虚拟地址空间为操作系统的用户空间中为所有进程分配的共享空间的一部分,该第二虚拟地址空间为连续的地址空间;第一建立模块,用于建立该第二物理地址空间与该分配模块分配的该第二虚拟地址空间之间的第二映射关系;第二访问模块,用于根据该分配模块分配的该第二虚拟地址空间以及该第一建立模块建立的该第二映射关系,访问该第二物理地址空间中的该目标文件。结合第二方面,在第二方面的第一种可能的实现方式中,该第一建立模块具体用于,通过将该目标文件的文件页表链入该第二虚拟地址空间对应的进程页表的方式,建立该第二映射关系。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该分配模块分配的该第二虚拟地址空间大于该第二物理地址空间;该第二访问模块,具体用于:根据该第二虚拟地址空间以及该第二映射关系,对该第二物理地址空间中的该目标文件进行读操作;当该读操作待读取的数据所对应的虚拟地址超出该目标文件所对应的虚拟地址空间时,结束该读操作。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,该分配模块分配的该第二虚拟地址空间大于该第二物理地址空间;该第二访问模块,具体用于:根据该第二虚拟地址空间以及该第二映射关系,对该第二物理地址空间中的该目标文件进行写操作;当该写操作待写入的数据对应的虚拟地址超出该第二虚拟地址空间时,结束该写操作。结合第二方面和第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,该装置还包括:第二建立模块,用于在内核空间,建立该第一虚拟地址空间与该第一物理地址空间之间的该第一映射关系,并将该第一映射关系对应的映射页表存储在内核空间对应的进程页表中;确定模块,用于在该接收模块接收到来自该进程的该文件访问请求后,确定该第一虚拟地址空间对应的进程页表中未记录有该第一映射关系;链入模块,用于将存储在内核空间的该第二建立模块建立的该第一映射关系对应的映射页表链入该第一虚拟地址空间对应的进程页表中。第三方面,提供了一种存储系统,该存储系统包括:存储器,用于存储文件和程序;处理器,用于执行所述程序,以实现:接收来自进程的文件访问请求,该文件访问请求包括文件标识,该文件标识用于指示要访问的目标文件;根据预设的第一虚拟地址空间和该第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问该第一物理地址空间,其中,该第一虚拟地址空间为操作系统的用户空间的一部分,该第一物理地址空间为内存空间的一部分;根据该目标文件的文件标识,在该第一物理地址空间中获取该目标文件的索引节点,该索引节点中包含有该目标文件的文件页表的信息;根据该索引节点中包含的该目标文件的文件页表的信息,获本文档来自技高网...

【技术保护点】
PCT国内申请,权利要求书已公开。

【技术特征摘要】
【国外来华专利技术】1.一种访问文件的方法,其特征在于,包括:接收来自进程的文件访问请求,所述文件访问请求包括文件标识,所述文件标识用于指示要访问的目标文件;根据预设的第一虚拟地址空间和所述第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问所述第一物理地址空间,其中,所述第一虚拟地址空间为操作系统的用户空间的一部分,所述第一物理地址空间为内存空间的一部分;根据所述目标文件的文件标识,在所述第一物理地址空间中获取所述目标文件的索引节点,所述索引节点中包含有所述目标文件的文件页表的信息;根据所述索引节点中包含的所述目标文件的文件页表的信息,获取所述目标文件的文件页表,所述文件页表中记录有在所述第一物理地址空间中存储的所述目标文件的数据页的第二物理地址空间,所述目标文件的数据页用于存储文件数据;为所述目标文件分配第二虚拟地址空间,所述第二虚拟地址空间为操作系统的用户空间中为所有进程分配的共享空间的一部分,所述第二虚拟地址空间为连续的地址空间;建立所述第二物理地址空间与所述第二虚拟地址空间之间的第二映射关系;根据所述第二虚拟地址空间以及所述第二映射关系,访问所述第二物理地址空间中的所述目标文件。2.根据权利要求1所述的方法,其特征在于,所述建立所述第二物理地址空间与所述第二虚拟地址空间之间的第二映射关系,包括:通过将所述目标文件的文件页表链入所述第二虚拟地址空间对应的进程页表的方式,建立所述第二映射关系。3.根据权利要求1或2所述的方法,其特征在于,所述第二虚拟地址空间大于所述第二物理地址空间;所述根据所述第二虚拟地址空间以及所述第二映射关系,访问所述第二物理地址空间中的所述目标文件,包括:根据所述第二虚拟地址空间以及所述第二映射关系,对所述第二物理地址空间中的所述目标文件进行读操作;当所述读操作待读取的数据所对应的虚拟地址超出所述目标文件所对应的虚拟地址空间时,结束所述读操作。4.根据权利要求1或2所述的方法,其特征在于,所述第二虚拟地址空间大于所述第二物理地址空间;所述根据所述第二虚拟地址空间以及所述第二映射关系,访问所述第二物理地址空间中的所述目标文件,包括:根据所述第二虚拟地址空间以及所述第二映射关系,对所述第二物理地址空间中的所述目标文件进行写操作;当所述写操作待写入的数据对应的虚拟地址超出所述第二虚拟地址空间时,结束所述写操作。5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在内核空间,建立所述第一虚拟地址空间与所述第一物理地址空间之间的所述第一映射关系,并将所述第一映射关系对应的映射页表存储在内核空间对应的进程页表中;在接收到来自所述进程的所述文件访问请求后,所述方法还包括:确定所述第一虚拟地址空间对应的进程页表中未记录有所述第一映射关系;将存储在内核空间的所述第一映射关系对应的映射页表链入所述第一虚拟地址空间对应的进程页表中。6.一种访问文件的装置,其特征在于,包括:接收模块,用于接收来自进程的文件访问请求,所述文件访问请求包括文件标识,所述文件标识用于指示要访问的目标文件;第一访问模块,用于根据预设的第一虚拟地址空间和所述第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问所述第一物理地址空间,其中,所述第一虚拟地址空间为操作系统的用户空间的一部分,所述第一物理地址空间为内存空间的一部分;获取模块,用于根据所述接收模块接收的所述目标文件的文件标识,在所述第一物理地址空间中获取所述目标文件的索引节点,所述索引节点中包含有所述目标文件的文件页表的信息;所述获取模块,还用于根据所述索引节点中包含的所述目标文件的文件页表的信息,获取所述目标文件的文件页表,所述文件页表中记录有在所述第一物理地址空间中存储的所述目标文件的数据页的第二物理地址空间,所述目标文件的数据页用于存储文件数据;分配模块,用于为所述目标文件分配第二虚拟地址空间,所述第二虚拟地址空间为操作系统的用户空间中为所有进程分配的共享空间的一部分,所述第二虚拟地址空间为连续的地址空间;第一建立模块,用于建立所述第二物理地址空间与所述分配模块分配的所述第二虚拟地址空间之间的第二映射关系;第二访问模块,用于根据所述分配模块分配的所述第二虚拟地址空间以及所述第一建立模块建立的所述第二映射关系,访问所述第二物理地址空间中的...

【专利技术属性】
技术研发人员:徐君朱冠宇于群
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1