在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux中的物理內存的具體分配情況

454398 ? 來源: Chinaunix ? 作者:StolennnXB ? 2020-09-23 11:26 ? 次閱讀

Linux當中,物理內存的劃分之前已經寫過一篇了,今天來講講內存的具體分配

首先,內存被分成一個一個的節點,每個節點由不同的區域組成,當在區域內部需要使用物理內存的時候,就是今天要講的伙伴系統登場的時候了。

首先,各個內存區域的空閑可用物理內存被分割成一個一個的鏈表,每個鏈表當中的元素表示的空閑頁的大小都是相同的,且都是2的整數次冪,這一個個的鏈表,就按照整數次冪(之后叫order)的大小排列在一個數組當中。

當系統需要分配一個大小為k的空間的時候,會先將k按照2^order對其,之后就會先從本地節點上,按照order從小到達的次序去遍歷各個鏈表,直到找到剛好匹配。如果沒有剛好匹配,則需要在更大的鏈表上拿下一個更大塊的內存,取出自己需要的之后,還要將剩下的部分塞回到對應order的鏈表之上。如果當前節點的所有鏈表均沒有匹配,則需要在其他節點上“遠程調度”,這種情況對應的消耗會比較大。

以上就是簡單的講述了伙伴系統的功能,其分配的基本單位是頁,一般為4k

由于buddy-system的基本單位為4k,但是內核當中的數據結構沒有那么大,而且頻繁分配釋放也會造成大量不必要的消耗,這時候就需要slab分配器出場了(它在嵌入式的兄弟叫slob,大型機上的兄弟較slub),其實slab的功能不僅僅是一個分配器,也是一個緩存管理器,其運行在伙伴系統之上。我們熟知的task_struct等很多內核結構都是由它來管理的。

當我們要申請一個slab緩存的時候,需要制定要緩存的固定類型,比如task_struct,這樣,當slab拿到物理內存的時候,它就會把整塊的內存排好,只用于存放task_struct,其他的數據類型也一樣,另外,所有的slab緩存是通過鏈表連在一起的。

當確定了slab緩存的類型之后,它就會根據固定類型的數據長度,選取對齊位置,選擇和是的padding進行對其,這個padding可以用來設置一些下一個空閑量偏移之類的東西。

這樣,當內核需要用到某一種數據類型的時候,就會先根slab去要,slab如果沒有,slab就會去找buddy-system,拿到物理內存之后,就按照請求劃分,返回調用方想要的。

如果是釋放固定的類型,也不是直接返還給物理內存,slab依舊持有,方便下一次調用的是時候,直接從緩存拿,而較少調用buddy-system的次數

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1384

    瀏覽量

    40442
  • Linux
    +關注

    關注

    87

    文章

    11351

    瀏覽量

    210513
收藏 人收藏

    評論

    相關推薦

    Linux服務器卡頓救星之一招釋放Cache內存

    在程序運行結束后不會自動釋放。這可能會導致程序頻繁讀寫文件后可用物理內存變得很少,必要時(比如內存確實不夠用),需要主動釋放緩存內存。 注意:一般
    的頭像 發表于 01-16 10:04 ?340次閱讀

    虛擬內存溢出該怎么處理 虛擬內存在服務器的應用

    在現代計算機系統,虛擬內存是一種重要的資源管理技術,它允許系統使用硬盤空間來擴展物理內存的容量。然而,當系統運行的程序和進程超出了物理
    的頭像 發表于 12-04 09:49 ?296次閱讀

    Linux下如何管理虛擬內存 使用虛擬內存時的常見問題

    Linux系統,虛擬內存管理是操作系統內核的一個重要功能,負責管理物理內存和磁盤上的交換空間。以下是對
    的頭像 發表于 12-04 09:19 ?641次閱讀

    什么是虛擬內存分頁 Windows系統虛擬內存優化方法

    內存有限的情況下。 虛擬內存的作用 內存擴展 :虛擬內存允許系統使用硬盤空間作為額外的內存,從而
    的頭像 發表于 12-04 09:16 ?629次閱讀

    虛擬內存不足如何解決 虛擬內存物理內存的區別

    虛擬內存不足的解決方案 虛擬內存不足是計算機用戶經常遇到的問題,尤其是在運行大型軟件或多任務處理時。以下是一些解決虛擬內存不足問題的方法: 增加物理
    的頭像 發表于 12-04 09:14 ?615次閱讀

    求助,關于LM386芯片內ESD保護電路設計和引腳分配情況求解

    2、3輸入引腳和1、7、8控制引腳和5輸出引腳都共用這一個ESD保護電路呢? 如能介紹LM386芯片內ESD保護電路設計和引腳分配情況,將不勝感激!
    發表于 09-30 06:22

    邏輯內存物理內存的區別

    邏輯內存物理內存是計算機系統兩個重要的概念,它們在計算機的運行和數據處理起著至關重要的作用。 1.
    的頭像 發表于 09-27 15:38 ?971次閱讀

    轉載 golang內存分配

    Go 的分配采用了類似 tcmalloc 的結構.特點: 使用一小塊一小塊的連續內存頁, 進行分配某個范圍大小的內存需求. 比如某個連續 8KB 專門用于
    的頭像 發表于 09-05 14:12 ?319次閱讀
    轉載 golang<b class='flag-5'>內存</b><b class='flag-5'>分配</b>

    內存管理的硬件結構

    常見的內存分配函數有malloc,mmap等,但大家有沒有想過,這些函數在內核是怎么實現的?換句話說,Linux內核的內存管理是怎么實現的
    的頭像 發表于 09-04 14:28 ?407次閱讀
    <b class='flag-5'>內存</b>管理的硬件結構

    Linux內核的頁面分配機制

    Linux內核是如何分配出頁面的,如果我們站在CPU的角度去看這個問題,CPU能分配出來的頁面是以物理頁面為單位的。也就是我們計算機中常講
    的頭像 發表于 08-07 15:51 ?363次閱讀
    <b class='flag-5'>Linux</b>內核<b class='flag-5'>中</b>的頁面<b class='flag-5'>分配</b>機制

    FreeRTOS如何在中斷調用內存分配函數?

    最近在玩FreeRTOS,遇到一個問題,就是不知如何在中斷調用內存分配函數。pvPortMalloc函數中會調用xTaskResumeAll,而這個函數不能再中斷調用,所以請問在中斷中進行
    發表于 05-08 08:25

    物理內存模型的演變

    內存管理概述,主要是以Linux v2.6.11為例進行分析的,但是計算技術在不斷發展,新的存儲架構、新的指令集架構、新的SoC架構等都對物理內存
    的頭像 發表于 02-25 10:35 ?550次閱讀

    Linux內核內存管理之內核非連續物理內存分配

    的主要優點是避免了外部碎片,而缺點是需要修改內核頁表。顯然,非連續內存區域的大小必須是4096的倍數。Linux使用非連續物理內存區的場景有幾種:(1)為swap區
    的頭像 發表于 02-23 09:44 ?1090次閱讀
    <b class='flag-5'>Linux</b>內核<b class='flag-5'>內存</b>管理之內核非連續<b class='flag-5'>物理</b><b class='flag-5'>內存</b><b class='flag-5'>分配</b>

    Linux內核內存管理之slab分配

    本文在行文的過程,會多次提到cache或緩存的概念。如果沒有特殊在前面添加硬件的限定詞,就說明cache指的是slab分配器使用的軟件緩存的意思。如果添加了硬件限定詞,則指的是處理器的硬件緩存,比如L1-DCache、L1-ICache之類的。
    的頭像 發表于 02-22 09:25 ?1364次閱讀
    <b class='flag-5'>Linux</b>內核<b class='flag-5'>內存</b>管理之slab<b class='flag-5'>分配</b>器

    Linux內核內存管理之ZONE內存分配

    內核中使用ZONE分配器滿足內存分配請求。該分配器必須具有足夠的空閑頁幀,以便滿足各種內存大小請求。
    的頭像 發表于 02-21 09:29 ?961次閱讀
    主站蜘蛛池模板: 欧美最猛黑人xxxx黑人猛交黄 | 国产精品情人露脸在线观看 | 中文字幕第13亚洲另类 | 亚欧美综合 | 中文字幕网资源站永久资源 | 午夜寂寞视频在线观看 | 天天爽夜夜春 | 手机看片1024在线观看 | 999av视频 | 都市激情亚洲综合 | 夜夜夜操 | 视频一区二区三区在线观看 | 四虎永久在线精品影院 | 波多野结衣第一页 | 色婷婷视频在线 | 视频在线观看免费播放www | 日本一区二区在线免费观看 | 男人的午夜 | 一级毛片黄色 | 婷婷日日夜夜 | 一区二区三区视频观看 | 青娱乐伊人| 天天干精品 | 人人cao| 天天看片中文字幕 | 18男女很黄的视频 | 久操免费在线视频 | 最近新韩国hd视频 | 成人免费淫片95视频观看网站 | 五月婷婷色 | 亚洲天堂社区 | 久久久久久久久久免免费精品 | 天天爽夜夜爽人人爽一区二区 | 久久艹影院 | 国产亚洲精品久久久极品美女 | 精品四虎免费观看国产高清 | 国产精品自线在线播放 | 国产午夜小视频 | 欧美黄免在线播放 | 一区二区三区视频在线观看 | 狠狠干网 |