Yusuka Nonaka, K. Ushijima, Hibiki Serizawa, Shigeru Murata, Jingde Cheng
{"title":"A run-time deadlock detector for concurrent Java programs","authors":"Yusuka Nonaka, K. Ushijima, Hibiki Serizawa, Shigeru Murata, Jingde Cheng","doi":"10.1109/APSEC.2001.991458","DOIUrl":null,"url":null,"abstract":"Deadlock is one of the most serious and complex problems concerning the reliability of concurrent Java programs. In this paper, we discuss how to dynamically detect deadlocks in concurrent Java programs at run-time, and propose a representation of synchronization waiting state in an execution of a Java program, which is named the Java thread-wait-for graph. We explicitly define all types of deadlocks in Java with this representation and present an algorithm to detect the deadlocks. Two implementation methods are also presented. We succeeded in detecting a deadlock from a concurrent program, including all types of synchronization waiting relations, using our tool.","PeriodicalId":130293,"journal":{"name":"Proceedings Eighth Asia-Pacific Software Engineering Conference","volume":"30 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2001-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"13","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings Eighth Asia-Pacific Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/APSEC.2001.991458","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 13
Abstract
Deadlock is one of the most serious and complex problems concerning the reliability of concurrent Java programs. In this paper, we discuss how to dynamically detect deadlocks in concurrent Java programs at run-time, and propose a representation of synchronization waiting state in an execution of a Java program, which is named the Java thread-wait-for graph. We explicitly define all types of deadlocks in Java with this representation and present an algorithm to detect the deadlocks. Two implementation methods are also presented. We succeeded in detecting a deadlock from a concurrent program, including all types of synchronization waiting relations, using our tool.