首页> 外文会议>IEEE International Conference on Software Maintenance >An Automation-assisted Empirical Study on Lock Usage for Concurrent Programs
【24h】

An Automation-assisted Empirical Study on Lock Usage for Concurrent Programs

机译:对并发计划锁定使用的自动化辅助实证研究

获取原文

摘要

Nowadays concurrent programs are becoming more and more important with the development of hardware and network technologies. However, it is not easy for programmers to write reliable concurrent programs. Concurrency characteristics such as thread-interleaving make it difficult to debug or maintain concurrent programs. Although there are lots of research works on concurrency such as multi-thread testing tools, concurrent program verification and data race detection, all of them leave open problems. For instance, some are not scalable enough for large real world applications and some may report false warnings. Since locks are widely used to protect shared memory, it is beneficial for both programmers and tool designers in all fields to have a good understanding of common lock usage patterns in real world concurrent programs. This paper reports an empirical study on lock usage in concurrent programs. It is based on our automatic lock analysis tool called LUPA. The study analyzes how lock is used in concurrent programs and how lock usage changes throughout the product environment. In this study, four representative concurrent programs (Apache httpd, Mysql, Aget, Pbzip2) are selected, of which both lock manifestation and lock usage pattern in different versions are studied. This study reveals some interesting findings including but not limited to: (1) about 80.5% of the lock related functions acquire only one lock; (2) simple lock patterns account for 54.5% of all lock usage in real world applications; (3) only 12 out of 527 detected patterns belong to condition lock pattern which may lead to vulnerabilities easily; (4) only 0.65% of the functions are lock related. Additionally, a potential bug caused by problematic locking pattern is found.
机译:当今并行程序随着硬件和网络技术的开发而变得越来越重要。但是,程序员不容易编写可靠的并发程序。诸如线程交错的并发特性使得难以调试或维护并发程序。虽然有很多关于诸如多线程测试工具,并发程序验证和数据竞争检测等的并发性的研究工作,但它们都留出了打开问题。例如,有些人对大型真实世界应用程序不够可扩展,有些可能会报告错误的警告。由于锁广泛用于保护共享内存,因此所有字段中的程序员和工具设计人员都有利于对现实世界并发程序中的共同锁定使用模式的良好理解。本文报告了同时计划中锁定使用的实证研究。它基于我们的自动锁定分析工具,称为LUPA。该研究分析了如何在并发程序中使用锁定以及在整个产品环境中如何更改锁定使用情况。在本研究中,选择了四个代表性并发程序(Apache Httpd,MySQL,AGET,PBZIP2),其中研究了不同版本中的锁定表现和锁定使用模式。本研究揭示了一些有趣的结果,包括但不限于:(1)约80.5%的锁定相关函数只获取一个锁; (2)简单的锁定模式占现实世界应用中所有锁定用途的54.5%; (3)527个检测模式中只有12个属于条件锁定模式,可能会容易地导致漏洞; (4)只有0.65%的功能是锁定相关的。另外,找到由问题锁定模式引起的潜在错误。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号