加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

內(nèi)存管理

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

內(nèi)存管理是指軟件運(yùn)行時(shí)對(duì)計(jì)算機(jī)內(nèi)存資源的分配和使用的技術(shù)。其最主要的目的是如何高效,快速的分配,并且在適當(dāng)?shù)臅r(shí)候釋放和回收內(nèi)存資源。一個(gè)執(zhí)行中的程式,譬如網(wǎng)頁(yè)瀏覽器在個(gè)人電腦或是圖靈機(jī)(Turing machine)里面,為一個(gè)行程將資料轉(zhuǎn)換于真實(shí)世界及電腦內(nèi)存之間,然后將資料存于電腦內(nèi)存內(nèi)部(在計(jì)算機(jī)科學(xué),一個(gè)程式是一群指令的集合,一個(gè)行程是電腦在執(zhí)行中的程式)。一個(gè)程式結(jié)構(gòu)由以下兩部分而成:“本文區(qū)段”,也就是指令存放,提供CPU使用及執(zhí)行; “資料區(qū)段”,儲(chǔ)存程式內(nèi)部本身設(shè)定的資料,例如常數(shù)字串。

內(nèi)存管理是指軟件運(yùn)行時(shí)對(duì)計(jì)算機(jī)內(nèi)存資源的分配和使用的技術(shù)。其最主要的目的是如何高效,快速的分配,并且在適當(dāng)?shù)臅r(shí)候釋放和回收內(nèi)存資源。一個(gè)執(zhí)行中的程式,譬如網(wǎng)頁(yè)瀏覽器在個(gè)人電腦或是圖靈機(jī)(Turing machine)里面,為一個(gè)行程將資料轉(zhuǎn)換于真實(shí)世界及電腦內(nèi)存之間,然后將資料存于電腦內(nèi)存內(nèi)部(在計(jì)算機(jī)科學(xué),一個(gè)程式是一群指令的集合,一個(gè)行程是電腦在執(zhí)行中的程式)。一個(gè)程式結(jié)構(gòu)由以下兩部分而成:“本文區(qū)段”,也就是指令存放,提供CPU使用及執(zhí)行; “資料區(qū)段”,儲(chǔ)存程式內(nèi)部本身設(shè)定的資料,例如常數(shù)字串。收起

查看更多
  • 【內(nèi)存管理】頁(yè)面分配機(jī)制
    Linux內(nèi)核中是如何分配出頁(yè)面的,如果我們站在CPU的角度去看這個(gè)問題,CPU能分配出來的頁(yè)面是以物理頁(yè)面為單位的。也就是我們計(jì)算機(jī)中常講的分頁(yè)機(jī)制。本文就看下Linux內(nèi)核是如何管理,釋放和分配這些物理頁(yè)面的。
    【內(nèi)存管理】頁(yè)面分配機(jī)制
  • 【內(nèi)存管理】?jī)?nèi)存布局介紹
    32位操作系統(tǒng)的內(nèi)存布局很經(jīng)典,很多書籍都是以32位系統(tǒng)為例子去講解的。32位的系統(tǒng)可訪問的地址空間為4GB,用戶空間為1GB ~ 3GB,內(nèi)核空間為3GB ~ 4GB。
    【內(nèi)存管理】?jī)?nèi)存布局介紹
  • 【內(nèi)存管理】頁(yè)表映射基礎(chǔ)知識(shí)
    現(xiàn)在Linux內(nèi)核中支持四級(jí)頁(yè)表的映射,我們先看下內(nèi)核中關(guān)于頁(yè)表的一些術(shù)語(yǔ):全局目錄項(xiàng),PGD(Page Global Directory)上級(jí)目錄項(xiàng),PUD(Page Upper Directory)中間目錄項(xiàng),PMD(Page Middle Directory)頁(yè)表項(xiàng),(Page Table)大家在看內(nèi)核代碼時(shí)會(huì)經(jīng)??吹囊陨闲g(shù)語(yǔ),但在ARM的芯片手冊(cè)中并沒有用到這些術(shù)語(yǔ),而是使用L1,L2,L3頁(yè)表這種術(shù)語(yǔ)。
    【內(nèi)存管理】頁(yè)表映射基礎(chǔ)知識(shí)
  • Linux內(nèi)存管理常見概念
    Linux內(nèi)存管理重要性不言而喻,最近我也在學(xué)習(xí)一些這方面知識(shí),不過,內(nèi)存相關(guān)概念實(shí)在太多了,內(nèi)存這個(gè)話題也很大,我們先從了解內(nèi)存管理的一些常見概念開始吧:
    Linux內(nèi)存管理常見概念
  • 【操作系統(tǒng)】?jī)?nèi)存管理概述
    常見的內(nèi)存分配函數(shù)有malloc,mmap等,但大家有沒有想過,這些函數(shù)在內(nèi)核中是怎么實(shí)現(xiàn)的?換句話說,Linux內(nèi)核的內(nèi)存管理是怎么實(shí)現(xiàn)的??jī)?nèi)存管理的目的是管理系統(tǒng)中的內(nèi)存,俗稱內(nèi)存橋,換成專業(yè)屬于叫DDR。我們有必要先了解下計(jì)算機(jī)對(duì)內(nèi)存管理的硬件結(jié)構(gòu)。我們先看下關(guān)于地址的一些概念。
    【操作系統(tǒng)】?jī)?nèi)存管理概述
  • DRAM增長(zhǎng)全面轉(zhuǎn)正,六巨頭大漲221%
    內(nèi)存(DRAM)市場(chǎng)正在迎來一波上漲潮。據(jù)TrendForce統(tǒng)計(jì),2023年第四季度,全球DRAM產(chǎn)業(yè)總營(yíng)收達(dá)174.6億美元,季增29.6%。排名前六的廠商在2023年第四季度營(yíng)收環(huán)比增長(zhǎng)都為正數(shù),且增幅普遍較大,特別是力積電(PSMC),增幅最高,達(dá)到110%。
    DRAM增長(zhǎng)全面轉(zhuǎn)正,六巨頭大漲221%
  • 虹科干貨 | 網(wǎng)絡(luò)入侵的本質(zhì)是什么?如何應(yīng)對(duì)?
    網(wǎng)絡(luò)安全入侵的本質(zhì),包括攻擊者常用的策略、技術(shù)和程序,以及他們所尋求的數(shù)據(jù)類型。文中指出幾乎所有的組織都至少間接地面臨著安全風(fēng)險(xiǎn),特別是通過第三方關(guān)系。強(qiáng)調(diào)加強(qiáng)組織內(nèi)部網(wǎng)絡(luò)安全的重要性,提供了有效的保護(hù)措施,包括最新技術(shù)的應(yīng)用、員工培訓(xùn)和積極的風(fēng)險(xiǎn)管理。此外還介紹在發(fā)生安全事件時(shí)的最佳響應(yīng)實(shí)踐,包括建立詳盡的應(yīng)急響應(yīng)計(jì)劃和與執(zhí)法機(jī)構(gòu)及同行合作的重要性。
  • 圖文詳解 Linux 分頁(yè)機(jī)制!
    分頁(yè)機(jī)制是 80x86 內(nèi)存管理機(jī)制的第二種機(jī)制,分段機(jī)制用于把虛擬地址轉(zhuǎn)換為線性地址,而分頁(yè)機(jī)制用于把線性地址轉(zhuǎn)換為物理地址。分頁(yè)機(jī)制可以用于任何一種分段機(jī)制,也可以理解為先有分段機(jī)制才有分頁(yè)機(jī)制,這是由于歷史原因,分段機(jī)制要比分頁(yè)機(jī)制更輕,先出現(xiàn)的分段后出現(xiàn)的分頁(yè)。
    圖文詳解 Linux 分頁(yè)機(jī)制!
  • 萬字整理內(nèi)存管理之Cache
    如果CPU需要將一個(gè)變量(假設(shè)地址是A)加1,一般分為以下3個(gè)步驟:CPU 從主存中讀取地址A的數(shù)據(jù)到內(nèi)部通用寄存器 x0(ARM64架構(gòu)的通用寄存器之一);通用寄存器 x0 加1;CPU 將通用寄存器 x0 的值寫入主存。
  • Buddy 內(nèi)存管理機(jī)制(下)
    內(nèi)存是計(jì)算機(jī)系統(tǒng)中最重要的核心資源之一,Buddy 系統(tǒng)是 Linux 最底層的內(nèi)存管理機(jī)制,它使用 Page 粒度來管理內(nèi)存。通常情況下一個(gè) Page 的大小為 4K,在 Buddy 系統(tǒng)中分配、釋放、回收的最小單位都是 Page。
  • Buddy 內(nèi)存管理機(jī)制(上)
    內(nèi)存是計(jì)算機(jī)系統(tǒng)中最重要的核心資源之一,Buddy 系統(tǒng)是 Linux 最底層的內(nèi)存管理機(jī)制,它使用 Page 粒度來管理內(nèi)存。通常情況下一個(gè) Page 的大小為 4K,在 Buddy 系統(tǒng)中分配、釋放、回收的最小單位都是 Page。
  • Linux內(nèi)存管理:memblock
    內(nèi)存管理是操作系統(tǒng)內(nèi)核中最復(fù)雜的部分之一, start_kernel函數(shù)在內(nèi)核啟動(dòng)第一個(gè)init進(jìn)程前初始化了所有的內(nèi)核特性(包括那些依賴于不同架構(gòu)的特性),你也許還記得引導(dǎo)時(shí)創(chuàng)立的臨時(shí)頁(yè)表,但復(fù)雜的內(nèi)存管理部分還沒有開始,當(dāng)start_kernel函數(shù)被調(diào)用時(shí),我們會(huì)看到初期內(nèi)存管理到更復(fù)雜的內(nèi)存管理數(shù)據(jù)結(jié)構(gòu)和技術(shù)的轉(zhuǎn)變,為了更好的理解內(nèi)核的初始化過程,我們需要對(duì)這些技術(shù)有更清晰的理解,今天我們會(huì)著重討論這個(gè)過程,主要針對(duì)初期的內(nèi)存管理memblock的介紹。
  • 內(nèi)存管理專欄 | 之內(nèi)存管理架構(gòu)
    內(nèi)存管理子系統(tǒng)架構(gòu)可以分為:用戶空間、內(nèi)核空間及硬件部分3個(gè)層面。
  • 深入理解Aarch64的內(nèi)存管理
    本文介紹了AAR64內(nèi)存管理中最重要的內(nèi)容--內(nèi)存轉(zhuǎn)換,解釋了虛擬地址是如何翻譯為物理地址的,翻譯表的格式,以及如何管理TLBS。
  • 五萬字 | 深入理解Linux內(nèi)存管理
    內(nèi)存是計(jì)算機(jī)最重要的資源之一,內(nèi)存管理是操作系統(tǒng)最重要的任務(wù)之一。內(nèi)存管理并不是簡(jiǎn)單地管理一下內(nèi)存而已,它還直接影響著操作系統(tǒng)的風(fēng)格以及用戶空間編程的模式。那么今天我們就來全面系統(tǒng)地講一講Linux內(nèi)存管理。
  • 為什么要學(xué)習(xí)內(nèi)核?
    勢(shì)是未來發(fā)展的大勢(shì)。操作系統(tǒng)的作用不言而喻,它是現(xiàn)代計(jì)算平臺(tái)的核心支撐,向下負(fù)責(zé)硬件資源,向上控制軟件程序。如果把芯片比作一個(gè)人的心臟,那么操作系統(tǒng)的地位無疑是一個(gè)人的靈魂,面對(duì)”卡脖子“的歷史階段,學(xué)習(xí)操作系統(tǒng)迫在眉睫。
  • Linux 內(nèi)存管理之CMA
    Linux 內(nèi)存管理之CMA
  • Linux進(jìn)程的內(nèi)存管理
    Linux進(jìn)程的內(nèi)存管理
  • RT-Thread內(nèi)存管理學(xué)習(xí)總結(jié)
    在單片機(jī)芯片上,如果不考慮出廠固化的 ROM 空間的話,通常開發(fā)者能接觸到的存儲(chǔ)空間主要分兩種:掉電可保存數(shù)據(jù)的片內(nèi) FLASH 和掉電不可保存數(shù)據(jù)的片內(nèi) RAM。
  • 深入剖析Linux內(nèi)核反向映射機(jī)制
    Cheetah,曾為U-boot社區(qū)和Linux內(nèi)核社區(qū)提交過若干補(bǔ)丁,主要從事Linux相關(guān)系統(tǒng)軟件開發(fā)工作,負(fù)責(zé)Soc芯片BringUp及系統(tǒng)軟件開發(fā),喜歡閱讀內(nèi)核源代碼,在不斷的學(xué)習(xí)和工作中深入理解內(nèi)存管理,進(jìn)程調(diào)度,文件系統(tǒng),設(shè)備驅(qū)動(dòng)等內(nèi)核子系統(tǒng)。

正在努力加載...