[发明专利]访问文件的方法、装置和存储系统有效
申请号: | 201480036923.0 | 申请日: | 2014-09-01 |
公开(公告)号: | CN105580010B | 公开(公告)日: | 2019-02-19 |
发明(设计)人: | 徐君;朱冠宇;于群 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F16/188 | 分类号: | G06F16/188;G06F16/13 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 毛威;肖鹂 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 访问 文件 方法 装置 存储系统 | ||
本发明实施例提供一种访问文件的方法、装置和存储系统,包括:接收包括文件标识的文件访问请求;根据第一虚拟地址空间和第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问第一物理地址空间;在第一物理地址空间中获取文件标识指示的目标文件的索引节点;根据该索引节点中包含的目标文件的文件页表的信息,获取文件页表,该文件页表中记录有该目标文件的第二物理地址空间;为该目标文件分配第二虚拟地址空间;建立第二物理地址空间与第二虚拟地址空间之间的第二映射关系;根据该第二虚拟地址空间以及该第二映射关系,访问第二物理地址空间中的目标文件,能够有效降低访问文件的软件运行开销,同时可以提高文件访问速率。
技术领域
本发明实施例涉及计算机领域,并且更具体地,涉及一种访问文件的方法、装置和存储系统。
背景技术
传统技术中,只有在内核空间中才可以访问文件系统,当进程要访问文件系统中的目标文件时,需要执行系统调用,从用户空间切换到内核空间执行目标文件的访问,这种方式会影响访问文件的速度,同时会产生较大的软件运行开销。
因此需要提出一种可以实现直接在用户空间下访问文件的方法。
发明内容
本发明实施例提供了一种访问文件的方法、装置和存储系统,能够在产生较小软件运行开销的情况下,实现在用户空间访问文件。
第一方面,提供了一种访问文件的方法,该方法包括:
接收来自进程的文件访问请求,该文件访问请求包括文件标识,该文件标识用于指示要访问的目标文件;
根据预设的第一虚拟地址空间和该第一虚拟地址空间与存储文件系统的第一物理地址空间之间的第一映射关系,访问该第一物理地址空间,其中,该第一虚拟地址空间为操作系统的用户空间的一部分,该第一物理地址空间为内存空间的一部分;
根据该目标文件的文件标识,在该第一物理地址空间中获取该目标文件的索引节点,该索引节点中包含有该目标文件的文件页表的信息;
根据该索引节点中包含的该目标文件的文件页表的信息,获取该目标文件的文件页表,该文件页表中记录有在该第一物理地址空间中存储的该目标文件的数据页的第二物理地址空间,该目标文件的数据页用于存储文件数据;
为该目标文件分配第二虚拟地址空间,该第二虚拟地址空间为操作系统的用户空间中为所有进程分配的共享空间的一部分,该第二虚拟地址空间为连续的地址空间;
建立该第二物理地址空间与该第二虚拟地址空间之间的第二映射关系;
根据该第二虚拟地址空间以及该第二映射关系,访问该第二物理地址空间中的该目标文件。
结合第一方面,在第一方面的第一种可能的实现方式中,建立该第二物理地址空间与该第二虚拟地址空间之间的第二映射关系,包括:
通过将该目标文件的文件页表链入该第二虚拟地址空间对应的进程页表的方式,建立该第二映射关系。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该第二虚拟地址空间大于该第二物理地址空间;
根据该第二虚拟地址空间以及该第二映射关系,访问该第二物理地址空间中的该目标文件,包括:
根据该第二虚拟地址空间以及该第二映射关系,对该第二物理地址空间中的该目标文件进行读操作;
当该读操作待读取的数据所对应的虚拟地址超出该目标文件所对应的虚拟地址空间时,结束该读操作。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,该第二虚拟地址空间大于该第二物理地址空间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480036923.0/2.html,转载请声明来源钻瓜专利网。