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

通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法

文檔序號:6569112閱讀:390來源:國知局
專利名稱:通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法
技術領域
本發(fā)明涉及內(nèi)存的分配管理,更具體的說,涉及一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法。
現(xiàn)有的通信系統(tǒng)中可能都采取了措施來解決內(nèi)存資源的管理問題,但是都存在這樣一個問題錯誤沒有得到很好的控制,當出現(xiàn)錯誤時,錯誤所引起的后果沒有能夠控制在某一個分系統(tǒng)或某一個進程中,而是在整個軟件系統(tǒng)中蔓延,從而導致整個系統(tǒng)的穩(wěn)定性和可靠性下降。在一個大的有關嵌入式系統(tǒng)的項目中,如果不能提供一個對內(nèi)存行之有效的集中管理機制,勢必會給系統(tǒng)的正常運行帶來很大的威脅。
舉例來說,幾乎每一個操作系統(tǒng)都有malloc和free兩個系統(tǒng)調(diào)用來申請和釋放內(nèi)存,但是他們是庫函數(shù),不在編譯器的控制范圍之內(nèi),假如忘記對某些對象進行初始化,以及把錯誤規(guī)模的對象傳給了它,都會給系統(tǒng)帶來不可估計的缺陷。如果能有一個完善的內(nèi)存分配方案,在編譯器的控制范圍之內(nèi),并使用虛擬內(nèi)存的狀態(tài)可控的特點,就可以在錯誤發(fā)生之前就發(fā)現(xiàn)錯誤,或者采取一定的內(nèi)存保護措施。

發(fā)明內(nèi)容
本發(fā)明所要解決定技術問題是將內(nèi)存錯誤引發(fā)的后果很好地控制在某一個分系統(tǒng)或某一個進程中,從而提高整個系統(tǒng)的穩(wěn)定性和可靠性。
本發(fā)明的核心思想是在實現(xiàn)基本內(nèi)存分配和去配功能的基礎上,還適當兼顧到內(nèi)存使用,檢查非法操作等功能。使得由于應用程序使用內(nèi)存而引起的錯誤在軟件開發(fā)的早期階段就能及早暴露,避免進一步在整個軟件系統(tǒng)中蔓延,在各軟件分系統(tǒng)中防止內(nèi)存泄露、防止內(nèi)存越界訪問、防止釋放錯誤地址的內(nèi)存、防止重復釋放。內(nèi)存分配系統(tǒng)主要考慮了速度的瓶頸以及碎片問題,尤其在嵌入實時系統(tǒng)中,程序必須在有限的資源情況下運行很長的時間,就要求分配內(nèi)存不允許船舷堆內(nèi)存耗盡或出現(xiàn)很多碎片的情況,本發(fā)明也考慮解決了這一問題。主要目的是實現(xiàn)通信軟件系統(tǒng)中各分系統(tǒng)的虛擬內(nèi)存管理和分配方法,使各分系統(tǒng)具有相對的獨立性。
本發(fā)明的技術方案是這樣實現(xiàn)的。一種通信系統(tǒng)中分系統(tǒng)間的內(nèi)存分配管理方法,包括下列步驟(1)對通信系統(tǒng)的需求進行分析,確定所有的分系統(tǒng);(2)確定分系統(tǒng)的任務數(shù);(3)將整個系統(tǒng)的虛擬內(nèi)存空間地址,按分系統(tǒng)的實際需要加上一定的冗余來分配所需虛擬內(nèi)存;(4)確定各分系統(tǒng)的內(nèi)存分配管理方案。
所述步驟(4)中的分系統(tǒng)的內(nèi)存分配管理方案包括如下步驟(1)將分系統(tǒng)的地址空間劃分為一定大小規(guī)格的內(nèi)存塊;(2)確定每個內(nèi)存塊的保護屬性;(3)確定自定義的內(nèi)存塊頭的結構。
上面所述的每一個內(nèi)存塊的最大可用數(shù)量是可以配置的;內(nèi)存塊大小可以為32字節(jié)、64字節(jié)、128字節(jié)、256字節(jié)、512字節(jié)、1024字節(jié)或2048字節(jié);保護屬性為可讀或可寫;內(nèi)存塊頭的結構包括內(nèi)存塊的大小及數(shù)量、是否需要保護、屬于哪個分系統(tǒng)等信息。
采用本發(fā)明提出的虛擬內(nèi)存分配管理方法,分系統(tǒng)獨立控制內(nèi)存塊的分配、操作以及按頁保護,避免了內(nèi)存錯誤在整個系統(tǒng)中蔓延,而將之局限在子系統(tǒng)中。同時采用了有效的內(nèi)存分配管理方案防止內(nèi)存越界,引入了虛擬內(nèi)存易保護的特點,控制了系統(tǒng)其它地方對內(nèi)存的非法操作,從而使得整個系統(tǒng)的穩(wěn)定性、可靠性得到了提高。


圖1是本發(fā)明提出的方法的流程圖。如圖所示,1、確定分系統(tǒng),對通信系統(tǒng)的需求進行分析,確定所有的分系統(tǒng)。2、確定分系統(tǒng)的任務數(shù)。根據(jù)VxWorks操作系統(tǒng)內(nèi)核的屬性,加上目標是實現(xiàn)分系統(tǒng)的內(nèi)存管理和分配,主要是要考慮分系統(tǒng)的特點以及所用硬件以及操作系統(tǒng)內(nèi)核有關虛擬地址的相關操作。比如VxWorks操作系統(tǒng)中具有CONTEXT概念,在系統(tǒng)運行期間,只有一個CONTEXT是擊活的,對于別的進程是毫無意義的。這就給系統(tǒng)的設計帶來了很大難處,尤其是系統(tǒng)運行期間分系統(tǒng)間的通信,當然可以通過共享內(nèi)存以及消息隊列來解決,但太多地引入這些內(nèi)存空間,會使分系統(tǒng)的內(nèi)存分配和管理失去意義,只會給系統(tǒng)設計帶來太多的麻煩??梢詮南旅鎯煞N情況來考慮①一個分系統(tǒng)中只有一個任務,當然不是刻意把一個任務當成一個分系統(tǒng),只是盡量減少整個系統(tǒng)的任務數(shù)量,這是符合嵌入式系統(tǒng)設計思想的。因為任務切換很耗時,嚴重影響系統(tǒng)的效率。這樣為每個分系統(tǒng)建一個CONTEXT,在任務切換時交換CONTEXT。VxWorks中可以用任務切換鉤子函數(shù)來實現(xiàn)。任務間通信可以用消息隊列和全局虛擬內(nèi)存CONTEXT等。②如果系統(tǒng)中任務很多,則可以只創(chuàng)建一個全局CONTEXT,然后為每個分系統(tǒng)指定所分配的頁面。這樣就把分系統(tǒng)的所有行為控制在指定的頁面內(nèi)。并且不存在交互的問題,因為在系統(tǒng)運行期間CONTEXT始終有效,并且很好地解決了前面所描述的問題。3、分配分系統(tǒng)所需虛擬內(nèi)存。將整個系統(tǒng)的虛擬內(nèi)存空間地址,按分系統(tǒng)的實際需要加上一定的冗余來分配所需虛擬內(nèi)存。配置相關的內(nèi)存映射,在PHYS_MEM_DESC結構中配置相關虛擬CONTEXT的屬性,包括虛擬地址的起始地址、物理地址的起始地址,以及分配地址的地址長度(一個CONTEXT分配的長度),所分配頁面的初始化狀態(tài)等。根據(jù)前兩種情況分別有不同的地址分配配置方案。關于每個CONTEXT的具體配置參考相關的操作系統(tǒng)。按第一種情況,為每個分系統(tǒng)配置一個CONTEXT,這樣分系統(tǒng)的內(nèi)存空間起始地址以及大小和所需要的狀態(tài)都已定義好了。然而第二種情況只定義了一個虛擬CONTEXT,自己設計一個類似PHYS MEM DESC的結構來表示分系統(tǒng)在這個CONTEXT中起始地址以及大小,效果完全與第一種一樣。4、確定分系統(tǒng)內(nèi)存分配管理方案。在分系統(tǒng)內(nèi)創(chuàng)建不同大小的內(nèi)存塊,必須按頁面對齊,因為操作系統(tǒng)實現(xiàn)的是按頁保護。比如象分配32字節(jié)大小的內(nèi)存塊,加上內(nèi)存塊頭部16字節(jié),共48字節(jié),頁面大小512字節(jié),可以計算一個頁面有10個內(nèi)存塊。這樣就對小于頁面大小的內(nèi)存塊實現(xiàn)內(nèi)存保護比較困難,主要是頁面上內(nèi)存塊對內(nèi)存保護的要求不一樣,這樣在此頁面上做內(nèi)存保護會產(chǎn)生沖突,解決辦法是對于需要內(nèi)存保護,要求嚴格的數(shù)據(jù)分配給它的內(nèi)存至少以頁面大小為整數(shù)倍的內(nèi)存塊。
圖2是分配分系統(tǒng)所需虛擬內(nèi)存示意圖。如圖2所示,虛擬內(nèi)存表示分系統(tǒng)所分配的虛擬內(nèi)存空間,物理內(nèi)存是分系統(tǒng)運行時使用的實際內(nèi)存,全局虛擬內(nèi)存是分系統(tǒng)之間的共用資源,可以相互通信。因為當一個分系統(tǒng)處于運行狀態(tài),其他分系統(tǒng)的虛擬內(nèi)存失效,但如果其他分系統(tǒng)要與此系統(tǒng)通信的話,必須使這個通信資源對此分系統(tǒng)有效,故放入全局虛擬內(nèi)存中。21表示系統(tǒng)配置,用于定義分系統(tǒng)的虛擬內(nèi)存與物理內(nèi)存之間的映射關系。22表示的是硬件和操作系統(tǒng)內(nèi)核實現(xiàn)虛實地址之間轉(zhuǎn)換。在虛擬內(nèi)存空間范圍(通常比物理地址空間大的多)內(nèi)為每個分系統(tǒng)分配一定的地址空間范圍,然后通過分系統(tǒng)頁表映射到物理地址空間。所設計的內(nèi)存管理方案在每個分系統(tǒng)內(nèi)實現(xiàn)。當需要與其他分系統(tǒng)通信時,只需在全局虛擬內(nèi)存空間中申請?zhí)摂M內(nèi)存即可。采用這種分配方法,利用虛擬內(nèi)存具有狀態(tài)可控的特性,可以使分系統(tǒng)獨立控制內(nèi)存塊的分配、操作以及按頁保護,避免了內(nèi)存錯誤在整個系統(tǒng)中蔓延,而將之局限在子系統(tǒng)中。同時采用了有效的內(nèi)存分配管理方案防止內(nèi)存越界,引入了虛擬內(nèi)存易保護的特點,控制了系統(tǒng)其它地方對內(nèi)存的非法操作。
圖3是分系統(tǒng)內(nèi)存分配管理方案的流程圖。首先劃分分系統(tǒng)的內(nèi)存塊。將分系統(tǒng)的地址空間劃分為一定大小規(guī)格的內(nèi)存塊,每一個內(nèi)存塊的最大可用數(shù)量是可以配置的。這些內(nèi)存塊大小可以為32字節(jié)、64字節(jié)、128字節(jié)、256字節(jié)、512字節(jié)、1024字節(jié)或2048字節(jié)。然后確定每個內(nèi)存塊的保護屬性。比如可讀、可寫等。對于需要保護的數(shù)據(jù),應按頁面大小的字節(jié)對齊。最后確定自定義內(nèi)存塊頭的結構。內(nèi)存塊頭的結構包括內(nèi)存塊的大小及數(shù)量、是否需要保護、屬于哪個分系統(tǒng)等信息。
圖4和圖5表示了本發(fā)明的一個實施例的分系統(tǒng)中內(nèi)存申請和釋放的流程圖。如圖3所示,內(nèi)存申請流程為1、獲得當前的任務號;2、根據(jù)任務號,判斷申請內(nèi)存屬于哪個分系統(tǒng);3、判斷申請內(nèi)存的合法性以及數(shù)據(jù)保護的要求;4、找到相對應大小的內(nèi)存UB(uniform memory block一致大小的內(nèi)存塊)塊隊列;5、返回申請到的內(nèi)存地址。內(nèi)存釋放的流程為1、判斷要釋放內(nèi)存的合法性;2、獲得當前的任務號;3、根據(jù)任務號,判斷內(nèi)存屬于哪個分系統(tǒng);4、在分系統(tǒng)中找到相關的內(nèi)存UB塊,歸還到相關的UB隊列。在任務中分配內(nèi)存時,首先找到自己的任務ID號,判斷屬于哪個分系統(tǒng)。然后在分系統(tǒng)中可以按內(nèi)存分配方案來得到所需的內(nèi)存,歸還內(nèi)存時,必須找到相對應的內(nèi)存隊列,先得判斷內(nèi)存塊屬于哪個分系統(tǒng),然后按原來的內(nèi)存分配方案歸還內(nèi)存。
權利要求
1.一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法,包括下列步驟(1)對通信系統(tǒng)的需求進行分析,確定所有的分系統(tǒng);(2)確定分系統(tǒng)的任務數(shù);(3)將整個系統(tǒng)的虛擬內(nèi)存空間地址,按分系統(tǒng)的實際需要加上一定的冗余來分配所需虛擬內(nèi)存;(4)確定各分系統(tǒng)的內(nèi)存分配管理方案。
2.如權利要求1所述的一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法,其特征在于,所述步驟(4)中的分系統(tǒng)的內(nèi)存分配管理方案包括如下步驟(1)將分系統(tǒng)的地址空間劃分為一定大小規(guī)格的內(nèi)存塊;(2)確定每個內(nèi)存塊的保護屬性;(3)確定自定義的內(nèi)存塊頭的結構。
3.如權利要求2所述的一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法,其特征在于所述的每一個內(nèi)存塊的最大可用數(shù)量是可以配置的。
4.如權利要求2所述的一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法,其特征在于所述步驟(1)中的內(nèi)存塊大小可以為32字節(jié)、64字節(jié)、128字節(jié)、256字節(jié)、512字節(jié)、1024字節(jié)或2048字節(jié)。
5.如權利要求2所述的一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法,其特征在于所述步驟(2)中的保護屬性為可讀或可寫。
6.如權利要求2所述的一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法,其特征在于所述步驟(3)中的內(nèi)存塊頭的結構包括內(nèi)存塊的大小及數(shù)量、是否需要保護、屬于哪個分系統(tǒng)等信息。
全文摘要
本發(fā)明公開了一種通信系統(tǒng)中分系統(tǒng)間的虛擬內(nèi)存分配管理方法,包括下列步驟(1)對通信系統(tǒng)的需求進行分析,確定所有的分系統(tǒng);(2)確定分系統(tǒng)的任務數(shù);(3)將整個系統(tǒng)的空間地址,按分系統(tǒng)的實際需要加上一定的冗余來分配所需內(nèi)存;(4)確定各分系統(tǒng)的內(nèi)存分配管理方案。采用本發(fā)明提出的內(nèi)存分配管理方法,分系統(tǒng)獨立控制內(nèi)存塊的分配、操作以及按頁保護,避免了內(nèi)存錯誤在整個系統(tǒng)中蔓延,而將之局限在子系統(tǒng)中,從而使得整個系統(tǒng)的穩(wěn)定性、可靠性得到了提高。
文檔編號G06F12/08GK1430150SQ0113810
公開日2003年7月16日 申請日期2001年12月29日 優(yōu)先權日2001年12月29日
發(fā)明者黃峰 申請人:深圳市中興通訊股份有限公司上海第二研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汽车| 乾安县| 东源县| 安义县| 五大连池市| 策勒县| 岳阳县| 和平区| 富阳市| 曲阜市| 麟游县| 古丈县| 滁州市| 北京市| 南江县| 涡阳县| 安溪县| 饶河县| 西峡县| 丹寨县| 阜平县| 宿松县| 布尔津县| 龙南县| 新泰市| 扶绥县| 旌德县| 屯昌县| 莱芜市| 肃宁县| 襄城县| 肥东县| 夏河县| 遂昌县| 龙门县| 通州市| 澳门| 大渡口区| 惠东县| 贵德县| 逊克县|