虚拟机cpu平台体系结构与内存机制研究

虚拟机cpu平台体系结构与内存机制研究

ID:28315417

大小:63.00 KB

页数:6页

时间:2018-12-09

虚拟机cpu平台体系结构与内存机制研究_第1页
虚拟机cpu平台体系结构与内存机制研究_第2页
虚拟机cpu平台体系结构与内存机制研究_第3页
虚拟机cpu平台体系结构与内存机制研究_第4页
虚拟机cpu平台体系结构与内存机制研究_第5页
资源描述:

《虚拟机cpu平台体系结构与内存机制研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、虚拟机CPU平台体系结构与内存机制研究摘要:本文对虚拟机的体系结构与内存机制进行了整体的设计与分析,阐述了虚拟机CPU平台的体系结构,在明确了运行时系统和应用程序级上的内存管理机制的基础上,对动态内存管理机制进行了分析与研究,并对目前主流的虚拟机内存管理技术进行了较深入的分析与研究,选取适合于XVA虚拟机的内存管理机制,并用C语言实现了一个基于Windows平台的面向科学计算的小型虚拟机软件系统XVA,是为了给学生提供一个虚拟实验环境,同时让学生更好的了解、掌握虚拟机的原理及其基本应用。关键词:

2、CPU体系结构;内存管理技术;XVA虚拟机中图分类号:TP2771虚拟机的体系结构的设计要设计XVA虚拟机的基本执行环境,就必须对虚拟机的体系结构进行一下整体的分析与设计,利用资源管理器的技术对虚拟机的体系结构做出组织和规划是很方便的。研究XVA虚拟机CPU环境平台所拥有的基本组成部分和虚拟机对这些逻辑部件的管理方法,对XVA虚拟机的具体实现有着十分重要的作用。本文所设计的XVA虚拟机软件系统的组成结构可以分为以下几大部分:寄存器组、数据堆、虚拟机运行期间的数据区域、数据栈、计算栈、参照栈、过程

3、装载器系统、本地方法接口、执行引擎、本地动态链接库等。虚拟机的体系结构具体表示如下图:图1T虚拟机的体系结构图1.1CPU体系结构分析虚拟机运行期间的数据区域包括虚拟机的寄存器组和所有栈区。它是虚拟机的核心,也就是虚拟机的内存。虚拟机在运行期间会将所有待保存的程序和数据统一分配到几个数据区域来进行管理。因为内存是所有应用程序运行的基础,因此这几部分数据区域在虚拟机的设计与实现中有着举足轻重的作用。其中寄存器组和很多CPU中的寄存器功能是一样的,主要用来设置机器运行期间的状态。栈区包括很多栈,像数

4、据栈、数据堆、计算栈、参照栈等等,这些栈都是由许多栈帧组成的,每个栈帧都代表了不同的运行状态。当应用程序执行一个过程调用时,就是将一个新的栈帧压入到栈中的过程,而过程调用结束后,这个栈帧将从栈中弹出并释放掉。在虚拟机的实现过程中,过程装载系统的设计有着很重要的作用,它主要负责查找应用程序并且将应用程序装载到内存中去。一般来说,在设计虚拟机软件系统的时候,都会设有一个过程装载器系统,在程序执行期间,系统会根据给定的调用过程名来装载应用程序。本地方法接口的定义是当一个进程调用本地程序和数据的时侯,这

5、个进程就基本上摆脱了虚拟机在结构方面和安全限制方面对它的限制,这时这个进程可以使用本地处理器进行系统调用,也可以使用数据栈、数据堆等进行系统调用,它还可以访问虚拟机在运行期间的所有数据区域。执行引擎对每个设计的虚拟机软件系统来说也是一个必须有的逻辑部件,它的主要功能是执行指令,执行那些在过程装载系统中的指令。在虚拟机的体系结构中,执行引擎的位置很关键,它正处于虚拟机的中间部位。在定义虚拟机的规范中,执行引擎的行为是由指令集所决定的。虚拟机大约支持200多个字节码。每个字节码指令的功能是不一样的,

6、每条字节码指令都要执行类似于加减乘除、子程序转移等这样最基本的运算。指令集中指令的组成部分是操作数和操作符,操作数是程序执行过程中所需的数据或参数,操作符具体指定要执行什么样的操作。指令集实际上就是汇编语言,它的功能和汇编语言是一样的。2虚拟机的内存管理技术XVA虚拟机的最基本的设计目标就是可移植性。为了达到虚拟机的可移植性,在程序设计过程中考虑通过相关的软件来实现内存保护机制。在设计XVA虚拟机时,将XVA可执行文件里的数值编码设置为降序格式,之所以这样做是为了使XVA虚拟机中的二进制代码能够

7、在不同的硬件平台上运行。虚拟机软件系统XVA在启动时首先会向操作系统申请内存分配,然后用分配到的内存来组成一个人工地址空间。这个人工地址空间又被分为一个正文段、一个堆栈段和一个数据堆段,这三个内存段都是为单个XVA应用程序来使用的。如下图所示:图1-2XVA地址空间图XVA的地址空间是从正文段开始一直到堆栈段的结束。堆栈段和数据堆段的长度是随时变化的,而正文段的长度在程序开始编译过程中就已经确定下来了。XVA虚拟机在实际启动之前,内存段中的地址是不固定的。通过XVA虚拟机的命令行参数,堆栈和数据

8、堆的长度可以设置为一个正值。XVA虚拟机的内存地址空间是从000H开始,途中经过正文段、数据堆段,一直到堆栈段的结束。在这段内存地址空间中所有的信息都将在这里进行统一组织和管理。在程序执行过程中,汇编器对源程序的处理过程是这样的,首先将机器指令装入到内存单元中去,这些程序代码统一放在内存中的低地址空间里,内存的剩余空间由用户随意进行分配。这个剩余内存空间通常被划分为数据堆和堆栈两个区域。堆栈和数据堆的长度一般都是通过XVA虚拟机的命令行参数来设置的一个正数,并且它们的长度在程序执行过程中是可变的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。