版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式操作系统之内存管理,组长: 小组成员:万富、,主要内容,概述 内存管理的主要功能 内存保护 虚拟内存,概述,内存管理系统式嵌入式操作系统内核中重要的功能之一。由于处理器直接运行和处理的程序和数据只能放在内存中,因此内存的管理质量是否优良将直接影响系统。,内存管理的主要功能,虚拟内存空间 操作系统采用虚拟内存功能使系统显得它有比实际大得多得内存空间,虚拟内存可以比系统中的物理内存大好多。 保护 系统中每个进程都有自己的虚拟地址空间,这些虚拟内存空间相互之间完全分离,因此运行一个应用的进程不会影响其他的进程。同样,硬件的虚拟内存机制允许内存区域被写保护,这样就保护了代码和数据不被恶意应用重写
2、。,内存映射 内存映射用来把映像和数据文件映像到一个进程的地址空间。在内存映射中,文件的内容被直接链接到进程的虚拟地址空间。 公平物理内存分配 内存管理系统给予系统中运行的每个进程公平的一份系统物理内存。 共享虚拟内存 尽管虚拟内存允许进程拥有分隔的虚拟地址空间,但有时还需要进程共享内存,如进程间通信需要共享内存。,内存保护,内存保护可通过硬件提供的MMU(memory management unit)来实现。 目前,大多数处理器都集成了MMU: 大幅度降低那些通过在处理器外部添加MMU模块的处理方式所存在的内存访问延迟。 MMU现在大都被设计作为处理器内部指令执行流水线的一部分,使得使用MM
3、U不会降低系统性能,相反,如果系统软件不使用MMU,还会导致处理器的性能降低。 在某些情况下,不使能MMU,跳过处理器的相应流水线,可能导致处理器的性能降低80%左右。,早期的嵌入式操作系统大都没有采用MMU: 一方面是出于对硬件成本的考虑; 另一方面是出于实时性的考虑。 嵌入式系统发展到现在,硬件成本越来越低,MMU所带来的成本因素基本上可以不用考虑 原来的嵌入式CPU的速度较慢,采用MMU通常会造成对时间性能的不满足,而现在CPU的速度也越来越快,并且采用新技术后,已经将MMU所带来的时间代价降低到比较低的程度 嵌入式CPU具有MMU的功能已经是一种必要的趋势。,由于采用MMU后对应用的运
4、行模式甚至开发模式都会有一些影响,大量嵌入式操作系统都没有使用MMU。 对于安全性、可靠性要求高的应用来讲如果不采用MMU,则几乎不可能达到应用的要求。 如果没有MMU的功能,将无法防止程序的无意破坏,无法截获各种非法的访问异常,当然更不可能防止应用程序的蓄意破坏了。 采用MMU后,便于发现更多的潜在问题,并且也便于问题的定位。 未采用MMU时,内存模式一般都是平面模式,应用可以任意访问任何内存区域、任何硬件设备,程序中出现非法访问时,开发人员是无从知晓的,也非常难于定位。,内存保护,MMU通常具有如下功能: 内存映射; 检查逻辑地址是否在限定的地址范围内,防止页面地址越界; 检查对内存页面的
5、访问是否违背特权信息,防止越权操作内存页面; 在必要的时候(页面地址越界或是页面操作越权)产生异常。,内存映射把应用程序使用的地址集合(逻辑地址)翻译为实际的物理内存地址(物理地址),内存保护,大多数处理器的典型页面大小为4K字节,有些处理器也可能使用大于4K字节的页面,但页面大小总是2的幂,以对发生在MMU中的地址映射行为流水线化。 当页放置到物理内存时,页面将放置到页框架(page frame)中。 页框架是物理内存的一部分,具有与页面同样的大小,且开始地址为页面大小的整数倍。,MMU包含着能够把逻辑地址映射为物理地址的表,称为页表。 操作系统能够在需要的时候对这种映射关系进行改变: 应用
6、程序对内存的需求发生变化或是添加或删除应用程序的时候。 在应用程序中的任务发生上下文切换时。,基于页表的内存映射过程 。,每个内存页还具有一些特权和状态信息。 MMU提供二进制位来标识每个页面的特权或状态信息。这些二进制位用来确定页面中的内容是否: 可被处理器指令所使用(执行特权) 可写(写特权) 可读(读特权) 已被回写(脏位) 当前在物理内存中(有效位),在操作系统的支持下,MMU还提供虚拟存储功能,即在任务所需要的内存空间超过能够从系统中获得的物理内存空间的情况下,也能够得到正常运行。 当需要的页面被添加到逻辑地址空间时,任务对内存页面的合法访问,将自动访问到物理内存。 页面当前不在物理
7、内存中时,将导致页面故障异常,然后操作系统负责从后援存储器(如硬盘或是FLASH存储设备)中获取需要的页面,并从产生页面故障的机器指令处重新执行。,MMU通常具有如下不同功能程度的使用方式: 没有使用MMU,应用程序和系统程序能够对整个内存空间进行访问。 采用该模式的系统比较简单、性能也比较高,适合于程序简单、代码量小和实时性要求比较高的领域。 大多数传统的嵌入式操作系统都采用该模式;,0级,内存的平面使用模式,通常只是打开MMU,并通过创建一个域(domain,为内存保护的基本单位,每个域对应一个页表)的方式来使用内存,并对每次内存访问执行一些必要的地址转换操作。 该模式仍然只是拥有MMU打
8、开特性的平面内存模式;,1级,处理具有MMU和内存缓存的嵌入式处理器,MMU被打开,且创建了静态的域(应用程序的逻辑地址同应用程序在物理内存中的物理地址之间的映射关系在系统运行前就已经确定),以保护应用和操作系统在指针试图访问其他程序的地址空间时不会被非法操作。 通常使用消息传送机制实现数据在被MMU保护起来的各个域之间的移动。,2级,内存保护模式,通过操作系统使用CPU提供的内存映射机制,内存页被动态地分配、释放或是重新分配。 从内存映射到基于磁盘的虚拟内存页的过程是透明的。,3级,虚拟内存使用模式,0级模式为大多数传统嵌入式实时操作系统的使用模式,同1级模式一样,都是内存的平面使用模式,不
9、能实现内存的保护功能。 2级模式是目前大多数嵌入式实时操作系统所采用的内存管理模式,既能实现内存保护功能,又能通过静态域的使用方式保证系统的实时特性。 3级模式适合于应用比较复杂、程序量比较大,并不要求实时性的应用领域。,应用程序1,应用程序2,基于静态域的MMU使用方式 也称为是一一对应的使用方式。 在这种一一对应的使用方式中,应用程序的逻辑地址同应用程序在物理内存中的物理地址相同,简化了内存管理的实现方式。,在嵌入式实时操作系统中,MMU通常被用来进行内存保护: 实现操作系统与应用程序的隔离 应用程序和应用程序之间的隔离 防止应用程序破坏操作系统的代码、数据以及应用程序对硬件的直接访问。
10、对于应用程序来讲,也可以防止别的应用程序对自己的非法入侵,从而破坏应用程序自身的运行。,在内存保护方面,MMU提供了以下措施: 防止地址越界 通过限长寄存器检查逻辑地址,确保应用程序只能访问逻辑地址空间所对应的、限定的物理地址空间,MMU将在逻辑地址超越限长寄存器所限定的范围时产生异常; 防止操作越权 根据内存页面的特权信息控制应用程序对内存页面的访问,如果对内存页面的访问违背了内存页面的特权信息,MMU将产生异常。,简单的MMU保护模式 应用程序之间要通信就只能通过操作系统提供的通信服务,如:信号量、管道、消息、共享内存等,而不能直接访问彼此的地址空间。 MMU通常还提供权限等级,不同的权限等级对硬件访问的权限不一样。操作系统一般运行在核心态,具有所有的特权,而应用则一般运行在用户态,具有一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 视频植入广告合同
- 住宅地下室防水施工方案
- 2025年安徽医科大学第一附属医院东城院区招聘专业技术人员考试试卷真题
- Immucillin-G-生命科学试剂-MCE
- 2026年村级厕所革命督导员招聘笔试模拟题
- 2026年中班秋季保健知识家园共育方案
- 市政排水管网施工方案
- 老年养护院消防疏散设计方案
- 中厚板配套热处理生产线项目经济效益和社会效益分析报告
- 线上客户咨询服务协议2026修订版
- 雨课堂学堂在线学堂云《生物材料伴我行(湖南大学 )》单元测试考核答案
- 2025年甘肃高考政治真题及答案
- 正确使用酒精灯的课件
- GB/T 4133-2025机床莫氏圆锥强制传动
- 卫生院控烟培训课件
- ECMO辅助下心脏移植患者围术期管理方案
- 工业产品销售单位质量安全日管控周排查月调度检查记录表
- 公章借用免责协议书
- 应急预案排版要求
- 《土木工程智能施工》课件 第3章 土方工程-土方量计算及调配
- 2025至2030卫生球阀行业调研及市场前景预测评估报告
评论
0/150
提交评论