CN111459683B - 一种Java Card空间管理方法 - Google Patents
一种Java Card空间管理方法 Download PDFInfo
- Publication number
- CN111459683B CN111459683B CN202010279670.7A CN202010279670A CN111459683B CN 111459683 B CN111459683 B CN 111459683B CN 202010279670 A CN202010279670 A CN 202010279670A CN 111459683 B CN111459683 B CN 111459683B
- Authority
- CN
- China
- Prior art keywords
- brother
- java card
- space
- list
- block
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种Java Card空间管理方法,包括,步骤1):Java Card系统对空间进行计算,标记可用空间起始地址、结束地址;步骤2):构建Brother‑list;步骤3):构建Brother‑List算法控制数据结构;步骤4):完成初始化计算,并对算法控制数据结构进行数据初始化;步骤5):完成Brother‑List算法构建后,进入正常上电状态,并中断等待操作指令;步骤6):Java Card系统接收到操作指令后,对Java Card空间进行管理,完成相关操作指令。本发明的目的在于提出“Brother‑List算法”,用于管理Java Card空间,并解决空间碎片化问题。
Description
技术领域
本发明涉及计算机技术领域,具体的说,是一种Java Card空间管理方法。
背景技术
Java Card作为智能卡领域的明星产品,一经问世便受到广泛关注,尤其后下载能力和多应用能力的表现,更是受到热捧;然而Java Card空间管理问题却一直困扰着智能卡行业人员。随着Java Card的使用,空间碎片化加重,空间会越来越小;尤其随着TSM技术的普及,应用后加载技术的落地,使得用户可以随意加载、删除应用,碎片化的空间日益增多。传统Java Card空间为连续空间,如安装应用A、应用B,Java Card会分配连续的空间,则地址(0,A)分配给应用A,地址(A,A+B)分配给应用B,此时删除了应用A,则地址(0,A)空间被释放,此时需要安装应用C,而应用C所占用的空间小于应用A,此时Java Card将(0,C)地址空间分配给应用C,则地址(C,A)被定义为碎片化的空间,随着时间的推移,碎片化的空间会日益加重,造成Java Card空间逐步减小,最终致使Java Card空间不足。
发明内容
本发明的目的在于提出“Brother-List算法”,用于管理Java Card空间, 并解决空间碎片化问题。
本发明通过下述技术方案实现:
一种Java Card空间管理方法,包括以下具体步骤:
步骤1):Java Card系统依据Brother-List算法对Java Card空间进行计算, 标记可用空间起始地址、结束地址;
步骤2):Java Card系统根据Brother-Block,计算可用空间Block个数, 并构建Brother-list;
步骤3):Java Card系统,由可用空间起始地址,分配若干字节,构建Brother-List算法控制数据结构;
步骤4):通过Brother-List算法,完成初始化计算,并对算法控制数据结构进行数据初始化;
步骤5):Java Card系统完成Brother-List算法构建后,进入正常上电状态, 并中断等待操作指令;
步骤6):Java Card系统接收到操作指令后,通过Brother-List算法,对Java Card空间进行管理,完成相关操作指令。
进一步的,所述步骤2):定义Brother Block为(2048, 1024, 512, 256, 64, 32,16, 8),每个Brother Block是连续的空间,占用总计3960Bytes,Java Card的空间被划分为多个Brother Block,形成Brother-List;
进一步的,所述步骤3):Java Card空间,从起始地址开始分配若干字节, 用于空间管理、控制,Block Number占用两个字节,用于记录Java Card空间, Brother Block个数,Last Block Size占用两个字节用于记录最后一块Block的大小, Right有效;LastBlock Size第一个字节的最高位代表Last Block是否可用,0代表未使用,1代表已使用;从Block1至Block(n-1)为每个Brother Block的控制字节,占用1个字节,0代表未使用,1代表已使用;将Java Card的空间,划分为多个Block,形成List, 完成Brother-List构建。
进一步的,所述操作指令包括应用安装和应用删除。在应用安装、应用删除过程中, 为Java Card遍历检索方便, 算法构建与控制字节数据结构互为映射关系的应用列表, 用于记录应用占用的Block(特征块)。应用列表采用变长记录方式,对应用编号、应用所占特征块进行记录。在进行应用删除时, 算法会查找应用列表中,待删除应用所占用的Block,释放对应的Block空间,并清除应用列表中,该应用对应的记录,同时重置控制字节数据结构。
当所述操作指令为应用安装,其具体步骤为:Brother-List算法会从空间的起始地址开始检索,当发现某个Block未被分配、或该Block的某些域未被分配,则会将该Block或该Block的域进行分配,安装完成后,Brother-List算法记录哪些Block、Block的区域被该应用占用,并更新Brother-List算法控制字节,完成应用安装。
当所述操作指令为应用删除,其具体步骤为:Brother-List算法直接查找待删除应用所占用的Block以及Block的域, 进行空间释放, 并更新Brother-List算法控制字节,完成应用删除。
Java Card:是一种智能卡,其具备安全性、防护性、可移植性,管理小型JavaApplet全生命周期。
Brother-List算法:根据智能卡的特点, 拟定特征域(Block), 用以划分、管理、遍历、调配智能卡的空间.通过Brother-List算法, 智能卡的空间被划分为多个特征域(Block), 并形成串行链表, 类似兄弟链表。
Brother Block:特征域。
本发明与现有技术相比,具有的优点及有益效果:在空间使用时, Brother-List算法会从起始地址开始, 检索未被使用的空间, 进行地址分配, 并且可以清晰的记录占用了哪些Block, 以及Block的哪些域, 使得物理非连续的地址变成空间连续地址, 最大限度的降低碎片化的空间产生与堆积。
附图说明
图1为Brother-List算法控制字节;
图2为50K空间Java Card的Brother-List算法控制字节示例;
图3为Java Card安装应用A、应用B后, Brother-List算法控制字节情况;
图4为Java Card安装应用A、应用B后, 空间使用情况;
图5为Java Card删除应用A后, Brother-List算法控制字节情况;
图6为Java Card删除应用A后, 空间使用情况;
图7为Java Card安装应用C后, Brother-List算法控制字节情况;
图8为Java Card安装应用C后, 空间使用情况。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
Brother-List算法,即‘兄弟链表’算法,其解决的问题为:Java Card空间频繁申请、释放过程中,必然导致地Java Card空间产生碎片,由此带来随着时间的推移,碎片化问题加重,最后致使Java Card空间申请失败。
Brother-List算法,即‘兄弟链表’算法,核心算法及数据结构:依据Java Card空间特性,定义Brother Block(特征域),(2048,1024,512,256,64,32,16,8), 每个BrotherBlock是连续的空间, 占用总计3960 bytes。Java Card空间以Brother Block划分多个Block(特征块),每个Block大小为Brother Block,最终形成Brother list。Java Card的Brother list中, Brother Block的个数在Java Card OS初始化时, 分配完毕,并随着Java Card执行过程,Java Card OS不断修订、记录Brother Block占用情况。
构建控制字节数据结构,用于管理Java Card空间使用情况,详细步骤如下:
步骤1、Java Card系统依据Brother-List算法对Java Card空间进行计算,标记可用空间起始地址、结束地址。
步骤2、Java Card系统根据Brother-Block,计算可用空间Block个数, 并构建Brother-list。
步骤3、Java Card系统,由可用空间起始地址,分配若干字节, 构建Brother-List算法控制数据结构。
Brother-List算法控制数据结构,参见图1。其中,‘Block Number’占用2个字节,用于记录Java Card空间的Brother Block的个数;‘Last Block Size’占用2个字节,用于记录最后一块Block的大小,根据‘Brother-List算法’,每个Block为3960Bytes,因此最后一块的大小不一定为3960Bytes,因此需要单独记录。
从第五个字节起,至Brother-List算法控制数据结构尾,为Mapping字节, 其映射后续Brother Block的使用情况。
步骤4、Java Card系统,通过Brother-List算法,完成初始化计算,并对算法控制数据结构进行数据初始化。
步骤5、Java Card系统完成Brother-List算法构建后,进入正常上电状态, 并中断等待应用下载、删除、个人化等操作指令。
现举例如下:
Java Card空间50K,即51200字节,则Brother-List算法控制字节如图2所示;对空间进行划分,总计13个Brother Block,第13个Brother Block大小为0xE52(3666字节)。
现有三个应用,应用A(6260字节)、B(9700字节)、C(6350K)。
第一步,将应用A安装至Java Card,Java Card系统接收到应用A的安装指令后,将应用A的数据域备份至缓存区,并通过Brother-List算法检索可用空间域,检索完毕后,将应用A的数据域拷贝至可用空间域,并设置Brother-List算法控制字节。
第二步,将应用B安装至Java Card,步骤同第一步操作,Java Card OS完成应用A、应用B的安装后,Brother-List算法控制字节,空间占用情况参见图3、图4。
算法根据应用的安装顺序,对应用进行顺序编号, 如图4中, 应用A编号0x01,应用B编号0x02. 应用A占用Block01,Block02的域(2048,256,64,32,16,8),则应用列表记录应用A为0101FF029F, 其中第一个字节01代表应用A的编号,后续字节成对出现,分别代表占用的Block编号、该编号Block的占用域,如,应用A占用了Block01的满域,则为01FF;占用Block02的域(2048,256,64,32,16,8),则为029F。应用B占用Block02的域(1024, 512),Block03,Block04,Block05域(256),则应用列表记录应用B为02026003FF04FF0510。
第三步. 将应用A删除. Java Card OS接收到删除应用A的指令后,通过Brother-List算法检索应用A所占用的Block,检索完毕后,直接将应用A所占用的Block空间释放,并同步清楚应用A对用的Brother-List算法控制字节。应用A删除成功后, Brother-List算法控制字节, 空间占用情况参见图5、图6。
第四步. 将应用B安装至Java Card,步骤同第一步操作。应用C安装完成后,Brother-List算法控制字节,空间占用情况参见图7、图8。
整个过程,可以清楚的看到随着应用下载、删除、再下载过程,Brother-List算法控制字节,空间占用变化情况。
应用A被删除后,进行应用C的安装,可以看到,由于应用C所需空间略大于应用A,在空间使用时, Brother-List算法会从起始地址开始,检索未被使用的空间,进行地址分配,并且可以清晰的记录,应用C占用了哪些Block,以及Block的哪些域,使得物理非连续的地址变成空间连续地址,最大限度的降低碎片化的空间产生与堆积。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (6)
1.一种Java Card空间管理方法,其特征在于:包括以下具体步骤:
步骤1):Java Card系统依据Brother-List算法对Java Card空间进行计算, 标记可用空间起始地址、结束地址;
步骤2):Java Card系统根据Brother-Block,计算可用空间Block个数, 并构建Brother-list;
步骤3):Java Card系统,由可用空间起始地址,分配若干字节,构建Brother-List算法控制数据结构;
步骤4):通过Brother-List算法,完成初始化计算,并对算法控制数据结构进行数据初始化;
步骤5):Java Card系统完成Brother-List算法构建后,进入正常上电状态, 并中断等待操作指令;
步骤6):Java Card系统接收到操作指令后,通过Brother-List算法,对Java Card空间进行管理,完成相关操作指令。
2.根据权利要求1所述的一种Java Card空间管理方法,其特征在于:所述步骤2):定义Brother Block为2048,1024,512,256,64,32,16,8, 总计3960Bytes,Java Card的空间被划分为多个Brother Block,形成Brother-List。
3.根据权利要求1所述的一种Java Card空间管理方法,其特征在于:所述步骤3):JavaCard空间,从起始地址开始分配若干字节,用于空间管理、控制,Block Number占用两个字节,用于记录Java Card空间,Brother Block个数,Last Block Size占用两个字节用于记录最后一块Block的大小,Right有效;Last Block Size第一个字节的最高位代表LastBlock是否可用,0代表未使用,1代表已使用;从Block1至Block(n-1)为每个Brother Block的控制字节,占用1个字节,0代表未使用,1代表已使用;将Java Card的空间, 划分为多个Block,形成List,完成Brother-List构建。
4.根据权利要求1、2或3所述的一种Java Card空间管理方法,其特征在于:所述操作指令包括应用安装和应用删除。
5.根据权利要求4所述的一种Java Card空间管理方法,其特征在于:所述操作指令为应用安装,其具体步骤为:Brother-List算法会从空间的起始地址开始检索, 当发现某个Block未被分配、或该Block的某些域未被分配, 则会将该Block或该Block的域进行分配,安装完成后, Brother-List算法记录哪些Block、Block的区域被该应用占用, 并更新Brother-List算法控制字节, 完成应用安装。
6.根据权利要求4所述的一种Java Card空间管理方法,其特征在于:所述操作指令为应用删除,其具体步骤为:Brother-List算法直接查找待删除应用所占用的Block以及Block的域,进行空间释放,并更新Brother-List算法控制字节,完成应用删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010279670.7A CN111459683B (zh) | 2020-04-10 | 2020-04-10 | 一种Java Card空间管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010279670.7A CN111459683B (zh) | 2020-04-10 | 2020-04-10 | 一种Java Card空间管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459683A CN111459683A (zh) | 2020-07-28 |
CN111459683B true CN111459683B (zh) | 2023-05-02 |
Family
ID=71684699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010279670.7A Active CN111459683B (zh) | 2020-04-10 | 2020-04-10 | 一种Java Card空间管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459683B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243595A (zh) * | 2011-08-03 | 2011-11-16 | 浙江大学 | 基于MMU架构的Java Card系统组件更新方法 |
CN102521145A (zh) * | 2011-12-23 | 2012-06-27 | 东信和平智能卡股份有限公司 | Java卡系统及其空间分配处理方法 |
CN103778067A (zh) * | 2014-02-11 | 2014-05-07 | 珠海市金邦达保密卡有限公司 | Java卡的对象处理方法、装置和Java卡 |
CN104657281A (zh) * | 2015-03-17 | 2015-05-27 | 东港股份有限公司 | 一种Java卡包数据管理方法 |
CN104778128A (zh) * | 2015-04-22 | 2015-07-15 | 东港股份有限公司 | 一种Java卡空闲块管理方法 |
-
2020
- 2020-04-10 CN CN202010279670.7A patent/CN111459683B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243595A (zh) * | 2011-08-03 | 2011-11-16 | 浙江大学 | 基于MMU架构的Java Card系统组件更新方法 |
CN102521145A (zh) * | 2011-12-23 | 2012-06-27 | 东信和平智能卡股份有限公司 | Java卡系统及其空间分配处理方法 |
CN103778067A (zh) * | 2014-02-11 | 2014-05-07 | 珠海市金邦达保密卡有限公司 | Java卡的对象处理方法、装置和Java卡 |
CN104657281A (zh) * | 2015-03-17 | 2015-05-27 | 东港股份有限公司 | 一种Java卡包数据管理方法 |
CN104778128A (zh) * | 2015-04-22 | 2015-07-15 | 东港股份有限公司 | 一种Java卡空闲块管理方法 |
Non-Patent Citations (2)
Title |
---|
曹计昌 ; 周宇杰 ; .基于高地址约束和按需存储分配的UCard底层调度模块研究.计算机工程与科学.2007,(第06期),121-123+147. * |
鲁川 ; 张立臣 ; .Java智能卡内存调度机制研究与分析.计算机应用与软件.2013,(第09期),290-292. * |
Also Published As
Publication number | Publication date |
---|---|
CN111459683A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831734B2 (en) | Update-insert for key-value storage interface | |
US5819298A (en) | File allocation tables with holes | |
US8504792B2 (en) | Methods and apparatuses to allocate file storage via tree representations of a bitmap | |
US8621174B2 (en) | Relocating data within a file system | |
US5983329A (en) | Caching virtual memory locks | |
US20160261694A1 (en) | Method and Apparatus for Tiered Storage | |
US7543103B2 (en) | Host apparatus | |
US9183129B2 (en) | Method and system for managing large write-once tables in shadow page databases | |
US20090089516A1 (en) | Reclaiming storage on a thin-provisioning storage device | |
US20090307291A1 (en) | Smart card storage system and file management method therein | |
CN104899156A (zh) | 一种面向大规模社交网络的图数据存储及查询方法 | |
CN101488153A (zh) | 嵌入式Linux下大容量闪存文件系统的实现方法 | |
CN100424699C (zh) | 一种属性可扩展的对象文件系统 | |
US20020046216A1 (en) | Information-processing apparatus and information-processing method | |
WO2024099448A1 (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN102184140A (zh) | 一种面向实时数据库的表文件空间分配方法 | |
CN115904255A (zh) | 一种数据请求方法、装置、设备及存储介质 | |
CN113805816B (zh) | 一种磁盘空间管理方法、装置、设备及存储介质 | |
CN111459683B (zh) | 一种Java Card空间管理方法 | |
CN115480692A (zh) | 一种数据压缩方法及装置 | |
US20190196732A1 (en) | FLEXIBLE OVER-PROVISIONING OF STORAGE SPACE WITHIN SOLID-STATE STORAGE DEVICES (SSDs) | |
US11055184B2 (en) | In-place garbage collection of a sharded, replicated distributed state machine based on supersedable operations | |
CN104636079A (zh) | 文件存取方法及其系统 | |
US20160335198A1 (en) | Methods and system for maintaining an indirection system for a mass storage device | |
CN109478181A (zh) | 用于使得能够修改文件系统卷内的多个数据对象的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |