嵌入式系统内存管理方案研究(10)

合集下载

嵌入式操作系统内存管理分析与探讨

嵌入式操作系统内存管理分析与探讨
c nrl o i r r si e o eaino q ime t m c iey o lns 。 o t , nt , s t h p rt f up n, a h n r rpa t ) om oo a st o e
以有 多个 内存 分 区, 应用程序可 以从 不同内存分 区得 到大小不 同的内 存块 , 释放 的内存块重新放 回到它之前所属 的内存分 区, 减少 了内存碎 片的产生 。 尽 管采用 内存分 区的方式来管理整个 内存区域 , 使得 系统 在 内存 的分配和 回收速度方面得到 了提高 , 并且减少 了内存碎 片的产 生, 但其弊端也是显然 的, 内存利用率并不 高。这是 因为任 意的内存请 求使得 系统都会分配 固定大小的内存块以满足需求 ,
科 技 信息
巅兀式操作 系统 内存管理分析与搽讨
河 南大 学软 件 学 院 孙 琳 刘 志丹
[ 要] 摘 在嵌入式操作 系统 的设计 中, 内存 管理是极 其重 存 管理 中的两个重要 问题—— 内存管理机制和 内存分配方式 , 为嵌入 式 系统 内 管理 的设计提供一定的参考价值。 存 [ 关键词 】 嵌入式 操作 系统 内存管理
2. C S 3e O
e O 全 称 是 E b d e of ua l O eaigS s m, R d a公 C S m e ddC ni rbe p rt yt 由 e ht g n e
而 国内对于嵌入式系统 的普遍定义 是: 以应用 为中心 、 以计算 机技术 为 基础 、 软件硬件可裁剪 、 应用 系统对 功能 、 适应 可靠性 、 成本 、 体积 、 功耗 严格要求的专用计算机系统 。 嵌入式 系统一般 由嵌 入式微处理器 、 外围硬件设备 、 嵌入式操作系 统、 特定 的应用程 序等几部分组成。其 中对于嵌入式操作系统的研究 , 也是 近些年来嵌入式 系统研究的热点 。 1 嵌 入 式 操 作 系 统 、 嵌 入式 操作 系统 E S E b d e O ea n s m 是 一种支 持嵌 O ( m ed d pr i S t ) tg y e 入 式 系统应 用 的操作 系统 软件 , 它是 嵌入 式 系统极 为重要 的组 成部 分 。运 行在嵌 入式环 境 中的E 不 同于我们常 用 的通 用型 的操作 系 OS 统, 它在性 能和实时性方 面有严格 的限制 , 受限于有 限的硬件环境 , 要 求 占用资源少 , 适合在有 限存储空间运行 , 系统功能还要能够根据产 品 的设计要求进行剪裁 、 调整。 我们通常把嵌入式操作系统分 为两类 , 一类是实 时操作 系统 , 主要 是 面 向控制 、 通信 等领 域 的 , 具有 代 表性 的有 Wi Rvr 司的 V — n i 公 d e x Wok 、S 的 p OS Q X系统 软件公 司的 Q X、 T 的 N ces ; 一 rsII S 、 N N A I ul 等 另 u 类是非实时操作 系统 , 主要是 面向消费电子产品的 , 这类产品包括个人 数字助理( D 、 P A)移动 电话 、 机顶盒 、 电子书 、 b h n 等。 WeP oe 所有 的 E S O 都有一个 内核 , 内核包含 了任务 管理 、 存储管理 、 设备

一种嵌入式系统虚拟内存管理机制的实现方法

一种嵌入式系统虚拟内存管理机制的实现方法
第 l O卷
第2 7期
21 0 0年 9月







Vo 0 No 2 S p 01 L1 .7 e .2 0
17— 1 1 (0 0 2 -750 6 1 85 2 1 ) 76 7 —5
S in e T c n l g n g n ei g c e c e h o o y a d En i e r n
分区进行 的 , 整 个 系统 内存 (yt ati ) 作 将 ss m prt n 看 e io

存管理机制提出 了更 高的要求… 。作 为嵌人式 系
统 的核心 部 分 , 内存 管 理 机 制 主 要 有 两 种 : 于物 基
理 内存 的管 理 机制 和 基 于虚 拟 内存 的管 理 机 制 , 前
的基础上 , 出一个轻量级 的虚拟 内存管理机制 的实现 方法 , 提 即通过 内存映 射为 系统 提供虚拟地 址 空间、 过 内存 交换为每 通
个任务提供 足够的 内存容量。最后通过 实验 , 验证 了该方法 的有效性和实用性 。
关键词
嵌入式系统
内存 管理
虚拟 内存 A
中图法分类号
T 311; P 1. 1
文献标志码
随着嵌入 式 系统 得 到 越来 越 广 泛 的应用 , 件 软
存、 动态分配内存和 回收内存。V Wo x r k为用户提供
两种 内存 区域 : 可变 长 的 内存域 (ei ) rs n 和定长 的 内 o
的功能和结构也 日益复杂 ; 因而在有 限硬件资源的 条件下 , 尤其是在较少 内存 的情况下 , 系统应具有
用需 求 j 。
用户内存 h h — lr矗 1 l Al t l o

嵌入式系统中一种池式内存管理方案

嵌入式系统中一种池式内存管理方案
维普资讯


1O ・ 5
实 验 科 学 与 技 术
20 0 7年 4月
・警 实 园 . 生 醢 地| 大
嵌 入 式 系统 中一种 池 式 内存 管理 方 案 ‘
张 磊 ” 。王 忠仁
成都 60 5 ) 10 4 ( 电子科技大学计算机学院
Ab ta t I l n c s a y t k mo n g me ti mb d e y tm e l t e a d r l be I d i o sr c : t。 e e s r o ma e me r ma a e n n e e d d s s S y e r a — i n ei l . n a d t n, m a i
1 引 言
17 90年左右 出现了嵌人式 系统 的概念 ,早期 的嵌人式系统主要实现一些控制功能,使用一个简
配恰恰足够的内存以满足 当前 的需求。内存动态分 配的一些分配算 法会花费不可预期 的时 间。实际 上,所有分配算法都必须针对每个数据项适用少量
的字节来存储其相关信息。如果 申请 的区块越小, 额外负担所 占的比例就越大 。此外还必须准备好处
RA (adm acs e o )i ak do a ersuc.T e f ci d r al n eai f e r m ae M r o cesm m r s i fs r ore hne et ea l e l hns o mo a g- n y n cc e v n e b e i m m y n
to ewh r e in m rU e ̄ o mb d e y tm. h s o ae d g e o S l f s e e d ss d e Ke r s e e d y t m;me r n g me t mi l c t n y a c alc t n;me r o l y wo d : mb d e s se d mo ma a e n ;s l al ai ;d n mi l ai y e o o o o mo p o y

一种适用嵌入式系统的自适应动态内存管理方案

一种适用嵌入式系统的自适应动态内存管理方案

12 可靠性 .
也就是 内存分配 的请 求必须得 到满足 , 果分配 如 失败可 能会带来灾难性的后果 。嵌入式系统应用 的环
境千变万化 , 中有 一些是对 可靠性要求 极高 的。比 其
如 , 车的 自动驾驶 系统 中, 汽 系统检 测到 即将 撞 车 , 如
果因为内存分配失败 而不能进 行相应 的操 作 , 就会发
维普资讯 http://www.cqHale Waihona Puke
第l 7卷
第3 期
计 算 机 技 术 与 发 展
C OM_UTER TECHN0L GY P O AND DEVEL0P MENT
20 0 7年 3月
V( . 7 No 3 1 1 1 . M a. 2 0 r 07

种 适 用嵌 入 式 系统 的 自适 应 动 态 内存 管理 方案
中图分类 号 : P1 1 31 ] 文 献标识 码 : A 文章 编号 :63 6 9 (070 —04 — 3 17 — 2X 20 )3 08 0
On a tv n m i e o y Alo a i g M e h d eAd p ieDy a cM m r lc tn t o
Ab ta tTh e urme tfrra— tme。eibly, ihef in y, k slt fe b d e y t p lat n sn h i wnme r sr c : erq ie n o el i rl it hg fi e c ma e so a i c o m e d ds se a pi i su igt ero moy m c o ma a ig meh d . yme r rg e trs l fo t edvso ot ebgme r rq e t i o a r u etedvso o tebg n gn to sAn mo fa m n eut rm h iiin t h i mo fe u nl fy ucn e c h ii n t h i y y y。 d i me r , o lr u emer y rg n , u o t a i y terq ie n o me y fs tm e e u i h iiin t i mo y uwi e c r ̄r fa me t b th w o st f h e urme tt n ̄r o y e wh n r cn t edvso o bg y ld s s d g me r ? Prp ssan w mo na i rtm ei mo y o oe e me r ma g n aih t y g c—d n mi mo n gn d pieaih ei,h mp a i sh w ord c y a cme r ma a i a a tv rt y g m tc t ee h ssi o t e u e me r fa me ta di rv sn ae a das r sfr r e ie n drai t n Ho ei a etet paeo moy rg n n mp eui rt .n lobi o g g n o wa dn w d aa e la i , p tcnb h e lt fme r ma a — z o m mo y n g i r h ei mb d e y tm . g n aim tci e e d s se t n d Ke rs: mo n e n ; mo r me t d n m i me r lct rt ei ywo d me r ma a me t me r fa y g y g n ;ya c mo a o ai aih tc y l g n m

嵌入式系统中内存管理中间件的研究与实现

嵌入式系统中内存管理中间件的研究与实现
开发中, 能最 大 限 度地 支 持 上层 应 用 软 件 的 开发 ,
全局数 组来 分 配 内存 空 间 的方 法 是 难 以很 好 满 足 现在嵌 人式 系 统需 求 的 。于是 在 使 用 嵌 入 式 实 时 系统 的过 程 中如何采 用一 种高 效 的 内存管 理机制 ,
提高内存分配的快速性 、 高效性 和可靠性 , 使系统 更 加健壮 , 源利用 更 加合理 成 为 了我们 当前着 重 资
T e s h me s le h r be o mi mo e o r e al c t n i mb d e y t m.P o r t r mo n a e n r a h c e ov s te p o lm h t me r r s u c l ai n e e d d s se f d e y o o r p i ay me r ma g me tae s e y ae s tu n o d rt l ti d p n e tme r ra o h s p h ai n mo ue ih r q e ta d r la e me r l k r — r e p i r e o al n e e d n mo ae s f rto e a p c t d l swh c e u s n e s mo bo s f o y o e y c e
维普资讯
I6 7
计算 机与 数 字 工程
第3 巷 4
嵌 入 式 系统 中 内存 管 理 中间件 的研 究 与 实 现
刘 毅 黄 志刚
( 汉数字工程研究所 武汉 407 ) 武 30 4
摘 要 通过对内存管理的分析 , 提出了一个基于嵌入式系统的内存管理的新方案。该方案解决了在嵌入式系统中
( h nD g a E gn eig nt u , h n4 0 7 ) Wu a i t n ie r s tt Wu a 3 0 4 il n I i e

嵌入式系统的自适应内存管理方案的算法实现

嵌入式系统的自适应内存管理方案的算法实现
配失 败可能会 带来灾 难性 的后果 。嵌入 式系统 应用 的
统 ,不管产 生 的内存碎 片多小 ,只要 时间足 够长 ,就 会将 内存用 完 。这种情 况在许 多嵌入 式系统 中 ,特别
是 在 高可用 性 系统 中是不 可接受 的 。 内存 分配 程序 浪费 内存 的 3种基本 方式 :即额外
m e o a a tv rt me ci ut o wadba e ns m ec mn o e o m a a i gme o . e ie ee p a i n m  ̄ d p eaih t sp r r s do o o l nm m  ̄ i i f n g n t ds Th ni g v st m h sso h t h h w d c a m e t e o a di r v sn ae a das r s nsn w e rt me cr aia o . o t r u ef g n m  ̄ n mp o eu ig r t, oe r m n lop e e t e i at ai d o h i t e lz t n i K e l S:e b d e y tm ;m e o m a a e e t;m e o fa m e t rtm ei y WO d m e d ds se m  ̄ n gm n m  ̄ r g n ;aih t c
Ab ta t nve o ra-m ec aa trs c ,h ei blt q ie n, e me  ̄ o t i wnma a iga i mei- sr c :I iw f e lt h rce it s terla i yr u r me tan w mo i i i e fhero n g n rt h t c
第 2卷 第 6 2 期

嵌入式系统开发中的常见问题与解决方案

嵌入式系统开发中的常见问题与解决方案嵌入式系统已成为现代科技应用的基石,几乎涉及到我们日常生活中的方方面面。

从手机到家电,从汽车到医疗设备,嵌入式系统无处不在。

然而,在嵌入式系统开发的过程中,常常面临着各种挑战和困扰。

本文将探讨一些嵌入式系统开发中常见的问题,并提供相应的解决方案。

问题一:处理器选择与性能优化嵌入式系统的核心是处理器的选择和性能优化。

一方面,开发人员需要根据系统的要求选择适当的处理器,考虑功耗、性能、成本等因素。

另一方面,处理器性能的优化也是一个重要的任务。

为了提高系统的性能,可以采取以下措施:1. 合理利用处理器的并发性能,根据系统需求选择合适的多核处理器;2. 优化算法和数据结构,尽量减少处理器的计算压力;3. 采用硬件加速技术,如使用硬件加速的图形处理器(GPU)来处理图像;4. 对系统进行优化编译,提高代码执行效率。

问题二:内存管理与资源利用嵌入式系统的内存资源通常比较有限,有效的内存管理和资源利用是开发过程中的关键问题。

以下是一些解决方案:1. 使用编程技术,如动态内存分配和对象池管理,合理分配和回收内存;2. 采用触发式的内存管理策略,及时释放不再使用的内存资源;3. 对关键数据和代码进行优化,减小内存占用空间;4. 使用压缩算法对数据进行压缩,减小存储空间占用。

问题三:实时性与响应性要求许多嵌入式系统需要满足实时性和响应性要求,即在规定的时间内产生响应。

为了解决实时性问题,可以考虑以下措施:1. 使用实时操作系统(RTOS),提供实时任务调度和中断处理机制;2. 优化关键任务的代码,减少执行时间;3. 使用硬件加速技术和并行处理来提高系统的响应速度;4. 对任务进行优先级管理,确保关键任务的及时响应。

问题四:通信与网络连接嵌入式系统通常需要进行通信和网络连接,与其他设备进行数据交换和远程控制。

以下是解决通信与网络连接的一些方法:1. 选择合适的通信协议和接口,如UART、SPI、I2C等;2. 使用高效的通信机制,如消息队列、信号量等,确保数据传输的可靠性和实时性;3. 采用网络通信技术,如以太网、Wi-Fi和蓝牙等,与其他设备进行远程通信和控制;4. 设计适当的网络协议和安全机制,保护系统数据的安全性。

嵌入式操作系统内存管理研究

维普资讯
电 脑 知 识 与 技 术
. . . 究开 发. . .. 研
嵌入式操作系统 内存管理研究
田令 平
( 东师 范 大 学软 件 学 院 , 海 2 06 ) 华 上 0 0 2
摘要 : 嵌入式操作 系统的 内存管理 有其独特之处。基于开发 嵌入 式操作 系统 内存管理模块的 实际经验 , 究了嵌入 式操作 系统的 内 研 存管理方法, 分析 了本领域 当前的一 些常 用技术 , 出了它们 的特点厦适用奈件 , 指 总结 了一些有效的设计实现原则, 针对 目前单一 内存 管 理 策略在移植性上 的不足 . 探讨 了一种 实用的可配置的 内存管理 方案 。
( f ae nier gIstt,a ia r l ie i ,hnh i 0 0 2C n) S t r E g ei tue sChn ma Un rt S ag a 20 6 , h a ow n n ni E t No v sy i
Ab ta tTh m oyma a e n mb d e p rt g ss m a t o h rce s c. sd o uh r Sd v lp n x e e c sr c : eme r n g me ti e e d d o eai t h si wn caatr t s e n a t o e eo me te p r n e n n y e s i i Ba i
o mo n g m e tmo ue i mb d e p rt g s s m, s a c e t o so mo n g me ti mb d e p r t g s s m,n l fme r ma a e n d l n e e d d o e a n t r e rh s h d fme r ma a e n n e e d d o e a n y t a a— y i y e e me y i e y e o u r n l o s s me c re t c mmo —u e e h iso i f l , o n u erc a a tr t s n h i u i g c n i o s o cu e o f c v rn i s y n s d t c n c f si dp i t o tt i h rc e s c d t er s o d t n , n l d s me e e t e p i c— h t e s h ii a n i c s i p e ft er ei n a d i lme tt n a d d su ssap a t a a d c r g r be s h me o e r n g me t lso i d s n mpe na i , i s r c c n o t u aห้องสมุดไป่ตู้l c e f mo ma a e n . h g o n c e il i f m y

Linux内存管理分析与研究

Linux内存管理分析与研究随着计算机技术的不断发展,操作系统在计算机系统中扮演着越来越重要的角色。

作为开源操作系统领域的佼佼者,Linux被广泛用于各种应用场景,包括服务器、桌面、嵌入式系统等。

内存管理是操作系统核心功能之一,对于系统性能和稳定性具有重要影响。

本文将对Linux内存管理进行深入分析,并探讨其存在的问题与解决方案。

Linux内存管理采用分页和分段技术,将物理内存划分为大小不同的页框或段框,以便更有效地利用和管理内存资源。

Linux通过将内存分为内核空间和用户空间,实现了内存的隔离和保护,同时允许用户进程使用不同的内存空间。

Linux内存管理存在的一个主要问题是内存分配不均。

由于内存分配是基于页框或段框的,当某些进程需要更多内存时,操作系统会从空闲的内存页框中分配内存。

然而,在实际情况中,由于页框大小固定,当需要分配大量内存时,可能会造成内存分配不均的情况。

另一个问题是浪费空间。

Linux为了提高内存利用率,采用了一种称为内存分页的技术。

然而,在某些情况下,当进程不再需要使用内存时,操作系统并不会立即将内存页框回收,而是保留在内存中以备将来使用,这可能会导致内存空间的浪费。

针对内存分配不均的问题,可以采取交换技术。

交换技术是一种将进程使用的内存部分移至磁盘上,以腾出更多内存供其他进程使用的方法。

在Linux中,可以使用瑞士文件系统(Swiss File System,SFS)作为交换设备,将不常用的内存页框交换到磁盘上,以便在需要时重新加载。

为了解决内存浪费问题,可以优化内存分配算法。

Linux中使用的内存分配算法是基于伙伴系统的,该算法会跟踪每个内存块的空闲状态。

当需要分配内存时,伙伴系统会选择一个适当大小的空闲块,并将其划分为所需的内存大小。

为了避免内存浪费,可以采取以下措施:增加空闲内存块的大小,以便更好地适应大内存需求;引入动态内存分配机制,使操作系统能够在需要时分配和回收内存;定期清理不再使用的内存块,以便及时回收内存空间。

嵌入式操作系统内存管理机制分析及改进

Ke wo d y rs E e d d o e ai g s se mb d e p r t y t m Me r n g me t  ̄C u n mo ma a e n y hx
内存管理失败 , 可能会带来严重后果 , 特别是应用于一些关键设
1 引 言
嵌 入式 系统是以应用为 中心 , 计算 机技术为基础 , 硬件可 软 裁剪 , 适应于特定应用系统 , 对功能 、 可靠性 、 本、 成 体积 、 功耗 有 严格要 求的计算机系统。嵌 入式系 统应用相 当广泛 , 日常生 从
ii ) m m ii ) n ( 和 e —n ( 。 t t
pa i i t) gng n ( 在标准 l
_
lu i x中需 要做很多操作 , 是 p l u n 但 ,i x Cn
中它 只为 系统 启动 时保 留一部分 特殊用 途 的内存 区 间, aig pgn— ik ) n ( 函数在返 回前通过调用 f e ae n ( 建 立 bd yss m r _ raii ) e t u d yt e 映射位 图表 以及建立空 闲物理 页面链 表。
类是面向消费类电子产 品的弱实时操 作 系统 , 它包 括个人数 字 助理( D 、 P A) 移动电话 、 机顶盒 、 电子书 、 b hn , 用 比较 WeP oe等 应
多的有 WidW E P l S no SC 、a O 。此外 , 有一些源代码公 开 的嵌 m 还 入式操作系统 , 0 / S  ̄ l x等 , 如 . O 、 Cl C u 因为其 代码 公开 , 于 实 便 现移植 和扩展 , 应用也很广泛。
分成大小 为 4 B的页 面。由数据结构 pg K ae管理 , 有多少个页面
向控制 、 通信领域的强实 时操作 系统 , Wi Rv 公 司的 V— 如 n ir d e x
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统内存管理方案研究<
摘要:嵌入式系统的内存管理机制必须满足实时性和可靠性的要求。

本文以开源的的操作系统RTEMS为例,介绍嵌入式系统中内存管理的要求、存在的问题以及解决的策略。

关键词:嵌入式系统内存管理静态分配动态分配
引言
内存管理机制是嵌入式系统研究中的一个重点和难点的问题,它必须满足以下几个特性:
①实时性。

从实时性的角度出发,要求内存分配过程要尽可能地快。

因此,在嵌入式系统中,不可能采用通用操作系统的一些复杂而完善的内存分配策略,一般没有段页式的虚存管理机制;而是采用简单、快速的内存分配方案,其分配方案也因程序对实时性的要求而异。

例如,VxWorks系统采用简单的“首次适应,立即聚合”方法;VRTX中采用多个固定尺寸存储块的binning方案。

②可靠性。

嵌入式系统应用的环境千变万化,在有些特定情况下,对系统的可靠性要求极高,内存分配的请求必须得到满足,如果分配失败则可能会带来灾难性的后果。

比如,飞机的燃油检测系统。

在飞机飞行过程中,如果燃料发生泄漏,系统应该立即检测到,并发出相应的警报等待飞行员及时处理。

如果因为内存分配失败而不能相应地操作,就可能发生机毁人亡的事故。

③高效性。

内存分配要尽可能地减少浪费。

不可能为了保证满足所有的内
存分配请求而将内存配置得很大。

一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的资源;另一方面,即使不考虑成本的因素,系统硬件环境有限的空间和有限的板面积决定了可配置的内存容量是很有限的。

针对以上三个约束条件,市场上主流的嵌入式操作系统,如VxWorks、嵌入式Linux等均提出了一套有效的解决方案;但是,这些系统只提供了应用开发的接口,其底层的实现方案不可见。

本文以开源的嵌入式操作系统RTEMS为例,分析了嵌入式系统内存管理所面临的问题,研究了其底层实现的解决方案。

一般的嵌入式系统中最基本的内存管理方案有两种——静态分配和动态分配。

1 静态分配与动态分配
静态分配是指在编译或链接时将程序所需的内存空间分配好。

采用这种分配方案的程序段,其大小一般在编译时就能够确定;而动态分配是指系统运行时根据需要动态地分配内存。

这两种策略的选取一直是嵌入式系统设计中一个令人头痛的问题。

一般的嵌入式系统都支持静态分配,因为像中断向量表、操作系统映像这类的程序段,其程序大小在编译和链接时是可以确定的。

而是否支持动态分配主要基于两个方面的考虑:首先是实时性和可靠性的要求,其次是成本的要求。

对于实时性和可靠性要求极高的系统(硬实时系统),不允许延时或者分配失效,必须采用静态内存分配,如航天器上的嵌入式系统多采用静态内存分配。

除了基于成本的考虑外,用于汽车电子和工业自动化领域的一些系统也没有动态内存分配,比如WindRiver著名的OSEKWorks系统。

然而,仅仅采用静态分配,使系统失去了灵活性。

必须在设计阶段就预先知道所需要的内存并对之作出分配;必须在设计阶段就预先考虑到所有可能的情况,因为一旦出现没有考虑到的情况,正在运行的系统就无法处理。

这样的分配方案必然导致很大的浪费。

因为内存分配必须按照最坏情况进行最大的配置,而实际运行时很可能只使用其中的一小部分;而且在硬件平台不变的情况下,不可能灵活地为系统添加功能,从而使得系统的升级变得困难。

虽然动态内存分配会导致响应和执行时间不确定、内存碎片等问题,但是它的实现机制灵活,给程序实现带来极大的方便,有的应用环境中动态内存分配甚至最必不可少的。

比如,嵌入式系统中使用的网络协议栈,在特定的平台下,为了比较灵活地调整系统的功能,在系统中各个功能之间作出权衡,必须支持动态内存分配。

例如,为了使系统能够及时地在支持的VLAN数和支持的路由条目数之间作出调整,或者为了使不同的版本支持不同的协议,类似于malloc和free这类的函数是必不可少的。

大多数的系统是硬实时和软实时综合。

系统中的一部分任务有严格的时限要求,而另一部分只是要求完成得越快越好。

按照RMS(Rate Monotonous Scheduling)理论,这样的系统必须采用抢先式任务调度;而在这样的系统中,就可以采用动态内存分配来满足部分对可靠性和实时性要求不高的任务。

采用动态内存分配的最大好处就是给设计得很大的灵活性,可以方便地将原来运行于非嵌入式操作系统的程序移植到嵌入式系统中。

2 RTEMS内存管现机制
RTEMS(The Rael Time Executive for Multi-processor Systems)是一个基于多处理器的,能够运行在不同处理器平台上的嵌入式操作系统。

其应用领域十分广泛,包括航空航天设备(导弹、飞机控制系统),网络设备(路由器、交换机),掌上设备(电子阅读器、PDA)等。

针对不同领域应用的需求差异,该系统的内存管理提供了比较完善的机制。

同其它常见的嵌入式系统一样,RTEMS不支持虚拟存储管理,不支持复杂的段页式的保护机制,而采用线性编址方式,即逻辑地址和物理地址一一对应的平面模式,同时支持静态和动态两种管理模式。

在系统正常运行时,内存中的映像如图1所示。

图1中假设内破大小为2MB。

在特定的应用中,中断表和RTEMS的映像所占用的内存空间大小是个定值,采用静态的内存分配机制,在编译时就可以确定其大小。

堆栈区和系统内存区则采取动态分配机制,在系统运行时可以根据需要自动调整其大小。

3 RTEMS动态内存管理
RTEMS动态内存管理机制提供两种分区机制,Partition和Region。

Partition分区管理用于固定大小内存块的分配,Region分区管理用于可变大小内存块的分配。

3.1 固定长度分区管理
RTEMS定义的固定长度的分区(Partition)是一段连续的内存空间。

它可以被划分成固定长度的内存块(buffer),
【内容导航】
第1页:嵌入式系统内存管理方案研究
第2页:嵌入式系统内存管理方案研究。

相关文档
最新文档