基于静态分析和动态仿真的中断驱动程序数据竞争检测

Yu Wang, Junjing Shi, Linzhang Wang, Jianhua Zhao, Xuandong Li
{"title":"基于静态分析和动态仿真的中断驱动程序数据竞争检测","authors":"Yu Wang, Junjing Shi, Linzhang Wang, Jianhua Zhao, Xuandong Li","doi":"10.1145/2875913.2875943","DOIUrl":null,"url":null,"abstract":"Interrupt-driven programs are often embedded in safety-critical systems to perform hardware/resource dependent data operation tasks, such as data acquisition, processing, and transformation. The interrupt programs and tasks may happen in parallel which in a result causes indeterminist concurrent problems at runtime. Data race is one of the most popular problems challenging researchers and practitioners. Various static analysis, software testing approaches have been proposed to detect data races in source code, testing, and even production run. However, static analysis may report too many false positives due to the lack of execution information. Dynamic testing may miss some important races since it could not generate adequate test cases to test all possible execution scenarios. In this paper, we propose a hybrid approach to detect data races in interrupt-driven programs based on static analysis and dynamic simulation. We implemented a prototype tool and conducted a controlled experiment to demonstrate the applicability of our approach.","PeriodicalId":361135,"journal":{"name":"Proceedings of the 7th Asia-Pacific Symposium on Internetware","volume":"7 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-11-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":"{\"title\":\"Detecting Data Races in Interrupt-Driven Programs based on Static Analysis and Dynamic Simulation\",\"authors\":\"Yu Wang, Junjing Shi, Linzhang Wang, Jianhua Zhao, Xuandong Li\",\"doi\":\"10.1145/2875913.2875943\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Interrupt-driven programs are often embedded in safety-critical systems to perform hardware/resource dependent data operation tasks, such as data acquisition, processing, and transformation. The interrupt programs and tasks may happen in parallel which in a result causes indeterminist concurrent problems at runtime. Data race is one of the most popular problems challenging researchers and practitioners. Various static analysis, software testing approaches have been proposed to detect data races in source code, testing, and even production run. However, static analysis may report too many false positives due to the lack of execution information. Dynamic testing may miss some important races since it could not generate adequate test cases to test all possible execution scenarios. In this paper, we propose a hybrid approach to detect data races in interrupt-driven programs based on static analysis and dynamic simulation. We implemented a prototype tool and conducted a controlled experiment to demonstrate the applicability of our approach.\",\"PeriodicalId\":361135,\"journal\":{\"name\":\"Proceedings of the 7th Asia-Pacific Symposium on Internetware\",\"volume\":\"7 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2015-11-06\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"8\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 7th Asia-Pacific Symposium on Internetware\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2875913.2875943\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 7th Asia-Pacific Symposium on Internetware","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2875913.2875943","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

摘要

中断驱动程序通常嵌入到安全关键型系统中,以执行依赖于硬件/资源的数据操作任务,例如数据采集、处理和转换。中断程序和任务可能并行发生,这在运行时导致不确定并发问题。数据竞争是挑战研究人员和实践者的最普遍的问题之一。已经提出了各种静态分析、软件测试方法来检测源代码、测试甚至生产运行中的数据竞争。然而,由于缺乏执行信息,静态分析可能会报告太多误报。动态测试可能会错过一些重要的竞争,因为它不能生成足够的测试用例来测试所有可能的执行场景。在本文中,我们提出了一种基于静态分析和动态仿真的混合方法来检测中断驱动程序中的数据竞争。我们实现了一个原型工具,并进行了一个控制实验来证明我们的方法的适用性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Detecting Data Races in Interrupt-Driven Programs based on Static Analysis and Dynamic Simulation
Interrupt-driven programs are often embedded in safety-critical systems to perform hardware/resource dependent data operation tasks, such as data acquisition, processing, and transformation. The interrupt programs and tasks may happen in parallel which in a result causes indeterminist concurrent problems at runtime. Data race is one of the most popular problems challenging researchers and practitioners. Various static analysis, software testing approaches have been proposed to detect data races in source code, testing, and even production run. However, static analysis may report too many false positives due to the lack of execution information. Dynamic testing may miss some important races since it could not generate adequate test cases to test all possible execution scenarios. In this paper, we propose a hybrid approach to detect data races in interrupt-driven programs based on static analysis and dynamic simulation. We implemented a prototype tool and conducted a controlled experiment to demonstrate the applicability of our approach.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信