Abstract
An implicit (automatic) signal monitor uses a waltuntll predicate statement to construct synchronization, as opposed to an explicit-signal monitor using condition variables and signal/walt 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++. © 2005 ACM.
Author supplied keywords
Cite
CITATION STYLE
Buhr, P. A., & Harji, A. S. (2005). Implicit-signal monitors. ACM Transactions on Programming Languages and Systems, 27(6), 1270–1343. https://doi.org/10.1145/1108970.1108975
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.