当前位置:主页 > 科技论文 > 计算机论文 >

针对并发错误的异常处理机制的设计与实现

发布时间:2018-09-10 11:32
【摘要】:随着多核处理器的广泛应用,程序设计中并发技术的研究受到了极大的推动。由于并发程序本身的非确定性性质,检测、处理并发错误非常困难,所以并发程序的正确性很难得到良好的保证。一般来说在编译时检测并发错误并在程序运行时防止并发错误的发生是一项很重要的工作。在过去的几十年间,对于并发程序的容错机制已经有大量的研究工作。特别是相对于锁的性能和复杂性,相关的研究者提出了在软件和硬件机制上通过事务机制实现同步从而实现容错。相对于锁而言,软件事务内存机制[1]比较简单(不用通过锁来保证原子性),而且实现上更高效。对于原子性而言,软件事务内存能够对其提供容错支持,然而,这一容错支持同样依赖于程序员所声明的原子块:当程序员所声明的原子块无法保证并发程序的正确性时,依然需要分析、测试等手段对其进行检测。目前的研究工作还不能很好的检测并发程序中的各种错误并在程序运行过程中处理它们,防止由于程序出错所带来的严重后果。 考虑到并发程序中常见错误的类型,本文提出了针对并发程序中常见错误的容错机制,通过将并发错误作为如除数为零一样的异常来处理,使得程序在发生异常之后可以采用基于回滚的方式实现容错。该课题的目的在于提供针对并发错误的异常处理的设计框架,并在Java语言上进行实现,提高程序的容错性能。当前还没有相关的研究工作将并发错误作为程序异常来处理,从而扩展程序的异常处理机制,本文课题在研究工作中的创新点主要体现在以下几个方面: (1)程序的静态分析及插装:通过对程序的静态分析识别出线程 间公共变量,对公共变量的读写操作进行代码插装; (2)程序动态分析:主要体现在动态检测并发程序错误上,通过记录程序运行过程中线程间公共变量读写的序列,然后匹配原子性违例的错误模式来发现并发错误,这一算法思想使得在运行时开销上很低,相比当前相关研究工作的算法存在很大优势; (3)异常处理机制:把并发错误作为异常处理的想法在相关研究工作中是首创的,并提供了异于以往并发错误处理的方式,允许程序员根据得到的异常信息自定义异常处理方式,提高了程序的容错性能,也提高了处理并发错误的灵活性。
[Abstract]:With the wide application of multi-core processors, the research of concurrency technology in program design has been greatly promoted. Because of the non-deterministic nature of concurrent programs, it is very difficult to detect and handle concurrent errors, so the correctness of concurrent programs can hardly be guaranteed. Preventing concurrent errors from occurring at row-time is an important task. In the past few decades, a lot of research has been done on the fault-tolerant mechanism of concurrent programs. Software transactional memory mechanism [1] is simpler for locks (no locks are required to guarantee atomicity) and more efficient for implementation. Software transactional memory can provide fault-tolerant support for atomicity, but this fault-tolerant support also depends on the atomic block declared by the programmer: when the atomic block declared by the programmer is not available To ensure the correctness of concurrent programs, it is still necessary to analyze and test them. Current research work can not detect all kinds of errors in concurrent programs and deal with them in the process of program running to prevent serious consequences caused by program errors.
Considering the types of common errors in concurrent programs, this paper proposes a fault tolerance mechanism for common errors in concurrent programs. By treating concurrent errors as exceptions such as divisor zero, the program can implement fault tolerance based on rollback after exceptions occur. At present, there is no related research work to deal with concurrent errors as program exceptions, so as to extend the exception handling mechanism of programs. The innovation of this paper is mainly reflected in the following aspects:
(1) static analysis and instrumentation of programs: identification of threads by static analysis of programs.
A common variable is code insertion for read and write operations of public variables.
(2) Program dynamic analysis: It is mainly reflected in the dynamic detection of concurrent program errors, by recording the sequence of common variables read and write between threads during the running process of the program, and then matching the error patterns of atomic violations to find concurrent errors. The idea of this algorithm makes the runtime cost very low, compared with the current related research work of the algorithm storage. It has great advantages.
(3) Exception handling mechanism: The idea of taking concurrent errors as exception handling is pioneered in related research work, and provides a different way from the previous concurrent error handling, allowing programmers to customize exception handling methods according to the obtained exception information, improving the fault tolerance performance of the program, and improving the flexibility of handling concurrent errors.
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2012
【分类号】:TP332

【相似文献】

相关期刊论文 前10条

1 李莹;;Java异常处理与设计原则[J];科技广场;2007年09期

2 顾庆传;孔浩;谢树云;;Java异常处理的分析与研究[J];科技信息;2010年18期

3 魏晓玲;杨战海;;JAVA语言的异常处理机制[J];科技信息;2009年02期

4 周昕;尹芳;;Java语言的异常处理机制研究[J];计算机与信息技术;2010年Z1期

5 柯化成;;软件开发“善守”之道——谈监错/防错设计和异常处理机制[J];程序员;2004年05期

6 艾钧华,邓辉;Java语言的异常处理机制[J];湘潭师范学院学报(自然科学版);2005年02期

7 吴金秀;;Java语言中异常的研究[J];软件导刊;2008年09期

8 吴云峰,薛锦云,杨庆红;Ada异常处理机制在容错可重用部件中的应用[J];计算机与数字工程;1995年06期

9 李永丽;王萍;陈思国;关伟洲;赵宇;李勇;;基于工作流可预测异常处理框架的设计与实现[J];吉林大学学报(理学版);2007年06期

10 岑心;;Delphi篇[J];中文信息;2003年11期

相关重要报纸文章 前8条

1 辽宁 李旭东;你依然是你[N];中国电脑教育报;2001年

2 杜思梦;电影资金办“新平台”研发又迈一大步[N];中国电影报;2011年

3 Warton;Java的异常处理[N];电脑报;2004年

4 汪洋;BPEL加速业务流程集成[N];计算机世界;2004年

5 记者 李松 黄洁 实习生 徐伟伦;坚称依法行事首发不退费[N];法制日报;2010年

6 记者 刘可 通讯员 雪洁;高速收费再起争端 首发集团又成被告[N];北京日报;2010年

7 记者 李波 通讯员 雪洁;法庭焦点:举证责任是关键[N];北京社区报;2010年

8 记者 刘革 通讯员 吴腾彪 李智;退税骤增及时缓解企业资金压力[N];岳阳晚报;2011年

相关博士学位论文 前2条

1 王志;二进制代码路径混淆技术研究[D];南开大学;2012年

2 刘铭;列车通信网络系统形式化建模与验证方法研究[D];哈尔滨工程大学;2011年

相关硕士学位论文 前10条

1 牛如美;针对并发错误的异常处理机制的设计与实现[D];上海交通大学;2012年

2 苗俊;Web服务组合中基于有向图的事务异常处理机制研究[D];辽宁大学;2011年

3 杨法强;一种智能流程异常处理机制研究[D];山东大学;2006年

4 张家阳;Web平台工作流异常处理机制研究[D];合肥工业大学;2009年

5 耿耀君;Java程序中异常流的测试与可视化研究[D];西安电子科技大学;2008年

6 赖耀东;基于多Agent虚拟组织工作流管理系统的异常处理机制[D];浙江大学;2002年

7 郁生阳;基于VxWorks的智能机器人软件系统支撑平台的研究与实现[D];南京理工大学;2005年

8 董宏亮;数字有机体数据库异常处理机制的研究与实现[D];电子科技大学;2009年

9 李康;深海海底边界层原位监测中控制系统的设计与实现[D];中国海洋大学;2012年

10 吕秀琼;成都市检察机关侦查指挥管理系统研发与实现[D];电子科技大学;2012年



本文编号:2234313

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2234313.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户e5030***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com