Java内存模型的动态验证

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:jqh_0727
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着互联网的普及,基于Web的应用需要越来越强大的并发能力来应对用户的请求。Java语言是最早原生支持并发的主流程序设计语言,在Web领域有着广泛的应用。其内存模型是保证Java多线程程序正确性及高效性的关键。  设计正确的内存模型是非常困难的。Java最初的设计中就已经包含了内存模型的内容,但随后被发现一些严重的错误。在Java5.0中发布了最新的内存模型,并且一直沿用至今,但设计规范中仍然存在一些与设计目的不一致的地方。并发模块是Java虚拟机实现中最为复杂的部分之一,目前对Java内存模型的验证多数属于静态验证,并不能保证它在虚拟机中实现的正确性。所以通过动态验证的方式验证Java内存模型有着非常重要的意义。  设计并实现了Java内存模型动态验证系统JMODV。它随机生成Java多线程程序,然后对程序进行编译,并在Java虚拟机上运行。通过JVMTI编写了一个代理,通过这个代理获取程序运行时的操作路径,操作路径包含了程序共享变量的读写操作次序及操作值。根据Java内存模型的规定,使用遍历的方法构建符合要求的执行序列,以此确定操作路径是否有效,从而验证Java内存模型的正确性。使用JMODV对20个Java内存模型正确性的经典测试用例进行了检测,实验结果表明,的工具是有效的。与此同时,对三种不同的Java虚拟机进行了验证,结果表明工具具有良好的兼容性。  本文的主要贡献在于:实现了一个全自动的Java内存模型验证系统,可以对Java虚拟机的具体实现进行验证;提出了一种获取Java并发程序执行时操作路径的方法,该方法具有通用性,可以被其它动态验证方法所采用。
其他文献
面对新兴计算技术的影响以及来自应用领域的需求,一些学者提出了Dagger、 DSAG、能力服务器等网格计算机体系结构。这些体系结构强调计算机系统的松散耦合、动态部署、白组织
“数字林业”的概念提出以后,随着信息量的急速增长和相关软硬件技术的不断进步,人们对林地场景可视化中的场景规模和显示速率等方面提出了越来越高的要求。在计算机上实现林
目前公钥密码大都基于大整数因子分解、离散对数问题等有限域上的数学难题,数学理论基础较窄,一旦理论上得到突破,将面临很大威胁,有必要在更广泛的理论基础上探讨公钥体制的实现
学位
当前数据的迅速增长对存储资源的容量和速度提出了空前的挑战。随着硬件技术的不断发展,特别是单硬盘容量的不断提升,使得单位存储空间的成本急剧下降,各单位和研究所相继采购存
本文的主要内容是研究和提出从低质量的遥感卫星数据中分析获取地表信息的方法。对地观测卫星周期性的扫过地表的某些区域,可以获得这些区域的持续观测数据,这些观测数据组成了
字典学习方法通常利用信号的样本数据训练一个过完备字典,获得信号在该字典下的稀疏表示,采用这种方法训练得到的字典称为扁平字典。扁平字典是相对于结构字典而言的,通过设
干涉合成孔径雷达是目前遥感领域研究的一个热点,该技术主要使用雷达卫星作为载体,利用波的干涉原理来监测地面沉降状况,具有覆盖面积大,空间分辨率及高程精度高的优点,并且
基于几何网格的三维模型网络传输是多媒体网络传输的重要课题。随着计算机技术的发展,每个三维模型的数据量越来越庞大,而人们对使用个人电脑通过网络共享三维模型的需求也越来
学位
随着煤矿事故的频发,国家和煤矿企业对安全生产监控系统越来越重视,煤矿瓦斯监控系统是统一提升煤矿安全生产能力,实现煤炭行业管理部门和煤矿安全生产监察部门对煤矿安全生产状
学位
进攻和防御是技术应用于战争的两大主题。海军大连舰艇学院担负着培养海军作战指挥人才的任务,为了提高未来高技术海战的作战能力,开发研制了单舰作战指挥模拟训练系统。该系统