基于自动化静态分析工具对锁使用模式的研究

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:xuyaya
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
如今,随着计算机硬件以及网络技术的发展,并发程序在提高计算效率上发挥着越来越重要的作用。然而编写高质量的并发程序对于程序员而言并不是一件简单的事。与此同时,并发程序的线程调度复杂度高的特性使得并发程序的调试、测试遇到许多问题。目前,学术界各个领域已有大量对并发程序的研究,比如并发程序测试、模型检测、数据竞争检测等。但目前的研究都会遇到各种各样的问题,例如部分研究的扩展性不高以致无法有效分析大型并发程序,如符号执行工具KLEE无法有效分析Apache等程序中锁配对问题,而部分研究成果则会产生大量的误报,如Inspector对数据竞争的误报率达88.7%。考虑到锁被广泛使用在对共享内存的访问上,如果能对真实并发程序中锁的使用情况有较深入的了解,那么将会对已有或者将来的并发程序的研究产生重大意义。本文的主要贡献由以下部分组成:(1)首先,本文实现了一个基于LLVM、静态的、保守的、低开销的、能够自动化分析并发程序中锁使用模式的工具LUPA,并通过案例分析与实验对LUPA的准确性与性能分别进行了分析说明。(2)其次,本文在LUPA的辅助下,结合人工检验首次对并发程序中与锁相关的语言特性、所使用的锁模式、不同版本之间对锁使用的演化情况,这几个方面的一般性规律分别进行了研究。通过实验可以知道LUPA对目标程序的平均分析时间为413557毫秒,而对大型程序如MySQL等的分析能在20分钟内完成。同时LUPA对特殊锁模式的识别率达到97.2%。在本文的研究里,MySQL, Apache, Aget, Pbzip2等开源并发程序被选为目标分析程序,通过对这几个程序中锁使用情况的分析,本文得出了一般锁使用的规律,使得能够有效地对并发程序分析工具的设计与实现进行改进,以及对程序员编写并发程序提出有用建议,其中一些较为重要的发现如下:(a)80.5%的锁敏感函数中只会持有1把锁;(b)相比其他锁模式,直接锁模式在并发程序中出现的比率最高,为54.5%。(c)在所分析的527个锁模式中只有12个锁模式属于条件锁模式。(d)锁敏感函数在所有函数中所占的比例只有0.65%。
其他文献
非线性理论由三大理论构成:混沌理论、分形理论、孤立子理论。对非线性理论的研究常常以理论研究为主,本文在非线性理论研究的基础上探讨了混沌保密通信、分形自然景观模拟两个
材料在自然环境中,由于受各种不同环境因素的影响,其表面会呈现各种各样的腐蚀特征。材料外观腐蚀的状况是材料环境适应性的一种重要体现,腐蚀形貌特征是用来分析材料耐蚀性能的
仿人机器人进入复杂的室内环境,服务于人类的日常生活是其发展的必然趋势,定位与运动规划是机器人能够自主服务于人类的关键。目前主要研究的是简单环境下的仿人机器人定位与
由于视频数据的大信息量和有限的传输带宽,使得视频的压缩编码、传输信道和网络协议的选择成为视频传输应用中的关键技术。本文研究了一个基于局域网的视频传输系统,目的是适应
该文针对现有虚拟大学中的不足,提出了自己的解决方案:设计了一个面向虚拟大学的移动agent协作中间件系统模型(VUMAM)以及基于该模型的虚拟大学的系统框架,并对该系统中的age
软件的再工程可以帮助更好的理解和复用遗产系统,它是提高遗产系统质量和可维护性、提取可复用构件的良好途径.国内外在这方面已经开展了许多研究,取得了一些成果,同时也产生
联邦数据库系统可以解决各个成员数据库系统的数据模型和数据表达的异构,以及语义异构等问题,它从传统的集中式数据库系统的三层模式结构扩展到五层模式的体系结构,提供了异构数
该文提出了一种完整的网络信息集成系统实现方案.网络信息集成系统中的包装器包含访问数据源查询接口的SIDL模块及抽取结构化数据的抽取器模块,目前大多数研究都只讨论了其中
该文就粗糙集理论及其在数据挖掘中的应用进行了较为深入系统的研究.完成的工作和取得的成果在于:提出了在Ziarko变精度粗糙集模型基础上的一种基于分类正确度的粗糙集模型,
由于软件规模和复杂性的增加,软件测试技术研究和工具开发滞后,软件测试中存在大量的手工劳动,从而使得软件测试的效率很低,费用很高.而且,由于软件测试仍然是目前和今后相当