CN115617515A - 智能物联网操作系统的内存分配方法、装置和存储介质 - Google Patents
智能物联网操作系统的内存分配方法、装置和存储介质 Download PDFInfo
- Publication number
- CN115617515A CN115617515A CN202211245631.0A CN202211245631A CN115617515A CN 115617515 A CN115617515 A CN 115617515A CN 202211245631 A CN202211245631 A CN 202211245631A CN 115617515 A CN115617515 A CN 115617515A
- Authority
- CN
- China
- Prior art keywords
- memory
- application program
- memory space
- operating system
- application
- 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
Images
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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种智能物联网操作系统的内存分配方法、装置和存储介质,涉及计算机技术领域。所述方法包括:获取应用程序发送的内存申请请求,内存申请请求携带应用程序所需的内存空间;读取应用程序的可分配内存阈值;确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间;在当前空闲内存空间充足的情况下,若所需的内存空间未超过可分配内存阈值,从可分配状态的内存空间中获取目标内存空间;根据目标内存空间对应用程序进行内存分配,以供应用程序运行。采用本方法能够提高应用内存分配性能。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种智能物联网操作系统的内存分配方法、装置和存储介质。
背景技术
目前,设备产品处于复杂的家庭设备组网以及众多的外设互联状态中,当在操作系统上运行的应用程序需要申请内存时,一般是由应用程序向操作系统申请所需要的内存空间,在使用完成后将申请的内存空间返还给操作系统。但是,在应用程序向操作系统申请和释放内存空间的情况下,可能存在应用程序漏释放内存或者应用逻辑出错等情况,因此可能会导致应用程序的内存空间占用过多。此时,操作系统无法及时给应用程序分配内存,从而影响内存分配的性能,以及设备卡顿或功能异常的情况。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高应用内存分配性能的智能物联网操作系统的内存分配方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种智能物联网操作系统的内存分配方法,包括:
获取应用程序发送的内存申请请求,内存申请请求携带应用程序所需的内存空间;
读取应用程序的可分配内存阈值;
确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间;
在当前空闲内存空间充足的情况下,若所需的内存空间未超过可分配内存阈值,从可分配状态的内存空间中获取目标内存空间;
根据目标内存空间对应用程序进行内存分配,以供应用程序运行。
在一些实施例中,在读取应用程序的可分配内存阈值之后,方法还包括:
在当前空闲内存空间充足的情况下,若所需的内存空间大于可分配内存阈值,则关闭应用程序以释放应用程序所占用的内存空间,并在成功释放应用程序所占用的内存空间后,重启应用程序。
在一些实施例中,方法还包括:
监控操作系统中运行的各应用程序的内存占用情况;
在内存占用情况表征操作系统的空闲内存空间不足的情况下,则关闭操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间;
在成功释放各关闭的应用程序所占用的内存空间后,重启各关闭的应用程序。
在一些实施例中,关闭操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间具体包括:
从操作系统中运行的各应用程序中识别关键应用程序;
关闭操作系统中运行的除关键应用程序以外的应用程序,以释放关闭的应用程序所占用的内存空间。
在一些实施例中,在重启各关闭的应用程序之后,方法还包括:
若在预设时间范围内,再次监控到操作系统的空闲内存空间不充足的情况,则重启操作系统以恢复操作系统的内存溢出。
在一些实施例中,在监控操作系统中运行的各应用程序的内存占用情况之后,方法还包括:
若监控到的各应用程序的内存占用总量大于预设应用内存阈值,则判定操作系统的空闲内存空间不足。
在一些实施例中,在根据目标内存空间对应用程序进行内存分配,以供应用程序运行之后,方法还包括:
监控应用程序的运行状态;
在监控到应用程序的运行状态为已完成的情况下,将应用程序申请的目标内存空间释放到操作系统。
第二方面,本申请提供了一种智能物联网操作系统的内存分配装置,所述装置包括:
请求获取模块,用于获取应用程序发送的内存申请请求,内存申请请求携带应用程序所需的内存空间;
阈值读取模块,用于读取应用程序的可分配内存阈值;
内存确定模块,用于确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间;
内存获取模块,用于在当前空闲内存空间充足的情况下,若所需的内存空间未超过可分配内存阈值,从可分配状态的内存空间中获取目标内存空间;
内存分配模块,用于根据目标内存空间对应用程序进行内存分配,以供应用程序运行。
在一些实施例中,智能物联网操作系统的内存分配装置还包括内存控制模块,内存控制模块用于在当前空闲内存空间充足的情况下,若所需的内存空间大于可分配内存阈值,则关闭应用程序以释放应用程序所占用的内存空间,并在成功释放应用程序所占用的内存空间后,重启应用程序。
在一些实施例中,内存控制模块还用于监控操作系统中运行的各应用程序的内存占用情况;在内存占用情况表征操作系统的空闲内存空间不足的情况下,则关闭操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间;在成功释放各关闭的应用程序所占用的内存空间后,重启各关闭的应用程序。
在一些实施例中,内存控制模块还用于从操作系统中运行的各应用程序中识别关键应用程序;关闭操作系统中运行的除关键应用程序以外的应用程序,以释放关闭的应用程序所占用的内存空间。
在一些实施例中,智能物联网操作系统的内存分配装置还包括系统重启模块,系统重启模块用于若在预设时间范围内,再次监控到操作系统的空闲内存空间不充足的情况,则重启操作系统以恢复操作系统的内存溢出。
在一些实施例中,内存控制模块还用于若监控到的各应用程序的内存占用总量大于预设应用内存阈值,则判定操作系统的空闲内存空间不足。
在一些实施例中,内存控制模块还用于监控应用程序的运行状态;在监控到应用程序的运行状态为已完成的情况下,将应用程序申请的目标内存空间释放到操作系统。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法中的步骤。
上述智能物联网操作系统的内存分配方法、装置、计算机设备、存储介质和计算机程序产品,通过专门的内存管理程序获取应用程序发送的、且携带应用程序所需的内存空间,通过读取应用程序当前可以分配的内存阈值,以便根据内存阈值确定操作系统当前处于可分配状态的内存空间,得到当前操作系统空闲的内存空间,能够对各应用程序进行内存分配管理,并且在进行内存分配的过程中对操作系统处于可分配状态的内存空间进行监控,在当前操作系统空闲的内存空间充足的情况下,若应用程序所需的内存空间未超过可分配内存阈值,则从可分配状态的内存空间中获取目标内存空间,并根据目标内存空间及时对应用程序进行内存分配,从而提高应用内存分配性能。从而提升内存分配的性能,避免设备卡顿或者功能异常的情况。
附图说明
图1为本申请实施例提供的一种智能物联网操作系统的内存分配方法的应用环境示意图;
图2为本申请实施例提供的一种智能物联网操作系统的内存分配方法的流程示意图;
图3为本申请实施例提供的另一种智能物联网操作系统的内存分配方法的流程示意图;
图4为本申请实施例提供的另一种智能物联网操作系统的内存分配方法的流程示意图;
图5为本申请实施例提供的一种智能物联网操作系统的内存分配装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的智能物联网操作系统的内存分配方法,可以应用于如图1所示的应用环境中。
其中,内存管理程序102可集成在终端的操作系统上,用于对终端的操作系统上的其他应用程序104,例如对应用程序1、应用程序2、应用程序N等的内存空间进行智能化的管理和分配。
操作系统(Operating System,OS),是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。其中,根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。
数据存储系统,可以存储内存管理程序102需要处理的数据。其中,数据存储系统可以集成在终端上,也可以放在云上或其他网络服务器上。
终端,可以是安装特定程序软件的个人计算机、笔记本电脑、智能手机、平板电脑、智能家居的智能中控屏或可移动的控制面板等中的至少一种。
在一些实施例中,如图2所示,提供了一种智能物联网操作系统的内存分配方法,本申请实施例以该方法应用于终端为例进行说明,具体可通过运行在终端上的内存管理程序进行智能物联网操作系统的内存分配,包括以下步骤:
步骤202,获取应用程序发送的内存申请请求。
其中,内存申请请求携带应用程序所需的内存空间,也就是应用程序需要向内存管理程序申请的内存空间。可以理解,内存管理程序可以单独和运行在终端上的各个应用程序建立通信连接,并进行通信。
在一些实施例中,各个应用程序可以向终端的内存管理程序发送用于申请内存空间的内存申请请求,终端的内存管理程序在接收到应用程序发送的内存申请请求后,负责给对应的应用程序分配相应的内存空间。
在一些实施例中,如图3所示,若终端上运行的其他应用程序包括应用程序1、应用程序2、应用程序3或应用程序N等中的至少一种,若应用程序1、应用程序2和应用程序3都向内存管理程序发送内存申请请求,终端的内存管理程序可根据接收到内存申请请求的具体时间,并按照时间先后顺序依次给应用程序分配内存空间。
在实际应用中,终端的内存管理程序除了可以给发起内存申请请求的应用程序分配内存空间,还可以实时监控终端中除内存管理程序之外的其他应用程序的内存使用情况,并基于其他应用程序的内存使用情况进行内存分配和内存释放等内存管理操作。
具体地,在终端上运行的内存管理程序获取终端的操作系统中,其他需要进行内存申请的应用程序发送的内存申请请求。
步骤204,读取应用程序的可分配内存阈值。
其中,可分配内存阈值,指的是内存管理程序能够为对应的应用程序所分配内存空间的最大值。可以理解,每个应用程序在正常运行时,其占用的应用内存都有个波动范围,本申请的可分配内存阈值则是通过各个应用程序通常占用的应用内存的波动范围中的平均值或最大值确定,或者根据各个应用程序在内存测试过程中预估的最大使用的内存值所确定。
在实际应用中,各个应用程序的可分配内存阈值都写入预配置的配置文件中,当内存管理程序接收到应用程序发送的内存申请请求时,可以直接从配置文件中读取对应的应用程序的可分配阈值,该可分配阈值用于使内存管理程序对是否可以将内存空间分配给对应的应用程序进行预估。
具体地,在终端上运行的内存管理程序根据内存申请请求读取对应的应用程序的可分配阈值。
步骤206,确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间。
其中,可分配状态的内存空间指的是,在操作系统的内存空间中可以分配给应用程序的内存空间。
可以理解,当操作系统中某部分的内存空间被某个或某些应用程序所占用,则说明该部分的内存空间处于不可分配状态,进一步说明该部分内存空间不可被终端的应用管理程序分配给各应用程序。
在一些实施例中,由于各个应用程序正在使用的内存以及操作系统中的空闲内存空间都可能是实时变化的,所以在终端的内存管理程序给指定的应用程序分配内存之前,首先需要获取操作系统当前空闲内存空间,并由当前空闲内存空间判断操作系统是否有足够的内存分配给该应用程序。
具体地,终端的内存管理程序确定操作系统当前处于可分配状态的内存空间,得到当前空闲的、且可以分配给应用程序的内存空间。
步骤208,在当前空闲内存空间充足的情况下,若所需的内存空间未超过可分配内存阈值,从可分配状态的内存空间中获取目标内存空间。
其中,目标内存空间即应用程序向内存管理程序申请的内存空间。
可以理解,操作系统的当前空闲内存空间充足则说明终端的内存管理程序当前可为应用程序进行内存分配。操作系统的当前空闲内存空间不充足则说明终端的内存管理程序当前不可以为应用程序进行内存分配。其中,本申请可预先设定一个用于判断操作系统的当前空闲内存空间是否充足的分配阈值,若操作系统的当前空闲内存空间大于或等于分配阈值,则说明操作系统的当前空闲内存空间充足,此时终端的内存管理程序可以给对应的应用程序分配内存空间,若操作系统的当前空闲内存空间小于分配阈值,则说明操作系统的当前空闲内存空间不充足,此时终端的内存管理程序不可以给对应的应用程序分配内存空间。
在一些实施例中,终端的内存管理程序可以获取各个应用程序当前占用的总内存,若各个应用程序当前占用的总内存小于总内存阈值,则说明操作系统当前空闲内存空间充足,此时终端的内存管理程序可以给对应的应用程序分配内存空间,若各个应用当前占用的总内存大于或等于总内存阈值,则说明操作系统当前空闲内存空间不充足,此时终端的内存管理程序不可以给对应的应用程序分配内存空间。其中,总内存阈值用于表征终端的内存管理程序可以给各个应用程序分配内存空间的最大值。
在一些实施例中,在终端的内存管理程序识别出操作系统的当前空闲内存空间充足的情况下,再通过应用程序所需的内存空间和读取的可分配内存阈值进一步判断操作系统是否有足够的内存空间分配给对应的应用程序。
具体地,在操作系统的当前空间内存空间充足的情况下,若应用程序所需的内存空间没有超过可分配内存阈值,则说明终端的内存管理程序可以给应用程序分配内存空间,此时终端的内存管理程序可以从操作系统处于可分配状态的内存空间中获取与应用程序所需的内存空间相匹配的目标内存空间。
步骤210,根据目标内存空间对应用程序进行内存分配,以供应用程序运行。
具体地,终端的内存管理程序根据获取到的目标内存空间对应用程序进行内存分配,也即内存管理程序将获取到的目标内存空间分配给该应用程序,以供应用程序运行。
上述智能物联网操作系统的内存分配方法,通过专门的内存管理程序获取应用程序发送的、且携带应用程序所需的内存空间,通过读取应用程序当前可以分配的内存阈值,以便根据内存阈值确定操作系统当前处于可分配状态的内存空间,得到当前操作系统空闲的内存空间,能够对各应用程序进行内存分配管理,并且在进行内存分配的过程中对操作系统处于可分配状态的内存空间进行监控,在当前操作系统空闲的内存空间充足的情况下,若应用程序所需的内存空间未超过可分配内存阈值,则从可分配状态的内存空间中获取目标内存空间,并根据目标内存空间及时对应用程序进行内存分配,从而提高应用内存分配性能。
在一些实施例中,在步骤“读取应用程序的可分配内存阈值”之后,本申请的智能物联网操作系统的内存分配方法具体包括还不限于包括:在当前空闲内存空间充足的情况下,若所需的内存空间大于可分配内存阈值,则关闭应用程序以释放应用程序所占用的内存空间,并在成功释放应用程序所占用的内存空间后,重启应用程序。
具体地,在操作系统中当前空间内存空间充足的情况下,若应用程序所需的内存空间大于可分配内存阈值,则说明终端的内存管理程序不可以给应用程序分配内存空间,此时内存管理程序需要考虑进行内存释放,以获取足够的内存空间。即,终端的内存管理程序可以先释放当前需要申请内存空间的应用程序所占用的内存空间,并在成功释放应用程序所占用的内存空间后,重启该应用程序,以保证该应用程序能够申请到足够的内存空间,进一步提高内存分配性能。并且,还能够恢复该应用程序对应的某个业务功能,保证其正常运行,减少业务影响。
在一些实施例中,本申请的智能物联网操作系统的内存分配方法具体包括还不限于包括:监控操作系统中运行的各应用程序的内存占用情况;在内存占用情况表征操作系统的空闲内存空间不足的情况下,则关闭操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间;在成功释放各关闭的应用程序所占用的内存空间后,重启各关闭的应用程序。
内存占用情况,指的是应用程序当前在操作系统中运行所占用的内存空间大小。
具体地,终端的内存管理程序可以对操作系统中正在运行的各个应用程序的内存占用情况进行实时监控。在各个应用程序的内存占用情况表征操作系统的空闲内存空间不足的情况下,终端的内存管理程序可以关闭操作系统中运行的一个或多个应用程序,从而释放各个已经关闭的应用程序所占用的内存空间,以扩大操作系统的空间内存空间,以供后续对应用程序进行内存分配。接着,在终端的内存管理程序在成功释放各个关闭的应用程序所占用的内存空间之后,重启各个关闭的应用程序,以在清理内存空间的基础上,确保应用程序正常运行,避免整个操作系统启动时间过长等问题。
在一些实施例中,若终端的内存管理程序没有成功释放各个关闭的应用程序所占用的内存空间,则重新执行内存释放操作,直到成功释放各个应用程序所占用的内存空间后,重启各个关闭的应用程序,以恢复关闭后的应用程序的业务功能。
在一些实施例中,步骤“关闭操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间”具体包括但不限于包括:从操作系统中运行的各应用程序中识别关键应用程序;关闭操作系统中运行的除关键应用程序以外的应用程序,以释放关闭的应用程序所占用的内存空间。
其中,关键应用程序指的是各应用程序中比较重要的应用程序。可以理解,在各个应用程序中,可以使用频率高的应用程序作为关键应用程序。其次,在各个应用程序中,还可以将交互次数高的应用程序作为关键应用程序。另外,在各个应用程序中,还可以预先设定好某一个或多个应用程序作为关键应用程序。本申请实施例对关键应用程序的选取方式不做具体限制。
具体地,在终端上运行的内存管理程序可以从操作系统中正在运行的各个应用程序中识别出关键应用程序。接着,内存管理程序关闭操作系统中正在运行的、且除了关键应用程序之外的其他应用程序,从而释放关闭的应用程序所占用的内存空间。本申请通过识别关键应用程序,并在操作系统的内存空间不足的情况下,关闭除关键应用程序之外的应用程序,能够在清理内存空间前提下,还能使用户正常使用关键应用程序,以提升用户体验,并且能够减少关闭重启应用程序的次数,从而能够减少系统资源开销。
在一些实施例中,在步骤“重启各关闭的应用程序”之后,本申请的智能物联网操作系统的内存分配方法具体包括还不限于包括:若在预设时间范围内,再次监控到操作系统的空闲内存空间不充足的情况,则重启操作系统以恢复操作系统的内存溢出。
具体地,若在重启各关闭的应用程序之后的预设时间范围内,终端的内存管理程序再次监控到操作系统的空闲内存空间不充足的情况,则说明此时很有可能存在操作系统的系统内存溢出的问题。若再次关闭并重启各个应用程序,其恢复的是各个应用程序的应用内存溢出,并不能恢复操作系统的系统内存溢出,有可能在短时间内还会再次出现操作系统中空闲内存空间不充足的情况,此时为了提高应用内存分配性能,需要重启操作系统,以恢复操作系统的系统内存溢出的问题。
可以理解,应用程序的应用内存指的是操作系统中应用程序所占用的内存空间。操作系统的系统内存指的是操作系统中的非应用程序所占用的内存空间,例如操作系统的服务、驱动或内核等中的至少一种非应用程序所占用的内存空间。
在一些实施例中,在步骤“监控操作系统中运行的各应用程序的内存占用情况”之后,本申请的智能物联网操作系统的内存分配方法具体包括还不限于包括:若监控到的各应用程序的内存占用总量大于预设应用内存阈值,其中该预设应用内存阈值为可分配内存的阈值总和,则判定操作系统的空闲内存空间不足。
其中,预设应用内存阈值用于表征各应用内存在运行时允许占用操作系统的内存空间的最大值。
具体地,在终端上运行的内存管理程序在监控操作系统中运行的各应用程序的内存占用情况之后,将在操作系统中运行的各应用程序所占用的内存空间相加,得到各应用程序的内存占用总量。若内存占用总量大于预设应用内存阈值,则判定操作系统的空闲内存空间不足。若内存占用总量小于或等于预设应用内存阈值,则判定操作系统的空闲内存空间不足。本申请通过实时对各应用程序的内存占用情况进行监控,能够及时识别出操作系统的空闲内存空间是否充足,并及时对其进行处理,从而节省操作系统的系统资源。
在一些实施例中,在步骤210之后,本申请的智能物联网操作系统的内存分配方法具体包括还不限于包括:监控应用程序的运行状态;在监控到应用程序的运行状态为已完成的情况下,将应用程序申请的目标内存空间释放到操作系统。
具体地,在终端上运行的内存管理程序还可以监控应用程序的运行状态,如果监控到应用程序的运行状态为已完成的情况下,说明该应用程序已经运行完成,此时内存管理程序可以将应用程序申请的目标内存空间及时释放到操作系统,以供操作系统中其他应用程序使用,保证内存管理程序能够在内存空间足够的情况下及时给其他申请内存分配的应用程序分配内存,从而提高内存分配性能。
在一些实施例中,如图3所示,终端的内存管理程序对于各种不同的内存空间溢出情况,可以采用不同的处理。具体地,当终端的内存管理程序监测到单个应用程序当前使用的内存空间超过可分配内存阈值,即单个应用程序当前使用的内存空间超过可以分配内存的最大值时,则关闭当前正在运行的应用程序以释放该应用程序占用的内存空间,接着重新开启当前应用程序,及时恢复单个应用程序的业务,避免系统层级的异常,且减少业务影响。当内存管理程序无法进行内存分配时,如所有应用程序当前占用的总内存超过预设应用内存阈值时,则关闭所有应用程序,并释放所有应用程序所占用的内存空间,接着重新开启所有应用程序,及时恢复所有应用程序的业务。当内存管理程序再次出现无法分配内存的情况,如3天内已重启所有应用程序,则重启操作系统,以恢复操作系统的内存溢出。本申请的内存管理程序对各种内存溢出情况有不同的处理,通过层层递进尽可能减小影响面、尽可能自动恢复业务功能,并减少人工干预和维护。
在一些实施例中,如图4所示,本申请实施例的智能物联网操作系统的内存分配方法具体还包括如下步骤:
首先,在终端上运行的内存管理程序获取应用程序发送的内存申请请求。
其次,内存管理程序读取应用程序的可分配内存阈值。
接着,内存管理程序确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间,并判断当前空闲内存空间是否充足。
在当前空闲内存空间充足的情况下,若应用程序所需的内存空间未超过可分配内存阈值,内存管理程序从可分配状态的内存空间中获取目标内存空间。
可以理解,若所需的内存空间大于可分配内存阈值,则关闭应用程序以释放应用程序所占用的内存空间,并在成功释放应用程序所占用的内存空间后,重启应用程序。
接着,在内存管理程序从可分配状态的内存空间中获取目标内存空间之后,内存管理程序根据目标内存空间对应用程序进行内存分配,以供应用程序运行。
最后,内存管理程序监控应用程序的运行状态,在内存管理程序监控到应用程序的运行状态为已完成的情况下,将应用程序申请的目标内存空间释放到操作系统。
在一些实施例中,在终端上运行的内存管理程序还可以监控操作系统中运行的各应用程序的内存占用情况,在内存占用情况表征操作系统的空闲内存空间不足的情况下,内存管理程序从操作系统中运行的各应用程序中识别关键应用程序,并关闭操作系统中运行的除关键应用程序以外的应用程序,以释放关闭的应用程序所占用的内存空间。在成功释放各关闭的应用程序所占用的内存空间后,内存管理程序重启各关闭的应用程序。若在预设时间范围内,内存管理程序再次监控到操作系统的空闲内存空间不充足的情况,则重启操作系统以恢复操作系统的内存溢出。
可以理解,若终端的内存管理程序监控到的各应用程序的内存占用总量大于预设应用内存阈值,则判定操作系统的空闲内存空间不足。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的智能物联网操作系统的内存分配方法的智能物联网操作系统的内存分配装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个智能物联网操作系统的内存分配装置实施例中的具体限定可以参见上文中对于智能物联网操作系统的内存分配方法的限定,在此不再赘述。
参考图5,为本申请实施例提供的一种智能物联网操作系统的内存分配装置的结构示意图。在一些实施例中,如图5所示,提供了一种智能物联网操作系统的内存分配装置,包括请求获取模块502、阈值读取模块504、内存确定模块506、内存获取模块508和内存分配模块510,其中:
请求获取模块502,用于获取应用程序发送的内存申请请求,内存申请请求携带应用程序所需的内存空间;
阈值读取模块504,用于读取应用程序的可分配内存阈值;
内存确定模块506,用于确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间;
内存获取模块508,用于在当前空闲内存空间充足的情况下,若所需的内存空间未超过可分配内存阈值,从可分配状态的内存空间中获取目标内存空间;
内存分配模块510,用于根据目标内存空间对应用程序进行内存分配,以供应用程序运行。
上述智能物联网操作系统的内存分配装置,通过专门的内存管理程序获取应用程序发送的、且携带应用程序所需的内存空间,通过读取应用程序当前可以分配的内存阈值,以便根据内存阈值确定操作系统当前处于可分配状态的内存空间,得到当前操作系统空闲的内存空间,能够对各应用程序进行内存分配管理,并且在进行内存分配的过程中对操作系统处于可分配状态的内存空间进行监控,在当前操作系统空闲的内存空间充足的情况下,若应用程序所需的内存空间未超过可分配内存阈值,则从可分配状态的内存空间中获取目标内存空间,并根据目标内存空间及时对应用程序进行内存分配,从而提高应用内存分配性能。
在一些实施例中,智能物联网操作系统的内存分配装置还包括内存控制模块,内存控制模块用于在当前空闲内存空间充足的情况下,若所需的内存空间大于可分配内存阈值,则关闭应用程序以释放应用程序所占用的内存空间,并在成功释放应用程序所占用的内存空间后,重启应用程序。
在一些实施例中,内存控制模块还用于监控操作系统中运行的各应用程序的内存占用情况;在内存占用情况表征操作系统的空闲内存空间不足的情况下,则关闭操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间;在成功释放各关闭的应用程序所占用的内存空间后,重启各关闭的应用程序。
在一些实施例中,内存控制模块还用于从操作系统中运行的各应用程序中识别关键应用程序;关闭操作系统中运行的除关键应用程序以外的应用程序,以释放关闭的应用程序所占用的内存空间。
在一些实施例中,智能物联网操作系统的内存分配装置还包括系统重启模块,系统重启模块用于若在预设时间范围内,再次监控到操作系统的空闲内存空间不充足的情况,则重启操作系统以恢复操作系统的内存溢出。
在一些实施例中,内存控制模块还用于若监控到的各应用程序的内存占用总量大于预设应用内存阈值,则判定操作系统的空闲内存空间不足。
在一些实施例中,内存控制模块还用于监控应用程序的运行状态;在监控到应用程序的运行状态为已完成的情况下,将应用程序申请的目标内存空间释放到操作系统。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示,该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种智能物联网操作系统的内存分配方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种智能物联网操作系统的内存分配方法,其特征在于,所述方法包括:
获取应用程序发送的内存申请请求,所述内存申请请求携带所述应用程序所需的内存空间;
读取所述应用程序的可分配内存阈值;
确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间;
在所述当前空闲内存空间充足的情况下,若所述所需的内存空间未超过所述可分配内存阈值,从所述可分配状态的内存空间中获取目标内存空间;
根据所述目标内存空间对所述应用程序进行内存分配,以供所述应用程序运行。
2.根据权利要求1所述的方法,其特征在于,在所述读取所述应用程序的可分配内存阈值之后,所述方法还包括:
在所述当前空闲内存空间充足的情况下,若所述所需的内存空间大于所述可分配内存阈值,则关闭所述应用程序以释放所述应用程序所占用的内存空间,并在成功释放所述应用程序所占用的内存空间后,重启所述应用程序。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监控所述操作系统中运行的各应用程序的内存占用情况;
在所述内存占用情况表征所述操作系统的空闲内存空间不足的情况下,则关闭所述操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间;
在成功释放各关闭的应用程序所占用的内存空间后,重启各关闭的应用程序。
4.根据权利要求3所述的方法,其特征在于,所述关闭所述操作系统中运行的至少一部分应用程序,以释放各关闭的应用程序所占用的内存空间具体包括:
从所述操作系统中运行的各应用程序中识别关键应用程序;
关闭所述操作系统中运行的除所述关键应用程序以外的应用程序,以释放关闭的应用程序所占用的内存空间。
5.根据权利要求3所述的方法,其特征在于,在所述重启各关闭的应用程序之后,所述方法还包括:
若在预设时间范围内,再次监控到所述操作系统的空闲内存空间不充足的情况,则重启所述操作系统以恢复所述操作系统的内存溢出。
6.根据权利要求3所述的方法,其特征在于,在所述监控所述操作系统中运行的各应用程序的内存占用情况之后,所述方法还包括:
若监控到的各应用程序的内存占用总量大于预设应用内存阈值,则判定所述操作系统的空闲内存空间不足。
7.根据权利要求1至6任一项所述的方法,其特征在于,在所述根据所述目标内存空间对所述应用程序进行内存分配,以供所述应用程序运行之后,所述方法还包括:
监控所述应用程序的运行状态;
在监控到所述应用程序的运行状态为已完成的情况下,将所述应用程序申请的所述目标内存空间释放到所述操作系统。
8.一种智能物联网操作系统的内存分配装置,其特征在于,所述装置包括:
请求获取模块,用于获取应用程序发送的内存申请请求,所述内存申请请求携带所述应用程序所需的内存空间;
阈值读取模块,用于读取所述应用程序的可分配内存阈值;
内存确定模块,用于确定操作系统当前处于可分配状态的内存空间,得到当前空闲内存空间;
内存获取模块,用于在所述当前空闲内存空间充足的情况下,若所述所需的内存空间未超过所述可分配内存阈值,从所述可分配状态的内存空间中获取目标内存空间;
内存分配模块,用于根据所述目标内存空间对所述应用程序进行内存分配,以供所述应用程序运行。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211245631.0A CN115617515A (zh) | 2022-10-12 | 2022-10-12 | 智能物联网操作系统的内存分配方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211245631.0A CN115617515A (zh) | 2022-10-12 | 2022-10-12 | 智能物联网操作系统的内存分配方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617515A true CN115617515A (zh) | 2023-01-17 |
Family
ID=84863089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211245631.0A Pending CN115617515A (zh) | 2022-10-12 | 2022-10-12 | 智能物联网操作系统的内存分配方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617515A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987813A (zh) * | 2023-03-13 | 2023-04-18 | 北京集度科技有限公司 | 一种域分配装置、方法、系统及智能车辆 |
-
2022
- 2022-10-12 CN CN202211245631.0A patent/CN115617515A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987813A (zh) * | 2023-03-13 | 2023-04-18 | 北京集度科技有限公司 | 一种域分配装置、方法、系统及智能车辆 |
CN115987813B (zh) * | 2023-03-13 | 2023-05-30 | 北京集度科技有限公司 | 一种域分配装置、方法、系统及智能车辆 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9678797B2 (en) | Dynamic resource management for multi-process applications | |
US9519439B2 (en) | On-demand snapshot and prune in a data storage system | |
US11080143B2 (en) | Systems and processes for data backup and recovery | |
JP2017511940A (ja) | デバイス固有又はユーザー固有のリソース使用プロファイルに基づくリソース管理 | |
US20110225342A1 (en) | Opportunistic page caching for virtualized servers | |
US20170017511A1 (en) | Method for memory management in virtual machines, and corresponding system and computer program product | |
CN111338779B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
WO2008006674A1 (en) | Reserve pool management in virtualized storage systems | |
CN112749135B (zh) | 文件系统的存储空间的平衡的方法、设备和计算机程序产品 | |
US20220413935A1 (en) | Systems and methods for choosing an appropriate scaling technique for allocating computational resources to distributed applications | |
CN107408073B (zh) | 使用存储器压缩来减少存储器提交开销 | |
CN111464589A (zh) | 智能合约处理方法、计算机设备及存储介质 | |
CN115617515A (zh) | 智能物联网操作系统的内存分配方法、装置和存储介质 | |
CN106557404B (zh) | 一种应用控制的方法及移动终端 | |
CN113485838A (zh) | 服务器分配方法及装置、电子设备和计算机可读存储介质 | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
CN111522689B (zh) | 全局快照方法、装置、电子设备及计算机可读存储介质 | |
CN115658295A (zh) | 资源调度方法、装置、电子设备和存储介质 | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN114168180A (zh) | 一种更新方法、计算设备、电子设备和存储介质 | |
CN114722261A (zh) | 一种资源的处理方法、装置、电子设备及存储介质 | |
US11157322B2 (en) | Hyper-converged infrastructure (HCI) ephemeral workload/data provisioning system | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 | |
CN111813564A (zh) | 集群资源管理方法、装置及容器集群管理系统 | |
US10346193B1 (en) | Efficient placement of virtual machines based on cache hit ratio |
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 |