亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種實(shí)現(xiàn)雙內(nèi)存托管的方法和系統(tǒng)的制作方法

文檔序號(hào):6441465閱讀:207來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種實(shí)現(xiàn)雙內(nèi)存托管的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種針對(duì)平臺(tái)和業(yè)務(wù)的內(nèi)存管理方法。
背景技術(shù)
為了更好的理解本發(fā)明,下面首先簡(jiǎn)單介紹內(nèi)存托管機(jī)制的概念。在ANSI C中可以用mallocO和free O兩個(gè)函數(shù)動(dòng)態(tài)地分配內(nèi)存和釋放內(nèi)存。但是,在嵌入式實(shí)時(shí)操作系統(tǒng)中,多次這樣做會(huì)把原來(lái)很大的一塊連續(xù)內(nèi)存區(qū)域,逐漸地分割成許多非常小而且彼此又不相鄰的內(nèi)存區(qū)域,也就是內(nèi)存碎片。由于這些碎片的大量存在,使得程序到后來(lái)連非常小的內(nèi)存也分配不到,從而導(dǎo)致程序再次mallocO時(shí)失敗,程序出現(xiàn)異常。另外,由于內(nèi)存管理算法的原因,mallocO和free O函數(shù)執(zhí)行時(shí)間是不確定的。為了解決內(nèi)存碎片的問(wèn)題,目前的系統(tǒng)通常是將連續(xù)的大塊內(nèi)存進(jìn)行分區(qū),通過(guò)平臺(tái)的內(nèi)存管理模塊對(duì)內(nèi)存進(jìn)行管理,一個(gè)系統(tǒng)中可以有多個(gè)內(nèi)存分區(qū),每個(gè)分區(qū)中包含有整數(shù)個(gè)大小相同的內(nèi)存塊(如圖1所示)。這樣,業(yè)務(wù)應(yīng)用程序可以從不同的內(nèi)存分區(qū)中得到不同大小的內(nèi)存塊,內(nèi)存塊在釋放時(shí)必須重新放回其所屬的內(nèi)存分區(qū)。這種內(nèi)存托管機(jī)制對(duì)mallocO和free O函數(shù)進(jìn)行了改進(jìn),使得它們可以分配和釋放固定大小的內(nèi)存塊,這樣mallocO和free O函數(shù)的執(zhí)行時(shí)間也是固定的了,如果對(duì)可能分配內(nèi)存情況估計(jì)得當(dāng),將大大提供內(nèi)存的利用率。顯然,采用這樣的內(nèi)存托管機(jī)制,不需要向OS頻繁申請(qǐng)內(nèi)存,解決了內(nèi)存碎片問(wèn)題。然后,上述當(dāng)前的內(nèi)存托管機(jī)制都是平臺(tái)提供內(nèi)存托管,平臺(tái)模塊和業(yè)務(wù)模塊共同使用內(nèi)存區(qū)域。平臺(tái)的內(nèi)存管理模塊一開(kāi)始向操作系統(tǒng)申請(qǐng)預(yù)先配置好的內(nèi)存大小,在以后的運(yùn)行中,其他平臺(tái)模塊和業(yè)務(wù)模塊需要申請(qǐng)內(nèi)存,都向平臺(tái)的內(nèi)存管理模塊進(jìn)行申請(qǐng)和釋放。這種單內(nèi)存托管機(jī)制下,平臺(tái)模塊和業(yè)務(wù)模塊使用共同的分區(qū),如果業(yè)務(wù)模塊的內(nèi)存沒(méi)有釋放導(dǎo)致內(nèi)存耗盡,將影響平臺(tái)模塊的正常運(yùn)行。而且出現(xiàn)這種內(nèi)存異常時(shí),無(wú)法確定到底是業(yè)務(wù)模塊還是平臺(tái)模塊內(nèi)存沒(méi)有釋放,會(huì)給問(wèn)題的定位帶來(lái)一定困難。

發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明提出了一種實(shí)現(xiàn)雙內(nèi)存托管的方法,該方法包括:系統(tǒng)將內(nèi)存劃分為平臺(tái)內(nèi)存區(qū)域和業(yè)務(wù)內(nèi)存區(qū)域,采用平臺(tái)內(nèi)存管理模塊和業(yè)務(wù)內(nèi)存管理模塊分別管理平臺(tái)內(nèi)存區(qū)域和業(yè)務(wù)內(nèi)存區(qū)域;系統(tǒng)平臺(tái)需要內(nèi)存時(shí),向平臺(tái)內(nèi)存管理模塊進(jìn)行申請(qǐng),系統(tǒng)業(yè)務(wù)需要內(nèi)存時(shí),向業(yè)務(wù)內(nèi)存管理模塊進(jìn)行申請(qǐng)。優(yōu)選的,當(dāng)業(yè)務(wù)內(nèi)存區(qū)域因未釋放而耗盡時(shí),系統(tǒng)平臺(tái)可以定位內(nèi)存未釋放原因,即排查哪些業(yè)務(wù)模塊的哪些地方?jīng)]有釋放;系統(tǒng)平臺(tái)可以通過(guò)業(yè)務(wù)內(nèi)存管理模塊定位原因。優(yōu)選的,通過(guò)設(shè)置一個(gè)控制開(kāi)關(guān)1,使得系統(tǒng)平臺(tái)可以使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存,這樣當(dāng)平臺(tái)模塊的內(nèi)存沒(méi)有釋放導(dǎo)致平臺(tái)內(nèi)存區(qū)域耗盡時(shí),可以使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存來(lái)定位內(nèi)存未釋放原因,即排查哪些平臺(tái)模塊的哪些地方?jīng)]有釋放;同樣的,系統(tǒng)平臺(tái)可以通過(guò)平臺(tái)內(nèi)存管理模塊定位原因。同理,還可以通過(guò)設(shè)置一個(gè)控制開(kāi)關(guān)2,使得業(yè)務(wù)模塊可以使用平臺(tái)內(nèi)存區(qū)域的內(nèi)存。這樣當(dāng)業(yè)務(wù)模塊的內(nèi)存不夠用時(shí),可以臨時(shí)借用一下平臺(tái)內(nèi)存區(qū)域的內(nèi)存。本發(fā)明還提出了一種實(shí)現(xiàn)雙內(nèi)存托管的系統(tǒng),該系統(tǒng)包括:平臺(tái)內(nèi)存區(qū)域、業(yè)務(wù)內(nèi)存區(qū)域和平臺(tái)內(nèi)存管理模塊:平臺(tái)內(nèi)存區(qū)域負(fù)責(zé)根據(jù)平臺(tái)內(nèi)存管理模塊指令,為系統(tǒng)平臺(tái)提供所需內(nèi)存;業(yè)務(wù)內(nèi)存區(qū)域負(fù)責(zé)根據(jù)業(yè)務(wù)內(nèi)存管理模塊指令,為系統(tǒng)業(yè)務(wù)提供所需內(nèi)存;平臺(tái)內(nèi)存管理模塊,負(fù)責(zé)根據(jù)系統(tǒng)平臺(tái)需求,分配和釋放平臺(tái)內(nèi)存區(qū)域的內(nèi)存;業(yè)務(wù)內(nèi)存管理模塊,負(fù)責(zé)根據(jù)系統(tǒng)業(yè)務(wù)需求,分配和釋放業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存。優(yōu)選的,當(dāng)業(yè)務(wù)內(nèi)存區(qū)域因未釋放而耗盡時(shí),系統(tǒng)平臺(tái)可以通過(guò)業(yè)務(wù)內(nèi)存管理模塊定位原因。該系統(tǒng)還可以包括控制開(kāi)關(guān)1,其開(kāi)關(guān)狀態(tài)控制系統(tǒng)平臺(tái)是否有權(quán)限使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存;該系統(tǒng)還可以包括控制開(kāi)關(guān)2,其開(kāi)關(guān)狀態(tài)控制系統(tǒng)業(yè)務(wù)是否有權(quán)限使用平臺(tái)內(nèi)存區(qū)域的內(nèi)存。當(dāng)平臺(tái)內(nèi)存區(qū)域因未釋放而耗盡時(shí),控制開(kāi)關(guān)I打開(kāi),系統(tǒng)平臺(tái)可以使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存定位原因。本發(fā)明通過(guò)系統(tǒng)業(yè)務(wù)和系統(tǒng)平臺(tái)占用不同內(nèi)存分區(qū)的雙內(nèi)存托管機(jī)制來(lái)對(duì)內(nèi)存進(jìn)行有效管理,極大地提高了對(duì)內(nèi)存的維護(hù)和控制力度。


圖1是目前系統(tǒng)采用的內(nèi)存分區(qū)方法示意圖;圖2是本發(fā)明實(shí)施例1的實(shí)現(xiàn)示意圖;圖3是本發(fā)明實(shí)施例2的系統(tǒng)框圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
作詳細(xì)的說(shuō)明。實(shí)施例1:本實(shí)施例適用于任何操作系統(tǒng),如VXWORKS,SOLAIRS LINUX, WIN32等。本實(shí)施例的雙內(nèi)存托管機(jī)制實(shí)現(xiàn)如圖2所示,平臺(tái)內(nèi)存管理模塊一開(kāi)始根據(jù)系統(tǒng)平臺(tái)和業(yè)務(wù)預(yù)先配置需要的內(nèi)存大小向操作系統(tǒng)申請(qǐng)兩個(gè)內(nèi)存區(qū)域分別為A,B內(nèi)存區(qū)域。A內(nèi)存區(qū)域?yàn)槠脚_(tái)內(nèi)存區(qū)域,由平臺(tái)內(nèi)存管理模塊負(fù)責(zé)分配和釋放其內(nèi)存;B內(nèi)存區(qū)域?yàn)闃I(yè)務(wù)內(nèi)存區(qū)域,由業(yè)務(wù)內(nèi)存管理模塊負(fù)責(zé)分配和釋放其內(nèi)存。并且,通過(guò)采用控制開(kāi)關(guān),系統(tǒng)平臺(tái)和業(yè)務(wù)可以互相訪(fǎng)問(wèn)對(duì)方的內(nèi)存區(qū)域。正常情況下,當(dāng)系統(tǒng)平臺(tái)需要內(nèi)存時(shí),就向平臺(tái)內(nèi)存管理模塊申請(qǐng)A區(qū)域的內(nèi)存;當(dāng)系統(tǒng)業(yè)務(wù)需要內(nèi)存時(shí),就向業(yè)務(wù)內(nèi)存管理模塊申請(qǐng)B區(qū)域的內(nèi)存。異常情況下,當(dāng)某系統(tǒng)業(yè)務(wù)的內(nèi)存沒(méi)有被正常釋放導(dǎo)致業(yè)務(wù)內(nèi)存區(qū)域耗盡時(shí),A區(qū)域的內(nèi)存還可以被正常使用,系統(tǒng)平臺(tái)運(yùn)行不會(huì)被影響,系統(tǒng)平臺(tái)可以定位原因,如通過(guò)業(yè)務(wù)內(nèi)存管理模塊定位原因,定位哪些業(yè)務(wù)模塊的哪些地方?jīng)]有釋放等等。同樣的,當(dāng)平臺(tái)內(nèi)存區(qū)域沒(méi)有釋放導(dǎo)致平內(nèi)存耗盡時(shí),此時(shí)業(yè)務(wù)內(nèi)存還有空閑,系統(tǒng)平臺(tái)可以使用B區(qū)域的內(nèi)存定位A區(qū)域異常原因,如通過(guò)系統(tǒng)的調(diào)試功能或平臺(tái)內(nèi)存管理模塊來(lái)定位哪些平臺(tái)模塊的哪些地方?jīng)]有釋放。在上述實(shí)施例中,也可以根據(jù)系統(tǒng)平臺(tái)和業(yè)務(wù)允許的特點(diǎn)單獨(dú)設(shè)置控制開(kāi)關(guān),根據(jù)系統(tǒng)需要分別允許系統(tǒng)平臺(tái)訪(fǎng)問(wèn)業(yè)務(wù)內(nèi)存區(qū)域或允許系統(tǒng)業(yè)務(wù)訪(fǎng)問(wèn)平臺(tái)內(nèi)存區(qū)域。
實(shí)施例2:本發(fā)明還提出一種實(shí)現(xiàn)雙內(nèi)存托管的系統(tǒng),如圖3所示:該系統(tǒng)包括平臺(tái)內(nèi)存區(qū)域、業(yè)務(wù)內(nèi)存區(qū)域、平臺(tái)內(nèi)存管理模塊和業(yè)務(wù)內(nèi)存管理模塊:平臺(tái)內(nèi)存區(qū)域負(fù)責(zé)根據(jù)平臺(tái)內(nèi)存管理模塊指令,為系統(tǒng)平臺(tái)提供所需內(nèi)存;業(yè)務(wù)內(nèi)存區(qū)域負(fù)責(zé)根據(jù)業(yè)務(wù)內(nèi)存管理模塊指令,為系統(tǒng)業(yè)務(wù)提供所需內(nèi)存;平臺(tái)內(nèi)存管理模塊,負(fù)責(zé)根據(jù)系統(tǒng)平臺(tái)需求,分配和釋放平臺(tái)內(nèi)存區(qū)域的內(nèi)存;業(yè)務(wù)內(nèi)存管理模塊,負(fù)責(zé)根據(jù)系統(tǒng)業(yè)務(wù)需求,分配和釋放業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存。當(dāng)業(yè)務(wù)內(nèi)存區(qū)域因未釋放而耗盡時(shí),系統(tǒng)平臺(tái)可以定位原因,如通過(guò)業(yè)務(wù)內(nèi)存管理模塊或系統(tǒng)的調(diào)測(cè)功能等進(jìn)行定位,查找出哪些業(yè)務(wù)模塊占用的哪些內(nèi)存未正常釋放。該系統(tǒng)還可以包括控制開(kāi)關(guān)1,其開(kāi)關(guān)狀態(tài)控制系統(tǒng)平臺(tái)是否有權(quán)限使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存;當(dāng)平臺(tái)內(nèi)存區(qū)域因未釋放而耗盡時(shí),控制開(kāi)關(guān)I打開(kāi),系統(tǒng)平臺(tái)可以使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存定位原因,如通過(guò)平臺(tái)內(nèi)存管理模塊或系統(tǒng)的調(diào)測(cè)功能等進(jìn)行定位,查找出哪些平臺(tái)模塊占用了哪些內(nèi)存未正常釋放。該系統(tǒng)還可以包括控制開(kāi)關(guān)2,其開(kāi)關(guān)狀態(tài)控制系統(tǒng)業(yè)務(wù)是否有權(quán)限使用平臺(tái)內(nèi)存區(qū)域的內(nèi)存。當(dāng)業(yè)務(wù)內(nèi)存區(qū)域耗盡時(shí),可以通過(guò)打開(kāi)控制開(kāi)關(guān)2,暫借平臺(tái)內(nèi)存區(qū)域內(nèi)存進(jìn)行緩解。通過(guò)上述實(shí)施例可以看出,本發(fā)明提出的方法和系統(tǒng)通過(guò)系統(tǒng)業(yè)務(wù)和系統(tǒng)平臺(tái)占用不同內(nèi)存分區(qū)的雙內(nèi)存托管機(jī)制來(lái)對(duì)內(nèi)存進(jìn)行有效管理,極大地提高了對(duì)內(nèi)存的維護(hù)和控制力度,其具體優(yōu)點(diǎn)如下:1、繼承當(dāng)前的單內(nèi)存托管機(jī)制的特點(diǎn),不需要向OS頻繁的申請(qǐng)內(nèi)存,解決內(nèi)存碎片問(wèn)題。2、當(dāng)業(yè)務(wù)模塊內(nèi)存異常時(shí),不會(huì)影響平臺(tái)模塊的正常運(yùn)行。3、在內(nèi)存沒(méi)有釋放導(dǎo)致內(nèi)存耗盡時(shí),能快速的定位到內(nèi)存異常。4、當(dāng)內(nèi)存耗盡時(shí),系統(tǒng)平臺(tái)和業(yè)務(wù)可以暫借對(duì)方內(nèi)存區(qū)的內(nèi)存進(jìn)行緩解,在保證可靠的前提下進(jìn)一步提高了系統(tǒng)內(nèi)存使用率。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)雙內(nèi)存托管的方法,所述方法的特征在于: 將操作系統(tǒng)內(nèi)存分區(qū)劃分為平臺(tái)內(nèi)存區(qū)域和業(yè)務(wù)內(nèi)存區(qū)域,采用平臺(tái)內(nèi)存管理模塊和業(yè)務(wù)內(nèi)存管理模塊分別管理平臺(tái)內(nèi)存區(qū)域和業(yè)務(wù)內(nèi)存區(qū)域; 系統(tǒng)平臺(tái)需要內(nèi)存時(shí),向平臺(tái)內(nèi)存管理模塊進(jìn)行申請(qǐng),系統(tǒng)業(yè)務(wù)需要內(nèi)存時(shí),向業(yè)務(wù)內(nèi)存管理模塊進(jìn)行申請(qǐng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:當(dāng)業(yè)務(wù)內(nèi)存區(qū)域因未釋放而耗盡時(shí),系統(tǒng)平臺(tái)定位耗盡原因。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述系統(tǒng)平臺(tái)通過(guò)業(yè)務(wù)內(nèi)存管理模塊定位耗盡原因。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于:設(shè)置控制開(kāi)關(guān)1,使系統(tǒng)平臺(tái)可以使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存;當(dāng)平臺(tái)內(nèi)存區(qū)域因未釋放而耗盡時(shí),系統(tǒng)平臺(tái)使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存定位耗盡原因。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述系統(tǒng)平臺(tái)使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存通過(guò)平臺(tái)內(nèi)存管理模塊定位原因。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于:設(shè)置控制開(kāi)關(guān)2,使系統(tǒng)業(yè)務(wù)可以使用平臺(tái)內(nèi)存區(qū)域的內(nèi)存。
7.一種實(shí)現(xiàn)雙內(nèi)存托管的系統(tǒng),其特征在于,該系統(tǒng)包括:平臺(tái)內(nèi)存區(qū)域、業(yè)務(wù)內(nèi)存區(qū)域、平臺(tái)內(nèi)存管理模塊和業(yè)務(wù)內(nèi)存管理模塊; 所述平臺(tái)內(nèi)存區(qū)域,負(fù)責(zé)根據(jù)平臺(tái)內(nèi)存管理模塊指令,為系統(tǒng)平臺(tái)提供所需內(nèi)存;所述業(yè)務(wù)內(nèi)存區(qū)域,負(fù)責(zé)根據(jù)業(yè)務(wù)內(nèi)存管理模塊指令,為系統(tǒng)業(yè)務(wù)提供所需內(nèi)存;所述平臺(tái)內(nèi)存管理模塊,負(fù)責(zé)根據(jù)系統(tǒng)平臺(tái)需求,分配和釋放平臺(tái)內(nèi)存區(qū)域的內(nèi)存;所述業(yè)務(wù)內(nèi)存管理模塊,負(fù)責(zé)根據(jù)系統(tǒng)業(yè)務(wù)需求,分配和釋放業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述業(yè)務(wù)內(nèi)存區(qū)域因未釋放而耗盡時(shí),系統(tǒng)平臺(tái)通過(guò)所述業(yè)務(wù)內(nèi)存管理模塊定位原因。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,該系統(tǒng)還包括控制開(kāi)關(guān)1,其開(kāi)關(guān)狀態(tài)控制系統(tǒng)平臺(tái)是否有權(quán)限使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,當(dāng)平臺(tái)內(nèi)存區(qū)域因未釋放而耗盡時(shí),所述控制開(kāi)關(guān)I打開(kāi),系統(tǒng)平臺(tái)使用業(yè)務(wù)內(nèi)存區(qū)域的內(nèi)存定位原因。
11.根據(jù)權(quán)利要求7或9所述的系統(tǒng),其特征在于,該系統(tǒng)還包括控制開(kāi)關(guān)2,其開(kāi)關(guān)狀態(tài)控制系統(tǒng)業(yè)務(wù)是否有權(quán)限使用平臺(tái)內(nèi)存區(qū)域的內(nèi)存。
全文摘要
本發(fā)明提出一種實(shí)現(xiàn)雙內(nèi)存托管的方法,所述方法包括將操作系統(tǒng)的內(nèi)存分區(qū)分為平臺(tái)內(nèi)存區(qū)域和業(yè)務(wù)內(nèi)存區(qū)域,采用平臺(tái)內(nèi)存管理模塊和業(yè)務(wù)內(nèi)存管理模塊分別管理平臺(tái)內(nèi)存區(qū)域和業(yè)務(wù)內(nèi)存區(qū)域;當(dāng)平臺(tái)模塊需要內(nèi)存時(shí),則向平臺(tái)內(nèi)存管理模塊進(jìn)行申請(qǐng),當(dāng)業(yè)務(wù)模塊需要內(nèi)存時(shí),則向業(yè)務(wù)內(nèi)存管理模塊進(jìn)行申請(qǐng)。本發(fā)明還提出一種實(shí)現(xiàn)雙內(nèi)存托管的系統(tǒng),該系統(tǒng)包括平臺(tái)內(nèi)存區(qū)域、業(yè)務(wù)內(nèi)存區(qū)域、平臺(tái)內(nèi)存管理模塊和業(yè)務(wù)內(nèi)存管理模塊。采用本發(fā)明后,當(dāng)業(yè)務(wù)模塊內(nèi)存異常時(shí),不會(huì)影響平臺(tái)模塊的正常運(yùn)行。在內(nèi)存沒(méi)有釋放導(dǎo)致內(nèi)存耗盡時(shí),能快速的定位到內(nèi)存異常。
文檔編號(hào)G06F12/02GK103164339SQ20111042170
公開(kāi)日2013年6月19日 申請(qǐng)日期2011年12月15日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者劉達(dá) 申請(qǐng)人:北京信威通信技術(shù)股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1