[发明专利]一种基于句柄结构的对象管理方法及装置在审
申请号: | 202110786879.7 | 申请日: | 2021-07-12 |
公开(公告)号: | CN113626212A | 公开(公告)日: | 2021-11-09 |
发明(设计)人: | 周立功;陈谭 | 申请(专利权)人: | 广州致远电子有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F12/02 |
代理公司: | 北京泽方誉航专利代理事务所(普通合伙) 11884 | 代理人: | 陈照辉 |
地址: | 510000 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 句柄 结构 对象 管理 方法 装置 | ||
本申请实施例公开了一种基于句柄结构的对象管理方法及装置。本申请实施例提供的技术方案,通过从预设的句柄描述表中抽取处于空闲状态的描述项,在系统内存中创建对象并关联至描述项,基于描述项生成相关联的句柄;在使用句柄访问对象时,将句柄与句柄描述表中对应的描述项比对,判断句柄与对应的描述项是否匹配;确定句柄与对应的描述项匹配,锁定描述项相关联的对象,执行对象访问操作;确定句柄与对应的描述项不匹配,结束当前对象访问流程。采用上述技术手段,确保句柄复用准确,避免句柄复用时,访问错误对象的情况,解决句柄复用时的对象误用问题,优化系统内存管理及程序运行。
技术领域
本申请实施例涉及系统对象管理技术领域,尤其涉及一种基于句柄结构的对象管理方法及装置。
背景技术
传统操作系统在进行对象管理时,一般是在系统堆里为应用程序直接分配一块内存,应用程序直接引用内存的原始指针去操作对象。这种方式极度依赖内存管理单元,容易导致内存对象访问异常,程序奔溃。
为此,现有一种采用句柄管控内存对象的方式,其通过应用程序持有对象句柄,该句柄指向句柄描述表中的某个描述项,然后通过描述项间接指向内存中真正的对象。以此可以排除系统内存对内存管理单元的依赖,避免直接分配内存导致的异常情况。
但是,采用传统句柄方式管理对象无法保证句柄的唯一性,当一个句柄被释放后,又被另外的使用者复用时,前后两者的句柄值是一样的,但实际指向内容不一样,容易出现对象误用的情况,导致程序运行出错,影响系统运行。
发明内容
本申请实施例提供一种基于句柄结构的对象管理方法及装置,能够解决句柄复用时的对象误用问题,确保句柄复用准确,优化系统运行。
在第一方面,本申请实施例提供了一种基于句柄结构的对象管理方法,包括:
从预设的句柄描述表中抽取处于空闲状态的描述项,在系统内存中创建对象并关联至所述描述项,基于所述描述项生成相关联的句柄;
在使用所述句柄访问对象时,将所述句柄与所述句柄描述表中对应的所述描述项比对,判断所述句柄与对应的所述描述项是否匹配;
确定所述句柄与对应的所述描述项匹配,锁定所述描述项相关联的对象,执行对象访问操作;
确定所述句柄与对应的所述描述项不匹配,结束当前对象访问流程。
进一步的,所述基于所述描述项生成相关联的句柄,包括:
生成所述描述项的唯一标识符,基于所述唯一标识符生成所述描述项相关联的句柄;
对应的,所述判断所述句柄与对应的所述描述项是否匹配,包括:
基于所述唯一标识符的比对结果判断所述句柄与对应的所述描述项是否匹配。
进一步的,所述基于所述唯一标识符生成所述描述项相关联的句柄,包括:
确定所述描述项在所述句柄描述表的索引号,将所述索引号和所述唯一标识符合成为所述描述项相关联的句柄。
进一步的,在从预设的句柄描述表中抽取处于空闲状态的描述项之后,还包括:
将所述描述项的句柄状态类型从空闲状态切换为关联状态。
进一步的,在从预设的句柄描述表中抽取处于空闲状态的描述项之后,还包括:
将所述描述项的引用计数清零,所述引用计数用于计数所述描述项相关联对象的锁定数量;
对应的,在锁定所述描述项相关联的对象,还包括:
根据所述描述项相关联对象的锁定和解锁操作,更新所述引用计数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州致远电子有限公司,未经广州致远电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110786879.7/2.html,转载请声明来源钻瓜专利网。