Xianghua Deng, Matthew B. Dwyer, J. Hatcliff, M. Mizuno
{"title":"Invariant-based specification, synthesis, and verification of synchronization in concurrent programs","authors":"Xianghua Deng, Matthew B. Dwyer, J. Hatcliff, M. Mizuno","doi":"10.1145/581339.581394","DOIUrl":null,"url":null,"abstract":"Concurrency is used in modern software systems as a means of addressing performance, availability, and reliability requirements. Using current technologies developers are faced with a tension between correct synchronization and performance. Unfortunately, simple approaches can result in significant run-time overhead. Implementing more sophisticated synchronization policies may improve run-time performance and satisfy synchronization requirements, but fundamental difficulties in reasoning about concurrency make it difficult to assess their correctness. The paper describes an approach to automatically synthesizing complex synchronization implementations from formal high-level specifications. Moreover, the generated code is designed to be processed easily by software model-checking tools such as Bandera. This enables the generated synchronization solutions to be verified for important system correctness properties. We believe this is an effective approach because the tool-support provided makes it simple to use, it has a solid semantic foundation, it is language independent, and we have demonstrated that it is powerful enough to solve numerous challenging synchronization problems.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"75","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/581339.581394","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 75
Abstract
Concurrency is used in modern software systems as a means of addressing performance, availability, and reliability requirements. Using current technologies developers are faced with a tension between correct synchronization and performance. Unfortunately, simple approaches can result in significant run-time overhead. Implementing more sophisticated synchronization policies may improve run-time performance and satisfy synchronization requirements, but fundamental difficulties in reasoning about concurrency make it difficult to assess their correctness. The paper describes an approach to automatically synthesizing complex synchronization implementations from formal high-level specifications. Moreover, the generated code is designed to be processed easily by software model-checking tools such as Bandera. This enables the generated synchronization solutions to be verified for important system correctness properties. We believe this is an effective approach because the tool-support provided makes it simple to use, it has a solid semantic foundation, it is language independent, and we have demonstrated that it is powerful enough to solve numerous challenging synchronization problems.