{"title":"同步消息传递程序的死锁分析","authors":"Jun Zhou, K. Tai","doi":"10.1109/PDSE.1999.779739","DOIUrl":null,"url":null,"abstract":"Reachability analysis of a concurrent program involves the derivation of states of the program and the detection of deadlocks and other types of faults. To perform reachability analysis of a concurrent program P, the number of instances of each process type in P needs to be determined. How to select such numbers for P is a difficult issue. If these numbers are large, reachability analysis of P needs huge memory and very long CPU time. If these numbers are small, we have little confidence on whether P is deadlock-free for larger numbers of instances of process types in P. A deadlock cutoff number C for a process type T in P means that if under certain conditions P with C instances of T has no deadlocks, then P has no dead locks for any number of instances of T. We describe methods for finding deadlock cutoff numbers for three types of synchronous message-passing programs. Our methods are based on the theory of Milner's CCS. By applying these methods, the effort for detecting deadlocks in many synchronous message-passing programs can be significantly reduced. Empirical results of applying our methods to solutions to the dining philosophers and readers and writers problems are presented.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"180 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"13","resultStr":"{\"title\":\"Deadlock analysis of synchronous message-passing programs\",\"authors\":\"Jun Zhou, K. Tai\",\"doi\":\"10.1109/PDSE.1999.779739\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Reachability analysis of a concurrent program involves the derivation of states of the program and the detection of deadlocks and other types of faults. To perform reachability analysis of a concurrent program P, the number of instances of each process type in P needs to be determined. How to select such numbers for P is a difficult issue. If these numbers are large, reachability analysis of P needs huge memory and very long CPU time. If these numbers are small, we have little confidence on whether P is deadlock-free for larger numbers of instances of process types in P. A deadlock cutoff number C for a process type T in P means that if under certain conditions P with C instances of T has no deadlocks, then P has no dead locks for any number of instances of T. We describe methods for finding deadlock cutoff numbers for three types of synchronous message-passing programs. Our methods are based on the theory of Milner's CCS. By applying these methods, the effort for detecting deadlocks in many synchronous message-passing programs can be significantly reduced. Empirical results of applying our methods to solutions to the dining philosophers and readers and writers problems are presented.\",\"PeriodicalId\":373753,\"journal\":{\"name\":\"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems\",\"volume\":\"180 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1999-05-17\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"13\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/PDSE.1999.779739\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/PDSE.1999.779739","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 13
摘要
并发程序的可达性分析包括程序状态的派生以及死锁和其他类型故障的检测。为了执行并发程序P的可达性分析,需要确定P中每种进程类型的实例数量。如何为P选择这样的数字是一个难题。如果这些数字很大,则P的可达性分析需要巨大的内存和非常长的CPU时间。如果这些数字很小,我们没有信心是否P是deadlock-free过程类型的实例的大量P .死锁截止在P C过程类型T意味着如果在特定条件下P C T的实例没有死锁,那么P没有死锁的T的实例数量我们描述方法寻找僵局截止数据三种类型的同步消息传递程序。我们的方法是基于米尔纳的CCS理论。通过应用这些方法,可以大大减少在许多同步消息传递程序中检测死锁的工作量。应用我们的方法来解决餐饮哲学家和读者和作家的问题的实证结果提出。
Deadlock analysis of synchronous message-passing programs
Reachability analysis of a concurrent program involves the derivation of states of the program and the detection of deadlocks and other types of faults. To perform reachability analysis of a concurrent program P, the number of instances of each process type in P needs to be determined. How to select such numbers for P is a difficult issue. If these numbers are large, reachability analysis of P needs huge memory and very long CPU time. If these numbers are small, we have little confidence on whether P is deadlock-free for larger numbers of instances of process types in P. A deadlock cutoff number C for a process type T in P means that if under certain conditions P with C instances of T has no deadlocks, then P has no dead locks for any number of instances of T. We describe methods for finding deadlock cutoff numbers for three types of synchronous message-passing programs. Our methods are based on the theory of Milner's CCS. By applying these methods, the effort for detecting deadlocks in many synchronous message-passing programs can be significantly reduced. Empirical results of applying our methods to solutions to the dining philosophers and readers and writers problems are presented.