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

一種智能卡內(nèi)存管理方法

文檔序號(hào):6611053閱讀:225來(lái)源:國(guó)知局
專利名稱:一種智能卡內(nèi)存管理方法
技術(shù)領(lǐng)域
本發(fā)明涉及智能卡,具體涉及一種大容量智能卡的內(nèi)存管理方法。
背景技術(shù)
智能卡中的軟件部分包括卡片操作系統(tǒng)Card Operating System (簡(jiǎn)稱 COS)以及各類應(yīng)用程序等。片上操作系統(tǒng)是智能卡的控制和管理中心,負(fù) 責(zé)管理系統(tǒng)資源,其中內(nèi)存也是系統(tǒng)資源的一部分。
傳統(tǒng)的智能卡的卡片操作系統(tǒng)基本上只提供給用戶一些GSM標(biāo)準(zhǔn)指令 集,卡中的各類應(yīng)用程序大部分只是這些指令的簡(jiǎn)單組合,只實(shí)現(xiàn)智能卡的 基礎(chǔ)功能,應(yīng)用比較單一,操作和管理比較簡(jiǎn)單。片上操作系統(tǒng)需要管理的 資源也比較少,系統(tǒng)中的內(nèi)存非常有限,所以基本上對(duì)于內(nèi)存的管理是很簡(jiǎn) 單的。 一般的,智能卡芯片上有兩塊內(nèi)存, 一塊是內(nèi)部隨機(jī)存儲(chǔ)器Internal Random—Access Memory,大小一般為128至256個(gè)字節(jié),主要用作堆棧區(qū) 域,并存放操作系統(tǒng)、流程控制及特殊應(yīng)用部分的全局變量;另一塊是外部 隨機(jī)存儲(chǔ)器External Random—Access Memory,大小一般為lk到4k,在智能卡 操作系統(tǒng)中會(huì)將外部隨機(jī)存儲(chǔ)器靜態(tài)地劃分為幾個(gè)部分,APDU指令的接收 發(fā)送數(shù)據(jù)緩沖區(qū)占用一部分,STK應(yīng)用數(shù)據(jù)處理緩沖區(qū)占用一部分,各類應(yīng) 用程序自定義的全局變量各自占用一部分。每個(gè)應(yīng)用根據(jù)各自的需求單獨(dú)占 用一塊內(nèi)存,不涉及內(nèi)存的申請(qǐng)和釋放、內(nèi)存的分配和回收,利用這樣簡(jiǎn)單 的靜態(tài)內(nèi)存管理,可以避免各個(gè)應(yīng)用在運(yùn)行中發(fā)生內(nèi)存覆蓋。但也存在著一 些問題系統(tǒng)通過(guò)靜態(tài)的方式來(lái)分配內(nèi)存,每個(gè)應(yīng)用獨(dú)占一塊內(nèi)存區(qū)域,會(huì) 導(dǎo)致即使某一個(gè)應(yīng)用當(dāng)前沒有運(yùn)行,靜態(tài)分配給該應(yīng)用的內(nèi)存資源也無(wú)法被 當(dāng)前正在運(yùn)行的其他應(yīng)用使用,從而使得內(nèi)存無(wú)法得到充分的利用,有限的 內(nèi)存資源會(huì)變得更加緊張。以往的智能卡內(nèi)存非常小,管理方式簡(jiǎn)單,不涉 及到內(nèi)存的申請(qǐng)和釋放,內(nèi)存的分配和回收,每個(gè)應(yīng)用占用一塊內(nèi)存,不涉 及到應(yīng)用運(yùn)行中將其他應(yīng)用的內(nèi)存覆蓋的問題,但這樣內(nèi)存是靜態(tài)分配給應(yīng)
用的,內(nèi)存的利用率很低。對(duì)于內(nèi)存非常小的系統(tǒng),這樣的管理方式是可以 接受的。但是隨著通信技術(shù)的不斷發(fā)展和市場(chǎng)需求的增加,智能卡上實(shí)現(xiàn)的 應(yīng)用越來(lái)越復(fù)雜,集成的應(yīng)用也越來(lái)越多,系統(tǒng)中的內(nèi)存也隨之不斷增大。 這樣就對(duì)智能卡中的內(nèi)存管理提出了更高的要求,簡(jiǎn)單的靜態(tài)內(nèi)存劃分已經(jīng) 不能滿足日益復(fù)雜的多應(yīng)用的要求了 ,具有大容量?jī)?nèi)存的復(fù)雜系統(tǒng)需要一個(gè) 有效的針對(duì)智能卡應(yīng)用特點(diǎn)的內(nèi)存管理方法來(lái)提高內(nèi)存的使用效率。

發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問題是提供一種智能卡內(nèi)存管理方法,能夠有效 地管理智能卡上的內(nèi)存,提高內(nèi)存的使用效率,滿足大容量智能卡和復(fù)雜應(yīng) 用的需要。
本發(fā)明的上述技術(shù)問題這樣解決,提供一種智能卡內(nèi)存管理方法,動(dòng)態(tài) 使用內(nèi)存并區(qū)分通用程序、獨(dú)占程序和非獨(dú)占程序,包括
(-)用的內(nèi)存管理方法
對(duì)于通用程序,退出時(shí)可申請(qǐng)釋放其申請(qǐng)的內(nèi)存; (二)特殊的內(nèi)存管理方法
對(duì)于獨(dú)占程序,其申請(qǐng)的內(nèi)存不釋放、分配給該獨(dú)占程序一直使用;
對(duì)于非獨(dú)占程序,其申請(qǐng)的內(nèi)存僅在有其他非獨(dú)占程序申請(qǐng)內(nèi)存時(shí)進(jìn)行 釋放。
按照本發(fā)明提供的管理方法,該管理方法還包括通用程序申請(qǐng)內(nèi)存并在 該通用程序退出前可申請(qǐng)釋放該申請(qǐng)內(nèi)存。
按照本發(fā)明提供的管理方法,該管理方法還包括獨(dú)占程序申請(qǐng)內(nèi)存時(shí)記 錄其獨(dú)占程序標(biāo)志和應(yīng)用程序ID及進(jìn)程信息并在其本身或其他獨(dú)占程序再次 申請(qǐng)時(shí)對(duì)應(yīng)應(yīng)用程序ID及進(jìn)程信息與所述記錄一致的情況下直接使用該申請(qǐng) 內(nèi)存。
按照本發(fā)明提供的管理方法,該管理方法還包括非獨(dú)占程序申請(qǐng)內(nèi)存時(shí) 記錄其非獨(dú)占程序標(biāo)志和應(yīng)用程序ID及進(jìn)程信息并在其他非獨(dú)占程序再次申 請(qǐng)時(shí)對(duì)應(yīng)應(yīng)用程序ID與所述記錄不一致且進(jìn)程信息一致的情況下釋放該申請(qǐng) 內(nèi)存。按照本發(fā)明提供的管理方法,該管理方法還包括非獨(dú)占程序申請(qǐng)內(nèi)存時(shí) 記錄其非獨(dú)占程序標(biāo)志和應(yīng)用程序ID及進(jìn)程信息。
按照本發(fā)明提供的管理方法,所述記錄包括分配具體內(nèi)存的起始地址數(shù) 據(jù)項(xiàng)、大小數(shù)據(jù)項(xiàng)、附加信息數(shù)據(jù)項(xiàng)和進(jìn)程信息數(shù)據(jù)項(xiàng);所述附加信息數(shù)據(jù)
項(xiàng)包括獨(dú)占/非獨(dú)占程序標(biāo)志子項(xiàng)和應(yīng)用程序ID子項(xiàng),記錄申請(qǐng)內(nèi)存的獨(dú)占/
非獨(dú)占程序的應(yīng)用程序ID及其獨(dú)占/非獨(dú)占程序標(biāo)志;所述進(jìn)程信息數(shù)據(jù)項(xiàng) 記錄申請(qǐng)內(nèi)存的獨(dú)占/非獨(dú)占程序進(jìn)程信息。
按照本發(fā)明提供的管理方法,所述申請(qǐng)內(nèi)存包括以下步驟
7.1) 根據(jù)申請(qǐng)內(nèi)存的大小從現(xiàn)有記錄標(biāo)示的已分配內(nèi)存之外尋找合適的 連續(xù)空閑空間;
7.2) 分配該連續(xù)空閑空間并增加記錄,記錄其起始地址和大小,同時(shí)根據(jù) 申請(qǐng)內(nèi)存的是獨(dú)占/非獨(dú)占程序記錄附加信息和進(jìn)程信息;所述附加信息包括 獨(dú)占/非獨(dú)占程序標(biāo)志和應(yīng)用程序ID。。
按照本發(fā)明提供的管理方法,所述尋找是從大小大于所述申請(qǐng)內(nèi)存的連 續(xù)空閑空間集合中查找其中最小的連續(xù)空閑空間。
按照本發(fā)明提供的管理方法,所述空閑空間包括被釋放的已分配空間和 從未分配空間。
按照本發(fā)明提供的管理方法,所述釋放包括刪除對(duì)應(yīng)記錄。
按照本發(fā)明提供的管理方法,所述內(nèi)存,即智能卡可用內(nèi)存,包括內(nèi) 存控制塊區(qū)域和應(yīng)用程序堆區(qū)域,所述記錄存儲(chǔ)在所述內(nèi)存控制塊區(qū)域中, 所述申請(qǐng)內(nèi)存位于所述應(yīng)用程序堆區(qū)域。
本發(fā)明提供的一種智能卡內(nèi)存管理方法,針對(duì)通用程序、獨(dú)占程序和非 獨(dú)占程序采取不同的管理策略,該智能卡應(yīng)用的內(nèi)存管理模塊,能夠提高大 容量智能卡內(nèi)存的使用效率,同時(shí)解決智能卡各種實(shí)際應(yīng)用中的內(nèi)存回收的 問題。


下面結(jié)合附圖和具體實(shí)施例進(jìn)一步對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。圖1為本發(fā)明智能卡可用內(nèi)存中內(nèi)存控制塊區(qū)域和應(yīng)用程序堆區(qū)域的結(jié) 構(gòu)示意圖2為本發(fā)明通用內(nèi)存申請(qǐng)的流程示意圖; 圖3為本發(fā)明通用內(nèi)存釋放的流程示意圖; 圖4為本發(fā)明特殊內(nèi)存管理的流程示意圖。
具體實(shí)施例方式
首先,說(shuō)明本發(fā)明基礎(chǔ)
①在智能卡應(yīng)用的過(guò)程中,智能卡與移動(dòng)終端是通過(guò)命令進(jìn)行交互的, 傳統(tǒng)的內(nèi)存使用方法是在入口的時(shí)候動(dòng)態(tài)申請(qǐng)內(nèi)存,在出口的時(shí)候釋放入口 時(shí)申請(qǐng)的內(nèi)存。而智能卡應(yīng)用中內(nèi)存使用的特點(diǎn)是入口和出口不是唯一的, 智能卡是通過(guò)一個(gè)入口進(jìn)入一個(gè)應(yīng)用中的,但退出該應(yīng)用可以有多個(gè)出口 , 所以如果卡的應(yīng)用程序在入口處申請(qǐng)了一塊內(nèi)存,但由于出口是不確定的, 而且一些出口可能是幾個(gè)入口的共同的出口 ,那么就無(wú)法在出口處將內(nèi)存釋 放,這樣就有可能造成內(nèi)存的泄漏,需要采用特殊內(nèi)存管理方法。②同時(shí),
卡的特殊應(yīng)用是由一些功能函數(shù)和STK指令組成,功能函數(shù)是實(shí)現(xiàn)應(yīng)用的具
體操作的函數(shù),在功能函數(shù)內(nèi)部程序是順序執(zhí)行的,所以在功能函數(shù)內(nèi)部可 以進(jìn)行通用的內(nèi)存申請(qǐng)和釋放,可以采用通用內(nèi)存管理方法。
其次,說(shuō)明本發(fā)明內(nèi)存管理方法
一、將智能卡上的可用內(nèi)存分為兩個(gè)區(qū)域, 一個(gè)是內(nèi)存控制塊區(qū)域,一 個(gè)是應(yīng)用程序堆區(qū)域,內(nèi)存控制塊區(qū)域記錄了應(yīng)用程序堆的使用情況。內(nèi)存 控制塊區(qū)域中保存了若干個(gè)內(nèi)存控制塊,每一個(gè)內(nèi)存控制塊用來(lái)保存一個(gè)已 分配內(nèi)存塊的信息,應(yīng)用程序堆區(qū)域是真正分配給應(yīng)用程序的內(nèi)存塊的集合。 本發(fā)明包括兩個(gè)方法, 一個(gè)方法是通用的內(nèi)存管理方法,由于在智能卡應(yīng)用 的某些功能實(shí)現(xiàn)中,程序是順序執(zhí)行的,不存在內(nèi)存申請(qǐng)后無(wú)法釋放的問題, 使用通用內(nèi)存管理的方法,首先申請(qǐng)內(nèi)存,使用后釋放內(nèi)存,另一個(gè)方法是 特殊內(nèi)存管理方法,當(dāng)程序申請(qǐng)內(nèi)存后無(wú)法確定何時(shí)釋放內(nèi)存時(shí),采用特殊內(nèi) 存管理方法。通用的內(nèi)存管理方法中內(nèi)存的生存周期是由用戶來(lái)決定的,特 殊的內(nèi)存管理方法中內(nèi)存的生存周期是由系統(tǒng)和用戶共同決定的。二、 定義內(nèi)存控制塊記錄的結(jié)構(gòu),如圖1所示,包括-
1、 已分配內(nèi)存塊的起始地址(簡(jiǎn)稱:內(nèi)存塊起始地址)
2、 已分配內(nèi)存塊的大小(簡(jiǎn)稱內(nèi)存塊大小)
3 、應(yīng)用程序的附加信息(簡(jiǎn)稱附加信息)共16位,特殊內(nèi)存管理
方法的信息位,最高位標(biāo)識(shí)是獨(dú)占類型還是非獨(dú)占類型的,低15位標(biāo)識(shí)特殊 應(yīng)用程序的ID號(hào)。
4 、應(yīng)用程序的進(jìn)程信息(簡(jiǎn)稱進(jìn)程信息)特殊內(nèi)存管理方法的信 息位,對(duì)于獨(dú)占/非獨(dú)占程序申請(qǐng)時(shí)記錄其進(jìn)程信息;
三、 內(nèi)存管理匹配策略
內(nèi)存管理采用最佳匹配策略。最佳匹配策略是指查找應(yīng)用程序堆區(qū)域中 容量大于或等于應(yīng)用程序要申請(qǐng)內(nèi)存大小的最小空閑內(nèi)存塊。
四、 通用內(nèi)存管理方法中內(nèi)存申請(qǐng)和釋放的原理 (-)內(nèi)存的申請(qǐng)
如圖2所示,包括以下步驟
201) 判斷內(nèi)存控制塊區(qū)域和應(yīng)用程序堆區(qū)域的起始地址是否有效。如果 無(wú)效,內(nèi)存申請(qǐng)失??;
202) 判斷申請(qǐng)內(nèi)存的大小是否為O,是否大于應(yīng)用程序堆區(qū)域的總大小, 如果是,內(nèi)存申請(qǐng)失?。?br> 203) 判斷內(nèi)存控制塊區(qū)域是否沒有存放內(nèi)存控制塊記錄的空間,如果是, 內(nèi)存申請(qǐng)失敗。
204) 判斷要申請(qǐng)的內(nèi)存大小是否小于最小分配單位,如果小于,令要申 請(qǐng)的內(nèi)存大小等于最小分配單位,如果大于,令其值為最小分配單位的最小 倍數(shù)的值。
205) 遍歷內(nèi)存控制塊區(qū),通過(guò)所有記錄中的內(nèi)存塊起始地址和內(nèi)存塊大 小在應(yīng)用程序堆區(qū)域?qū)ふ铱臻e內(nèi)存塊(包括以前用過(guò)但釋放的內(nèi)存和從未分 配的內(nèi)存)。
206) 遍歷所有空閑內(nèi)存塊從中找到大于所述申請(qǐng)內(nèi)存的連續(xù)空閑空間集 合中最小的分配給應(yīng)用程序(如果沒有大于所述申請(qǐng)內(nèi)存的連續(xù)空閑空間則內(nèi)存申請(qǐng)失敗),如果在應(yīng)用程序堆區(qū)域中找到的該內(nèi)存塊大于最小分配單 位和申請(qǐng)的內(nèi)存大小之和,將這個(gè)找到的空閑內(nèi)存分為兩部分, 一部分分配 給應(yīng)用程序,剩余部分仍作為空閑內(nèi)存塊,如果是等于,那么就將這個(gè)找到 的空閑內(nèi)存塊分配給應(yīng)用程序。將分配給應(yīng)用程序的內(nèi)存塊的起始地址、內(nèi) 存塊的大小分別賦值給一個(gè)內(nèi)存控制塊記錄的內(nèi)存塊起始地址、內(nèi)存塊大小 數(shù)據(jù)項(xiàng)。
207)將上述內(nèi)存控制塊記錄添加到內(nèi)存控制塊區(qū)域中。
(二)內(nèi)存的釋放
如圖3所示,包括以下步驟
301) 判斷內(nèi)存控制塊區(qū)域和應(yīng)用程序堆區(qū)域的首地址是否有效,如果無(wú)
效,內(nèi)存釋放失敗。
302) 根據(jù)要求釋放的內(nèi)存塊的起始地址,遍歷內(nèi)存控制塊區(qū)域,查找內(nèi) 存控制塊中內(nèi)存塊起始地址等于要求釋放的內(nèi)存塊的起始地址的內(nèi)存塊;
303) 如果找到了,就將該內(nèi)存控制塊記錄刪掉,將后面的內(nèi)存控制塊記 錄都前移一個(gè)單位,應(yīng)用程序堆區(qū)域的對(duì)應(yīng)內(nèi)存塊成為空閑內(nèi)存塊,完成內(nèi) 存釋放。
304) 如果沒有找到,內(nèi)存釋放失敗。 五、特殊的內(nèi)存管理方法
特殊應(yīng)用申請(qǐng)的內(nèi)存可以分為獨(dú)占類型和非獨(dú)占類型的,在申請(qǐng)和釋放 內(nèi)存的操作上是不同的,申請(qǐng)獨(dú)占類型內(nèi)存的應(yīng)用程序如果申請(qǐng)了內(nèi)存就不 會(huì)再釋放這塊內(nèi)存了,申請(qǐng)非獨(dú)占類型內(nèi)存的應(yīng)用程序如果申請(qǐng)了內(nèi)存,不 會(huì)主動(dòng)釋放,但是如果有別的特殊應(yīng)用程序申請(qǐng)非獨(dú)占類型的內(nèi)存時(shí),就會(huì) 釋放原來(lái)的非獨(dú)占類型的內(nèi)存。特殊的內(nèi)存管理方法是通過(guò)這樣的方式來(lái)解 決特殊應(yīng)用只申請(qǐng)不釋放內(nèi)存的問題的。
如圖4所示,特殊內(nèi)存管理方法包括以下步驟
401) 判斷內(nèi)存控制塊區(qū)域和應(yīng)用程序堆區(qū)域的首地址是否有效,如果無(wú) 效,內(nèi)存申請(qǐng)失??;
402) 判斷申請(qǐng)內(nèi)存的大小是否為0,是否大于應(yīng)用程序堆區(qū)域的總大小,
如果是,內(nèi)存申請(qǐng)失敗;
403) 判斷要申請(qǐng)的內(nèi)存大小是否小于最小分配單位,如果小于,令要申 請(qǐng)的內(nèi)存大小等于最小分配單位,如果大于,令其值為最小分配單位的最小 倍數(shù)的值。
404) 查找當(dāng)前程序進(jìn)程中是否有其它應(yīng)用ID號(hào)的非獨(dú)占類型的內(nèi)存, 如果有,將其釋放,也即將這些內(nèi)存控制塊記錄刪掉,將后面的內(nèi)存控制塊
記錄前移。
405) 判斷內(nèi)存控制塊區(qū)域是否沒有存放內(nèi)存控制塊記錄的空間,如果是, 內(nèi)存申請(qǐng)失敗。
406) 判斷申請(qǐng)內(nèi)存的特殊應(yīng)用程序是否是獨(dú)占類型的,如果是獨(dú)占類型 的,根據(jù)該應(yīng)用的ID號(hào)及進(jìn)程信息查找是否該應(yīng)用程序曾申請(qǐng)過(guò)對(duì)應(yīng)的獨(dú)占 內(nèi)存,如果該應(yīng)用程序申請(qǐng)過(guò),那么將找到的內(nèi)存塊分配給該特殊應(yīng)用程序, 內(nèi)存申請(qǐng)結(jié)束。
407) 如果申請(qǐng)內(nèi)存的特殊應(yīng)用程序是獨(dú)占類型的,并且該應(yīng)用程序沒有 申請(qǐng)過(guò)上述對(duì)應(yīng)的獨(dú)占內(nèi)存,或者申請(qǐng)內(nèi)存的特殊應(yīng)用程序是非獨(dú)占類型的, 則遍歷內(nèi)存控制塊區(qū)域,通過(guò)所有記錄中的內(nèi)存塊的起始地址和內(nèi)存塊大小 在應(yīng)用程序堆區(qū)域?qū)ふ铱臻e內(nèi)存塊(包括以前用過(guò)但釋放的內(nèi)存和從未分配 的內(nèi)存)。
408) 遍歷所有空閑內(nèi)存塊從中找到大于所述申請(qǐng)內(nèi)存的連續(xù)空閑空間集 合中最小的分配給應(yīng)用程序(如果沒有大于所述申請(qǐng)內(nèi)存的連續(xù)空閑空間則 內(nèi)存申請(qǐng)失敗),如果在應(yīng)用程序堆區(qū)域中找到的該內(nèi)存塊大于最小分配單 位和申請(qǐng)的內(nèi)存大小之和,將這個(gè)找到的空閑內(nèi)存分為兩部分, 一部分分配 給應(yīng)用程序,剩余部分仍作為空閑內(nèi)存塊,如果是等于,那么就將這個(gè)找到 的空閑內(nèi)存塊分配給應(yīng)用程序。將分配給應(yīng)用程序的內(nèi)存塊的起始地址、內(nèi) 存塊的大小賦值給一個(gè)內(nèi)存控制塊記錄的內(nèi)存塊起始地址和內(nèi)存塊大小數(shù)據(jù) 項(xiàng),并將該特殊應(yīng)用程序的附加信息和進(jìn)程信息賦值給內(nèi)存控制塊記錄的附 加信息數(shù)據(jù)項(xiàng)和進(jìn)程信息數(shù)據(jù)項(xiàng)。
409) 將上述內(nèi)存控制塊記錄添加到內(nèi)存控制塊區(qū)域中。 最后,結(jié)合具體應(yīng)用對(duì)本發(fā)明方法進(jìn)一步詳細(xì)說(shuō)明
以移動(dòng)終端的短信群發(fā)為例,用戶進(jìn)行操作流程如下
1、 用戶進(jìn)入短信群發(fā)時(shí),通過(guò)SIM卡主動(dòng)式命令進(jìn)入短信群發(fā)的應(yīng)用入□。
2、 用戶進(jìn)入新編短信一>輸入內(nèi)容一>選擇號(hào)碼,在用戶選擇某一個(gè)號(hào)碼 后,程序會(huì)通過(guò)特殊內(nèi)存申請(qǐng)方式申請(qǐng)一個(gè)內(nèi)存塊來(lái)保存已選擇號(hào)碼的信息
(該號(hào)碼的來(lái)源信息及所屬文件的記錄號(hào)),按照?qǐng)D4的流程分配一個(gè)內(nèi)存 塊給特殊應(yīng)用程序,本應(yīng)用申請(qǐng)的是非獨(dú)占類型的內(nèi)存。首先釋放當(dāng)前程序 進(jìn)程中的所有其它ID號(hào)的非獨(dú)占類型內(nèi)存,然后判斷是否要申請(qǐng)獨(dú)占類型的 內(nèi)存,如果是獨(dú)占類型的內(nèi)存,則遍歷內(nèi)存控制塊區(qū)域,查找是否存在已申 請(qǐng)的特殊內(nèi)存塊(附加信息和進(jìn)程信息一致),如果存在則將該內(nèi)存塊分配 給該特殊應(yīng)用程序,否則將從空閑的應(yīng)用程序堆區(qū)域?yàn)閼?yīng)用新分配一塊內(nèi)存; 如果是非獨(dú)占類型的,將從空閑的應(yīng)用程序堆區(qū)域?yàn)閼?yīng)用新分配一塊內(nèi)存。 如果分配了內(nèi)存,則將分配的內(nèi)存塊的起始地址、內(nèi)存塊的大小和特殊應(yīng)用 程序的附加信息和進(jìn)程信息賦值給內(nèi)存控制塊記錄。
3、 用戶選擇一個(gè)號(hào)碼,確定后,卡將該組員的信息存放在上面申請(qǐng)的內(nèi) 存中,繼續(xù)選擇號(hào)碼,直到用戶選擇完需要發(fā)送的號(hào)碼,這樣卡已經(jīng)將所有 組員的信息存儲(chǔ)到內(nèi)存中了。
4、 用戶選擇發(fā)送短信,卡將給內(nèi)存中存儲(chǔ)的所有號(hào)碼發(fā)送短信,操作完成。
5、 用戶退出該應(yīng)用,進(jìn)入其他應(yīng)用,如果再執(zhí)行申請(qǐng)?zhí)厥鈶?yīng)用內(nèi)存的操 作,如果短信群發(fā)應(yīng)用是非獨(dú)占類型,卡的內(nèi)存管理會(huì)將短信群發(fā)應(yīng)用申請(qǐng) 的內(nèi)存釋放。
這樣,對(duì)于非獨(dú)占類型的特殊應(yīng)用,就可以實(shí)現(xiàn)應(yīng)用程序不必每次申請(qǐng) 操作都需要釋放內(nèi)存,應(yīng)用程序只需申請(qǐng)一次,當(dāng)系統(tǒng)退出當(dāng)前應(yīng)用后,進(jìn) 入下一個(gè)應(yīng)用時(shí),系統(tǒng)會(huì)自動(dòng)釋放前一個(gè)應(yīng)用申請(qǐng)的內(nèi)存。如果中間有退出 短信群發(fā)應(yīng)用的操作,內(nèi)存也不會(huì)出現(xiàn)只申請(qǐng)不釋放的情況。
權(quán)利要求
1、一種智能卡內(nèi)存管理方法,其特征在于,動(dòng)態(tài)使用內(nèi)存并區(qū)分通用程序、獨(dú)占程序和非獨(dú)占程序,包括以下步驟對(duì)于通用程序,退出時(shí)可申請(qǐng)釋放其申請(qǐng)的內(nèi)存;對(duì)于獨(dú)占程序,其申請(qǐng)的內(nèi)存不釋放、分配給該獨(dú)占程序一直使用;對(duì)于非獨(dú)占程序,其申請(qǐng)的內(nèi)存僅在有其他非獨(dú)占程序申請(qǐng)內(nèi)存時(shí)進(jìn)行釋放。
2、 根據(jù)權(quán)利要求1所述管理方法,其特征在于,該管理方法還包括通 用程序申請(qǐng)內(nèi)存并在該通用程序退出前可申請(qǐng)釋放該申請(qǐng)內(nèi)存。
3、 根據(jù)權(quán)利要求1所述管理方法,其特征在于,該管理方法還包括獨(dú) 占程序申請(qǐng)內(nèi)存時(shí)記錄其獨(dú)占程序標(biāo)志和應(yīng)用程序ID及進(jìn)程信息并在其本 身或其他獨(dú)占程序再次申請(qǐng)時(shí)對(duì)應(yīng)應(yīng)用程序ID及進(jìn)程信息與所述記錄一致 的情況下直接使用該申請(qǐng)內(nèi)存。
4、 根據(jù)權(quán)利要求1所述管理方法,其特征在于,該管理方法還包括非 獨(dú)占程序申請(qǐng)內(nèi)存時(shí)記錄其非獨(dú)占程序標(biāo)志和應(yīng)用程序ID及進(jìn)程信息,并在 其他非獨(dú)占程序再次申請(qǐng)時(shí)對(duì)應(yīng)應(yīng)用程序ID與所述記錄不一致且進(jìn)程信息 一致的情況下釋放該申請(qǐng)內(nèi)存。
5、 根據(jù)權(quán)利要求2-4任一項(xiàng)所述管理方法,其特征在于,所述記錄包 括分配具體內(nèi)存的起始地址數(shù)據(jù)項(xiàng)、大小數(shù)據(jù)項(xiàng)、附加信息數(shù)據(jù)項(xiàng)和進(jìn)程信 息數(shù)據(jù)項(xiàng);所述附加信息數(shù)據(jù)項(xiàng)包括獨(dú)占/非獨(dú)占程序標(biāo)志子項(xiàng)和應(yīng)用程序ID 子項(xiàng)。
6、 根據(jù)權(quán)利要求2-4任一項(xiàng)所述管理方法,其特征在于,所述申請(qǐng)內(nèi) 存包括以下步驟7.1) 根據(jù)申請(qǐng)內(nèi)存的大小從現(xiàn)有記錄標(biāo)示的已分配內(nèi)存之外尋找合適 的連續(xù)空閑空間;7.2) 分配該連續(xù)空閑空間并增加記錄,記錄其起始地址和大小,同時(shí)根 據(jù)申請(qǐng)內(nèi)存的是獨(dú)占/非獨(dú)占程序記錄附加信息及進(jìn)程信息;所述附加信息包括獨(dú)占/非獨(dú)占程序標(biāo)志和應(yīng)用程序ID。
7、 根據(jù)權(quán)利要求6所述管理方法,其特征在于,所述尋找是從大小大于所述申請(qǐng)內(nèi)存的連續(xù)空閑空間集合中的查找其中最小的連續(xù)空閑空間。
8、 根據(jù)權(quán)利要求6所述管理方法,其特征在于,所述空閑空間包括被 釋放的己分配空間和從未分配空間。
9、 根據(jù)權(quán)利要求2或4所述管理方法,其特征在于,所述釋放包括刪 除對(duì)應(yīng)記錄。
10、 根據(jù)權(quán)利要求l-4任一項(xiàng)所述管理方法,其特征在于,所述內(nèi)存包 括內(nèi)存控制塊區(qū)域和應(yīng)用程序堆區(qū)域,所述記錄存儲(chǔ)在所述內(nèi)存控制塊區(qū)域 中,所述申請(qǐng)內(nèi)存位于所述應(yīng)用程序堆區(qū)域。
全文摘要
本發(fā)明涉及一種智能卡內(nèi)存管理方法,動(dòng)態(tài)使用內(nèi)存并區(qū)分通用程序、獨(dú)占程序和非獨(dú)占程序,包括對(duì)于通用程序,退出后自動(dòng)釋放其申請(qǐng)的內(nèi)存;對(duì)于獨(dú)占程序,其申請(qǐng)的內(nèi)存不釋放、分配給該獨(dú)占程序一直使用;對(duì)于非獨(dú)占程序,其申請(qǐng)的內(nèi)存僅在有其他非獨(dú)占程序申請(qǐng)內(nèi)存時(shí)進(jìn)行釋放。這種管理方法能夠提高大容量智能卡內(nèi)存的使用效率,同時(shí)解決智能卡各種實(shí)際應(yīng)用中的內(nèi)存回收問題。
文檔編號(hào)G06F12/02GK101344861SQ20071013060
公開日2009年1月14日 申請(qǐng)日期2007年7月10日 優(yōu)先權(quán)日2007年7月10日
發(fā)明者李菲菲, 楊延輝, 蔣曲明 申請(qǐng)人:鳳凰微電子(中國(guó))有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
偃师市| 呼和浩特市| 巴楚县| 罗源县| 会宁县| 香河县| 遂溪县| 油尖旺区| 厦门市| 永善县| 芦溪县| 九龙县| 双桥区| 北宁市| 理塘县| 资中县| 杭锦旗| 江华| 精河县| 收藏| 梅州市| 清涧县| 固阳县| 兰坪| 榆中县| 惠来县| 万州区| 射洪县| 称多县| 乌恰县| 同心县| 通城县| 肇东市| 华容县| 双辽市| 南平市| 四平市| 广汉市| 濮阳县| 政和县| 耒阳市|