Abstract
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.
- ADAMS, J. M., AND BLACK, A. P. 1982. On proof rules for momtors. Oper. Syst. Rev. 16, 2 (Apr.,), 18-27. Google Scholar
- ADAMS, J. M., AND BLACK, A. P. 1983. Letter to the editor. Oper. Syst. Rev. 17, i (Jan.), 6-8.Google Scholar
- ANDREWS, G. R., AND SCHNEIDER, F. B. 1983. Concepts and notations for concurrent programming. ACM Comput. Surv. 15, i (Mar.), 3 43. Google Scholar
- ANDREWS, G.R. 1991. Concurrent Programming: Principles and Practice. Benjamin/Cummings, Redwood City, Calif. Google Scholar
- BRI~CH HANSEN, P. 1973. Operating' System Prmciples. Prentice-Hall, Englewood Cliffs, N.J. Google Scholar
- BRINCH HANSEN, P. 1975. The programming language concurrent pascal. IEEE Trans. Softw. Eng. 2 (June), 199--206.Google Scholar
- BUHR, P. A., ANn STROOBOSSCHER, R.A. 1990. The /~System: Providing lightweight concurrency on shared-memory multiprocessor computers running UNIX. Softw. Pract. Exper. 20, 9 (Sept.), 929-963.Google Scholar
- BUHR, P. A., DITCHFIELD, G., STROOBOSSCHER, R. A., YOUNGER, B. M., AND ZARNKE, C. R. 1992. ~C + +: Concurrency in the object-oriented Language C + +. Soft. Pract. Exper. 22, 2 (Feb.), 137-172. Google Scholar
- CAMPBELL, R. H., AND HABERMANN, A. N. 1974. The Specification of Process Synchronization by Path Expressions. Lecture Notes in Computer Science, vol. 16. Springer-Verlag, New York. Google Scholar
- CARDELLI, L., DONAHUE, J., GLASSMAN, L., JORDAN, M., KALSOW, B., AND NELSON, G. 1988. Modula-3 report. Tech. Rep. 31, Systems Research Center, Pale Alto, Calif.Google Scholar
- CHERITON, D. R. 1982. The Thoth System: Multi-Process Structuring and Portability. American Elsevier, New York. Google Scholar
- CHERITON, D.R. 1988. The v distributed system. Commun. ACM 31, 3 (Mar.), 314-333. Google Scholar
- COURTOIS, P. J. HEYMANS, F., AND PARNAS, D. L. 1971. Concurrent control with readers and writers. Commun. ACM 14, 10 (Oct.), 667-668. Google Scholar
- DAHL, O.-J., MYHRHAUG, B., AND NYGAARD, K. 1970. S~mula67 Common Base Language. Norwegian Computing Center, Oslo, Norway. Google Scholar
- DIJKSTRA, E. W. 1968. The structure of the "the"-multiprogramming system. Commun. ACM 11, 5 (May), 341-346. Google Scholar
- FORTT~.R, M. 1989. Study of monitors. Master's thesis, Dept. of Computer Science, Univ. of Waterloo, Waterloo, Ont.Google Scholar
- GENTLEMAN, W.M. 1985. Using the harmony operating system. Tech. Rep. 24685, National Research Council of Canada, Ottawa.Google Scholar
- GOSLING, J., ROSENTHAL, D. S. H., AND ARDEN, R. J. 1989. The NeWS Book. Springer Verlag, New York.Google Scholar
- GRIES, D. 1981. The Science of Computer Programming. Springer Verlag, New York.Google Scholar
- HANSEN, P. B. 1981a. The design of Edison. Softw. Pract. Exper. 11, 4 (Apr.), 363-396.Google Scholar
- HANSEN, P.B. 1981b. Edison--a multiprocessor language. Softw. Pract. Exper. 11, 4 (Apr.), 325-361.Google Scholar
- HANSEN, P. B. 1981c. Edison programs. Softw. Pract. Exper. 11, 4 (Apr.), 397-414.Google Scholar
- HOARE, C. A. R. 1974. Monitors: An operating system structuring concept. Commun. ACM 17, 10 (Oct.), 549-557. Google Scholar
- HOLT, R. C., AND CORDY, J.R. 1988. The Turing programming language. Commun. ACM 31, 12 (Dec.), 1410-1423. Google Scholar
- HOLT, R.C. 1992. Turing Reference Manual, 3rd ed. Holt Software Associates, Inc.Google Scholar
- HOWARD, J. H. 1976a. Proving monitors. Commun. ACM 19, 5 (May), 273-279. Google Scholar
- HOWARD J.H. 1976b. Signalling in monitors. In Proceedings of the Second International Conference on Software Engineering'. San Francisco, 47-52. Google Scholar
- HOWARD, J.H. 1982. Reply to "on proof rules for monitors." Oper. Syst. Rev. 16, 5 (Oct.), 8-9. Google Scholar
- KERNIGHAN, B. W., AND RITCHIE, D.M. 1988. The C Programming Language, 2nd ed., Prentice Hall, Englewood Cliffs, N.J. Google Scholar
- KESSELS, J. L.W. 1977. An alternative to event queues for synchronization in monitors. Commun. ACM 20, 7 (July), 500-503. Google Scholar
- LAMPSON, B. W., AND REDELL, D.D. 1980. Experience with processes and monitors in mesa. Commun. ACM23, 2 (Feb.), 105 117. Google Scholar
- MITCHELL, J. G., MAYBURY, W., AND SWEET, R. 1979. Mesa language manual. Tech. Rep. CSL-79-3, Xerox Pale Alto Research Center.Google Scholar
- NELSON, G., Ed. 1991. Systems Programming with Modula-3. Prentice-Hall, Englewood Cliffs, N.J. Google Scholar
- RAJ, R. K., TEMPERO, E., LEVY, H. M., BLACK, A. P., HUTCHINSON, N. C., AND JUL, E. 1991. Emerald: A general-purpose programming language. Softw. Pract. Exper. 21, i (Jan.), 91-118. Google Scholar
- WIRTH, N. 1985. Programming in Modula-2, 3rd, corrected ed. Texts and Monographs in Computer Science, Springer Verlag, New York. Google Scholar
Index Terms
- Monitor classification
Recommendations
The rendezvous and monitor concepts: is there an efficiency difference?
Proceedings of the ACM-SIGPLAN symposium on the Ada programming languageThe efficiency of Ada's rendezvous concept is compared with Concurrent Pascal's monitor concept. The differences between the two approaches, as well as a number of issues relating to their implementation, are presented. The results indicate that a ...
The rendezvous and monitor concepts: is there an efficiency difference?
SIGPLAN '80: Proceedings of the ACM-SIGPLAN symposium on Ada programming languageThe efficiency of Ada's rendezvous concept is compared with Concurrent Pascal's monitor concept. The differences between the two approaches, as well as a number of issues relating to their implementation, are presented. The results indicate that a ...
The rendezvous and monitor concepts: Is there an efficiency difference?
SIGPLAN '80: Proceedings of the ACM-SIGPLAN symposium on The ADA programming languageThe efficiency of Ada's rendezvous concept is compared with Concurrent Pascal's monitor concept. The differences between the two approaches, as well as a number of issues relating to their implementation, are presented. The results indicate that a ...
Comments