期刊文献+

BIFER: a biphasic trace filter approach to scalable prediction of concurrency errors

BIFER: a biphasic trace filter approach to scalable prediction of concurrency errors
原文传递
导出
摘要 Predictive trace analysis (PTA), a static trace analysis technique for concurrent programs, can offer power- ful capability support for finding concurrency errors unseen in a previous program execution. Existing PTA techniques always face considerable challenges in scaling to large traces which contain numerous critical events. One main reason is that an analyzed trace includes not only redundant memory accessing events and threads that cannot contribute to dis- covering any additional errors different from the found can- didate ones, but also many residual synchronization events which still affect PTA to check whether these candidate ones are feasible or not even after removing the redundant events. Removing them from the trace can significantly improve the scalability of PTA without affecting the quality of the PTA results. In this paper, we propose a biphasic trace filter ap- proach, BIFER in short, to filter these redundant events and residual events for improving the scalability of PTA to expose general concurrency errors. In addition, we design a model which indicates the lock history and the happens-before his- tory of each thread with two kinds of ways to achieve the efficient filtering. We implement a prototypical tool BIFER for Java programs on the basis of a predictive trace analysis framework. Experiments show that BIFER can improve the scalability of PTA during the process of analyzing all of the traces. Predictive trace analysis (PTA), a static trace analysis technique for concurrent programs, can offer power- ful capability support for finding concurrency errors unseen in a previous program execution. Existing PTA techniques always face considerable challenges in scaling to large traces which contain numerous critical events. One main reason is that an analyzed trace includes not only redundant memory accessing events and threads that cannot contribute to dis- covering any additional errors different from the found can- didate ones, but also many residual synchronization events which still affect PTA to check whether these candidate ones are feasible or not even after removing the redundant events. Removing them from the trace can significantly improve the scalability of PTA without affecting the quality of the PTA results. In this paper, we propose a biphasic trace filter ap- proach, BIFER in short, to filter these redundant events and residual events for improving the scalability of PTA to expose general concurrency errors. In addition, we design a model which indicates the lock history and the happens-before his- tory of each thread with two kinds of ways to achieve the efficient filtering. We implement a prototypical tool BIFER for Java programs on the basis of a predictive trace analysis framework. Experiments show that BIFER can improve the scalability of PTA during the process of analyzing all of the traces.
出处 《Frontiers of Computer Science》 SCIE EI CSCD 2015年第6期944-955,共12页 中国计算机科学前沿(英文版)
关键词 predictive trace analysis concurrency errors SCALABILITY predictive trace analysis, concurrency errors, scalability
  • 相关文献

参考文献26

  • 1Sen K, Rosu G, Agha G. Detecting errors in multithreaded programs by generalized predictive analysis of executions. In: Proceedings of the 7th IFIP WG6.1 International Conference on Formal Methods for Open Object-based Distributed Systems. 2005, 211-226.
  • 2Wang L, Stoller S. Accurate and efficient runtime detection of atom- icity errors in concurrent programs. In: Proceedings of ACM Interna- tional Conference on Principles and Practice of Parallel Programming. 2006, 137-146.
  • 3Farzan A, Madhusudan P, Sorrentino E Meta-analysis for atomicity vi- olations under nested locking. In: Proceedings of the 21st International Conference on Computer Aided Verification. 2009, 248-262.
  • 4Chen F, Serbanuta T F, Rosu G. jPredictor: a predictive runtime analy- sis tool for Java. In: Proceedings of the 30th International Conference on Software Engineering. 2008, 221-230.
  • 5Wang C, Kundu S, Ganai M K, Gupta A. Symbolic predictive analysis for concurrent programs. In: Proceedings of International Symposium on Formal Methods. 2009, 256-272.
  • 6Wang C, Limaye R, Ganai M K, Gupta A. Trace-based symbolic anal- ysis for atomicity violations. In: Proceedings of the 16th International Conference on Tools and Algorithms for the Construction and Analysis of Systems. 2010, 328-342.
  • 7Kahlon V, Wang C. Universal causality graphs: a precise happens- before model for detecting bugs in concurrent programs. In: Proceed- ings of the 22nd International Conference on Computer Aided Verifi- cation. 2010, 434:449.
  • 8Zhang W, Sun C, Lu S. Conmem: detecting severe concurrency bugs through an effect-oriented approach. ACM SIGPLAN Notices, 2010, 45(3): 179-192.
  • 9Vaziri M, Tip F, Dolby J. Associating synchronization constraints with data in an object-oriented language. ACM SIGPLAN Notices, 2006, 41(1): 334-345.
  • 10Huang J, Zhou J G, Zhang C. Scaling predictive analysis of concur- rent programs by removing trace redundancy. ACM Transactions on Software Engineering and Methodology, 2013, 22(1): 8.

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部