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

嵌入式系統(tǒng)多類內(nèi)存管理方法及裝置的制作方法

文檔序號:6603389閱讀:325來源:國知局
專利名稱:嵌入式系統(tǒng)多類內(nèi)存管理方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及內(nèi)存管理技術(shù)領(lǐng)域,更具體地說,涉及一種嵌入式系統(tǒng)多類內(nèi)存管理 方法及裝置。
背景技術(shù)
在嵌入式系統(tǒng)比如數(shù)字電視嵌入式瀏覽器中,通常會有很多模塊,這些模塊因其 數(shù)據(jù)形式不同,為了更加有效使用內(nèi)存,減少內(nèi)存碎片,對內(nèi)存分配和存取策略、以及內(nèi)存 使用和釋放方式都是不同的。在這種情況下,在需要傳遞和共享數(shù)據(jù)時,模塊間需要相互了解其內(nèi)存特性及使 用方式,從而使得模塊間的數(shù)據(jù)共享和傳遞會變得異常繁瑣,不僅會導(dǎo)致程序結(jié)構(gòu)繁瑣,難 以修改且難以添加新的內(nèi)存使用方式,而且也容易出現(xiàn)修改一個地方代碼忽略另外一個地 方代碼的情況,降低程序的可讀性,引入更多的缺陷,增加了系統(tǒng)的不穩(wěn)定性。因此,為了能方便地進(jìn)行模塊間的通信、模塊間傳遞數(shù)據(jù)、同時降低模塊耦合性, 采用一種統(tǒng)一的內(nèi)存表現(xiàn)形式同時又可以保證各個模塊內(nèi)存分配策略需求,最大化地有效 利用內(nèi)存,就顯得非常重要。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種嵌入式系統(tǒng)多類內(nèi)存管理方法及裝置,提高嵌入式系統(tǒng)中 多類內(nèi)存的使用效率,減少內(nèi)存碎片,進(jìn)而方便進(jìn)行不同模塊間的通信及數(shù)據(jù)傳遞,提高系 統(tǒng)的可靠性和穩(wěn)定性。為此,本發(fā)明實施例提供如下技術(shù)方案一種嵌入式系統(tǒng)多類內(nèi)存管理方法,包括應(yīng)用模塊需要將數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi)存分配策 略;所述應(yīng)用模塊將所述數(shù)據(jù)流傳送給數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器按照所述內(nèi)存分配策略為所述數(shù)據(jù)流分配內(nèi)存,并將所述數(shù)據(jù) 流寫入分配的內(nèi)存中??蛇x地,所述內(nèi)存分配策略包括以下任意一項或多項策略圖片內(nèi)存分配策略、字 庫內(nèi)存分配策略、頁面內(nèi)存分配策略、通用內(nèi)存分配策略??蛇x地,所述方法還包括以下任意一個或多個步驟所述數(shù)據(jù)流管理器從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給應(yīng)用模塊, 并將讀數(shù)據(jù)指針移到相應(yīng)位置;所述數(shù)據(jù)流管理器從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給應(yīng)用模塊, 并保持讀數(shù)據(jù)指針位置不變;所述數(shù)據(jù)流管理器向應(yīng)用模塊返回當(dāng)前的讀數(shù)據(jù)指針位置和當(dāng)前的寫數(shù)據(jù)指針 位置;
所述數(shù)據(jù)流管理器將所述內(nèi)存中的數(shù)據(jù)流保存到文件;所述數(shù)據(jù)流管理器將所述內(nèi)存中的數(shù)據(jù)流復(fù)制到所述內(nèi)存中的其他位置;所述數(shù)據(jù)流管理器建立對應(yīng)所述內(nèi)存中的數(shù)據(jù)流的其他數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器刪除所述數(shù)據(jù)流管理器分配的內(nèi)存中的所有數(shù)據(jù)??蛇x地,所述方法還包括所述應(yīng)用模塊在將所述數(shù)據(jù)流寫入數(shù)據(jù)流管理器之后,將所述數(shù)據(jù)流管理器傳送 給目標(biāo)模塊,以使所述目標(biāo)模塊通過所述數(shù)據(jù)流管理器的各接口對所述內(nèi)存中的數(shù)據(jù)進(jìn)行 操作??蛇x地,所述方法還包括當(dāng)不需要再使用所述數(shù)據(jù)流管理器時,刪除所述數(shù)據(jù)流管理器,并釋放所述數(shù)據(jù) 流管理器分配的所有內(nèi)存資源。一種嵌入式系統(tǒng)多類內(nèi)存管理裝置,包括至少一個應(yīng)用模塊和所述應(yīng)用模塊建 立的數(shù)據(jù)流管理器;所述應(yīng)用模塊包括建立單元,用于需要將數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi)存 分配策略;寫入單元,用于將所述數(shù)據(jù)流傳送給數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器包括寫數(shù)據(jù)接口,用于按照所述內(nèi)存分配策略為所述數(shù)據(jù)流 分配內(nèi)存,并將所述數(shù)據(jù)流寫入分配的內(nèi)存中??蛇x地,所述內(nèi)存分配策略包括以下任意一項或多項圖片內(nèi)存分配策略、字庫內(nèi) 存分配策略、頁面內(nèi)存分配策略、通用內(nèi)存分配策略??蛇x地,所述數(shù)據(jù)流管理器還包括以下任意一個或多個接口 讀數(shù)據(jù)接口,用于從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給所述應(yīng)用模 塊,并將讀數(shù)據(jù)指針移到相應(yīng)位置;預(yù)讀數(shù)據(jù)接口,用于從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給所述應(yīng)用 模塊,并保持讀數(shù)據(jù)指針位置不變;指針位置獲取接口,用于向所述應(yīng)用模塊返回當(dāng)前的讀數(shù)據(jù)指針位置和當(dāng)前的寫 數(shù)據(jù)指針位置;指針位置設(shè)置接口,用于將當(dāng)前讀數(shù)據(jù)指針的位置和當(dāng)前寫數(shù)據(jù)指針的位置移動 到所述應(yīng)用模塊設(shè)置的位置;文件保存接口,用于將所述內(nèi)存中的數(shù)據(jù)流保存到文件中;復(fù)制接口,用于將所述內(nèi)存中的數(shù)據(jù)流復(fù)制到所述內(nèi)存中的其他位置;克隆接口,用于建立對應(yīng)所述內(nèi)存中的數(shù)據(jù)流的其他數(shù)據(jù)流管理器;復(fù)位接口,用于刪除所述數(shù)據(jù)流管理器分配的內(nèi)存中的所有數(shù)據(jù);所述應(yīng)用模塊還包括接口調(diào)用單元,用于通過調(diào)用所述數(shù)據(jù)流管理器的接口,實現(xiàn)對所述內(nèi)存中的數(shù) 據(jù)的以下一種或多種操作讀數(shù)據(jù)、預(yù)讀數(shù)據(jù)、獲取指針位置、設(shè)置指針位置、文件保存、復(fù) 制數(shù)據(jù)、克隆數(shù)據(jù)、復(fù)位。 可選地,所述應(yīng)用模塊還包括
5
通知單元,用于在所述寫入單元將所述數(shù)據(jù)流寫入數(shù)據(jù)流管理器之后,將所述數(shù) 據(jù)流管理器傳送給目標(biāo)模塊,以使所述目標(biāo)模塊通過所述數(shù)據(jù)流管理器的各接口對所述內(nèi) 存中的數(shù)據(jù)進(jìn)行操作??蛇x地,所述應(yīng)用模塊還包括刪除單元,用于刪除所述數(shù)據(jù)流管理器,并釋放所述數(shù)據(jù)流管理器分配的所有內(nèi) 存資源。本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理方法及裝置,針對嵌入式系統(tǒng)中不同應(yīng)用 模塊因其數(shù)據(jù)形式不同,對內(nèi)存分配和存取策略也是完全不同的情況,屏蔽各應(yīng)用模塊對 內(nèi)存使用的差異,使各應(yīng)用模塊采用統(tǒng)一的內(nèi)存表現(xiàn)形式使用內(nèi)存,同時保證各個應(yīng)用模 塊內(nèi)存分配策略需求,從而最大化有效利用內(nèi)存。從而提高嵌入式系統(tǒng)中多類內(nèi)存的使用 效率,減少內(nèi)存碎片,進(jìn)而方便進(jìn)行不同模塊間的通信及數(shù)據(jù)傳遞,提高系統(tǒng)的可靠性和穩(wěn) 定性。


圖1是本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理方法的流程圖;圖2是本發(fā)明實施例的一個具體應(yīng)用中http處理模塊下載html頁面文件的流程 圖;圖3是本發(fā)明實施例的一個具體應(yīng)用中html引擎解析頁面的流程圖;圖4是本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理裝置的結(jié)構(gòu)示意圖。
具體實施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例的方案,下面結(jié)合附圖和實施 方式對本發(fā)明實施例作進(jìn)一步的詳細(xì)說明。本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理方法及裝置,針對嵌入式系統(tǒng)中不同應(yīng)用 模塊因其數(shù)據(jù)形式不同,對內(nèi)存分配和存取策略也是完全不同的情況,在應(yīng)用模塊需要將 數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi)存分配策略;所述應(yīng)用模塊將所述 數(shù)據(jù)流傳送給數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器按照所述內(nèi)存分配策略為所述數(shù)據(jù)流分配 內(nèi)存,并將所述數(shù)據(jù)流寫入分配的內(nèi)存中。從而屏蔽各應(yīng)用模塊對內(nèi)存使用的差異,使各 應(yīng)用模塊采用統(tǒng)一的內(nèi)存表現(xiàn)形式使用內(nèi)存,同時保證各個應(yīng)用模塊對內(nèi)存分配策略的需 求,最大化有效利用內(nèi)存。參照圖1,是本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理方法的流程圖,包括以下步 驟步驟101,應(yīng)用模塊需要將數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi) 存分配策略。在嵌入式系統(tǒng)中,有多種不同應(yīng)用模塊,比如,圖片解碼模塊、字庫模塊、閃存模 塊、http (HyperText Transfer Protocol,超文本傳輸協(xié)議)處理模塊等,不同的應(yīng)用模塊 完成不同的應(yīng)用功能。由于各應(yīng)用模塊其數(shù)據(jù)形式不同,對內(nèi)存分配和存取策略也不同。針 對這種情況,本發(fā)明實施例為各應(yīng)用模塊提供統(tǒng)一的內(nèi)存操作接口,即數(shù)據(jù)流管理器,屏蔽 各應(yīng)用模塊對內(nèi)存使用的差異,使各應(yīng)用模塊采用統(tǒng)一的內(nèi)存表現(xiàn)形式使用內(nèi)存。
需要說明的是,所述數(shù)據(jù)流管理器是動態(tài)的,也就是說,在各應(yīng)用模塊需要將數(shù)據(jù) 寫入內(nèi)存時,建立相應(yīng)的數(shù)據(jù)流管理器,當(dāng)不需要再使用所述數(shù)據(jù)流管理器時,可以刪除所 述數(shù)據(jù)流管理器。對于不同的應(yīng)用模塊,其建立的數(shù)據(jù)流管理器需要采用統(tǒng)一的結(jié)構(gòu)形式,比如,具 有相同的接口及參數(shù)格式,以方便不同應(yīng)用模塊通過同一數(shù)據(jù)流管理器對內(nèi)存的多種相同 或不同操作,比如,讀、寫操作,預(yù)讀操作、復(fù)位操作等。在本發(fā)明實施例中,針對不同的應(yīng)用,可以設(shè)置不同的內(nèi)存分配策略,以保證各個 應(yīng)用模塊對內(nèi)存分配策略的需求,最大化有效利用內(nèi)存。比如,所述內(nèi)存分配策略包括以下 任意一項或多項策略圖片內(nèi)存分配策略、字庫內(nèi)存分配策略、頁面內(nèi)存分配策略、通用內(nèi) 存分配策略。所述應(yīng)用模塊可以根據(jù)應(yīng)用需要,確定與所述數(shù)據(jù)流對應(yīng)的內(nèi)存分配策略。步驟102,所述應(yīng)用模塊將所述數(shù)據(jù)流傳送給數(shù)據(jù)流管理器。步驟103,所述數(shù)據(jù)流管理器按照所述內(nèi)存分配策略為所述數(shù)據(jù)流分配內(nèi)存,并將 所述數(shù)據(jù)流寫入分配的內(nèi)存中。由此可見,本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理方法,由數(shù)據(jù)流管理器統(tǒng)一管 理內(nèi)存,以統(tǒng)一的機(jī)制來處理不同應(yīng)用模塊的內(nèi)存使用方式。使用者不需要知道正在使用 的內(nèi)存使用何種策略分配和釋放、以及數(shù)據(jù)是存放在一塊連續(xù)內(nèi)存區(qū)域還是多塊內(nèi)存區(qū)域 中。不僅保證了各個應(yīng)用模塊內(nèi)存分配策略需求,而且可以最大化有效利用內(nèi)存。從而提 高嵌入式系統(tǒng)中多類內(nèi)存的使用效率,減少內(nèi)存碎片,進(jìn)而方便進(jìn)行不同模塊間的通信及 數(shù)據(jù)傳遞,提高系統(tǒng)的可靠性和穩(wěn)定性。需要說明的是,在實際應(yīng)用中,所述應(yīng)用模塊也可以直接將所述數(shù)據(jù)流先寫入內(nèi) 存,然后,生成相應(yīng)的數(shù)據(jù)流管理器,并將該內(nèi)存中的數(shù)據(jù)及其在內(nèi)存中的位置等信息傳送 給所述數(shù)據(jù)流管理器。這樣可以進(jìn)一步提高處理效率,但需要所述應(yīng)用模塊知道所述數(shù)據(jù) 流的長度及占用的內(nèi)存空間。在本發(fā)明實施例中,所述數(shù)據(jù)流管理器根據(jù)需要,可以提供多種不同的應(yīng)用接口, 以滿足不同應(yīng)用模塊對內(nèi)存的多種操作需求。比如,本發(fā)明實施例的方法還可以進(jìn)一步包括以下任意一個或多個步驟所述數(shù)據(jù)流管理器從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給應(yīng)用模塊, 并將讀數(shù)據(jù)指針移到相應(yīng)位置;所述數(shù)據(jù)流管理器從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給應(yīng)用模塊, 并保持讀數(shù)據(jù)指針位置不變;所述數(shù)據(jù)流管理器向應(yīng)用模塊返回當(dāng)前的讀數(shù)據(jù)指針位置和當(dāng)前的寫數(shù)據(jù)指針 位置;所述數(shù)據(jù)流管理器將所述內(nèi)存中的數(shù)據(jù)流保存到文件;所述數(shù)據(jù)流管理器將所述內(nèi)存中的數(shù)據(jù)流復(fù)制到所述內(nèi)存中的其他位置;所述數(shù)據(jù)流管理器建立對應(yīng)所述內(nèi)存中的數(shù)據(jù)流的其他數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器刪除所述數(shù)據(jù)流管理器分配的內(nèi)存中的所有數(shù)據(jù)。需要說明的是,上面各步驟中所述的應(yīng)用模塊可以是建立所述數(shù)據(jù)流管理器的應(yīng) 用模塊,也可以是其他應(yīng)用模塊。也就是說,某個應(yīng)用模塊建立所述數(shù)據(jù)流管理器后,其他 模塊可以通過該數(shù)據(jù)流管理器,實現(xiàn)對該數(shù)據(jù)流管理器管理的內(nèi)存中的數(shù)據(jù)的操作。比如http處理模塊將接收到的頁面數(shù)據(jù)寫入數(shù)據(jù)流管理器,html/javascript解析器 從數(shù)據(jù)流管理器獲取頁面數(shù)據(jù)進(jìn)行解析;圖片解碼模塊將頁面上的圖片解碼后寫入數(shù)據(jù)流管理器,頁面顯示模塊從數(shù)據(jù)流 管理器獲取圖片數(shù)據(jù)進(jìn)行顯示;字庫模塊根據(jù)字符生成相應(yīng)的字形寫入數(shù)據(jù)流管理器,頁面顯示模塊從數(shù)據(jù)流管 理器獲取字形數(shù)據(jù)進(jìn)行顯示;閃存模塊將數(shù)據(jù)從閃存寫入到數(shù)據(jù)流管理器,其它模塊可以從數(shù)據(jù)流管理器獲取 數(shù)據(jù)。為此,在本發(fā)明實施例的一個具體應(yīng)用中,所述方法還包括以下步驟所述應(yīng)用模塊在將所述數(shù)據(jù)流寫入數(shù)據(jù)流管理器之后,將所述數(shù)據(jù)流管理器傳送 給目標(biāo)模塊,以使所述目標(biāo)模塊通過所述數(shù)據(jù)流管理器的各接口對所述內(nèi)存中的數(shù)據(jù)進(jìn)行 操作。也就是說,在本發(fā)明實施例中,各種應(yīng)用模塊都可以將數(shù)據(jù)寫入數(shù)據(jù)流管理器,然 后將該數(shù)據(jù)流管理器傳給使用者,使用者就可以通過該數(shù)據(jù)流管理器使用統(tǒng)一的方式獲取 相應(yīng)的數(shù)據(jù),從而可以方便地實現(xiàn)不同應(yīng)用模塊間的數(shù)據(jù)傳遞。另外,在本發(fā)明實施例中,還可進(jìn)一步包括以下步驟當(dāng)不需要再使用所述數(shù)據(jù)流 管理器時,刪除所述數(shù)據(jù)流管理器,并釋放所述數(shù)據(jù)流管理器分配的所有內(nèi)存資源。需要說 明的是,刪除所述數(shù)據(jù)流管理器的操作可以是創(chuàng)建所述數(shù)據(jù)流管理器的應(yīng)用模塊,也可以 是其他應(yīng)用模塊。下面以http處理模塊下載html頁面文件,html引擎解析頁面為例,詳細(xì)說明利 用本發(fā)明實施例的方法實現(xiàn)不同應(yīng)用模塊間數(shù)據(jù)傳遞的過程。根據(jù)socket下載數(shù)據(jù)特點,每次下載數(shù)據(jù)都是一個固定長度的緩沖區(qū),http處 理模塊下載頁面數(shù)據(jù)時,新建數(shù)據(jù)流管理器,并設(shè)置內(nèi)存分配策略為使用通用內(nèi)存分配策 略,數(shù)據(jù)流類型設(shè)置為多個緩沖區(qū)。設(shè)置為多個緩存區(qū)可以避免下載大文件時,在嵌入式 內(nèi)存受限環(huán)境中無法一次分配大塊連續(xù)內(nèi)存而導(dǎo)致內(nèi)存分配失敗,導(dǎo)致文件無法下載的問 題。http每次讀取底層網(wǎng)絡(luò)收到的數(shù)據(jù),寫入數(shù)據(jù)流管理器,并將所述數(shù)據(jù)流管理器傳送給 html引擎。如圖2所示,是本發(fā)明實施例的一個具體應(yīng)用中http處理模塊下載html頁面文 件的流程圖。其中步驟201,http處理模塊下載html頁面文件,創(chuàng)建數(shù)據(jù)流管理器;步驟202,設(shè)置數(shù)據(jù)管理器使用通用內(nèi)存分配策略,并使用分段內(nèi)存;步驟203,判斷底層網(wǎng)絡(luò)數(shù)據(jù)是否傳輸完畢;如果是,則執(zhí)行步驟206 ;否則執(zhí)行步 驟 204 ;步驟204,將下載的數(shù)據(jù)寫入所述數(shù)據(jù)流管理器;步驟205 ;將所述數(shù)據(jù)流管理器傳送給html引擎,也即通知html引擎有數(shù)據(jù)到 來;然后返回步驟203;步驟206,下載結(jié)束。相應(yīng)地,html引擎收到http處理模塊傳送的數(shù)據(jù)流管理器后,獲取數(shù)據(jù)流長度,
8如果長度大于一定數(shù)目時,就開始從所述數(shù)據(jù)流管理器讀取數(shù)據(jù),并解析頁面數(shù)據(jù)。如圖3所示,是本發(fā)明實施例的一個具體應(yīng)用中html弓丨擎解析頁面的流程圖。其 中步驟301,html引擎通過數(shù)據(jù)流管理器讀取數(shù)據(jù);步驟302,解析讀取到的頁面數(shù)據(jù)。步驟303,判斷數(shù)據(jù)流管理器數(shù)據(jù)是否已經(jīng)讀取完畢且數(shù)據(jù)已經(jīng)下載完畢;如果 是,則執(zhí)行步驟304 ;否則執(zhí)行步驟301 ;步驟304,刪除所述數(shù)據(jù)流管理器。需要說明的是,在上述圖2和圖3所示流程中,http處理模塊不斷將數(shù)據(jù)填入到 所述數(shù)據(jù)流管理器,html引擎不斷從所述數(shù)據(jù)流管理器讀取數(shù)據(jù)。html引擎不需要知道數(shù) 據(jù)任何特征(內(nèi)存數(shù)據(jù)是如何分配的,是存放在一塊連續(xù)內(nèi)存還是分段內(nèi)存中),這樣降低 模塊耦合性和復(fù)雜性。最后html頁面解析完成時,html引擎刪除數(shù)據(jù)流管理器。當(dāng)然,本發(fā)明實施例的方法并不僅限于上述應(yīng)用,還可以有其他應(yīng)用,而且,各應(yīng) 用模塊不僅可以創(chuàng)造相應(yīng)的數(shù)據(jù)流管理器,而且還可以通過統(tǒng)一的數(shù)據(jù)流管理器接口來使 用內(nèi)存,屏蔽了不同應(yīng)用模塊間內(nèi)存使用的差異。各應(yīng)用模塊不需要知道具體內(nèi)存的使用 方式,從而可以在很大程度上簡化程序,使程序更加通用而且容易理解。由于應(yīng)用模塊不需 要知道數(shù)據(jù)存放細(xì)節(jié),通過使用多塊內(nèi)存來代替一塊連續(xù)大內(nèi)存,在內(nèi)存碎片多不能分配 大塊內(nèi)存時,可以有效利用小內(nèi)存,減少系統(tǒng)失效率,在嵌入式系統(tǒng)中可以更加有效利用內(nèi) 存。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以 通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中, 所述的存儲介質(zhì),如ROM/RAM、磁碟、光盤等。相應(yīng)地,本發(fā)明實施例還提供了一種嵌入式系統(tǒng)多類內(nèi)存管理裝置,如圖4所示, 是該裝置的一種結(jié)構(gòu)示意圖。在該實施例中,所述裝置包括至少一個應(yīng)用模塊411和所述應(yīng)用模塊建立的數(shù) 據(jù)流管理器410 ;所述應(yīng)用模塊411包括建立單元412,用于需要將數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi) 存分配策略;寫入單元413,用于將所述數(shù)據(jù)流傳送給數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器410包括寫數(shù)據(jù)接口 401,用于按照所述內(nèi)存分配策略為所述 數(shù)據(jù)流分配內(nèi)存,并將所述數(shù)據(jù)流寫入分配的內(nèi)存中。在本發(fā)明實施例中,所述應(yīng)用模塊411具體可以是圖片解碼模塊、字庫模塊、閃存 模塊、http (HyperText Transfer Protocol,超文本傳輸協(xié)議)處理模塊等,不同的應(yīng)用模 塊完成不同的應(yīng)用功能。由于各應(yīng)用模塊其數(shù)據(jù)形式不同,對內(nèi)存分配和存取策略也不同。 針對這種情況,本發(fā)明實施例為各應(yīng)用模塊提供統(tǒng)一的內(nèi)存操作接口,即數(shù)據(jù)流管理器,屏 蔽各應(yīng)用模塊對內(nèi)存使用的差異,使各應(yīng)用模塊采用統(tǒng)一的內(nèi)存表現(xiàn)形式使用內(nèi)存。對于不同的應(yīng)用模塊,其建立的數(shù)據(jù)流管理器需要采用統(tǒng)一的結(jié)構(gòu)形式,比如,具 有相同的接口及參數(shù)格式,以方便不同應(yīng)用模塊通過同一數(shù)據(jù)流管理器對內(nèi)存的多種相同或不同操作,比如,讀、寫操作,預(yù)讀操作、復(fù)位操作等。在本發(fā)明實施例中,針對不同的應(yīng)用,可以設(shè)置不同的內(nèi)存分配策略,以保證各個 應(yīng)用模塊對內(nèi)存分配策略的需求,最大化有效利用內(nèi)存。比如,所述內(nèi)存分配策略可以包括 以下任意一項或多項策略圖片內(nèi)存分配策略、字庫內(nèi)存分配策略、頁面內(nèi)存分配策略、通 用內(nèi)存分配策略。所述應(yīng)用模塊可以根據(jù)應(yīng)用需要,確定與所述數(shù)據(jù)流對應(yīng)的內(nèi)存分配策 略。為了方便不同應(yīng)用模塊對內(nèi)存的各種操作,在本發(fā)明實施例中,所述數(shù)據(jù)流管理 器410還可以進(jìn)一步包括以下任意一個或多個接口 讀數(shù)據(jù)接口,用于從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給所述應(yīng)用模 塊,并將讀數(shù)據(jù)指針移到相應(yīng)位置;預(yù)讀數(shù)據(jù)接口,用于從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給所述應(yīng)用 模塊,并保持讀數(shù)據(jù)指針位置不變;指針位置獲取接口,用于向所述應(yīng)用模塊返回當(dāng)前的讀數(shù)據(jù)指針位置和當(dāng)前的寫 數(shù)據(jù)指針位置;指針位置設(shè)置接口,用于將當(dāng)前讀數(shù)據(jù)指針的位置和當(dāng)前寫數(shù)據(jù)指針的位置移動 到所述應(yīng)用模塊設(shè)置的位置;文件保存接口,用于將所述內(nèi)存中的數(shù)據(jù)流保存到文件中;復(fù)制接口,用于將所述內(nèi)存中的數(shù)據(jù)流復(fù)制到所述內(nèi)存中的其他位置;克隆接口,用于建立對應(yīng)所述內(nèi)存中的數(shù)據(jù)流的其他數(shù)據(jù)流管理器;復(fù)位接口,用于刪除所述數(shù)據(jù)流管理器分配的內(nèi)存中的所有數(shù)據(jù)。相應(yīng)地,所述應(yīng)用模塊411還可進(jìn)一步包括接口調(diào)用單元(未圖示),用于通過調(diào)用所述數(shù)據(jù)流管理器的接口,實現(xiàn)對所述內(nèi) 存中的數(shù)據(jù)的以下一種或多種操作讀數(shù)據(jù)、預(yù)讀數(shù)據(jù)、獲取指針位置、設(shè)置指針位置、文件 保存、復(fù)制數(shù)據(jù)、克隆數(shù)據(jù)、復(fù)位。當(dāng)然,在實際應(yīng)用中,通過所述數(shù)據(jù)流管理器為其管理的內(nèi)存的上述操作可以是 創(chuàng)建所述數(shù)據(jù)流管理器的應(yīng)用模塊執(zhí)行的,也可以是其他應(yīng)用模塊執(zhí)行的。比如,前面本發(fā) 明實施例嵌入式系統(tǒng)多類內(nèi)存管理方法中提到的http處理模塊下載html頁面文件,html 引擎解析頁面的過程。為此,在本發(fā)明實施例中,所述應(yīng)用模塊還411還可進(jìn)一步包括通知單元(未圖示),用于在所述寫入單元413將所述數(shù)據(jù)流寫入數(shù)據(jù)流管理器 410之后,將所述數(shù)據(jù)流管理器410傳送給目標(biāo)模塊,以使所述目標(biāo)模塊通過所述數(shù)據(jù)流管 理器410的各接口對所述內(nèi)存中的數(shù)據(jù)進(jìn)行操作。除此之外,所述應(yīng)用模塊還411還可進(jìn)一步包括刪除單元(未圖示),用于刪除所述數(shù)據(jù)流管理器410,并釋放所述數(shù)據(jù)流管理器 410分配的所有內(nèi)存資源。同樣,刪除所述數(shù)據(jù)流管理器410的操作根據(jù)應(yīng)用需要,可以由創(chuàng)始所述數(shù)據(jù)流 管理器410的應(yīng)用模塊來完成,也可以由其他應(yīng)用模塊來完成。利用本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理裝置,實現(xiàn)對嵌入式系統(tǒng)多類內(nèi)存的 各種操作的詳細(xì)過程可參照前面本發(fā)明嵌入式系統(tǒng)多類內(nèi)存管理方法中的描述,在此不再
10贅述。利用本發(fā)明實施例嵌入式系統(tǒng)多類內(nèi)存管理裝置,可以使各應(yīng)用模塊不僅可以創(chuàng) 造相應(yīng)的數(shù)據(jù)流管理器,而且還可以通過統(tǒng)一的數(shù)據(jù)流管理器接口來使用內(nèi)存,屏蔽了不 同應(yīng)用模塊間內(nèi)存使用的差異。各應(yīng)用模塊不需要知道具體內(nèi)存的使用方式,從而可以在 很大程度上簡化程序,使程序更加通用而且容易理解。由于應(yīng)用模塊不需要知道數(shù)據(jù)存放 細(xì)節(jié),通過使用多塊內(nèi)存來代替一塊連續(xù)大內(nèi)存,在內(nèi)存碎片多不能分配大塊內(nèi)存時,可以 有效利用小內(nèi)存,減少系統(tǒng)失效率,在嵌入式系統(tǒng)中可以更加有效利用內(nèi)存。以上公開的僅為本發(fā)明的優(yōu)選實施方式,但本發(fā)明并非局限于此,任何本領(lǐng)域的 技術(shù)人員能思之的沒有創(chuàng)造性的變化,以及在不脫離本發(fā)明原理前提下所作的若干改進(jìn)和 潤飾,都應(yīng)落在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
一種嵌入式系統(tǒng)多類內(nèi)存管理方法,其特征在于,包括應(yīng)用模塊需要將數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi)存分配策略;所述應(yīng)用模塊將所述數(shù)據(jù)流傳送給數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器按照所述內(nèi)存分配策略為所述數(shù)據(jù)流分配內(nèi)存,并將所述數(shù)據(jù)流寫入分配的內(nèi)存中。
2.如權(quán)利要求1所述的方法,其特征在于,所述內(nèi)存分配策略包括以下任意一項或多 項策略圖片內(nèi)存分配策略、字庫內(nèi)存分配策略、頁面內(nèi)存分配策略、通用內(nèi)存分配策略。
3.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括以下任意一個或多個步驟 所述數(shù)據(jù)流管理器從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給應(yīng)用模塊,并將讀數(shù)據(jù)指針移到相應(yīng)位置;所述數(shù)據(jù)流管理器從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給應(yīng)用模塊,并保 持讀數(shù)據(jù)指針位置不變;所述數(shù)據(jù)流管理器向應(yīng)用模塊返回當(dāng)前的讀數(shù)據(jù)指針位置和當(dāng)前的寫數(shù)據(jù)指針位置;所述數(shù)據(jù)流管理器將所述內(nèi)存中的數(shù)據(jù)流保存到文件; 所述數(shù)據(jù)流管理器將所述內(nèi)存中的數(shù)據(jù)流復(fù)制到所述內(nèi)存中的其他位置; 所述數(shù)據(jù)流管理器建立對應(yīng)所述內(nèi)存中的數(shù)據(jù)流的其他數(shù)據(jù)流管理器; 所述數(shù)據(jù)流管理器刪除所述數(shù)據(jù)流管理器分配的內(nèi)存中的所有數(shù)據(jù)。
4.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括所述應(yīng)用模塊在將所述數(shù)據(jù)流寫入數(shù)據(jù)流管理器之后,將所述數(shù)據(jù)流管理器傳送給 目標(biāo)模塊,以使所述目標(biāo)模塊通過所述數(shù)據(jù)流管理器的各接口對所述內(nèi)存中的數(shù)據(jù)進(jìn)行操 作。
5.如權(quán)利要求1至4任一項所述的方法,其特征在于,所述方法還包括當(dāng)不需要再使用所述數(shù)據(jù)流管理器時,刪除所述數(shù)據(jù)流管理器,并釋放所述數(shù)據(jù)流管 理器分配的所有內(nèi)存資源。
6.一種嵌入式系統(tǒng)多類內(nèi)存管理裝置,其特征在于,包括至少一個應(yīng)用模塊和所述 應(yīng)用模塊建立的數(shù)據(jù)流管理器;所述應(yīng)用模塊包括建立單元,用于需要將數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi)存分配 策略;寫入單元,用于將所述數(shù)據(jù)流傳送給數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器包括寫數(shù)據(jù)接口,用于按照所述內(nèi)存分配策略為所述數(shù)據(jù)流分配 內(nèi)存,并將所述數(shù)據(jù)流寫入分配的內(nèi)存中。
7.如權(quán)利要求6所述的裝置,其特征在于,所述內(nèi)存分配策略包括以下任意一項或多 項圖片內(nèi)存分配策略、字庫內(nèi)存分配策略、頁面內(nèi)存分配策略、通用內(nèi)存分配策略。
8.如權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)流管理器還包括以下任意一個或 多個接口 讀數(shù)據(jù)接口,用于從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給所述應(yīng)用模塊, 并將讀數(shù)據(jù)指針移到相應(yīng)位置;預(yù)讀數(shù)據(jù)接口,用于從當(dāng)前讀數(shù)據(jù)指針位置讀取所需長度的數(shù)據(jù)返回給所述應(yīng)用模 塊,并保持讀數(shù)據(jù)指針位置不變;指針位置獲取接口,用于向所述應(yīng)用模塊返回當(dāng)前的讀數(shù)據(jù)指針位置和當(dāng)前的寫數(shù)據(jù) 指針位置;指針位置設(shè)置接口,用于將當(dāng)前讀數(shù)據(jù)指針的位置和當(dāng)前寫數(shù)據(jù)指針的位置移動到所 述應(yīng)用模塊設(shè)置的位置;文件保存接口,用于將所述內(nèi)存中的數(shù)據(jù)流保存到文件中; 復(fù)制接口,用于將所述內(nèi)存中的數(shù)據(jù)流復(fù)制到所述內(nèi)存中的其他位置; 克隆接口,用于建立對應(yīng)所述內(nèi)存中的數(shù)據(jù)流的其他數(shù)據(jù)流管理器; 復(fù)位接口,用于刪除所述數(shù)據(jù)流管理器分配的內(nèi)存中的所有數(shù)據(jù); 所述應(yīng)用模塊還包括接口調(diào)用單元,用于通過調(diào)用所述數(shù)據(jù)流管理器的接口,實現(xiàn)對所述內(nèi)存中的數(shù)據(jù)的 以下一種或多種操作讀數(shù)據(jù)、預(yù)讀數(shù)據(jù)、獲取指針位置、設(shè)置指針位置、文件保存、復(fù)制數(shù) 據(jù)、克隆數(shù)據(jù)、復(fù)位。
9.如權(quán)利要求8所述的裝置,其特征在于,所述應(yīng)用模塊還包括通知單元,用于在所述寫入單元將所述數(shù)據(jù)流寫入數(shù)據(jù)流管理器之后,將所述數(shù)據(jù)流 管理器傳送給目標(biāo)模塊,以使所述目標(biāo)模塊通過所述數(shù)據(jù)流管理器的各接口對所述內(nèi)存中 的數(shù)據(jù)進(jìn)行操作。
10.如權(quán)利要求6至9任一項所述的裝置,其特征在于,所述應(yīng)用模塊還包括刪除單元,用于刪除所述數(shù)據(jù)流管理器,并釋放所述數(shù)據(jù)流管理器分配的所有內(nèi)存資源。
全文摘要
本發(fā)明涉及內(nèi)存管理技術(shù)領(lǐng)域,公開了一種嵌入式系統(tǒng)多類內(nèi)存管理方法及裝置。所述方法包括應(yīng)用模塊需要將數(shù)據(jù)流寫入內(nèi)存時,建立數(shù)據(jù)流管理器并設(shè)置對應(yīng)的內(nèi)存分配策略;所述應(yīng)用模塊將所述數(shù)據(jù)流傳送給數(shù)據(jù)流管理器;所述數(shù)據(jù)流管理器按照所述內(nèi)存分配策略為所述數(shù)據(jù)流分配內(nèi)存,并將所述數(shù)據(jù)流寫入分配的內(nèi)存中。利用本發(fā)明,可以提高嵌入式系統(tǒng)中多類內(nèi)存的使用效率,減少內(nèi)存碎片,進(jìn)而方便進(jìn)行不同模塊間的通信及數(shù)據(jù)傳遞,提高系統(tǒng)的可靠性和穩(wěn)定性。
文檔編號G06F12/02GK101901191SQ20101018872
公開日2010年12月1日 申請日期2010年5月31日 優(yōu)先權(quán)日2010年5月31日
發(fā)明者徐佳宏, 程伯欽, 連重明 申請人:深圳市茁壯網(wǎng)絡(luò)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黔南| 文安县| 社旗县| 红安县| 鄂尔多斯市| 兴宁市| 富阳市| 海宁市| 宁安市| 郁南县| 新宾| 广灵县| 吉木萨尔县| 墨江| 民和| 清镇市| 渝中区| 大同县| 宜兰市| 潢川县| 雷波县| 汝州市| 吴桥县| 惠东县| 兰州市| 修水县| 定西市| 屏山县| 天津市| 蓬莱市| 独山县| 普兰县| 巩留县| 同德县| 寿阳县| 台中县| 庆云县| 车险| 鄄城县| 灵寿县| 桂林市|