论文部分内容阅读
随着网络技术的迅速发展,人们对普适计算的需求越来越高。传统的操作系统加中间件的方式已经不能满足普适计算的需求。普适计算需要既具有平台无关性又具有高安全性的新型操作系统。利用Java语言来开发操作系统不仅可以实现平台无关性,而且可以解决缓冲区溢出等安全问题。但是Java操作系统为我们带来优势的同时,也带来了许多挑战。本文分别针对Java操作系统的体系结构设计、Java对象行为规律、全系统垃圾收集算法以及Java操作系统的实现技术展开深入研究。体系结构的设计是操作系统技术的基础。本文结合Java语言的特点,研究了Java操作系统的体系结构设计技术。在新的体系结构下,研究了以JTOC(Java Table of Contents)为基础的进程软隔离技术,通过确定进程的“内存边界”和“接口边界”来实现进程间的隔离。提出Java操作系统需要将垃圾收集技术和系统的存储管理相结合实现全系统的垃圾收集技术,从而实现安全高效自动的内存管理。Java对象生命行为规律可以为垃圾收集算法的设计提供重要依据,但目前对Java运行时程序行为的分析还是基于10多年前的统计数据,由于当时的软硬件环境和现在差别较大,所以前人的分析数据已经不能满足需求。本文设计实现了Java对象生命行为的追踪统计框架和E-Merlin程序精确追踪算法,实现了对象生命行为的追踪。应用此框架对SPECjvm98中的测试程序进行追踪后,通过对追踪结果进行解析和统计发现:1)Java对象几乎平均分布在5个范围之内,每类对象中,边界对象占绝大多数;2)Java对象在内存中的组织类似一个深度很浅的大胖树,在根下,挂了很多小的Java对象簇,而且对象聚集成簇的现象非常普遍。目前的垃圾收集算法都是针对应用进程设计的,如果直接作为系统的垃圾收集算法,由于不能和系统的内存管理相配合,所以性能低下。本文在深入研究了经典垃圾收集算法(引用计数、标记清扫、半区复制和分代算法)和新型垃圾收集算法(火车算法,Mark-Copy算法)原理的基础上,基于Mark-Copy算法,利用系统内存管理机制和Java对象的内存行为规律,设计实现了全系统垃圾收集算法——FSMC(Full System Mark-Copy)。经过测试,FSMC算法相对于Mark-Copy算法节省了20%以上的时间,取得了较好的效果。本文基于X86平台设计实现了Junicorn原型系统。Junicorn系统的硬件抽象层采用C和汇编语言实现,完成系统的引导和硬件设备的初始化并对上层提供基本的硬件控制与中断处理服务。微内核层基于JikesRVM实现了动态编译引擎,基于分代式垃圾收集算法实现了系统垃圾收集器,并设计了中断异常服务框架,目前可以处理X86中的大多数异常(如缺页异常,除法异常等),提供了时钟中断和键盘中断处理服务。目前Junicron支持键盘和显示器两种设备,可以在华硕EPC上运行SPECjvm98中的测试程序。