中国科学院软件研究所机构知识库
Advanced  
ISCAS OpenIR  > 中科院软件所  > 中科院软件所
题名:
Java虚拟机技术的研究与实现
作者: 丁宇新
答辩日期: 1999
专业: 计算机软件与理论
授予单位: 中国科学院软件研究所
授予地点: 中国科学院软件研究所
学位: 博士
关键词: 虚拟机 ; Java无用单元回收 ; 线程 ; 解释 ; 及时编译 ; 异常处理 ; 中文化
摘要: Java虚拟机技术是Java平台的核心技术,Java语言之所以实现了平台中立,其根本原因在于各操作系统平台都配有Java虚拟机,虚拟机屏蔽了不同软硬平台之间的差异,它负责解释或及时编译执行Java字节码文件。Java虚拟机技术涉及的范围很广,其中包括解释技术、及时编译技术、异常处理技术、多线程技术、内存管理与无用单元的回收技术等。本论文的背景是开发基于国产开放系统平台COSA/COSIX的Java虚拟机。论文在第一章给出虚拟机构的综述,其后的各章结合我们在开发过程中的具体实践对虚拟机的关键技术进行了深入的分析,并就其设计与实现提出相应的改进方案。论文的第一章介绍了虚拟机的产生及其发展、Java虚拟机的体系结构及其设计、及目前Java虚拟机中所采用的各种技术,在本章我们所讨论的虚拟机包括Sun、Intel、IBM等公司的产品。论文在第二章主要讨化了类在内存中的建立过程。在这一章我们先简单介绍了Java类文件的格式,接着就类在内存中的数据结构及类的加载与解析过程进行了详细的讨论,最后讨论了界面在内存中的存储结构。第三章讲述Java虚拟机多线程的设计与实现,本章首先概要介绍了程序设计语言的并发及Java语言的并发机制,之后详细介绍了国产开放系统平台Java虚拟机多线程的设计与实现,其中包括线程的创建与运行状态分析、线程库函数的建立、多线程的调度及同步。在线程调度上,我们采用了带有独立队列的静态级别轮巡调度,独立队列无固定优称级,该队列中的线程与当前最高优先权队列中的线程被调度程序分时调度,该设计较好地解决了独立循环线路的调度问题。对于线程的同步,我们提出了哈希混合锁的对象设计方案,我们认为这是基于锁的执行效率与空间分配考虑的一个可行的折中方案。实验证明我们的方案是可行的,其具有加锁、释锁效率高及节省空间等特点。第四章对虚拟机中无用单元的回收算法的设计进行了详细讨论。本章先简单介绍了无用单元回收算法的发展情况,及目前Java虚拟机中无用单元回收算法的设计,之后结合Java虚拟机的特点,提出了Java虚拟机无用单元精确回收过程中内存数据类型的标记算法,本章还简要讨论了Java虚拟机增量式回收算法中多线程的具体设计,最后用实验验证了我们算法的可行性。第五章结合国产操作系统平台(COSA/COSIX)Java解释器与及时编译器的设计与实现详细介绍了Java的运行技术,其中包括解释及其优化技术、及时编译及其优化技术、Java动态编译技术、Java静态编译技术及JavaCPU。在解释器的设计上我们提出了组合伪指令,提高了解释执行的效率。在设计及时编译器时我们采用了的指令静态模拟与宏替换相结合的编译方法,及时编译过程中指令属性四元组的建立提高了程序的可移植性。第六章介绍了程序设计语言异常处理机制的设计及其发展要概况,着重论述了Java语言的异常处理机制,最后结合国产开放系统平台COSIX虚拟机异常处理的设计,深入探讨了在解释执行及及时编译执行两种不同的情况下,异常处理设计与实现的关键技术。第七章讨论了Java中文化技术。本章在深入分析Java内部编码机制的基础上,指出了现存Java开发工具中中文化存在的问题,并提出了解决方案。最后一章对我们工作中的不足及下一阶段的任务进行了讨论。
英文摘要: Java virtual machine (JVM) is the core of Java architecture, Each operating system has its own JVM, the JVM hide the difference of different architecture, so Java programs can be executed on them. JVM executes Java program by an interpreter or a just-in-time compiler. The technology of JVM is involved with several important technologies, which includes interpreting, just-in-time compiling, exception handling, multi-thread supporting, garbage collection. The background of my dissertation is developing a Java virtual machine for Chinese opening system COSA/COSIX. In the first chapter the overview of Java virtual machine is given, in the following chapters the key technologies of Java virtual machine are discussed in deep combined with my practice in the development procedure and the corresponding improved measures are also presented. The first chapter introduces the history and development of JVM. Then JVM architecture and its design are discussed. At last key technologies which are used in JVMs developed by Sun, Intel, and IBM are given. The second chapter mainly discuses the building of class at running time. The building procedure of class includes three phases, which are loading, linking, and initializing and each of them is discussed in detail. In this chapter firstly the format of Java class file is simply introduced, and then the data structure and the building procedure of class is simply introduced, and then the data structure and the building procedure of class is given, at last how to build Java interface is discussed. The third chapter discusses the design and implementation of Java multi-thread. In this chapter the design issues for language support for concurrency and the Java concurrence mechanism is introduced. The design and implementation of thread for COSIX architecture is presented, in which we mainly discussed the building of thread, the changing of thread state, the building of thread library, thread scheduling and synchronization. In this chapter a new thread scheduling algorithm, named Preemptive Round-Robin scheduling with a Free Queue, is presented based on the traditional Preemptive Round-Robin scheduling algorithm. For improving the efficiency of thread synchronization a new design for object lock is presented, we called it Mixed Hash Object Lock, this design is a tradeoff between the lock efficiency and its space. The experiment proved that the design is feasible. Compared with traditional design the efficiency for locking and unlocking is high and the space allocated to lock is small. The fourth chapter discusses the design and implementation of garbage collection. In this chapter the development of garbage collection and different garbage collection algorithms are introduced. The garbage collection algorithm used in popular Java virtual machines are given. Combined with the property of Java virtual machine, an algorithm for marking variable's data type is presented. In this paper we also discussed the multi-thread design for incremental garbage collection. In this chapter a new memory structure for objects is presented. In each object space the object reference fields and the primitive fields are stored separately, this structure can speed garbage collector to scan the objects' space to find non-usable objects. In the marking algorithm staticly marking and dynamicly tracing variables are used to decide the variables' data type in running time. This algorithm is simple and practical, it solves the problem of control path dependency and control point dependency of variables' data type. Based on it a precise incremental garbage collection algorithm is implemented. The experiment proved compared with traditional conservative garbage collection algorithm the space reclaimed by our algorithm is increased and the time cost is acceptable.
语种: 中文
内容类型: 学位论文
URI标识: http://ir.iscas.ac.cn/handle/311060/7126
Appears in Collections:中科院软件所

Files in This Item:
File Name/ File Size Content Type Version Access License
LW002847.pdf(2686KB)----限制开放-- 联系获取全文

Recommended Citation:
丁宇新. Java虚拟机技术的研究与实现[D]. 中国科学院软件研究所. 中国科学院软件研究所. 1999-01-01.
Service
Recommend this item
Sava as my favorate item
Show this item's statistics
Export Endnote File
Google Scholar
Similar articles in Google Scholar
[丁宇新]'s Articles
CSDL cross search
Similar articles in CSDL Cross Search
[丁宇新]‘s Articles
Related Copyright Policies
Null
Social Bookmarking
Add to CiteULike Add to Connotea Add to Del.icio.us Add to Digg Add to Reddit
所有评论 (0)
暂无评论
 
评注功能仅针对注册用户开放,请您登录
您对该条目有什么异议,请填写以下表单,管理员会尽快联系您。
内 容:
Email:  *
单位:
验证码:   刷新
您在IR的使用过程中有什么好的想法或者建议可以反馈给我们。
标 题:
 *
内 容:
Email:  *
验证码:   刷新

Items in IR are protected by copyright, with all rights reserved, unless otherwise indicated.

 

 

Valid XHTML 1.0!
Copyright © 2007-2017  中国科学院软件研究所 - Feedback
Powered by CSpace