[发明专利]一种用于内存文件系统的文件数据一致性更新方法有效
申请号: | 201510773274.9 | 申请日: | 2015-11-13 |
公开(公告)号: | CN105404667B | 公开(公告)日: | 2018-08-24 |
发明(设计)人: | 沙行勉;陈咸彰;诸葛晴凤;孙志龙;陈俊熹 | 申请(专利权)人: | 重庆大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 重庆大学专利中心 50201 | 代理人: | 唐开平 |
地址: | 400044 *** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 内存 文件系统 文件 数据一致性 更新 方法 | ||
1.一种用于内存文件系统的文件数据一致性更新方法,其特征是,包括以下步骤:
步骤1,在进程初始化时,系统在内核空间为进程打开一个伪文件;
步骤2,进程请求更新“目标文件”,内存文件系统按照需要更新的数据量,一次性分配全部所需的物理内存给伪文件;
步骤3,构建伪文件中索引数据页的数据结构,称为“数据索引”;
步骤4,调用一次数据拷贝函数,把新数据一次性全部写入伪文件:
步骤1),读取伪文件的内核虚拟地址空间VF的起始虚拟地址;
步骤2),获取用户的写文件请求在目标文件中的偏移位置Offset;即用户要求从目标文件的第Offset个字节的位置开始写新数据;
步骤3),根据Offset和内存页面的大小计算出一个伪文件数据在目标文件中的偏移量POff,设文件系统中使用的一个内存页面的大小为Pszie,POff=Offset-Offset%Psize;
步骤4),从POff开始,从目标文件中拷贝一个物理页面大小Psize的数据到伪文件的起始位置;
步骤5),在伪文件中,从Offset%Psize的位置开始,用一个数据拷贝操作写入用户写请求的全部数据,此时,伪文件写新数据已全部完成;
步骤5,使用一个原子操作,把伪文件的数据索引插入目标文件的数据索引中相应的位置;
步骤6,进程结束,删除该进程对应的伪文件。
2.根据权利要求1所述的用于内存文件系统的文件数据一致性更新方法,其特征是,步骤1中打开一个伪文件包括以下步骤:
步骤1),在内核虚拟地址空间为伪文件分配一段虚拟地址空间VF;
步骤2),读取当前处理器控制寄存器中内核页表最高一级的起始物理地址,称为PGD项;该控制寄存器可以是Intel处理器中的CR3寄存器;
步骤3),根据读取的PGD项和伪文件的虚拟地址VF,用内核现有函数可以找到伪文件的虚拟地址VF的索引指针在内核页表中所对应的页表项PEntry;
步骤4),读取伪文件索引节点中的索引指针,将其写入PEntry,即完成了伪文件的打开过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆大学,未经重庆大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510773274.9/1.html,转载请声明来源钻瓜专利网。