[發明專利]一種適用于slab結構的內存管理方法及裝置有效
| 申請號: | 201810167323.8 | 申請日: | 2018-02-28 |
| 公開(公告)號: | CN110209594B | 公開(公告)日: | 2020-01-24 |
| 發明(設計)人: | 李樹龍;陳闖;張炎潑 | 申請(專利權)人: | 貴州白山云科技股份有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 11453 北京名華博信知識產權代理有限公司 | 代理人: | 白瑩;李冬梅 |
| 地址: | 550003 貴州省貴陽市*** | 國省代碼: | 貴州;52 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存管理 內存塊 分配器 分配 監控 管理 | ||
本發明公開了一種適用于slab結構的內存管理方法及裝置。適用于slab結構的內存管理方法包括:監控slab內存塊的狀態;在確定slab內存塊的狀態為未分配時,直接將未分配的slab內存塊提交給頁分配器管理。所公開的內存管理方法及裝置能夠簡化適用于slab結構的內存管理操作,提高效率。
技術領域
本發明涉及計算機系統,尤其涉及一種適用于slab結構的內存管理方法及裝置。
背景技術
計算機系統的內存容量通常是有限的,而同一個計算機系統上卻可以運行許多計算機應用程序,為了保證不同計算機應用程序高效地使用系統內存,就需要對系統內存進行有效管理,這是計算機領域中的一項關鍵技術。
目前大多數計算機系統都采用雙層內存管理結構來進行系統內存的管理。如圖1所示,頁分配器101是第一層內存管理結構,它通常以內存頁(存儲容量為4K字節的內存塊)為基本單位來管理系統內存,從而為文件系統/驅動程序等應用程序分配專用cache(在圖1中以箭頭105的形式表示出了這種關系)。slab分配器103是第二層內存管理結構,它通常以slab結構所包含的小于內存頁大小的chunk塊(例如,存儲容量為8字節、16字節等的內存塊)為基本單位來進一步管理(在圖1中以箭頭111的形式表示出了這種關系)由頁分配器101所分配的包含一個或多個連續內存頁的系統內存,從而為網絡層/應用層程序等應用程序分配專用cache(在圖1中以箭頭109的形式表示出了這種關系);而且,當文件系統/驅動程序中的對象需要基于chunk塊進行內存分配和釋放時,也可以由slab分配器103代替頁分配器101為其管理內存(在圖1中以箭頭107的形式表示出了這種關系)。由于slab分配器103的內存分配粒度更加精細,它的引入有效地避免了內存浪費的問題。
在現有技術中,最經典的slab分配器103莫過于在linux操作系統中實現的slab分配器。它作為linux操作系統的標準功能模塊,在設計時兼顧了普通用戶、開發人員、系統管理人員等眾多用戶的不同需求,這從根本上注定了其實現復雜、在某些應用場景下的性能可以進行優化的特點。
例如,linux操作系統中實現的slab分配器,將slab分成了已完全分配(其所包含的所有chunk塊均已被分配給應用程序)、已部分分配(其所包含的一部分chunk塊已被分配給應用程序)、未分配(其所包含的所有chunk塊均未被分配給應用程序)3種不同的類型進行管理。盡管通過在cache中預先設置未分配slab類型這種方式,能夠在無法預先確定應用程序將使用的具體內存數量的情況下,預先分配過量的完全未使用的slab,從而達到快速為應用程序中的新增對象分配內存和加快該新增對象初始化的目的。然而,普通用戶、開發人員和系統管理人員也可能會使用、開發和管理可以預知內存大小的應用程序,至少在這種情況下,可以對諸如現有linux操作系統、nginx服務器應用程序等應用中的slab分配器進行優化,以簡化適用于slab結構的內存管理操作,提高效率。
另外,現有技術的slab內存分配函數的接口參數較多,調用起來比較復雜。
因此,至少為了解決上述問題,需要提出新的技術方案。
發明內容
本發明旨在解決上面描述的問題。
根據本發明的一種適用于slab結構的內存管理方法,包括:
監控slab內存塊的狀態;
在確定slab內存塊的狀態為未分配時,直接將未分配的slab內存塊提交給頁分配器管理。
根據本發明的內存管理方法,還包括:
按照slab內存塊所包含的chunk塊的大小的不同,將slab內存塊劃分成具有不同內存分配粒度的slab內存塊分組,定義與slab內存塊分組對應的slab內存塊分組數據結構,使用slab內存塊分組數據結構對slab內存塊進行管理。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于貴州白山云科技股份有限公司,未經貴州白山云科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810167323.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種面向偏好設置的安卓應用測試方法
- 下一篇:一種用于管理內存頁的方法及裝置





