一種嵌入式系統(tǒng)內(nèi)存的管理方法及管理系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種內(nèi)存的管理方法,尤其涉及一種嵌入式系統(tǒng)內(nèi)存的管理方法及管理系統(tǒng)。
【背景技術(shù)】
[0002]在嵌入式系統(tǒng)中,內(nèi)存一直都是比較緊張的資源。在現(xiàn)在的復(fù)雜嵌入式設(shè)備中,隨著業(yè)務(wù)的復(fù)雜度越來(lái)越高,對(duì)內(nèi)存的需求也越來(lái)越多樣化。而作為使用者,存在使用偏好的問(wèn)題,也就是說(shuō)用戶一般只使用嵌入式設(shè)備中的某些業(yè)務(wù)功能,所以導(dǎo)致傳統(tǒng)的內(nèi)存使用存在一定的浪費(fèi)。
[0003]在現(xiàn)有的內(nèi)存管理方案中,一般有兩種內(nèi)存管理方法:第一種是所有的內(nèi)存作為一個(gè)區(qū)域整體進(jìn)行操作,當(dāng)需要分配內(nèi)存時(shí),就在整個(gè)區(qū)域中進(jìn)行查找,找到一個(gè)合適的區(qū)域并予以使用。該方案有如下的缺點(diǎn):搜索時(shí)間比較長(zhǎng)、算法復(fù)雜;即為了尋找到合適的內(nèi)存塊,可能需要查找整個(gè)內(nèi)存空間,且查找匹配的算法也會(huì)復(fù)雜化。還有一個(gè)缺點(diǎn)的是會(huì)造成內(nèi)存分配的碎片,導(dǎo)致內(nèi)存雖然還有大的內(nèi)存量,但由于都是小塊的內(nèi)存,導(dǎo)致無(wú)法滿足相對(duì)較大的內(nèi)存申請(qǐng)需求。
[0004]另一種內(nèi)存管理方法是對(duì)內(nèi)存進(jìn)行預(yù)先分區(qū)處理。該方法是為了解決第一種方法中的缺陷而設(shè)計(jì)的。其原理是將內(nèi)存按照固定的大小各分配若干塊,在內(nèi)存進(jìn)行申請(qǐng)的時(shí)候直接進(jìn)行匹配,從適合的最小內(nèi)存塊中進(jìn)行分配。如此匹配算法簡(jiǎn)單,且不會(huì)產(chǎn)生內(nèi)存碎片。在之后又有一些變種,但是所有分配都是指定的,不會(huì)根據(jù)使用的過(guò)程而進(jìn)行智能化的調(diào)整。
【發(fā)明內(nèi)容】
[0005]本發(fā)明解決的問(wèn)題是提供一種嵌入式系統(tǒng)的內(nèi)存管理方法及管理系統(tǒng),用以解決在嵌入式系統(tǒng)在使用過(guò)程中的內(nèi)存浪費(fèi)的現(xiàn)象,以提高內(nèi)存使用效率,減低成本。
[0006]為了解決上述問(wèn)題,本發(fā)明提供了一種嵌入式系統(tǒng)內(nèi)存的管理方法,包括:提供內(nèi)存統(tǒng)計(jì),并基于所述內(nèi)存統(tǒng)計(jì)對(duì)內(nèi)存進(jìn)行分配及管理,所述內(nèi)存統(tǒng)計(jì)為所述嵌入式系統(tǒng)的內(nèi)存使用記錄。
[0007]可選的,還包括:對(duì)當(dāng)前內(nèi)存容量的使用進(jìn)行記錄,并加載至所述內(nèi)存統(tǒng)計(jì),以更新所述內(nèi)存統(tǒng)計(jì)。
[0008]可選的,若所述嵌入式系統(tǒng)為第一次使用,則所述內(nèi)存統(tǒng)計(jì)為零,所述內(nèi)存分配為均勻分配。
[0009]可選的,還包括:輸入用戶使用偏好至所述內(nèi)存統(tǒng)計(jì),并基于增添有所述用戶偏好的內(nèi)存統(tǒng)計(jì)對(duì)內(nèi)存進(jìn)行分配及管理。
[0010]可選的,所述分配及管理包括:在當(dāng)前周期前的各使用周期內(nèi),將各內(nèi)存容量使用的峰值存儲(chǔ)到內(nèi)存統(tǒng)計(jì)的對(duì)應(yīng)位置;在當(dāng)前周期開(kāi)機(jī)時(shí),根據(jù)所述內(nèi)存統(tǒng)計(jì)的統(tǒng)計(jì)信息,決定各內(nèi)存分塊的分配數(shù)量。
[0011]可選的,所述一個(gè)周期,是指從嵌入式系統(tǒng)中的內(nèi)存管理的啟動(dòng)到停止的一個(gè)過(guò)程。
[0012]可選的,所述內(nèi)存統(tǒng)計(jì)中記錄有當(dāng)前周期之前的若干周期的各個(gè)內(nèi)存量級(jí)的塊數(shù)峰值,在當(dāng)前周期開(kāi)始時(shí),將內(nèi)存統(tǒng)計(jì)中的各周期進(jìn)行加權(quán)分析,以確定當(dāng)前周期的各內(nèi)存塊量級(jí)的起始分配塊數(shù)。
[0013]可選的,若在當(dāng)嵌入式系統(tǒng)使用中,發(fā)生內(nèi)存申請(qǐng)的操作,則將所述內(nèi)存申請(qǐng)對(duì)應(yīng)的內(nèi)存塊數(shù)值遞增;若發(fā)生內(nèi)存釋放的操作,則將所述內(nèi)存申請(qǐng)量對(duì)應(yīng)的內(nèi)存塊數(shù)值遞減。
[0014]可選的,所述內(nèi)存遞增時(shí),將所述遞增后的內(nèi)存數(shù)值與內(nèi)存的起始數(shù)值進(jìn)行比較,若所述遞增后的內(nèi)存數(shù)值大,則更新所述內(nèi)存的起始數(shù)值。
[0015]可選的,所述內(nèi)存統(tǒng)計(jì)為本地存儲(chǔ)或者云存儲(chǔ)。
[0016]本發(fā)明還提供一種嵌入式系統(tǒng)內(nèi)存的管理系統(tǒng),包括:內(nèi)存分配統(tǒng)計(jì)池,對(duì)內(nèi)存容量的使用情況進(jìn)行記錄,以形成內(nèi)存統(tǒng)計(jì);
[0017]內(nèi)存管理控制單元,根據(jù)內(nèi)存分配統(tǒng)計(jì)池中的記錄對(duì)內(nèi)存空間進(jìn)行控制處理;
[0018]內(nèi)存空間,作為資源供內(nèi)存管理控制單元使用。
[0019]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):設(shè)計(jì)了一種智能化的內(nèi)存分配方案,以解決同一種設(shè)備在不同使用場(chǎng)景中的內(nèi)存使用要求,達(dá)到最大化的使用內(nèi)存的目的。系統(tǒng)的內(nèi)存分配結(jié)構(gòu)會(huì)隨著使用偏好進(jìn)行智能修改,達(dá)到更好的適應(yīng)使用場(chǎng)景的要求,增強(qiáng)了系統(tǒng)的健壯性。
【附圖說(shuō)明】
[0020]圖1所示為本發(fā)明一個(gè)實(shí)施例的嵌入式系統(tǒng)內(nèi)存的管理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以很多不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣,因此本發(fā)明不受下面公開(kāi)的具體實(shí)施的限制。
[0022]其次,本發(fā)明利用示意圖進(jìn)行詳細(xì)描述,在詳述本發(fā)明實(shí)施例時(shí),為便于說(shuō)明,所述示意圖只是實(shí)例,其在此不應(yīng)限制本發(fā)明保護(hù)的范圍。
[0023]現(xiàn)有的技術(shù)中,內(nèi)存分配在嵌入式系統(tǒng)發(fā)布的時(shí)候是固定的,不會(huì)在使用過(guò)程中動(dòng)態(tài)的調(diào)整,導(dǎo)致無(wú)法應(yīng)對(duì)同一種設(shè)備不能應(yīng)對(duì)多種使用場(chǎng)景的要求,而帶來(lái)內(nèi)存資源的浪費(fèi)。
[0024]為了解決上述問(wèn)題,本發(fā)明提供了一種嵌入式系統(tǒng)內(nèi)存的管理方法,包括:提供內(nèi)存統(tǒng)計(jì),并基于所述內(nèi)存統(tǒng)計(jì)對(duì)內(nèi)存進(jìn)行分配及管理,所述內(nèi)存統(tǒng)計(jì)為所述嵌入式系統(tǒng)的內(nèi)存使用記錄。所述內(nèi)存統(tǒng)計(jì)為本地存儲(chǔ)或者云存儲(chǔ)。
[0025]其中,所述分配及管理包括:在當(dāng)前周期前的各使用周期內(nèi),將各內(nèi)存容量使用的峰值存儲(chǔ)到內(nèi)存統(tǒng)計(jì)的對(duì)應(yīng)位置;在當(dāng)前周期開(kāi)機(jī)時(shí),根據(jù)所述內(nèi)存統(tǒng)計(jì)的統(tǒng)計(jì)信息,決定各內(nèi)存分塊的分配數(shù)量。其中,所述一個(gè)周期,是指從嵌入式系統(tǒng)中的內(nèi)存管理的啟動(dòng)到停止的一個(gè)過(guò)程。所述內(nèi)存統(tǒng)計(jì)中記錄有當(dāng)前周期之前的若干周期的各個(gè)內(nèi)存量級(jí)的塊數(shù)峰值,在當(dāng)前周期開(kāi)始時(shí),將內(nèi)存統(tǒng)計(jì)中的各周期進(jìn)行加權(quán)分析,以確定當(dāng)前周期的各內(nèi)存塊量級(jí)的起始分配塊數(shù)。
[0026]還包括:對(duì)當(dāng)前內(nèi)存容量的使用進(jìn)行記錄,并加載至所述內(nèi)存統(tǒng)計(jì),以更新所述內(nèi)存統(tǒng)計(jì),或者輸入用戶使用偏好至所述內(nèi)存統(tǒng)計(jì),并基于增添有所述用戶偏好的內(nèi)存統(tǒng)計(jì)對(duì)內(nèi)存進(jìn)行分配及管理。。若所述嵌入式系統(tǒng)為第一次使用,則所述內(nèi)存統(tǒng)計(jì)為零,所述內(nèi)存分配為均勻分配。
[0027]進(jìn)一步地,若在當(dāng)嵌入式系統(tǒng)使用中,發(fā)生內(nèi)存申請(qǐng)的操作,則將所述內(nèi)存申請(qǐng)對(duì)應(yīng)的內(nèi)