一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內不再提示

什么是內存碎片Linux

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 10:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是內存碎片?

內存碎片在Linux很早的時候就已經(jīng)出現(xiàn)了,了解早期內存碎片產生的歷史,有利于我們對它的理解。

假設現(xiàn)在有一塊32MB大小的內存,一開始操作系統(tǒng)使用了最小的一塊——4MB大小,剩余的內存要留給4個進程使用,如圖(a)所示。

圖片

進程A使用了操作系統(tǒng)往上的10MB內存,進程B使用了進程A往上的6MB內存,進程C使用了進程B往上的8MB內存,如圖(b)所示,:

圖片

進程D需要5MB內存,所以剩余的內存不足以裝載進程D,這個內存末位就形成了第一個空洞(內存碎片)。假設某個時刻,操作系統(tǒng)需要運行進程D,因為系統(tǒng)中沒有足夠的內存,所以需要選擇一個進程來換出,為進程D騰出足夠的空間。假設操作系統(tǒng)選擇進程B來換出,這樣進程D就裝載到了原來進程B的地址空間里,于是產生了第二個空洞,如圖(c)所示:

圖片

假設操作系統(tǒng)某個時刻需要運行進程B,也需要選擇一個進程來換出,假設進程A被換出,那么操作系統(tǒng)中又產生了第三個空洞,如圖(d)所示:

圖片

隨著時間的推移,內存空洞會越來越多,內存的利用率也隨之下降,這些內存空洞就是我們常說的內存碎片。

圖片

看到這,你已經(jīng)知道了什么是內存碎片,同時還了解了一種內存管理機制——動態(tài)分區(qū)法。上述舉例其實就是動態(tài)分區(qū)法,操作系統(tǒng)早期使用動態(tài)分區(qū)法來管理內存。

怎么解決內存碎片化問題?

思路其實很簡單:把多個小塊內存拼成一個大塊內存。

早期使用動態(tài)分區(qū)法的操作系統(tǒng),為了解決碎片化問題,就是動態(tài)地移動進程,使得進程占用的空間是連續(xù)的,并且所有的空閑空間也是連續(xù),這樣就把多個小內存塊拼起來了。但是缺點也非常明顯,進程的遷移需要耗費大量的時間。

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

    關注

    87

    文章

    11511

    瀏覽量

    213847
  • 內存
    +關注

    關注

    8

    文章

    3125

    瀏覽量

    75274
  • 操作系統(tǒng)

    關注

    37

    文章

    7152

    瀏覽量

    125613
  • 進程
    +關注

    關注

    0

    文章

    207

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux內存管理是什么,Linux內存管理詳解

    Linux內存管理 Linux內存管理是一個非常復雜的過程,主要分成兩個大的部分:內核的內存管理和進程虛擬
    的頭像 發(fā)表于 05-11 17:54 ?6536次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>內存</b>管理是什么,<b class='flag-5'>Linux</b>的<b class='flag-5'>內存</b>管理詳解

    linux內存相關知識科普

    linux 內存組織結構和頁面布局,內存碎片產生原因和優(yōu)化算法。
    發(fā)表于 08-08 10:57 ?491次閱讀

    走進Linux內存系統(tǒng)探尋內存管理的機制和奧秘

    Linux 內存是后臺開發(fā)人員,需要深入了解的計算機資源。合理的使用內存,有助于提升機器的性能和穩(wěn)定性。本文主要介紹Linux 內存組織結構
    的頭像 發(fā)表于 01-05 09:47 ?1962次閱讀

    Linux內存相關知識科普

    Linux 內存是后臺開發(fā)人員,需要深入了解的計算機資源。合理的使用內存,有助于提升機器的性能和穩(wěn)定性。本文主要介紹**Linu****x 內存組織結構和頁面布局,
    發(fā)表于 07-25 14:43 ?882次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內存</b>相關知識科普

    C語言malloc申請內存時的碎片問題

    解決問題:malloc在申請內存的時候,內存碎片問題會導致原本內存大小足夠,卻申請大內存失敗。
    發(fā)表于 08-06 16:58 ?1996次閱讀
    C語言malloc申請<b class='flag-5'>內存</b>時的<b class='flag-5'>碎片</b>問題

    Linux內核內存規(guī)整總結

    1.前言 伙伴系統(tǒng)作為內核最基礎的物理頁內存分配器,具有高效、實現(xiàn)邏輯簡介等優(yōu)點,其原理頁也盡可能降低內存外部碎片產生,但依然無法杜絕碎片問題。外部
    的頭像 發(fā)表于 11-11 11:17 ?1714次閱讀
    <b class='flag-5'>Linux</b>內核<b class='flag-5'>內存</b>規(guī)整總結

    請問mymalloc會產生內存碎片嗎?

    malloc申請內存在釋放后,會產生內存碎片,所以UCOSIII內有專門的內存申請。原子哥視頻(UCOSIII視頻19講)最后的時候說可以用原子哥自己的mamalloc函數(shù)來申請
    發(fā)表于 10-16 04:35

    如何避免內存碎片的產生

    考試題型:單選 8 道,不定項 2 道,編程 2 道,問答 1 道考點:進程間通訊的方式,linux的基本指令(考了grep,chmod),根據(jù)代碼給出運行的結果問答題:簡述內存碎片的定義,如何避免
    發(fā)表于 12-21 07:50

    如何避免Linux的物理內存碎片

    Linux buddyy系統(tǒng)是linux kernel比較穩(wěn)定的一個模塊,但是并不是說它沒有缺陷,Linux內存管理系統(tǒng)自誕生之日,就一直存在物理
    的頭像 發(fā)表于 05-01 16:43 ?5731次閱讀
    如何避免<b class='flag-5'>Linux</b>的物理<b class='flag-5'>內存</b><b class='flag-5'>碎片</b>化

    你知道linux kernel內存碎片防治技術?

    Linux kernel組織管理物理內存的方式是buddy system(伙伴系統(tǒng)),而物理內存碎片正式buddy system的弱點之一,為了預防以及解決
    發(fā)表于 05-10 10:59 ?1097次閱讀

    一文解析Linux內存系統(tǒng)

    Linux 內存是后臺開發(fā)人員,需要深入了解的計算機資源。合理的使用內存,有助于提升機器的性能和穩(wěn)定性。本文主要介紹Linux 內存組織結構
    的頭像 發(fā)表于 09-01 10:46 ?2662次閱讀
    一文解析<b class='flag-5'>Linux</b><b class='flag-5'>內存</b>系統(tǒng)

    Linux內存管理的基礎知識科普

    ,為什么還要看你這一篇,這正是我寫此文的原因,網(wǎng)上碎片化的相關知識點大都是東拼西湊,先不說正確性與否,就連基本的邏輯都沒有搞清楚,我可以負責任的說Linux內存管理只需要看此文一篇就可以讓你入
    的頭像 發(fā)表于 06-08 15:24 ?2469次閱讀

    一文解析Linux內存碎片整理原理

    內存整理也是這樣,看起來很簡單,但實現(xiàn)起來就不那么簡單了。因為在內存整理后,需要修正進程的虛擬內存與物理內存之間的映射關系。
    發(fā)表于 12-28 12:41 ?993次閱讀

    FreeRTOS內存碎片是怎么來的

    內存碎片 在看 FreeRTOS的內存分配方法之前我們先來看一下什么叫做內存碎片,看名字就知道是小塊的、
    的頭像 發(fā)表于 07-30 10:29 ?1211次閱讀
    FreeRTOS<b class='flag-5'>內存</b><b class='flag-5'>碎片</b>是怎么來的

    如何解決內存碎片內存交換效率慢的問題

    內存分頁 分段的好處是能產生連續(xù)的內存空間,但是會出現(xiàn)大量內存碎片內存交換效率低的問題 先思考一下怎么解決這兩個問題,
    的頭像 發(fā)表于 10-09 16:57 ?1346次閱讀
    如何解決<b class='flag-5'>內存</b><b class='flag-5'>碎片</b>與<b class='flag-5'>內存</b>交換效率慢的問題