一种嵌入式设备及其内存监管方法、装置和可读存储介质

阅读: 评论:0

著录项
  • CN202010176932.7
  • 20200313
  • CN111475284A
  • 20200731
  • 苏州浪潮智能科技有限公司
  • 张旭
  • G06F9/50
  • G06F9/50 G06F11/30

  • 江苏省苏州市吴中区吴中经济开发区郭巷街道官浦路1号9幢
  • 江苏(32)
  • 北京集佳知识产权代理有限公司
  • 刘志红
摘要
本发明公开了一种嵌入式设备的内存监管方法,包括:在申请内存的存储空间时,对存储空间对应的申请信息进行压栈操作,将申请信息存储到预设栈中,并记录申请信息对应的入栈信息;在释放存储空间时,对申请信息进行出栈操作,从预设栈中提取申请信息,并记录申请信息对应的出栈信息;由于内存中存储空间的申请与释放必须是成对出现且相互匹配的,本发明利用栈的数据结构描述存储空间的申请与释放的匹配,并通过压栈和出栈时的信息记录,实现了动态内存的申请与释放的记录,方便了设计人员的内存使用和管控,提升了用户体验;此外,本发明还公开了一种嵌入式设备及其内存监管装置和计算机可读存储介质,同样具有上述有益效果。
权利要求

1.一种嵌入式设备的内存监管方法,其特征在于,包括:

在申请内存的存储空间时,对所述存储空间对应的申请信息进行压栈操作,将所述申请信息存储到预设栈中,并记录所述申请信息对应的入栈信息;

在释放所述存储空间时,对所述申请信息进行出栈操作,从所述预设栈中提取所述申请信息,并记录所述申请信息对应的出栈信息。

2.根据权利要求1所述的嵌入式设备的内存监管方法,其特征在于,所述对所述存储空间对应的申请信息进行压栈操作,将所述申请信息存储到预设栈中,并记录所述申请信息对应的入栈信息,包括:

获取所述申请信息;其中,所述申请信息包括:申请时间信息、申请大小信息和申请位置信息;

对所述申请信息进行压栈操作,将所述申请信息存储到所述预设栈中;

在日志文件中记录所述入栈信息;其中,所述入栈信息包括所述申请信息。

3.根据权利要求1所述的嵌入式设备的内存监管方法,其特征在于,还包括:

按第一预设时间间隔获取并记录所述内存的使用信息;其中,所述使用信息包括所述内存的剩余存储空间信息。

4.根据权利要求1所述的嵌入式设备的内存监管方法,其特征在于,还包括:

按第二预设时间间隔获取并记录所述第二预设时间内所述内存的剩余存储空间的变换量信息。

5.根据权利要求1至4任一项所述的嵌入式设备的内存监管方法,其特征在于,还包括:

按第三预设时间间隔获取所述预设栈中存储的申请信息的数量;

判断所述数量是否大于阈值;

若是,则记录所述预设栈中存储的申请信息,并生成告警信息。

6.一种嵌入式设备的内存监管装置,其特征在于,包括:

压栈模块,用于在申请内存的存储空间时,对所述存储空间对应的申请信息进行压栈操作,将所述申请信息存储到预设栈中,并记录所述申请信息对应的入栈信息;

出栈模块,用于在释放所述存储空间时,对所述申请信息进行出栈操作,从所述预设栈中提取所述申请信息,并记录所述申请信息对应的出栈信息。

7.根据权利要求6所述的嵌入式设备的内存监管装置,其特征在于,所述压栈模块,包括:

获取子模块,用于获取所述申请信息;其中,所述申请信息包括:申请时间信息、申请大小信息和申请位置信息;

压栈子模块,用于对所述申请信息进行压栈操作,将所述申请信息存储到所述预设栈中;

记录子模块,用于在日志文件中记录所述入栈信息;其中,所述入栈信息包括所述申请信息。

8.根据权利要求6或7所述的嵌入式设备的内存监管装置,其特征在于,还包括:

采集模块,用于按预设时间间隔获取所述预设栈中存储的申请信息的数量;

判断模块,用于判断所述数量是否大于阈值;

记录告警模块,用于若大于所述阈值,则记录所述预设栈中存储的申请信息,并生成告警信息。

9.一种嵌入式设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的嵌入式设备的内存监管方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的嵌入式设备的内存监管方法的步骤。

说明书
技术领域

本发明涉及计算机技术领域,特别涉及一种嵌入式设备及其内存监管方法、装置和计算机可读存储介质。

BMC,执行伺服器远端管理控制器,英文全称为Baseboard ManagementController,为基板控制器。BMC可以实现服务器的相关控制、信息监督等功能,是直观呈现服务器信息的平台。服务器客户可以通过web(网页)、ipmitool(ipmi平台管理工具)和snmp(简单网络管理协议)工具等访问服务器BMC以获取服务器的信息。

如BMC的嵌入式设备在程序运行到需要一个动态分配的变量时,必须向系统申请取得堆中的一块所需大小的存储空间,用于存储该变量;当不再使用该变量时,也就是它的生命结束时,要显式释放它所占用的存储空间,这样系统就能对该堆空间进行再次分配,做到重复使用有限的资源。内存的动态分配及释放是由开发人员决定的,系统的内存大小是固定的,若内存的存储空间只申请不释放会导致嵌入式设备的系统内存越来越小,运行速度越来越慢,进程调用机制受到影响最终导致嵌入式设备的崩溃。

由于上述只申请不释放存储的存储空间的情况会导致内存泄露,系统内存泄露问题会对客户使用设备造成极大隐患,而且系统内存泄露发生后很难定位及分析具体原因。因此,如何能够对嵌入式设备的动态内存的申请和释放进行监管记录,方便设计人员的内存使用和管控,提升用户体验,是现今急需解决的问题。

本发明的目的是提供一种嵌入式设备及其内存监管方法、装置和计算机可读存储介质,以对嵌入式设备的动态内存的申请和释放进行监管记录,方便设计人员的内存使用和管控。

为解决上述技术问题,本发明提供一种嵌入式设备的内存监管方法,包括:

在申请内存的存储空间时,对所述存储空间对应的申请信息进行压栈操作,将所述申请信息存储到预设栈中,并记录所述申请信息对应的入栈信息;

在释放所述存储空间时,对所述申请信息进行出栈操作,从所述预设栈中提取所述申请信息,并记录所述申请信息对应的出栈信息。

可选的,所述对所述存储空间对应的申请信息进行压栈操作,将所述申请信息存储到预设栈中,并记录所述申请信息对应的入栈信息,包括:

获取所述申请信息;其中,所述申请信息包括:申请时间信息、申请大小信息和申请位置信息;

对所述申请信息进行压栈操作,将所述申请信息存储到所述预设栈中;

在日志文件中记录所述入栈信息;其中,所述入栈信息包括所述申请信息。

可选的,该方法还包括:

按第一预设时间间隔获取并记录所述内存的使用信息;其中,所述使用信息包括所述内存的剩余存储空间信息。

可选的,该方法还包括:

按第二预设时间间隔获取并记录所述第二预设时间间隔内所述内存的剩余存储空间的变换量信息。

可选的,该方法还包括:

按第三预设时间间隔获取所述预设栈中存储的申请信息的数量;

判断所述数量是否大于阈值;

若是,则记录所述预设栈中存储的申请信息,并生成告警信息。

本发明还提供了一种嵌入式设备的内存监管装置,包括:

压栈模块,用于在申请内存的存储空间时,对所述存储空间对应的申请信息进行压栈操作,将所述申请信息存储到预设栈中,并记录所述申请信息对应的入栈信息;

出栈模块,用于在释放所述存储空间时,对所述申请信息进行出栈操作,从所述预设栈中提取所述申请信息,并记录所述申请信息对应的出栈信息。

可选的,所述压栈模块,包括:

获取子模块,用于获取所述申请信息;其中,所述申请信息包括:申请时间信息、申请大小信息和申请位置信息;

压栈子模块,用于对所述申请信息进行压栈操作,将所述申请信息存储到所述预设栈中;

记录子模块,用于在日志文件中记录所述入栈信息;其中,所述入栈信息包括所述申请信息。

可选的,该装置还包括:

采集模块,用于按预设时间间隔获取所述预设栈中存储的申请信息的数量;

判断模块,用于判断所述数量是否大于阈值;

记录告警模块,用于若大于所述阈值,则记录所述预设栈中存储的申请信息,并生成告警信息。

本发明还提供了一种嵌入式设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述所述的嵌入式设备的内存监管方法的步骤。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的嵌入式设备的内存监管方法的步骤。

本发明所提供的一种嵌入式设备的内存监管方法,包括:在申请内存的存储空间时,对存储空间对应的申请信息进行压栈操作,将申请信息存储到预设栈中,并记录申请信息对应的入栈信息;在释放存储空间时,对申请信息进行出栈操作,从预设栈中提取申请信息,并记录申请信息对应的出栈信息;

可见,由于内存中存储空间的申请与释放必须是成对出现且相互匹配的,本发明利用栈的数据结构描述存储空间的申请与释放的匹配,并通过压栈和出栈时的信息记录,实现了动态内存的申请与释放的记录,方便了设计人员的内存使用和管控,提升了用户体验。此外,本发明还提供了一种嵌入式设备及其内存监管装置和计算机可读存储介质,同样具有上述有益效果。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的一种嵌入式设备的内存监管方法的流程图;

图2为本发明实施例所提供的一种嵌入式设备的内存监管装置的结构框图;

图3为本发明实施例所提供的一种嵌入式设备的结构示意图。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例所提供的一种嵌入式设备的内存监管方法的流程图。该方法可以包括:

步骤101:在申请内存的存储空间时,对存储空间对应的申请信息进行压栈操作,将申请信息存储到预设栈中,并记录申请信息对应的入栈信息。

可以理解的是,由于内存中存储空间的申请与释放必须是成对出现且相互匹配的,因此栈的数据结构能很好的描述内存中存储空间的申请释放与匹配。本步骤中嵌入式设备(如BMC)的处理器可以在申请内存的存储空间时,将该存储空间对应的申请信息存储到预设栈中,并记录该申请信息对应的入栈信息,完成内存申请的记录。

其中,本步骤中的申请信息可以为内存中存储空间的内存申请对应的信息。对于申请信息的具体内容,可以由设计人员根据实用场景和用户需求自行设置,如申请信息可以包括申请的存储空间的大小(即申请大小信息)和申请的存储空间的位置(即申请位置信息);申请信息还可以包括申请存储空间的时间(即申请时间信息)。只要处理器可以通过申请信息确定内存申请的存储空间,本实施例对此不做任何限制。

具体的,本步骤中的入栈信息可以为申请信息对应的用于在该申请信息压栈时记录存储的信息,如在申请信息压栈时记录到日志文件中的内容。本实施例并不限定入栈信息的具体内容,如入栈信息可以仅包括申请信息,也可以还包括压栈操作信息,如压栈时间和压栈标识。

需要说明的是,本实施例并不限定处理器在申请内存的存储空间时,对存储空间对应的申请信息进行压栈操作,将申请信息存储到预设栈中,并记录申请信息对应的入栈信息的具体过程,如处理器在申请内存的存储空间时,可以先获取该存储空间对应的申请信息;其中,申请信息包括:申请时间信息、申请大小信息和申请位置信息;再对该申请信息进行压栈操作,将该申请信息存储到预设栈中;之后在日志文件(如BMC日志文件)中记录该申请信息对应的入栈信息;其中,入栈信息可以包括申请信息。

步骤102:在释放存储空间时,对申请信息进行出栈操作,从预设栈中提取申请信息,并记录申请信息对应的出栈信息。

可以理解的是,本步骤中嵌入式设备(如BMC)的处理器可以在释放内存的存储空间时,将该存储空间对应的申请信息从预设栈中取出,并记录该申请信息对应的出栈信息,完成内存释放的记录。

对应的,本步骤中的出栈信息可以为申请信息对应的用于在该申请信息出栈时记录存储的信息。本实施例并不限定出栈信息的具体内容,如入栈信息可以仅包括申请信息,也可以还包括出栈操作信息,如出栈时间和出栈标识。

需要说明的是,本实施例是以一对内存申请和内存释放对应的申请信息的压栈和出栈为例进行的展示,对于其它内存申请和内存释放均可以采用与本实施例所提供方法相同或相似的方式利用预设栈进行相应的申请信息的压栈和出栈,本实施例对此不做任何限制。

具体的,本实施例并不限定处理器在释放存储空间时,对申请信息进行出栈操作,从预设栈中提取申请信息,并记录申请信息对应的出栈信息的具体过程,如处理器在释放内存的存储空间时,可以先对该存储空间对应的申请信息进行出栈操作,预设栈中取出该申请信息;再在日志文件(如BMC日志文件)中记录该申请信息对应的出栈信息;其中,出栈信息可以包括申请信息。

进一步的,本实施例所提供的方法还可以包括按第一预设时间间隔获取并记录内存的使用信息的步骤;其中,使用信息包括内存的剩余存储空间信息。具体的,对于第一预设时间和使用信息的具体内容,可以由设计人员自行设置,例如BMC的处理器可以每小时获取一次BMC的剩余内存,即内存的剩余存储空间信息,并将该信息写入到BMC日志文件。

对应的,处理器还可以将获取的使用信息中的剩余存储空间信息与存储阈值进行比较,在剩余存储空间小于存储阈值时,生成存储空间告警信息,以提示用户内存剩余的存储空间的不足。

进一步的,本实施例所提供的方法还可以包括按第二预设时间间隔获取并记录第二预设时间内内存的剩余存储空间的变换量信息的步骤。例如BMC的处理器可以每小时计算依次该小时内BMC内存余量的变换量信息,将变换量信息写入到BMC日志文件。

需要说明的是,本实施例中处理器还可以利用预设栈中存储的申请信息的数量,确定内存申请与释放的不匹配项的数量,从而在不匹配项的数量大于阈值(如10)时,记录不匹配项的信息,并产生告警信息,以在内存泄露问题发生前向用户告警。也就是说,本实施例所提供的方法还可以包括:按第三预设时间间隔获取预设栈中存储的申请信息的数量;判断数量是否大于阈值;若是,则记录预设栈中存储的申请信息,并生成告警信息;若否,则结束。

本实施例中,本发明实施例通过利用栈的数据结构描述存储空间的申请与释放的匹配,并通过压栈和出栈时的信息记录,实现了动态内存的申请与释放的记录,方便了设计人员的内存使用和管控,提升了用户体验。

请参考图2,图2为本发明实施例所提供的一种嵌入式设备的内存监管装置的结构框图。该装置可以包括:

压栈模块10,用于在申请内存的存储空间时,对存储空间对应的申请信息进行压栈操作,将申请信息存储到预设栈中,并记录申请信息对应的入栈信息;

出栈模块20,用于在释放存储空间时,对申请信息进行出栈操作,从预设栈中提取申请信息,并记录申请信息对应的出栈信息。

可选的,压栈模块20,可以包括:

获取子模块,用于获取申请信息;其中,申请信息包括:申请时间信息、申请大小信息和申请位置信息;

压栈子模块,用于对申请信息进行压栈操作,将申请信息存储到预设栈中;

记录子模块,用于在日志文件中记录入栈信息;其中,入栈信息包括申请信息。

可选的,该装置还可以包括:

使用记录模块,用于按第一预设时间间隔获取并记录内存的使用信息;其中,使用信息包括内存的剩余存储空间信息。

可选的,该装置还可以包括:

变化量记录模块,用于按第二预设时间间隔获取并记录第二预设时间间隔内内存的剩余存储空间的变换量信息。

可选的,该装置还包括:

采集模块,用于按第三预设时间间隔获取预设栈中存储的申请信息的数量;

判断模块,用于判断数量是否大于阈值;

记录告警模块,用于若大于阈值,则记录预设栈中存储的申请信息,并生成告警信息。

本实施例中,本发明实施例通过利用栈的数据结构描述存储空间的申请与释放的匹配,并通过压栈和出栈时的信息记录,实现了动态内存的申请与释放的记录,方便了设计人员的内存使用和管控,提升了用户体验。

请参考图3,图3为本发明实施例所提供的一种嵌入式设备的结构示意图。该设备1可以包括:

存储器11,用于存储计算机程序;处理器12,用于执行该计算机程序时实现如上述实施例所提供的嵌入式设备的内存监管方法的步骤。

设备1可以包括存储器11、处理器12和总线13。

其中,存储器11至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备1的内部存储单元。存储器11在另一些实施例中也可以是设备1的外部存储设备,例如设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备1的应用软件及各类数据,例如:执行嵌入式设备的内存监管方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行嵌入式设备的内存监管方法的程序的代码等。

该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备1与其他电子设备之间建立通信连接。

可选地,该设备1还可以包括用户接口15,用户接口15可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口15还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备1中处理的信息以及用于显示可视化的用户界面。

图3仅示出了具有组件11-15的设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

此外,本发明实施例还公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述实施例所提供的嵌入式设备的内存监管方法的步骤。

其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

以上对本发明所提供的一种嵌入式设备及其内存监管方法、装置和计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

本文发布于:2023-04-13 05:43:15,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/86305.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图