Duplicate I/O from one terminal to many others...IDEAS??
Donal Daly
donal at maths.tcd.ie
Wed Mar 7 07:31:09 AEST 1990
Hi,
I would like to be able to duplicate the the I/O which appears on
one screen to many others. Is this possible?
The reason that I want to do this, would be in a class situation where
the students could view the lecturer work on his terminal on theirs.
At present piping a sh through a tee command and saving the output in
a file which is then read by "tail -f" commands, it is possible to
partly achieve the above. What it will not do is naturally show the
commands being typed.
Has anybody got any better ideas??
Please reply to daly at cs.tcd.ie (not to the address at the header) and
I will summarize any interesting replies.
Thanks,
Donal (who would really like to get his uucp working properly) Daly
Newsgroups: comp.object
Path: csaran!cjmchale
From: cjmchale at cs.tcd.ie (Ciaran McHale)
Subject: bibliography (long)
Message-ID: <1990Mar6.223939.2102 at cs.tcd.ie>
Reply-To: cjmchale at csaran.UUCP (Ciaran McHale)
Organization: DSG, Dept. of Comp.Sc., Trinity College, Dublin, Ireland.
Date: Tue, 6 Mar 90 22:39:39 GMT
Two months ago I asked for references to:
> 1. How to overcome the basic conflict between inheritance and
> synchronisation.
> 2. Powerful synchronisation mechanisms. Semaphores and Monitors are
> a bit low level. I'm looking for something with similar/more
> expressive power than (Regular, Open, Predicate) Path Expressions.
> 3. Efficient implementation of low level synchronisation primitives.
and I promised to summerise if there was interest. There was plenty of interest
but unfortunately I got swamped with work and didn't didn't have the time to
respond until now. My sincere appologies for not responding sooner.
A summary of responses (mainly in "refer" format) is given below and my own
relevant bibliography enties (in "LaTeX" format) follow at the end.
Thanks to all who responded,
Ciaran.
-------
cjmchale at cs.tcd.ie
>From louis at Xurilka.UUCP
BTW, you might want to look at a paper from AT&T Bell Labs :
"Capsules: A Shared Memory Access Mechanism", by Narain Gehani. It may not
be exactly what you are looking for, but I guess any piece of info is useful.
-----
From: vsingh at mcc.com
Inheritance and Synchronization with Enabled Sets
by Chris Tomlinson and Vineet Singh
OOPSLA '89
-----
From: freudent at eric.ultra.nyu.edu
At the ultralab we have been developing VERY efficient synchronization
stuff for shared memory machines with fetch-and-add for several years.
Below is the bibliography from a paper which
I have recently finished on "Process Coordination with
Fetch-and-increment" (submitted to ICPP; we can send you tech report
version if you ask) which includes several appropriate refs.
.nr II \n(iiu
.nr ii 9n
.EQ
delim off
.EN
.nr RR \n($ru
.nr $r 4u
.uh Bibliography
.\"
.ip [AHU74]
Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman,
.i "The Design and Analysis of Computer Algorithms" ,
Addison-Wesley, 1974.
.\"
.ip [Ber88]
Wayne Berke,
.q "ParFOR\*-A Structured Environment for Parallel FORTRAN" ,
Ultracomputer Note #137,
Courant Institute, New York, NY, 1988.
.\"
.ip [CHP71]
P. Courtois, F. Heymans, and D. Parnas,
.q "Concurrent Control with `Readers' and `Writers'" ,
.i CACM
.b 14
Number 10, pp. 667-668, Oct. 1971.
.\"
.ip [Dim88]
Isaac Dimitrovsky,
.q "ZLISP\*-A Portable Parallel LISP Environment" ,
Doctoral Dissertation,
Courant Institute, New York, NY, 1988.
.\"
.ip [EO88]
Carla Schlatter Ellis and Thomas J. Olson,
.q "Algorithms for Parallel Memory Allocation" ,
.i "Intern. J. of Parallel Programming"
.b 17
Number 4, pp. 303-345, August 1988.
.\"
.ip [Edl84]
Jan Edler,
.q "Readers/Readers Synchronization" ,
Ultracomputer System Software Note #46,
Courant Institute, New York, NY, 1984.
.\"
.ip [FW78]
Steven Fortune, and James Wylie,
.q "Parallelism in Random Access Machines" ,
.i "Proc. 10th ACM Symp. on Theory of Computation" ,
pp. 114-118, 1978.
.\"
.ip [GSS89]
James R. Goodman, J. Smith, Gurindar S. Sohi,
.q "Restricted Fetch and \(*f Operations for Parallel Processing",
to appear in
.i "Intern. Conf. on Supercomputing" ,
Hearklion-Crete, Greece, June, 1989.
.\"
.ip [GVW89]
James R. Goodman, Mary K. Vernon, Phillip J. Woest,
.q "Efficient Synchronization Primitives for Large-scale Cache-coherent
Multiprocessors" ,
.i "Proc. ASPLOS III" ,
pp. 64-75, April 1989.
.\"
.ip [GW88]
James R. Goodman and Phillip J. Woest,
.q "The Wisconsin Multicube: A New Large-Scale Cache-Coherent Multiprocessor"
.i "Proc. 15th Annual Intern. Symp. on Comp. Arch." ,
pp. 422-431, 1988.
.\"
.ip [GG83]
Allan Gottlieb, Ralph Grishman, Clyde P. Kruskal,
Kevin P. McAuliffe, Lawrence Rudolph, and Marc Snir,
.q "The NYU Ultracomputer\*-Designing an MIMD Shared Memory Parallel Computer"
,
.i "IEEE Trans. Comp." ,
pp. 175-189, February 1983.
.\"
.ip [GK81]
Allan Gottlieb and Clyde P. Kruskal,
.q "Coordinating Parallel Processors: A Partial Unification" ,
.i "Computer Architecture News" ,
pp. 16-24, October 1981.
.\"
.ip [GLR83]
Allan Gottlieb, Boris Lubachevsky, and Larry Rudolph,
.q "Basic Techniques for the Efficient Coordination of Very Large Numbers of
Cooperating Sequential Processors" ,
.i "ACM TOPLAS"
.b 5
pp. 164-189, April 1983.
Details on multiqueues appear only in
Ultracomputer Note #16,
Courant Institute, NYU, New York, 1980, from which the
.i TOPLAS
version was derived.
.\"
.ip [GG85]
William Growther, John Goodhue, Edward Starr, Robert Thomas, Walter Milliken,
and Tom Blackadar,
.q "Performance Measurements on a 128-Node Butterfly Parallel Processor" ,
.i "Proc ICCP" ,
pp. 531-540, 1985.
.\"
.ip [PB85]
Gregory F. Pfister, William C. Brantley, David A. George,
Steve L. Harvey, Wally J. Kleinfielder, Kevin P. McAuliffe,
Evelin S. Melton, V. Alan Norton, and Jodi Weiss,
.q "The IBM Research Parallel Processor Prototype (RP3): Introduction and
Architecture" ,
.i "Proc. ICCP" ,
pp. 764-771, Aug. 1985.
.\"
.ip [Sni82]
Marc. Snir,
.q "On Parallel Search" ,
.i "Proc. Principles of Distributed Computing" ,
pp. 242-253, Aug 1982.
.\"
.ip [Sto82]
Harold S. Stone,
.q "Parallel Memory Allocation Using the Fetch-and-add Instruction" ,
Technical Report RC9674, IBM Thomas J. Watson Research Center,
November 1982.
.\"
.ip [YTL86]
Pen-Chung Yew, Nian-Feng Tzeng, and Duncan H. Lawrie,
.q "Distributing Hot-spot Addressing in Large-Scale Multiprocessors" ,
.i "Proc. ICPP" ,
1986.
.\"
.ip [TY90]
Peiyi Tang, and Pen-Chung Yew,
.q "Algorithms for Hot-Spot Addressing" ,
.i "J. of Parallel and Distributed Computing" ,
to appear.
.\"
.ip "[VGS89]"
Mary K. Vernon, Rageev Jog, and Gurindar S. Sohi,
.q "Analysis of Hierarchical Cache-Coherent Multiprocessors"
.i "Performance Evaluation" ,
.b 9
Number 4, August 1989.
.\"
.ip [Wil88]
James Wilson,
.q "Operating System Data Structures for Shared-Memory MIMD Machines with
Fetch-and-Add",
Doctoral Disseration,
Courant Institute, New York, NY, 1988.
.nr ii \n(IIu
.rm II
.nr $r \n(RR
.rm RR
.EQ
delim $$
.EN
-----
From: forman%nathaniel.sw.MCC.COM at MCC.com
At MCC we have be working on a language called Raddle that has
a synchronization/communication primitive called N-party interaction,
which is a specific case of multiparty interaction.
Below are some references on Raddle and the more general notion multiparty
interactions:
%T On the Design of Large Distributed Systems
%A I. R. Forman
%R STP-098-86 (Rev. 1.0)
%D January, 1987
%I Microelectronics and Computer Technology Corp.
%C Austin, Texas
%O (Preliminary version in \fIProc. First Int'l Conf. on Computer Languages\fP,
October 25-27, 1986, Miami, Florida.)
%A I. R. Forman
%T Design by Decomposition of Multiparty Interactions in Raddle87
%J Fifth International Workshop on Software Specification and Design
%C Pittsburgh, Pa.
%D May 19-20, 1989
%P 2-10
%A P. Attie
%T A Guide to Raddle87 Semantics
%I Microelectronics and Computer Technology Corp.
%R STP-340-87
%D January 11, 1987
%A M. Evangelist
%A V. Shen
%A I. Forman
%A M. Graf
%T Using Raddle to Design Distributed Systems
%R STP-285-87
%I Microelectronics and Computer Technology Corp.
%D 1987
%O Presented at the 10th International Conf. on Software Engineering, April,
1988.
%A M. Evangelist
%A N. Francez
%A S. Katz
%T Multiparty Interactions for Interprocess Communication and Synchronization
%J IEEE Trans. on Software Engineering
%V 15
%N 11
%D November, 1989
%P 1417-1426
-----
From: Mr David Murphy <dvjm%cs.glasgow.ac.uk at NSFnet-Relay.ac.uk>
You should be (and probably are) aware of the considerable
theoretical literature on synchronisation problems/failures.
If you read German, Mendler's thesis Uber die Realisierbarkeit
von Synchronisationshardware (Studienarbeit, Lehrstuhl fuer
Rechnerarchitektur und Verkehrstheorie, Universitaet
Erlangen-Nuernberg) is most comprehensive and interesting.
Otherwise try Barros & Johnson, Equivalence of the Arbiter,
the Synchroniser, the Latch and the Inertial Delay, IEEE
Trans. on Comp. C-32, 7, Pg. 603-614 and Chaney & Molnar,
Anomalous behaviour of synchroniser and arbiter circuits.
IEEE Trans. on Comp. C-22, 3, 421-422. I am sure that there
is an Edinburgh (LFCS) thesis on the implementation and
analysis of (fairly complex) synchronisation mechanisms,
but I can't find the reference easily. I think it's by
Mitchell, but that may be garbage.
-----
From: Oscar Nierstrasz <oscar at cuisun.unige.ch>
Here are a few references you might find useful. I think the Kafura &
Lee paper finally appeared in ECOOP '89. You should also check out the
paper by Tomlinson & Singh in OOPSLA '89 on "Inheritance &
Synchronization with Enabled Sets". We have also noted the problem
with concurrency vs inheritance in the design of the language Hybrid.
(See Nier87c and Papa89a.) We are currently working on an approach to
concurrency based on a CCS-like model of concurrency (objects as
synchronously communicating agents) and types as "protocols" (using a
restricted kind of temporal logic based on the abstract states in which
the object may find itself).
%L Agha86b
%K olit obib concurrency
%A G.A. Agha
%T ACTORS: A Model of Concurrent Computation in Distributed Systems
%I The MIT Press
%C Cambridge, Massachusetts
%D 1986
%L Amer87a
%K olit concurrency oocp87
%A P. America
%T POOL-T: A Parallel Object-Oriented Language
%B Object-Oriented Concurrent Programming
%E A. Yonezawa, M. Tokoro
%I The MIT Press
%C Cambridge, Massachusetts
%D 1987
%P 199-220
%L Kafu88a
%K olit obib concurrency inheritance
%A D.G. Kafura
%A K.H. Lee
%T Inheritance in Actor Based Concurrent Object-Oriented Languages
%R TR 88-53
%I Dept. Comp. Sci., Virgian Tech
%D 1988
%O Submitted for publication
%L Nier87c
%K olit obib concurrency triggers hybrid chloe oopsla87
%A O.M. Nierstrasz
%T Active Objects in Hybrid
%J ACM SIGPLAN Notices, Proceedings OOPSLA '87
%V 22
%N 12
%P 243-253
%D Dec 1987
%L Papa89a
%K olit chloe ood89
%A M. Papathomas
%T Concurrency Issues in Object-Oriented Programming Languages
%B Object Oriented Development
%E D.C. Tsichritzis
%I Centre Universitaire d'Informatique, University of Geneva
%D July 1989
%P 207-245
%L Toml88a
%K olit obib concurrency oocda89
%A C. Tomlinson
%A M. Scheevel
%T Concurrent Object-Oriented Programming Languages
%B Object-Oriented Concepts, Databases and Applications
%E W. Kim and F. Lochovsky
%I ACM Press and Addison-Wesley
%D 1989
%P 79-124
%L Yoko86a
%K olit obib ooplas concurrentsmalltalk oopsla86
%A Y. Yokote
%A Mario Tokoro
%T The Design and Implementation of ConcurrentSmalltalk
%J ACM SIGPLAN Notices, Proceedings OOPSLA '86
%V 21
%N 11
%P 331-340
%D Nov 1986
-----
From: Colin Atkinson <ca at doc.imperial.ac.uk>
In a recent USENET message you asked for information about languages
which have addresses the traditional conflict between inheritance and
concurrency, and which provide ``high-level'' synchronisation
mechanism equivalent to path expressions. In the European Esprit project
DRAGON we have developed an object-oriented language, called DRAGOON, which
handles synchronisation concerns by means of a special enhancement of
multiple inheritance known as ``behavioural inheritance''. This
permits the programmer to superimpose an abstract (generic) synchronisation
strategy, specified in terms of deontic logic expressions over history
functions, on the methods of a normal ``sequential'' class at any time in the
program development process. The resulting ``behavioured'' class
``inherits'' the functional properties of its sequential parent
and the ``synchronisation'' properties of its ``behavioural'' parent.
Since the synchronisation strategy is not embedded in the code of class
bodies (in contrast with most existing concurrent OOLs), different strategies
can be superimposed on the same sequential class simply by reperfroming the
behavioural inheritance step.
I would be glad to supply you with further information if you are
interested.
Colin Atkinson.
-----
From: Wolfgang Mueller <wolfgang at cadlab.uucp>
Hello,
I think there was an article in the following book discussing
the problem of inheritance in concurrent systems. There are also
some low level concepts of synchronization of several concurrent oo
programming languages. But I think you already got this book.
Yonezawa A., Tokoro M., Object-Oriented Programming, MIT Press, 1987.
-----
From: Rik Fischer Smoody <riks at csl.sony.co.jp>
> 1. How to overcome the basic conflict between inheritance and
> synchronisation.
I think someone fed your a line and you took it....
I don't see a basic conflict at all unless you fall into the common trap
of thinking that inheritance can only be done by latest-possible
binding time ancestor search for a method.
Peter Deutch's work at ParcPlace has long shown that you can do better.
The Tektronix Smalltalk also did better.
The Modular Smalltalk idea of that group lives on at Instantiations.
As with "real" inheritance, you can bind your genetics as soon as
you decide who your parents are. It's really rare that I change the
definitions in a reasonably well-designed set of abstract superclasses.
Even when hacking, it's not a big problem.
If I dynamically teach some object (or class) a new set of tricks, it's
safest to check that it's appropriate to do so, and to update
the method dictionary iff it is.
See also David Unger's work on Self (several OOPSLA papers over the years
but especially '89)
Again, method dictionary is established at the time of definition.
It can be updated as necessary.
-----
@incollection{Path-Expressions-1,
author = "R. H. Campbell and A. N. Habermann",
title = "{The Specification Of Process Synchronisation
by Path Expressions}",
booktitle = "Lecture Notes in Computer Science, No. 16",
publisher = "Springer Verlag",
year = "1973",
pages = "89--102",
annote = "This is the original paper on path expressions.
The version of path expressions described here is
a bit primitive but the paper is still worth reading.",
keywords = "k-path-expressions, k-regular-path-expressions,
k-synchronisation"
}
@inbook{Path-Expressions-2,
author = "Maekawa and Oldehoeft and Oldehoeft",
title = "{Operating Systems---Advanced Concepts}",
chapter = "3.4.2",
pages = "71--79",
publisher = "Benjamin/Cummings",
year = "1987",
annote = "This gives an overview of both Open and
Predicate Path Expressions",
keywords = "k-path-expressions, k-predicate-path-expressions,
k-open-path-expressions, k-synchronisation"
}
@unpublished{Path-Expressions-3,
author = "S. J. Goldsack",
title = "{Path Expressions and Ada Programs
(Second Draft)}",
annote = "This paper compares Open Path Expressions to
Petri Nets and shows by example how to prove the
correctness of a Path Expression.",
month= aug,
year = "1986",
abstract = "An overview of path expressions as a means of
specifying synchronisation laws for concurrent
systems. It is written as a possible chapter for
the book on specifying concurrency, being produced
by Ada Europe Formal Methods Group, and gives some
attention to the relation of path expressions to the
semantics of concurrency in Ada programs.",
keywords = "k-path-expressions, k-open-path-expressions,
k-synchronisation, k-ada"
}
@article{Path-Expressions-4,
author = "Prof. S. J. Goldsack and T. Moreton",
title = "{Ada Package Specifications: Path Expressions
and Monitors}",
journal = "{IEE PROC.}",
year = "1982",
volume = "129",
number = "2",
pages = "49--54",
month = mar,
abstract = "The paper describes how path expressions can be
introduced in an Ada package specification to define
the permitted interleavings between calls on the
functions and procedures in the visible part of the
package. A preprocessor is described which synthesises
the internal task and entry calls required to enforce
the specified protocols.",
keywords = "k-path-expressions, k-open-path-expressions,
k-synchronisation, k-ada"
}
@article{Path-Expressions-5,
author = "Roy H. Campbell and Robert B. Kolstad",
title = "{An Overview of Path Pascal's Design and the
Path Pascal User Manual}",
journal = "ACM Sigplan Notices",
year = "1980",
volume = "15",
number = "9",
pages = "13--24",
month = sep,
annote = "Path Pascal uses Open Path Expressions.",
keywords = "k-path-expressions, k-open-path-expressions,
k-path-pascal"
}
@inproceedings{Path-Expressions-6,
author = "Sten Andler",
title = "{Predicate Path Expressions}",
booktitle = "Sixth Annual ACM Synposium on Principles of
Programming Languages",
year = "1979",
pages = "226--236",
address = "San Antonio, Texas",
annote = "This paper describes the usage of Predicate Path
Expressions, their formal semantics and an
effecient implementation.",
keywords = "k-path-expressions, k-predicate-path-expressions"
}
@inproceedings{Other-Powerful-Sync-1,
author = "Chris Tomlinson and Vineet Singh",
title = "{Inheritance and Synchronisation with
Enabled-Sets}",
booktitle = "{OOPSLA} '89 Proceedings",
year = "1989",
pages = "103--112",
month = oct,
annote = "Enabled-Sets offer an easy way to inherit
synchronisation constraints. Also see
\cite{Other-Powerful-Sync-2}.",
keywords = "k-enabled-sets, k-inheritance, k-synchronisation"
}
@inproceedings{Other-Powerful-Sync-2,
author = "Dennis G. Kafura and Keung Hae Lee",
title = "{Inheritance in Actor Based Concurrent
Object-Orientated Languages}",
booktitle = "{ECOOP} 89",
year = "1989",
editor = "Stephen Cook",
pages = "131--145",
publisher = "Cambridge University Press",
month = jul,
annote = "This paper also appears in {\em The Computer
Journal\/}, VOL. 32, No. 4, 1989, pages 297--303.
The mechanism presented, {\em behaviour abstraction\/},
is really Enabled-Sets\cite{Other-Powerful-Sync-1}
by a different name.",
keywords = "k-enabled-sets, k-inheritance, k-synchronisation"
}
@book{Other-Powerful-Sync-3,
author = "Fran\c{c}oise Andr\'{e} and Daniel Herman and
Jean-Pierre Verjus",
title = "{Synchronisation of Parallel Programs}",
publisher = "North Oxford Academic",
year = "1985",
series = "Studies in Computer Science",
note = "Original French language edition
(Synchronisation de Programmes Parall\`{e}les, Dunod)
\copyright BORDAS 1983",
annote = "A whole book on using boolean expressions as a
means of expressing synchronisation constraints. This
book seems to have provided a basis for the
{\em Activation Conditions\/} of the Guide
language\cite{Comandos-Sync-3}.",
keywords = "k-synchronisation, k-synchronisation-counters"
}
@inproceedings{Theory-of-Synch-1,
author = "Toby Bloom",
title = "{Evaluating Synchronisation Mechanisms}",
booktitle = "Seventh International ACM Symposium on Opertating
System Principles",
year = "1979",
pages = "24--32",
annote = "This paper discusses six features which an ideal
synchronisation mechanism should process and
discusses how existing mechanisms compare to this
ideal.",
abstract = "In recent years, many high-level synchronisation
constructs have been proposed. each claims to satisfy
criteria such as expressive power, ease of use,
and modifiability. Because these terms are so
impercise, we have no good methods for evaluating how
well these mechanisms actually meet such requirements.
This paper presents a methodology for performing such
an evaluation. Synchronisation problems are
categorised according to some basic properties, and
this categorisation is used in formulating more
precise definitions of the criteria mentioned, and in
devising techniques for accessing how well those
criteria are met.",
keywords = "k-synchronisation"
}
@article{Other-Powerful-Sync-4,
author = "Gregory R. Andrews",
title = "{Synchronising Resources}",
journal = "ACM Transactions on Programming Languages and
Systems",
year = "1981",
volume = "3",
number = "4",
pages = "405--430",
month = oct,
keywords = "k-synchronisation"
}
@article{Other-Powerful-Sync-5,
author = "Denis Caromel",
title = "{Service, Asynchrony, and Wait-By-Necessity}",
journal = "Journal of Object Orientated Programming (JOOP)",
year = "1989",
pages = "12--22",
month = nov,
annote = "This paper discusses the addition to Eiffel of a
{\em process object\/} so that objects are split into
two basic categories---passive and active.",
keywords = "k-eiffel, k-active-objects"
}
@article{Path-Expressions-7,
author = "Arthur E. Oldehoeft and Steven F. Jennings",
title = "{Dataflow Resource Managers and Their
Synthesis from Open Path Expressions}",
journal = "{IEEE} Transactions on Software Engineering",
year = "1984",
volume = "SE-10",
number = "3",
pages = "244--256",
month = may,
abstract = "The control of concurrent access to shared resources
is an important feature of both centralised and
distributed operating systems. In conventional
systems, exclusive access is the rule while concurrent
access is the exception. Dataflow computer systems,
along with an applicative style of programming,
provide an execution environment in which this
philosophy is reversed. In these latter systems, it is
necessary to reexamine the manner in which
synchronisation of access to shared resources is
specified and implemented. A basic design for a
dataflow resource manager is reviewed, illustrating
the clear separation between access mechanism and
scheduling policy. The semantics of the access
mechanism is based solely on the principle of data
dependency. Specifications are presented for a general
scheduler to further constrain or order access to the
resource. Using ``open path expressions'' as a very
high-level specification language for synchronisation,
it is shown how to automatically synthesise a
scheduler as a distributed network of communicating
modules.",
keywords = "k-path-expressions k-open-path-expressions,
k-data-flow"
}
@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. 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"
}
@misc{Comandos-Sync-3,
author = "D. Decouchant and S. Krakowiak and M. Meysembourg
and R. Riveill and X. Rousset de Pina",
title = "{A Synchronisation Mechanism for Typed Objects
in a Distributed System}",
howpublished = "Presented at the workshop on
``Object-Based Concurrent Programming'', {OOPSLA} '88",
year = "1988",
note = "Abstract in {\em ACM Sigplan Notices\/},
24(4):105--107, April 1989",
abstract = "This paper presents a mechanism for synchronising
shared objects in a distributed system based on
persistant, typed objects.",
annote = "The Guide language uses {\em Activation Conditions\/},
which are boolean expressions on synchronisation
counters and instance variables, for expressing
synchronisation constraints.",
keywords = "k-synchronisation, k-guide, k-activation-conditions,
k-comandos"
}
@inproceedings{Misc-3,
author = "J. Eliot and B. Moss and Walter H. Kohler",
title = "{Concurrency Features for the Trellis/Owl
Language}",
booktitle = "{ECOOP} '87---European Conference on Object-Oriented
Programming",
year = "1987",
editor = "G. Goose and J. Hartmanis",
pages = "171--180",
publisher = "Springer-Verlag",
month = jun,
note = "This is Volume 276 of {\em Lecture Notes in Computer
Science\/}.",
keywords = "k-trellis, k-owl, k-concurrency, k-locks, k-queues"
}
@article{Misc-4,
author = "David L. Detlefs and Maurice P. Herlihy and
Jeannette M. Wing",
title = "{Inheritance of Synchronisation and Recovery
Properties in Avalon/C++}",
journal = "{IEEE} Computer",
year = "1988",
pages = "57--69",
month = dec,
keywords = "k-inheritance, k-synchronisation, k-transactions,
k-atomicity"
}
@inproceedings{Misc-5,
author = "Pierre America",
title = "{Inheritance and Subtyping in a Parallel
Object-Oriented Language}",
booktitle = "{ECOOP} '87---European Conference on Object-Oriented
Programming",
year = "1987",
editor = "G. Goos and J. Hartmanis",
pages = "234--242",
publisher = "Springer-Verlag",
month = jun,
note = "This is Volume 276 of {\em Lecture Notes in Computer
Science\/}.",
keywords = "k-inheritance"
}
@inproceedings{Low-Level-Sync-1,
author = "D. Decouchant",
title = "{Effecient Implementation of low-level
Synchronisation Primitives in the UNIX-based
GUIDE kernel}",
booktitle = "EUUG Autumn '89 Conference Proceedings",
year = "1989",
pages = "283--294",
month = sep,
abstract = "When developing new and complex applications on top
of UNIX system, implementors are usually faced with
synchronisation problems whose solution is not simple.
This is especially true when such applications are in
fact a new system level which defines a different
model of synchronisation. Standard mechanisms
normally provided are simple, general but not
efficient enough when heavily used. Synchronisation
implementation should be of low cost with respect to
other system components, but this is not usually the
case. This paper first summarises the synchronisation
mechanism required by our object-oriented environment,
then describes the implementation of our final
solution, which was derived in several steps, and
finally presents experience and performance
measurements of different progressive improvements.",
annote = "This paper shows how semaphore operations may be
implemented which will be up to ninety times faster
than those provided by the UNIX kernel.",
keywords = "k-comandos, k-guide, k-semaphores"
}
@inproceedings{Other-Powerful-Sync-6,
author = "J. E. Grass and R. H. Campbell",
title = "{Mediators: A Synchronisation Mechanism}",
booktitle = "Proceedings of the Conference on Distributed
Computer Systems",
year = "1986",
month = sep,
pages = "468--477",
organization = "IEEE",
abstract = "This paper describes a construct called a
{\em mediator\/}. Mediators support synchronisation
and scheduling for systems programming within
distributed systems. Mediators are based on a resource
view of systems, and fit within a programming
methodology that emphesises resource modularity,
synchronisation modularity and encapsulated
concurrency. The paper examines other existing
synchronisation mechanisms in the light of modular
programming requirements. Subsequently, a sample
syntax and semantics for mediators is presented with
many examples.
The mediator includes many interesting features.
These include: an adaptation of guarded commands;
{\em keys\/} that allow requests to be examined and
manipulated before they recieve service; parallel
guard execution; coupled and uncoupled modes of
service execution.
Finally this paper discusses a few aspects of
implementation.",
annote = "The mediator concept is very powerful but it provides
it's power at the price of some complexity.",
keywords = "k-synchronisation, k-mediators"
}
@article{Low-Level-Sync-2,
author = "Leslie Lamport",
title = "{A Fast Mutual Exclusion Algorithm}",
journal = "ACM Transations on Computer Systems",
year = "1987",
volume = "5",
number = "1",
pages = "1--11",
month = feb,
abstract = "A new solution to the mutual exclusion problem is
presented that, in the absence of contention,
requires only seven memory accesses. It assumes
atomic reads and atomic writes to shared registers.",
keywords = "k-mutual-exclusion"
}
@unpublished{Comandos-Sync-7,
author = "D. Decouchant and P. le Dot and M. Riveill",
title = "{A Synchronisation Mechanism for an Object Oriented
Distributed System}",
note = "(I'm not sure if this paper has been published)",
year = "1989 or 1990",
abstract = "This paper presents a mechanism for synchronising
shared objects in a distributed system based on
persistant, typed objets. Synchronisation constraints
are expressed as separate control clauses and are
factored for a class of objects. The interference of
this mechanism with inheritance and transactions is
examined and solutions are proposed. Examples of
synchronised objects are provided and a
semaphore-based implementation of this mechanism is
described.",
annote = "This is basically an updated version of
\cite{Comandos-Sync-3}",
keywords = "k-comandos, k-guide, k-activation-conditions,
k-synchronisation, k-inheritance, k-transactions"
}
@inproceedings{Other-Powerful-Sync-7,
author = "O. M. Nierstrasz",
title = "{Active Objects in Hybrid}",
booktitle = "{OOPSLA} '87 Proceedings",
editor = "Norman Meyrowitz",
organization = "ACM",
note = "Special issue of {\em ACM SIGPLAN Notices\/},
22(12):243--253",
abstract = "Most object-oriented languages are strong on
reusability or on strong-typing, but weak on
concurrency. In response to this gap, we are developing
{\em Hybrid\/}, an object-oriented language in which
objects are the active entities. Objects in Hybrid are
organised into {\em domains\/}, and concurrent
executions into {\em activities\/}. All object
communications are based on remote procedure-calls.
Unstructured {\em sends\/} and {\em accepts\/} are
forbidden. To this the mechanisms of
{\em delegation\/} and {\em delay queues\/} are added
to enable switching and triggering of activities.
Concurrent subactivities and atomic actions are
provided for compactness and simplicity. We show how
solutions to many important concurrent problems, such
as a pipelining, constraint management and
``administration'' can be compactly expressed using
these mechanisms.",
keywords = "k-hybrid, k-queues, k-delegation, k-atomicity,
k-active-objects"
}
@article{Other-Powerful-Sync-8,
author = "Anand Tripathi and Mehmet Aksit",
title = "{Communication, Scheduling, and Resource Management
in SINA}",
journal = "JOOP",
year = "1988",
pages = "24--37",
month = nov,
keywords = "k-sina, k-concurrency, k-synchronisation"
}
More information about the Comp.unix.wizards
mailing list