[發明專利]一種內存分配、釋放方法及裝置有效
| 申請號: | 201010187309.8 | 申請日: | 2010-05-21 |
| 公開(公告)號: | CN101859279A | 公開(公告)日: | 2010-10-13 |
| 發明(設計)人: | 馬曉靖 | 申請(專利權)人: | 北京星網銳捷網絡技術有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 100036 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 分配 釋放 方法 裝置 | ||
技術領域
本發明涉及內存管理技術領域,尤其涉及一種內存分配、釋放方法及裝置。
背景技術
在現代操作系統中,虛擬內存技術指的是:程序訪問邏輯內存(或稱為邏輯空間)的地址(通常稱為邏輯地址)并不是實際的物理內存地址,而是由內核的內存管理單元(MMU,Memory?Manage?Unit)器件將程序訪問的邏輯內存的地址映射為物理地址。地址映射管理的基本內存單元為“頁”記錄邏輯地址和物理地址映射關系的信息結構稱為“頁表”,內核的內存管理模塊為每個程序建立一個頁表,頁表記錄了程序(即應用程序)邏輯頁的基本信息如讀寫權限、是否已分配對應的物理頁、邏輯頁對應的物理頁(如果有)的頁號等,頁表供MMU器件使用,在程序運行訪問內存時MMU器件能夠自動完成邏輯頁到物理頁的轉換過程。
一個簡單的頁表如圖1所示,系統中有程序A和程序B,它們的內存空間分別包含4個邏輯頁,而系統的物理內存的總數為6個物理頁。程序A的第0個邏輯頁尚未分配物理頁,圖中標為‘x’,第1個邏輯頁映射到第0個物理頁,第2個邏輯頁映射到第4個物理頁中,等等。當程序A訪問第1個邏輯頁時,MMU器件根據它的頁表來控制訪問到物理頁0。
內核的內存管理模塊在為應用程序分配物理內存時,并不為這些空間邏輯頁分配物理頁,而是在頁表中標記這些邏輯頁的物理頁未分配。當程序訪問這些未分配物理頁的邏輯頁時,會觸發“缺頁中斷”處理過程,在缺頁中斷處理過程中,在確認內存訪問的合法性之后,才為該邏輯頁分配對應的物理頁,并在頁表中填寫物理頁號,這種內存管理技術稱為請求頁調度。
利用虛擬內存和請求頁調度技術,允許一個系統內運行的所有程序所需邏輯內存總和大于系統可用物理內存總和,或者一個程序的邏輯內存需求就可大于整個系統的可用物理內存總和。根據程序運行的局部性原理:通常在一個時間段內程序對內存的訪問總是集中在某個較小的內存區域內,因此程序運行時不需要將所有程序及數據都加載于邏輯內存中,而是將最近要使用的內容置于物理內存中,對于那些最近不常使用的物理頁,可以將其換出存儲到交換設備(通常是硬盤)中,而將物理內存分配給其它程序使用。這種內存管理技術叫做“交換”。當該程序訪問已被換出的物理頁對應的邏輯頁時會觸發缺頁中斷,在缺頁中斷處理程序中,內核的內存管理模塊為其重新分配一個物理頁(不一定是換出前的物理頁),將邏輯頁對應內容讀取到重新分配的物理頁中,并相應修改頁表的內容。
內核的內存管理模塊在空閑的物理內存小于某個預設值時,要有選擇的將一部分正在使用的物理頁換出到交換設備中,這樣當缺頁中斷產生時,總能有空閑的物理頁分配給程序。在如何選擇換出的物理頁面時,最常見使用的算法是最近最少使用(Least?Recently?Used,LRU)算法,這種算法的設計是基于程序的局部性原理:如果一個程序在過去的一個時間段內未使用這個物理頁,那么它在未來的一個時間段內不使用這個物理頁的概率也比較大。
現有操作系統建立在MMU器件基礎上的虛擬內存技術、請求頁調度和交換技術,存在下述不足:
現有的請求頁調度技術中,當程序第一次訪問讀寫邏輯內存時,會引發缺頁中斷,被中斷的程序會在中斷處繼續執行,對程序會造成延遲,對實時性要求較高的程序例如網絡交換設備所使用的程序其處理實時性的事件的性能會造成影響。
現有的“交換”技術中,基于跟蹤各個物理頁面的具體使用情況,來決定哪些物理頁需要換出,那些被換出的物理頁可能是程序已釋放的不再需要使用的邏輯頁的物理頁,也可能是程序還未釋放的邏輯頁所對應的物理頁,只是最近一個時間段內沒有被訪問過,內核是基于物理頁的歷史使用情況來推算該物理頁未來的使用情況,可能某個物理頁面剛剛被換出到交換設備中,程序又要訪問這個物理頁面,需要立即再將其換入到內存中,內核無法準確地根據程序的需要進行換頁操作,這種“換頁”的內存管理方式,對于實時性要求很高的程序來說,顯然是很缺乏效率的,無法滿足其實時性的要求。
并且,在支持“交換”的內存管理技術的設備中,當某個需要訪問的邏輯頁對應的物理頁已經被換出時,需要等待再將該物理頁換回物理內存中,由于物理頁的換入/換出的時間開銷遠大于直接訪問內存的時間,這種換頁技術,無法滿足實時性程序對于時延的要求。
發明內容
本發明提供一種內存分配、釋放方法及裝置,用以解決現有的內存管理方法無法滿足程序的實時性要求的問題。
本發明提供的一種內存分配方法,包括:
在加載程序時,根據所述程序預先設置的實時屬性,為所述程序的靜態段占用的邏輯頁分配對應的物理頁;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京星網銳捷網絡技術有限公司,未經北京星網銳捷網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010187309.8/2.html,轉載請聲明來源鉆瓜專利網。





