APP下载

嵌入式软件虚拟内存管理平台的实现研究

2021-05-07王晓航许亚星李兴智

中国信息化 2021年4期
关键词:嵌入式软件嵌入式进程

王晓航 许亚星 李兴智

虚拟内存管理平台在操作系统功能实现过程中具有极为重要的价值,由于嵌入式设备与应用具有的作用特性,在实际应用过程中必须具备一种与其性能需求相对应的虚拟内存管理机制,源的有限性及嵌入式应用实施性和可移植性的特点,必须具有一种能满足嵌入式设备与应用的虚拟内存管理机制,因此要从设计与思想两个角度开展,以便于可实现。

一、引言

嵌入式软件环境下需要加强对操作系统的虚拟内存管理,目前被广泛应用的操作系统内存管理极为原始,大多数嵌入式软件系统都没有集成对应的存储设备,伴随着嵌入式内存管理技术逐步走向成熟,嵌入式软件技术被广泛应用多种技术领域,在应用过程中逐步加入内存管理技术,不仅整体运行环境能得到优化,操作系统的性能也逐步得到提升。在嵌入式操作系统中加入虚拟内存管理技术,能很好提升操作系统的管理效能和运行可靠性。根据嵌入式系统的性能特点,剖析操作系统的虚拟内存机制,找到一种能满足嵌入式环境下开展虚拟内存管理的实施方法。虚拟内存管理平台与计算机操作系统相互脱离,并且是独立的管理平台,保障功能的可实现。

二、设计宗旨

虚拟内存机制在嵌入式环境中对操作系统的运行有着极为重要的支持作用,能够在运行过程中保持较大的运行空间对系统的运行保持支持,可以有效对操作系统的运行进程以有效的支持,保护操作系统的运行进程,保持内存映射和共享虚拟内存。嵌入式软件体系在运行过程中缺乏必要的存储设备,并且操作系統的内涵与体积都较小,能够使内存空间长期保持,是否连带着硬件存储设备就显得不再重要,系统性能和运行效率不会有太大的影响。同时,嵌入式软件系统在运行过程中引入虚拟内存管理的请求很大程度上会造成操作系统延时,会影响操作系统的运行效率,根据嵌入式系统的特点:造成问题的主要原因:页面因调度造成系统反应延时,系统响应的确定性降低;操作系统的运行进程被频繁调用,影响了其他进程的调用,其他进程的反应时间被延长。综合上述造成问题的两种原因,一般来说嵌入式系统的虚拟内存管理都不提供对请求分页机制的支持。因此在运用嵌入式软件系统过程要具备三点功能:一是内存能被有效映射;二是对嵌入式软件系统产生的进程有效保护;三是对虚拟内存资源实现高效共享。虚拟内存管理平台的实现还依赖于存储设备的支持,不同种类处理器的虚拟内存的实现方式有着不同,为使虚拟内存管理平台的功能得到全面实现,要在设计过程中屏蔽不同处理器的差异,要在上层组织层面实现上设置统一的标准化接口,操作规范也要实现标准化,实现有效的交互共享。

(一)内存映射

在嵌入式环境中,操作系统的内存映射是虚拟空间到物理空间形成完善的过程,内存映射的存在是虚拟内存管理平台构建的基础,虚拟内存机制诸多功能的实现都需要内存映射的支持,内存映射的实现也和操作系统的内置存储设备有关。从功能实现角度来看,内存映射实现的过程就是虚拟地址到物理地址转换的过程,虚拟地址与物理地址也要一一对应,内存映射的最终获得也要与虚拟地址相对应。由于计算机操作系统的存储地址以页变换为主,内存映射产生的最小的变换单位也是页,虚拟空间与物理空间开始的地址也以页的方式完成,形成的映射关系也是映射关系。

(二)页访问属性

在嵌入式软件环境中,操作系统的存储设备提供了多种类的访问属性组合。每一种页的访问属性组合要实现的功能与访问目标都有着差异。为了保持系统页属性组合的合理性,要对每种页的属性组合合理规划,是否可写、是否可读、是否存在、是否达到功能目标等。如果页的属性组合可Cache,在可Cache的情况下进行操作要区分页的属性组合是否具有全局属性,能否覆盖到全局代码和程序,是否是透写、是否是回写等。在实践过程中,根据页的属性访问组合也可以有效完成一些系统设置,可以快速启动内存保护功能,实现对闪存的保护等。同时,页的属性组合也能有效提升操作系统的安全性、可靠性,与内存映射具有相同的作用,能够根据虚拟地址快速查找物理地址,根据地址转换表的类目设置确定详细的无理地址,帮助系统进程快速写入。

(三)进程保护和共享虚拟内存

虚拟内存上下文与任务上下文在结构和性能上有着本质的差异,二者在实现和功能目标上都有着不同,在实际执行过程中,为了对操作系统各程序的运行进程实现高效管理,需要对各个程序的进程实现统筹,因为每个程序会存储在大小适中的虚拟空间中,对于虚拟内存的有效管理是虚拟内存上下文要做好的重要任务。让虚拟内存管理更加便捷,对虚拟内存空间要合理划分,要划分为全局虚拟内存存储区域和私有内存区域,对于一些代码、访问对象和信号量要进行全局的虚拟内存管理,系统的运行程序也要置放在全局虚拟内存管理体系中,既要合理区分虚拟内存管理对象,也要将不同对象存储在合适的虚拟内存区域,保障虚拟内存资源的有效共享。

三、虚拟内存管理功能的实现

(一)层次结构

虚拟内存管理平台应具有一定的层次结构,要考虑到操作系统的特点,设置不同的功能层,要考虑到运行环境的特点,设置处理器无关层和处理器有关层,通过两个功能层的实现虚拟内存管理,处理器无关层需要单独设置,与处理器无关层互相区分开。处理器有关层和处理器无关层之间要设置接口函数列表、属性掩码转换表用以数据交互。处理器有关层要有ARM、PPC、X86。处理器有关层和处理器无关层之间的接口函数列表、属性掩码转换表用以两个结构层之间的通信,接口函数列表完成MMU基本功能的函数集合,由相关层填写并传递给无关层。属性转换表将无关层属性转换成相关层属性完成转换页的属性设置。相关层与无关层的掩码值转换由掩码转换表完成。

(二)属性掩码转换表的功能实现

在虚拟内存管理过程中,无关层与上层在对一些程序进程进行处理的时候,要有页码属性和掩码组合的支持,页属性只有经过掩码转换表的处理才能转换为可供处理器识读和判别的页属性和掩码。页属性掩码转换表需要在页属性的基础上进行构建,也需要掩码映射表的配合,处理器相关层需要定义页属性和掩码转换表,页属性结构和掩码转换表的表项结构要符合处理器相关层的结构。

(三)虚拟内存上下文的实现

通常情况下,嵌入式处理器会通过多级地址完成,辅助处理器转换就需要地址转换表配合,先通过系统寄存器获得第一级地址,根据第一级地址和虚拟地址快速查询其他几级地址,进而快速获得下几级地址的物理地址。通过多级的地址转换,虚拟空间转换表对应所有虚拟地址的虚拟页,地址转换表中涵盖的所有类目就包括所有虚拟页总和。因此,在程序运行进程的交互切换中,程序进程具有的虚拟内存上下文在换出与换入过程中要保持一致性,要形成线性特点,通过对活跃的程序进程虚拟内存上下文的调用设置标准的函数接口,使程序进程在切换过程中,其虚拟内存上下文与任务上下文保持一直。

四、结语

本文探究了一种新型嵌入式软件虚拟内存管理平台,针对嵌入式环境及软件体系的特点对虚拟内存管理问题进行剖析,并提出了新的解决方案,通过虚拟内存管理平台的搭建使相关层屏蔽不同处理器的实现差异,借助页属性组合和多种标准化的函数接口实现高效地虚拟内存管理,达到既定的虚拟内存管理优化目标。

作者单位:中国航空工业集团公司西安航空计算技术研究所

猜你喜欢

嵌入式软件嵌入式进程
基于ARM7TDMI架构的嵌入式软件逆向工程分析方法
Dalvik虚拟机进程模型研究
浅析嵌入式软件技术的现状与发展动向
快速杀掉顽固进程
不留死角 全方位监控系统
基于模型检查的嵌入式软件构件化分析与验证
嵌入式软件在计算机软件开发过程中的运用
中外民主法制进程专题复习
嵌入式LINUX操作系统的研究
嵌入式组件技术的研究及应用