CN116737356B - 内存管理方法和电子设备 - Google Patents
内存管理方法和电子设备 Download PDFInfo
- Publication number
- CN116737356B CN116737356B CN202211175845.5A CN202211175845A CN116737356B CN 116737356 B CN116737356 B CN 116737356B CN 202211175845 A CN202211175845 A CN 202211175845A CN 116737356 B CN116737356 B CN 116737356B
- Authority
- CN
- China
- Prior art keywords
- memory
- allocated
- module
- request
- water line
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims abstract description 83
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本申请公开了一种内存管理方法和电子设备,涉及计算机技术领域,用于提高内存分配的效率。内存管理方法包括:获取目标内存请求信息,目标内存请求信息用于指示请求分配的内存;根据请求分配的内存、可用内存和查杀水线确定是否查杀至少一个进程。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种内存管理方法和电子设备。
背景技术
在安卓系统中申请较大内存时,会出现内存回收不及时而触发对进程进行查杀以释放内存,而在查杀进程时由于仅对单个进程进行查杀,如果单次查杀后仍内存不足会继续触发查杀进程,直至能够分配足够多的内存为止,导致分配内存耗时较长。
发明内容
本申请实施例提供一种内存管理方法和电子设备,用于提高内存分配的效率。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种内存管理方法,包括:获取目标内存请求信息,目标内存请求信息用于指示请求分配的内存;根据请求分配的内存、可用内存和查杀水线确定是否查杀至少一个进程。
本申请实施例提供的内存管理方法和电子设备,当系统请求分配内存时,根据请求分配的内存、可用内存和查杀水线确定是否查杀至少一个进程,避免一次查杀一个进程时可用内存仍低于查杀水线,而反复触发本地层的LMKD模块对进程进行查杀,从而提高内存分配的效率。
在一种可能的实施方式中,获取目标内存请求信息,包括:从至少一个内存请求信息中确定目标内存请求信息,目标内存请求信息为至少一个内存请求信息中,请求分配的内存大于或等于请求门限,并且,请求分配的内存最大的内存请求信息。
该实施方式使得多个应用程序请求分配较大内存时,从中选择请求分配内存最大的请求来进行响应,以尽量满足内存上需求,避免多次查杀。
在一种可能的实施方式中,根据请求分配的内存、可用内存和查杀水线确定是否查杀至少一个进程,包括:如果可用内存减去请求分配的内存小于第一查杀水线,则LMKD根据请求分配的内存、可用内存和第一查杀水线查杀至少一个进程;否则,框架层的内存管理模块根据请求分配的内存、可用内存和第二查杀水线确定是否查杀至少一个进程;其中,第二查杀水线大于第一查杀水线。
即先由LMKD进行查杀,再由框架层的内存管理模块进行查杀,由于LMKD查杀速度更快,因此可以更快分配内存。
在一种可能的实施方式中,根据请求分配的内存、可用内存和查杀水线确定是否查杀至少一个进程,包括:LMKD根据请求分配的内存、可用内存和第一查杀水线查杀至少一个进程;框架层的内存管理模块根据请求分配的内存、可用内存和第二查杀水线查杀至少一个进程;其中,第二查杀水线大于第一查杀水线。
即由LMKD和框架层的内存管理模块共同进行查杀,以获取更多的可用内存。
在一种可能的实施方式中,根据请求分配的内存、可用内存和第一查杀水线查杀至少一个进程,包括:在查杀一个进程之后,如果可用内存减去请求分配的内存仍小于第一查杀水线,则继续查杀下一个进程,直至可用内存减去请求分配的内存大于或等于第一查杀水线。
该实施方式提供了LMKD查杀进程的一种具体方式。
在一种可能的实施方式中,根据请求分配的内存、可用内存和第二查杀水线查杀至少一个进程,包括:如果可用内存减去请求分配的内存小于第二查杀水线,则查杀一个进程,直至可用内存减去请求分配的内存大于或等于第二查杀水线。
该实施方式提供了框架层的内存管理模块查杀进程的一种具体方式。
在一种可能的实施方式中,被查杀的一个进程不允许后台驻留,并且,该一个进程未在等待响应。该实施方式使得有些特别需求的进程不会被查杀。
第二方面,提供了一种电子设备,包括处理器和存储器,存储器中存储指令,当处理器执行指令时,如第一方面及其任一实施方式所述的方法被执行。
第三方面,提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第一方面及其任一实施方式所述的方法。
第四方面,提供了一种包含指令的计算机程序产品,当指令在上述电子设备上运行时,使得该电子设备执行如第一方面及其任一实施方式所述的方法。
第五方面,提供了一种芯片系统,该芯片系统包括处理器,用于支持电子设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括接口电路,接口电路可用于从其它装置(例如存储器)接收信号,或者,向其它装置(例如通信接口)发送信号。该芯片系统可以包括芯片,还可以包括其他分立器件。
第二方面至第五方面的技术效果参照第一方面及其任一实施方式的技术效果,在此不再重复。
附图说明
图1为本申请实施例提供的一种进程查杀的原理示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的一种电子设备运行的软件的架构示意图;
图4为本申请实施例提供的一种内存分配的流程示意图;
图5为本申请实施例提供的另一种内存分配的流程示意图;
图6为本申请实施例提供的再一种内存分配的流程示意图;
图7为本申请实施例提供的多个套接字通信的示意图;
图8为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
首先对本申请涉及的一些概念进行描述。
本申请实施例涉及的术语“第一”、“第二”等仅用于区分同一类型特征的目的,不能理解为用于指示相对重要性、数量、顺序等。
本申请实施例涉及的术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例涉及的术语“耦合”、“连接”应做广义理解,例如,可以指物理上的直接连接,也可以指通过电子器件实现的间接连接,例如通过电阻、电感、电容或其他电子器件实现的连接。
首先对本申请涉及的概念进行描述:
事件轮询(event poll,EPoll):一种内核空间(kernel space)与用户空间(userspace)之间的输入输出(input output,I/O)事件通知工具,在内核空间可以同时监听多个事件(event),当发生其中一个事件时将该事件通知给用户空间(user space),在用户空间调用该事件的回调函数来实现对该事件的响应。
直接存储器访问(direct memory access,DMA)缓存(buffer):一种内存分配机制,可以分配大内存以及方便在不同进程之间共享内存。
低内存查杀守护(low memory killer daemon,LMKD):用于在可用内存低于查杀水线时按照进程进行清理,释放内存压力。示例性的,如图1所示,当拍照或录像时,系统通过DMA缓存申请较大内存(例如200MB),可能导致内存回收不及时而导致可用内存低于查杀水线,从而触发LMKD对进程进行查杀。当可用内存高于查杀水线时,LMKD会停止查杀进程,但是此时由于DMA缓存仍未申请到足够的内存,还会继续申请内存,又会触发LMKD对进程进行查杀,如此反复,直到DMA缓存分配完内存,导致分配内存耗时较长并且效率较低。
因此,本申请实施例提供内存管理方法和电子设备,当系统申请分配较大内存时,LMKD一次性查杀足够多的进程从而空闲足够多的内存,避免LMKD反复判断可用内存是否低于水线进而反复触发查杀进程,导致分配内存耗时较长并且效率较低。
具体的,本申请实施例提供了一种电子设备,该电子设备可以是一种具有显示功能的设备,电子设备可以是移动的,也可以是固定的。电子设备可以部署在陆地上(例如室内或室外、手持或车载等),也可以部署在水面上(例如轮船等),还可以部署在空中(例如飞机、气球和卫星等)。该电子设备可以称为用户设备(user equipment,UE)、接入终端、终端单元、用户单元(subscriber unit)、终端站、移动站(mobile station,MS)、移动台、终端代理或终端装置等。例如,该电子设备可以是手机、平板电脑、笔记本电脑、智能手环、智能手表、耳机、智能音箱、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的终端、无人驾驶(self driving)中的终端、远程医疗(remote medical)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smart city)中的终端、智慧家庭(smarthome)中的终端等。本申请实施例对电子设备的具体类型和结构等不作限定。下面对电子设备的一种可能结构进行说明。
以电子设备为手机为例,图2示出了电子设备101的一种可能的结构。该电子设备101可以包括处理器210、外部存储器接口220、内部存储器221、通用串行总线(universalserial bus,USB)接口230、电源管理模块240、电池241、无线充电线圈242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器270A、受话器270B、麦克风270C、耳机接口270D、传感器模块280、按键290、马达291、指示器292、摄像头293、显示屏294以及用户标识模块(subscriber identification module,SIM)卡接口295等。
其中,传感器模块280可以包括压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备101的具体限定。在本申请另一些实施例中,电子设备101可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以为现场可编程门阵列(field programmable gate array,FPGA)、专用集成电路(application specificintegrated circuit,ASIC)、片上系统(system on chip,SoC)、中央处理单元(centralprocessing unit,CPU)、应用处理器(application processor,AP)、网络处理器(networkprocessor,NP)、数字信号处理器(digital signal processor,DSP)、微控制单元(microcontroller unit,MCU)、可编程逻辑器件(programmable logic device,PLD)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signalprocessor,ISP)、控制器、视频编解码器、基带处理器以及神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器210可以是应用处理器AP。或者,上述处理器210可以集成在片上系统(system on chip,SoC)中。或者,上述处理器210可以集成在集成电路(integrated circuit,IC)芯片中。该处理器210可以包括IC芯片中的模拟前端(analogfront end,AFE)和微控制单元(micro-controller unit,MCU)。
其中,控制器可以是电子设备101的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口、集成电路内置音频(inter-integrated circuitsound,I2S)接口、脉冲编码调制(pulse code modulation,PCM)接口、通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口、移动产业处理器接口(mobile industry processor interface,MIPI)、通用输入输出(general-purposeinput/output,GPIO)接口、用户标识模块(subscriber identity module,SIM)接口和/或USB接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备101的结构限定。在本申请另一些实施例中,电子设备101也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电源管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器(如电子设备101的无线充电底座或者其他可以为电子设备101无线充电的设备),也可以是有线充电器。例如,电源管理模块240可以通过USB接口230接收有线充电器的充电输入。电源管理模块240可以通过电子设备的无线充电线圈242接收无线充电输入。
其中,电源管理模块240为电池241充电的同时,还可以为电子设备供电。电源管理模块240接收电池241的输入,为处理器210、内部存储器221、外部存储器接口220、显示屏294、摄像头293和无线通信模块260等供电。电源管理模块240还可以用于监测电池241的电池容量、电池循环次数、电池健康状态(漏电、阻抗)等参数。在其他一些实施例中,电源管理模块240也可以设置于处理器210中。
电子设备101的无线通信功能可以通过天线1、天线2、移动通信模块250、无线通信模块260、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备101中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在电子设备101上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块260可以提供应用在电子设备101上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络)、蓝牙(bluetooth,BT)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。在一些实施例中,电子设备101的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得电子设备101可以通过无线通信技术与网络以及其他设备通信。
电子设备101通过GPU、显示屏294以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。在一些实施例中,电子设备101可以包括1个或N个显示屏294,N为大于1的正整数。
电子设备101可以通过ISP、摄像头293、视频编解码器、GPU、显示屏294以及应用处理器等实现拍摄功能。ISP用于处理摄像头293反馈的数据。在一些实施例中,ISP可以设置在摄像头293中。摄像头293用于捕获静态图像或视频。在一些实施例中,电子设备101可以包括1个或N个摄像头293,N为大于1的正整数。示例性的,本申请实施例的摄像头包括广角摄像头和主摄像头。
外部存储器接口220可以用于连接外部存储卡,例如微闪迪(micro SanDisk,Micro SD)卡,实现扩展电子设备101的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备101的各种功能应用以及数据处理。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flashstorage,UFS)等。
本申请实施例涉及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
电子设备101可以通过音频模块270、扬声器270A、受话器270B、麦克风270C、耳机接口270D以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。在一些实施例中,音频模块270可以设置于处理器210中,或将音频模块270的部分功能模块设置于处理器210中。扬声器270A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器270B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风270C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。电子设备101可以设置至少一个麦克风270C。耳机接口270D用于连接有线耳机。耳机接口270D可以是USB接口230,也可以是3.5mm的开放移动终端平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键290包括开机键、音量键等。按键290可以是机械按键。也可以是触摸式按键。电子设备101可以接收按键输入,产生与电子设备101的用户设置以及功能控制有关的键信号输入。马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息、未接来电、通知等。SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和电子设备101的接触和分离。电子设备101可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持纳SIN(Nano SIM)卡、微SIM(MicroSIM)卡、SIM卡等。在一些实施例中,电子设备101采用嵌入式(embedded SIM,eSIM)卡,eSIM卡可以嵌在电子设备101中,不能和电子设备101分离。
处理器210通过执行内部存储器221中存储的程序、指令来执行本申请实施例提供的内存管理方法。处理器210运行的程序可以基于操作系统,例如安卓(Android)苹果(iOS)视窗(Windows)操作系统等。
如图3所示,以处理器210运行的程序基于安卓为例,处理器210运行的程序按照功能进行分层,可以包括应用程序层、框架层、本地层、内核层。
内核层包括操作系统(operation system,OS)内核(kernel)。操作系统内核用于管理系统的进程、内存、驱动程序、文件系统和网络系统。例如,内核层包括内核层的DMA缓存模块。
本地层可以提供静态链接库或动态链接库,供框架层的应用程序编程接口(application programming interface,API)调用。例如,本地层包括本地层的DMA缓存模块和LMKD模块。
框架层用于向应用程序层中的应用程序提供API和系统资源服务。例如,框架层可以包括相机的API和服务、框架层的内存管理模块等。
应用程序层可以包括各种应用程序,例如拍照程序等。
如图4所示,本申请实施例提供的内存管理方法包括:
S101、获取目标内存请求信息。
示例性的,如图5和图6所示,当系统上电时,本地层中的LMKD模块与内核层中的DMA缓存模块通过EPoll建立通信或者通过套接字(socket)建立通信,本地层中的LMKD模块与框架层的内存管理模块之间通过套接字(socket)建立通信。EPoll通信相对于的套接字(socket)通信的优点是消息传递方式简单,可以更快速响应。
特别地,如图7所示,对于本地层中的LMKD模块与框架层的内存管理模块之间通过套接字(socket)建立通信来说,可以为每个应用程序的进程建立一条套接字(socket)通信链路,并且为每个应用程序的进程配置通过套接字(socket)访问本地层中的LMKD模块的权限,例如应用程序1的进程通过套接字1访问本地层中的LMKD模块,应用程序2的进程通过套接字2访问本地层中的LMKD模块,应用程序3的进程通过套接字3访问本地层中的LMKD模块。
所有进程及服务向本地层的DMA缓存模块申请内存都会传递至内核层的DMA缓存模块,当应用层的应用程序请求较大内存时,例如应用层的拍照程序进行拍照或录像时会请求分配较大内存,应用程序会依次通过框架层的相机API和服务调用本地层的DMA缓存模块来分配内存,本地层的DMA缓存模块向内核层的DMA缓存模块发送内存请求信息,使得内核层获取内存请求信息,其中,内存请求信息用于指示请求分配的内存。
当有至少一个应用程序申请内存时,内核层的DMA缓存模块会获取至少一个内存请求信息,不同的内存请求信息请求分配的内存可能不同。内核层的DMA缓存模块可以从至少一个内存请求信息中选择请求分配的内存大于或等于请求门限,并且请求分配的内存最大的内存请求信息作为目标内存请求信息。使得多个应用程序请求分配较大内存时,从中选择请求分配内存最大的请求来进行响应,以尽量满足内存上需求,避免多次查杀。
S102、根据请求分配的内存、可用内存和查杀水线确定是否查杀至少一个进程。
在一种可能的实施方式中,如图5所示,内核层的DMA缓存模块可以将目标内存请求信息(请求分配的内存)通过EPoll通信或套接字通信的方式发送给本地层的LMKD模块。由本地层的LMKD模块根据请求分配的内存、可用内存和第一查杀水线确定是否需要查杀至少一个进程。
如果可用内存减去请求分配的内存小于第一查杀水线,则本地层的LMKD模块根据请求分配的内存、可用内存和第一查杀水线查杀至少一个进程。具体的,本地层的LMKD模块每次查杀一个进程之后都会使得可用内存增加,本地层的LMKD模块重复判断可用内存(在逐渐增加)减去请求分配的内存是否小于第一查杀水线,如果可用内存(在逐渐增加)减去请求分配的内存仍小于第一查杀水线,则继续查杀下一个进程,直至可用内存减去请求分配的内存大于或等于第一查杀水线。即本地层的LMKD模块在进行查杀时,一次性查杀足够多的进程,以避免一次查杀一个进程时可用内存仍低于第一查杀水线,而反复触发本地层的LMKD模块对进程进行查杀。
本地层的LMKD模块在查杀进程时,对所查杀进程不作限定。例如,可以先查杀打分低(例如优先级低)的进程,后查杀打分高(例如优先级高)的进程,先查杀用户空间的进程后查杀内核空间的进程,等等。
如果可用内存减去请求分配的内存大于或等于第一查杀水线,则本地层的LMKD模块将请求分配的内存向上发送给框架层的内存管理模块,由框架层的内存管理模块根据请求分配的内存、可用内存和第二查杀水线等信息确定是否需要查杀至少一个进程。第二查杀水线大于第一查杀水线,即框架层的内存管理模块相比于本地层的LMKD模块更容易触发查杀进程。
如果可用内存减去请求分配的内存小于第二查杀水线,则框架层的内存管理模块确定需要查杀至少一个进程。如果所述可用内存减去请求分配的内存小于第二查杀水线,则查杀一个进程,直至可用内存减去目标内存请求信息大于或等于第二查杀水线。
另外,框架层的内存管理模块根据请求分配的内存、可用内存和第二查杀水线等信息确定是否需要查杀至少一个进程时,还可以进一步结合该进程是否允许后台驻留(例如后台播放音乐)、该进程是否在等待响应等因素来确定是否查杀该进程。例如,如果该进程允许后台驻留,或者,该进程在等待响应,则不查杀该进程。如果该进程不允许后台驻留,并且,该进程未在等待响应,则可以查杀该进程。
在另一种可能的实施方式中,如图6所示,内核层的DMA缓存模块可以将目标内存请求信息(请求分配的内存)通过EPoll通信或套接字通信的方式发送给本地层的LMKD模块,并将目标内存请求信息通过EPoll通信或套接字通信的方式发送给框架层的内存管理模块。由本地层的LMKD模块根据请求分配的内存、可用内存和第一查杀水线确定是否需要查杀至少一个进程。框架层的内存管理模块根据请求分配的内存、可用内存和第二查杀水线等信息确定是否需要查杀至少一个进程。即本地层的LMKD模块和框架层的内存管理模块独立查杀进程。具体参照前文描述,在此不再重复。
本申请实施例提供的内存管理方法和电子设备,当系统请求分配内存时,根据请求分配的内存、可用内存和查杀水线确定是否查杀至少一个进程,避免一次查杀一个进程时可用内存仍低于查杀水线,而反复触发本地层的LMKD模块对进程进行查杀,从而提高内存分配的效率。
如图8所示,本申请实施例还提供一种芯片系统。该芯片系统60包括至少一个处理器601和至少一个接口电路602。至少一个处理器601和至少一个接口电路602可通过线路互联。处理器601用于支持电子设备实现上述方法实施例中的各个步骤,例如图4-图6所示的方法,至少一个接口电路602可用于从其它装置(例如存储器)接收信号,或者,向其它装置(例如通信接口)发送信号。该芯片系统可以包括芯片,还可以包括其他分立器件。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括指令,当指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中的各个步骤,例如执行图4-图6所示的方法。
本申请实施例还提供一种包括指令的计算机程序产品,当指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中的各个步骤,例如执行图4-图6所示的方法。
关于芯片系统、计算机可读存储介质、计算机程序产品的技术效果参照前面方法实施例的技术效果。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个设备,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个设备中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (4)
1.一种内存管理方法,其特征在于,包括:
内核层的直接存储器访问DMA缓存模块从至少一个内存请求信息中响应目标内存请求信息并将所述目标内存请求信息发送给LMKD模块,所述目标内存请求信息用于指示请求分配的内存,所述目标内存请求信息为所述至少一个内存请求信息中,请求分配的内存大于或等于请求门限,并且,请求分配的内存最大的内存请求信息;
如果可用内存减去所述请求分配的内存小于第一查杀水线,则所述LMKD模块按照先用户空间的进程然后内核空间的进程的顺序,根据所述请求分配的内存、所述可用内存和所述第一查杀水线查杀至少一个进程,直至所述可用内存减去所述请求分配的内存大于或等于所述第一查杀水线;
否则,所述LMKD模块向框架层的内存管理模块发送所述请求分配的内存,如果所述可用内存减去所述请求分配的内存小于第二查杀水线,则所述内存管理模块查杀不允许后台驻留,并且,未在等待响应的至少一个进程,直至所述可用内存减去所述请求分配的内存大于或等于所述第二查杀水线;其中,所述第二查杀水线大于所述第一查杀水线。
2.根据权利要求1所述的方法,其特征在于,所述LMKD模块根据所述请求分配的内存、所述可用内存和第一查杀水线查杀至少一个进程,包括:
在查杀一个进程之后,如果所述可用内存减去所述请求分配的内存仍小于所述第一查杀水线,则LMKD模块继续查杀下一个进程,直至所述可用内存减去所述请求分配的内存大于或等于所述第一查杀水线。
3.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储指令,当所述处理器执行所述指令时,如权利要求1-2任一项所述的方法被执行。
4.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在电子设备上执行时,使得所述电子设备执行如权利要求1-2任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211175845.5A CN116737356B (zh) | 2022-09-26 | 2022-09-26 | 内存管理方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211175845.5A CN116737356B (zh) | 2022-09-26 | 2022-09-26 | 内存管理方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116737356A CN116737356A (zh) | 2023-09-12 |
CN116737356B true CN116737356B (zh) | 2024-08-06 |
Family
ID=87903184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211175845.5A Active CN116737356B (zh) | 2022-09-26 | 2022-09-26 | 内存管理方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737356B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986543A (zh) * | 2021-10-27 | 2022-01-28 | 深圳小湃科技有限公司 | 内存释放方法、装置、设备及存储介质 |
CN114096953A (zh) * | 2019-10-17 | 2022-02-25 | 深圳市欢太科技有限公司 | 内存管理方法、装置、电子设备和计算机可读介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558297B1 (en) * | 2014-03-27 | 2017-01-31 | EMC IP Holding Company LLC | Memory management techniques |
CN109213539B (zh) * | 2016-09-27 | 2021-10-26 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN110321224B (zh) * | 2019-07-04 | 2022-05-24 | 深圳市康冠科技股份有限公司 | 终端内存清理方法、装置及计算机可读存储介质 |
CN114090465B (zh) * | 2021-11-23 | 2024-11-19 | 北京紫光展锐通信技术有限公司 | 内存回收方法及设备 |
CN113961427B (zh) * | 2021-12-20 | 2022-05-24 | 荣耀终端有限公司 | 系统内存分析的方法及电子设备 |
CN114253872B (zh) * | 2022-02-28 | 2022-07-12 | 荣耀终端有限公司 | 电子设备及其内存回收方法、介质 |
-
2022
- 2022-09-26 CN CN202211175845.5A patent/CN116737356B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114096953A (zh) * | 2019-10-17 | 2022-02-25 | 深圳市欢太科技有限公司 | 内存管理方法、装置、电子设备和计算机可读介质 |
CN113986543A (zh) * | 2021-10-27 | 2022-01-28 | 深圳小湃科技有限公司 | 内存释放方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116737356A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9743226B2 (en) | Method for short-range wireless communication and electronic device using the same | |
US9538445B2 (en) | Communication method and apparatus for electronic device in mobile communication system | |
KR102107132B1 (ko) | 전자 장치의 억세스 포인트 접속 방법 및 그 전자 장치 | |
US10282333B2 (en) | Electronic device operating method and electronic device for supporting the same | |
KR102559978B1 (ko) | 복수의 주파수 밴드들을 이용한 d2d 통신을 지원하는 프론트 엔드 모듈과 그를 구비한 전자 장치 | |
US9398432B2 (en) | Electronic device and method for controlling emergency call in electronic device | |
CN116243850A (zh) | 一种存储器管理方法及电子设备 | |
US20170155917A1 (en) | Electronic device and operating method thereof | |
KR20150098161A (ko) | 컨텐츠 생성 방법 및 그 전자 장치 | |
CN107003643A (zh) | 包括天线的电子设备 | |
US10250818B2 (en) | Electronic device including a plurality of cameras and operating method thereof | |
CN119769174A (zh) | 无线通信电路、蓝牙通信切换方法和电子设备 | |
US10284614B2 (en) | Method for downloading contents of electronic device and electronic device thereof | |
KR20150026257A (ko) | 액세서리의 정보를 업 데이트하는 전자 장치 및 방법 | |
WO2022037725A1 (zh) | 一种系统服务恢复方法、装置和电子设备 | |
CN116737356B (zh) | 内存管理方法和电子设备 | |
CN116048351B (zh) | 截屏方法和电子设备 | |
CN116056016B (zh) | 样机信息上报方法和电子设备 | |
CN116048678B (zh) | 单词截断检测方法、装置和系统 | |
CN116361865B (zh) | 一种访问方法和电子设备 | |
CN116744226B (zh) | 电子围栏数据采集方法和电子设备 | |
CN116737358A (zh) | 内存刷新方法和电子设备 | |
HK40069651B (zh) | 一種系統服務恢復方法、裝置和電子設備 | |
CN116737193A (zh) | 软件升级方法、电子设备和通信系统 | |
KR20150026762A (ko) | 전송속도를 제어하는 전자 장치 및 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Terminal Co.,Ltd. Country or region after: China Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong Patentee before: Honor Device Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |