国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      內(nèi)存配置方法與系統(tǒng)的制作方法

      文檔序號(hào):6556914閱讀:215來源:國知局
      專利名稱:內(nèi)存配置方法與系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種內(nèi)存的配置方法,特別涉及一種可減少內(nèi)存斷裂的內(nèi)存配置方法與系統(tǒng)。
      背景技術(shù)
      在嵌入式系統(tǒng)中因?yàn)閮?nèi)存容量的限制,一般都使用堆積內(nèi)存(HeapMemory)作為動(dòng)態(tài)內(nèi)存的配置。這樣的好處是應(yīng)用程序只有在需要使用內(nèi)存才配置,而且應(yīng)用程序在使用結(jié)束后可以將原先配置的內(nèi)存歸還,利用這樣的方式以提供內(nèi)存的使用效率。不過在系統(tǒng)中若同時(shí)有多個(gè)應(yīng)用程序配置內(nèi)存,但其各自使用內(nèi)存的行為都不盡相同,雖然應(yīng)用程序在使用程序結(jié)束后會(huì)歸還所配置的內(nèi)存,不過未被使用的內(nèi)存卻被分散成許多存儲(chǔ)塊,造成了內(nèi)存斷裂的情形(memory fragment),嚴(yán)重影響內(nèi)存使用的效能。請(qǐng)參考圖1。圖1為一種現(xiàn)有內(nèi)存的配置方式造成的內(nèi)存斷裂的示意圖。在步驟S11中,內(nèi)存10被初始化,因此整個(gè)內(nèi)存10都是可被使用的。在步驟S12中,程序A、B、C分別要求內(nèi)存,因此內(nèi)存10分別配置存儲(chǔ)塊11、12以及13供程序A、B、C使用,此時(shí)內(nèi)存10中可用的內(nèi)存只剩下可用存儲(chǔ)塊14。在步驟S13中,程序B結(jié)束使用,因此歸還存儲(chǔ)塊12,此時(shí)內(nèi)存10中可用的內(nèi)存有可用存儲(chǔ)塊14以及16,這就是所謂的內(nèi)存斷裂的情形。從內(nèi)存的容量觀點(diǎn)來看,此時(shí)內(nèi)存可使用的容量大小為存儲(chǔ)塊14以及16容量大小的總和,但實(shí)際上若有另外一個(gè)應(yīng)用程序要求配置的內(nèi)存大小大于存儲(chǔ)塊14以及16中容量較大者時(shí),便會(huì)產(chǎn)生內(nèi)存不足的情形,應(yīng)用程序便無法順利要求到內(nèi)存來使用。

      發(fā)明內(nèi)容
      本發(fā)明的目的為提供一種減少內(nèi)存斷裂的內(nèi)存配置方法與系統(tǒng)。
      本發(fā)明提供一種內(nèi)存配置方法,包括下列步驟提供一內(nèi)存,該內(nèi)存的存儲(chǔ)塊具有一第一端與一第二端;提供一內(nèi)存控制器;選擇一內(nèi)存配置方向,其中當(dāng)選擇一第一配置方向?yàn)樵搩?nèi)存配置方向時(shí),則該第一端為該第一配置方向的起點(diǎn);當(dāng)選擇一第二配置方向?yàn)樵搩?nèi)存配置方向時(shí),則該第二端為該第二配置方向的起點(diǎn);該內(nèi)存控制器根據(jù)一應(yīng)用程序的內(nèi)存配置方向以配置該內(nèi)存供該應(yīng)用程序使用。
      本發(fā)明更提供一種內(nèi)存配置系統(tǒng),包括一應(yīng)用程序、一內(nèi)存、一內(nèi)存控制器以及一內(nèi)存配置表。該內(nèi)存的存儲(chǔ)塊具有一第一端與一第二端。當(dāng)該應(yīng)用程序向該內(nèi)存控制器請(qǐng)求該內(nèi)存的一內(nèi)存塊時(shí),該內(nèi)存控制器查詢?cè)搩?nèi)存配置表,并根據(jù)該應(yīng)用程序的配置方向配置該內(nèi)存塊以供該應(yīng)用程序使用。
      為讓本發(fā)明的上述和其它目的、特征、和優(yōu)點(diǎn)能更明顯易懂,下文特舉出較佳實(shí)施例,并配合附圖,作詳細(xì)說明如下。


      圖1為一種現(xiàn)有內(nèi)存的配置方式造成的內(nèi)存斷裂的示意圖。
      圖2為根據(jù)本發(fā)明的一流程圖。
      圖3為根據(jù)本發(fā)明的內(nèi)存配置表的一實(shí)施例。
      圖4為根據(jù)圖3的內(nèi)存配置表的一內(nèi)存配置示意圖。
      圖5為根據(jù)圖3的內(nèi)存配置表的另一內(nèi)存配置示意圖。
      圖6為根據(jù)本發(fā)明的內(nèi)存配置系統(tǒng)的一實(shí)施例示意圖。
      附圖符號(hào)說明S11、S12、S13、S41、S42、S43、S44、S45、S51、S52、S53、S54-內(nèi)存配置示意圖11、12、13、41、42、43、44、48、51、52、54-存儲(chǔ)塊14、16、45、46、47、49、53、55-可用內(nèi)存S20-查詢內(nèi)存配置表中是否有該應(yīng)用程序的配置方向S21-根據(jù)該配置方向配置內(nèi)存供應(yīng)用程序使用S22-以一預(yù)定內(nèi)存配置方向配置內(nèi)存供應(yīng)用程序使用S23-是否建立該應(yīng)用程序的使用記錄?S24-記錄該應(yīng)用程序的使用時(shí)間S25-根據(jù)該使用時(shí)間決定該應(yīng)用程序的配置方向S26-將該應(yīng)用程序及其配置方向記錄在內(nèi)存配置表61-應(yīng)用程序
      62-內(nèi)存控制器63-內(nèi)存配置表64-內(nèi)存具體實(shí)施方式
      圖2為根據(jù)本發(fā)明的一流程圖。當(dāng)應(yīng)用程序在呼叫操作系統(tǒng)要求一存儲(chǔ)塊時(shí),操作系統(tǒng)先查詢內(nèi)存配置表中是否有該應(yīng)用程序的配置方向(步驟S20)。若有,則根據(jù)該配置方向配置內(nèi)存供應(yīng)用程序使用(步驟S21),若內(nèi)存配置表中沒有該應(yīng)用程序的配置方向,則以一預(yù)定內(nèi)存配置方向配置內(nèi)存供應(yīng)用程序使用(步驟S22)。接著操作系統(tǒng)會(huì)決定是否要建立該應(yīng)用程序的使用記錄(步驟S23),若不記錄,則結(jié)束該流程,若要記錄則跳到步驟S24。在步驟S24中,記錄該應(yīng)用程序的使用時(shí)間,且根據(jù)該使用時(shí)間決定該應(yīng)用程序的配置方向(步驟S25)。最后將該應(yīng)用程序及其配置方向記錄在內(nèi)存配置表后(步驟S26),結(jié)束整個(gè)流程。
      在步驟S20中的內(nèi)存配置表中儲(chǔ)存有多個(gè)應(yīng)用程序的使用時(shí)間與其對(duì)應(yīng)的內(nèi)存配置方向。在本發(fā)明中,會(huì)根據(jù)所述應(yīng)用程序的使用時(shí)間決定一預(yù)定時(shí)間,其中該預(yù)定時(shí)間可能為所述應(yīng)用程序的使用時(shí)間的一平均值、中數(shù)或任何數(shù)學(xué)計(jì)算的結(jié)果。在本發(fā)明中,若一應(yīng)用程序的使用時(shí)間與內(nèi)存配置方向在內(nèi)存配置表中無法查詢得到,則會(huì)以一預(yù)定的內(nèi)存配置方向配置內(nèi)存供該應(yīng)用程序使用,且會(huì)在內(nèi)存配置表新增該應(yīng)用程序的使用時(shí)間與內(nèi)存配置方向,并重新計(jì)算該預(yù)定時(shí)間。
      在本發(fā)明中,內(nèi)存配置方向包括該內(nèi)存的一第一端或是一第二端。若應(yīng)用程序的使用時(shí)間大于該預(yù)定時(shí)間,則該應(yīng)用程序的內(nèi)存配置方向?yàn)樵摰谝欢?;若該?yīng)用程序的使用時(shí)間小于該預(yù)定時(shí)間時(shí),該應(yīng)用程序配置方向?yàn)閮?nèi)存的該第二端。此外,在本發(fā)明中以該內(nèi)存的該第二端為該預(yù)定的內(nèi)存配置方向。
      圖3為根據(jù)本發(fā)明的內(nèi)存配置表的一實(shí)施例。在圖3中,記錄應(yīng)用程序A-J的使用時(shí)間,再根據(jù)這些使用時(shí)間決定一預(yù)定時(shí)間。當(dāng)應(yīng)用程序的使用時(shí)間大于該預(yù)定時(shí)間時(shí),該應(yīng)用程序的配置方向?yàn)榈谝欢?。?dāng)應(yīng)用程序的使用時(shí)間小于該預(yù)定時(shí)間時(shí),該應(yīng)用程序的配置方向?yàn)榈诙恕T诒緦?shí)施例中,該預(yù)定時(shí)間是以應(yīng)用程序A-J的平均使用時(shí)間(47.5分鐘)為標(biāo)準(zhǔn),亦可以應(yīng)用程序A-J使用時(shí)間的中數(shù)(45分鐘)或是任何一時(shí)間值皆可。
      圖4為根據(jù)圖3的內(nèi)存配置表的一內(nèi)存配置示意圖。在本實(shí)施例中,當(dāng)應(yīng)用程序的配置方向?yàn)榈谝欢藭r(shí),其內(nèi)存配置方向?yàn)橛蓛?nèi)存40的尾端向上配置;當(dāng)應(yīng)用程序的配置方向?yàn)榈诙藭r(shí),其內(nèi)存配置方向?yàn)橛蓛?nèi)存40的頂端向下配置。在步驟S41中,內(nèi)存40配置一存儲(chǔ)塊41給應(yīng)用程序A使用,一存儲(chǔ)塊42給應(yīng)用程序B使用。在步驟S42中,應(yīng)用程序C向系統(tǒng)要求配置一存儲(chǔ)塊時(shí),經(jīng)系統(tǒng)查詢圖3中的內(nèi)存配置表后,得知應(yīng)用程序C的配置方向?yàn)榈诙耍虼擞煽捎脙?nèi)存45的頂端向下配置一存儲(chǔ)塊43給應(yīng)用程序C使用。在步驟S43中,應(yīng)用程序D向系統(tǒng)要求配置一存儲(chǔ)塊時(shí),經(jīng)系統(tǒng)查詢圖3中的內(nèi)存配置表后,得知應(yīng)用程序D的配置方向?yàn)榈谝欢?,因此由可用?nèi)存46的尾端向上配置一存儲(chǔ)塊44給應(yīng)用程序C使用。
      在步驟S44中,應(yīng)用程序A在使用結(jié)束后歸還存儲(chǔ)塊41給系統(tǒng),此時(shí)存儲(chǔ)塊41為可用內(nèi)存。在步驟中,應(yīng)用程序E向系統(tǒng)要求配置一存儲(chǔ)塊時(shí),經(jīng)系統(tǒng)查詢圖3中的內(nèi)存配置表后,得知應(yīng)用程序E的配置方向?yàn)榈诙?,此時(shí)系統(tǒng)判別應(yīng)用程序E所需的內(nèi)存大小,若其小于存儲(chǔ)塊41,則由存儲(chǔ)塊41的頂端向下配置一存儲(chǔ)塊供應(yīng)用程序E使用。若應(yīng)用程序E所需的內(nèi)存大小大于存儲(chǔ)塊41,則由可用內(nèi)存47的頂端向下配置一存儲(chǔ)塊供應(yīng)用程序E使用。在本實(shí)施例中,應(yīng)用程序E所需的內(nèi)存小于存儲(chǔ)塊41,因此由存儲(chǔ)塊41的頂端向下配置一存儲(chǔ)塊48供應(yīng)用程序E使用。
      為更清楚說明本發(fā)明,請(qǐng)參考圖5。圖5為根據(jù)圖3的內(nèi)存配置表的另一內(nèi)存配置示意圖。在本實(shí)施例中,內(nèi)存50的大小為1000H×20H位。在步驟S51中,應(yīng)用程序A要求一80H×20H位大小的存儲(chǔ)塊,因?yàn)閼?yīng)用程序A的配置方向?yàn)榈诙?,因此?nèi)存50將00H-7FH的內(nèi)存塊51配置給應(yīng)用程序A使用。應(yīng)用程序B要求一200H×20H位大小的存儲(chǔ)塊,因?yàn)閼?yīng)用程序B的配置方向?yàn)榈谝欢?,因此?nèi)存50將E00H-FFFH的內(nèi)存塊55配置給應(yīng)用程序B使用。在步驟S52中,應(yīng)用程序C向系統(tǒng)要求一200H×20H位大小的存儲(chǔ)塊,因?yàn)閼?yīng)用程序C的配置方向?yàn)榈诙?,因此?nèi)存50自可用內(nèi)存53的頂端向下配置80H-27FH的存儲(chǔ)塊54給應(yīng)用程序C使用。在步驟S53中,應(yīng)用程序B結(jié)束使用,因此歸還原先配置的存儲(chǔ)塊52,此時(shí)內(nèi)存50可供使用的最大內(nèi)存大小為D80H×20H位。請(qǐng)參考步驟S54。步驟S54為以現(xiàn)有的內(nèi)存配置方法,經(jīng)過步驟S51與步驟S52的內(nèi)存配置結(jié)果。在步驟S54中,存儲(chǔ)塊55與56為可用內(nèi)存塊。雖然內(nèi)存此時(shí)未被使用的容量大小為D80H×20H位,但最大可供使用的內(nèi)存大小為B82H×20H位。由步驟S53與步驟S54的內(nèi)存配置結(jié)果可知,利用本發(fā)明的內(nèi)存配置方法可有效減少內(nèi)存斷裂的情形與提高內(nèi)存的使用效率。
      圖6為根據(jù)本發(fā)明的內(nèi)存配置系統(tǒng)的一實(shí)施例示意圖。當(dāng)應(yīng)用程序61向內(nèi)存控制器62要求一存儲(chǔ)塊時(shí),內(nèi)存控制器62會(huì)先查詢內(nèi)存配置表63,查詢?cè)搼?yīng)用程序的配置方向,并根據(jù)該配置方向?qū)?nèi)存64配置存儲(chǔ)塊供應(yīng)用程序61使用。若內(nèi)存配置表63無該應(yīng)用程序的配置方向,則以一預(yù)定的配置方向?qū)?nèi)存64配置存儲(chǔ)塊供應(yīng)用程序61使用。在本實(shí)施例中,應(yīng)用程序的配置方向包括一第一端與一第二端,而預(yù)定的配置方向怎為第二端。當(dāng)應(yīng)用程序的配置方向?yàn)榈谝欢藭r(shí),其內(nèi)存配置方向?yàn)橛蓛?nèi)存64的尾端(高位端,如圖5中的FFFH)向上配置。當(dāng)應(yīng)用程序的配置方向?yàn)榈诙藭r(shí),其內(nèi)存配置方向?yàn)橛蓛?nèi)存64的頂端(低位端,如圖5中的0H)向下配置。在本實(shí)施例中,配置方向與其內(nèi)存配置方向僅為一實(shí)施例說明,亦可將第一端的內(nèi)存配置方向更換為由內(nèi)存64的頂端(低位端,如圖5中的0H)向下配置,第二端的內(nèi)存配置方向更換為由內(nèi)存64的尾端(高位端,如圖5中的FFFH)向上配置,這樣亦可達(dá)到本發(fā)明的目的。
      雖然本發(fā)明已以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何熟習(xí)此技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視后附的申請(qǐng)專利范圍所界定者為準(zhǔn)。
      權(quán)利要求
      1.一種將應(yīng)用程序配置于內(nèi)存配置的方法,該內(nèi)存包括一第一端與一第二端,該方法包括接收一應(yīng)用程序;查詢一內(nèi)存配置表;及決定該應(yīng)用程序配置方向?yàn)樵搩?nèi)存的該第一端或是該第二端。
      2.如權(quán)利要求1所述的內(nèi)存配置方法,其中,更包括建立一內(nèi)存配置表。
      3.如權(quán)利要求2所述的內(nèi)存配置方法,其中,建立一內(nèi)存配置表的步驟更包括記錄多個(gè)應(yīng)用程序的多個(gè)使用時(shí)間;根據(jù)所述使用時(shí)間決定一預(yù)定時(shí)間;當(dāng)該應(yīng)用程序的使用時(shí)間大于該預(yù)定時(shí)間時(shí),該應(yīng)用程序配置方向?yàn)閮?nèi)存的該第一端;以及當(dāng)該應(yīng)用程序的使用時(shí)間小于該預(yù)定時(shí)間時(shí),該應(yīng)用程序配置方向?yàn)閮?nèi)存的該第二端。
      4.如權(quán)利要求3所述的內(nèi)存配置方法,其中,該預(yù)定時(shí)間為所述使用時(shí)間的一平均值。
      5.如權(quán)利要求3所述的內(nèi)存配置方法,其中該預(yù)定時(shí)間為所述使用時(shí)間的一中數(shù)。
      6.如權(quán)利要求3所述的內(nèi)存配置方法,其中,若一第一應(yīng)用程序無法在該內(nèi)存配置表中找到對(duì)應(yīng)的配置方向,則以一預(yù)定內(nèi)存配置方向配置內(nèi)存。
      7.如權(quán)利要求6所述的內(nèi)存配置方法,其中,該預(yù)定內(nèi)存配置方向?yàn)樵搩?nèi)存的該第二端。
      8.如權(quán)利要求6所述的內(nèi)存配置方法,其中,更包括記錄該第一應(yīng)用程序的使用時(shí)間;根據(jù)所述使用時(shí)間與該第一應(yīng)用程序的使用時(shí)間計(jì)算一修改后的預(yù)定時(shí)間;根據(jù)該第一應(yīng)用程序的使用時(shí)間與該修改后的預(yù)定時(shí)間比較以決定其對(duì)應(yīng)的一配置方向;以及在該內(nèi)存配置表中新增該應(yīng)用程序與其對(duì)應(yīng)的配置方向的數(shù)據(jù)。
      9.如權(quán)利要求8所述的內(nèi)存配置方法,其中,該修改后的預(yù)定時(shí)間為所述使用時(shí)間與該第一應(yīng)用程序的使用時(shí)間的一平均值。
      10.一種內(nèi)存配置系統(tǒng),包括一內(nèi)存,包括一第一端與一第二端;一內(nèi)存配置表;以及一內(nèi)存控制器,用以接收一應(yīng)用程序并查詢?cè)搩?nèi)存配置表,以決定將該應(yīng)用程序配置方向?yàn)樵搩?nèi)存的該第一端或是該第二端。
      11.如權(quán)利要求10所述的內(nèi)存配置系統(tǒng),其中,內(nèi)存配置表記錄多個(gè)應(yīng)用程序的使用時(shí)間與配置方向。
      12.如權(quán)利要求11所述的內(nèi)存配置系統(tǒng),其中,該內(nèi)存配置表中配置方向的判斷是根據(jù)所述應(yīng)用程序的使用時(shí)間決定一預(yù)定時(shí)間,當(dāng)該應(yīng)用程序的使用時(shí)間大于該預(yù)定時(shí)間時(shí),該應(yīng)用程序的配置方向?yàn)樵搩?nèi)存的該第一端;當(dāng)該應(yīng)用程序的使用時(shí)間小于該預(yù)定時(shí)間時(shí),該應(yīng)用程序的配置方向?yàn)樵搩?nèi)存的該第二端。
      13.如權(quán)利要求11所述的內(nèi)存配置系統(tǒng),其中,該內(nèi)存控制器依據(jù)該配置方向?yàn)樵搩?nèi)存的該第一端來配置該內(nèi)存塊給配置方向?yàn)榈谝欢说膽?yīng)用程序,且根據(jù)該配置方向?yàn)樵搩?nèi)存的該第二端來配置該內(nèi)存塊給配置方向?yàn)榈诙说膽?yīng)用程序。
      14.如權(quán)利要求10所述的內(nèi)存配置系統(tǒng),其中,若該內(nèi)存控制器無法在該內(nèi)存配置表中找到該應(yīng)用程序的配置方向,則以一預(yù)定內(nèi)存配置方向配置內(nèi)存。
      15.如權(quán)利要求14所述的內(nèi)存配置系統(tǒng),其中,該預(yù)定內(nèi)存配置方向?yàn)樵搩?nèi)存的該第二端。
      16.如權(quán)利要求10所述的內(nèi)存配置系統(tǒng),其中,該內(nèi)存配置表的建立方法包括記錄多個(gè)應(yīng)用程序的多個(gè)使用時(shí)間;根據(jù)所述使用時(shí)間決定一預(yù)定時(shí)間;當(dāng)該應(yīng)用程序的使用時(shí)間大于該預(yù)定時(shí)間時(shí),該應(yīng)用程序配置方向?yàn)閮?nèi)存的該第一端;以及當(dāng)該應(yīng)用程序的使用時(shí)間小于該預(yù)定時(shí)間時(shí),該應(yīng)用程序配置方向?yàn)閮?nèi)存的該第二端。
      17.如權(quán)利要求16所述的內(nèi)存配置系統(tǒng),其中,若該內(nèi)存控制器無法在該內(nèi)存配置表中找到一第一應(yīng)用程序的配置方向,則在該內(nèi)存配置表新增該第一應(yīng)用程序的使用時(shí)間與配置方向。
      18.如權(quán)利要求16所述的內(nèi)存配置系統(tǒng),其中,更包括記錄該第一應(yīng)用程序的使用時(shí)間;根據(jù)所述使用時(shí)間與該第一應(yīng)用程序的使用時(shí)間計(jì)算一修改后的預(yù)定時(shí)間;以及根據(jù)該第一應(yīng)用程序的使用時(shí)間與該修改后的預(yù)定時(shí)間比較以決定其對(duì)應(yīng)的一配置方向。
      19.如權(quán)利要求18所述的內(nèi)存配置系統(tǒng),其中,該修改后的預(yù)定時(shí)間為所述使用時(shí)間與該第一應(yīng)用程序的使用時(shí)間的一平均值。
      20.如權(quán)利要求10所述的內(nèi)存配置系統(tǒng),其中,該第一端為一高位端,該第二端為一低位端。
      全文摘要
      本發(fā)明為一種內(nèi)存配置方法,包括下列步驟提供一內(nèi)存,該內(nèi)存的存儲(chǔ)塊具有一第一端與一第二端;提供一內(nèi)存控制器;選擇一內(nèi)存配置方向,其中當(dāng)選擇一第一配置方向?yàn)樵搩?nèi)存配置方向時(shí),則該第一端為該第一配置方向的起點(diǎn);當(dāng)選擇一第二配置方向?yàn)樵搩?nèi)存配置方向時(shí),則該第二端為該第二配置方向的起點(diǎn);該內(nèi)存控制器根據(jù)一應(yīng)用程序的內(nèi)存配置方向以配置該內(nèi)存供該應(yīng)用程序使用。
      文檔編號(hào)G06F9/46GK101038558SQ20061005912
      公開日2007年9月19日 申請(qǐng)日期2006年3月14日 優(yōu)先權(quán)日2006年3月14日
      發(fā)明者林昂賢, 李志偉 申請(qǐng)人:明基電通股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1