国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:张杨,邵帅,张冬雯
单位:张杨,河北科技大学 信息科学与工程学院, 河北 石家庄 05001811,邵帅,河北科技大学 信息科学与工程学院, 河北 石家庄 05001802,张冬雯,河北科技大学 信息科学与工程学院, 河北 石家庄 05001803
关键词:细粒度锁;读写锁;重构;下推自动机;程序分析
基金:国家自然科学基金(61440012);河北省自然科学基金(18960106D);河北省高等学校科学研究计划(ZD2019093);河北省研究生创新资助项目(CXZZSS2020094)
针对粗粒度锁会严重影响并发程序的可伸缩性问题,提出一种面向细粒度锁的自动重构方法.该方法借助访问者模式分析、别名分析、负面效应分析等多种程序分析技术获取临界区代码的读写模式,然后使用下推自动机构建不同锁模式的识别方法,根据识别结果进行代码重构.与以往锁重构方法的不同之处在于,该方法考虑了锁降级模式,使重构适用性更广.基于此方法,在Eclipse JDT框架下,以插件的形式实现了自动重构工具FLock.在实验中,从重构个数、改变的代码行数、重构时间、准确性和重构后程序性能等方面对FLock进行了评估,并与已有的重构工具Relocker和CLOCK进行了对比.对HSQLDB,Jenkins和Cassandra等11个大型实际应用程序的重构结果表明:FLock共重构了1 757个内置监视器对象,每个程序重构平均用时17.5s.该重构工具可以有效地实现粗粒度锁到细粒度锁的转换,与手动重构相比,有效提升了细粒度锁的重构效率.
来源:2021年第12期
《软件学报》期刊编辑部