欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

智能卡dtr內(nèi)存空間的控制系統(tǒng)及方法

文檔序號:6525781閱讀:979來源:國知局
智能卡dtr內(nèi)存空間的控制系統(tǒng)及方法
【專利摘要】一種智能卡【技術(shù)領(lǐng)域】的智能卡DTR內(nèi)存空間的控制系統(tǒng)及方法。包括:一個用于分配DTR虛擬地址的DTR地址分配器、一個用于管理從DTR地址映射到物理內(nèi)存地址的映射管理器,以及一個用于在對象進行垃圾回收后對DTR空間進行碎片整理的碎片整理器;該映射管理器在選擇應(yīng)用、去選擇應(yīng)用以及分配新對象時對所述的映射進行動態(tài)調(diào)整。本發(fā)明節(jié)省了物理RAM的消耗且無需預(yù)設(shè)DTR段大小,所有DTR段大小由實際選中的context決定;能夠針對性地有效地解決物理內(nèi)存不足的情況。
【專利說明】智能卡DTR內(nèi)存空間的控制系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及的是一種智能卡【技術(shù)領(lǐng)域】的系統(tǒng)及方法,具體是一種智能卡臨時高速易失性存儲空間,即DTR (CLEAR_ON_DESELECT RAM取消清除內(nèi)存)的控制系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著Java智能卡的不斷普及與發(fā)展,對于一張卡片內(nèi)容納多個Java卡應(yīng)用的需求也愈發(fā)迫切。目前智能卡芯片技術(shù)的發(fā)展能保證有足夠的持久性存儲空間(persist空間,在物理上即flash空間)來保存應(yīng)用的代碼與持久性數(shù)據(jù),然而應(yīng)用在運行時所臨時需要的高速易失性存儲空間(transient空間,在物理上即RAM空間)則成為了多應(yīng)用卡片發(fā)展的一個瓶頸。在Java卡技術(shù)中,transient空間分為兩種,CLEAR_0N_RESET空間(簡稱 RTR 空間,clear on Reset TRansient)和 CLEAR_ON_DESELECT (簡稱 DTR 空間,clearon Deselect TRansient)。前者在每次卡片reset時數(shù)據(jù)清零,后者涉及到一個由JAVA卡規(guī)范所定義的context (應(yīng)用上下文環(huán)境)的概念,對于同一個JAVA卡代碼包(JAVA APIpackage)創(chuàng)建的java卡應(yīng)用,隸屬于同一個context,在不同的context之間有著防火墻保護,當(dāng)一個context在某個邏輯通道上被去選擇,并且未在其他邏輯通道上被選中的情況下,所有屬于該context的DTR空間數(shù)據(jù)需要被清零。對于同一個JAVA卡代碼包創(chuàng)建的JAVA卡應(yīng)用,可以通過使用靜態(tài)變量的方式,共享ram空間,但是對于不同的JAVA卡代碼包創(chuàng)建的JAVA卡應(yīng)用,隸屬于不同的context,由于java卡技術(shù)中的防火墻限制,兼且不同的JAVA卡代碼包一般由不同的JAVA卡應(yīng)用提供方提供,很難進行ram空間的共享。而在JAVA卡應(yīng)用對ram需求很大的情況下,卡片下載多個JAVA卡代碼包,分別創(chuàng)建java卡應(yīng)用時就很可能遇到ram不足的情況。利用DTR空間在其context被去選擇時數(shù)據(jù)清零的特性,以及能被同時選擇的context的數(shù)量有限(不能超過卡片支持的邏輯通道的總數(shù),實際使用中多個context被同時選擇的情況更少),在卡片的實現(xiàn)中,不同的JAVA卡應(yīng)用申請的DTR空間復(fù)用同一片物理RAM空間能有效解決多應(yīng)用卡片的RAM瓶頸問題。
[0003]經(jīng)過對現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),中國專利文獻號CN103309812A,
【公開日】2013.09.18,公開了一種智能卡內(nèi)存空間的分配方法及裝置,該技術(shù)主要包括將內(nèi)存中一段連續(xù)的地址空間指定為RTR和DTR空間,并根據(jù)預(yù)設(shè)的初始邊界值,在所述的連續(xù)的地址空間內(nèi)設(shè)置RTR和DTR空間的初始邊界;當(dāng)所述的RTR空間內(nèi)剩余的存儲容量小于RTR數(shù)據(jù)申請的容量大小時,或者當(dāng)所述的DTR空間內(nèi)剩余的存儲容量小于所述的DTR數(shù)據(jù)申請的容量大小時,通過在所述的連續(xù)的地址空間內(nèi)動態(tài)調(diào)整所述的界線來改變所述的RTR空間或DTR空間的大小。但該現(xiàn)有技術(shù)的缺陷和不足在于:
[0004]1.智能卡支持幾個邏輯通道,就有幾段DTR空間。
[0005]2.需要預(yù)設(shè)DTR段大小,并在運行時根據(jù)需要增加或縮小DTR段的大小。
[0006]3.由于一些技術(shù)限制,所有的DTR段都是等大的,并通過等量增加、等量縮小每段DTR空間來進行DTR空間調(diào)整。消耗的總DTR空間為最大的DTR空間大小乘以邏輯通道數(shù)。
【發(fā)明內(nèi)容】

[0007]本發(fā)明針對現(xiàn)有技術(shù)存在的上述不足,提出一種智能卡DTR內(nèi)存空間的控制系統(tǒng)及方法,將內(nèi)存中一段空間定為DTR空間,對應(yīng)于這段DTR空間,每個context有自己的虛擬地址空間,在實際使用中,通過不同的偏移量,從虛擬地址映射到物理空間地址,并在選擇應(yīng)用,去選擇應(yīng)用,創(chuàng)建對象和碎片整理時動態(tài)調(diào)整映射表。
[0008]本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
[0009]本發(fā)明涉及一種智能卡DTR內(nèi)存空間的控制系統(tǒng),包括:一個用于分配DTR虛擬地址的DTR地址分配器、一個用于管理從DTR地址映射到物理內(nèi)存地址并對物理內(nèi)存地址進行分配管理的映射管理器,以及一個用于在發(fā)生垃圾回收事件后對DTR空間進行碎片整理的碎片整理器。
[0010]所述的映射管理器在選擇應(yīng)用、去選擇應(yīng)用以及分配新對象時對所述的映射進行動態(tài)調(diào)整。
[0011]所述的垃圾回收事件(garbage collect)是指:根據(jù)java卡規(guī)范,應(yīng)用開發(fā)者可以通過API requestObjectDeletion來請求垃圾回收服務(wù),java卡在收到請求后會在適當(dāng)?shù)臅r機進行垃圾回收。
[0012]所述的context使用各自獨立的虛擬地址空間來管理在該context申請的DTR空間,所有虛擬地址空間有同樣的起始地址和大小限制。每個虛擬地址空間都從其起始地址開始從低地址向高地址分配空間,當(dāng)物理RAM空間不足時,則DTR地址分配器返回諸如RAM空間不足異常等的失敗信息。
[0013]所述的DTR地址分配器對每一個context分別記錄其已分配的DTR空間大小,根據(jù)虛擬地址空間起始地址加上已分配DTR空間大小計算得到分配的地址。
[0014]所述的映射管理器將已分配的DTR虛擬地址映射到實際的物理RAM地址,并且記錄當(dāng)前已分配的物理RAM空間大小,在發(fā)生選擇、去選擇事件時或有新的DTR對象被創(chuàng)建時對物理RAM空間進行分配和回收。
[0015]由于只有在任何一個或多個邏輯通道上被選中的context才需要將DTR虛擬地址映射到實際的物理RAM地址;對于在任何一個邏輯通道上都未被選中的context,由于DTR數(shù)據(jù)在被去選擇時會清零,不需要映射到實際的物理RAM地址,因此未被選中的context的DTR對象不占用物理RAM空間,有效的節(jié)省了卡片實際物理RAM空間的開銷。
[0016]所述的選中是指:任何一個屬于該context的應(yīng)用被選中,即該context被選中。
[0017]所述的映射是指:對于被選中的context,通過不同的起始偏移,使不同的context分配的DTR空間映射到不同的物理RAM空間,即映射后物理RAM地址為已分配DTR虛擬地址加上起始偏移計算得到。
[0018]所述的映射管理器對物理RAM空間進行分配和回收,具體包括:
[0019]I)發(fā)生選擇事件時的物理RAM空間的分配是指:當(dāng)一個context在任意一個邏輯通道上被選中時,當(dāng)該context未在其他邏輯通道上被選中,則為該context分配一段物理RAM地址,并在映射管理器中注冊該context,并記錄起始偏移;當(dāng)該context已在其他邏輯通道上被選中,則屬于java卡規(guī)范中定義的多重選擇過程,無需進行物理RAM地址分配操作,該context之前也已經(jīng)在映射管理器中注冊過,并已記錄了映射起始偏移。
[0020]所述的分配優(yōu)選從低地址到高地址分配物理RAM地址,當(dāng)物理RAM空間不足,則映射管理器返回諸如RAM空間不足異常等的失敗信息。
[0021]2)發(fā)生去選擇事件時的物理RAM空間的回收是指:是指:當(dāng)一個context只在一個邏輯通道上被選中,并且正在該邏輯通道上進行去選擇操作時,需要回收為該context分配的物理RAM空間,并在映射管理器中注銷該context,清除為該記錄的起始偏移。
[0022]所述的回收優(yōu)選將位于更高地址側(cè)已分配的物理RAM空間內(nèi)容向更低地址側(cè)移動,并相應(yīng)地修改相關(guān)所有context在映射管理器中記錄的起始偏移,使得物理RAM區(qū)域中的各個context映射區(qū)連續(xù)。
[0023]3)發(fā)生創(chuàng)建新DTR對象時的物理RAM空間的分配是指:當(dāng)一個context有新的DTR對象被創(chuàng)建時,通過DTR地址分配器為該DTR對象分配虛擬地址空間,由于虛擬空間的增大,需要調(diào)整context映射的物理RAM區(qū)域空間大小,為了保證兩個不同的context映射的物理RAM空間不重疊,需要將位于該context更高地址側(cè)已分配的物理RAM區(qū)域有效數(shù)據(jù)進一步向更高地址側(cè)移動,并相應(yīng)地修改相關(guān)所有context在映射管理器中記錄的起始偏移,使得物理RAM區(qū)域中的各個context映射區(qū)連續(xù)。如果物理RAM空間不足,則創(chuàng)建對象失敗,返回諸如RAM空間不足異常等失敗信息。
[0024]所述的映射管理器內(nèi)部設(shè)有一個動態(tài)更新的記錄每一個context在物理RAM中映射區(qū)域的如后順序的映射順序表。
[0025]所述的動態(tài)更新是指:
[0026]I)在選中一個context時,將該context的標識添加到順序表的最后;
[0027]2)在去選擇一個context時,將該context的標識從順序表中刪除,且當(dāng)該context并非位于順序表最后時,將該context之后所有context往前移一個順位。
[0028]所述的碎片整理器,在部分DTR對象被回收后,對DTR空間進行碎片整理。
[0029]本發(fā)明涉及一種智能卡DTR內(nèi)存空間的碎片整理方法,包括以下步驟:
[0030]步驟1、遍歷所有的context,當(dāng)該context存在已被回收的對象時,則執(zhí)行步驟2,否則跳過該context并遍歷下一個context ;當(dāng)所有context都遍歷處理完畢后,執(zhí)行步驟3。
[0031]步驟2、對于存在已被回收對象的context,當(dāng):
[0032]2.1)該context未被選中,則按照每個JAVA卡對象自帶的對象標識的從小到大順序,遍歷所有屬于該context的DTR對象,并從虛擬DTR地址空間起始處,通過DTR地址分配器,以從低地址向高地址的方式重新為各個DTR對象分配虛擬DTR空間,完成之后,返回步驟I并處理下一個context ;
[0033]2.2)該context已被選中,貝U按照從低地址到高地址的順序,遍歷所有屬于該context的DTR對象,并從虛擬DTR地址空間起始處,通過DTR地址分配器,以從低地址向高地址的方式重新為各個DTR對象分配虛擬DTR空間;在每次分配完新的虛擬地址后,將對象原本的舊虛擬地址映射的物理RAM區(qū)域的數(shù)據(jù),移動到新分配虛擬地址映射的物理RAM區(qū)域,完成之后,返回步驟I并處理下一個context。
[0034]步驟3、當(dāng)按照步驟I遍歷并處理完所有context后,按照各個context在物理RAM中從低地址到高地址的順序,再次遍歷所有被選中的context,將每一個context的起始偏移替換為該context的更低地址側(cè),即左側(cè)相鄰的context的起始偏移及其已分配DTR空間大小之和,并相應(yīng)將該context的物理RAM區(qū)域根據(jù)更新后的起始偏移映射至新的物理RAM區(qū)域,從而使得兩個context X和Y之間沒有物理RAM區(qū)域上的“縫隙”;當(dāng)所有被選中的context映射更新完成后,將映射管理器中記錄的已分配物理RAM空間大小更新為當(dāng)前已分配的物理RAM空間大小。至此DTR空間碎片整理完畢。
技術(shù)效果
[0035]與現(xiàn)有技術(shù)相比,本發(fā)明只有被選中的context才會有映射到物理RAM區(qū)的DTR段,由于實際上卡片較少在多個邏輯通道上同時選擇不同的大消耗的context,節(jié)省了物理RAM的消耗;另外,本發(fā)明無需預(yù)設(shè)DTR段大小,所有DTR段大小由實際選中的context決定;此外,每個存在的DTR段大小都可以不相同,消耗的總DTR空間為所有邏輯通道上選中的context的DTR大小之和,節(jié)省了物理RAM的消耗,因此本發(fā)明能夠針對性地有效地解決物理內(nèi)存不足的情況。
【專利附圖】

【附圖說明】
[0036]圖1為本發(fā)明系統(tǒng)結(jié)構(gòu)示意圖
[0037]圖2為本發(fā)明方法中的地址映射示意圖。
[0038]圖3為本發(fā)明方法中的context選擇與去選擇時物理RAM區(qū)域變化示意圖。
[0039]圖4為本發(fā)明方法中的創(chuàng)建對象時物理RAM區(qū)域變化示意圖。
[0040]圖5為本發(fā)明方法中的碎片整理時物理RAM區(qū)域變化示意圖。
【具體實施方式】
[0041]下面對本發(fā)明的實施例作詳細說明,本實施例在以本發(fā)明技術(shù)方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。
實施例1
[0042]如圖1所示,本實施例包括:一個DTR地址分配器,為新創(chuàng)建的DTR對象分配地址。一個管理從DTR地址映射到物理RAM地址的映射管理器,并且會在選擇應(yīng)用,去選擇應(yīng)用時以及分配新對象時地址映射進行動態(tài)調(diào)整。以及一個在對象進行垃圾回收后對DTR空間進行碎片整理的碎片整理器。
[0043]所述的系統(tǒng)通過以下方式實現(xiàn)優(yōu)化控制:
[0044]所述的DTR地址分配器,用于分配DTR虛擬地址。每一個context使用各自獨立的虛擬地址空間來管理在該context申請的DTR空間。分配過程如下:
【權(quán)利要求】
1.一種智能卡DTR內(nèi)存空間的控制系統(tǒng),其特征在于,包括:一個用于分配DTR虛擬地址的DTR地址分配器、一個用于管理從DTR地址映射到物理內(nèi)存地址并對物理內(nèi)存地址進行分配管理的映射管理器,以及一個用于在發(fā)生垃圾回收事件后對DTR空間進行碎片整理的碎片整理器; 所述的映射管理器在選擇應(yīng)用、去選擇應(yīng)用以及分配新對象時對所述的映射進行動態(tài)調(diào)整。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征是,所述的DTR地址分配器對每一個context分別記錄其已分配的DTR空間大小,根據(jù)虛擬地址空間起始地址加上已分配DTR空間大小計算得到分配的地址。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征是,所述的映射管理器將已分配的DTR虛擬地址映射到實際的物理RAM地址,并且記錄當(dāng)前已分配的物理RAM空間大小,在發(fā)生選擇、去選擇事件時或有新的DTR對象被創(chuàng)建時對物理RAM空間進行分配和回收。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征是,所述的對物理RAM空間進行分配和回收,具體包括: 1)發(fā)生選擇事件時的物理RAM空間的分配是指:當(dāng)一個context在任意一個邏輯通道上被選中時,當(dāng)該context未在其他邏輯通道上被選中,貝U為該context分配一段物理RAM地址,并在映射管理器中注冊該context,并記錄起始偏移;當(dāng)該context已在其他邏輯通道上被選中,則屬于java卡規(guī)范中定義的多重選擇過程,無需進行物理RAM地址分配操作,該context之前也已經(jīng)在映射管理器中注冊過,并已記錄了映射起始偏移; 2)發(fā)生去選擇事件時的物理RAM空間的回收是指:是指:當(dāng)一個context只在一個邏輯通道上被選中,并且正在該邏輯通道上進行去選擇操作時,需要回收為該context分配的物理RAM空間,并在映射管理器中注銷該context,清除為該記錄的起始偏移; 3)發(fā)生創(chuàng)建新DTR對象時的物理RAM空間的分配是指:當(dāng)一個context有新的DTR對象被創(chuàng)建時,通過DTR地址分配器為該DTR對象分配虛擬地址空間,將位于該context更高地址側(cè)已分配的物理RAM區(qū)域有效數(shù)據(jù)進一步向更高地址側(cè)移動,并相應(yīng)地修改相關(guān)所有context在映射管理器中記錄的起始偏移,當(dāng)物理RAM空間不足,則創(chuàng)建對象失敗,返回失敗信息。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征是,所述的分配從低地址到高地址分配物理RAM地址,當(dāng)物理RAM空間不足,則映射管理器返回失敗信息; 所述的回收將位于更高地址側(cè)已分配的物理RAM空間內(nèi)容向更低地址側(cè)移動,并相應(yīng)地修改相關(guān)所有context在映射管理器中記錄的起始偏移,使得物理RAM區(qū)域中的各個context映射區(qū)連續(xù)。
6.根據(jù)權(quán)利要求3或4或5所述的系統(tǒng),其特征是,所述的映射管理器內(nèi)部設(shè)有一個動態(tài)更新的記錄每一個context在物理RAM中映射區(qū)域的前后順序的映射順序表。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征是,所述的動態(tài)更新是指: 1)在選中一個context時,將該context記錄在順序表的最后; 2)在去選擇一個context時,將該context從順序表中刪除,且當(dāng)該context并非位于順序表最后時,將該context之后所有context往前移一個順位。
8.一種智能卡DTR內(nèi)存空間的碎片整理方法,其特征在于,包括以下步驟:步驟1、遍歷所有的context,當(dāng)該context存在已被回收的對象時,則執(zhí)行步驟2,否則跳過該context并遍歷下一個context ;當(dāng)所有context都遍歷處理完畢后,執(zhí)行步驟3 ;步驟2、對于存在已被回收對象的context,當(dāng): .2.1)該context未被選中,則按照每個JAVA卡對象自帶的對象標識的從小到大順序,遍歷所有屬于該context的DTR對象,并從虛擬DTR地址空間起始處,通過DTR地址分配器,以從低地址向高地址的方式重新為各個DTR對象分配虛擬DTR空間,并完成對該context的處理; .2.2)該context已被選中,貝U按照從低地址到高地址的順序,遍歷所有屬于該context的DTR對象,并從虛擬DTR地址空間起始處,通過DTR地址分配器,以從低地址向高地址的方式重新為各個DTR對象分配虛擬DTR空間;在每次分配完新的虛擬地址后,將對象原本的舊虛擬地址映射的物理RAM區(qū)域的數(shù)據(jù),移動到新分配虛擬地址映射的物理RAM區(qū)域,完成之后,返回步驟I并處理下一個context ; 步驟3、當(dāng)按照步驟I遍歷并處理完所有context后,按照各個context在物理RAM中從低地址到高地址的順序,再次遍歷所有被選中的context,將每一個context的起始偏移替換為該context的更低地址側(cè),即左側(cè)相鄰的context的起始偏移及其已分配DTR空間大小之和,并相應(yīng)將該context的物理RAM區(qū)域根據(jù)更新后的起始偏移映射至新的物理RAM區(qū)域;當(dāng)所有被選中的context映射更新完成后,將映射管理器中記錄的已分配物理RAM空間大小更新為當(dāng)前已 分配的物理RAM空間大小并完成DTR空間碎片整理。
【文檔編號】G06F12/02GK103699493SQ201310731151
【公開日】2014年4月2日 申請日期:2013年12月26日 優(yōu)先權(quán)日:2013年12月26日
【發(fā)明者】王啟勇, 廖鵬, 陳恒生 申請人:上??滤管浖邢薰?br>
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
马尔康县| 天气| 紫云| 自贡市| 常德市| 昌都县| 阿瓦提县| 正镶白旗| 张掖市| 永州市| 溧阳市| 旺苍县| 怀化市| 松阳县| 丹棱县| 晋中市| 永吉县| 洮南市| 凌海市| 永清县| 白朗县| 祁阳县| 勃利县| 临城县| 称多县| 岑溪市| 呼和浩特市| 鄂托克前旗| 东方市| 嘉禾县| 吴堡县| 闸北区| 水富县| 滦南县| 棋牌| 永靖县| 蓬安县| 垣曲县| 岑巩县| 静安区| 滕州市|