{"title":"Deadlock detection runtime service for Embedded Linux","authors":"Bernd Glatz, R. Beneder, M. Horauer, T. Rauscher","doi":"10.1109/ETFA.2015.7301437","DOIUrl":null,"url":null,"abstract":"Deadlocks are a common problem that might arise when dealing with parallel processes or multiple threads, where locks are used to handle shared resources and implement process synchronization. Commonly used methods for handling deadlocks within systems are (i) deadlock detection, (ii) deadlock prevention, or (iii) deadlock avoidance. Most existing static and dynamic deadlock detection tools focus on specific lock class types (e.g., pthread locks) and require an instrumentation of the code. This paper proposes a library termed dpthread - a dynamic deadlock detection wrapper library that avoids code instrumentation. The library wraps the pthread library and provides the ability to register additional lock classes. In essence, it builds up a resource allocation graph and searches this graph using the Tarjan algorithm. An evaluation of the dpthread library using various well known deadlock scenarios revealed that deadlocks can be reliably detected without reporting false positives or negatives. The library by itself incurs only a small performance penalty and comes with a small memory footprint.","PeriodicalId":6862,"journal":{"name":"2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA)","volume":"100 1","pages":"1-7"},"PeriodicalIF":0.0000,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ETFA.2015.7301437","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Deadlocks are a common problem that might arise when dealing with parallel processes or multiple threads, where locks are used to handle shared resources and implement process synchronization. Commonly used methods for handling deadlocks within systems are (i) deadlock detection, (ii) deadlock prevention, or (iii) deadlock avoidance. Most existing static and dynamic deadlock detection tools focus on specific lock class types (e.g., pthread locks) and require an instrumentation of the code. This paper proposes a library termed dpthread - a dynamic deadlock detection wrapper library that avoids code instrumentation. The library wraps the pthread library and provides the ability to register additional lock classes. In essence, it builds up a resource allocation graph and searches this graph using the Tarjan algorithm. An evaluation of the dpthread library using various well known deadlock scenarios revealed that deadlocks can be reliably detected without reporting false positives or negatives. The library by itself incurs only a small performance penalty and comes with a small memory footprint.