1、 目目 录录 1 1 绪论绪论 1 1 1. 1 课题背景及目的 . 1 1.1.1 为什么要设计虚拟机 . 1 1.1.2 虚拟机反对派观点 . 1 1.2 国内外研究状况 2 1.3 课题研究方法 . 2 1.4 论文构成及研究内容 2 2 SVM 2 SVM 虚拟机设计虚拟机设计 3 3 2.1 运形时系统与虚拟机 3 2.2 SVM 虚拟机 3 2.3 SVM 虚拟机处理器设计 5 2.3.1 机器处理器设计 5 2.3.2 SVM 虚拟机处理器设计 . 6 2.4 SVM 内存分配 . 8 2.5 SVM 内存寻址 . 8 2.6 SVM 多字节存储方式 . 8 2.7 SVM 输入
2、输出 . 9 2.8 SVM 中断 10 2.9 SVM 汇编器 . 16 2.10 SVM 反汇编器 18 2.11 SVM 调试器 18 2.11.1 概述 . 18 2.11.2 调试技术 . 19 2.11.3 SVM 调试器的实现 19 2.12 建造运行时系统 20 2.13 SVM 虚拟机的扩展 . 20 3 3 SVM SVM 虚拟机运行时环境虚拟机运行时环境 2222 3.1SVM 执行方式 . 22 3.2 SVM 调试方式 23 4 4 程序设计处理程序设计处理 2727 4.1 程序设计中的宏处理 . 27 4.2 程序设计中的异常处理. 28 总总 结结 3131 致
3、致 谢谢 3333 参考文献参考文献 3434 第 1 页 1 绪论 1. 1 课题背景及目的课题背景及目的 1.1.1 为什么要设计虚拟机为什么要设计虚拟机 就软件工业的发展趋势而言,一方面是需要运行在多种计算机平台之上的实用系统 越来越多,另一方面是以网络为中心的计算情况越来越多,虚拟机也重新成为软件工业 的一个潮流。 基于单一操作系统的软件开发工具已经不能满足软件工程师的需要。 面对杂乱的信息系统和日新月异的技术发明,软件工程师们开始重新审视开发虚拟 机的优点。 编写虚拟机是软件开发项目的一种,它体现了一种使投资价值最大化的思路。为了 从资源方面的投资得到最大的回报,企业都希望自己花钱开
4、发出来的软件的使用期限能 够尽可能地长。把软件包从一种平台移植到另一种平台的工作需要花费不小的成本,而 且并不是所有的软件包都能够移植到所有的平台上去,软件包所能支持的平台种数是有 限度的。大量事实表明,软件移植工作往往会变成一场噩梦。 使用虚拟机就可以在一定程度上避免这类事情的发生。当遇到一种新硬件平台或者 新操作系统的时候,唯一需要移植的应用级软件就是虚拟机本身1。 1.1.2 虚拟机反对派观点虚拟机反对派观点 有不少人反对使用虚拟机,他们的观点有许多种,其中最主要的就是虚拟机会降低 程序的执行性能。他们认为,编译型语言如 C 语言是以计算机自身的机器码的 形式执行的,因此会执行得更快些。但这种说法并不一定正确。 纯粹的 C+代码并不一定比由虚拟机执行的字节码(byte code)更快。程序的执行 时间主要消耗在运行时库以及内核模式中断处理例程方面,只有当处理的代码是完全孤 立且没有调用任何用户库或系统调用时(因为程序要等待系统的响应)才能百分之百肯 定其机器码会执行得更快。 对于企业应用级系统,虚拟级在可移植方面的优势足