- 7
- 0
- 约3.09千字
- 约 7页
- 2018-11-08 发布于广东
- 举报
虚拟机PU平台的基本执行环境研究.doc
虚拟机CPU平台的基本执行环境研宄
虚拟机是指通过软件方式模拟出具有完 整计算机硬件系统功能的并运行在一个相对完全隔离 环境中的完整计算机系统。虚拟机就像一台真正的计
?机,它一样拥有自己的CPU、寄存器组、指令系统、
输入输出以及堆栈等等。它和真实的计算机一样接受 指令,执行指令并最终完成所规定的处理任务。虚拟 机最重要的优点就是实现程序的跨平台性,即可以在 不同的操作系统之间重复使用,这也是虚拟机被广泛 应用的重要原因。本文对虚拟机CPU平台的基本执行 环境进行了较深入的分析与研宄,分别阐述了 CPU平 台的基本执行环境,虚拟机的数据栈、计算栈、参照 栈的运行机制。
关键词虚拟机执行环境运行机制
TP312.2 :A 1674-098X (2015) 04 (a) -0000-00
虚拟机技术在现代社会有着广泛的应用范围,基 于虚拟机平台的软件具有很多优点,比如可移植性、 高效性、简洁性和安全性等等。可移植性既是通过采 用中间语言,使得一个程序能够在多个硬件平台或多
个不同操作系统上能正常、准确的执行。高效性既是 尽可以以牺牲本机代码的编译速度来调动执行引擎能 够更加优化的使用底层机器的特性来提高程序的执行 速度,确保软件开发具有更高的执行效率。简洁性既 是指所采用的中间代码通常比二进制代码具有更好的 可读性和压缩性。这个特性能更好的支持动态下载代 码并且非常适合一些内存紧缺的应用环境。安全性既 是相对于二进制指令来说,中间代码具有更强的类型 约束和语义配置操作,中间代码比二进制文件更能得 到运行时系统的强制执行。深入研究虚拟机基本执行 环境对于研发人员意义重大。
1运行时系统与虚拟机
计算机本身就是一个运行时系统,运行时系统是 很多计算机程序赖以执行的一个环境。运行时系统提 供了程序在执行时所需要的所有条件。比如运行时系 统为程序分配内存、加载应用程序、执行程序中的指 令、处理服务请求等等。
运行时系统的种类可以按不同的分类方式分为很 多种。按执行程序指令的基本方式可以把运行时系统 分为两大类。一类是以处理器本身的机器码为指令编 写程序,另一类是用机器指令编写程序。以处理器本 身的机器码为指令编写程序是指由计算机的操作系统 和处理器构成运行时系统,操作系统负责总体筹划, 而处理器用来执行程序的指令。也就是说操作系统定 义了一套完整的规范,而由CPU来执行这套规范。虚 拟机实际上是一整套规则,而不是单一用软件就能够 简单实现的,虚拟机的实现完全是按照一套严谨的规 范来定义的。虚拟机可以由任意一种程序设计语言来 实现,它可以实现在任意一种硬件平台上,但前提必 须是遵守它的规范。只要是遵守同一套规范的运行时 系统,你就可以不需要对它进行编译而直接能在其上 运行各种指令代码,这和它是一套软件模拟系统还是 一台真正的计算机没有关系。
2虚拟机的栈实现
2.1虚拟机数据栈的运行机制
堆栈有很多优点,例如高效率的函数调用,清晰 的递归调用,较小的上下文切换等。可以将虚拟机地 址空间最顶部的那个内存段空间设置为堆栈段,用来 支持以后所有的操作,所以建立一个堆栈是可行的。
AVM虚拟机启动运行,进行系统初始化的设置, 首先为堆栈类型的数据动态申请几段内存空间,这段 空间是虚拟机最核心的数据结构,它是由代码区、数 据栈、计算栈、函数运行栈等组成的一个系统。在虚 拟机中用来描述栈顶的一个元素是由计算栈和参照栈 结合起来完成的,计算栈和参照栈主要实现计算功能, 而数据栈则负责函数的局部变量和函数调用的运行环 境。数据栈(data-Stk)是用来实现过程调用的上下 文记录和切换,它的功能类似于活动记录,数据栈对 任何一个过程的调用都一样,都是分配该数据栈的一 个区域给该过程。每当有函数调用时,首先是压入一 帧,其次当函数调用结束后,该帧出栈,最后恢复虚 拟机的程序计数器。数据栈如果按区域划分可分为父 过程运行环境保存区、本过程局部变量区以及传入实 参区三个区域。
AVM虚拟机在运行时,会启动一个虚拟机实例, 首先向宿主操作系统申请分配内存,然后用分配到的 内存组成一个人工地址空间,这个空间用来提供给单 个应用程序来使用。这段地址空间在内存中可被划分 成堆栈段和代码段两个部分。首先,在虚拟机的初始 化过程中,为数据段和进程代码段建立映射,然后将 数据段和代码段的内容读入内存,这一工作是由虚拟 机系统的过程加载处理函数负责的。此外,凡是未被 赋初值的局部变量初始值都为零,这是因为虚拟机的 初始化会将数据堆栈段清零。代码段分为只读数据和 运行代码两个部分,在内存中,代码段的类型是只读
的,所以代码段绝对不会被改写,任何企图修改代码
段的指令都将会引发严重的错误。程序在执行过程中 除了有数据段和代码段的支持外,还要有动态环境的 支持,堆栈就是其中
您可能关注的文档
最近下载
- Ф90橡胶冷喂料挤出机毕业设计说明书.docx VIP
- 《行测》《行测》题库型介绍(基础题).docx VIP
- 北师大五年级下册全册数学教案.docx VIP
- 石蜡制备高碳醇工艺条件研究.pdf VIP
- 2025届宁夏回族自治区吴忠市盐池县高三下学期第一次模拟考试物理试卷.pdf VIP
- 浙江省中小学正高级教师职称评审表2017.pdf VIP
- 80辛集互联网搜索引擎在成功抓获漂白身份潜逃十二年绑架逃犯中的具体应用3542.pdf VIP
- 《故宫IP联名文创产品开发与销售总结》_国潮文创产品经理.docx
- 人教版(2019)必修第一册 Unit 3 Sports and Fitness Reading and thinking Living Legends 教学设计.pdf VIP
- 专题01+完形填空之综合解题技巧(复习课件)(全国通用)2026年高考英语二轮复习讲练测.pptx VIP
原创力文档

文档评论(0)