色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Linux操作系統知識講解:走進Linux 內存使用場景

如意 ? 來源:Linux學習 ? 作者:佚名 ? 2020-08-28 11:04 ? 次閱讀

內存使用場景

out of memory 的時代過去了嗎?no,內存再充足也不可任性使用。

1、內存的使用場景

page 管理

slab(kmalloc、內存池)

用戶態內存使用(malloc、relloc 文件映射、共享內存)

程序的內存 map(棧、堆、code、data)

內核和用戶態的數據傳遞(copy_from_user、copy_to_user)

內存映射(硬件寄存器、保留內存)

DMA 內存

2、用戶態內存分配函數

alloca 是向棧申請內存,因此無需釋放

malloc 所分配的內存空間未被初始化,使用 malloc() 函數的程序開始時(內存空間還沒有被重新分配) 能正常運行,但經過一段時間后(內存空間已被重新分配) 可能會出現問題

calloc 會將所分配的內存空間中的每一位都初始化為零

realloc 擴展現有內存空間大小

a) 如果當前連續內存塊足夠 realloc 的話,只是將 p 所指向的空間擴大,并返回 p 的指針地址。這個時候 q 和 p 指向的地址是一樣的

b) 如果當前連續內存塊不夠長度,再找一個足夠長的地方,分配一塊新的內存,q,并將 p 指向的內容 copy 到 q,返回 q。并將 p 所指向的內存空間刪除

3、內核態內存分配函數

函數分配原理最大內存其他_get_free_pages直接對頁框進行操作4MB適用于分配較大量的連續物理內存kmem_cache_alloc基于 slab 機制實現128KB適合需要頻繁申請釋放相同大小內存塊時使用kmalloc基于 kmem_cache_alloc 實現128KB最常見的分配方式,需要小于頁框大小的內存時可以使用vmalloc建立非連續物理內存到虛擬地址的映射物理不連續,適合需要大內存,但是對地址連續性沒有要求的場合dma_alloc_coherent基于_alloc_pages 實現4MB適用于 DMA 操作ioremap實現已知物理地址到虛擬地址的映射適用于物理地址已知的場合,如設備驅動alloc_bootmem在啟動 kernel 時,預留一段內存,內核看不見小于物理內存大小,內存管理要求較高

4、malloc 申請內存

調用 malloc 函數時,它沿 free_chuck_list 連接表尋找一個大到足以滿足用戶請求所需要的內存塊

Linux操作系統知識講解:走進Linux 內存使用場景

free_chuck_list 連接表的主要工作是維護一個空閑的堆空間緩沖區鏈表

如果空間緩沖區鏈表沒有找到對應的節點,需要通過系統調用 sys_brk 延伸進程的棧空間

Linux操作系統知識講解:走進Linux 內存使用場景

5、缺頁異常

通過 get_free_pages 申請一個或多個物理頁面

換算 addr 在進程 pdg 映射中所在的 pte 地址

將 addr 對應的 pte 設置為物理頁面的首地址

系統調用:Brk—申請內存小于等于 128kb,do_map—申請內存大于 128kb

Linux操作系統知識講解:走進Linux 內存使用場景

6、用戶進程訪問內存分析

用戶態進程獨占虛擬地址空間,兩個進程的虛擬地址可相同

在訪問用戶態虛擬地址空間時,如果沒有映射物理地址,通過系統調用發出缺頁異常

缺頁異常陷入內核,分配物理地址空間,與用戶態虛擬地址建立映射

Linux操作系統知識講解:走進Linux 內存使用場景

7、共享內存

1) 原理

它允許多個不相關的進程去訪問同一部分邏輯內存

兩個運行中的進程之間傳輸數據,共享內存將是一種效率極高的解決方案

兩個運行中的進程共享數據,是進程間通信的高效方法,可有效減少數據拷貝的次數

Linux操作系統知識講解:走進Linux 內存使用場景

2) shm 接口

shmget 創建共享內存

shmat 啟動對該共享內存的訪問,并把共享內存連接到當前進程的地址空間

shmdt 將共享內存從當前進程中分離
責編AJX

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

    關注

    87

    文章

    11319

    瀏覽量

    209830
  • 內存
    +關注

    關注

    8

    文章

    3034

    瀏覽量

    74136
  • 操作系統
    +關注

    關注

    37

    文章

    6847

    瀏覽量

    123426
  • DNA
    DNA
    +關注

    關注

    0

    文章

    243

    瀏覽量

    31061
收藏 人收藏

    評論

    相關推薦

    deepin操作系統介紹

    希望從自己的能力和對桌面操作系統的理解,能給 Linux 的用戶與開發者更多的選擇。我們也相信 deepin 能夠得到更多用戶的認可與喜愛,成為開源世界的最佳選擇。? 一、 deepin 操作系統 先說
    的頭像 發表于 12-23 09:08 ?401次閱讀
    deepin<b class='flag-5'>操作系統</b>介紹

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

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

    linux是實時系統還是分時操作系統

    大家平時玩單片機基本上對于μC/OS、FreeRTOS、ThreadX這些操作系統非常熟悉了,他們都屬于實時操作系統(RTOS),在工業領域比較廣泛;然而對于linux這樣的基于時間片劃分的非實時
    的頭像 發表于 11-11 11:43 ?516次閱讀

    嵌入式 Linux 操作系統配置

    隨著物聯網(IoT)和智能設備的快速發展,嵌入式系統在各個領域扮演著越來越重要的角色。Linux因其開源、靈活和穩定的特性,成為嵌入式系統的首選操作系統。 1. 硬件選擇 在配置嵌入式
    的頭像 發表于 11-06 10:22 ?475次閱讀

    linux操作系統安裝步驟 linux操作系統的特點及組成

    Linux操作系統安裝步驟 Linux操作系統是一種開源的操作系統,它以其穩定性、安全性和靈活性而聞名。以下是安裝
    的頭像 發表于 10-21 11:24 ?596次閱讀

    嵌入式linux開發板怎么操作

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺。它通常包括一個處理器、內存、存儲器、輸入/輸出接口等硬件組件,以及一
    的頭像 發表于 09-02 09:09 ?415次閱讀

    Linux操作系統份額創歷史新高,逼近4.5%里程碑

    在最新的全球操作系統市場份額報告中,市調機構StatCounter于8月27日發布了令人矚目的數據:2024年7月,Linux系統實現了歷史性的飛躍,其市場份額首次逼近4.5%的關口,達到了4.44%的新高。這一成就標志著
    的頭像 發表于 08-27 17:05 ?937次閱讀

    RTOS與Linux有什么區別

    RTOS(Real-Time Operating System,實時操作系統)與Linux是兩種在不同應用場景下發揮重要作用的操作系統,它們在設計理念、功能特性、應
    的頭像 發表于 08-20 16:05 ?3794次閱讀

    工業實時操作系統對比:鴻道Intewell跟rt-linux有啥區別

    Intewell和RT-Linux是兩種不同的實時操作系統(RTOS),它們具有各自獨特的特點和優勢。以下是Intewell操作系統的一些關鍵特性,以及與RT-Linux的比較:
    的頭像 發表于 07-03 10:00 ?550次閱讀
    工業實時<b class='flag-5'>操作系統</b>對比:鴻道Intewell跟rt-<b class='flag-5'>linux</b>有啥區別

    研華工控機用什么系統?Windows與Linux操作系統的較量

    兩大主流操作系統,各自具有獨特的優勢和應用場景。本文將幫助你更好地理解它們的特點,并做出明智的選擇。下面就隨蘇州研訊電子科技有限公司一起來看看吧。 Windows系統 提到Windows系統
    的頭像 發表于 06-14 14:38 ?723次閱讀
    研華工控機用什么<b class='flag-5'>系統</b>?Windows與<b class='flag-5'>Linux</b><b class='flag-5'>操作系統</b>的較量

    AURIX3G可以使用Linux操作系統嗎?

    即使在 AURIX3G 中,也可以使用 Linux 操作系統嗎?
    發表于 05-22 07:12

    服務器操作系統有幾種?

    操作系統細分化有許多,下邊給大伙兒詳細介紹的是至少的這種:CentOS 1、CentOS 5.6 2、CentOS 6.4 在Linux網絡服務器電腦操作系統下,CentOS是應用場景
    發表于 03-29 16:59

    Linux操作系統上的射頻測試模式應用指南

    電子發燒友網站提供《Linux操作系統上的射頻測試模式應用指南.pdf》資料免費下載
    發表于 02-19 09:39 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統</b>上的射頻測試模式應用指南

    linux和windows的區別 linux系統一般用來干嘛

    Linux和Windows是兩種不同的操作系統,有著不同的設計理念和用途。本文將對Linux和Windows的區別進行詳細分析,并介紹Linux系統
    的頭像 發表于 02-05 14:06 ?1000次閱讀

    Linux操作系統中如何按下PCIe的復位鍵

    Linux操作系統中,看如何按下PCIe的復位鍵
    的頭像 發表于 01-20 09:31 ?1640次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統</b>中如何按下PCIe的復位鍵
    主站蜘蛛池模板: 97久久国产露脸精品国产| 国产不卡免费| 精品综合久久久久久8888| 亚洲人成www在线播放| 久久精品美女久久| 99精品在线| 偷偷鲁青春草原视频| 好男人在线视频| 99久久精品国产自免费| 天美传媒在线观看完整高清| 黄色a三级免费看| 98久久人妻少妇激情啪啪| 日韩精品欧美在线视频在线| 国模大胆一区二区三区| 91久久精品一区二区三区| 天天久久影视色香综合网| 久久国产加勒比精品无码| qvod激情图片| 亚洲欧美综合乱码精品成人网| 久久在精品线影院| 国产AV高清怡春院| 在线观看免费亚洲| 少妇无码吹潮久久精品AV| 久久久无码AV精品亚洲A片软件| 成 人 动漫3d 在线看| 一本道dvd久久综合高清免费| 强被迫伦姧惨叫VIDEO| 姐姐不~不可以动漫在线观看| xxx365| 亚洲永久精品ww47| 三级网址在线观看| 久久伊人在| 国产午夜精品不卡视频| beeg日本老师按摩| 一区二区三区国产亚洲网站| 少妇大荫蒂毛多毛大| 毛片免费观看| 狠狠爱亚洲五月婷婷av| 公么我好爽再深一点| 97在线精品视频免费| 亚洲伊人精品综合在合线|