donal@maths.tcd.ie (Donal Daly) (03/07/90)
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@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@cs.tcd.ie (Ciaran McHale) Subject: bibliography (long) Message-ID: <1990Mar6.223939.2102@cs.tcd.ie> Reply-To: cjmchale@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@cs.tcd.ie From louis@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@mcc.com Inheritance and Synchronization with Enabled Sets by Chris Tomlinson and Vineet Singh OOPSLA '89 ----- From: freudent@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@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@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@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@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@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@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" }