Programming in MODULA-2 (3rd corrected ed.)
Programming in MODULA-2 (3rd corrected ed.)
Communications of the ACM
The Turing programming language
Communications of the ACM
The C programming language
Emerald: a general-purpose programming language
Software—Practice & Experience
Concurrent programming: principles and practice
Concurrent programming: principles and practice
Systems programming with Modula-3
Systems programming with Modula-3
&mgr;C++: concurrency in the object-oriented language C++
Software—Practice & Experience
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
Experience with processes and monitors in Mesa
Communications of the ACM
An alternative to event queues for synchronization in monitors
Communications of the ACM
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Concurrent control with “readers” and “writers”
Communications of the ACM
The structure of the “THE”-multiprogramming system
Communications of the ACM
The Thoth System
Operating system principles
The specification of process synchronization by path expressions
Operating Systems, Proceedings of an International Symposium
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Reply to "on proof rules for monitors"
ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
“Alfonse, wait here for my signal!”
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
An efficient meta-lock for implementing ubiquitous synchronization
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
“Alfonse, you have a message!”
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Object-oriented real-time concurrency
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Starving philosophers: experimentation with monitor synchronization
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
An enhanced thread synchronization mechanism for Java
Software—Practice & Experience
Lock reservation: Java locks can mostly do without atomic operations
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A More Expressive Monitor for Concurrent Java Programming
Euro-Par '00 Proceedings from the 6th International Euro-Par Conference on Parallel Processing
Verification for Java's Reentrant Multithreading Concept
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Pragmatic Nonblocking Synchronization for Real-Time Systems
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
Communication and Synchronisation Using Interaction Objects
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II
Run-Time Fault Detection in Monitor Based Concurrent Programming
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
ThreadMentor: a pedagogical tool for multithreaded programming
Journal on Educational Resources in Computing (JERIC)
ACM Transactions on Programming Languages and Systems (TOPLAS)
The java.util.concurrent synchronizer framework
Science of Computer Programming - Special issue: Concurrency and synchronization in Java programs
Comparing Java, C# and Ada monitors queuing policies: a case study and its Ada refinement
ACM SIGAda Ada Letters
An assertion-based proof system for multithreaded Java
Theoretical Computer Science - Formal methods for components and objects
Verification and refinement with fine-grained action-based concurrent objects
Theoretical Computer Science - Formal methods for components and objects
An efficient synchronization model for OpenMP
Journal of Parallel and Distributed Computing
Implementing fast javaTM monitors with relaxed-locks
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Concurrent Program Metrics Drawn by Quasar
Ada-Europe '08 Proceedings of the 13th Ada-Europe international conference on Reliable Software Technologies
Weak Fairness Semantic Drawbacks in Java Multithreading
Ada-Europe '09 Proceedings of the 14th Ada-Europe International Conference on Reliable Software Technologies
Verifying safety properties of concurrent heap-manipulating programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A verified implementation of priority monitors in java
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
AutoSynch: an automatic-signal monitor based on predicate tagging
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
A survey of support for structured communication in concurrency control models
Journal of Parallel and Distributed Computing
Hi-index | 0.00 |
One of the most natural, elegant, and efficient mechanisms for synchronization and communication, especially for systems with shared memory, is the monitor. Over the past twenty years many kinds of monitors have been proposed and implemented, and many modern programming languages provide some form of monitor for concurrency control. This paper presents a taxonomy of monitors that encompasses all the extant monitors and suggests others not found in the literature or in existing programming languages. It discusses the semantics and performance of the various kinds of monitors suggested by the taxonomy, and it discusses programming techniques suitable to each.