CN117170863A - 一种内存分配方法、装置、设备及存储介质 - Google Patents
一种内存分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117170863A CN117170863A CN202311086567.0A CN202311086567A CN117170863A CN 117170863 A CN117170863 A CN 117170863A CN 202311086567 A CN202311086567 A CN 202311086567A CN 117170863 A CN117170863 A CN 117170863A
- Authority
- CN
- China
- Prior art keywords
- memory
- target
- capacity
- pool
- equal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 439
- 238000000034 method Methods 0.000 title claims abstract description 270
- 230000008569 process Effects 0.000 claims abstract description 221
- 239000012634 fragment Substances 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 20
- 238000007726 management method Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101100226364 Arabidopsis thaliana EXT1 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Landscapes
- Memory System (AREA)
Abstract
本申请涉及一种内存分配方法、装置、设备及存储介质,涉及计算机操作系统技术领域。该方法包括:应用于电子设备,该电子设备包括微内核以及服务组件,接收目标进程发送的目标内存分配请求,该目标内存分配请求包括目标容量,该目标内存分配请求用于请求从内存池中为该目标进程分配内存,该目标进程为该微内核中包括的进程或者该服务组件中包括的进程,在该内存池的可用内存容量大于或等于该目标容量的情况下,基于该目标容量,从内存池中为该目标进程分配内存。由此,可以提高内存分配的高效性,避免浪费内存资源。
Description
技术领域
本申请涉及计算机操作系统技术领域,具体涉及一种内存分配方法、装置、设备及存储介质。
背景技术
目前,在基于微内核操作系统运行应用程序时,电子设备会随机向该应用程序的进程分配内存。
但是,上述方法中,电子设备向该应用程序的进程分配内存的时候,可能会造成内存资源浪费,影响内存分配的高效性和准确性。
发明内容
本申请提供一种内存分配方法、装置、设备及存储介质,以至少解决相关技术中基于微内核操作系统运行应用程序时,电子设备向该应用程序的进程分配内存的时候,可能会造成内存资源的浪费,进而影响内存分配的高效性和准确性的技术问题。本申请的技术方案如下:
根据本申请涉及的第一方面,提供一种内存分配方法,应用于电子设备,该电子设备包括微内核以及服务组件,包括:接收目标进程发送的目标内存分配请求,该目标内存分配请求包括目标容量,该目标内存分配请求用于请求从内存池中为该目标进程分配内存,该目标进程为该微内核中包括的进程或者为该服务组件中包括的进程;在该内存池的可用内存容量大于或等于该目标容量的情况下,基于该目标容量,从内存池中为该目标进程分配内存。
根据上述技术手段,本申请可以在接收到该目标进程发送的目标内存分配请求后,确定内存池的可用容量是否大于或等于该目标内存分配请求中包括的目标容量,在该内存池的可用内存容量大于或等于目标容量的情况下,说明该内存池中的可用容量可以满足该目标进程的容量需求,此时电子设备可以基于该目标容量,准确地、有效地从内存池中为该目标进程分配内存。
在一种可能的实施方式中,上述在该内存池的可用内存容量大于或等于该目标容量的情况下,基于该目标容量,从内存池中为该目标进程分配内存,具体可以包括:确定该目标进程是否为该微内核中包括的进程;在该目标进程为该微内核中包括的进程的情况下,确定该内存池中的共享内存的容量是否大于或等于该目标容量,该共享内存用于存储多个相同类型的进程的数据信息;在该内存池中的共享内存的容量大于或等于该目标容量的情况下,基于该目标容量,从该共享内存中为该目标进程分配内存。
根据上述技术手段,本申请可以确定该目标进程是否为目标进程,并且在该目标进程为该目标组件的进程的情况下,说明该目标进程为该微内核中包括的进程,此时电子设备可以准确地确定出该目标进程所需内存为共享内存,此时电子设备再确定该内存池中的共享内存的容量是否大于或等于该目标容量,并在该内存池中的共享内存的容量大于或等于目标容量的情况下,电子设备可以基于该目标容量,准确地、有效地从共享内存中为该目标进程分配内存。
在一种可能的实施方式中,上述在该内存池的可用内存容量大于或等于该目标容量的情况下,基于该目标容量,从内存池中为该目标进程分配内存,具体还可以包括:确定该目标进程是否为该服务组件中包括的进程;在该目标进程为该服务组件中包括的进程的情况下,确定该内存池中的私有内存的容量是否大于或等于该目标容量,该私有内存用于存储一个进程的数据信息;在该内存池中的私有内存的容量大于或等于该目标容量的情况下,基于该目标容量,从该私有内存中为该目标进程分配内存。
根据上述技术手段,在该目标进程不为该目标组件的进程的情况下,说明该目标进程为该服务组件中包括的进程,此时电子设备可以准确地确定出该目标进程所需内存为私有内存,此时电子设备再确定该内存池中的私有内存的容量是否大于或等于该目标容量,并在该内存池中的共享内存的容量大于或等于目标容量的情况下,电子设备可以基于该目标容量,准确地、有效地从私有内存中为该目标进程分配内存。
在一种可能的实施方式中,上述方法还包括:在该内存池中存在多个非连续内存碎片的情况下,对该多个非连续内存碎片进行聚类操作,以使得该多个非连续内存碎片合并为连续内存。
根据上述技术手段,在该内存池中存在多个非连续内存碎片的情况下,说明该内存池中存在空闲内存碎片,此时电子设备可以对该多个非连续性内存碎片中每个非连续内存碎片进行聚类操作,以使得该多个非连续性内存碎片可以有效地合并为连续内存,进而在增加内存利用率。
根据本申请提供的第二方面,提供一种内存分配装置,包括接收单元以及处理单元。该接收单元,用于接收目标进程发送的目标内存分配请求,该目标内存分配请求包括目标容量,该目标内存分配请求用于请求从内存池中为该目标进程分配内存,该目标进程为该微内核中包括的进程或者为该服务组件中包括的进程;该处理单元,用于在该内存池的可用内存容量大于或等于该目标容量的情况下,基于该目标容量,从内存池中为该目标进程分配内存。
在一种可能的实施方式中,上述内存分配装置还包括确定单元;该确定单元,用于确定该目标进程是否为该微内核中包括的进程;该确定单元,用于在该目标进程为该微内核中包括的进程的情况下,确定该内存池中的共享内存的容量是否大于或等于该目标容量,该共享内存用于存储多个相同类型的进程的数据信息;该处理单元,还用于在该内存池中的共享内存的容量大于或等于该目标容量的情况下,基于该目标容量,从该共享内存中为该目标进程分配内存。
在一种可能的实施方式中,上述内存分配装置还包括确定单元;该确定单元,用于确定该目标进程是否为该服务组件中包括的进程;该确定单元,用于在该目标进程为该服务组件中包括的进程的情况下,确定该内存池中的私有内存的容量是否大于或等于该目标容量,该私有内存用于存储一个进程的数据信息;该处理单元,还用于在该内存池中的私有内存的容量大于或等于该目标容量的情况下,基于该目标容量,从该私有内存中为该目标进程分配内存。
在一种可能的实施方式中,该处理单元,还用于在该内存池中存在多个非连续内存碎片的情况下,对该多个非连续内存碎片进行聚类操作,以使得该多个非连续内存碎片合并为连续内存。
根据本申请提供的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面及其任一种可能的实施方式的方法。
根据本申请提供的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面中及其任一种可能的实施方式的方法。
由此,本申请的上述技术特征具有以下有益效果:
(1)电子设备在接收到该目标进程发送的目标内存分配请求后,确定内存池的可用容量是否大于或等于该目标内存分配请求中包括的目标容量,在该内存池的可用内存容量大于或等于目标容量的情况下,说明该内存池中的可用容量可以满足该目标进程的容量需求,此时电子设备可以基于该目标容量,准确地、有效地从内存池中为该目标进程分配内存。
(2)电子设备可以确定该目标进程是否为该微内核中包括的进程,并且在该目标进程为该微内核中包括的进程的情况下,说明该目标进程所需内存为共享内存,此时电子设备再确定该内存池中的共享内存的容量是否大于或等于该目标容量,并在该内存池中的共享内存的容量大于或等于目标容量的情况下,电子设备可以基于该目标容量,准确地、有效地从共享内存中为该目标进程分配内存。
(3)在该目标进程为该服务组件中包括的进程的情况下,说明该目标进程所需内存为私有内存,此时电子设备再确定该内存池中的私有内存的容量是否大于或等于该目标容量,并在该内存池中的共享内存的容量大于或等于目标容量的情况下,电子设备可以基于该目标容量,准确地、有效地从私有内存中为该目标进程分配内存。
(4)在该内存池中存在多个非连续内存碎片的情况下,说明该内存池中存在空闲内存碎片,此时电子设备可以对该多个非连续性内存碎片进行聚类操作,以使得该多个非连续性内存碎片可以有效地合并为连续内存,进而在增加内存利用率。
需要说明的是,第二方面至第四方面中的任一种实现方式所带来的技术效果可参见第一方面中对应实现方式所带来的技术效果,此处不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1是根据一示例性实施例示出的一种内存分配方法的流程图;
图2是根据一示例性实施例示出的又一种内存分配方法的流程图;
图3是根据一示例性实施例示出的又一种内存分配方法的流程图;
图4是根据一示例性实施例示出的又一种内存分配方法的示意图;
图5是根据一示例性实施例示出的微内核操作系统示意图;
图6是根据一示例性实施例示出的一种内存分配装置的框图;
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
此外,本申请的描述中所提到的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
下面对本申请实施例提供的一种内存分配方法、装置、设备及存储介质所涉及的一些概念做解释说明。
微内核操作系统为基于微内核构架的操作系统,微内核由一群尽可能将数量最小化的软件程序组成,它们负责提供实现一个操作系统所需要的各种机制与功能。
基于背景技术中所描述,由于相关技术中,基于微内核操作系统运行应用程序时,电子设备向该应用程序的进程分配内存的时候,可能会造成内存资源的浪费,进而影响内存分配的高效性和准确性的问题。基于此,本申请实施例提供一种内存分配方法、装置、电子设备及存储介质,本申请实施例中,电子设备在接收到该目标进程发送的目标内存分配请求后,确定内存池的可用容量是否大于或等于该目标内存分配请求中包括的目标容量,在该内存池的可用内存容量大于或等于目标容量的情况下,说明该内存池中的可用容量可以满足该目标进程的容量需求,此时电子设备可以基于该目标容量,准确地、有效地从内存池中为该目标进程分配内存。
示例性的,执行本申请实施例提供的内存分配方法的电子设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(content delivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器等,本申请对电子设备的具体形态不作特殊限制。其可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互。
为了便于理解,以下结合附图对本申请提供的内存分配方法进行具体介绍。
图1是根据一示例性实施例示出的一种内存分配方法的流程图,如图1所示,该内存分配方法可以包括S101-S102。
S101、电子设备接收目标进程发送的目标内存分配请求。
其中,该目标内存分配请求包括目标容量,该目标内存分配请求用于请求从内存池中为该目标进程分配内存,该目标进程为微内核包括的进程或服务组件包括的进程。
在本申请实施例的一种实现方式中,电子设备可以确定微内核以及服务组件两大板块,该微内核中可以包括进程管理模块、内存管理模块以及任务调度模块等基本模块,这些基本核心模块组成了微内核,该服务组件中可以包括文件系统服务、网络服务、设备驱动服务等多种组件,该微内核中包括的模块以及该服务组件中包括的组件构成了微内核操作系统,该为微内核中包括的进程为该微内核中包括的多个基本模块的进程,该服务组件中包括的进程为该服务组件中包括的多个组件的进程。
S102、在内存池的可用内存容量大于或等于目标容量的情况下,电子设备基于目标容量,从内存池中为目标进程分配内存。
应理解,在该内存池的可用内存容量大于或等于目标容量的情况下,说明该内存池中的可用容量可以满足该目标进程的容量需求,此时电子设备可以基于该目标容量,从内存池中为该目标进程分配内存。
本申请实施例中,电子设备在接收到该目标进程发送的目标内存分配请求后,确定内存池的可用容量是否大于或等于该目标内存分配请求中包括的目标容量,在该内存池的可用内存容量大于或等于目标容量的情况下,说明该内存池中的可用容量可以满足该目标进程的容量需求,此时电子设备可以基于该目标容量,准确地、有效地从内存池中为该目标进程分配内存。
一些实施例中,结合图1,如图2所示,上述在内存池的可用内存容量大于或等于目标容量的情况下,电子设备基于目标容量,从内存池中为目标进程分配内存,具体可以包括:S1021-S1023。
S1021、电子设备确定目标进程是否为微内核中包括的进程。
其中,该目标组件为微内核中包括的组件,该微内核中包括多个组件。
在本申请实施例的一种实现方式中,该微内核中包括进程管理模块、内存管理模块以及任务调度模块等基本模块,电子设备可以确定该目标进程是否为该微内核中包括的进程。
S1022、在目标进程为微内核中包括的进程的情况下,电子设备确定内存池中的共享内存的容量是否大于或等于目标容量。
其中,该共享内存用于存储多个相同类型的进程的数据信息。
应理解,在该目标进程为该目标组件的进程的情况下,说明该目标进程为该微内核中包括的进程,此时电子设备可以确定该内存池中的共享内存的容量是否大于或等于该目标容量。
可以理解的是,该内存池中包括共享内存的容量以及私有内存的容量。
在本申请实施例的一种实现方式中,可以将物理内存和虚拟内存的地址映射,微内核映射在一个全局区域(即共享内存),服务组件和应用映射在另一个私有区域(即私有内存)。
S1023、在内存池中的共享内存的容量大于或等于目标容量的情况下,电子设备基于目标容量,从共享内存中为目标进程分配内存。
应理解,在该内存池中的共享内存的容量大于或等于目标容量的情况下,说明该内存池中的共享内存的可用容量可以满足该目标进程的容量需求,此时电子设备可以基于该目标容量,从该共享内存中为该目标进程分配内存。
在本申请实施例的一种实现方式中,在该内存池中的共享内存的容量小于目标容量的情况下,说明该内存池中的共享内存的可用容量不足以满足该目标进程的容量需求,此时电子设备将无法为所述目标进程分配内存。
本申请实施例中,电子设备可以确定该目标进程是否为该微内核中包括的进程,并且在该目标进程为该微内核中包括的进程的情况下,说明该目标进程所需内存为共享内存,此时电子设备再确定该内存池中的共享内存的容量是否大于或等于该目标容量,并在该内存池中的共享内存的容量大于或等于目标容量的情况下,电子设备可以基于该目标容量,准确地、有效地从共享内存中为该目标进程分配内存。
一些实施例中,结合图1,如图3所示,上述在内存池的可用内存容量大于或等于目标容量的情况下,电子设备基于目标容量,从内存池中为目标进程分配内存,具体还可以包括:S1024-S1026。
S1024、电子设备确定目标进程是否为服务组件中包括的进程。
在本申请实施例的一种实现方式中,该服务组件包括文件系统服务、网络服务、设备驱动服务等多种组件,电子设备可以确定该目标进程是否为该服务组件中包括的进程。
S1025、在目标进程为服务组件中包括的进程的情况下,电子设备确定内存池中的私有内存的容量是否大于或等于目标容量。
其中,该私有内存用于存储一个进程的数据信息。
应理解,在该目标进程不为该目标组件的进程的情况下,说明该目标进程为服务组件的进程或应用进程,此时电子设备可以确定该内存池中的私有内存的容量是否大于或等于该目标容量。
在本申请实施例的一种实现方式中,该服务组件中可以包括文件系统服务、网络服务、设备驱动服务等多种组件,在该目标进程不为该目标组件的进程的情况下,电子设备可以确定该目标进程是否为该服务组件中包括的进程。
可选地,该内存池可以为内存映射表,可以通过内存管理单元(memorymanagement unit,MMU)映射内存,在映射内存的时候MMU可以赋予该映射内存读写访问权限,可以实现内存保护,即可以保证一块内存只有一个进程使用。
S1026、在内存池中的私有内存的容量大于或等于目标容量的情况下,电子设备基于目标容量,从私有内存中为目标进程分配内存。
应理解,在该内存池中的私有内存的容量大于或等于目标容量的情况下,说明该内存池中的私有内存的可用容量可以满足该目标进程的容量需求,此时电子设备可以基于该目标容量,从该共享内存中为该目标进程分配内存。
在本申请实施例的一种实现方式中,在该内存池中的私有内存的容量小于该目标容量的情况下,说明该内存池中的私有内存的可用容量不能够满足该目标进程的容量需求,此时电子设备无法为所述目标进程进分配内存。
本申请实施例中,在该目标进程为该服务组件中包括的进程的情况下,说明该目标进程所需内存为私有内存,此时电子设备再确定该内存池中的私有内存的容量是否大于或等于该目标容量,并在该内存池中的共享内存的容量大于或等于目标容量的情况下,电子设备可以基于该目标容量,准确地、有效地从私有内存中为该目标进程分配内存。
一些实施例中,结合图1,如图4所示,本申请实施例提供的内存分配方法还包括:S103。
S103、在内存池中存在多个非连续内存碎片的情况下,电子设备对多个非连续内存碎片进行聚类操作,以使得多个非连续内存碎片合并为连续内存。
应理解,在该内存池中存在多个非连续内存碎片的情况下,说明该内存池中存在空闲内存碎片,此时电子设备可以对该多个非连续性内存碎片进行聚类操作,以使得该多个非连续性内存碎片可以有效地合并为连续内存,进而在增加内存利用率。
以下以一个示例说明本申请实施例中微内核操作系统。
示例性的,如图5所示,操作系统可以为多核处理器也可以为微内核,其中该微内核中包括进程管理模块、内存管理模块以及任务调度模块等基本模块,应用进程以及服务组件通过进程间通信(inter-process communication,IPC)与微内核进行通信,其中,该服务组件包括文件系统服务、网络服务、设备驱动服务等多种组件。
可选地,该任务调度模块可以实现优先级抢占式调度、轮询调度算法、先进先出队列(first input first output,FIFO)算法以及防优先级反转机制。
可选地,该进程管理模块可以实现进程的创建与撤销、进程的调度。进程间同步和通信、进程状态控制、进程资源管理以及进程安全管理。
可选地,该内存管理模块可以实现内存分配和回收、内存保护、虚拟内存管理、内存碎片整理以及内存优化,该内存优化为将内存空间按照一定的策略分配给进程,减少内存碎片,比如有些进程不会频繁的释放和申请内存,可以申请固定的静态内存,某些需要频繁的申请,但都是小内存,那就使用善于处理小内存的算法去分配释放管理,如果都是大内存,则选择大内存分配算法去管理,可以动态适配。
可选地,该文件系统服务可以实现FATFS文件、ROMFS文件、EXT4文件等至少三种文件系统以及可以实现支持内嵌式存储器(embedded multi media card,emmc)和非易失闪存技术(norflash)驱动。
可选地,该网络服务可以实现:网络协议实现(可以根据应用场景选择开源的LWIP移植实现)、网络服务管理、网络安全管理、网络资源管理、记录网络日志等服务;
可选地,该设备驱动为一个驱动框架,可以实现常见通用的驱动,支持字符设备、块设备、网络设备、复杂设备的驱动。
在本申请实施例的一种实现方式中,微内核只提供最基本的操作系统功能,服务组件提供其他的高级功能,并且可以将服务组件独立开发,实现模块化设计,不与微内核直接耦合,通过IPC机制实现微内核与服务组件之间的通信,并利用MMU将操作系统的各个模块分别运行在独立的地址空间中,并且根据需求赋予模块不同的读写访问权限,能够实现隔离保护,提升操作系统的可靠性、可扩展性和可定制性,其中该IPC机制包括但不限于管道、邮箱以及共享内存等方式。
可选地,该微内核的性能开销主要就在于IPC,所以根据进程间通信数据量有不同的优化策略,比如零拷贝技术等。
可选地,该服务组件可以根据需要进行动态加载和卸载,服务组件进行加载可以理解为,为该服务组件的进程分配内存(即加载),服务组件进行卸载可以理解为,将该服务组件的进程的内存进行释放(即卸载)。
可选地,该微内核操作系统可以应用于嵌入式系统、移动设备、服务器等各种场景,具有广泛的实用性。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,内存分配装置或电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法,示例性的对内存分配装置或电子设备进行功能模块的划分,例如,内存分配装置或电子设备可以包括对应各个功能划分的各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图6是根据一示例性实施例示出的一种内存分配装置的框图。参照图6,该内存分配装置100包括:接收单元101以及处理单元102。
接收单元101,用于接收目标进程发送的目标内存分配请求,该目标内存分配请求包括目标容量,该目标内存分配请求用于请求从内存池中为该目标进程分配内存,该目标进程为该微内核中包括的进程或者为该服务组件中包括的进程。
处理单元102,用于在该内存池的可用内存容量大于或等于该目标容量的情况下,基于该目标容量,从内存池中为该目标进程分配内存。
在一种可能的实施方式中,上述内存分配装置100还包括确定单元103。
确定单元103,用于确定该目标进程是否为微内核中包括的进程。
确定单元103,用于在该目标进程为该微内核中包括的进程的情况下,确定该内存池中的共享内存的容量是否大于或等于该目标容量,该共享内存用于存储多个相同类型的进程的数据信息。
处理单元102,还用于在该内存池中的共享内存的容量大于或等于该目标容量的情况下,基于该目标容量,从该共享内存中为该目标进程分配内存。
在一种可能的实施方式中,上述内存分配装置100还包括确定单元103。
确定单元103,用于确定该目标进程是否为服务组件中包括的进程。
确定单元103,用于在该目标进程为该服务组件中包括的进程的情况下,确定该内存池中的私有内存的容量是否大于或等于该目标容量,该私有内存用于存储一个进程的数据信息。
处理单元102,还用于在该内存池中的私有内存的容量大于或等于该目标容量的情况下,基于该目标容量,从该私有内存中为该目标进程分配内存。
在一种可能的实施方式中,处理单元102,还用于在该内存池中存在多个非连续内存碎片的情况下,对该多个非连续内存碎片进行聚类操作,以使得该多个非连续内存碎片合并为连续内存。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种电子设备的框图。如图7所示,电子设备200包括但不限于:处理器201和存储器202。
其中,上述的存储器202,用于存储上述处理器201的可执行指令。可以理解的是,上述处理器201被配置为执行指令,以实现上述实施例中的方法。
需要说明的是,本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图7所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器201是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器201可包括一个或多个处理单元。可选的,处理器201可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器201中。
存储器202可用于存储软件程序以及各种数据。存储器202可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能模块所需的应用程序(比如确定单元、处理单元等)等。此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器202,上述指令可由电子设备200的处理器201执行以实现上述实施例中的方法。
在实际实现时,图6中的接收单元101、处理单元102以及确定单元103的功能均可以由图7中的处理器201调用存储器202中存储的计算机程序实现。其具体的执行过程可参考上实施例中方法部分的描述,这里不再赘述。
可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,本申请实施例还提供了一种包括一条或多条指令的计算机程序产品,该一条或多条指令可以由电子设备的处理器201执行以完成上述实施例中的方法。
在示例性实施例中,本申请实施例还提供了一种车辆,该车辆包括上述电子设备。
需要说明的是,上述计算机可读存储介质中的指令或计算机程序产品中的一条或多条指令被电子设备的处理器执行时实现上述方法实施例的各个过程,且能达到与上述方法相同的技术效果,为避免重复,这里不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全分类部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全分类部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全分类部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全分类部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种内存分配方法,其特征在于,应用于电子设备,所述电子设备包括微内核以及服务组件,包括:
接收目标进程发送的目标内存分配请求,所述目标内存分配请求包括目标容量,所述目标内存分配请求用于请求从内存池中为所述目标进程分配内存,所述目标进程为所述微内核中包括的进程或者为所述服务组件中包括的进程;
在所述内存池的可用内存容量大于或等于所述目标容量的情况下,基于所述目标容量,从内存池中为所述目标进程分配内存。
2.根据权利要求1所述的内存分配方法,其特征在于,所述在所述内存池的可用内存容量大于或等于所述目标容量的情况下,基于所述目标容量,从内存池中为所述目标进程分配内存,包括:
确定所述目标进程是否为所述微内核中包括的进程;
在所述目标进程为所述微内核中包括的进程的情况下,确定所述内存池中的共享内存的容量是否大于或等于所述目标容量,所述共享内存用于存储多个相同类型的进程的数据信息;
在所述内存池中的共享内存的容量大于或等于所述目标容量的情况下,基于所述目标容量,从所述共享内存中为所述目标进程分配内存。
3.根据权利要求1所述的内存分配方法,其特征在于,所述在所述内存池的可用内存容量大于或等于所述目标容量的情况下,基于所述目标容量,从内存池中为所述目标进程分配内存,还包括:
确定所述目标进程是否为所述服务组件中包括的进程;
在所述目标进程为所述服务组件中包括的进程的情况下,确定所述内存池中的私有内存的容量是否大于或等于所述目标容量,所述私有内存用于存储一个进程的数据信息;
在所述内存池中的私有内存的容量大于或等于所述目标容量的情况下,基于所述目标容量,从所述私有内存中为所述目标进程分配内存。
4.根据权利要求1-3中任一项所述的内存分配方法,其特征在于,所述方法还包括:
在所述内存池中存在多个非连续内存碎片的情况下,对所述多个非连续内存碎片进行聚类操作,以使得所述多个非连续内存碎片合并为连续内存。
5.一种内存分配装置,其特征在于,应用于电子设备,所述电子设备包括微内核以及服务组件,包括接收单元以及处理单元;
所述接收单元,用于接收目标进程发送的目标内存分配请求,所述目标内存分配请求包括目标容量,所述目标内存分配请求用于请求从内存池中为所述目标进程分配内存,所述目标进程为所述微内核中包括的进程或者为所述服务组件中包括的进程;
所述处理单元,用于在所述内存池的可用内存容量大于或等于所述目标容量的情况下,基于所述目标容量,从内存池中为所述目标进程分配内存。
6.根据权利要求5所述的内存分配装置,其特征在于,所述内存分配装置还包括确定单元;
所述确定单元,用于确定所述目标进程是否为所述微内核中包括的进程;
所述确定单元,用于在所述目标进程为所述微内核中包括的进程的情况下,确定所述内存池中的共享内存的容量是否大于或等于所述目标容量,所述共享内存用于存储多个相同类型的进程的数据信息;
所述处理单元,还用于在所述内存池中的共享内存的容量大于或等于所述目标容量的情况下,基于所述目标容量,从所述共享内存中为所述目标进程分配内存。
7.根据权利要求5所述的内存分配装置,其特征在于,所述内存分配装置还包括确定单元;
所述确定单元,用于确定所述目标进程是否为所述服务组件中包括的进程;
所述确定单元,用于在所述目标进程为所述服务组件中包括的进程的情况下,确定所述内存池中的私有内存的容量是否大于或等于所述目标容量,所述私有内存用于存储一个进程的数据信息;
所述处理单元,还用于在所述内存池中的私有内存的容量大于或等于所述目标容量的情况下,基于所述目标容量,从所述私有内存中为所述目标进程分配内存。
8.根据权利要求5-7中任一项所述的内存分配装置,其特征在于,
所述处理单元,还用于在所述内存池中存在多个非连续内存碎片的情况下,对所述多个非连续内存碎片进行聚类操作,以使得所述多个非连续内存碎片合并为连续内存。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至4中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中存储的计算机执行指令由电子设备的处理器执行时,所述电子设备能够执行如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311086567.0A CN117170863A (zh) | 2023-08-25 | 2023-08-25 | 一种内存分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311086567.0A CN117170863A (zh) | 2023-08-25 | 2023-08-25 | 一种内存分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117170863A true CN117170863A (zh) | 2023-12-05 |
Family
ID=88936823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311086567.0A Pending CN117170863A (zh) | 2023-08-25 | 2023-08-25 | 一种内存分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117170863A (zh) |
-
2023
- 2023-08-25 CN CN202311086567.0A patent/CN117170863A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984264B (zh) | 虚拟gpu的实现方法、装置及系统 | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
CN110663019B (zh) | 用于叠瓦式磁记录(smr)的文件系统 | |
US9201896B2 (en) | Managing distributed storage quotas | |
US9998531B2 (en) | Computer-based, balanced provisioning and optimization of data transfer resources for products and services | |
WO2017107414A1 (zh) | 文件操作方法和装置 | |
CN103577345A (zh) | 提高由多个系统共享的存储高速缓存灵活性的方法和结构 | |
US20120110293A1 (en) | Method and system for managing virtual machine storage space and physical host | |
CN111406250A (zh) | 无服务器计算环境中的使用经预取的数据的配设 | |
EP1589411A3 (en) | Managing method for storing subsystem | |
KR102077149B1 (ko) | 메모리 관리 방법 및 장치 | |
CN114424172B (zh) | 虚拟存储器元数据管理 | |
CN112825042A (zh) | 资源管理方法和装置、电子设备及存储介质 | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN108038062B (zh) | 嵌入式系统的内存管理方法和装置 | |
US10237233B2 (en) | Allocating identifiers with minimal fragmentation | |
US9697047B2 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
US10579419B2 (en) | Data analysis in storage system | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
CN114253704A (zh) | 一种分配资源的方法及装置 | |
CN106537321B (zh) | 存取文件的方法、装置和存储系统 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN117170863A (zh) | 一种内存分配方法、装置、设备及存储介质 | |
CN109478151B (zh) | 网络可访问数据卷修改 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |