专利类型:发明专利
语 言:中文
申 请 号:CN201510773274.9
申 请 日:20151113
申 请 人:重庆大学
申请人地址:400044 重庆市沙坪坝区沙正街174号
公 开 日:20180824
公 开 号:CN105404667B
代 理 人:唐开平
代理机构:重庆大学专利中心 50201
摘 要:本发明公开了一种用于内存文件系统的文件数据一致性更新方法,包括以下步骤:1,在进程初始化时,系统在内核空间为进程打开一个伪文件;2,进程请求更新“目标文件”,内存文件系统按照需要更新的数据量,一次性分配全部所需的物理内存给伪文件;3,构建伪文件中索引数据页的数据结构,称为“数据索引”;4,调用一次数据拷贝函数,把新数据一次性全部写入伪文件;5,使用一个原子操作,把伪文件的数据索引插入目标文件的数据索引中相应的位置;6,进程结束,删除该进程对应的伪文件。本发明的优点是:对于数据量较大的更新操作,避免了大量数据拷贝函数调用以及原子操作,可以在保证文件数据更新一致性的情况达到较高的性能。
主 权 项: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,进程结束,删除该进程对应的伪文件。
关 键 词:伪文件;内存文件系统;数据索引;一致性更新;目标文件;文件数据;原子操作;数据量;一次性;文件数据更新;进程初始化;更新操作;函数调用;进程结束;进程请求;数据结构;数据拷贝;索引数据;物理内存;一次数据;新数据;更新;构建;拷贝;调用;删除;写入;进程;分配;保证
法律状态:授权
IPC专利分类号:G06F17/30(2006.01)I