{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,24]],"date-time":"2023-10-24T05:19:02Z","timestamp":1698124742231},"reference-count":83,"publisher":"Wiley","issue":"4","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":6056,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1990,4]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The goal of this paper is to return attention to two problems that arise in the context of supporting the monitor as a mechanism for concurrent programming. This paper will re\u2010examine the monitor concept in its original context\u2014a multiprocessing environment implemented on a single processor sharing memory with and being interrupted by asynchronous peripheral devices\u2014and will address the two previously unresolved problems. The first is the conflict between the immediate resumption requirement in explicit signalling and the policies and priorities of the process scheduler. The second is the possibility of deadlock inherent in nested monitors and in its most important instance, the dynamic resource allocation problem. After briefly describing the historical context of these two problems, the paper proposes a language structure called a signalling region that together with the notion of encapsulation by modules solves the immediate resumption problem and avoids the nested monitor problem. The former is done by a combination of the signal\u2010and\u2010return semantics of Concurrent Pascal and the signal\u2010and\u2010continue semantics of Mesa and StarMod. The latter is done by suggesting that mutual exclusion and data encapsulation are distinct concepts that, if separated, make nested encapsulation possible while avoiding the problems of nested mutual exclusion. Classical examples of the use of signalling regions in an extended Modula\u20102 are given as well as an implementation by translation to unextended Modula\u20102 together with a Kernel module.<\/jats:p>","DOI":"10.1002\/spe.4380200402","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T00:33:05Z","timestamp":1163809985000},"page":"325-356","source":"Crossref","is-referenced-by-count":3,"title":["Signalling regions: Multiprocessing in a shared memory reconsidered"],"prefix":"10.1002","volume":"20","author":[{"given":"Charles W.","family":"Reynolds","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"Communicating Sequential Processes","author":"Hoare C. A. R.","year":"1985"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380121103"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/850657.850658"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/947783.948654"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380150706"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/365559.365617"},{"key":"e_1_2_1_7_3","doi-asserted-by":"publisher","DOI":"10.1145\/357980.357989"},{"key":"e_1_2_1_8_2","volume-title":"Programming Languages","author":"Dijkstra E. W.","year":"1968"},{"key":"e_1_2_1_8_3","volume-title":"Technical Report EWD\u2010123","year":"1965"},{"issue":"5","key":"e_1_2_1_9_2","doi-asserted-by":"crossref","first-page":"321","DOI":"10.1145\/355592.365595","article-title":"\u2018Additional comments on a problem in concurrent programming control","volume":"9","author":"Knuth D. E.","journal-title":"Comm. ACM"},{"issue":"1","key":"e_1_2_1_9_3","first-page":"22","volume":"26","year":"1966","journal-title":"Comm. ACM"},{"key":"e_1_2_1_10_2","volume-title":"Algorithms for Mutual Exclusion","author":"Raynal M.","year":"1986"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00289519"},{"key":"e_1_2_1_11_3","volume-title":"Operating Systems Techniques","author":"Hoare C. A. R.","year":"1972"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00288684"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/361454.361473"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4757-3472-0_6"},{"key":"e_1_2_1_15_2","volume-title":"Structured Programming","author":"Dahl O.\u2010J.","year":"1972"},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/365813.365819"},{"key":"e_1_2_1_17_2","volume-title":"Operating System Principles","author":"Brinch\u2010Hansen P.","year":"1973"},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/355620.361161"},{"key":"e_1_2_1_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1975.6312840"},{"key":"e_1_2_1_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1977.229907"},{"key":"e_1_2_1_21_2","volume-title":"The Architecture of Concurrent Programs","author":"Brinch\u2010Hansen P.","year":"1977"},{"key":"e_1_2_1_22_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1978.231498"},{"key":"e_1_2_1_23_2","volume-title":"Structured Concurrent Programming with Operating Systems Applications","author":"Holt R. C.","year":"1978"},{"key":"e_1_2_1_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/947923.947931"},{"key":"e_1_2_1_25_2","volume-title":"Concurrent Euclid, the Unix System, and Tunis","author":"Holt R. C.","year":"1983"},{"key":"e_1_2_1_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6313049"},{"key":"e_1_2_1_27_2","volume-title":"Principles of Concurrent Programming","author":"Ben\u2010Ari M.","year":"1982"},{"key":"e_1_2_1_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/948249.948251"},{"key":"e_1_2_1_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/948566.948568"},{"key":"e_1_2_1_30_2","unstructured":"R. A.KarpandD. C.Luckham \u2018Verification of fairness in an implementation of monitors\u2019 Proc. 2nd Int. Conf. on Software Engineering San Francisco 1976."},{"key":"e_1_2_1_31_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380060310"},{"key":"e_1_2_1_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/948596.948601"},{"key":"e_1_2_1_33_2","doi-asserted-by":"crossref","unstructured":"A. R.SaxenaandT. H.Bredt \u2018A structured specification of a hierarchical operating system\u2019 Proc. Int. Conf. on Reliable Software Los Angeles Reprinted in SIGPLAN Notices 10 (6) 310\u2013318(1975).","DOI":"10.1145\/390016.808453"},{"key":"e_1_2_1_34_2","unstructured":"A. R.SaxenaandT. H.Bredt \u2018Verification of a monitor specification\u2019 Proc. 2nd Int. Conf. on Software Engineering San Francisco 1976."},{"key":"e_1_2_1_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/948606.948610"},{"key":"e_1_2_1_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/948606.948611"},{"key":"e_1_2_1_37_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380160507"},{"key":"e_1_2_1_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/850652.850654"},{"key":"e_1_2_1_39_2","doi-asserted-by":"publisher","DOI":"10.1147\/sj.72.0074"},{"key":"e_1_2_1_40_2","volume-title":"Structured System Programming","author":"Welsh J.","year":"1980"},{"key":"e_1_2_1_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/358818.358824"},{"key":"e_1_2_1_42_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380141204"},{"key":"e_1_2_1_43_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070102"},{"key":"e_1_2_1_44_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070104"},{"key":"e_1_2_1_45_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070506"},{"key":"e_1_2_1_46_2","doi-asserted-by":"publisher","DOI":"10.1145\/850644.850645"},{"key":"e_1_2_1_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/775323.775325"},{"key":"e_1_2_1_48_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110304"},{"key":"e_1_2_1_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/850648.850650"},{"key":"e_1_2_1_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/24714.24724"},{"key":"e_1_2_1_51_2","unstructured":"C. W.Reynolds \u2018The historical evolution of monitors and their languages\u2019 Technical Report Department of Mathematics and Computer Science James Madison University August1988."},{"key":"e_1_2_1_52_2","volume-title":"Operating Systems Concepts","author":"Peterson J. L.","year":"1985"},{"key":"e_1_2_1_53_2","doi-asserted-by":"publisher","DOI":"10.1145\/359642.359651"},{"key":"e_1_2_1_54_2","doi-asserted-by":"publisher","DOI":"10.1145\/359636.359710"},{"key":"e_1_2_1_55_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(79)90145-5"},{"key":"e_1_2_1_56_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110404"},{"key":"e_1_2_1_57_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1979.234186"},{"key":"e_1_2_1_58_2","doi-asserted-by":"crossref","unstructured":"E. M.ClarkeandL.Liu \u2018Approximate algorithms for optimization of busy waiting in parallel programs\u2019 Technical Report TR\u201012\u201379 Aiken Computation Laboratory Harvard 1979.","DOI":"10.1109\/SFCS.1979.5"},{"key":"e_1_2_1_59_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00288656"},{"key":"e_1_2_1_60_2","doi-asserted-by":"crossref","unstructured":"M.SintzoffandA.van Lamsweerde \u2018Constructing correct and efficient concurrent programs\u2019 Proc. Int. Conf. on Reliable Software Los Angeles. Reprinted in SIGPLAN Notices 10 (6) 319\u2013326(1975).","DOI":"10.1145\/390016.808454"},{"key":"e_1_2_1_61_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00289516"},{"key":"e_1_2_1_62_2","unstructured":"J. H.Howard \u2018Signaling in monitors\u2019 Proc. 2nd Int. Conf. on Software Engineering San Francisco 1976."},{"key":"e_1_2_1_63_2","doi-asserted-by":"publisher","DOI":"10.1145\/43895.43896"},{"key":"e_1_2_1_64_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380161205"},{"key":"e_1_2_1_65_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380160402"},{"key":"e_1_2_1_66_2","doi-asserted-by":"publisher","DOI":"10.1145\/359863.359878"},{"key":"e_1_2_1_67_2","doi-asserted-by":"publisher","DOI":"10.1145\/357195.357198"},{"key":"e_1_2_1_68_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-96717-7"},{"key":"e_1_2_1_69_2","unstructured":"C. W.Reynolds \u2018Signaling regions an introduction by classical examples\u2019 Technical Report Department of Mathematics and Computer Science James Madison University September1988."},{"key":"e_1_2_1_70_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380060307"},{"key":"e_1_2_1_71_2","doi-asserted-by":"publisher","DOI":"10.1145\/366663.366704"},{"key":"e_1_2_1_72_2","volume-title":"Information Processing 77, Proceedings of the IFIP Congress","author":"Jammel A. J.","year":"1977"},{"key":"e_1_2_1_73_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(72)90034-8"},{"key":"e_1_2_1_74_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(74)90041-6"},{"key":"e_1_2_1_75_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1977.231130"},{"key":"e_1_2_1_76_2","doi-asserted-by":"crossref","unstructured":"C. A. R.Hoare \u2018Data reliability\u2019 Proc. Int. Conf. on Reliable Software Los Angeles 1975. SIGPLAN Notices 10 (6) (1975).","DOI":"10.1145\/390016.808476"},{"key":"e_1_2_1_77_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380120303"},{"key":"e_1_2_1_78_2","doi-asserted-by":"publisher","DOI":"10.1145\/358506.358513"},{"key":"e_1_2_1_79_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110305"},{"key":"e_1_2_1_80_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010220"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380200402","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380200402","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T04:20:55Z","timestamp":1698034855000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380200402"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1990,4]]},"references-count":83,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1990,4]]}},"alternative-id":["10.1002\/spe.4380200402"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380200402","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1990,4]]}}}