[发明专利]一种堆栈状态检测方法、装置、设备及存储介质有效
申请号: | 202210039845.6 | 申请日: | 2022-01-14 |
公开(公告)号: | CN114048465B | 公开(公告)日: | 2022-05-06 |
发明(设计)人: | 费卫宏;李瑞东;钟戟 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 鲁梅 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 堆栈 状态 检测 方法 装置 设备 存储 介质 | ||
本申请公开了一种堆栈状态检测方法、装置、设备及存储介质,包括:确定目标堆栈的存储位置,在目标堆栈的预设位置上分配预设大小的内存空间;将初始预设值写入至内存空间,并对内存空间中的初始预设值进行直接读取,以得到相应的第一回读值;判断第一回读值与初始预设值是否一致,若一致,则通过预设检测接口回读初始预设值,以得到相应的第二回读值;判断第二回读值与初始预设值是否一致,如果不一致,则判定堆栈状态处于异常状态并执行程序断言操作。本申请对存入堆栈预设位置上的初始预设值两次读取并将回读值与初始预设值进行判断,基于第二次判断结果确定出目标堆栈的状态,从而实现低消耗,高效地检测堆栈状态,保证裸机系统的稳定运行。
技术领域
本发明涉及计算机技术领域,特别涉及一种堆栈状态检测方法、装置、设备及存储介质。
背景技术
当前,大多的SSD(Solid State Disk,固态硬盘)产品,为了追求极致的产品性能没有使用现有OS(operating system,操作系统)平台进行开发,而是使用裸机开发,以求将CPU(central processing unit,中央处理器)的最大能力应用于SSD业务。如果使用OS平台开发的话,SSD产品在实际使用中仍会存在一些严重的问题。例如,由于CPU的消耗较大,从而会导致过多的CPU性能消耗在OS的运行和维护上,对于SSD产品来说,就会得不偿失,并且发生堆栈溢出,到时数据或者程序运行异常,问题一般比较难排查,耗费人力,容易在产品中遗留问题,影响SSD产品的质量。
然而,目前大多的SSD产品使用裸机系统开发,因为没有OS平台支撑,无法实现使用OS平台开发时所具备的成熟堆栈状态监测机制,导致裸机在运行过程中的安全无法得到保障,需要开发者自己保证裸机的基本运行安全。
发明内容
有鉴于此,本发明的目的在于提供一种堆栈状态检测方法、装置、设备及存储介质,能够提高裸机系统的运行安全从而保证裸机系统的稳定运行。其具体方案如下:
第一方面,本申请公开了一种堆栈状态检测方法,应用于裸机系统,包括:
确定所述目标堆栈的存储位置,并在所述目标堆栈的预设位置上分配预设大小的内存空间;
将初始预设值写入至所述内存空间,并对所述内存空间中的所述初始预设值进行直接读取,以得到相应的第一回读值;
判断所述第一回读值与所述初始预设值是否一致,若一致,则通过预设检测接口回读所述初始预设值,以得到相应的第二回读值;
判断所述第二回读值与所述初始预设值是否一致,如果一致,则判定所述目标堆栈状态处于非异常状态并执行接口退出操作,如果不一致,则判定所述目标堆栈状态处于异常状态并执行程序断言操作。
可选的,所述在所述目标堆栈的预设位置上分配预设大小的内存空间,包括:
在所述目标堆栈的栈底和栈顶分别配置预设大小的内存空间,以得到所述栈底对应的第一内存空间和所述栈顶对应的第二内存空间;
相应的,所述将初始预设值写入至所述内存空间,包括:
将第一初始预设值和第二初始预设值分别写入所述栈底对应的所述第一内存空间和所述栈顶对应的所述第二内存空间。
可选的,所述对所述内存空间中的所述初始预设值进行直接读取,以得到相应的第一回读值,包括:
对所述第一内存空间中的所述第一初始预设值进行直接读取,以得到第一内存回读值;
对所述第二内存空间中的所述第二初始预设值进行直接读取,以得到第二内存回读值;
相应的,所述判断所述第一回读值与所述初始预设值是否一致,包括:
判断所述第一内存回读值和所述第二内存回读值与所述第一初始预设值和所述第二初始预设值是否一致。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210039845.6/2.html,转载请声明来源钻瓜专利网。