嵌入式系统内存的管理方案研究
摘要:嵌入式系统的内存管理机制必须满足实时性和可靠性的要求。本文以开源的的操作系统RTEMS为例,介绍嵌入式系统中内存管理的要求、存在的问题以及解决的策略。
引言
内存管理机制是嵌入式系统研究中的一个重点和难点的问题,它必须满足以下几个特性:
①实时性。从实时性的角度出发,要求内存分配过程要尽可能地快。因此,在嵌入式系统中,不可能采用通用操作系统的一些复杂而完善的内存分配策略,一般没有段页式的虚存管理机制;而是采用简单、快速的内存分配方案,其分配方案也因程序对实时性的要求而异。例如,VxWorks系统采用简单的“首次适应,立即聚合”方法;VRTX中采用多个固定尺寸存储块的binning方案。
②可靠性。嵌入式系统应用的环境千变万化,在有些特定情况下,对系统的可靠性要求极高,内存分配的请求必须得到满足,如果分配失败则可能会带来灾难性的后果。比如,飞机的燃油检测系统。在飞机飞行过程中,如果燃料发生泄漏,系统应该立即检测到,并发出相应的警报等待飞行员及时处理。如果因为内存分配失败而不能相应地操作,就可能发生机毁人亡的事故。
③高效性。内存分配要尽可能地减少浪费。(收集整理)不可能为了保证满足所有的内存分配请求而将内存配置得很大。一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的资源;另一方面,即使不考虑成本的因素,系统硬件环境有限的空间和有限的板面积决定了可配置的内存容量是很有限的。
针对以上三个约束条件,市场上主流的嵌入式操作系统,如VxWorks、嵌入式Linux等均提出了一套有效的解决方案;但是,这些系统只提供了应用开发的接口,其底层的实现方案不可见。本文以开源的嵌入式操作系统RTEMS为例,分析了嵌入式系统内存管理所面临的问题,研究了其底层实现的解决方案。一般的嵌入式系统中最基本的内存管理方案有两种——静态分配和动态分配。
1静态分配与动态分配
静态分配是指在编译或链接时将程序所需的内存空间分配好。采用这种分配方案的程序段,其大小一般在编译时就能够确定;而动态分配是指系统运行时根据需要动态地分配内存。这两种策略的选取一直是嵌入式系统设计中一个令人头痛的问题。
一般的嵌入式系统都支持静态分配,因为像中断向量表、操作系统映像这类的程序段,其程序大小在编译和链接时是可以确定的。而是否支持动态分配主要基于两个方面的考虑:首先是实时性和可靠性的要求,其次是成本的要求。对于实时性和可靠性要求极高的系统(硬实时系统),不允许延时或者分配失效,必须采用静态内存分配,如航天器上的嵌入式系统多采用静态内存分配。除了基于成本的考虑外,用于汽车电子和工业自动化领域的一些系统也没有动态内存分配,比如WindRiver著名的OSEKWorks系统。然而,仅仅采用静态分配,使系统失去了灵活性。必须在设计阶段就预先知道所需要的内存并对之作出分配;必须在设计阶段就预先考虑到所有可能的情况,因为一旦出现没有考虑到的情况,正在运行的系统就无法处理。这样的分配方案必然导致很大的`浪费。因为内存分配必须按照最坏情况进行最大的配置,而实际运行时很可能只使用其中的一小部分;而且在硬件平台不变的情况下,不可能灵活地为系统添加功能,从而使得系统的升级变得困难。
虽然动态内存分配会导致响应和执行时间不确定、内存碎片等问题,但是它的实现机制灵活,给程序实现带来极大的方便,有的应用环境中动态内存分配甚至最必不可少的。比如,嵌入式系统中使用的网络协议栈,在特定的平台下,为了比较灵活地调整系统的功能,在系统中各个功能之间作出权衡,必须支持动态内存分配。例如,为了使系统能够及时地在支持的VLAN数和支持的路由条目数之间作出调整,或者为了使不同的版本支持不同的协议,类似于malloc和free这类的函数是必不可少的。
大多数的系统是硬实时和软实时综合。系统中的一部分任务有严格的时限要求,而另一部分只是要求完成得越快越好。按照RMS理论,这样的系统必须采用抢先式任务调度;而在这样的系统中,就可以采用动态内存分配来满足部分对可靠性和实时性要求不高的任务。采用动态内存分配的最大好处就是给设计得很大的灵活性,可以方便地将原来运行于非嵌入式操作系统的程序移植到嵌入式系统中。
2RTEMS内存管现机制
RTEMS(TheRaelTimeExecutiveforMulti-processorSystems)是一个基于多处理器的,能够运行在不同处理器平台上的嵌入式操作系统。其应用领域十分广泛,包括航空航天设备(导弹、飞机控制系统),网络设备(路由器、交换机),掌上设备(电子阅读器、PDA)等。针对不同领域应用的需求差异,该系统的内存管理提
供了比较完善的机制。同其它常见的嵌入式系统一样,RTEMS不支持虚拟存储管理,不支持复杂的段页式的保护机制,而采用线性编址方式,即逻辑地址和物理地址一一对应的平面模式,同时支持静态和动态两种管理模式。在系统正常运行时,内存中的映像如图1所示。
图1中假设内破大小为2MB。在特定的应用中,中断表和RTEMS的映像所占用的内存空间大小是个定值,采用静态的内存分配机制,在编译时就可以确定其大小。堆栈区和系统内存区则采取动态分配机制,在系统运行时可以根据需要自动调整其大小。
3RTEMS动态内存管理
RTEMS动态内存管理机制提供两种分区机制,Partition和Region。
Partition分区管理用于固定大小内存块的分配,Region分区管理用于可变大小内存块的分配。
3.1固定长度分区管理
RTEMS定义的固定长度的分区(Partition)是一段连续的内存空间。它可以被划分成固定长度的内存块(buffer),允许应用在创建分区时配置分区的大小和内存块的大小,要求分区的大小是内存块的整数倍。例如,应用创建一个大小为1024字节的分区,内存块为256字节,如图2所示。
创建分区时,RTEMS根据分区和内存块的大小,形成一个空闲内存块的双向链表。当从分区中申请内存块时,按照空闲内存块链表的顺序分配。如果空闲空间不足,调用者不会被阻塞,而是获得一个空指针,以确保申请内存调用的时间确定性。释放内存块时,将该内存块挂在空闲内存块链表的链尾。分区被删除时将释放出这段连续的内存空间。
RTEMS的分区管理机制提供以下API:
rtems_partition_create创建一个分区
rtems_partition_ident获得分区标识号
rtems_partition_deldet1删除一个分区
rtems_partition_get_buffer申请一个内存块
rtems_partition_return_buffer释放一个内存块
RTEMS的固定长度分区管理算法有以下特色:
①系统创建的分区数目可在运行时动态增减。
②内存块的控制结构所占用的内存空间在该内存块被分配出去时会变为可用空间,不会影响该内存块实际可用的大小;而在回收时控制块会自动生成,这一点使得分区管理的系统开销对用户的影响为零。
③在分区的内存块中还可以再定义分区,这就意味着内存块可以很容易地被分为子内存块,提高了分区管理的灵活性。
3.2可变长度分区管理
RTEMS定义的可变长度的分区(Region)是一段连续的、大小可配置的内存空间,可以被划分成很多大小不一的段(Segment)。创建分区时要指定一个分配单元,称为页。段的大小是页的倍数,如果应用程序在申请段时,给出的大小不是页的倍数,内核会将其调整为页的倍数。例如,应用从而大小为512个字节的分区中申请一个大小为700字节的段,那么,内核实际分配的段大小为1024字节。
创建Reg
ion分区时,RTEMS根据分区大小和页小建立分区的控制结构和段的控制结构。在创建之初,只有一个空闲段,其大小为分区的大小减去控制结构的内存开销。随着应用申请、释放段的操作不断进行,分区中形成用双向链表链接起来的空闲段链。当从分区中分配段时,依据首次适应算法(即第一个满足要求的空闲段就作为分配结果)查看空闲段链中是否存在合适的段。当把段释放回分区时,该段被挂在空闲段链的链尾,并且如果空闲段链中有与此段相邻的段,则将其合并成一个更大的空闲段。RTEMS在段的控制块中设置一个标志位表示其被使用的情况。标志位为1表示该段正被使用,标志位为0表示该段空闲。图3是一个分区中具有两个空闲段和一个正被使用的段的示例。
空闲段和已经使用段的控制结构有所不同,如图4所示。
RTEMS的分区管理机制提供以下API:
rtems_region_create创建一个分区
rtems_region_ident获得分区的标识
rtems_region_删除一个分区
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系统为例,介绍了嵌入式系统中常用的内存管理方法,并对各种方法的特点进行了阐述,在实际应用时,可根据需求作出相应的选择。
惯有嵌入式系统内存管理方案研究
摘要:嵌入式系统的内存管理机制必须满足实时性和可靠性的要求,嵌入式系统内存管理方案研究。本文以开源的的操作系统RTEMS为例,介绍嵌入式系统中内存管理的要求、存在的问题以及解决的策略。
引言
内存管理机制是嵌入式系统研究中的一个重点和难点的问题,它必须满足以下几个特性:
①实时性。从实时性的角度出发,要求内存分配过程要尽可能地快。因此,在嵌入式系统中,不可能采用通用操作系统的一些复杂而完善的内存分配策略,一般没有段页式的虚存管理机制;而是采用简单、快速的内存分配方案,其分配方案也因程序对实时性的`要求而异。例如,VxWorks系统采用简单的“首次适应,立即聚合”方法;VRTX中采用多个固定尺寸存储块的binning方案。
②可靠性。嵌入式系统应用的环境千变万化,在有些特定情况下,对系统的可靠性要求极高,内存分配的请求必须得到满足,如果分配失败则可能会带来灾难性的后果。比如,飞机的燃油检测系统。在飞机飞行过程中,如果燃料发生泄漏,系统应该立即检测到,并发出相应的警报等待飞行员及时处理。如果因为内存分配失败而不能相应地操作,就可能发生机毁人亡的事故。
③高效性。内存分配要尽可能地减少浪费。不可能为了保证满足所有的内存分配请求而将内存配置得很大。一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的资源;另一方面,即使不考虑成本的因素,系统硬件环境有限的空间和有限的板面积决定了可配置的内存容量是很有限的。
针对以上三个约束条件,市场上主流的嵌入式操作系统,如VxWorks、嵌入式Linux等均提出了一套有效的解决方案;但是,这些系统只提供了应用开发的接口,其底层的实现方案不可见。本文以开源的嵌入式操作系统RTEMS为例,分析了嵌入式系统内存管理所面临的问题,研究了其底层实现的解决方案。
小学小课题研究管理方案
为了进一步增强科研意识,加大科研推进力度,指导广大教师从研究解决身边的实际问题入手,探索省时高效的教学思路和策略,提高工作效率,特制订本方案。
【第1句】:成立小课题研究指导机构
学校成立小课题研究指导小组,在教务处协调管理下指导全校小课题研究工作。指导小组成员如下:
顾问:宗xx负责小课题研究咨询指导。
组长:袁xx负责小课题研究宏观管理与协调。
副组长:王xx负责小课题研究工作规划与协调、阶段性工作检查指导、课题研究成效评估管理。
学科组组长:
孙xx负责语文学科小课题研究的组织与指导。
李xx负责数学学科小课题研究的组织与指导。
刘xx负责英语、科学、音乐、体育、美术、思品等学科小课题研究的组织与指导。
【第2句】:建立和完善小课题管理制度
【第1句】:小课题研究选题备案制度
(1)学校一般于学年初组织小课题选题申报工作,提出小课题申报选题指导建议。教师可根据学校选题指导建议,结合自身实际申报选题。
(2)研究周期短或提早结题的教师,或因种种原因尚未承担小课题研究任务的教师,亦可随时申报选题,报请指导小组审核、教务处备案。
(3)教师应从自身工作需要出发,从身边的.实际问题入手,自愿申报选题,填写小课题研究计划表,并根据指导小组建议及时进行修改调整,指导小组审核通过后由教务处统一备案,纳入学校小课题研究管理。未经指导小组立项审核的小课题教务处不予备案,不享受学校小课题研究考评奖励待遇。
(4)教师申报选题,一周内应提交《小课题研究计划表》,一个月内应根据指导小组建议对《小课题研究计划表》进行修改完善,并将修改好的《小课题研究计划表》报教务处备案存档,然后根据《小课题研究计划表》扎实开展研究工作。未及时修改完善上报的小课题选题,学校不予承认。
(5)小课题选题名称、课题主持人和课题组成员一般不得随意变更。特殊情况下确需变更者,须由课题主持人提出书面申请,经学校小课题指导小组同意、备案后方可实施。
【第2句】:小课题检查、交流、指导与结题鉴定制度
(1)学校小课题研究指导小组每学期开学后一周内发布《学校学期小课题研究工作计划》,明确活动安排。各学科组组长根据学校计划安排,组织指导本组教师开展小课题研究活动。
(2)一般说来,学校每学年上学期组织小课题研究阶段性交流,下学期组织课题研究中期述职检查,学年末组织结题鉴定与成果展示活动。研究周期短或提早完成研究任务的课题,也可提早申请结题鉴定,学校将根据其课题完成情况决定是否单独组织成果鉴定。已完成结题鉴定的教师方可继续申报新课题。
(3)课题结题鉴定的一般程序是:课题主持人总结课题研究情况,整理课题研究档案,提交课题研究结题报告,提出成果鉴定申请;学校组成专家、相关管理干部、骨干教师代表,组成课题成果鉴定委员会,对申请结题鉴定的课题进行书面评估,然后根据课题特点,决定采取何种形式组织现场鉴定和成果展示活动;成果鉴定委员会根据书面评估、现场鉴定、成果展示情况,对课题研究情况进行考核评估,决定是否准予结题、成果鉴定等级。
(4)学校根据课题研究需要,适时组织课题研究经验交流、问题研讨、专题讲座、对话咨询等活动,并利用网上qq空间及时提供诊断、咨询服务。
【第3句】:小课题成果应用推广制度
(1)小课题研究通过结题鉴定后,应及时制定成果应用推广计划,尽快将研究成果转化为有效的教育教学行为,取得更大的科研效益。
(2)课题成果应用推广采取项目制,由课题主持人具体负责,成立成果应用推广项目组,确定成果应用推广范围,制定成果应用推广计划,报请课题指导小组审核批准,然后组织实施。
(3)学校为小课题研究成果应用推广提供支持与指导服务,并于学期末组织成果应用推广评估活动,根据成果推广项目组主持人工作汇报及档案资料查阅、现场考察等情况,对成果项目推广情况进行评估考核,成绩纳入年度业务绩效考核。
【第5句】:小课题研究激励保障制度
(1)小课题研究纳入学校校本教研工作管理,作为教师业务研修的重要指标,列入期末、年度业务考核。学校根据课题研究选题申报、研究计划制定、阶段性交流、中期述职、结题报告与成果展示情况,对课题研究具体情况进行评估考核,考核成绩列入教师业务考核指标。
(2)学校每学期都根据课题研究进度,组织小课题阶段性检查、经验交流、问题研讨、中期述职、成果展示等活动,及时反馈检查交流结果,期末汇总各项活动评估信息,设立优秀课题主持奖、优秀课题参与奖、优秀课题推广应用奖等奖项,对小课题研究中表现突出的教师进行表彰奖励。
课题研究方案
课题背景就是指该问题是在什么情况或条件下产生的,课题研究有什么意义,等等。下面,小编为大家分享课题研究方案,希望对大家有所帮助!
【第1句】:课题的现实背景及意义
小学阶段开设英语课程的目的是培养学生学习英语的积极情感,形成初步的英语语感,为其打好语音、语调基础,最终使学生具备初步的用所学英语进行交流的能力。按新《英语课程标准》规定,小学生在毕业前至少应该达到二级的目标要求。在二级目标中,读的要求有:能借助图片读懂简单的故事或小短文,并养成按意群阅读的习惯;能正确朗读所学故事或小短文。要达到这样的目标,没有足够的语言输入量是不行的。成功的英语教学要依赖大量的语言材料和语言实践,然而我们在多年教学实践中感到小学阶段学生接触和使用语言的时空受到一定的限制。
阅读是语言学习的一个重要方面。阅读教学在外语教学中起着十分重要的作用,它可以帮助学生得到乐趣,获取信息,培养学生的英语阅读理解能力,使学生养成良好的英语阅读习惯,可培养拥有主动学习的能力和合作的精神,为终身学习打下基础。阅读还是巩固和扩大词汇量的好方法。然而现行牛津小学英语教材,重视了听说能力的培养,却在一定程度上忽视了读和写技能的训练。因此,有必要对小学生英语阅读教学方面进行探讨与研究。
【第2句】:国内外关于同类课题的研究综述
纵观国内,培养小学生的英语阅读能力已被大家所重视,广大教师对此做了不少探索,特别是在教学方法的改革上,已取得了较大成绩,其研究表明:
从学习语言的规律看:成功的学好一门语言要进行大量地吸收语言材料和语言实践,因此在英语教学中,只有让学生通过对语言充分阅读,用心感悟,不断积累、运用,才可能真正体味到地道英语的独特魅力,真正把语言学到手。
从小学生学习心理看:小学生具有很好的感性思维,富有情节的故事、童话学生更感兴趣;贴近自身的富有生活气息的短文、对话更能吸引他们。英语教学已改变了以往的传统的封闭、单调、划一的就教材教教材的僵化状态,注意培养学生的阅读兴趣,鼓励学生进行课外阅读。
【第3句】:研究的预期目标与主要内容:
l研究的预期目标:
巩固和扩大词汇量,增强语感,提高学生的阅读速度和理解的准确度,逐步形成他们的英语阅读习惯和能力。帮助学生善于、乐于了解异国文化,拓展实践空间,不断提高学生学习英语的兴趣,促进英语听说能力的提高。
研究的主要内容
【第1句】:研究选择教材的依据与内容:
教师在选择阅读材料时,要考虑语言的难易程度,内容是否符合儿童的年龄与兴趣,是否吸引学生。同时尽量与牛津英语的主题式教学相结合,注意形式与内容的搭配,逐步发展学生的阅读能力。根据各年纪学生的年龄特点,并结合《牛津小学英语》教材,汇编出四套系统的阅读教材。
【第2句】:研究小学英语阅读课的课堂教学的有效方法:
阅读课作为一门技能训练课,其任务着重在于提高学生的阅读理解能力。教师要引导学生去体会理解文案中的词义,帮助他们把音、形、义结合起来。因此,使教师采取有针对性的方法,对培养学生阅读技巧,提高理解能力大有帮助。
【第3句】:学生英语阅读能力的提高与总体英语发展水平的'关系。
【第4句】:研究的原则和主要方法:
l研究的原则:
【第1句】:主体性原则:要充分体现学生的主体地位,发挥教师的主导作用。在教法和阅读材料的选择上,要发挥学生的积极性和主动性,尊重学生的个体差异,培养学生的自学能力。
【第2句】:实践性原则:突出语言的实践性,注重培养学生综合运用英语的能力,扩大语言的输入量,为学生创设大量语言实践的机会。
【第3句】:整体性原则:注意英语牛津教材与阅读教材的有机结合,实现课内外的协调,拓宽学习渠道,充分利用现代教学媒体和技术,发挥教学的整体效益。
l研究的方法
【第1句】:观察法:
在教学过程中对学生的外在行为进行有计划、有目的的观察,从而直接感知和记录学生对所学阅读材料的兴趣、理解程度、掌握情况等。
【第2句】:实验法:
根据实验目的,对小学英语阅读课的教学模式分年级进行不同的设计、探索,并将不同课堂教学现象做记录、分析,寻求最佳的教学模式。
【第3句】:案例分析法:
对比较典型的阅读教学的材料进行分析,或对课堂案例进行微格研究,直观地体现研究情况
【第5句】:课题研究的操作措施
【第1句】:激发学生兴趣,让其始终处于主动、积极的状态。
教师要激活学生的“内存”,抓住他们的“愤”、“悱”之处展开教学。教师要真诚地平等地对待每个学生,激发学生阅读的兴趣,活跃课堂气氛,师生共同积极参与,关系融洽。不仅允许他们赞同、接受,而且允许他们否定乃至拒绝;学生之间有更多的直接的交流、讨论,让理解、信任、尊重、宽容、民主、合作充满整个课堂。同时使学生始终处于主动、积极的状态。
【第2句】:加大感受语言、运用语言的力度。
在学习课文的过程中,要注重学生的读,让学生由读去感知语言、感受生活、丰富情感,同时积累语言。在此基础上,更要尽可能多地给学生提供运用语言的时间和机会,以提高学生的语言表达能力。
【第3句】:让学生在阅读中培养阅读习惯
让学生在自主的阅读实践中,逐步掌握阅读的方法、逐步丰富词汇、积累语言养成良好的英语阅读习惯,为今后的主动发展打下根基。
【第6句】:课题研究的基本进程
【第1句】:基本进程阶段:
(1)准备阶段(20**年2月~20**年4月)
课题的构思和定位,方案的撰写和论证。
(2)实施阶段(20**年4月~20**年4月)
A、课题的实施、研究;
B、中期论证;
C、课题的发展、完善。
(3)总结阶段(20**年5月~20**年7月)
成果的总结,经验的推广
【第7句】:课题研究的组织
组长:邓X莉XX市XXXXXX实验学校小学部英语教师(常州市青年骨干教师)
成员:钱X琴金坛市实验学校小学部英语教研组长(常州市青年骨干教师)
王X凤XX市XXXXXX实验学校小学部英语教师(常州市青年骨干教师)
温X玲XX市XXXXXX实验学校小学部英语教师
王X琴XX市XXXXXX实验学校小学部英语教师
刘X芸XX市XXXXXX实验学校小学部英语教师(金坛市骨干教师)
【第8句】:课题研究的主要成果形式
【第1句】:研究报告,包括实验报告、调查报告、个案研究报告等。
【第2句】:教师论文、案例分析等。
【第3句】:CAI课件、研究课教案等。
【第4句】:学生作品,包括作业、学习体会等。
【第9句】:课题研究的条件分析
【第1句】:本课题有较强的可操作性,课题成功的可能性较大。
【第2句】:课题组成员有较丰富的教学经验,较强的科研能力,为课题研究成功提供了保证。
【第3句】:本课题得到了学校领导和本教研组的大力支持,在人力、财力、物力上会得到有力保障。
上一篇:甜品店有气势的口号锦集80条
下一篇:返回列表