欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年嵌入式系统内存管理措施研究.docx

    • 资源ID:12950782       资源大小:25.77KB        全文页数:5页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年嵌入式系统内存管理措施研究.docx

    精品学习资源嵌入式系统内存治理方案讨论摘要:嵌入式系统的内存治理机制必需满意实时性和牢靠性的要求;本文以开源的的操作系统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),答应应用在创建分区时配置分区的大小和内存块的大小,要求分区的大小是内存块的整数倍;例如,应用创建一个大小为1024 字节的分区,内存块为 256 字节,如图 2 所示;创建分区时, rtems 依据分区和内存块的大小,形成一个闲暇内存块的双向链表;当从分区中申请内存块时,依据闲暇内存块链表的次序安排;假如闲暇空间不足,调用者不会被堵塞,而是获得一个空指针,以确保申请内存调用的时间确定性;释放内存块时,将该内存块挂在闲暇内存块链表的链尾;分区被删除时将释放出这段连续的内存空间;rtems 的分区治理机制供应以下api : rtems_partition_cr-eate创建一个分区rtems_partition_ident获得分区标识号rtems_partition_deldet1删除一个分区rtems_partition_get_buffer申请一个内存块rtems_partition_return_buffer释放一个内存块rtems 的固定长度分区治理算法有以下特色:系统创建的分区数目可在运行时动态增减;内存块的掌握结构所占用的内存空间在该内存块被安排出去时会变为可用空间,不会影响该内存块实际可用的大小;而在回收时掌握块会自动生成,这一点使得分区治理的系统开销对用户的影响为零;在分区的内存块中仍可以再定义分区,这就意味着内存块可以很简洁地被分为子内存块,提高了分区治理的敏捷性;欢迎下载精品学习资源3 2 可变长度分区治理rtems 定义的可变长度的分区(region )是一段连续的、大小可配置的内存空间,可以被划分成许多大小不一的段( segment);创建分区时要指定一个安排单元,称为页;段的大小是页的倍数,假如应用程序在申请段时,给出的大小不是页的倍数,内核会将其调整为页的倍数;例如,应用从而大小为 512 个字节的分区中申请一个大小为700 字节的段,那么,内核实际安排的段大小为1024 字节;创建 region分区时, rtems 依据分区大小和页小建立分区的掌握结构和段的掌握结构;在创建之初,只有一个闲暇段,其大小为分区的大小减去掌握结构的内存开销;随着应用申请、释放段的 操作不断进行,分区中形成用双向链表链接起来的闲暇段链;当从分区中安排段时,依据首次适应 算法(即第一个满意要求的闲暇段就作为安排结果)查看闲暇段链中是否存在合适的段;当把段释 放回分区时,该段被挂在闲暇段链的链尾,并且假如闲暇段链中有与此段相邻的段,就将其合并成一个更大的闲暇段; rtems 在段的掌握块中设置一个标志位表示其被使用的情形;标志位为1 表示该段正被使用,标志位为0 表示该段闲暇;图 3 是一个分区中具有两个闲暇段和一个正被使用的段的示例;闲暇段和已经使用段的掌握结构有所不同,如图4 所示;rtems 的分区治理机制供应以下api :rtems_region_cr-eate创建一个分区rtems_region_ident获得分区的标识rtems_region_de-lete删除一个分区rtems_region_extend扩展一个分区rtems_region_get_segment申请一个段rtems_region_return_segment释放一个段rtems 的可变长度分区治理算法有以下特色:欢迎下载精品学习资源系统创建的分区数目可在运行时动态增加;段的掌握结构在该段被安排出去后会减小,而在回收到掌握快会自动复原大小;这一点使得分区治理的系统开销降低到最小;时应用程序发觉一个分区的内存空间不够使用时,可以调用retms_region_extend函数(api )扩展该分区的大小;当程序要求从某个分区猎取分段而未胜利时,可以立刻返回,也可以实行多种等待策略;等待策略包括优先级等待、fifo等待;在 fifo等待策略中又可分为有限等待和无限等待;在动态可变长度内存治理的基础上,rtems 仍供应了 malloc/free等标准的 c 函数;在使用malloc/free等函数时应留意以下几个方面的限制:由于内存分区是一种临界资源,由信号量爱护,使用malloc 会导致当前调用挂起,因此它不能用于中断服务程序;由于进行内存安排需要执行查找算法,其执行时间与系统当前的内存使用情形相关,具有不确定性,因此对于有规定时限的操作是不相宜的;由于采纳简洁的首次适应算法,简洁导致系统中存在大量的内存碎片,降低内存使用效率和系统性能; 4 结论为了使嵌入式系统能够在不同的平台上进行移植,使之使用与各种应用环境,嵌入式系统内存治理方案在充分考虑实时性、牢靠性和高效性的基础上,应当供应比较丰富的治理机制;本文分析了嵌入式系统中内存治理的要求、存在的问题,介绍了静态和动态两种安排策略;以开源的rtems系统为例,介绍了嵌入式系统中常用的内存治理方法,并对各种方法的特点进行了阐述,在实际应用时,可依据需求作出相应的挑选;欢迎下载

    注意事项

    本文(2022年嵌入式系统内存管理措施研究.docx)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开