基于ARM的嵌入式Java虚拟机研究与实现

基于ARM的嵌入式Java虚拟机研究与实现

论文摘要

Java编程语言是继C和C++之后的又一种流行的商业软件开发语言,己被广泛的应用于各种开发领域。Java的体系结构能帮助程序员适应不断发展的硬件环境,这归功于Java虚拟机提供的能力——安全性、平台无关性和网络移动性。正是基于这些优点,Java虚拟机在各种平台的开发中显得越来越重要。而如何获得一个性能稳定、功能完善的Java虚拟机,也就成为了每个平台开发商追求的目标。Jikes RVM这个开源的Java虚拟机及时出现为苦苦追求性能稳定,功能完善的Java虚拟机的人们带来了福音。Jikes RVM不仅本身集成了最新的虚拟机技术,更重要的是它提供了一个灵活的测试平台,可以在这个测试平台上建立新的虚拟机技术的原型和试验各种各样的设计方案。目前,在嵌入式开发领域中对嵌入式Java虚拟机的研究正处于高速发展的时期,各种嵌入式Java虚拟机层出不穷,然而像Jikes RVM那样本身既可作为优秀的虚拟机又可以作为虚拟机技术的研究平台的虚拟机几乎没有。鉴于以上情况,本文在对Jikes RVM虚拟机的设计架构和在PowerPC/Linux上的实现进行深入研究和剖析的基础上,提出了基于ARM/ARMLiux的嵌入式Jikes RVM的设计和实现。在实现上分为两个大的阶段,第一阶段实现Jikes RVM的原型,第二阶段对原型进行完善和优化。文中着重论述了在实现第一阶段目标过程中遇到的问题和解决办法。基于ARM/ARMLinux实现Jikes RVM不仅能为JikesRVM在其它嵌入式平台上移植提供重要的价值参考,更重要的是能提供一个针对ARM系列构架下嵌入式Java虚拟机技术的研究平台。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 JAVA的历史
  • 1.2 JAVA虚拟机研究现状
  • 1.3 论文组织
  • 第二章 JAVA 虚拟机规范
  • 2.1 JAVA虚拟机介绍
  • 2.1.1 程序计数器
  • 2.1.2 Java 栈
  • 2.1.3 堆
  • 2.1.4 本地方法栈
  • 2.1.5 执行引擎
  • 2.1.6 JNI 及其原理
  • 2.2 JAVA代码的运行过程
  • 2.3 本章小结
  • 第三章 JIKESRVM 的设计架构
  • 3.1 类模型及内存分配
  • 3.1.1 JikesRVM 中对象的访问
  • 3.1.2 线程的栈帧
  • 3.2 核心运行时子系统
  • 3.2.1 异常
  • 3.2.2 动态类装载
  • 3.2.3 输入输出系统
  • 3.2.4 反射
  • 3.3 线程和同步子系统
  • 3.3.1 锁
  • 3.3.2 线程调度
  • 3.3.3 管程
  • 3.4 内存管理子系统
  • 3.4.1 并发对象分配
  • 3.4.2 从变化到回收
  • 3.4.3 并行垃圾回收
  • 3.4.4 性能问题
  • 3.5 编译子系统
  • 3.6 JIKESRVM启动和MAGIC调用
  • 3.6.1 启动
  • 3.6.2 MAGIC 调用
  • 3.7 本章小结
  • 第四章 JIKES RVM 的动态优化编译器
  • 4.1 从字节码到中间表示(INTERMEDIATE REPRESENTATION)
  • 4.2 高级优化
  • 4.3 低级优化
  • 4.4 指令选择和特定于机器的优化
  • 4.5 优化的级别
  • 4.6 操作的形态
  • 4.7 本章小结
  • 第五章 项目分析
  • 5.1 业内形势
  • 5.1.1 嵌入式Linux 大势所趋
  • 5.1.2 广泛的ARM 应用
  • 5.2 目标平台简介
  • 5.2.1 ARM 处理器结构简介
  • 5.2.2 ARMLinux 简介
  • 5.3 实现规划
  • 5.3.1 实现目标
  • 5.3.2 找到工作核心
  • 5.4 JIKES RVM编译器模块分析
  • 5.5 本章小结
  • 第六章 设计与实现
  • 6.1 设计策略
  • 6.1.1 借鉴PowerPC 的实现
  • 6.1.2 尽量减少系统改动
  • 6.2 JIKES RVM的约定
  • 6.2.1 寄存器分类
  • 6.2.2 栈约定
  • 6.3 对寄存器的分配
  • 6.4 同步机制的实现
  • 6.4.1 Magic 准备和尝试
  • Processor.vpStatus'>6.4.2 保护VMProcessor.vpStatus
  • 6.5 应用的二进制接口
  • 6.6 大端、小端问题
  • 6.6.1 字节的大端、小端的问题
  • 6.6.2 字的大端小段问题
  • 6.7 寄存器0
  • 6.8 定长的偏移量和操作数问题
  • 6.9 系统陷阱实现
  • 6.10 浮点数处理
  • 6.11 本章小结
  • 第七章 工程经验
  • 7.1 本项目的阶段目标设定
  • 7.2 异常来驱动修改
  • 7.3 调试JIKES RVM
  • 7.4 跨平台编译
  • 7.5 本章小结
  • 第八章 结论和展望
  • 8.1 结论
  • 8.2 后续工作
  • 8.2.1 工程工作
  • 8.2.2 研究方面工作
  • 参考文献
  • 致谢
  • 附录:测试结果
  • 附录一:字节码测试结果
  • 附录二:汇编指令覆盖情况
  • 个人简历
  • 攻读硕士学位期间研究成果
  • 一、科研项目
  • 二、发表论文
  • 相关论文文献

    标签:;  ;  

    基于ARM的嵌入式Java虚拟机研究与实现
    下载Doc文档

    猜你喜欢