chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

Linux操作系統(tǒng)知識講解:走進Linux 內存使用場景

如意 ? 來源:Linux學習 ? 作者:佚名 ? 2020-08-28 11:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

內存使用場景

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

1、內存的使用場景

page 管理

slab(kmalloc、內存池)

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

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

內核和用戶態(tài)的數(shù)據(jù)傳遞(copy_from_user、copy_to_user)

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

DMA 內存

2、用戶態(tài)內存分配函數(shù)

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

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

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

realloc 擴展現(xiàn)有內存空間大小

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

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

3、內核態(tài)內存分配函數(shù)

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

4、malloc 申請內存

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

Linux操作系統(tǒng)知識講解:走進Linux 內存使用場景

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

如果空間緩沖區(qū)鏈表沒有找到對應的節(jié)點,需要通過系統(tǒng)調用 sys_brk 延伸進程的??臻g

Linux操作系統(tǒng)知識講解:走進Linux 內存使用場景

5、缺頁異常

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

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

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

系統(tǒng)調用:Brk—申請內存小于等于 128kb,do_map—申請內存大于 128kb

Linux操作系統(tǒng)知識講解:走進Linux 內存使用場景

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

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

在訪問用戶態(tài)虛擬地址空間時,如果沒有映射物理地址,通過系統(tǒng)調用發(fā)出缺頁異常

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

Linux操作系統(tǒng)知識講解:走進Linux 內存使用場景

7、共享內存

1) 原理

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

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

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

Linux操作系統(tǒng)知識講解:走進Linux 內存使用場景

2) shm 接口

shmget 創(chuàng)建共享內存

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

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

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

    關注

    87

    文章

    11511

    瀏覽量

    213844
  • 內存
    +關注

    關注

    8

    文章

    3125

    瀏覽量

    75274
  • 操作系統(tǒng)

    關注

    37

    文章

    7152

    瀏覽量

    125610
  • DNA
    DNA
    +關注

    關注

    0

    文章

    244

    瀏覽量

    31554
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻道Intewell實時操作系統(tǒng)有哪些應用場景

    鴻道Intewell工業(yè)操作系統(tǒng)作為一款國產(chǎn)實時操作系統(tǒng)(RTOS),在工業(yè)領域因其高實時性、高可靠性和強定制化能力,被廣泛應用于對系統(tǒng)響應速度和穩(wěn)定性要求苛刻的場景。以下是其典型應
    的頭像 發(fā)表于 06-26 10:15 ?166次閱讀

    聚徽廠家解碼——工控機操作系統(tǒng)選擇:Windows、Linux、QNX 如何匹配工業(yè)場景

    在工業(yè)自動化進程不斷推進的當下,工控機作為核心設備,其操作系統(tǒng)的恰當選擇對工業(yè)生產(chǎn)的穩(wěn)定性、高效性和安全性起著決定性作用。常見的 Windows、Linux 和 QNX 操作系統(tǒng),各自具備獨特
    的頭像 發(fā)表于 05-29 16:28 ?750次閱讀

    Linux主要的性能有哪些?

    ? 什么是Linux? ? Linux是一套自由傳播的類Unix操作系統(tǒng),是一個基于posix和unix的多用戶、多任務、支持多線程和多cpu的操作系統(tǒng)。它的基本思想有兩點,一切都是文
    的頭像 發(fā)表于 04-30 18:09 ?243次閱讀
    <b class='flag-5'>Linux</b>主要的性能有哪些?

    Linux系統(tǒng)中通過預留物理內存實現(xiàn)ARM與FPGA高效通信的方法

    在嵌入式系統(tǒng)開發(fā)中,ARM 和 FPGA 之間的通信可以使用 ARM 側的 DDR 作為通道。由于 FPGA 也可以直接訪問到 ARM 側 DDR,但 DDR 作為共享通信時,就不能被操作系統(tǒng)內存
    的頭像 發(fā)表于 04-16 13:42 ?685次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>中通過預留物理<b class='flag-5'>內存</b>實現(xiàn)ARM與FPGA高效通信的方法

    Linux的作用

    學校和教育機構使用Linux來教授計算機科學和信息技術相關的課程。 總之,Linux是一個功能強大、靈活且廣泛應用的操作系統(tǒng),適用于各種不同的用途和場景。
    發(fā)表于 04-04 01:57

    deepin操作系統(tǒng)介紹

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

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

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

    linux是實時系統(tǒng)還是分時操作系統(tǒng)

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

    嵌入式 Linux 操作系統(tǒng)配置

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

    linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點及組成

    Linux操作系統(tǒng)安裝步驟 Linux操作系統(tǒng)是一種開源的操作系統(tǒng),它以其穩(wěn)定性、安全性和靈活性而聞名。以下是安裝
    的頭像 發(fā)表于 10-21 11:24 ?1226次閱讀

    嵌入式linux開發(fā)板怎么操作

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

    Linux操作系統(tǒng)份額創(chuàng)歷史新高,逼近4.5%里程碑

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

    Linux操作系統(tǒng)運行參數(shù)自動調整技術

    Linux操作系統(tǒng)運行參數(shù)的自動調整是一個復雜而關鍵的技術,它可以顯著提高系統(tǒng)性能、穩(wěn)定性和資源利用率。通過使用自適應算法特別是內核態(tài)的機器學習框架、性能監(jiān)控工具和配置管理工具,能夠在動態(tài)變化的工作
    的頭像 發(fā)表于 08-22 09:53 ?793次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>運行參數(shù)自動調整技術

    RTOS與Linux有什么區(qū)別

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

    操作系統(tǒng)內存布局介紹

    32位操作系統(tǒng)內存布局很經(jīng)典,很多書籍都是以32位系統(tǒng)為例子去講解的。32位的系統(tǒng)可訪問的地址空間為4GB,用戶空間為1GB ~ 3GB,
    的頭像 發(fā)表于 08-07 15:47 ?902次閱讀
    <b class='flag-5'>操作系統(tǒng)</b>的<b class='flag-5'>內存</b>布局介紹