A comparison of concurrent languages: a class project
SIGCSE '87 Proceedings of the eighteenth SIGCSE technical symposium on Computer science education
Static checking of interprocess communication in ECSP
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Evaluating synchronization mechanisms
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
GEM: A tool for concurrency specification and verification
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
Hi-index | 0.00 |
Any programming language that supports concurrency needs a synchronization construct with which to express access control for shared resources. This thesis examines synchronization constructs from the standpoint of language design for reliable software. The criteria a synchronization mechanism must satisfy to support construction of reliable, easily maintainable concurrent software are defined. Some of these criteria, such as expressive power, can be defined only with respect to the set of problems the mechanism is expected to handle. A definition of the range of problems considered to be synchronization problems is therefore needed. Such a definition is provided by describing the possible types of constraints that may be imposed on access to shared resources. We then use this taxonomy of synchronization constraints to develop techniques for evaluating how well synchronization constructs meet the criteria discussed. These techniques are then applied to three existing synchronization mechanisms: monitors, path expressions, and serializes. Evaluations are presented, and the three mechanisms compared.