{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,11,19]],"date-time":"2023-11-19T17:13:27Z","timestamp":1700414007082},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[1995,3,1]],"date-time":"1995-03-01T00:00:00Z","timestamp":794016000000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Comput. Surv."],"published-print":{"date-parts":[[1995,3]]},"abstract":"\n One of the most natural, elegant, and efficient mechanisms for synchronization and communication, especially for systems with shared memory, is the\n monitor<\/jats:italic>\n . 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.\n <\/jats:p>","DOI":"10.1145\/214037.214100","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T11:32:04Z","timestamp":1027769524000},"page":"63-107","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":48,"title":["Monitor classification"],"prefix":"10.1145","volume":"27","author":[{"given":"Peter A.","family":"Buhr","sequence":"first","affiliation":[{"name":"Univ. of Waterloo, Waterloo, Ont., Canada"}]},{"given":"Michel","family":"Fortier","sequence":"additional","affiliation":[{"name":"Univ. of Waterloo, Waterloo, Ont., Canada"}]},{"given":"Michael H.","family":"Coffin","sequence":"additional","affiliation":[{"name":"EDS Research and Development, Troy, MI"}]}],"member":"320","published-online":{"date-parts":[[1995,3]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1041474.1041476"},{"key":"e_1_2_1_2_1","first-page":"6","article-title":"Letter to the editor","volume":"17","author":"ADAMS J. M.","year":"1983","journal-title":"Oper. Syst. Rev."},{"key":"e_1_2_1_3_1","doi-asserted-by":"crossref","unstructured":"ANDREWS G. R. AND SCHNEIDER F. B. 1983. Concepts and notations for concurrent programming. ACM Comput. Surv. 15 i (Mar.) 3 43. 10.1145\/356901.356903 ANDREWS G. R. AND SCHNEIDER F. B. 1983. Concepts and notations for concurrent programming. ACM Comput. Surv. 15 i (Mar.) 3 43. 10.1145\/356901.356903","DOI":"10.1145\/356901.356903"},{"key":"e_1_2_1_4_1","volume-title":"Concurrent Programming: Principles and Practice. Benjamin\/Cummings, Redwood City, Calif.","author":"ANDREWS G.R.","year":"1991"},{"key":"e_1_2_1_5_1","unstructured":"BRI~CH HANSEN P. 1973. Operating' System Prmciples. Prentice-Hall Englewood Cliffs N.J. BRI~CH HANSEN P. 1973. Operating' System Prmciples. Prentice-Hall Englewood Cliffs N.J."},{"key":"e_1_2_1_6_1","doi-asserted-by":"crossref","first-page":"199","DOI":"10.1109\/TSE.1975.6312840","article-title":"The programming language concurrent pascal","volume":"2","author":"BRINCH HANSEN P.","year":"1975","journal-title":"IEEE Trans. Softw. Eng."},{"key":"e_1_2_1_7_1","first-page":"9","article-title":"The \/~System: Providing lightweight concurrency on shared-memory multiprocessor computers running UNIX","volume":"20","author":"BUHR P. A.","year":"1990","journal-title":"Softw. Pract. Exper."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380220204"},{"key":"e_1_2_1_9_1","volume-title":"Lecture Notes in Computer Science","volume":"16","author":"CAMPBELL R. H.","year":"1974"},{"key":"e_1_2_1_11_1","unstructured":"CHERITON D. R. 1982. The Thoth System: Multi-Process Structuring and Portability. American Elsevier New York. CHERITON D. R. 1982. The Thoth System: Multi-Process Structuring and Portability. American Elsevier New York."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/42392.42400"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/362759.362813"},{"key":"e_1_2_1_14_1","unstructured":"DAHL O.-J. MYHRHAUG B. AND NYGAARD K. 1970. S~mula67 Common Base Language. Norwegian Computing Center Oslo Norway. DAHL O.-J. MYHRHAUG B. AND NYGAARD K. 1970. S~mula67 Common Base Language. Norwegian Computing Center Oslo Norway."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/363095.363143"},{"key":"e_1_2_1_16_1","unstructured":"FORTT~.R M. 1989. Study of monitors. Master's thesis Dept. of Computer Science Univ. of Waterloo Waterloo Ont. FORTT~.R M. 1989. Study of monitors. Master's thesis Dept. of Computer Science Univ. of Waterloo Waterloo Ont."},{"key":"e_1_2_1_18_1","doi-asserted-by":"crossref","unstructured":"GOSLING J. ROSENTHAL D. S. H. AND ARDEN R. J. 1989. The NeWS Book. Springer Verlag New York. GOSLING J. ROSENTHAL D. S. H. AND ARDEN R. J. 1989. The NeWS Book. Springer Verlag New York.","DOI":"10.1007\/978-1-4612-3606-1"},{"key":"e_1_2_1_19_1","unstructured":"GRIES D. 1981. The Science of Computer Programming. Springer Verlag New York. GRIES D. 1981. The Science of Computer Programming. Springer Verlag New York."},{"key":"e_1_2_1_20_1","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1002\/spe.4380110404","article-title":"The design of Edison","volume":"11","author":"HANSEN P. B.","year":"1981","journal-title":"Softw. Pract. Exper."},{"key":"e_1_2_1_21_1","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1002\/spe.4380110403","article-title":"Edison--a multiprocessor language","volume":"11","author":"HANSEN P.B.","year":"1981","journal-title":"Softw. Pract. Exper."},{"key":"e_1_2_1_22_1","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1002\/spe.4380110405","article-title":"Edison programs","volume":"11","author":"HANSEN P. B.","year":"1981","journal-title":"Softw. Pract. Exper."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/355620.361161"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/53580.53581"},{"key":"e_1_2_1_25_1","unstructured":"HOLT R.C. 1992. Turing Reference Manual 3rd ed. Holt Software Associates Inc. HOLT R.C. 1992. Turing Reference Manual 3rd ed. Holt Software Associates Inc."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/360051.360079"},{"key":"e_1_2_1_27_1","first-page":"47","volume-title":"Proceedings of the Second International Conference on Software Engineering'","author":"HOWARD J.H.","year":"1976"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/850726.850727"},{"key":"e_1_2_1_29_1","unstructured":"KERNIGHAN B. W. AND RITCHIE D.M. 1988. The C Programming Language 2nd ed. Prentice Hall Englewood Cliffs N.J. KERNIGHAN B. W. AND RITCHIE D.M. 1988. The C Programming Language 2nd ed. Prentice Hall Englewood Cliffs N.J."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/359636.359710"},{"key":"e_1_2_1_31_1","doi-asserted-by":"crossref","unstructured":"LAMPSON B. W. AND REDELL D.D. 1980. Experience with processes and monitors in mesa. Commun. ACM23 2 (Feb.) 105 117. 10.1145\/358818.358824 LAMPSON B. W. AND REDELL D.D. 1980. Experience with processes and monitors in mesa. Commun. ACM23 2 (Feb.) 105 117. 10.1145\/358818.358824","DOI":"10.1145\/358818.358824"},{"key":"e_1_2_1_33_1","unstructured":"NELSON G. Ed. 1991. Systems Programming with Modula-3. Prentice-Hall Englewood Cliffs N.J. NELSON G. Ed. 1991. Systems Programming with Modula-3. Prentice-Hall Englewood Cliffs N.J."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380210107"},{"key":"e_1_2_1_35_1","volume-title":"3rd, corrected ed. Texts and Monographs in Computer Science","author":"WIRTH N."}],"container-title":["ACM Computing Surveys"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/214037.214100","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,29]],"date-time":"2022-12-29T17:53:01Z","timestamp":1672336381000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/214037.214100"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1995,3]]},"references-count":32,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1995,3]]}},"alternative-id":["10.1145\/214037.214100"],"URL":"https:\/\/doi.org\/10.1145\/214037.214100","relation":{},"ISSN":["0360-0300","1557-7341"],"issn-type":[{"value":"0360-0300","type":"print"},{"value":"1557-7341","type":"electronic"}],"subject":[],"published":{"date-parts":[[1995,3]]},"assertion":[{"value":"1995-03-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}