[comp.parallel] Nested Monitor/Object Calls

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.