一种线程的内存访问方法、装置、设备及存储介质制造方法及图纸

技术编号:34850020 阅读:22 留言:0更新日期:2022-09-08 07:49
本发明专利技术公开了一种线程的内存访问方法、装置、设备及存储介质。调度进程中的至少一个目标线程;在目标线程访问内存时,向内存管理单元发送内存地址请求,获取线性地址空间中的线性地址和目标线程对应的目标私有线程页表;基于目标私有线程页表将内存地址请求对应的线性地址映射为物理地址,以使目标线程基于物理地址访问内存;为每个线程分配一个私有线程页表,能够使各目标线程根据自身的目标私有线程页表访问内存,各目标线程之间的内存访问过程互不干扰,达到了降低线程之间发生内存访问错误的几率,提高线程的执行稳定性的有益效果。提高线程的执行稳定性的有益效果。提高线程的执行稳定性的有益效果。

【技术实现步骤摘要】
一种线程的内存访问方法、装置、设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种线程的内存访问方法、装置、设备及存储介质。

技术介绍

[0002]目前很多终端使用虚拟内存技术实现小物理内存运行大程序。该技术主要利用内存管理单元(Memory Management Unit,MMU)将虚拟地址映射到物理地址,虚拟地址对应程序代码空间,程序代码实际存储在物理存储器中。
[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]图1A是linux系统中进程的内存的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程的内存访问方法,其特征在于,包括:调度进程中的至少一个目标线程;在所述目标线程访问内存时,向内存管理单元发送内存地址请求,获取线性地址空间中的线性地址和所述目标线程对应的目标私有线程页表;基于所述目标私有线程页表将所述内存地址请求对应的线性地址映射为物理地址,以使所述目标线程基于所述物理地址访问内存。2.根据权利要求1所述的方法,其特征在于,所述调度进程中的至少一个目标线程包括:创建并启动进程中的目标线程;或者,将所述进程中处于运行状态的当前线程切换为目标线程,所述目标线程为处于等待状态的线程。3.根据权利要求2所述的方法,其特征在于,所述向内存管理单元发送内存地址请求,获取线性地址空间中的线性地址和所述目标线程对应的目标私有线程页表,包括:对于创建并启动的目标线程,向所述内存管理单元发送第一内存地址请求;通过所述内存管理单元基于所述第一内存地址请求确定线性地址空间中的线性地址,并为所述目标线程分配对应的目标私有线程页表。4.根据权利要求2所述的方法,其特征在于,所述向内存管理单元发送内存地址请求,获取线性地址空间中的线性地址和所述目标线程对应的目标私有线程页表,包括:对于切换当前线程得到的目标线程,向所述内存管理单元发送第二内存地址请求;通过所述内存管理单元基于所述第二内存地址请求确定线性地址空间中的线性地址,并将所述当前线程对应的当前私有线程页表切换为所述目标线程对应的目标私有线程页表。5.根据权利要求1

4任一所述的方法,其特征在于,所述线性地址包括:所述目标线程对应的目标私有动态堆内存中的地址,所述目标私有动态堆内存为所述目标线程在所述线性地址空间中私有的动态堆内存。6.根据权利要求4所述的方法,其特征在于,所述将所述当前线程对应的当前私有线程页表切换为所述目标线程对应的目标私有线程页表包括:将所述内存管理单元的页表寄存器的值,由所述当前私有线程页表对应的当前表征数据修改为所述目标私有线程页表对应的目标表征数据。7.根据权利要求6所述的方法,其特征在于,所述目标表征数据包括所述目标私有线程...

【专利技术属性】
技术研发人员:范维庭
申请(专利权)人:北京东土军悦科技有限公司
类型:发明
国别省市:

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

1