进程拷贝方法以及装置制造方法及图纸

技术编号:33283176 阅读:12 留言:0更新日期:2022-04-30 23:44
本说明书实施例提供进程拷贝方法以及装置,其中所述进程拷贝方法包括:获取待拷贝的父进程对应的内存页表,其中,内存页表包括多级页表项;然后基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表,其中,第一子内存页表包括存储有页表信息的页表项,第二子内存页表包括存储有物理地址的页表项;调用父进程,对第一子内存页表进行拷贝,创建并唤醒子进程;调用子进程,对第二子内存页表进行拷贝。通过上述方法,可以在进程拷贝的过程中,将拷贝存储有物理地址页表项的内存页表这个耗时的操作延迟到子进程中进行,避免了由于进程拷贝而造成的父进程堵塞,提高了进程拷贝的效率。贝的效率。贝的效率。

【技术实现步骤摘要】
进程拷贝方法以及装置


[0001]本说明书实施例涉及计算机
,特别涉及一种进程拷贝方法。本说明书同时涉及一种进程拷贝装置、一种计算设备、一种计算机可读存储介质以及一种计算机程序。

技术介绍

[0002]随着计算机技术的发展,进程拷贝技术得到了广泛的应用,例如可以利用进程拷贝技术进行内存快照、持久化等。进程拷贝是指通过复制调用的进程来创建一个新的进程,其中,调用的进程称为父进程,新的进程被称为子进程。父进程和子进程在单独的内存空间中运行,在进程拷贝的过程中,父进程和子进程的内存空间具有相同的内容。
[0003]然而,进程拷贝是一种昂贵的操作,在进程拷贝执行过程中,父进程需要对整个内存页表进行拷贝,如果整个实例内存占用很大,那么拷贝内存页表就会非常耗时,此过程会消耗大量的资源,在完成进程拷贝之前,父进程会被阻塞,无法再处理任何请求。因此,需要提供一种更快速的进程拷贝方法。

技术实现思路

[0004]有鉴于此,本说明书施例提供了一种进程拷贝方法。本说明书一个或者多个实施例同时涉及一种进程拷贝装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
[0005]根据本说明书实施例的第一方面,提供了一种进程拷贝方法,包括:
[0006]获取待拷贝的父进程对应的内存页表,其中,内存页表包括多级页表项;
[0007]基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表,其中,第一子内存页表包括存储有页表信息的页表项,第二子内存页表包括存储有物理地址的页表项;
[0008]调用父进程,对第一子内存页表进行拷贝,创建并唤醒子进程;
[0009]调用子进程,对第二子内存页表进行拷贝。
[0010]可选地,调用子进程,对第二子内存页表进行拷贝,包括:
[0011]根据第一子内存页表中存储的页表信息的页表项,获取第二子内存页表;
[0012]调用子进程,对第二子内存页表进行拷贝。
[0013]可选地,在调用子进程,对第二子内存页表进行拷贝之前,还包括:
[0014]将第一子内存页表中的目标页表项设置为只读状态,其中,目标页表项存储有第二子内存页表的页表信息。
[0015]可选地,在将第一子内存页表中的目标页表项设置为只读状态之后,还包括:
[0016]在检测到父进程对应的内存页表发生修改的情况下,调用父进程,将修改前的内存页表拷贝至子进程。
[0017]可选地,基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表,包括:
[0018]在检测到预设开关被启动的情况下,基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表。
[0019]可选地,多级页表项包括页全局目录、页上级目录、页中间目录、页表条目,其中,页全局目录中存储有页上级目录的页表信息、页上级目录中存储有页中间目录的页表信息、页中间目录存储有页表条目的页表信息、页表条目存储有物理地址;
[0020]基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表,包括:
[0021]拆分内存页表,将页全局目录、页上级目录、页中间目录作为第一子内存页表,将页表条目作为第二子内存页表。
[0022]可选地,调用父进程,对第一子内存页表进行拷贝,创建并唤醒子进程,包括:
[0023]调用父进程,对第一子内存页表进行拷贝,基于拷贝后的第一子内存页表创建子进程;
[0024]将子进程添加至处理器的活动运行队列中。
[0025]根据本说明书实施例的第二方面,提供了一种进程拷贝装置,包括:
[0026]获取模块,被配置为获取待拷贝的父进程对应的内存页表,其中,内存页表包括多级页表项;
[0027]拆分模块,被配置为基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表,其中,第一子内存页表包括存储有页表信息的页表项,第二子内存页表包括存储有物理地址的页表项;
[0028]第一调用模块,被配置为调用父进程,对第一子内存页表进行拷贝,创建并唤醒子进程;
[0029]第二调用模块,被配置为调用子进程,对第二子内存页表进行拷贝。
[0030]可选地,拷贝模块,进一步被配置为根据第一子内存页表中存储的页表信息的页表项,获取第二子内存页表;调用子进程,对第二子内存页表进行拷贝。
[0031]可选地,该装置还包括:设置模块;
[0032]设置模块,被配置为将第一子内存页表中的目标页表项设置为只读状态,其中,目标页表项存储有第二子内存页表的页表信息。
[0033]可选地,该装置还包括:检测模块;
[0034]检测模块,被配置为在检测到父进程对应的内存页表发生修改的情况下,调用父进程,将修改前的内存页表拷贝至子进程。
[0035]可选地,拆分模块,进一步被配置为在检测到预设开关被启动的情况下,基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表。
[0036]可选地,多级页表项包括页全局目录、页上级目录、页中间目录、页表条目,其中,页全局目录中存储有页上级目录的页表信息、页上级目录中存储有页中间目录的页表信息、页中间目录存储有页表条目的页表信息、页表条目存储有物理地址;
[0037]拆分模块,进一步被配置为拆分内存页表,将页全局目录、页上级目录、页中间目录作为第一子内存页表,将页表条目作为第二子内存页表。
[0038]可选地,第一调用模块,进一步被配置为调用父进程,对第一子内存页表进行拷贝,基于拷贝后的第一子内存页表创建子进程;将子进程添加至处理器的活动运行队列中。
[0039]根据本说明书实施例的第三方面,提供了一种计算设备,包括:
[0040]存储器和处理器;
[0041]所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该指令被处理器执行时实现上述进程拷贝方法的步骤。
[0042]根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述进程拷贝方法的步骤。
[0043]根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述进程拷贝方法的步骤。
[0044]本说明书一个实施例通过获取待拷贝的父进程对应的内存页表,其中,内存页表包括多级页表项;然后基于多级页表项,将内存页表拆分为第一子内存页表和第二子内存页表,其中,第一子内存页表包括存储有页表信息的页表项,第二子内存页表包括存储有物理地址的页表项;调用父进程,对第一子内存页表进行拷贝,创建并唤醒子进程;调用子进程,对第二子内存页表进行拷贝。通过上述方法,将内存页表拆分为存储有页表信息页表项的第一子内存页表和存储有物理地址页表项的第二子内存页表,由于父进程对存储有物理地址页表项的第二子内存页表进行拷贝会消耗大量时间,从而造成进程堵塞。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进程拷贝方法,包括:获取待拷贝的父进程对应的内存页表,所述内存页表包括多级页表项;基于所述多级页表项,将所述内存页表拆分为第一子内存页表和第二子内存页表,所述第一子内存页表包括存储有页表信息的页表项,所述第二子内存页表包括存储有物理地址的页表项;调用所述父进程,对所述第一子内存页表进行拷贝,创建并唤醒子进程;调用所述子进程,对所述第二子内存页表进行拷贝。2.根据权利要求1所述的方法,所述调用所述子进程,对所述第二子内存页表进行拷贝,包括:根据所述第一子内存页表中存储的页表信息的页表项,获取所述第二子内存页表;调用所述子进程,对所述第二子内存页表进行拷贝。3.根据权利要求1或2所述的方法,在所述调用所述子进程,对所述第二子内存页表进行拷贝之前,还包括:将所述第一子内存页表中的目标页表项设置为只读状态,所述目标页表项存储有所述第二子内存页表的页表信息。4.根据权利要求3所述的方法,在所述将所述第一子内存页表中的目标页表项设置为只读状态之后,还包括:在检测到所述父进程对应的内存页表发生修改的情况下,调用所述父进程,将修改前的内存页表拷贝至所述子进程。5.根据权利要求1所述的方法,所述基于所述多级页表项,将所述内存页表拆分为第一子内存页表和第二子内存页表,包括:在检测到预设开关被启动的情况下,基于所述多级页表项,将所述内存页表拆分为第一子内存页表和第二子内存页表。6.根据权利要求1、2、4、5中任一项所述的方法,所述多级页表项包括页全局目录、页上级目录、页中间目录、页表条目,其中,所述页全局目录中存储有所述页上级目录的页表信息、所述页上级目录中存储有所述页中间目录的页表信息、所述页中间目录存储有所述页表条...

【专利技术属性】
技术研发人员:邓刚刘峥宋卓徐宇杨勇姚宏波
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1