一种数据处理方法、装置、设备及存储介质与流程

文档序号:37378123发布日期:2024-03-22 10:30阅读:10来源:国知局
一种数据处理方法、装置、设备及存储介质与流程

本技术涉及计算机,尤其涉及一种数据处理方法、装置、设备及存储介质。


背景技术:

1、近年来,随着服务器大规模应用的使用,海量数据爆发式增长,内存的使用也随着增加,在创建父进程的子进程时,需要把父进程的页表拷贝一份给子进程,该父进程的页表用于查询父进程的内存数据。目前,将父进程的页表拷贝给子进程的过程中,父进程是完全阻塞的,这意味着父进程无法处理其他业务,如果页表很大,父进程堵塞的时间会更久,因此如何降低父进程因页表拷贝所产生的堵塞时间是当前亟待解决的问题。


技术实现思路

1、本技术实施例提供一种数据处理方法、装置、设备及存储介质,可以极大程度的降低目标进程拷贝页表所产生的堵塞时间。

2、本技术实施例一方面提供一种数据处理方法,包括:

3、调用目标进程,根据子进程创建函数创建目标进程的子进程,获取目标进程的第一页表,以及目标进程对应的m个第一虚拟内存区域的m个区域属性信息;第一页表用于指示m个第一虚拟内存区域,与存储目标进程的内存数据的设备内存之间的映射关系;m为正整数;

4、当m个区域属性信息指示第一页表满足加速拷贝条件时,根据m个区域属性信息,对第一页表进行划分,得到目标进程对应的第一父页表内容和子进程对应的第二父页表内容;

5、调用目标进程,对第一父页表内容进行拷贝处理,得到第一子页表内容,调用子进程,对第二父页表内容进行拷贝处理,得到第二子页表内容;

6、根据第一子页表内容和第二子页表内容生成子进程的第二页表,子进程根据第二页表从设备内存中获取目标进程的内存数据。

7、本技术实施例一方面提供一种数据处理装置,包括:

8、创建模块,用于调用目标进程,根据子进程创建函数创建目标进程的子进程,获取目标进程的第一页表,以及目标进程对应的m个第一虚拟内存区域的m个区域属性信息;第一页表用于指示m个第一虚拟内存区域,与存储目标进程的内存数据的设备内存之间的映射关系;m为正整数;

9、划分模块,用于当m个区域属性信息指示第一页表满足加速拷贝条件时,根据m个区域属性信息,对第一页表进行划分,得到目标进程对应的第一父页表内容和子进程对应的第二父页表内容;

10、第一拷贝模块,用于调用目标进程,对第一父页表内容进行拷贝处理,得到第一子页表内容,调用子进程,对第二父页表内容进行拷贝处理,得到第二子页表内容;

11、生成模块,用于根据第一子页表内容和第二子页表内容生成子进程的第二页表,子进程根据第二页表从设备内存中获取目标进程的内存数据。

12、其中,区域属性信息包括第一虚拟内存区域的区域类型;

13、划分模块还用于执行以下操作:

14、当m个区域属性信息指示m个第一虚拟内存区域中,存在区域类型为目标区域类型的第一虚拟内存区域时,确定第一页表满足加速拷贝条件;目标区域类型的虚拟内存区域在设备内存中不具有对应的独立物理内存区域;

15、统计m个第一虚拟内存区域中区域类型为目标区域类型的第一虚拟内存区域的区域数量;

16、根据区域数量和m个区域属性信息,对第一页表进行划分,得到目标进程对应的第一父页表内容和子进程对应的第二父页表内容。

17、其中,划分模块还用于执行以下操作:

18、若区域数量等于m,则获取目标进程中待处理任务对应的任务量;

19、根据任务量,对第一页表进行划分,得到目标进程对应的第一父页表内容和子进程对应的第二父页表内容。

20、其中,划分模块还用于执行以下操作:

21、若区域数量小于m,则从m个第一虚拟内存区域中,筛选出区域类型为目标区域类型的匹配第一虚拟内存区域;

22、从第一页表中,确定匹配第一虚拟内存区域和剩余第一虚拟内存区域分别关联的父页表内容;剩余第一虚拟内存区域为m个第一虚拟内存区域中除匹配第一虚拟内存区域之外的区域;

23、对匹配第一虚拟内存区域关联的父页表内容进行划分,得到目标进程对应的第一筛选父页表内容和子进程对应的第二筛选父页表内容;

24、将剩余第一虚拟内存区域关联的父页表内容以及第一筛选父页表内容,确定为目标进程对应的第一父页表内容,将第二筛选父页表内容确定为子进程对应的第二父页表内容。

25、其中,区域属性信息包括第一虚拟内存区域的区域类型;

26、数据处理装置还包括:

27、第二拷贝模块,用于当m个区域属性信息指示m个第一虚拟内存区域分别对应的区域类型均为目标区域类型时,调用子进程,对第一页表进行拷贝处理,得到子进程的第二页表;目标区域类型的虚拟内存区域在设备内存中不具有对应的独立物理内存区域。

28、其中,第一拷贝模块用于执行以下操作:

29、调用目标进程,获取子进程对应的m个第二虚拟内存区域;一个第二虚拟内存区域与一个第一虚拟内存区域关联;

30、根据第一筛选父页表内容的内容属性以及关联第二虚拟内存区域,生成子进程的第一筛选子页表内容;关联第二虚拟内存区域为m个第二虚拟内存区域中,与匹配第一虚拟内存区域关联的第二虚拟内存区域;

31、根据剩余第一虚拟内存区域关联的父页表内容,以及m个第二虚拟内存区域中与剩余第一虚拟内存区域关联的第二虚拟内存区域,生成子进程的剩余子页表内容;

32、将第一筛选子页表内容和剩余子页表内容,确定为第一子页表内容。

33、其中,第一拷贝模块还用于执行以下操作:

34、获取匹配第一虚拟内存区域的区域索引信息;

35、在关联第二虚拟内存区域中,添加区域索引信息以及页表拷贝标识;区域索引信息用于获取到匹配第一虚拟内存区域,页表拷贝标识用于指示关联第二虚拟内存区域需要进行关于第二父页表内容的拷贝操作。

36、其中,第一页表为四级页表;

37、第一拷贝模块还用于执行以下操作:

38、若第一筛选父页表内容的内容属性用于指示,第一筛选父页表内容为第一页表中的第一级页表内容、第二级页表内容以及第三级页表内容,则根据关联第二虚拟内存区域中的目标虚拟地址,生成与目标虚拟地址关联的第一级页表内容、第二级页表内容以及第三级页表内容;

39、将与目标虚拟地址关联的第一级页表内容、第二级页表内容以及第三级页表内容,确定为子进程的第一筛选子页表内容。

40、其中,第一拷贝模块还用于执行以下操作:

41、调用子进程,从子进程对应的m个第二虚拟内存区域中,确定携带页表拷贝标识的关联第二虚拟内存区域;关联第二虚拟内存区域与匹配第一虚拟内存区域关联;

42、从第二筛选父页表内容中,确定匹配第一虚拟内存区域对应的目标物理地址;

43、根据目标物理地址、第二筛选父页表内容的内容属性以及关联第二虚拟内存区域,生成第二子页表内容。

44、其中,第一拷贝模块还用于执行以下操作:

45、调用子进程,根据第二筛选父页表内容的内容属性,以及关联第二虚拟内存区域包括的目标虚拟地址,生成与目标虚拟地址关联的初始子页表内容;

46、将目标物理地址,添加至与目标虚拟地址关联的初始子页表内容中,得到第二子页表内容。

47、其中,第一页表为四级页表;

48、第一拷贝模块还用于执行以下操作:

49、若第二筛选父页表内容的内容属性指示第二筛选父页表内容为第一页表中的第四级页表内容,则根据关联第二虚拟内存区域包括的目标虚拟地址,生成与目标虚拟地址关联的第四级页表内容;

50、将与目标虚拟地址关联的第四级页表内容,确定为与目标虚拟地址关联的初始子页表内容。

51、其中,第一拷贝模块还用于执行以下操作:

52、调用子进程,创建n个线程;n为大于1的整数;

53、获取关联第二虚拟内存区域的区域数量,根据区域数量以及n个线程的线程数量,将关联第二虚拟内存区域分配给n个线程;

54、调用n个线程,根据各自对应的关联第二虚拟内存区域、目标物理地址,以及第二筛选父页表内容的内容属性,生成第二子页表内容。

55、数据处理装置还包括:

56、更新模块,用于在确定由子进程拷贝的第二父页表内容时,若第二父页表内容为可编辑状态,则将第二父页表内容的可编辑状态更新为不可编辑状态;

57、恢复模块,用于在检测到已生成第二子页表内容时,将第二父页表内容的不可编辑状态恢复为可编辑状态。

58、本技术实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本技术实施例提供的方法。

59、本技术实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例提供的方法。

60、本技术实施例提供一种加速页表拷贝方式,当目标进程对应的m个第一虚拟内存区域的m个区域属性信息指示第一页表满足加速拷贝条件时,根据m个区域属性信息对目标进程的第一页表进行划分,得到由目标进程拷贝的第一父页表内容和由第二子进程拷贝的第二父页表内容。这样,可以避免第一页表不满足加速拷贝条件时,产生由第二子进程拷贝会消耗更多的时间的问题,可以尽可能的降低页表拷贝时间。同时,目标进程只需要拷贝第一父页表内容,剩余页表内容(即第二父页表内容)由子进程拷贝。这样,目标进程拷贝完第一父页表内容后,便可以继续处理目标进程中的待处理任务,可以极大程度的降低目标进程因拷贝页表而导致的堵塞问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1