專利名稱:內(nèi)存分配及管理的方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種內(nèi)存分配及管理的方法,且特別是有關(guān)于一種不具有 操作系統(tǒng)的內(nèi)存分配及管理的方法。
背景技術(shù):
隨著計(jì)算機(jī)的發(fā)展日新月異,計(jì)算機(jī)應(yīng)用范圍也從早期的科學(xué)計(jì)算,到數(shù) 據(jù)處理、生產(chǎn)管理、計(jì)算機(jī)輔助系統(tǒng)及通信聯(lián)絡(luò)等與人類生活相關(guān)的各個(gè)層面。 電子產(chǎn)業(yè)中,內(nèi)存裝置對(duì)于各種運(yùn)算系統(tǒng)、計(jì)算機(jī)、及外圍裝置中皆有相當(dāng)重 要的應(yīng)用,隨著對(duì)系統(tǒng)的操作速度及效能的日益提高,對(duì)于內(nèi)存的速度及其管 理的要求亦隨之提高。
在具有操作系統(tǒng)(operatkm system; OS)的環(huán)境下,內(nèi)存的管理與分配會(huì)由 一套對(duì)應(yīng)的算法(algorithms)進(jìn)行實(shí)做,使程序設(shè)計(jì)師在開(kāi)發(fā)軟件的時(shí)候,可以 不用考慮到內(nèi)存有效的使用與分配。
但是,若是在不具有操作系統(tǒng)的環(huán)境,或是己經(jīng)分配到一塊內(nèi)存空間后, 如何在此環(huán)境中自行管理與使用內(nèi)存,尤其是簡(jiǎn)單而有效率的使用內(nèi)存,便成 為一個(gè)重要的課題。
因此本發(fā)明提出了一種可在不具有操作系統(tǒng)的環(huán)境下,分配及管理操作系 統(tǒng)的方法。
發(fā)明內(nèi)容
因此本發(fā)明的目的就是在提供一種內(nèi)存分配及管理的方法,以在不具有操 作系統(tǒng)的環(huán)境下管理及分配內(nèi)存。
為了實(shí)現(xiàn)上述目的,本發(fā)明提出一種內(nèi)存分配及管理的方法,以在不具有
操作系統(tǒng)的環(huán)境下,分配一內(nèi)存的空間,包含接收一分配要求;搜尋內(nèi)存,
以得到符合分配要求的多個(gè)內(nèi)存區(qū)塊;在符合要求的內(nèi)存區(qū)塊中,選出一最小 內(nèi)存區(qū)塊;將分配要求分配至最小內(nèi)存區(qū)塊,使最小內(nèi)存區(qū)塊切割為一己使用
4內(nèi)存區(qū)塊與一未使用內(nèi)存區(qū)塊;提供一第一區(qū)塊標(biāo)頭給已使用內(nèi)存區(qū)塊;以及 提供一第二區(qū)塊標(biāo)頭給未使用內(nèi)存區(qū)塊。
提供第一區(qū)塊標(biāo)頭的步驟包含將一次一區(qū)塊標(biāo)頭的位置寫(xiě)入第一區(qū)塊標(biāo) 頭的第四字段,將已使用內(nèi)存區(qū)塊的大小寫(xiě)入第一區(qū)塊標(biāo)頭的第五字段,將第 一區(qū)塊標(biāo)頭的第六字段標(biāo)記為已使用。提供一第二區(qū)塊標(biāo)頭的步驟包含將一次 一區(qū)塊標(biāo)頭的位置寫(xiě)入第二區(qū)塊標(biāo)頭的第四字段,將未使用內(nèi)存區(qū)塊的大小寫(xiě) 入第二區(qū)塊標(biāo)頭的第五字段,將第二區(qū)塊標(biāo)頭的第六字段標(biāo)記為未使用。此方 法更包含修改內(nèi)存的一內(nèi)存標(biāo)頭。
為了實(shí)現(xiàn)上述目的,本發(fā)明的另一實(shí)施例是提供一種內(nèi)存分配及管理的方 法,以在不具有操作系統(tǒng)的環(huán)境下,釋放一內(nèi)存的空間,包含接收內(nèi)存區(qū)塊 的釋放要求;判斷所釋放的內(nèi)存區(qū)塊的的前一內(nèi)存區(qū)塊與后一內(nèi)存區(qū)塊是否被 使用;以及修改所釋放的內(nèi)存區(qū)塊的區(qū)塊標(biāo)頭,將區(qū)塊標(biāo)頭中的第六字段標(biāo)示 為未使用。
其中當(dāng)前一內(nèi)存區(qū)塊未被使用時(shí),包含合并前一內(nèi)存區(qū)塊與所釋放的內(nèi)存 區(qū)塊,其中還包含修改前一內(nèi)存區(qū)塊的一區(qū)塊標(biāo)頭,以及刪除所釋放的內(nèi)存區(qū) 塊的區(qū)塊標(biāo)頭。當(dāng)后一內(nèi)存區(qū)塊未被使用時(shí),包含合并后一內(nèi)存區(qū)塊及所釋放 的內(nèi)存區(qū)塊,其中還包含修改所釋放的內(nèi)存區(qū)塊的區(qū)塊標(biāo)頭,并刪除后一內(nèi)存 區(qū)塊的區(qū)塊標(biāo)頭。此方法中還包含修改內(nèi)存的一內(nèi)存標(biāo)頭。
本發(fā)明的內(nèi)存分配與管理的方法可透過(guò)簡(jiǎn)單而有效率的方式,在不具有操 作系統(tǒng)的環(huán)境下,如Option ROM的環(huán)境下,自行分配與管理內(nèi)存空間。Option ROM可包含在基本輸入輸出系統(tǒng)(Basic Input-output system; BIOS)之中,或是 建在視頻圖形陣列卡(VGA card)、局域網(wǎng)絡(luò)卡(Lan card)、磁盤(pán)陣列卡(RAID card)等硬件上。
為讓本發(fā)明的所述和其它目的、^r征、優(yōu)點(diǎn)與實(shí)施例能更明顯易懂,所附
附圖的詳細(xì)說(shuō)明如下
圖1是本發(fā)明的內(nèi)存分配及管理的方法一較佳實(shí)施例的示意圖2是本發(fā)明的內(nèi)存分配及管理方法第一實(shí)施例的流程圖3A與圖3B是本發(fā)明的內(nèi)存分配及管理方法第一實(shí)施例的實(shí)施示意圖;圖4是本發(fā)明的內(nèi)存分配及管理的方法第二實(shí)施例的流程圖5A及圖5B是本發(fā)明的內(nèi)存分配及管理方法第二實(shí)施例的實(shí)施示意圖;圖6A與圖6B是本發(fā)明的內(nèi)存分配與管理方法第二實(shí)施例的另一實(shí)施示意圖。
主要組件符號(hào)說(shuō)明
100:內(nèi)存102:已使用內(nèi)存區(qū)塊
104:未使用內(nèi)存區(qū)塊110:內(nèi)存標(biāo)頭
112:第一字段114:第二字段
116:第三字段120:區(qū)塊標(biāo)頭
122:第四字段124:第五字段
126:第六字段210 260:步驟
300:內(nèi)存302:內(nèi)存標(biāo)頭
304:第一字段306:第二字段
308:第三字段310:內(nèi)存區(qū)塊
312:區(qū)塊標(biāo)頭314:第四字段
316:第五字段318:第六字段
330:己使用內(nèi)存區(qū)塊332:第一區(qū)塊標(biāo)頭
334:第四字段336:第五字段
338:第六字段340:未使用內(nèi)存區(qū)塊
342:第二區(qū)塊標(biāo)頭344:第四字段
346:第五字段348:第六字段
410 470:步驟500:內(nèi)存
510:第一內(nèi)存區(qū)塊520:第二內(nèi)存區(qū)塊
522:第二區(qū)塊標(biāo)頭528:第六字段
530:第三內(nèi)存區(qū)塊600:內(nèi)存
610:第一內(nèi)存區(qū)塊612:第一區(qū)塊標(biāo)頭
614:第四字段616:第五字段618:第六字段620:第二內(nèi)存區(qū)塊
622:第二區(qū)塊標(biāo)頭630:第三內(nèi)存區(qū)塊
632:第三區(qū)塊標(biāo)頭640:較大內(nèi)存區(qū)塊
具體實(shí)施例方式
以下將以附圖及詳細(xì)說(shuō)明清楚說(shuō)明本發(fā)明的精神,任何所屬技術(shù)領(lǐng)域中具有通常知識(shí)者在了解本發(fā)明的較佳實(shí)施例后,當(dāng)可由本發(fā)明所教示的技術(shù),加以改變及修飾,其并不脫離本發(fā)明的精神與范圍。
當(dāng)內(nèi)存要求一塊連續(xù)的內(nèi)存空間時(shí),即便是所有未使用的片段
(fragmentation)的內(nèi)存空間加起來(lái)的和滿足需求,仍無(wú)法符合連續(xù)空間的內(nèi)存需求,此次要求失敗。因此,本發(fā)明便提出一種內(nèi)存分配與管理的方法,特別是應(yīng)用在無(wú)操作系統(tǒng)的環(huán)境下進(jìn)行動(dòng)態(tài)配置,以在不知道接下來(lái)所需要內(nèi)存大小或是不知道被釋放的空間的大小時(shí),盡可能的分配出一大塊的連續(xù)內(nèi)存空間。
參照?qǐng)D1,其是本發(fā)明的內(nèi)存分配及管理的方法一較佳實(shí)施例的示意圖。內(nèi)存100具有一內(nèi)存標(biāo)頭(memory header)110,而在每一次分配內(nèi)存時(shí),在已使用內(nèi)存區(qū)塊102與未使用內(nèi)存區(qū)塊104中加入?yún)^(qū)塊標(biāo)頭(block header)120,以記錄內(nèi)存分配的相關(guān)信息。
內(nèi)存標(biāo)頭110中包含有一第一字段112、一第二字段114、一第三字段116。其中第一字段112是用以記錄第一個(gè)區(qū)塊標(biāo)頭120的起始位置,第二字段114是用以記錄整塊內(nèi)存100空間的大小,第三字段116則是用以記錄已分配出出去的內(nèi)存空間大小。其中第一字段112、第二字段114、第三字段116各占用4個(gè)位(byte),內(nèi)存標(biāo)頭110共占用12個(gè)位。
區(qū)塊標(biāo)頭120中則包含有一第四字段122、 一第五字段124、 一第三字段126。其中第四字段122是用以記錄次一區(qū)塊標(biāo)頭的起始位置,第五字段124是用以記錄此己使用內(nèi)存區(qū)塊102或未使用內(nèi)存區(qū)塊104的大小。第六字段126則是表示此區(qū)塊是為已使用或是未使用。其中第四字段122、第五字段124各占用4個(gè)位,第六字段126占用1個(gè)位,每一個(gè)區(qū)塊標(biāo)頭120共占用9個(gè)位,所占用的空間相當(dāng)少,可以提供更多的內(nèi)存空間以供分配,并通過(guò)第六標(biāo)頭126標(biāo)示區(qū)塊的狀態(tài),讓分配更為容易。
參照?qǐng)D2,其是本發(fā)明的內(nèi)存分配及管理方法第一實(shí)施例的流程圖。本實(shí)施例是用以在接收到分配內(nèi)存要求時(shí),找出片段的內(nèi)存區(qū)塊中最小可被利用的內(nèi)存空間進(jìn)行分配,以保留區(qū)塊較大的內(nèi)存,預(yù)留給之后的要求。步驟210為接收一分配內(nèi)存的要求,步驟220為搜尋目前符合此要求大小的未使用內(nèi)存區(qū)塊,若是找不到符合要求的未使用內(nèi)存區(qū)塊,則進(jìn)入步驟230,回復(fù)結(jié)果為零。若是找到符合要求的未使用內(nèi)存區(qū)塊,則進(jìn)入步驟240,在這些符合要求的未使用內(nèi)存區(qū)塊中,選出一個(gè)最小且符合要求的內(nèi)存區(qū)塊對(duì)其分配,接著,步驟250為在分配到的內(nèi)存區(qū)塊加入?yún)^(qū)塊標(biāo)頭,并將對(duì)應(yīng)的數(shù)據(jù)寫(xiě)入?yún)^(qū)塊標(biāo)頭中的第四字段、第五字段,并更改第六字段中的狀態(tài)。最后,步驟260為修改內(nèi)存標(biāo)頭中的第三字段。
參照?qǐng)D3A與圖3B,其是本發(fā)明的內(nèi)存分配及管理方法第一實(shí)施例的實(shí)施示意圖。圖3A中,內(nèi)存300只有在起始位置的一大塊未使用內(nèi)存區(qū)塊310符合此次要求,內(nèi)存標(biāo)頭302中的第一字段304記錄此內(nèi)存區(qū)塊310的區(qū)塊標(biāo)頭312位置,第二字段306為記錄全部?jī)?nèi)存空間的大小,第三字段308為記錄已分配的內(nèi)存大小。內(nèi)存區(qū)塊310的區(qū)塊標(biāo)頭312的第四區(qū)塊314則是記錄次一區(qū)塊標(biāo)頭(圖中未顯示)的位置,第五字段316則是記錄此內(nèi)存區(qū)塊310的區(qū)塊大小,第六字段318則是表示此區(qū)塊未被使用。
將要求分配至此內(nèi)存區(qū)塊310后,如圖3B所示,此區(qū)塊被分割為已使用內(nèi)存區(qū)塊330及未使用內(nèi)存區(qū)塊340,并在已使用內(nèi)存區(qū)塊330與未使用內(nèi)存區(qū)塊340之前各自提供第一區(qū)塊標(biāo)頭332、第二區(qū)塊標(biāo)頭342,其中已使用內(nèi)存區(qū)塊330的大小為按照此次要求分配。
內(nèi)存標(biāo)頭302的第一字段304為指向已使用內(nèi)存區(qū)塊330的第一區(qū)塊標(biāo)頭332的起始位置,第二字段306為記錄所有內(nèi)存空間的大小,第三字段308則為記錄以分配出去的內(nèi)存空間大小。
已使用內(nèi)存區(qū)塊330的第一區(qū)塊標(biāo)頭332可沿用原區(qū)塊標(biāo)頭312的位置,第一區(qū)塊標(biāo)頭332的第四字段334為指向次一內(nèi)存區(qū)塊,即未使用內(nèi)存區(qū)塊340的第二區(qū)塊標(biāo)頭342的起始位置。第一區(qū)塊標(biāo)頭332的第五字段336則是用以記錄此分配的已使用內(nèi)存區(qū)塊330的大小,第六字段338則是標(biāo)記此區(qū)塊為已使用。
未使用內(nèi)存區(qū)塊340的第二區(qū)塊標(biāo)頭342的第四字段344為指向其次一內(nèi)存區(qū)塊(圖中未示)的區(qū)塊標(biāo)頭起始位置,第五字段346為記錄此未使用內(nèi)存區(qū)塊340的大小,以提供下次要求進(jìn)行比對(duì)。第六字段348標(biāo)記此區(qū)塊未被使用。
本發(fā)明的內(nèi)存分配及管理方法,可透過(guò)區(qū)塊標(biāo)頭了解每一個(gè)內(nèi)存區(qū)塊的起始位置、區(qū)塊大小、使用狀態(tài),以在標(biāo)記為未使用的內(nèi)存區(qū)塊中選取一個(gè)符合分配要求的最小內(nèi)存區(qū)塊進(jìn)行分配,繼而保留較大的內(nèi)存區(qū)塊給之后的要求。參照?qǐng)D,其是本發(fā)明的內(nèi)存分配及管理的方法第二實(shí)施例的流程圖。本實(shí)施例是用以在完成指令之后,改寫(xiě)區(qū)塊標(biāo)頭的第六字段,將此內(nèi)存區(qū)塊標(biāo)記為未使用,以釋放此內(nèi)存區(qū)塊的空間,并更新內(nèi)存標(biāo)頭的第三字段中的已分配內(nèi)存大小的數(shù)據(jù)。
步驟410為接收釋放一內(nèi)存區(qū)塊的要求,步驟420為判斷所釋放的內(nèi)存區(qū)塊的前后區(qū)塊是否均被使用,如前后的內(nèi)存區(qū)塊均被使用,則進(jìn)入步驟430,修改所釋放的內(nèi)存區(qū)塊的區(qū)塊標(biāo)頭中的第六字段,將其標(biāo)記為未使用,接著,步驟440為回復(fù)動(dòng)作完成。
若是在步驟420中,所釋放的內(nèi)存區(qū)塊的前一內(nèi)存區(qū)塊及/或后一內(nèi)存區(qū)塊未被使用,則進(jìn)入步驟450,合并所釋放的內(nèi)存區(qū)塊與未使用的前一內(nèi)存區(qū)塊及/或后一內(nèi)存區(qū)塊。步驟450中,還包含有保留排列在前的區(qū)塊標(biāo)頭,刪除排列在后的區(qū)塊標(biāo)頭,以釋放區(qū)塊標(biāo)頭所占用的空間。步驟460中,還包含將合并后的未使用內(nèi)存區(qū)塊的數(shù)據(jù)寫(xiě)入所保留的區(qū)塊標(biāo)頭,并進(jìn)一步修改內(nèi)存標(biāo)頭中的數(shù)據(jù)。接著步驟470為回復(fù)動(dòng)作完成。
同時(shí)參照?qǐng)D5A及圖5B,其是本發(fā)明的內(nèi)存分配及管理方法第二實(shí)施例的實(shí)施示意圖。圖5A中,內(nèi)存500中包含有一第一內(nèi)存區(qū)塊510、 一第二內(nèi)存區(qū)塊520、 一第三內(nèi)存區(qū)塊530。此時(shí),第一內(nèi)存區(qū)塊510、第二內(nèi)存區(qū)塊520、第三內(nèi)存區(qū)塊530均是處于使用狀態(tài)中。
圖5B中,第二內(nèi)存區(qū)塊520的工作已經(jīng)結(jié)束,其前后的第一內(nèi)存區(qū)塊510與第三內(nèi)存區(qū)塊530的工作仍在進(jìn)行中。在將第二內(nèi)存區(qū)塊520釋放出來(lái)后,修改第二內(nèi)存區(qū)塊520的第二區(qū)塊標(biāo)頭522中的第六字段528,將第六字段528的狀態(tài)改為未使用,并進(jìn)一步修改內(nèi)存標(biāo)頭(圖中未示)中的第三字段。
同時(shí)參照?qǐng)D6A與圖6B,其是本發(fā)明的內(nèi)存分配與管理方法第二實(shí)施例的另一實(shí)施示意圖。本實(shí)施例中,內(nèi)存600中包含有一第一內(nèi)存區(qū)塊610、 一第二內(nèi)存區(qū)塊620、 一第三內(nèi)存區(qū)塊630,其中第二內(nèi)存區(qū)塊620已被分配出去進(jìn)行工作,在其前后的第一內(nèi)存區(qū)塊610與第三內(nèi)存區(qū)塊630則是未被使用。當(dāng)?shù)诙?nèi)存區(qū)塊620的工作結(jié)束后,第二內(nèi)存區(qū)塊620的空間可被釋放出來(lái)。
由于第二內(nèi)存區(qū)塊620前后的第一內(nèi)存區(qū)塊610與第二內(nèi)存區(qū)塊630均是
9未使用的內(nèi)存區(qū)塊,因此,在將第二內(nèi)存區(qū)塊620釋放后,可合并第一內(nèi)存區(qū) 塊610、第二內(nèi)存區(qū)塊620、第三內(nèi)存區(qū)塊630為如第6B圖中所示的一塊較 大內(nèi)存區(qū)塊640。
其中,排列在前的第一區(qū)塊標(biāo)頭612在合并時(shí)被保留,排列在后的第二區(qū) 塊標(biāo)頭622與第三區(qū)塊標(biāo)頭632則被刪除,以釋放第二區(qū)塊標(biāo)頭622與第三區(qū) 塊標(biāo)頭632的空間。圖6B中,第一區(qū)塊標(biāo)頭612為記錄此較大內(nèi)存區(qū)塊640 的數(shù)據(jù),第四字段614為指向次一內(nèi)存區(qū)塊的區(qū)塊標(biāo)頭的起始位置,第五字段 616為記錄此較大內(nèi)存區(qū)塊640的空間大小,第六字段618為標(biāo)示此較大內(nèi)存 區(qū)塊640為未使用狀態(tài),并進(jìn)一步修改內(nèi)存標(biāo)頭(圖中未示)的第三字段。
本發(fā)明的內(nèi)存分配與管理的方法可透過(guò)簡(jiǎn)單而有效率的方式,在不具有操 作系統(tǒng)的環(huán)境下,如Option ROM的環(huán)境下,自行分配與管理內(nèi)存空間。Option ROM可包含在基本輸入輸出系統(tǒng)(Basic Input-output system; BIOS)之中,或是 建在視頻圖形陣列卡(VGA card)、局域網(wǎng)絡(luò)卡(Lan card)、磁盤(pán)陣列卡(RAID card)等硬件上。
雖然本發(fā)明己以一較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何 熟悉此技術(shù)的人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動(dòng)與潤(rùn) 飾,因此本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求書(shū)所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種內(nèi)存分配及管理的方法,其特征在于,以在不具有操作系統(tǒng)的環(huán)境下,分配一內(nèi)存的空間,包含接收一分配要求;搜尋該內(nèi)存,以得到符合該分配要求的多個(gè)內(nèi)存區(qū)塊;在符合要求的所述多個(gè)內(nèi)存區(qū)塊中,選出一最小內(nèi)存區(qū)塊;將該分配要求分配至該最小內(nèi)存區(qū)塊,使該最小內(nèi)存區(qū)塊切割為一已使用內(nèi)存區(qū)塊與一未使用內(nèi)存區(qū)塊;提供一第一區(qū)塊標(biāo)頭給該已使用內(nèi)存區(qū)塊;以及提供一第二區(qū)塊標(biāo)頭給該未使用內(nèi)存區(qū)塊。
2. 根據(jù)權(quán)利要1所述的內(nèi)存分配及管理的方法,其特征在于,提供一第一 區(qū)塊標(biāo)頭的步驟包含將一次一區(qū)塊標(biāo)頭的位置寫(xiě)入該第一區(qū)塊標(biāo)頭的一第四字段。
3. 根據(jù)權(quán)利要1所述的內(nèi)存分配及管理的方法,其特征在于,提供一第一區(qū)塊標(biāo)頭的步驟包含將該己使用內(nèi)存區(qū)塊的大小寫(xiě)入該第一區(qū)塊標(biāo)頭的一第五字段。
4. 根據(jù)權(quán)利要1所述的內(nèi)存分配及管理的方法,其特征在于,提供一第一區(qū)塊標(biāo)頭的步驟包含將該第一區(qū)塊標(biāo)頭的一第六字段標(biāo)記為已使用。
5. 根據(jù)權(quán)利要1所述的內(nèi)存分配及管理的方法,其特征在于,提供一第二區(qū)塊標(biāo)頭的步驟包含將一次一區(qū)塊標(biāo)頭的位置寫(xiě)入該第二區(qū)塊標(biāo)頭的一第四字段。
6. 根據(jù)權(quán)利要1所述的內(nèi)存分配及管理的方法,其特征在于,提供一第二區(qū)塊標(biāo)頭的步驟包含將該未使用內(nèi)存區(qū)塊的大小寫(xiě)入該第二區(qū)塊標(biāo)頭的一第五字段。
7. 根據(jù)權(quán)利要1所述的內(nèi)存分配及管理的方法,其特征在于,提供一第二區(qū)塊標(biāo)頭的步驟包含將該第二區(qū)塊標(biāo)頭的一第六字段標(biāo)記為未使用。
8. —種內(nèi)存分配及管理的方法,其特征在于,以在不具有操作系統(tǒng)的環(huán)境下,釋放一內(nèi)存的空間,包含接收一內(nèi)存區(qū)塊的釋放要求;判斷所釋放的該內(nèi)存區(qū)塊的的一前一內(nèi)存區(qū)塊與一后一內(nèi)存區(qū)塊是否被使用;以及修改所釋放的該內(nèi)存區(qū)塊的一區(qū)塊標(biāo)頭,將該區(qū)塊標(biāo)頭中的一第六字段標(biāo) 示為未使用。
9. 根據(jù)權(quán)利要8所述的內(nèi)存分配及管理的方法,其特征在于,當(dāng)該前一 內(nèi)存區(qū)塊未被使用時(shí),包含合并該前一內(nèi)存區(qū)塊與所釋放的該內(nèi)存區(qū)塊。
10. 根據(jù)權(quán)利要8所述的內(nèi)存分配及管理的方法,其特征在于,當(dāng)該后一 內(nèi)存區(qū)塊未被使用時(shí),包含合并該后一內(nèi)存區(qū)塊及所釋放的該內(nèi)存區(qū)塊。
全文摘要
本發(fā)明涉及一種內(nèi)存分配及管理的方法,以在不具有操作系統(tǒng)的環(huán)境下,分配內(nèi)存的空間,包含接收一分配要求;搜尋內(nèi)存,以得到符合分配要求的多個(gè)內(nèi)存區(qū)塊;在符合要求的內(nèi)存區(qū)塊中,選出一最小內(nèi)存區(qū)塊;將分配要求分配至最小內(nèi)存區(qū)塊,使最小內(nèi)存區(qū)塊切割為一已使用內(nèi)存區(qū)塊與一未使用內(nèi)存區(qū)塊;提供一第一區(qū)塊標(biāo)頭給已使用內(nèi)存區(qū)塊;以及提供一第二區(qū)塊標(biāo)頭給未使用內(nèi)存區(qū)塊。
文檔編號(hào)G06F12/02GK101676883SQ20081021152
公開(kāi)日2010年3月24日 申請(qǐng)日期2008年9月17日 優(yōu)先權(quán)日2008年9月17日
發(fā)明者鄭仰民 申請(qǐng)人:英業(yè)達(dá)股份有限公司