CN101246440A - Java卡系统垃圾回收方法 - Google Patents
Java卡系统垃圾回收方法 Download PDFInfo
- Publication number
- CN101246440A CN101246440A CNA2007100269982A CN200710026998A CN101246440A CN 101246440 A CN101246440 A CN 101246440A CN A2007100269982 A CNA2007100269982 A CN A2007100269982A CN 200710026998 A CN200710026998 A CN 200710026998A CN 101246440 A CN101246440 A CN 101246440A
- Authority
- CN
- China
- Prior art keywords
- card system
- java card
- recovering method
- java
- system rubbish
- 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.)
- Granted
Links
Images
Abstract
本发明涉及Java卡系统垃圾回收方法,其包括以下步骤:步骤一,由Java卡系统调用垃圾回收实现函数;步骤二,在铺垫区中对垃圾回收实现函数进行初始化操作;步骤三,由跟踪收集器进行对象遍历,并在位图区中进行标记;步骤四,清除在位图区中仍为初始化值的位所对应的对象。本发明所提供的Java卡系统垃圾回收方法将Java卡系统垃圾占用的空间(即对象遍历过程中无法到达的对象)进行高效率整理,使得Java智能卡的有限存储空间得到了更合理的应用,为应用程序的下载提供更充足的空间。
Description
技术领域
本发明涉及智能卡领域,尤其涉及一种Java卡系统垃圾回收方法。
背景技术
智能卡已经被广泛应用在手机、音乐播放器、数字电视等各类产品中,智能卡可以实现身份识别、数据的存储、信息处理等多种功能。以广泛应用于手机中的SIM卡(Subscriber IdentityModel,客户识别模块)为例,SIM卡即是一种具有用户识别功能和数据存储、处理功能的智能卡,它是移动运营商、增值业务提供商和用户之间的媒介,被广泛地应用于移动通讯领域内。
随着第三代移动通信系统(简称3G)的到来,3G运营商将利用3G网络的带宽优势其客户提供诸如音乐下载、视频服务、无线宽带接入等新业务,由于传统的普通SIM卡不具有应用程序(Applet)下载的功能,因此限制了移动运营商和增值业务提供商的业务开展,而新兴的Java卡技术的出现则解决了这个难题。Java卡技术是一项新兴的智能卡技术,是一个开放的多应用平台,通过Java卡可以实现下载各种应用程序,但是,由于Java卡嵌入式系统的存储空间有限,用户只能通过更新Java卡上的各种应用程序来解决越来越多的使用需求,随着用户对程序的选择和更新,将产生许多系统垃圾占用存储空间,使得本来就很有限的资源被这些系统垃圾更大程度的浪费了。因此,怎样更有效率的使用Java卡的有限空间是一个需要迫切解决的问题。
针对现有技术的上述缺陷,本发明就是要提供一种高效率的Java卡系统垃圾的回收方法,实现对系统垃圾的清理,将系统垃圾所占用的空间进行回收,为应用程序的下载提供充足的空间。
发明内容
本发明的目的是提供一种高效率的Java卡系统垃圾的回收方法。
为实现上述发明目的,本发明提供的Java卡系统垃圾的回收方法包括以下步骤:
步骤一,由Java卡系统调用系统垃圾回收实现函数;
步骤二,在铺垫区中对系统垃圾回收实现函数进行初始化操作;
步骤三,由跟踪收集器进行对象遍历,并在位图区中进行标记;
步骤四,清除在位图区中仍为初始化值的位所对应的对象。
本发明所提供的Java卡系统垃圾回收方法将Java卡系统中垃圾占用的空间(即对象遍历过程中无法到达的对象)进行高效率的整理,使得Java智能卡的有限存储空间得到了更合理的应用,为应用程序的下载提供充足的空间。
为了使得本发明Java卡系统垃圾回收方法更加优化,还可以在执行完步骤四之后由堆碎片管理器进行堆碎片整理。
详细的内容将在具体实施例中作更清楚的介绍。
附图说明
图1是本发明所涉及的Java栈的一种空间管理方式;
图2是本发明所述Java卡系统垃圾回收方法的基本流程图;
以下结合实施例及其附图作进一步的详细说明。
具体实施方式
为清楚描述本发明所述的Java卡系统垃圾回收方法,首先引入跟踪收集器这个硬件结构。
本发明所涉及的Java卡包括跟踪收集器,其完成对象遍历和对象清除两个过程。在对象遍历阶段,跟踪收集器从根集开始扫描,沿着整个对象图上的每条链接,递归确定可到达(reachable)的对象,在跟踪过程中遇到的可到达的对象使用一个独立的位图来设置标记,如果某对象不能从这些根对象的一个(至少一个)到达,则将它作为垃圾收集。以下将详细描述对象遍历的原理和过程。
在上述对象遍历过程中使用了Java栈,参见图1中揭示了本发明所涉及的Java栈的一种空间管理方式:Java栈的最底层为已用空间1,已用空间1的上层为可用空间,把Java栈可用空间的基地址作为对象遍历区的基地址,并预留一段空间作为铺垫区2,铺垫区2在执行垃圾回收实现函数的初始化时使用;位图区3位于铺垫区2的上面,位图区3的基地址是对象遍历区的基地址加上铺垫区大小偏移,位图区3在垃圾回收实现函数进行初始化时开辟,并且在初始化过程中,将位图区3所有的位的值置为“0”,程序创建的所有对象都在位图区3中对应1位(Bit),每8位组合为一组。在对象遍历过程中,从根集开始扫描,每到达一个对象就将它在位图中对应的位(bit)置为“1”。即,一旦对应的位被置“1”,则表示其属于可以到达的对象。
对象遍历采用递归方式,在图1所示的实施例中,递归的深度为4级(A、B、C、D),当递归超过4级(例如E)但还有可以到达的对象存在,则将后续的对象添加到对象缓冲区4,对象缓冲区4的基地址为位图区3的结束地址,对象缓冲区4的大小为栈指针的偏移减去位图区3结束地址的偏移,当对象递归处理完成并返回后,将调用存放在对象缓冲区4的对象并开始下一次递归及缓存。
在完成对象遍历阶段之后,进入对象清除阶段,在对象清除阶段,跟踪收集器将那些从根集不可到达的对象(即其在位图区3中对应的位仍为“0”)作为垃圾回收的对象进行删除。即,根据对象的索引,查看其在位图区3中对应的位,如果值为“0”,则将对象清除,否则不清除。
为了使本发明的技术方案更加优化,还可以引入堆碎片管理器这个硬件结构,堆碎片管理器是将跟踪收集器在对象清除阶段所释放的对象占用空间进行碎片整理回收。在堆碎片管理器的空间回收过程中,如果待回收空间不能合并到其他空闲块中,则需查看EEPROM分配表中是否存在空闲的表项,如果存在空闲的表项,则将待回收的空间登记到该表项;如果无空闲表项,则创建一个新的分配表,登记待回收块信息。如果待回收块有相邻空闲块,则修改相邻空闲的大小(SIZE)字段,对其进行合并。
参见图2,图2是根据上述描述所总结出的发明所述Java卡系统垃圾回收方法的基本流程图,其包括以下几个步骤:
步骤21,由Java卡系统调用垃圾回收实现函数。在本发明所述的Java卡系统垃圾回收调用机制中,可以采用设置标记(TAG)的方法对垃圾回收进行控制,应用开发者设置标记后,如果需要进行垃圾回收,则首先判断是否存在标记,如果存在标记,则调用垃圾回收实现函数,进行垃圾回收,否则不进行垃圾回收。需要强调的是,鉴于智能卡嵌入式软件系统及底层硬件平台的限制,本发明所述的Java卡的垃圾回收调用机制采用单线程显式调用的方法,所谓单线程就是当垃圾收集开始时就停止应用程序的运行,显式调用则意味着应用开发者必须显式的调用垃圾回收实现函数才可以进行Java卡系统垃圾回收。
步骤22,在铺垫区2中对垃圾回收实现函数进行初始化操作。如上所述,在初始化过程中,将位图区3中的所有位均置为相同的初始化值(在图1所示的实施例中,初始化值均置为“0”)。
步骤23,由跟踪收集器进行对象遍历,并在位图区3中进行标记,如上所述,在遍历过程中,如果属于能够到达的对象,则将此对象在位图区3中对应初始值进行改变(在图1所示的实施例中,将初始值改变并标记成“1”)。
步骤24,清除在位图区3中仍为初始化值的位所对应的对象。
通过上述步骤可见,本发明所述的Java卡系统垃圾回收方法将Java卡系统中的废弃空间(即对象遍历过程中无法到达的对象)进行高效率的删除、整理,使得Java智能卡的有限存储空间得到了更合理的应用,为应用程序的下载提供更充足的空间。
当然,为了使得本发明所述Java卡系统垃圾回收方法更加优化,还可以执行步骤25,由堆碎片管理器进行堆碎片整理。堆碎片整理的过程已经在上述描述中清楚的体现出来了,在此不作赘述。
当然本发明并不限于上述实施例,上述步骤中初始化值并非一定是“0”,可以根据实际情况为其它值。这些都是本领域内的一般技术人员根据上述描述能够轻易思及的。诸如此类的等效变换都应该包含在权利要求限定的范围内。
Claims (9)
1. Java卡系统垃圾回收方法,所述Java卡系统包括跟踪收集器以及Java栈,所述Java栈中包括铺垫区和位图区,所述方法包括以下步骤:
步骤一,由Java卡系统调用垃圾回收实现函数;
步骤二,在铺垫区中对垃圾回收实现函数进行初始化操作;
步骤三,由跟踪收集器进行对象遍历,并在位图区中进行标记;
步骤四,清除在位图区中仍为初始化值的位所对应的对象。
2. 根据权利要求1所述的Java卡系统垃圾回收方法,其特征在于:
所述Java卡系统还包括堆碎片管理器,在执行完步骤四后,由堆碎片管理器进行堆碎片整理。
3. 根据权利要求1所述的Java卡系统垃圾回收方法,其特征在于:
所述步骤一中采用设置标记的方法判断是否需要调用垃圾回收函数。
4. 根据权利要求1所述的Java卡系统垃圾回收方法,其特征在于:
在所述步骤二中,将位图区中的所有位均置为相同的初始化值。
5. 根据权利要求4所述的Java卡系统垃圾回收方法,其特征在于:
在步骤三所述的遍历过程中,如果属于能够到达的对象,则将此对象在位图区中对应的初始值进行改变。
6. 根据权利要求5所述的Java卡系统垃圾回收方法,其特征在于:
所述相同的初始化值为“0”,所述改变后的值为“1”。
7. 根据权利要求1所述的Java卡系统垃圾回收方法,其特征在于:
步骤二中所述的对象遍历采用递归方式,递归的深度为4级。
8. 根据权利要求7所述的Java卡系统垃圾回收方法,其特征在于:
所述Java栈还包括对象缓冲区,如果递归深度超过4级但还有可以到达的对象存在,则将后续的对象添加到此对象缓冲区。
9. 根据权利要求8所述的Java卡系统垃圾回收方法,其特征在于:
当对象的递归处理完成并返回后,将调用存放在对象缓冲区的对象并开始下一次递归及缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100269982A CN101246440B (zh) | 2007-02-12 | 2007-02-12 | Java卡系统垃圾回收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100269982A CN101246440B (zh) | 2007-02-12 | 2007-02-12 | Java卡系统垃圾回收方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101246440A true CN101246440A (zh) | 2008-08-20 |
CN101246440B CN101246440B (zh) | 2011-02-09 |
Family
ID=39946907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100269982A Active CN101246440B (zh) | 2007-02-12 | 2007-02-12 | Java卡系统垃圾回收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101246440B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270134A (zh) * | 2011-08-09 | 2011-12-07 | 北京握奇数据系统有限公司 | 一种Java卡中垃圾回收的方法及装置 |
CN102591788A (zh) * | 2011-12-23 | 2012-07-18 | 飞天诚信科技股份有限公司 | 一种Java卡垃圾回收方法 |
CN101777061B (zh) * | 2009-12-31 | 2014-06-04 | 北京握奇数据系统有限公司 | 一种java卡对象管理方法及java卡 |
CN103942100A (zh) * | 2014-05-09 | 2014-07-23 | 内蒙古中大传媒发展有限公司 | 一种基于中间件架构下java栈的多线程实现方法 |
CN106951306A (zh) * | 2017-03-06 | 2017-07-14 | 东软集团股份有限公司 | 一种stw检测方法、装置及设备 |
CN107729260A (zh) * | 2017-09-30 | 2018-02-23 | 捷德(中国)信息科技有限公司 | 用于智能卡的存储空间回收方法 |
CN111177021A (zh) * | 2019-12-04 | 2020-05-19 | 东信和平科技股份有限公司 | Java卡碎片管理方法及其存储装置 |
CN113568581A (zh) * | 2021-07-29 | 2021-10-29 | 武汉天喻信息产业股份有限公司 | 一种嵌入式设备的多应用资源回收方法及系统 |
-
2007
- 2007-02-12 CN CN2007100269982A patent/CN101246440B/zh active Active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777061B (zh) * | 2009-12-31 | 2014-06-04 | 北京握奇数据系统有限公司 | 一种java卡对象管理方法及java卡 |
CN102270134A (zh) * | 2011-08-09 | 2011-12-07 | 北京握奇数据系统有限公司 | 一种Java卡中垃圾回收的方法及装置 |
CN102270134B (zh) * | 2011-08-09 | 2015-05-27 | 北京握奇数据系统有限公司 | 一种Java卡中垃圾回收的方法及装置 |
CN102591788A (zh) * | 2011-12-23 | 2012-07-18 | 飞天诚信科技股份有限公司 | 一种Java卡垃圾回收方法 |
CN102591788B (zh) * | 2011-12-23 | 2014-09-10 | 飞天诚信科技股份有限公司 | 一种Java卡垃圾回收方法 |
CN103942100A (zh) * | 2014-05-09 | 2014-07-23 | 内蒙古中大传媒发展有限公司 | 一种基于中间件架构下java栈的多线程实现方法 |
CN106951306A (zh) * | 2017-03-06 | 2017-07-14 | 东软集团股份有限公司 | 一种stw检测方法、装置及设备 |
CN106951306B (zh) * | 2017-03-06 | 2020-01-03 | 东软集团股份有限公司 | 一种stw检测方法、装置及设备 |
CN107729260A (zh) * | 2017-09-30 | 2018-02-23 | 捷德(中国)信息科技有限公司 | 用于智能卡的存储空间回收方法 |
CN111177021A (zh) * | 2019-12-04 | 2020-05-19 | 东信和平科技股份有限公司 | Java卡碎片管理方法及其存储装置 |
CN113568581A (zh) * | 2021-07-29 | 2021-10-29 | 武汉天喻信息产业股份有限公司 | 一种嵌入式设备的多应用资源回收方法及系统 |
CN113568581B (zh) * | 2021-07-29 | 2023-08-01 | 武汉天喻信息产业股份有限公司 | 一种嵌入式设备的多应用资源回收方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101246440B (zh) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521145B (zh) | Java卡系统及其空间分配处理方法 | |
CN101246440B (zh) | Java卡系统垃圾回收方法 | |
CN100478956C (zh) | 生成和获取报表的方法及相应的系统 | |
CN103678337B (zh) | 数据清除方法、装置及系统 | |
CN103559276B (zh) | 一种清理垃圾文件的方法及其装置 | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件系统的使用 | |
CN102511044A (zh) | 一种数据删除方法及装置 | |
CN103731483A (zh) | 一种基于云计算的虚拟文件系统 | |
CN103593298B (zh) | 内存回收方法和装置 | |
CN104021159B (zh) | 一种客户端文件清理方法和装置 | |
CN104778222A (zh) | 基于usb存储设备的媒体库建立及更新方法 | |
CN1630302A (zh) | 可自动录入文字、图像的手机及其录入与处理方法 | |
CN103369003A (zh) | 一种利用云计算扫描移动设备的冗余文件的方法和系统 | |
CN104133822A (zh) | 一种对存储器上的文件进行扫描的方法及装置 | |
CN106302632A (zh) | 一种基础镜像的下载方法以及管理节点 | |
CN107786638A (zh) | 一种数据处理方法、装置及系统 | |
CN105302832A (zh) | 文件管理方法及装置 | |
CN102567522B (zh) | 一种智能卡文件系统的管理方法及设备 | |
CN103716346A (zh) | 一种安卓手机客户端上应用的管理方法和装置 | |
CN100545845C (zh) | 一种针对电信智能卡实现任意目录应用管理的方法 | |
CN108762979B (zh) | 一种基于匹配树的终端信息备份方法及备份设备 | |
CN1687899A (zh) | 将应用程序动态下载到用户识别模块的方法、系统及模块 | |
CN107748780A (zh) | 一种回收站文件的恢复方法和装置 | |
CN104424224A (zh) | 一种文件索引存储方法及装置 | |
CN110007860A (zh) | 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee |
Owner name: EASTCOMPEACE TECHNOLOGY CO., LTD. Free format text: FORMER NAME: EASTCOMPEACE SMART CARD CO., LTD. |
|
CP01 | Change in the name or title of a patent holder |
Address after: 519060 Guangdong province science and Technology Park in Zhuhai Nanping Ping Gong Road No. 8 Patentee after: Eastcompeace Technology Co., Ltd. Address before: 519060 Guangdong province science and Technology Park in Zhuhai Nanping Ping Gong Road No. 8 Patentee before: Eastcompeace Smart Card Co., Ltd. |