資料介紹
本文主要介紹內(nèi)存的基本概念以及操作系統(tǒng)的內(nèi)存管理算法。
一、內(nèi)存的基本概念
內(nèi)存是計算機系統(tǒng)中除了處理器以外最重要的資源,用于存儲當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)。內(nèi)存是相對于 CPU 來說的,CPU 可以直接尋址的存儲空間叫做內(nèi)存,CPU 需要通過驅(qū)動才能訪問的叫做外存。
內(nèi)存一般采用半導(dǎo)體存儲單元,分為只讀存儲器(ROM,Read Only Memory)、隨機存儲器(RAM,Random Access Memory)ROM 一般只能讀取不能寫入,掉電后其中的數(shù)據(jù)也不會丟失。RAM 既可以從中讀取也可以寫入,但是掉電后其中的數(shù)據(jù)會丟失。內(nèi)存一般指的就是 RAM。 ROM 在嵌入式系統(tǒng)中一般用于存儲 BootLoader 以及操作系統(tǒng)或者程序代碼或者直接當(dāng)硬盤使用。近年來閃存(Flash)已經(jīng)全面代替了 ROM 在嵌入式系統(tǒng)中的地位,它結(jié)合了 ROM 和 RAM 的長處,不僅具備電子可擦除可編程的特性,而且斷電也不會丟失數(shù)據(jù),同時可以快速讀取數(shù)據(jù)。
三、兩類內(nèi)存管理方式 內(nèi)存管理模塊管理系統(tǒng)的內(nèi)存資源,它是操作系統(tǒng)的核心模塊之一。主要包括內(nèi)存的初始化、分配以及釋放。
從分配內(nèi)存是否連續(xù),可以分為兩大類。連續(xù)內(nèi)存管理為進程分配的內(nèi)存空間是連續(xù)的,但這種分配方式容易形成內(nèi)存碎片(碎片是難以利用的空閑內(nèi)存,通常是小內(nèi)存),降低內(nèi)存利用率。連續(xù)內(nèi)存管理主要分為單一連續(xù)內(nèi)存管理和分區(qū)式內(nèi)存管理兩種。非連續(xù)內(nèi)存管理將進程分散到多個不連續(xù)的內(nèi)存空間中,可以減少內(nèi)存碎片,內(nèi)存使用率更高。如果分配的基本單位是頁,則稱為分頁內(nèi)存管理;如果基本單位是段,則稱為分段內(nèi)存管理。當(dāng)前的操作系統(tǒng),普遍采用非連續(xù)內(nèi)存管理方式。不過因為分配粒度較大,對于內(nèi)存較小的嵌入式系統(tǒng),一般采用連續(xù)內(nèi)存管理。本文主要對嵌入式系統(tǒng)中常用的連續(xù)內(nèi)存管理的分區(qū)式內(nèi)存管理進行介紹。
四、分區(qū)式內(nèi)存管理 分區(qū)式內(nèi)存管理分為固定分區(qū)和動態(tài)分區(qū)。
固定分區(qū)
事先就把內(nèi)存劃分為若干個固定大小的區(qū)域。分區(qū)大小既可以相等也可以不等。固定分區(qū)易于實現(xiàn),但是會造成分區(qū)內(nèi)碎片浪費,而且分區(qū)總數(shù)固定,限制了可以并發(fā)執(zhí)行的進程數(shù)量。
動態(tài)分區(qū)
根據(jù)進程的實際需要,動態(tài)地給進程分配所需內(nèi)存。
五、動態(tài)分區(qū)內(nèi)存管理 運作機制
動態(tài)分區(qū)管理一般采用空閑鏈表法,即基于一個雙向鏈表來保存空閑分區(qū)。對于初始狀態(tài),整個內(nèi)存塊都會被作為一個大的空閑分區(qū)加入到空閑鏈表中。當(dāng)進程申請內(nèi)存時,將會從這個空閑鏈表中找到一個大小滿足要求的空閑分區(qū)。如果分區(qū)大于所需內(nèi)存,則從該分區(qū)中拆分出需求大小的內(nèi)存交給進程,并將此拆分出的內(nèi)存從空閑鏈表中移除,剩下的內(nèi)存仍然是一個掛在空閑鏈表中的空閑分區(qū)。
數(shù)據(jù)結(jié)構(gòu)
空閑鏈表法有多種數(shù)據(jù)結(jié)構(gòu)實現(xiàn),這里介紹一種較為簡單的數(shù)據(jù)結(jié)構(gòu)。每個空閑分區(qū)的數(shù)據(jù)結(jié)構(gòu)中包含分區(qū)的大小,以及指向前一個分區(qū)和后一個分區(qū)的指針,這樣就能將各個空閑分區(qū)鏈接成一個雙向鏈表。
- 如何在MCU上高效地管理內(nèi)存?
- 使用Java實現(xiàn)的學(xué)生管理系統(tǒng)詳細資料說明 3次下載
- 嵌入式系統(tǒng)教程之嵌入式操作系統(tǒng)的內(nèi)存管理詳細資料說明 6次下載
- Android系統(tǒng)電源的管理和省電機制的詳細資料說明
- Linux操作系統(tǒng)分析與實踐PDF電子書免費下載 15次下載
- Java教程之XML與內(nèi)容管理的詳細資料說明 10次下載
- 機器學(xué)習(xí)算法中的FSS算法詳細資料合集免費下載 9次下載
- 機器學(xué)習(xí)算法中的ID3算法詳細資料合集免費下載 5次下載
- CAD快捷鍵和CAD實用技巧最全操作系統(tǒng)(完美排版)詳細資料免費下載 0次下載
- S32K144實時操作系統(tǒng)演示DEMO V1.05的詳細資料和函數(shù)免費下載 61次下載
- 供電系統(tǒng)原理圖詳細資料免費下載 43次下載
- C51單片機上移植UCOS操作系統(tǒng)的詳細資料和程序免費下載 28次下載
- 動力電池管理系統(tǒng)詳細資料免費下載 53次下載
- AM3715和AM3703的內(nèi)存子系統(tǒng)詳細資料概述 4次下載
- 無線信息設(shè)備的理想操作系統(tǒng)Symbian OS
- 操作系統(tǒng)的內(nèi)存布局介紹 410次閱讀
- 深度解析全球操作系統(tǒng)格局 1269次閱讀
- 內(nèi)存的基本概念以及操作系統(tǒng)的內(nèi)存管理算法 1794次閱讀
- Linux內(nèi)存管理體系介紹 1670次閱讀
- 使用memheap內(nèi)存管理算法對片內(nèi)RAM和片外SDRAM進行管理的方法 3584次閱讀
- RS232接口串口取電電路的詳細資料介紹 9050次閱讀
- Linux操作系統(tǒng)知識講解:避免內(nèi)存使用七大坑 2856次閱讀
- Linux操作系統(tǒng)知識講解:走進Linux 內(nèi)存分配算法 5483次閱讀
- Linux操作系統(tǒng)知識講解:走進linux 內(nèi)存地址空間 5079次閱讀
- Linux操作系統(tǒng)知識講解:走進內(nèi)存 2381次閱讀
- 程序員必須知道的操作系統(tǒng)核心概念詳細說明 3346次閱讀
- 操作系統(tǒng)內(nèi)存的詳細資料講解分析 4377次閱讀
- 嵌入式系統(tǒng)內(nèi)存管理機制詳解 4553次閱讀
- 簡要介紹了操作系統(tǒng)虛擬化的概念,以及實現(xiàn)操作系統(tǒng)虛擬化的技術(shù) 1.3w次閱讀
- 基于FreeRTOS的嵌入式實時操作系統(tǒng)的原理和實現(xiàn) 6715次閱讀
下載排行
本周
- 1NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊
- 0.40 MB | 4次下載 | 2 積分
- 2光伏并網(wǎng)逆變器原理
- 7.31 MB | 3次下載 | 2 積分
- 3T20電烙鐵原理圖資料
- 0.27 MB | 2次下載 | 免費
- 4PL83081 雙路恒流同步降壓轉(zhuǎn)換器技術(shù)手冊
- 3.34 MB | 1次下載 | 免費
- 5PL88052 4.8V至60V輸入,5A,同步降壓轉(zhuǎn)換器技術(shù)手冊
- 3.36 MB | 1次下載 | 免費
- 6LX8201微孔霧化驅(qū)動芯片電路圖資料
- 0.15 MB | 1次下載 | 免費
- 7PC6200_7V直流電機驅(qū)動器技術(shù)手冊
- 0.47 MB | 次下載 | 免費
- 8恒溫晶體振蕩器(OCXO)FOC-2D:20.6×20.6mm在通信基站和測試設(shè)備中的應(yīng)用參數(shù)規(guī)格
- 485.75 KB | 次下載 | 免費
本月
- 1如何看懂電子電路圖
- 12.88 MB | 329次下載 | 免費
- 2RK3588數(shù)據(jù)手冊
- 2.24 MB | 14次下載 | 免費
- 3PC5502負載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 12次下載 | 免費
- 4STM32F10x參考手冊資料
- 13.64 MB | 12次下載 | 1 積分
- 5OAH0428 V1.0英文規(guī)格書
- 5.86 MB | 8次下載 | 免費
- 6NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊
- 0.40 MB | 4次下載 | 2 積分
- 7PID控制算法學(xué)習(xí)筆記資料
- 3.43 MB | 3次下載 | 2 積分
- 8光伏并網(wǎng)逆變器原理
- 7.31 MB | 3次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935132次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191415次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183349次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81599次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65990次下載 | 10 積分
評論