《嵌入式系统--内存管理.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统--内存管理.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信息与计算机学院嵌入式操作系统之嵌入式操作系统之内存管理内存管理组长:小组成员:万富、信息与计算机学院主要内容主要内容概述概述内存管理的主要功能内存管理的主要功能内存保内存保护虚虚拟内存内存信息与计算机学院概述概述内存管理系统式嵌入式操作系统内核中重要的功能之一。由于处理器直接运行和处理的程序和数据只能放在内存中,因此内存的管理质量是否优良将直接影响系统。信息与计算机学院内存管理的主要功能内存管理的主要功能虚虚拟内存空内存空间操作系操作系统采用虚采用虚拟内存功能使系内存功能使系统显得它有比得它有比实际大大得多得内存空得多得内存空间,虚,虚拟内存可以比系内存可以比系统中的物理内存大好中的物理内存
2、大好多。多。保保护系系统中每个中每个进程都有自己的虚程都有自己的虚拟地址空地址空间,这些虚些虚拟内存空内存空间相互之相互之间完全分离,因此运行一个完全分离,因此运行一个应用的用的进程不程不会影响其他的会影响其他的进程。同程。同样,硬件的虚,硬件的虚拟内存机制允内存机制允许内存内存区域被写保区域被写保护,这样就保就保护了代了代码和数据不被和数据不被恶意意应用重用重写。写。信息与计算机学院内存映射内存映射内存映射用来把映像和数据文件映像到一个内存映射用来把映像和数据文件映像到一个进程的地程的地址空址空间。在内存映射中,文件的内容被直接。在内存映射中,文件的内容被直接链接到接到进程的程的虚虚拟地址空
3、地址空间。公平物理内存分配公平物理内存分配内存管理系内存管理系统给予系予系统中运行的每个中运行的每个进程公平的一份程公平的一份系系统物理内存。物理内存。共享虚共享虚拟内存内存尽管虚尽管虚拟内存允内存允许进程程拥有分隔的虚有分隔的虚拟地址空地址空间,但,但有有时还需要需要进程共享内存,如程共享内存,如进程程间通信需要共享内存。通信需要共享内存。信息与计算机学院内存保护内存保护 内存保内存保护可通可通过硬件提供的硬件提供的MMUMMU(memory memory management unitmanagement unit)来)来实现。目前,大多数目前,大多数处理器都集成了理器都集成了MMUMMU
4、:大幅度降低那些通过在处理器外部添加MMU模块的处理方式所存在的内存访问延迟。MMU现在大都被设计作为处理器内部指令执行流水线的一部分,使得使用MMU不会降低系统性能,相反,如果系统软件不使用MMU,还会导致处理器的性能降低。在某些情况下,不使能MMU,跳过处理器的相应流水线,可能导致处理器的性能降低80%左右。信息与计算机学院早期的嵌入式操作系早期的嵌入式操作系统大都没有采用大都没有采用MMUMMU:一方面是出于对硬件成本硬件成本的考虑;另一方面是出于实时性实时性的考虑。嵌入式系嵌入式系统发展到展到现在,硬件成本越来越低,在,硬件成本越来越低,MMUMMU所所带来的成本因素基本上可以不用考来
5、的成本因素基本上可以不用考虑原来的嵌入式原来的嵌入式CPUCPU的速度的速度较慢,采用慢,采用MMUMMU通常会通常会造成造成对时间性能的不性能的不满足,而足,而现在在CPUCPU的速度的速度也越来越快,并且采用新技也越来越快,并且采用新技术后,已后,已经将将MMUMMU所所带来的来的时间代价代价降低到比降低到比较低的程度低的程度嵌入式嵌入式CPUCPU具有具有MMUMMU的功能已的功能已经是一种必要的是一种必要的趋势。信息与计算机学院由于采用由于采用MMUMMU后后对应用的运行模式甚至开用的运行模式甚至开发模模式都会有一些影响,大量嵌入式操作系式都会有一些影响,大量嵌入式操作系统都没都没有使
6、用有使用MMUMMU。对于安全性、可靠性要求高的于安全性、可靠性要求高的应用来用来讲如果不如果不采用采用MMUMMU,则几乎不可能达到几乎不可能达到应用的要求。用的要求。如果没有如果没有MMUMMU的功能,将无法防止程序的的功能,将无法防止程序的无意破坏无意破坏,无法截获各种非法的无法截获各种非法的访问异常访问异常,当然更不可能防止,当然更不可能防止应用程序的应用程序的蓄意破坏蓄意破坏了。了。采用采用MMUMMU后,便于发现更多的潜在问题,并且也便后,便于发现更多的潜在问题,并且也便于问题的定位。于问题的定位。未采用未采用MMUMMU时,内存模式一般都是平面模式,应用可以任时,内存模式一般都是
7、平面模式,应用可以任意访问任何内存区域、任何硬件设备,程序中出现非法访意访问任何内存区域、任何硬件设备,程序中出现非法访问时,开发人员是无从知晓的,也非常难于定位。问时,开发人员是无从知晓的,也非常难于定位。信息与计算机学院内存保护内存保护MMUMMU通常具有如下功能:通常具有如下功能:内存映射内存映射;检查逻辑地址是否在限定的地址范围限定的地址范围内,防止页面地址越界;检查对内存页面的访问是否违背特权信息特权信息,防止越权操作内存页面;在必要的时候(页面地址越界或是页面操作越权)产生异常异常。信息与计算机学院应用应用程序程序逻辑地址逻辑地址MMUMMU物理内存物理内存物理地址物理地址内存映射
8、把应用程序使用的地址集合(逻辑地址)翻内存映射把应用程序使用的地址集合(逻辑地址)翻译为实际的物理内存地址(物理地址)译为实际的物理内存地址(物理地址)信息与计算机学院内存保护内存保护大多数大多数处理器的典型理器的典型页面大小面大小为4K4K字字节,有些有些处理器也可能使用大于理器也可能使用大于4K4K字字节的的页面,面,但但页面大小面大小总是是2 2的的幂,以,以对发生在生在MMUMMU中中的地址映射行的地址映射行为流水流水线化。化。当当页放置到物理内存放置到物理内存时,页面将放置到面将放置到页框架(框架(page framepage frame)中。)中。页框架是物理内存的一部分,具有与页
9、面同样的大小,且开始地址为页面大小的整数倍。信息与计算机学院MMU包含着能够把逻辑地址映射为物理地址的表,称为页表页表。操作系统操作系统能够在需要的时候对这种映射关系进行改变:应用程序对内存的需求发生变化或是添加或删除应用程序的时候。在应用程序中的任务发生上下文切换时。信息与计算机学院页号页号逻辑地址逻辑地址偏移量偏移量页框架页框架物理地址物理地址偏移量偏移量页表基址寄存器页表基址寄存器特权和其特权和其他信息他信息页框架页框架页表页表基于页表的内存映射过程基于页表的内存映射过程 。信息与计算机学院每个内存每个内存页还具有一些特具有一些特权和状和状态信息。信息。MMU提供二进制位来标识每个页面的
10、特权或状态信息。这些二进制位用来确定页面中的内容是否:可被处理器指令所使用(执行特权)可被处理器指令所使用(执行特权)可写(写特权)可写(写特权)可读(读特权)可读(读特权)已被回写(脏位)已被回写(脏位)当前在物理内存中(有效位)当前在物理内存中(有效位)信息与计算机学院在操作系在操作系统的支持下,的支持下,MMUMMU还提供虚提供虚拟存存储功能,功能,即在任即在任务所需要的内存空所需要的内存空间超超过能能够从系从系统中中获得的物理内存空得的物理内存空间的情况下,也能的情况下,也能够得到正常运得到正常运行。行。当需要的页面被添加到逻辑地址空间时,任务对内存当需要的页面被添加到逻辑地址空间时,
11、任务对内存页面的合法访问,将自动访问到物理内存。页面的合法访问,将自动访问到物理内存。页面当前不在物理内存中时,将导致页面故障异常,页面当前不在物理内存中时,将导致页面故障异常,然后操作系统负责从后援存储器(如硬盘或是然后操作系统负责从后援存储器(如硬盘或是FLASHFLASH存存储设备)中获取需要的页面,并从产生储设备)中获取需要的页面,并从产生页面故障页面故障的机的机器指令处重新执行。器指令处重新执行。信息与计算机学院MMUMMU通常具有如下不同功能程度的使用方式:通常具有如下不同功能程度的使用方式:没有使用MMU,应用程序和系统程序能够对整个内存空间进行访问。采用该模式的系统比较简单、性
12、能也比较高,适合于程序简单、代码量小和实时性要求比较高的领域。大多数传统的嵌入式操作系统都采用该模式;0级,内存的平面使用模式级,内存的平面使用模式信息与计算机学院通常只是打开通常只是打开MMUMMU,并通过创建一个域,并通过创建一个域(domaindomain,为内存保护的基本单位,每个域,为内存保护的基本单位,每个域对应一个页表)的方式来使用内存,并对每次对应一个页表)的方式来使用内存,并对每次内存访问执行一些必要的地址转换操作。内存访问执行一些必要的地址转换操作。该模式仍然只是拥有该模式仍然只是拥有MMUMMU打开特性的平面内存打开特性的平面内存模式;模式;1级,处理具有级,处理具有MM
13、U和内存缓存的嵌入式处理器和内存缓存的嵌入式处理器信息与计算机学院MMUMMU被打开,且创建了被打开,且创建了静态的域静态的域(应用程序的(应用程序的逻辑地址同应用程序在物理内存中的物理地址逻辑地址同应用程序在物理内存中的物理地址之间的映射关系在系统运行前就已经确定),之间的映射关系在系统运行前就已经确定),以保护应用和操作系统在指针试图访问其他程以保护应用和操作系统在指针试图访问其他程序的地址空间时不会被非法操作。序的地址空间时不会被非法操作。通常使用消息传送机制实现数据在被通常使用消息传送机制实现数据在被MMUMMU保护保护起来的各个域之间的移动。起来的各个域之间的移动。2级,内存保护模式
14、级,内存保护模式信息与计算机学院通过操作系统使用通过操作系统使用CPU提供的内存映射机提供的内存映射机制,内存页被动态地分配、释放或是重新制,内存页被动态地分配、释放或是重新分配。分配。从内存映射到基于磁盘的虚拟内存页的过从内存映射到基于磁盘的虚拟内存页的过程是透明的。程是透明的。3级,虚拟内存使用模式级,虚拟内存使用模式信息与计算机学院0 0级模式模式为大多数大多数传统嵌入式嵌入式实时操作系操作系统的使用的使用模式,同模式,同1 1级模式一模式一样,都是内存的平面使用模式,都是内存的平面使用模式,不能不能实现内存的保内存的保护功能。功能。2 2级模式是目前大多数嵌入式模式是目前大多数嵌入式实
15、时操作系操作系统所采用所采用的内存管理模式,既能的内存管理模式,既能实现内存保内存保护功能,又能功能,又能通通过静静态域的使用方式保域的使用方式保证系系统的的实时特性。特性。3 3级模式适合于模式适合于应用比用比较复复杂、程序量比、程序量比较大,并大,并不要求不要求实时性的性的应用用领域。域。信息与计算机学院应用程序应用程序1应用程序应用程序2代码代码2数据数据24G0代码代码1数据数据14G0逻辑地址逻辑地址应用程序应用程序1的页表的页表应用程序应用程序2的页表的页表代码代码1数据数据1数据数据2代码代码2操作系统操作系统物理内存物理内存0基于静态域的基于静态域的MMUMMU使用方式使用方式
16、 也称为是一一对应的使用方式。也称为是一一对应的使用方式。在这种一一对应的使用方式中,应用程序的逻辑地址在这种一一对应的使用方式中,应用程序的逻辑地址同应用程序在物理内存中的物理地址相同,简化了内同应用程序在物理内存中的物理地址相同,简化了内存管理的实现方式。存管理的实现方式。信息与计算机学院在嵌入式实时操作系统中,在嵌入式实时操作系统中,MMUMMU通常被用通常被用来进行内存保护:来进行内存保护:实现操作系统与应用程序的隔离实现操作系统与应用程序的隔离应用程序和应用程序之间的隔离应用程序和应用程序之间的隔离防止应用程序破坏操作系统的代码、数据以及防止应用程序破坏操作系统的代码、数据以及应用程
17、序对硬件的直接访问。应用程序对硬件的直接访问。对于应用程序来讲,也可以防止别的应用程序对于应用程序来讲,也可以防止别的应用程序对自己的非法入侵,从而破坏应用程序自身的对自己的非法入侵,从而破坏应用程序自身的运行。运行。信息与计算机学院在内存保护方面,在内存保护方面,MMUMMU提供了以下措施:提供了以下措施:防止地址越界防止地址越界通过限长寄存器检查逻辑地址,确保应用程序只能通过限长寄存器检查逻辑地址,确保应用程序只能访问逻辑地址空间所对应的、限定的物理地址空间,访问逻辑地址空间所对应的、限定的物理地址空间,MMUMMU将在逻辑地址超越限长寄存器所限定的范围时将在逻辑地址超越限长寄存器所限定的
18、范围时产生异常;产生异常;防止操作越权防止操作越权根据内存页面的特权信息控制应用程序对内存页面根据内存页面的特权信息控制应用程序对内存页面的访问,如果对内存页面的访问违背了内存页面的的访问,如果对内存页面的访问违背了内存页面的特权信息,特权信息,MMUMMU将产生异常将产生异常。信息与计算机学院应用应用1 1应用应用2 2应用应用3 3操作系统操作系统简单的简单的MMUMMU保护模式保护模式 应用程序之间要通信就只能通过操作系统提供的通信服务,如:应用程序之间要通信就只能通过操作系统提供的通信服务,如:信号量、管道、消息、共享内存等,而不能直接访问彼此的地址信号量、管道、消息、共享内存等,而不
19、能直接访问彼此的地址空间。空间。MMUMMU通常还提供权限等级,不同的权限等级对硬件访问的权限不一通常还提供权限等级,不同的权限等级对硬件访问的权限不一样。操作系统一般运行在核心态,具有所有的特权,而应用则一样。操作系统一般运行在核心态,具有所有的特权,而应用则一般运行在用户态,具有一般权限,以防止应用程序的故意破坏。般运行在用户态,具有一般权限,以防止应用程序的故意破坏。信息与计算机学院嵌入式实时操作系统内核嵌入式实时操作系统内核共享库共享库任务任务 任务任务 信号量信号量任务任务信号量信号量堆堆堆堆堆堆共享数据共享数据域域基于域的内存管理方式基于域的内存管理方式 信息与计算机学院虚拟内存虚拟内存 为用户提供一种不受物理存储器结构为用户提供一种不受物理存储器结构和容量限制的存储管理技术,是桌面和容量限制的存储管理技术,是桌面/服服务器操作系统为在所有任务中使用有限物务器操作系统为在所有任务中使用有限物理内存的通常方法,每个任务从内存中获理内存的通常方法,每个任务从内存中获得一定数量的页面,并且,当前不访问的得一定数量的页面,并且,当前不访问的页面将被置换出去,为需要页面的其他任页面将被置换出去,为需要页面的其他任务腾出空间。务腾出空间。信息与计算机学院虚拟内存的概念图信息与计算机学院谢谢!
限制150内