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.