嵌入式系统--内存管理.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:28 大小:334KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式系统--内存管理.ppt

嵌入式系统--内存管理.ppt

预览

免费试读已结束,剩余 18 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

嵌入式操作系统之内存管理主要内容概述内存管理的主要功能内存保护早期的嵌入式操作系统大都没有采用MMU:一方面是出于对硬件成本的考虑;另一方面是出于实时性的考虑。嵌入式系统发展到现在,硬件成本越来越低,MMU所带来的成本因素基本上可以不用考虑原来的嵌入式CPU的速度较慢,采用MMU通常会造成对时间性能的不满足,而现在CPU的速度也越来越快,并且采用新技术后,已经将MMU所带来的时间代价降低到比较低的程度嵌入式CPU具有MMU的功能已经是一种必要的趋势。由于采用MMU后对应用的运行模式甚至开发模式都会有一些影响,大量嵌入式操作系统都没有使用MMU。对于安全性、可靠性要求高的应用来讲如果不采用MMU,则几乎不可能达到应用的要求。如果没有MMU的功能,将无法防止程序的无意破坏,无法截获各种非法的访问异常,当然更不可能防止应用程序的蓄意破坏了。采用MMU后,便于发现更多的潜在问题,并且也便于问题的定位。未采用MMU时,内存模式一般都是平面模式,应用可以任意访问任何内存区域、任何硬件设备,程序中出现非法访问时,开发人员是无从知晓的,也非常难于定位。内存保护应用程序内存保护MMU包含着能够把逻辑地址映射为物理地址的表,称为页表。操作系统能够在需要的时候对这种映射关系进行改变:应用程序对内存的需求发生变化或是添加或删除应用程序的时候。在应用程序中的任务发生上下文切换时。页号每个内存页还具有一些特权和状态信息。MMU提供二进制位来标识每个页面的特权或状态信息。这些二进制位用来确定页面中的内容是否:可被处理器指令所使用(执行特权)可写(写特权)可读(读特权)已被回写(脏位)当前在物理内存中(有效位)在操作系统的支持下,MMU还提供虚拟存储功能,即在任务所需要的内存空间超过能够从系统中获得的物理内存空间的情况下,也能够得到正常运行。当需要的页面被添加到逻辑地址空间时,任务对内存页面的合法访问,将自动访问到物理内存。页面当前不在物理内存中时,将导致页面故障异常,然后操作系统负责从后援存储器(如硬盘或是FLASH存储设备)中获取需要的页面,并从产生页面故障的机器指令处重新执行。MMU通常具有如下不同功能程度的使用方式:没有使用MMU,应用程序和系统程序能够对整个内存空间进行访问。采用该模式的系统比较简单、性能也比较高,适合于程序简单、代码量小和实时性要求比较高的领域。大多数传统的嵌入式操作系统都采用该模式;通常只是打开MMU,并通过创建一个域(domain,为内存保护的基本单位,每个域对应一个页表)的方式来使用内存,并对每次内存访问执行一些必要的地址转换操作。该模式仍然只是拥有MMU打开特性的平面内存模式;MMU被打开,且创建了静态的域(应用程序的逻辑地址同应用程序在物理内存中的物理地址之间的映射关系在系统运行前就已经确定),以保护应用和操作系统在指针试图访问其他程序的地址空间时不会被非法操作。通常使用消息传送机制实现数据在被MMU保护起来的各个域之间的移动。通过操作系统使用CPU提供的内存映射机制,内存页被动态地分配、释放或是重新分配。从内存映射到基于磁盘的虚拟内存页的过程是透明的。0级模式为大多数传统嵌入式实时操作系统的使用模式,同1级模式一样,都是内存的平面使用模式,不能实现内存的保护功能。2级模式是目前大多数嵌入式实时操作系统所采用的内存管理模式,既能实现内存保护功能,又能通过静态域的使用方式保证系统的实时特性。3级模式适合于应用比较复杂、程序量比较大,并不要求实时性的应用领域。应用程序1在嵌入式实时操作系统中,MMU通常被用来进行内存保护:实现操作系统与应用程序的隔离应用程序和应用程序之间的隔离防止应用程序破坏操作系统的代码、数据以及应用程序对硬件的直接访问。对于应用程序来讲,也可以防止别的应用程序对自己的非法入侵,从而破坏应用程序自身的运行。在内存保护方面,MMU提供了以下措施:防止地址越界通过限长寄存器检查逻辑地址,确保应用程序只能访问逻辑地址空间所对应的、限定的物理地址空间,MMU将在逻辑地址超越限长寄存器所限定的范围时产生异常;防止操作越权根据内存页面的特权信息控制应用程序对内存页面的访问,如果对内存页面的访问违背了内存页面的特权信息,MMU将产生异常。虚拟内存谢谢!