当前位置:首页 > 嵌入式 > 嵌入式硬件

进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。数字音频广播(DAB)也已进入商品化试播阶段。而软件、集成电路和新型元器件在产业发展中的作用日益重要。

动态内存管理的基本任务就是有效地对动态内存进行分配、回收,并同时保证系统的快速性、可靠性和稳定性。当系统请求分配内存时,系统需要从所有空闲块中找到一个合适的空闲块进行分配;当用户不再使用而将某块内存释放时,系统需要回收这一内存块,以备在新的请求产生时重新进行分配。为此,系统需要建立一个与内存当前使用情况相对应的内存描述,用来记录所有与内存分配、回收相关的信息。而如何记录这些信息并进行分配与回收,便成为各种算法的最根本区别。

1 嵌入式系统中内存管理技术的特点

实时系统分为硬实时系统和软实时系统。硬实时系统是指系统中各任务不仅要执行无误而且要做到准时;软实时系统是指系统中各任务运行的越快越好,并不要求限定某一任务必须在多长时间内完成。可以看出动态内存分配是绝对不能用于硬实时系统的,因为动态分配具有时间不确定性(分配时间与内存块数量有关),而且动态分配可能产生分配不成功的情况。所以对于硬实时系统,只能采用静态内存分配方式。静态分配是指在编译或链接时将程序所需的内存空间分配好,这样不会出现分配失败的情况。

1.1 静态分配与动态分配

静态分配为系统提供了最好的可靠性与实时性。对于那些对实时性和可靠性要求极高的需求,就只能采用静态分配方式。但采用静态分配就必然会使系统失去灵活性。因此必须在设计阶段考虑所有可能的情况,并对所有的需求做出相应的空间分配。一旦出现没有考虑到的情况,系统就无法处理。此外静态分配方式也必然导致很大的浪费,因为必须按照最坏情况进行最大的配置,而在实际运行中可能只用到其中的一小部分。

动态分配为系统提供了很大的灵活性,而且在内存的利用率和系统功能扩展等方面也都明显地优于静态分配。

大多数系统采用静态分配和动态分配相结合的方式。由于嵌入式系统本身各个任务的可靠性、实时性要求不尽相同,通常会有一部分任务对可靠性与实时性没有特别严格的要求。这些任务对一定的延时与失败是可以接受的。因此对于这样的一部分任务,就可以采用动态分配方式来满足它们部分或全部的内存需求。而对于那些有严格时限要求的任务,为了保证任务的可靠性和实时性,就应采用静态分配方式。

1.2 动态分配的技术要求

(1)快速性:由于嵌入式系统对实时性要求较高,所以内存分配过程要尽可能地快。在嵌入式系统中,由于还不能采用通用操作系统中复杂而完善的内存分配策略,所以一般都采用简单、快速的内存分配方案。

(2)可靠性:由于嵌入式系统对可靠性的要求较高,所以内存分配过程也要具备高可靠性。但由于各个嵌入式系统之间对可靠性的要求不尽相同,对内存分配的可靠性要求也就各不相同。通常,可靠性要求极高的系统不采用动态分配。

(3)高效性:由于在嵌入式系统中内存资源都相对有限,所以为了保证程序的正常运行,内存管理系统要尽可能高效地使用内存,减少不必要的浪费。

2 伙伴系统

2.1 伙伴系统原理

伙伴(buddy)系统的基本原理就是按照2的幂次方大小对内存进行分配,以此得到很高的分配速度和回收速度。例如:对于10KB的空间请求,伙伴系统会分配16KB的空间来满足。因为内存空闲块大小均为2的幂次方,所以需要16KB,这是满足10KB的最小空间;同样对于70KB的空间请求,伙伴系统会分配128KB的空间来满足。

2.2 伙伴系统存在的问题

伙伴系统比那些按大小而不按块的整数倍地址分配的算法有更多的优点。其优点为当一个大小为2的K次幂的块被释放后,存储管理只需要搜索2的K次幂字节大小的块以判定是否需要合并。那些允许内存块以任意形式分割的策略需要搜索所有的空闲块表。相比之下,伙伴系统更快。

但是对于内存利用率来说,伙伴系统是极其低效的。问题出自所有的内存请求都必须以2的幂次方大小的空间来满足,一个35KB的请求需要分配64KB的空间,其余的29KB被浪费了。在极端情况下内存资源有近50%被浪费。

3 连续的内存分配

3.1 问题提出

伙伴系统的内存管理方式对空间的使用存在极大的浪费。在某些情况下还会由于资源的浪费,导致后继的内存请求得不到满足,进而严重地影响程序的正常功能。

试考虑:系统共有1MB内存空间可用,采用伙伴系统进行管理。有如下请求:请求A,300KB;请求B,300KB;请求C,50KB.结果如表1所示。

由表1中可以看出:伙伴系统对空间的浪费是极其严重的,即使在物理内存充足(1MB)的情况下,也会产生请求(650KB)无法满足的情况。

由于在嵌入式系统中,一般都没有虚拟内存的支持,所以当内存请求无法得到满足时,将严重影响程序的正常功能。因此为了保证程序的正常功能,就要提高内存的利用率,尽可能地满足程序的内存请求。所以在对伙伴系统进行分析的基础上,提出了连续的内存分配方式。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭