資料介紹
本文主要介紹內存的基本概念以及操作系統(tǒng)的內存管理算法。
一、內存的基本概念
內存是計算機系統(tǒng)中除了處理器以外最重要的資源,用于存儲當前正在執(zhí)行的程序和數據。內存是相對于 CPU 來說的,CPU 可以直接尋址的存儲空間叫做內存,CPU 需要通過驅動才能訪問的叫做外存。
內存一般采用半導體存儲單元,分為只讀存儲器(ROM,Read Only Memory)、隨機存儲器(RAM,Random Access Memory)ROM 一般只能讀取不能寫入,掉電后其中的數據也不會丟失。RAM 既可以從中讀取也可以寫入,但是掉電后其中的數據會丟失。內存一般指的就是 RAM。 ROM 在嵌入式系統(tǒng)中一般用于存儲 BootLoader 以及操作系統(tǒng)或者程序代碼或者直接當硬盤使用。近年來閃存(Flash)已經全面代替了 ROM 在嵌入式系統(tǒng)中的地位,它結合了 ROM 和 RAM 的長處,不僅具備電子可擦除可編程的特性,而且斷電也不會丟失數據,同時可以快速讀取數據。
三、兩類內存管理方式 內存管理模塊管理系統(tǒng)的內存資源,它是操作系統(tǒng)的核心模塊之一。主要包括內存的初始化、分配以及釋放。
從分配內存是否連續(xù),可以分為兩大類。連續(xù)內存管理為進程分配的內存空間是連續(xù)的,但這種分配方式容易形成內存碎片(碎片是難以利用的空閑內存,通常是小內存),降低內存利用率。連續(xù)內存管理主要分為單一連續(xù)內存管理和分區(qū)式內存管理兩種。非連續(xù)內存管理將進程分散到多個不連續(xù)的內存空間中,可以減少內存碎片,內存使用率更高。如果分配的基本單位是頁,則稱為分頁內存管理;如果基本單位是段,則稱為分段內存管理。當前的操作系統(tǒng),普遍采用非連續(xù)內存管理方式。不過因為分配粒度較大,對于內存較小的嵌入式系統(tǒng),一般采用連續(xù)內存管理。本文主要對嵌入式系統(tǒng)中常用的連續(xù)內存管理的分區(qū)式內存管理進行介紹。
四、分區(qū)式內存管理 分區(qū)式內存管理分為固定分區(qū)和動態(tài)分區(qū)。
固定分區(qū)
事先就把內存劃分為若干個固定大小的區(qū)域。分區(qū)大小既可以相等也可以不等。固定分區(qū)易于實現,但是會造成分區(qū)內碎片浪費,而且分區(qū)總數固定,限制了可以并發(fā)執(zhí)行的進程數量。
動態(tài)分區(qū)
根據進程的實際需要,動態(tài)地給進程分配所需內存。
五、動態(tài)分區(qū)內存管理 運作機制
動態(tài)分區(qū)管理一般采用空閑鏈表法,即基于一個雙向鏈表來保存空閑分區(qū)。對于初始狀態(tài),整個內存塊都會被作為一個大的空閑分區(qū)加入到空閑鏈表中。當進程申請內存時,將會從這個空閑鏈表中找到一個大小滿足要求的空閑分區(qū)。如果分區(qū)大于所需內存,則從該分區(qū)中拆分出需求大小的內存交給進程,并將此拆分出的內存從空閑鏈表中移除,剩下的內存仍然是一個掛在空閑鏈表中的空閑分區(qū)。
數據結構
空閑鏈表法有多種數據結構實現,這里介紹一種較為簡單的數據結構。每個空閑分區(qū)的數據結構中包含分區(qū)的大小,以及指向前一個分區(qū)和后一個分區(qū)的指針,這樣就能將各個空閑分區(qū)鏈接成一個雙向鏈表。
- 如何在MCU上高效地管理內存?
- 使用Java實現的學生管理系統(tǒng)詳細資料說明 3次下載
- 嵌入式系統(tǒng)教程之嵌入式操作系統(tǒng)的內存管理詳細資料說明 6次下載
- Android系統(tǒng)電源的管理和省電機制的詳細資料說明
- Linux操作系統(tǒng)分析與實踐PDF電子書免費下載 15次下載
- Java教程之XML與內容管理的詳細資料說明 10次下載
- 機器學習算法中的FSS算法詳細資料合集免費下載 9次下載
- 機器學習算法中的ID3算法詳細資料合集免費下載 5次下載
- CAD快捷鍵和CAD實用技巧最全操作系統(tǒng)(完美排版)詳細資料免費下載 0次下載
- S32K144實時操作系統(tǒng)演示DEMO V1.05的詳細資料和函數免費下載 61次下載
- 供電系統(tǒng)原理圖詳細資料免費下載 43次下載
- C51單片機上移植UCOS操作系統(tǒng)的詳細資料和程序免費下載 28次下載
- 動力電池管理系統(tǒng)詳細資料免費下載 53次下載
- AM3715和AM3703的內存子系統(tǒng)詳細資料概述 4次下載
- 無線信息設備的理想操作系統(tǒng)Symbian OS
- 操作系統(tǒng)的內存布局介紹 410次閱讀
- 深度解析全球操作系統(tǒng)格局 1269次閱讀
- 內存的基本概念以及操作系統(tǒng)的內存管理算法 1794次閱讀
- Linux內存管理體系介紹 1670次閱讀
- 使用memheap內存管理算法對片內RAM和片外SDRAM進行管理的方法 3584次閱讀
- RS232接口串口取電電路的詳細資料介紹 9050次閱讀
- Linux操作系統(tǒng)知識講解:避免內存使用七大坑 2856次閱讀
- Linux操作系統(tǒng)知識講解:走進Linux 內存分配算法 5483次閱讀
- Linux操作系統(tǒng)知識講解:走進linux 內存地址空間 5079次閱讀
- Linux操作系統(tǒng)知識講解:走進內存 2381次閱讀
- 程序員必須知道的操作系統(tǒng)核心概念詳細說明 3346次閱讀
- 操作系統(tǒng)內存的詳細資料講解分析 4377次閱讀
- 嵌入式系統(tǒng)內存管理機制詳解 4553次閱讀
- 簡要介紹了操作系統(tǒng)虛擬化的概念,以及實現操作系統(tǒng)虛擬化的技術 1.3w次閱讀
- 基于FreeRTOS的嵌入式實時操作系統(tǒng)的原理和實現 6715次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多