System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 内存分配方法及装置制造方法及图纸_技高网

内存分配方法及装置制造方法及图纸

技术编号:40899734 阅读:4 留言:0更新日期:2024-04-18 11:16
本申请提供一种内存分配方法及装置,所述方法包括:响应于目标应用程序针对所述保留内存的内存使用请求,由所述操作系统在所述保留内存中分配一段空闲的内存区域,并生成内存映射文件;所述目标应用程序基于所述内存区域的起止地址,针对所述内存映射文件进行读操作和写操作,以使用所述内存区域。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种内存分配方法及装置


技术介绍

1、通常,在操作系统上,例如linux系统,操作系统通常都是管理所有的物理内存,比如如果有128g的物理内存,操作系统可以管理并使用的就是128g,而在操作系统上运行的应用程序使用的内存都是通过操作系统进行分配和回收。

2、随着物理内存越来越趋向于碎片化,某些特定的应用程序在使用时可能需要大量的连续物理内存,可能导致应用程序在使用的时候因为申请不到满足要求的物理内存而无法使用。

3、最简单的方式就是为特定应用程序保留一部分物理内存专用,这部分内存不受系统的管理,绑定到特定的应用程序,在应用程序需要使用的时候再由应用程序程序对这部分内存进行管理。


技术实现思路

1、本申请提供一种内存分配方法,应用于操作系统;所述操作系统在启动时被限定了由所述操作系统使用的操作系统内存,以及由所述操作系统上运行的指定应用程序使用的保留内存;所述方法包括:

2、响应于目标应用程序针对所述保留内存的内存使用请求,由所述操作系统在所述保留内存中分配一段空闲的内存区域,并生成内存映射文件;所述内存映射文件至少包括所述内存区域的起止地址;

3、所述目标应用程序基于所述内存区域的起止地址,针对所述内存映射文件进行读操作和写操作,以使用所述内存区域;或,

4、所述目标应用程序基于所述内存区域的起止地址,将所述内存映射文件映射至所述目标应用程序对应的地址空间并进行读操作和写操作,以使用所述内存区域

5、可选的,所述目标应用程序针对所述内存映射文件进行读操作或写操作,以实现针对所述目标内存的使用,包括:

6、响应于目标应用程序针对所述内存映射文件的读操作请求或写操作请求,获取至少一个请求地址,并基于所述至少一个请求地址在所述内存区域中读取相应的数据或写入相应的数据。

7、可选的,所述目标应用程序将所述内存映射文件映射至所述目标应用程序对应的地址空间并进行读操作和写操作,以实现针对所述目标内存的使用,包括:

8、响应于目标应用程序针对所述内存映射文件的读操作请求或写操作请求,获取至少一个请求地址;

9、确定所述请求地址在所述地址空间中对应的目标地址,并基于所述目标地址在所述地址空间中读取相应的数据或写入相应的数据。

10、可选的,所述方法还包括:

11、加载内存管理模块,生成内存申请接口;其中,所述内存管理模块包括用于针对指定的内存区域进行管理的操作系统内核模块;所述内存申请接口文件向应用程序开放了针对保留内存进行发起内存使用请求的接口。

12、可选的,所述操作系统包括linux系统;所述应用程序包括用户态应用程序。

13、可选的,所述用户态应用程序包括虚拟机程序。

14、可选的,所述内存管理模块还包括内存区域管理表;所述内存区域管理表用于存储已分配的内存区域的起始地址,和/或,未分配的内存区域的起始地址;

15、所述生成内存申请接口之前,所述方法还包括:

16、检查所述保留内存,记录已分配的内存区域的起始地址,和/或,未分配的内存区域的起始地址。

17、可选的,由所述操作系统在所述保留内存中分配一段空闲的内存区域,并生成内存映射文件,包括:

18、由内存管理模块查询所述内存区域管理表,确定空闲的内存区域,并生成内存映射文件。

19、本申请还提出一种内存分配装置,应用于操作系统;所述操作系统在启动时被限定了由所述操作系统使用的操作系统内存,以及由所述操作系统上运行的指定应用程序使用的保留内存;所述装置包括:

20、映射文件生成单元,用于响应于目标应用程序针对所述保留内存的内存使用请求,由所述操作系统在所述保留内存中分配一段空闲的内存区域,并生成内存映射文件;所述内存映射文件至少包括所述内存区域的起止地址;

21、内存读写单元,用于所述目标应用程序基于所述内存区域的起止地址,针对所述内存映射文件进行读操作和写操作,以使用所述内存区域;或,

22、内存映射单元,用于所述目标应用程序基于所述内存区域的起止地址,将所述内存映射文件映射至所述目标应用程序对应的地址空间并进行读操作和写操作,以使用所述内存区域。

23、本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;

24、所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。

25、本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。

26、在以上实施例记载的方案中,操作系统从保留内存中分配一段空闲的内存区域,并生成内存映射文件,应用程序可以通过操作所述内存映射文件来快捷的访问保留内存,由此实现了由操作系统管理并分配保留内存,可以有效利用保留内存,并解决内存访问冲突等问题。

本文档来自技高网...

【技术保护点】

1.一种内存分配方法,应用于操作系统;所述操作系统在启动时被限定了由所述操作系统使用的操作系统内存,以及由所述操作系统上运行的指定应用程序使用的保留内存;所述方法包括:

2.根据权利要求1所述的方法,所述目标应用程序针对所述内存映射文件进行读操作或写操作,以实现针对所述目标内存的使用,包括:

3.根据权利要求1所述的方法,所述目标应用程序将所述内存映射文件映射至所述目标应用程序对应的地址空间并进行读操作和写操作,以实现针对所述目标内存的使用,包括:

4.根据权利要求1所述的方法,所述方法还包括:

5.根据权利要求1所述的方法,所述操作系统包括linux系统;所述应用程序包括用户态应用程序。

6.根据权利要求5所述的方法,所述用户态应用程序包括虚拟机程序。

7.根据权利要求4所述的方法,所述内存管理模块还包括内存区域管理表;所述内存区域管理表用于存储已分配的内存区域的起始地址,和/或,未分配的内存区域的起始地址;

8.根据权利要求7所述的方法,由所述操作系统在所述保留内存中分配一段空闲的内存区域,并生成内存映射文件,包括:

9.一种内存分配装置,应用于操作系统;所述操作系统在启动时被限定了由所述操作系统使用的操作系统内存,以及由所述操作系统上运行的指定应用程序使用的保留内存;所述装置包括:

10.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;

11.一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-8任一项所述的方法。

...

【技术特征摘要】

1.一种内存分配方法,应用于操作系统;所述操作系统在启动时被限定了由所述操作系统使用的操作系统内存,以及由所述操作系统上运行的指定应用程序使用的保留内存;所述方法包括:

2.根据权利要求1所述的方法,所述目标应用程序针对所述内存映射文件进行读操作或写操作,以实现针对所述目标内存的使用,包括:

3.根据权利要求1所述的方法,所述目标应用程序将所述内存映射文件映射至所述目标应用程序对应的地址空间并进行读操作和写操作,以实现针对所述目标内存的使用,包括:

4.根据权利要求1所述的方法,所述方法还包括:

5.根据权利要求1所述的方法,所述操作系统包括linux系统;所述应用程序包括用户态应用程序。

6.根据权利要求5所述的方法,所述用户态应用程序包括虚拟机程序。

7.根据权...

【专利技术属性】
技术研发人员:邱华
申请(专利权)人:杭州宏杉科技股份有限公司
类型:发明
国别省市:

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

1