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

一種內(nèi)存擴(kuò)展方法

文檔序號(hào):6357476閱讀:313來(lái)源:國(guó)知局

專利名稱::一種內(nèi)存擴(kuò)展方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種內(nèi)存擴(kuò)展方法,尤其涉及一種應(yīng)用于移動(dòng)計(jì)算裝置中的內(nèi)存擴(kuò)展方法。
背景技術(shù)
:內(nèi)存管理在移動(dòng)計(jì)算裝置中是一個(gè)比較重要的問(wèn)題,如果處理不好內(nèi)存資源的管理,那么系統(tǒng)的健壯性將會(huì)大大降低,嚴(yán)重時(shí)系統(tǒng)將會(huì)無(wú)法正常運(yùn)行。Umalloc內(nèi)存分配在移動(dòng)計(jì)算裝置中存在的問(wèn)題。在移動(dòng)計(jì)算裝置中比較可靠的方法是采用靜態(tài)內(nèi)存分配。而動(dòng)態(tài)內(nèi)存分配的經(jīng)典方法是調(diào)用malloc函數(shù),該函數(shù)是C語(yǔ)言中定義的標(biāo)準(zhǔn)內(nèi)存分配函數(shù),一般的C語(yǔ)言編譯器都會(huì)提供該函數(shù),例如在嵌入式應(yīng)用中常用的編譯開(kāi)發(fā)環(huán)境KeilCXCS以及ADS都會(huì)提供此類內(nèi)存分配函數(shù)。編譯器提供的malloc內(nèi)存分配函數(shù)的實(shí)現(xiàn)基于堆算法。動(dòng)態(tài)內(nèi)存區(qū)域是一個(gè)堆空間,分配內(nèi)存時(shí)總是從堆的頭部向后查找,分配一塊滿足大小的一段空間,釋放資源時(shí)檢查是否可以與堆空間中的臨近空閑資源合并成大塊,如果可以合并,那么堆空間中的連續(xù)資源將會(huì)增加,否則將會(huì)產(chǎn)生一個(gè)新塊鏈接在堆空間中的鏈表中。在系統(tǒng)初始化時(shí),動(dòng)態(tài)分配的堆空間為一整塊資源,隨著內(nèi)存資源的不斷分配、釋放,堆空間將會(huì)被不斷切分,切分成很多細(xì)粒度的空閑塊資源。當(dāng)堆空間被切分成很多小塊時(shí),系統(tǒng)就不可能再為大塊需求分配資源了。雖然細(xì)粒度的塊聚合起來(lái)能夠滿足應(yīng)用需求,但是,堆算法已經(jīng)無(wú)能為力了,就會(huì)出現(xiàn)malloc分配失敗的情況。從堆算法的本質(zhì)出發(fā),可以認(rèn)識(shí)到在移動(dòng)計(jì)算裝置中應(yīng)用malloc存在嚴(yán)重的問(wèn)題。由于很多應(yīng)用程序在運(yùn)行期間需要進(jìn)行多次的動(dòng)態(tài)內(nèi)存分配,當(dāng)系統(tǒng)長(zhǎng)時(shí)間運(yùn)行之后,內(nèi)存資源將會(huì)變得越來(lái)越零散,運(yùn)行之初大塊的內(nèi)存已經(jīng)不復(fù)存在,可能只剩下很多小塊的資源。所以在大塊內(nèi)存需求的情況下,系統(tǒng)將會(huì)出錯(cuò),導(dǎo)致系統(tǒng)的健壯性隨著系統(tǒng)運(yùn)行時(shí)間的增長(zhǎng)而下降。因此,在移動(dòng)計(jì)算裝置應(yīng)用程序中不建議使用malloc進(jìn)行內(nèi)存分配。2、小型嵌入式系統(tǒng)中的內(nèi)存管理方法。小型嵌入式系統(tǒng)中經(jīng)常采用分塊的內(nèi)存管理方法。其思想比較簡(jiǎn)單,即將內(nèi)存資源分成若干塊,當(dāng)需要內(nèi)存資源時(shí),獲取一個(gè)塊資源,使用完畢之后再將塊資源釋放,歸還給系統(tǒng)。采用分塊算法的一個(gè)問(wèn)題是難以確定塊的大小。因?yàn)橄到y(tǒng)中的應(yīng)用對(duì)塊大小需求不一樣,如果塊過(guò)大,那么利用率下降,如果塊過(guò)小,那么無(wú)法滿足分配需求。針對(duì)該問(wèn)題,提出了塊資源池的概念,每個(gè)池中的塊大小都不一樣。應(yīng)用提出內(nèi)存資源需求后,系統(tǒng)根據(jù)需求到合適的池中得到資源塊;釋放資源時(shí),再將資源塊釋放到對(duì)應(yīng)的池中。在實(shí)際的uc/os操作系統(tǒng)中,就采用了這種塊資源算法的內(nèi)存管理方法。但是分塊算法的效率非常低下,并且存在塊內(nèi)碎片,僅適用于非常簡(jiǎn)單的、小型的嵌入式應(yīng)用。3、大型嵌入式系統(tǒng)中的內(nèi)存管理方法。目前,最有效的內(nèi)存管理方法是虛擬內(nèi)存技術(shù),通過(guò)虛擬內(nèi)存技術(shù)可以將邏輯內(nèi)存和物理內(nèi)存分開(kāi),程序運(yùn)行在邏輯內(nèi)存空間,對(duì)于每個(gè)任務(wù)而言都能看到一個(gè)很大的內(nèi)存空間,邏輯內(nèi)存和實(shí)際的物理內(nèi)存通過(guò)頁(yè)表進(jìn)行動(dòng)態(tài)映射。由于虛擬內(nèi)存技術(shù)涉及到頁(yè)表的映射查找,所以如果采用純軟件的手段,那么實(shí)現(xiàn)效率將十分低下,因此往往需要硬件的加速。這個(gè)硬件加速單元就是MMU(memorymanagementunit),其本質(zhì)上就是一個(gè)lookuptable。因此,采用虛擬內(nèi)存技術(shù)的嵌入式系統(tǒng)都需要CPU集成MMU,否則該套機(jī)制很難實(shí)現(xiàn)。但是,隨著移動(dòng)計(jì)算裝置的應(yīng)用程序越來(lái)越復(fù)雜,單個(gè)應(yīng)用程序需要更大的內(nèi)存,而移動(dòng)計(jì)算裝置的實(shí)際內(nèi)存是有限的,內(nèi)存塊資源池的方法已不適用,而移動(dòng)計(jì)算裝置所選用的CPU—般都未集成MMU,也就不能使用虛擬內(nèi)存技術(shù)。由于上述三種方法存在不同的問(wèn)題,所以需要有新的方法解決移動(dòng)計(jì)算裝置的內(nèi)存管理問(wèn)題。
發(fā)明內(nèi)容為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種內(nèi)存擴(kuò)展方法。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是一種內(nèi)存擴(kuò)展方法,由內(nèi)存分配方式和數(shù)據(jù)塊使用方式兩部分共同實(shí)現(xiàn)或單獨(dú)實(shí)現(xiàn)所述內(nèi)存分配方式為系統(tǒng)內(nèi)存分為多個(gè)應(yīng)用程序內(nèi)存塊用于分配給各種應(yīng)用程序使用,每個(gè)應(yīng)用程序占用1個(gè)應(yīng)用程序內(nèi)存塊,未分配的系統(tǒng)內(nèi)存則屬于系統(tǒng)空閑內(nèi)存,(1)、與系統(tǒng)接收新的應(yīng)用程序時(shí),系統(tǒng)對(duì)其進(jìn)行分析,按應(yīng)用程序內(nèi)存使用情況并結(jié)合系統(tǒng)空閑內(nèi)存情況對(duì)系統(tǒng)提出申請(qǐng)內(nèi)存塊,將新的應(yīng)用程序所用的數(shù)據(jù)分為多個(gè)數(shù)據(jù)塊,O)、對(duì)于應(yīng)用程序內(nèi)部的數(shù)據(jù)塊管理,根據(jù)數(shù)據(jù)塊實(shí)際使用情況判斷是申請(qǐng)新的內(nèi)存數(shù)據(jù)塊還是釋放已有數(shù)據(jù)塊,如需要申請(qǐng)新的內(nèi)存數(shù)據(jù)塊時(shí),則對(duì)該應(yīng)用程序提出申請(qǐng)分配最合適的空閑塊給新的內(nèi)存數(shù)據(jù)塊,(、根據(jù)數(shù)據(jù)塊的使用頻率,通過(guò)將部分使用頻率低的、暫時(shí)末用的內(nèi)存數(shù)據(jù)塊轉(zhuǎn)移為外存數(shù)據(jù)塊。所述數(shù)據(jù)塊使用方式為判斷所需操作的數(shù)據(jù)塊為內(nèi)存數(shù)據(jù)塊還是外存數(shù)據(jù)塊,當(dāng)其為內(nèi)存數(shù)據(jù)塊時(shí),應(yīng)用程序?qū)ζ渲苯訄?zhí)行操作,當(dāng)其為外存數(shù)據(jù)塊時(shí),先將其轉(zhuǎn)換為內(nèi)存數(shù)據(jù)塊再對(duì)其進(jìn)行操作。進(jìn)一步的當(dāng)系統(tǒng)空閑內(nèi)存不能滿足新的應(yīng)用程序內(nèi)存塊的申請(qǐng)時(shí),將已有用程序內(nèi)最少使用的的數(shù)據(jù)塊轉(zhuǎn)移到外存,或者再縮小已有應(yīng)用程序內(nèi)存塊大小,而剩余部分歸入應(yīng)用程序內(nèi)存塊空閑區(qū)。當(dāng)應(yīng)用程序釋放已有數(shù)據(jù)塊時(shí),如果所釋放數(shù)據(jù)塊為外存數(shù)據(jù)塊,則直接將所占用空間歸還給系統(tǒng)外存,如果所釋放數(shù)據(jù)塊為內(nèi)存數(shù)據(jù)塊,則將已有數(shù)據(jù)塊內(nèi)存空間歸還到應(yīng)用程序內(nèi)存塊成為應(yīng)用程序空閑區(qū)碎片,并按空閑碎片大小由低至高排列。當(dāng)應(yīng)用程序內(nèi)的空閑塊不能滿足新的內(nèi)存數(shù)據(jù)塊容量要求時(shí),擴(kuò)大應(yīng)用程序內(nèi)存塊或者將應(yīng)用程序內(nèi)使用最少使用的內(nèi)存數(shù)據(jù)塊轉(zhuǎn)移為外存數(shù)據(jù)塊,將其所占內(nèi)存空間釋放為應(yīng)用程序內(nèi)存塊空閑空間,如此時(shí)應(yīng)用程序空閑空間仍不滿足新的內(nèi)存數(shù)據(jù)塊容量要求,則繼續(xù)將使用頻率次低的內(nèi)存數(shù)據(jù)塊轉(zhuǎn)移為外存數(shù)據(jù)塊,直至滿足新的內(nèi)存數(shù)據(jù)塊容量要求,最后將釋放的內(nèi)存空間及空閑碎片整理到新的應(yīng)用程序內(nèi)存塊底部,合并為一個(gè)空閑空間塊。本發(fā)明通過(guò)對(duì)內(nèi)存進(jìn)行內(nèi)存塊分配和對(duì)應(yīng)用程序數(shù)據(jù)進(jìn)行數(shù)據(jù)塊處理,并且利用系統(tǒng)閑置空間、應(yīng)用程序塊內(nèi)空閑塊和將數(shù)據(jù)塊在內(nèi)存和外存之間的轉(zhuǎn)移,來(lái)對(duì)系統(tǒng)空間和應(yīng)用程序內(nèi)存進(jìn)行合理分配,從而實(shí)現(xiàn)內(nèi)存擴(kuò)展的目的,以使系統(tǒng)能夠同時(shí)容納更多的應(yīng)用程序,并通過(guò)將外存“擴(kuò)展”為內(nèi)存的一部分,使得對(duì)內(nèi)存容量要求較高的應(yīng)用程序仍可正常運(yùn)行。圖1為本發(fā)明中的技術(shù)方案所產(chǎn)生的內(nèi)存和外存映射示意圖。圖2為本發(fā)明中內(nèi)存管理方法的系統(tǒng)內(nèi)存管理流程圖。圖3為本發(fā)明中內(nèi)存管理方法的應(yīng)用程序內(nèi)存塊管理流程圖。圖4為本發(fā)明中內(nèi)存管理方法的內(nèi)存數(shù)據(jù)塊空間分配流程圖。具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。本發(fā)明中所述內(nèi)存擴(kuò)展方法適用于內(nèi)存有限的移動(dòng)計(jì)算設(shè)備。本發(fā)明的實(shí)施可能通過(guò)不同的形式來(lái)進(jìn)行,比如所述內(nèi)存擴(kuò)展方法可以通過(guò)軟件、硬件或者兩者的結(jié)合來(lái)實(shí)現(xiàn)成為一種方法或產(chǎn)品,也可以通過(guò)計(jì)算機(jī)程序稱為一個(gè)系統(tǒng)的一部分。請(qǐng)參見(jiàn)圖1,移動(dòng)計(jì)算設(shè)備的存儲(chǔ)空間由系統(tǒng)內(nèi)存和系統(tǒng)外存兩部分組成。系統(tǒng)內(nèi)存可分配給多個(gè)應(yīng)用程序直接使用,每個(gè)應(yīng)用程序占用1個(gè)應(yīng)用程序內(nèi)存塊。未分配的系統(tǒng)內(nèi)存屬于系統(tǒng)空閑內(nèi)存。在某個(gè)應(yīng)用程序內(nèi)部,將所用的數(shù)據(jù)分為多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的大小可以不相同。根據(jù)數(shù)據(jù)塊是在內(nèi)存中還是外存中分為內(nèi)存數(shù)據(jù)塊和外存數(shù)據(jù)塊。應(yīng)用程序可對(duì)內(nèi)存數(shù)據(jù)塊直接執(zhí)行操作。當(dāng)應(yīng)用程序所要操作的數(shù)據(jù)塊為外存數(shù)據(jù)塊時(shí),須先將該數(shù)據(jù)塊轉(zhuǎn)移為內(nèi)存數(shù)據(jù)塊。這樣,該應(yīng)用程序可使用的數(shù)據(jù)存儲(chǔ)空間是由應(yīng)用程序內(nèi)存塊中的內(nèi)存數(shù)據(jù)塊空間、應(yīng)用程序內(nèi)存塊中的空閑塊空間及位于系統(tǒng)外存的應(yīng)用程序外存數(shù)據(jù)塊空間構(gòu)成,即應(yīng)用程序可用數(shù)據(jù)存儲(chǔ)空間通過(guò)外存得到了“擴(kuò)展”。結(jié)合圖2、圖3、圖4所示,其示出了本發(fā)明一個(gè)實(shí)施例中的內(nèi)存擴(kuò)展方法。圖2的系統(tǒng)內(nèi)存管理流程圖(100)包括步驟102,初始化系統(tǒng)內(nèi)存。步驟104,判斷是系統(tǒng)加載新的應(yīng)用程序,還是已有應(yīng)用程序結(jié)束運(yùn)行。步驟106,如果是要為新的應(yīng)用程序在系統(tǒng)內(nèi)存中分配應(yīng)用程序內(nèi)存塊,則判斷當(dāng)前系統(tǒng)空閑內(nèi)存空間大小是否滿足新的應(yīng)用程序內(nèi)存塊所申請(qǐng)的容量。步驟108,如果當(dāng)前系統(tǒng)空閑內(nèi)存空間大小不滿足新的應(yīng)用程序內(nèi)存塊的容量要求,則計(jì)算新的應(yīng)用程序內(nèi)存塊申請(qǐng)值與當(dāng)前系統(tǒng)空閑內(nèi)存空間的差j,將現(xiàn)有應(yīng)用程序空閑區(qū)由大到小排列,尋找最接近但大于j值的應(yīng)用程序空閑區(qū)。如果存在這樣的應(yīng)用程序內(nèi)存塊AxJl^fAx的應(yīng)用程序塊中j大小的應(yīng)用程序空閑區(qū)歸還給系統(tǒng),成為系統(tǒng)空閑內(nèi)存,并將Ax的內(nèi)存塊大小減去j。如果不存在這樣的應(yīng)用程序內(nèi)存塊,則將現(xiàn)有的各應(yīng)用程序的各內(nèi)存數(shù)據(jù)塊按使用頻率由低至高排列,在這個(gè)排列中尋找最接近但大于j值的應(yīng)用程序內(nèi)存數(shù)據(jù)塊,設(shè)這個(gè)數(shù)據(jù)塊為Ax.Dk,則將Ax.Dk的內(nèi)容轉(zhuǎn)移到系統(tǒng)外存成為Ax.砍。步驟110,重新整理Ax的內(nèi)存塊,將Ax內(nèi)的空閑區(qū)碎片整理為內(nèi)存塊底部的完整空閑區(qū),將Ax的內(nèi)存塊大小減去Ax.Dk的大小。步驟112,將Ax底部相應(yīng)大小的應(yīng)用程序空閑區(qū)歸還系統(tǒng)成為系統(tǒng)空閑內(nèi)存。重新整理系統(tǒng)空閑內(nèi)存,將系統(tǒng)內(nèi)存空閑區(qū)碎片整理為系統(tǒng)內(nèi)存底部的完整空閑區(qū)。步驟114,在系統(tǒng)內(nèi)存空閑區(qū)內(nèi)為新的應(yīng)用程序分配指定大小的應(yīng)用程序內(nèi)存塊。步驟116,將應(yīng)用程序內(nèi)存塊所占用系統(tǒng)內(nèi)存歸還給系統(tǒng),成為系統(tǒng)空閑內(nèi)存。圖3的應(yīng)用程序內(nèi)存塊管理流程圖(200)包括步驟202,在應(yīng)用程序運(yùn)行過(guò)程中,判斷應(yīng)用程序是申請(qǐng)新的數(shù)據(jù)塊還是釋放已有數(shù)據(jù)塊,或者是使用數(shù)據(jù)塊。步驟204,應(yīng)用程序申請(qǐng)新的數(shù)據(jù)塊,則調(diào)用圖4(300)所示內(nèi)存管理方法的內(nèi)存數(shù)據(jù)塊空間分配流程圖,完成數(shù)據(jù)塊在內(nèi)存中的分配。步驟206,應(yīng)用程序釋放已有數(shù)據(jù)塊,如果所釋放數(shù)據(jù)塊為外存數(shù)據(jù)塊,則直接將所占用空間歸還給系統(tǒng)外存。如果所釋放數(shù)據(jù)塊為內(nèi)存數(shù)據(jù)塊,則將已有數(shù)據(jù)塊內(nèi)存空間歸還到應(yīng)用程序內(nèi)存塊成為應(yīng)用程序空閑區(qū)碎片,并按空閑碎片大小由低至高排列。步驟208,如果應(yīng)用程序要使用數(shù)據(jù)塊,則判斷所要使用的數(shù)據(jù)塊是否為內(nèi)存數(shù)據(jù)塊,即是否已在系統(tǒng)內(nèi)存中。步驟210,如果應(yīng)用程序所要使用的數(shù)據(jù)塊為內(nèi)存數(shù)據(jù)塊,則該數(shù)據(jù)塊使用頻率加1。步驟212,如果應(yīng)用程序所要使用的數(shù)據(jù)塊為外存數(shù)據(jù)塊,即該數(shù)據(jù)塊當(dāng)前并未在內(nèi)存中,則調(diào)用則圖4(300)所示內(nèi)存數(shù)據(jù)塊分配子例程,在內(nèi)存中為該數(shù)據(jù)塊分配空間。步驟214,將該外存數(shù)據(jù)塊轉(zhuǎn)移到為其分配的內(nèi)存空間中,成為內(nèi)存數(shù)據(jù)塊。圖4內(nèi)存管理方法的內(nèi)存數(shù)據(jù)塊空間分配流程圖(300)包括步驟302,如果應(yīng)用程序要申請(qǐng)新的內(nèi)存數(shù)據(jù)塊,則判斷應(yīng)用程序內(nèi)存塊中現(xiàn)有空閑區(qū)中是否滿足新的內(nèi)存數(shù)據(jù)塊容量要求的空閑碎片。步驟304,如果存在滿足新的內(nèi)存數(shù)據(jù)塊容量要求的空閑塊,則找到最接近但不低于該容量要求的空閑塊例如Ax.Rs。將該內(nèi)存數(shù)據(jù)塊容量要求大小的內(nèi)存空閑空間分配給該內(nèi)存數(shù)據(jù)塊,將多余的空閑空間歸還給應(yīng)用程序空閑區(qū)。步驟306,如果在應(yīng)用程序內(nèi)存塊中的空閑塊均不滿足新的內(nèi)存數(shù)據(jù)塊容量要求,則計(jì)算應(yīng)用程序內(nèi)存塊中的空閑空間碎片總合是否滿足新的內(nèi)存數(shù)據(jù)塊大小要求。步驟308,如果應(yīng)用程序內(nèi)存塊中的空閑空間碎片總合滿足新的內(nèi)存數(shù)據(jù)塊大小要求,則將各空閑空間碎片移動(dòng)到應(yīng)用程序內(nèi)存塊底部,合并為一個(gè)完整的空閑內(nèi)存塊。步驟310,如果應(yīng)用程序內(nèi)存塊中的空閑空間碎片總合不滿足新的內(nèi)存數(shù)據(jù)塊容量要求,則計(jì)算新的內(nèi)存數(shù)據(jù)塊容量與已有應(yīng)用程序內(nèi)存塊空閑空間容量的差,查找系統(tǒng)空閑空間是否大于這個(gè)差。步驟312,如果系統(tǒng)空閑空間大于新的內(nèi)存數(shù)據(jù)塊大小與已有應(yīng)用程序內(nèi)存塊空閑空間大小的差,則在系統(tǒng)空閑空間內(nèi)分配該值大小的空間。將新分配的系統(tǒng)空閑空間與已有應(yīng)用程序內(nèi)存塊空閑空間合并,并擴(kuò)大應(yīng)用程序內(nèi)存塊。步驟314,如果系統(tǒng)空閑空間不能滿足要求,則在應(yīng)用程序內(nèi)存塊內(nèi),將使用頻率最低的內(nèi)存數(shù)據(jù)塊轉(zhuǎn)移為外存數(shù)據(jù)塊,將其所占內(nèi)存空間釋放為應(yīng)用程序內(nèi)存塊空閑空間,如此時(shí)應(yīng)用程序空閑空間仍不滿足新的內(nèi)存數(shù)據(jù)塊容量要求,則繼續(xù)釋放使用頻率次低的內(nèi)存數(shù)據(jù)塊,直至滿足新的內(nèi)存數(shù)據(jù)塊容量要求。將釋放的內(nèi)存空間及空閑碎片整理到應(yīng)用程序內(nèi)存塊底部,合并為一個(gè)空閑空間塊。權(quán)利要求1.一種內(nèi)存擴(kuò)展方法,其特征是所述內(nèi)存擴(kuò)展方法由內(nèi)存分配方式和數(shù)據(jù)塊使用方式兩部分共同實(shí)現(xiàn)或單獨(dú)實(shí)現(xiàn)所述內(nèi)存分配方式為系統(tǒng)內(nèi)存分為多個(gè)應(yīng)用程序內(nèi)存塊用于分配給各種應(yīng)用程序使用,每個(gè)應(yīng)用程序占用1個(gè)應(yīng)用程序內(nèi)存塊,未分配的系統(tǒng)內(nèi)存則屬于系統(tǒng)空閑內(nèi)存,(1)、當(dāng)系統(tǒng)接收新的應(yīng)用程序時(shí),系統(tǒng)對(duì)其進(jìn)行分析,如為新的應(yīng)用程序則按應(yīng)用程序內(nèi)存使用情況并結(jié)合系統(tǒng)空閑內(nèi)存情況對(duì)系統(tǒng)提出申請(qǐng)內(nèi)存塊,如為已有應(yīng)用程序則返回,O)、重新分配內(nèi)存塊后,將新的應(yīng)用程序所用的數(shù)據(jù)分為多個(gè)數(shù)據(jù)塊,同時(shí)根據(jù)數(shù)據(jù)塊實(shí)際使用情況判斷是申請(qǐng)新的內(nèi)存數(shù)據(jù)塊還是釋放已有數(shù)據(jù)塊,如需要申請(qǐng)新的內(nèi)存數(shù)據(jù)塊時(shí),則對(duì)該應(yīng)用程序提出申請(qǐng)分配最合適的空閑塊給新的內(nèi)存數(shù)據(jù)塊,(、根據(jù)數(shù)據(jù)塊的使用頻率,通過(guò)將部分使用頻率低的、暫時(shí)未用的內(nèi)存數(shù)據(jù)塊轉(zhuǎn)移為外存數(shù)據(jù)塊。所述數(shù)據(jù)塊使用方式為判斷所需操作的數(shù)據(jù)塊為內(nèi)存數(shù)據(jù)塊還是外存數(shù)據(jù)塊,當(dāng)其為內(nèi)存數(shù)據(jù)塊時(shí),應(yīng)用程序?qū)ζ渲苯訄?zhí)行操作,當(dāng)其為外存數(shù)據(jù)塊時(shí),先將其轉(zhuǎn)換為內(nèi)存數(shù)據(jù)塊再對(duì)其進(jìn)行操作。2.根據(jù)權(quán)利要求1所述的內(nèi)存擴(kuò)展方法,其特征是當(dāng)系統(tǒng)空閑內(nèi)存不能滿足新的應(yīng)用程序內(nèi)存塊的申請(qǐng)時(shí),將已有應(yīng)用程序內(nèi)最少使用的的數(shù)據(jù)塊轉(zhuǎn)移到外存,或者再縮小已有應(yīng)用程序內(nèi)存塊大小,而剩余部分歸入應(yīng)用程序內(nèi)存塊空閑區(qū)。3.根據(jù)權(quán)利要求1所述的內(nèi)存擴(kuò)展方法,其特征是當(dāng)應(yīng)用程序釋放已有數(shù)據(jù)塊時(shí),如果所釋放數(shù)據(jù)塊為外存數(shù)據(jù)塊,則直接將所占用空間歸還給系統(tǒng)外存,如果所釋放數(shù)據(jù)塊為內(nèi)存數(shù)據(jù)塊,則將已有數(shù)據(jù)塊內(nèi)存空間歸還到應(yīng)用程序內(nèi)存塊成為應(yīng)用程序空閑區(qū)碎片,并按空閑碎片大小由低至高排列。4.根據(jù)權(quán)利要求1所述的內(nèi)存擴(kuò)展方法,其特征是當(dāng)應(yīng)用程序內(nèi)的空閑塊不能滿足新的內(nèi)存數(shù)據(jù)塊時(shí),擴(kuò)大應(yīng)用程序內(nèi)存塊或者將應(yīng)用程序內(nèi)使用最少使用的內(nèi)數(shù)據(jù)塊轉(zhuǎn)化為外存數(shù)據(jù)塊,將其所占內(nèi)存空間釋放為應(yīng)用程序內(nèi)存塊空閑空間,如此時(shí)應(yīng)用程序空閑空間仍不滿足內(nèi)存數(shù)據(jù)塊容量要求,則繼續(xù)釋放使用頻率次低的內(nèi)存數(shù)據(jù)塊,直至滿足新的內(nèi)存數(shù)據(jù)塊容量要求,最后將釋放的內(nèi)存空間及空閑碎片整理到應(yīng)用程序內(nèi)存塊底部,合并為一個(gè)空閑空間塊。全文摘要本發(fā)明涉及一種內(nèi)存擴(kuò)展方法,由內(nèi)存分配方式和數(shù)據(jù)塊使用方式兩部分共同實(shí)現(xiàn)或單獨(dú)實(shí)現(xiàn)內(nèi)存分配方式系統(tǒng)內(nèi)存分為多個(gè)應(yīng)用程序內(nèi)存塊用于分配給各種應(yīng)用程序使用,(1)當(dāng)系統(tǒng)接收新的應(yīng)用程序時(shí),系統(tǒng)對(duì)其進(jìn)行分析,并判斷是否需要對(duì)系統(tǒng)提出申請(qǐng)內(nèi)存塊,(2)重新分配內(nèi)存塊后,將新的應(yīng)用程序所用的數(shù)據(jù)分為多個(gè)數(shù)據(jù)塊,同時(shí)根據(jù)數(shù)據(jù)塊實(shí)際使用情況判斷是否申請(qǐng)新內(nèi)存數(shù)據(jù)塊,(3)根據(jù)數(shù)據(jù)塊的使用頻率,通過(guò)將部分使用頻率低的、暫時(shí)未用的內(nèi)存數(shù)據(jù)塊轉(zhuǎn)移為外存數(shù)據(jù)塊。數(shù)據(jù)塊使用方式判斷所需操作的數(shù)據(jù)塊,當(dāng)其為內(nèi)存數(shù)據(jù)塊時(shí),應(yīng)用程序?qū)ζ渲苯訄?zhí)行操作,當(dāng)其為外存數(shù)據(jù)塊時(shí),先將其轉(zhuǎn)換為內(nèi)存數(shù)據(jù)塊再對(duì)其進(jìn)行操作。文檔編號(hào)G06F12/02GK102253893SQ20111008297公開(kāi)日2011年11月23日申請(qǐng)日期2011年4月2日優(yōu)先權(quán)日2011年4月2日發(fā)明者趙悅申請(qǐng)人:趙悅
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
惠东县| 西贡区| 盐边县| 泽州县| 丽水市| 北宁市| 清流县| 浪卡子县| 固始县| 昭通市| 南城县| 澄迈县| 容城县| 峨边| 运城市| 铅山县| 永城市| 西畴县| 平原县| 宜兰县| 阿克苏市| 灵武市| 乐陵市| 新巴尔虎左旗| 美姑县| 南汇区| 三亚市| 东阿县| 措勤县| 乌拉特后旗| 秦安县| 凤城市| 辽阳县| 曲阳县| 南丹县| 光泽县| 湖北省| 正安县| 合山市| 九江县| 咸丰县|