cjmchale@swift.cs.tcd.ie (10/17/90)
Years ago, there was a discussion in Operating Systems Review (annotated bibliography given below) about the problem of Nested Monitor Calls. Now in the age of Object-Oriented systems I think it should be retermed "Nested Object Calls" but the _basic_ principles are the same. Does anyone know of any more recent research which has been done in this area? References, opinions etc would be appreciated. @article{Monitors-2, author = "Andrew Lister", title = "{The Problem of Nested Monitor Calls}", journal = "ACM Operating Systems Review", year = "1977", volume = "11", number = "3", pages = "5--7", month = jul, annote = "This paper states that a problem exists if monitors make calls on each other. Should mutual be released when such a call is made? If not then deadlock might occur. On the other hand if mutual exclusion is released then the calling monitor must be in a consistant state when making the call. The author invites others to suggest solutions. See \cite{Monitors-3} for a discussion on four different approaches. The discussion on Nested Monitor Calls is also continued in \cite{Monitors-7,Monitors-8,Monitors-9,Monitors-10,Monitors-11}. Since there is a lot of ongoing research into concurrent object-oriented systems, the problem of nested monitor calls has become the problem of nested {\em (synchronised) object\/} calls and poses some additional problems if the synchronisation constraints of the objects are allowed to be more complex than just mutual exclusion.", keywords = "k-monitors, k-nested-monitor-calls" } @article{Monitors-3, author = "Bruce K. Haddon", title = "{Nested Monitor Calls}", journal = "ACM Operating Systems Review", year = "1977", volume = "11", number = "4", pages = "18--23", month = oct, annote = "This paper discusses four mechanisms for dealing with the problem of nested monitor calls and argues that one of these mechanisms is the most viable approach.", keywords = "k-monitors, k-nested-monitor-calls" } @article{Monitors-7, author = "David L. Parnas", title = "{The Non-Problem of Nested Monitor Calls}", journal = "ACM Operating Systems Review", year = "1978", volume = "12", number = "1", pages = "12-14", month = jan, annote = "In \cite{Monitors-2}, Lister asked for general discussion on the topic of ``Nested Monitor Calls''. When such as call is made, should mutual exclusion be released? If yes then there is the programmer must ensure that the first monitor is in a consistant state when the second monitor is called. If no then there is the risk of deadlock. Parnas holds the opinion that sometimes it is desirable to retain the mutual exclusion and at other times it is desirable to release it while a nested monitor call takes place. To this end, he argues that the programmer should be free to decide either semantics for each nested monitor call. He summerises by saying: \begin{quote} `` I would prefer a language in which I can build monitors appropiate to my system's needs, to a language that has a particular implementation of a special type of monitor built into it.'' \end{quote}", keywords = "k-monitors, k-nested-monitor-calls" } @misc{Monitors-8, author = "Andrew Lister", title = "Reply to \cite{Monitors-7}", howpublished = "ACM Operating Systems Review, 12(1):15", month = jan, year = "1978", annote = "Lister's defence is summerised in {\em ``part of the philosophy underlying monitors is that such issues as the release of exclusion should not be context dependent or left to the (error prone) control of the programmer.''\/}", keywords = "k-monitors, k-nested-monitor-calls" } @misc{Monitors-9, author = "Alfons J. Jammel", title = "Letter to the editor", howpublished = "ACM Operating Systems Review, 12(1):16", month = jan, year = "1978", annote = "In reply to the discussion on Nested Monitor Calls \cite{Monitors-2,Monitors-3}, the author argues that monitors are not a very good basis for a synchronisation mechanism since he feels that {\em ``programs should cooperate by having activities done by each other rather than by synchronising themselves while each program is doing its actions by itself.''\/}", keywords = "k-monitors, k-nested-monitor-calls k-concurrency" } @misc{Monitors-10, author = "S. P. Leonard Wagstaff", title = "Letter to the editor", howpublished = "ACM Operating Systems Review, 12(1):17--18", month = jan, year = "1978", annote = "This is another follow up to the discussion started by Lister \cite{Monitors-2}. The author points out some of the flaws in the monitor concept and says {\em ``perhaps monitors should be developed into (or replaced by) a language construct which can \underline{only} be used in a sensible way.''\/}", keywords = "k-monitors, k-nested-monitor-calls" } @article{Monitors-11, author = "Horst Wettstein", title = "{The Problem of Nested Monitor Calls Revisited}", journal = "ACM Operating Systems Review", year = "1978", volume = "12", number = "1", pages = "19--23", month = jan, annote = "This is another follow up to Lister's call for discussion on the problem of Nested Monitor calls \cite{Monitors-2}. The author discusses a mechanism for dealing with the problem.", keywords = "k-monitors, k-nested-monitor-calls" } Thanks in advance, Ciaran. -- Ciaran McHale "An inappropiate joke for every occasion" Department of Computer Science, Trinity College, Dublin 2, Ireland. Telephone: +353-1-772941 ext 1538 FAX: +353-1-772204 Telex: 93782 TCD EI email: cjmchale@cs.tcd.ie or cjmchale%cs.tcd.ie@cunyvm.cuny.edu My opinions are mine but you can share them too if you want.