一个Java虚拟机软实时垃圾收集器的设计与实现

来源 :北京大学 | 被引量 : 0次 | 上传用户:btmax22
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在实时系统中,每个任务都应在某种程度上满足时间约束的限制,任务的正确性不仅依赖于其计算结果,还依赖于这个结果产生的时间。此类系统中应用程序的执行时间应当是确定的,以此保证整个系统的可预测性。   如今,Java体系结构以其良好的网络移动性,广泛的跨平台能力,以及快速开发、快速上市的优势,在桌面及服务器领域取得了很大的成功。但是,Java虚拟机(JVM)中通常采用的垃圾收集(GC)技术,却严重妨碍了Java在实时嵌入式领域的应用。传统的垃圾收集器工作时,会要求系统暂停所有其它线程的执行,这种暂停发生的时刻和持续的时间都是不确定的,使得系统的可预测性受到了严重的破坏。   为解决这一问题,Java标准制定组织(JCP)发布了实时Java规范(RTSJ)。RTSJ规定了一套内存模型,可以让程序员写出无需垃圾收集的代码。然而,这套模型中的对象间引用规则过于复杂,为应用开发者增添了不必要的负担。因此,大多数商业实时Java虚拟机提供了自己的实时垃圾收集器(RTGC)。   以实时垃圾收集器为软实时应用提供支持,可以减轻软实时程序员手动管理内存的负担,发挥Java快速上市的优势。本文的主要工作是设计并实现了一个支持软实时约束的垃圾收集器。该收集器以双空间拷贝(Two-space copying)算法为基础,采用增量式的工作方式,分散的完成收集任务;该收集器采用了基于工作(work-based)的调度方式,将收集增量附加在了内存分配操作中,并通过读屏障(read barrier)保证了增量工作中不会有活对象丢失。   本文基于Apache Harmony开源JVM实现了该实时垃圾收集器。首先,本文介绍了Harmony虚拟机核心与其垃圾收集器交互的接口,分析了HarmonyGCv4.1的代码,理清了该收集器使用的主要数据结构。在此基础上,移除了Harmony虚拟机中现有的垃圾收集器,并将本文的收集器植入其中。经测试,新的实时垃圾收集器表现良好,收集暂停时间明显下降,运行单线程程序时对应用的干扰显著降低。不过,由于Harmony目前不支持线程的优先级抢占调度,多线程应用程序的测试结果尚不能使人十分满意。   目前,本文的实时垃圾收集器暂不支持终结化(Finalization)和弱引用(WeakReferences),进一步的性能提高、功能完善将在后续工作中进行。
其他文献
随着信息技术的发展和计算机技术的普及,互联网逐渐成为儿童生活中的一部分,但目前培养儿童创造力的网络软件很少。讲故事对提高儿童创造力起着非常大的作用,但是现有儿童网络讲
在约束满足问题中,给定一组变元和一组约束条件,求变元的一组赋值来满足所有的约束条件。很多实际中经常遇到的NP难问题(如布尔可满足性、图着色等问题)都是约束满足问题的特例
我国是一个小麦生产和消费大国,小麦是我国重要的粮食作物、商品粮品种和人民的主要口粮。小麦产量的高低将直接影响到人民的经济和生活,由于各种病害的存在严重地影响了小麦的
在信息全球化的今天,为了主动、快速、高效地获取自己需要的信息,人们对于搜索引擎的使用越来越频繁。当前的通用搜索引擎,对于任意查询,其检索结果都是以线性列表的形式组织展现
随着人类基因组计划的完成,蛋白质组学受到了越来越多关注。其中对蛋白质翻译后修饰的研究是一个重要的分支,而对翻译后修饰进行鉴定是研究的首要任务。   串联质谱技术是鉴
学位
近些年来,随着新疆经济的快速发展,新疆与内地的交往和联系日趋广泛和深入。但是对于新疆的民族群众而言,语言障碍阻碍了这种交往和联系。最有效的解决方法,就是提高少数民族教师
指令级测试方法是一种通过指令测试微处理器自身故障的测试方法。指令是微处理器芯片区别于其他芯片的重要特点。指令流控制微处理器的运行,可以影响到微处理器所有的内部逻辑
Maze是教育网上非常受欢迎的P2P文件共享系统,本文设计和实现了一个基于Maze的集中式的视频点播系统-MazeTube。   MazeTube的定位是Maze的视频门户。它的主旨,在于充分利用
Modelica语言仿真建模在科研工作中已经得到了广泛应用。它能方便地对包含机械、电子、液压、控制、热流等领域的复合物理系统进行基于组件的仿真。现有基于Modelica语言的仿
近年来,随着多媒体技术和互联网技术的快速发展,现代计算机硬件存储介质价格的不断下降和以P2P技术快速发展为代表的网络传输技术的成熟,使得视频在人们生活中的很多领域变得越