Affiliation:
1. University of Waterloo, Waterloo, Ont. Canada
Abstract
An implicit (automatic) signal monitor uses a
waituntil
predicate
statement to construct synchronization, as opposed to an explicit-signal monitor using condition variables and
signal/wait
statements for synchronization. Of the two synchronization approaches, the implicit-signal monitor is often easier to use and prove correct, but has an inherently high execution cost. Hence, its primary use is for prototyping concurrent systems using monitors, where speed and accuracy of software development override execution performance. After a concurrent system is working, any implicit-signal monitor that is a performance bottleneck can be converted to an explicit-signal monitor. Unfortunately, many monitor-based concurrency systems provide only explicit-signal monitors, precluding the design benefits of implicit-signal monitors.This article presents a historical look at the development of the implicit-signal monitor in relation to its counterpart the explicit-signal monitor. An analysis of the different kinds of implicit-signal monitors shows the effects certain design decisions have on the problems that can be solved and the performance of the solutions. Finally, an extensive discussion is presented on simulating an implicit-signal monitor via different explicit-signal monitors. These simulations are reasonably complex, depending on the kind of explicit-signal monitor available for the simulation and the desired semantics required for the implicit-signal monitor. Interestingly, the complexity of the simulations also illustrates certain deficiencies with explicit-signal monitors, which are discussed in detail. Performance comparisons are made among the different simulations with monitors from the concurrent systems PThreads, Java, and μC++.
Publisher
Association for Computing Machinery (ACM)
Reference38 articles.
1. Andrews G. R. 2000. Foundations of Multithreaded Parallel and Distributed Programming. Addison--Wesley Reading MA.]] Andrews G. R. 2000. Foundations of Multithreaded Parallel and Distributed Programming. Addison--Wesley Reading MA.]]
2. Ben-Ari M. 1982. Principles of Concurrent Programming. Prentice-Hall International Englewood Cliffs NJ.]] Ben-Ari M. 1982. Principles of Concurrent Programming. Prentice-Hall International Englewood Cliffs NJ.]]
3. Bernstein A. J. and Lewis P. M. 1993. Concurrency in Programming and Database Systems. Jones and Bartlett Subury MA.]] Bernstein A. J. and Lewis P. M. 1993. Concurrency in Programming and Database Systems. Jones and Bartlett Subury MA.]]
4. A comparison of two synchronizing concepts
5. Structured multiprogramming
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Symbolic Reasoning for Automatic Signal Placement;ACM SIGOPS Operating Systems Review;2020-08-31
2. Symbolic reasoning for automatic signal placement;ACM SIGPLAN Notices;2018-12-02
3. Symbolic reasoning for automatic signal placement;Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation;2018-06-11
4. A survey of support for structured communication in concurrency control models;Journal of Parallel and Distributed Computing;2014-04
5. AutoSynch;ACM SIGPLAN Notices;2013-06-23