[發(fā)明專利]一種嵌入式軟件安全內(nèi)存管理方法有效
| 申請(qǐng)?zhí)枺?/td> | 201110428935.6 | 申請(qǐng)日: | 2011-12-20 |
| 公開(公告)號(hào): | CN103176911A | 公開(公告)日: | 2013-06-26 |
| 發(fā)明(設(shè)計(jì))人: | 衛(wèi)榮平 | 申請(qǐng)(專利權(quán))人: | 陜西銀河網(wǎng)電科技有限公司 |
| 主分類號(hào): | G06F12/06 | 分類號(hào): | G06F12/06 |
| 代理公司: | 西安吉盛專利代理有限責(zé)任公司 61108 | 代理人: | 張培勛 |
| 地址: | 710075 *** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 嵌入式 軟件 安全 內(nèi)存 管理 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)軟件內(nèi)存管理方法,特別是工業(yè)實(shí)時(shí)自動(dòng)化裝置中嵌入式軟件的內(nèi)存管理方法。
背景技術(shù)
計(jì)算機(jī)軟件編程過程中離不開內(nèi)存管理,通常內(nèi)存管理算法都由操作系統(tǒng)提供;應(yīng)用軟件在運(yùn)行過程中不可避免地頻繁分配、釋放和使用內(nèi)存片段,而內(nèi)存片段的訪問安全性控制、以及內(nèi)存片段分配和釋放過程中形成的大量空間碎片,通常是造成系統(tǒng)不穩(wěn)定的重要起因。在現(xiàn)代嵌入式系統(tǒng)中,嵌入式軟件的功能越來越復(fù)雜,尤其是面向?qū)ο蠹夹g(shù)的廣泛使用,傳統(tǒng)的靜態(tài)內(nèi)存分配模式已不能滿足軟件編程過程中的算法需求。
目前在嵌入式系統(tǒng)中大量采用各種嵌入式操作系統(tǒng),這些系統(tǒng)中提供了各具特色的內(nèi)存管理算法,它們大多關(guān)心內(nèi)存的分配和釋放引起的碎片問題,通常采用固定尺寸的空間分配策略,造成空間利用效率低,并且這些算法沒有檢測(cè)內(nèi)存片內(nèi)容改寫越界的問題。而這些問題,均是工業(yè)控制系統(tǒng)中滿7x24應(yīng)用中不能容忍的。
為了在嵌入式系統(tǒng)中應(yīng)對(duì)越來越復(fù)雜的功能需要,面向?qū)ο缶幊碳夹g(shù)越來越受到重視;然而,面向?qū)ο缶幊碳夹g(shù)中許多面向?qū)ο蟊旧硖卣鲙Ыo設(shè)計(jì)者的優(yōu)越體驗(yàn),要大量動(dòng)態(tài)創(chuàng)建對(duì)象時(shí)才能顯現(xiàn)出來,而大量動(dòng)態(tài)創(chuàng)建和釋放對(duì)象實(shí)例往往會(huì)給系統(tǒng)中的內(nèi)存管理帶來大量的內(nèi)存碎片;往往是總的內(nèi)存用量不多,卻又分配不到需要的內(nèi)存片;直接基于地址指標(biāo)的內(nèi)存訪問方法,在這種情況下沒有有效的碎片收集方法來避免系統(tǒng)崩潰。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種嵌入式軟件安全內(nèi)存管理方法,能夠在內(nèi)存碎片多、內(nèi)存分配申請(qǐng)失敗時(shí),進(jìn)行安全的內(nèi)存碎片收集,確保軟件安全可靠地運(yùn)行。
本發(fā)明的目的是這樣實(shí)現(xiàn)的,基于固定訪問標(biāo)識(shí)的內(nèi)存管理方法,其特征是:包括:
內(nèi)存池,在RAM中靜態(tài)分配的存貯空間,用于存放分配給客戶代碼使用的內(nèi)存片;
索引表,在RAM中靜態(tài)分配的存貯空間,用于存放內(nèi)存片索引;
一組用于完成內(nèi)存片的管理的算法,這些算法在內(nèi)存池中分配內(nèi)存片并通過索引表進(jìn)行管理,客戶代碼采用固定的訪問標(biāo)識(shí)進(jìn)行申請(qǐng)、訪問和釋放等操作。
內(nèi)存池是在嵌入式系統(tǒng)RAM中靜態(tài)分配出來的一片存貯空間,其大小由嵌入式軟件編程時(shí)預(yù)先配置,軟件中各功能應(yīng)用中需要分配的內(nèi)存片均在內(nèi)存池中分配。
在嵌入式系統(tǒng)RAM中靜態(tài)分配出來的一片存貯空間,具有固定尺寸的結(jié)構(gòu),其數(shù)量在嵌入式軟件編程時(shí)預(yù)先配置,在內(nèi)存池中分配的內(nèi)存片的信息,都記錄在索引表中。
在內(nèi)存池中分配的存貯空間,至少包括信息存貯空間和邊界標(biāo)志。?
用于完成內(nèi)存片的管理的算法是基于客戶代碼提供的訪問標(biāo)識(shí)。
所述的索引表為固定尺寸的結(jié)構(gòu),每個(gè)結(jié)構(gòu)中至少包含內(nèi)存片所屬的固定訪問標(biāo)識(shí)、內(nèi)存片起始地址、內(nèi)存片長(zhǎng)度、分配計(jì)數(shù)四項(xiàng)記錄;至少包含內(nèi)存片分配、內(nèi)存片訪問、碎片收集、內(nèi)存片釋放的方法。
所述的標(biāo)識(shí)用于內(nèi)存管理算法將訪問標(biāo)識(shí)與內(nèi)存片一對(duì)一地聯(lián)系起來;內(nèi)存片起始地址是內(nèi)存片在內(nèi)存池中的分配的空間的開始地址,用于為使用內(nèi)存片的;內(nèi)存片長(zhǎng)度是客戶代碼申請(qǐng)內(nèi)存片時(shí)指定的信息存貯空間尺寸和邊界標(biāo)志長(zhǎng)度之和;分配計(jì)數(shù)是指客戶代碼使用同一個(gè)固定標(biāo)志分配空間的次數(shù);內(nèi)存管理算法以固定訪問標(biāo)識(shí)為憑據(jù),在內(nèi)存池中搜索已分配過的具有相同固定訪問標(biāo)識(shí)的內(nèi)存片,對(duì)重復(fù)訪問標(biāo)志分配要求,對(duì)索引項(xiàng)中的訪問計(jì)數(shù)加一;分配失敗時(shí)算法主動(dòng)完成內(nèi)存碎片收集。
以固定訪問標(biāo)識(shí)為憑據(jù),在內(nèi)存池中搜索已分配過的具有相同固定訪問標(biāo)識(shí)的內(nèi)存片,并且檢測(cè)內(nèi)存片的邊界標(biāo)志是否被破壞。
將已分配的內(nèi)存片強(qiáng)行移動(dòng)到從內(nèi)存池起始地址開始的一片連續(xù)存貯空間中,各內(nèi)存片首尾相接,不留縫隙,同時(shí)修改索引表中對(duì)應(yīng)索引項(xiàng)中記錄的內(nèi)存片起始地址;收集后內(nèi)存池中最后一個(gè)塊內(nèi)存片之后全部為自由存貯空間;以固定訪問標(biāo)識(shí)為憑據(jù),在內(nèi)存池中搜索已分配過的具有相同固定訪問標(biāo)識(shí)的內(nèi)存片;若找到,則將其中的分配計(jì)數(shù)減一;當(dāng)分配計(jì)數(shù)為0時(shí),釋放內(nèi)存片。
本發(fā)明的優(yōu)點(diǎn)是:
提供了一套用于嵌入式軟件編程過程中進(jìn)行動(dòng)態(tài)內(nèi)存管理的一系列算法,實(shí)現(xiàn)了安全、高效的動(dòng)態(tài)內(nèi)存管理;這可以克服原有設(shè)計(jì)模式下需要在編程階段為每個(gè)需要貯存器的代碼靜態(tài)分配內(nèi)存、并且還不能確保訪問的內(nèi)存片中的內(nèi)容的可靠性這一問題;尤其是現(xiàn)代嵌入式軟件發(fā)展到越來越復(fù)雜,面向?qū)ο蠹夹g(shù)在嵌入式軟件編程中得到越來越深入的應(yīng)用,在安全、可靠、無碎片的動(dòng)態(tài)內(nèi)存管理技術(shù)的支持下,面向?qū)ο蠹夹g(shù)可發(fā)揮其全部的潛能。
附圖說明
圖1是本發(fā)明的實(shí)施結(jié)構(gòu)示意圖;
圖2是內(nèi)存片的結(jié)構(gòu)圖;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于陜西銀河網(wǎng)電科技有限公司,未經(jīng)陜西銀河網(wǎng)電科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110428935.6/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測(cè)方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動(dòng)態(tài)檢測(cè)
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測(cè)驗(yàn)軟件的裝置與方法





