[发明专利]一种Java卡空闲块管理方法有效
申请号: | 201510192362.X | 申请日: | 2015-04-22 |
公开(公告)号: | CN104778128B | 公开(公告)日: | 2017-11-03 |
发明(设计)人: | 刘哲理;隋传波 | 申请(专利权)人: | 东港股份有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06;G06Q20/34 |
代理公司: | 山东济南齐鲁科技专利事务所有限公司37108 | 代理人: | 牛传凯 |
地址: | 250100 *** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 空闲 管理 方法 | ||
技术领域
本发明涉及智能卡领域,具体涉及一种Java卡空闲块管理方法。
背景技术
随着金融电子化的全面发展,为解决用户对一卡多用的需要,支持多应用的Java卡得到了越来越多的普及应用。Java卡作为一种智能卡,其存储体系主要由读写存储器(RAM)、只读存储器(ROM)和可擦写编程存储器(EEPROM)组成,其中RAM用于存放运算过程中的中间数据和结果数据,ROM用于存放智能卡的操作系统,EEPROM是智能卡的主要存储器,用于存放卡人的个人信息及发行单位的信息和应用数据。
随着业务的多样化变化,Java卡产品在投放使用后,EEPROM中存储的数据经常发生变动,需要提供合理的存储空间管理方法,以达到高效地申请存储空间,有效地利用存储空间的目的,提升Java卡的应用性能。现有的Java卡对于存储空间管理通过保存空闲块信息进行管理,但是在申请和回收空间的时候,通常采用顺序遍历的机制,效率较低,交易的时间较长,因此,提出一种高效的Java卡空闲块管理方法是有必要的,尤其是对性能要求较高的应用中更需要高效的Java卡空闲块管理方法。
发明内容
为解决上述问题,本发明的目的是提供一种Java卡空闲块管理方法。
本发明为实现上述目的,通过以下技术方案实现:
一种Java卡空闲块管理方法,Java卡通过空闲块信息表存储EEPROM中空闲块的信息,空闲块信息表由结点组成,所述的结点包括空闲块信息、空闲块个数和后继结点地址;结点间通过后继结点地址形成链式存储结构,所述的空闲块信息包含地址和大小两部分,在16位芯片中占用的存储空间为4字节,32位芯片中占用的存储空间为8字节;每个结点在连续的空间内最多存储MAX_TBL_BLOCK_SIZE个空闲块信息,空闲块信息按照大小顺序存储;预先从EEPROM为空闲块信息表的第一个结点分配空间,当空闲块个数超过当前结点所能存储的最大数量后,将从EEPROM为后继结点申请存储空间;为数据申请存储空间时,遍历空闲块信息表并选择大小合适的空闲块;释放数据占用的存储空间时,采用块合并排序算法将释放的存储空间合并到合适的空闲块中,并且将空闲块信息按照大小排序。
为进一步实现本发明的目的,还可以采用以下技术方案:
一种Java卡空闲块管理方法,包括如下步骤:
(1)在EEPROM中预先为空闲块信息表的第一个结点分配存储空间,当空闲块个数超过当前结点所能存储的最大数量MAX_TBL_BLOCK_SIZE后,从EEPROM为后继结点申请存储空间;
(2)在EEPROM中为数据申请存储空间时,采用最佳大小块匹配算法,遍历空闲块信息表并选择大小合适的空闲块,所述的最佳大小块匹配算法为折半算法;
(3)释放数据占用的存储空间时,采用块合并排序算法将释放的存储空间合并到合适的空闲块中,并且将空闲块信息按照大小排序。
优选的,最佳大小块匹配算法包括如下步骤:
⑴依次遍历空闲块信息表中的每个结点;
⑵对当前结点中的空闲块信息,采用折半算法进行遍历,具体为:
①确定开始块位置,根据有效空闲块个数计算中间块序号,然后通过如下循环处理确定开始块位置:
A.如果中间块大小等于待分配空间大小,则查找成功,算法执行完毕;
B.如果中间块大小大于待分配空间大小,则重新计算左侧部分的中间块序号,直到中间块大小小于或等于待分配空间大小为止;
C.如果中间块大小小于待分配空间大小,则重新计算右侧部分的中间块序号,直到中间块大小小于或等于待分配空间大小为止;
②如果当前块大小小于待分配空间大小,则选取后续空闲块作为当前块;
③如果中间块大小等于待分配空间大小,则查找成功,算法执行完毕;
④如果当前块大小大于待分配空间大小,则进行如下操作:
A.如果存在备选块,则比较当前块大小和备选块大小,如果当前块大小小于备选块大小,则标识当前块为备选块,并记录当前块大小;
B.如果不存在备选块,则标识当前块为备选块,并记录当前块大小,跳出当前结点,进入下一结点的空闲块遍历;
⑶遍历完所有结点的空闲块信息后,将标识的备选块地址信息返回。
优选的,块合并排序算法包括以下步骤:
⑴依次遍历空闲块信息表中的每一个结点;
⑵对当前结点中的空闲块信息进行遍历,具体为:
①如果释放块尾地址等于当前块始地址,则进行如下操作:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东港股份有限公司,未经东港股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510192362.X/2.html,转载请声明来源钻瓜专利网。