\newcommand{\etalchar}[1]{$^{#1}$} \begin{thebibliography}{AGMvR93} \bibitem[ACG86]{linda:L+F} Sudhir Ahuja, Nicholas Carriero, and David Gelernter. \newblock {Linda} and friends. \newblock {\em IEEE Computer}, 19(8):26--34, August 1986. \bibitem[AD76]{ftol:primarybackup} P.~A. Alsberg and J.~D. Day. \newblock A principle for resilient sharing of distributed resources. \newblock In {\em Proceedings of the Second International Conference on Software Engineering}, pages 627--644, October 1976. \bibitem[AG91a]{linda:LPB} Shakil Ahmed and David Gelernter. \newblock A higher-level environment for parallel programming. \newblock Technical Report YALEDU/DCS/RR-877, Yale University Department of Computer Science, November 1991. \bibitem[AG91b]{linda:LPB2} Shakil Ahmed and David Gelernter. \newblock Program builders as alternatives to high-level languages. \newblock Technical Report YALEDU/DCS/RR-887, Yale University Department of Computer Science, November 1991. \bibitem[AGMvR93]{ftol:corto1} Carlos Almedia, Brad Glade, Keith Marzullo, and Robbert van Renesse. \newblock High availability in a real-time system. \newblock {\em ACM Operating Systems Review}, 27(2):82--87, April 1993. \bibitem[Akl89]{parallel:akl} Selim~G. Akl. \newblock {\em The Design and Analysis of Parallel Algorithms}. \newblock Prentice Hall, 1989. \bibitem[And91]{parallel:andrewscp} Gregory~R. Andrews. \newblock {\em Concurrent Programming: Principles and Practice}. \newblock Benjamin/Cummings, Redwood City, California, 1991. \bibitem[AO93]{parallel:srbook} Gregory~R. Andrews and Ronald~A. Olsson. \newblock {\em The SR Programming Language: Concurrency in Practice}. \newblock Benjamin/Cummings, Redwood City, California, 1993. \bibitem[AS91]{linda:plinda} Brian~G. Anderson and Dennis Shasha. \newblock Persistent {Linda}: {Linda} + transactions + query processing. \newblock In J.P. Ban{\^a}tre and D.~Le~M{\'e}tayer, editors, {\em Research Directions in High-Level Parallel Programming Languages}, number 574 in LNCS, pages 93--109. Springer, 1991. \bibitem[ASC85]{ftol:virtualpartitions} Amr~El Abbadi, Dale Skeen, and Flaviu Cristian. \newblock An efficient, fault-tolerant protocol for replicated data management. \newblock In {\em Proceedings of the 4th ACM SIGACT/SIGMOD Conference on Principles of Database Systems}, 1985. \bibitem[Bal90]{dist:baldissbook} Henri~E. Bal. \newblock {\em Programming Distributed Systems}. \newblock Silicon Press, Summit, New Jersey, 1990. \bibitem[BHJL86]{black86} Andrew~P. Black, Norman Hutchinson, Eric Jul, and Henry~M. Levy. \newblock Object structure in the emerald system. \newblock In {\em Proceedings of the First ACM Conference on Object-Oriented Programming Systems, Languages and Applications}, pages 78--86, Portland, Oregon, September 1986. \bibitem[BJ87]{birman87} Kenneth~P. Birman and Thomas~A. Joseph. \newblock Reliable communication in the presence of failures. \newblock {\em ACM Transactions on Computer Systems}, 5(1):47--76, February 1987. \bibitem[Bjo92]{linda:bjorn} Robert~D. Bjornson. \newblock {\em {L}inda on Distributed Memory Multiprocessors}. \newblock PhD thesis, Department of Computer Science, Yale University, November 1992. \bibitem[BKT92]{dist:orca} Henri~E. Bal, M.~Frans Kaashoek, and Andrew~S. Tanenbaum. \newblock {Orca}: A language for parallel programming of distributed systems. \newblock {\em IEEE Transactions on Software Engineering}, 18(3):190--205, March 1992. \bibitem[BLL94]{linda:p4} Ralph~M. Butler, Alan~L. Leveton, and Ewing~L. Lusk. \newblock p4-{L}inda: A portable implementation of {L}inda. \newblock In {\em Proceedings of the Second International Symposium on High Performance Distributed Computing}, pages 50--58, Spokane, Washington, July 1994. \bibitem[BMST92]{ftol:primarybackup2} Navin Budhiraja, Keith Marzullo, Fred~B. Schneider, and Sam Toueg. \newblock Primary-backup protocols: Lower bounds and optimal implementations. \newblock In {\em Proceedings of the Third IFIP Working Conference on Dependable Computing for Critical Applications}, pages 187--198, Mondello, Italy, 1992. \bibitem[BN84]{dist:rpc-tocs} Andrew~D. Birrell and Bruce~Jay Nelson. \newblock Implementing remote procedure calls. \newblock {\em ACM Transactions on Computer Systems}, 2(1):39--59, February 1984. \bibitem[BS91]{linda:ftlinda-ftcs} David~E. Bakken and Richard~D. Schlichting. \newblock Tolerating failures in the bag-of-tasks programming paradigm. \newblock In {\em Proceedings of the Twenty-First International Symposium on Fault-Tolerant Computing}, pages 248--255, June 1991. \bibitem[BS95]{linda:ftlinda-tpds} David~E. Bakken and Richard~D. Schlichting. \newblock Supporting fault-tolerant parallel programming in {L}inda. \newblock {\em IEEE Transactions on Parallel and Distributed Systems}, 6(3), March 1995. \newblock To appear. \bibitem[BSS91]{ftol:isis} Kenneth Birman, Andr\`{e} Schiper, and Pat Stepheson. \newblock Lightweight causal and atomic group multicast. \newblock {\em ACM Transactions on Computer Systems}, 9(3):272--314, August 1991. \bibitem[CASD85]{ftol:diffusion} Flaviu Cristian, Houtan Aghili, Ray Strong, and Danny Dolev. \newblock Atomic broadcast: {F}rom simple message diffusion to {B}yzantine agreement. \newblock In {\em Proceedings of the Fifteenth International Symposium on Fault-Tolerant Computing}, pages 200--206. IEEE Computer Society Press, June 1985. \bibitem[CBZ91]{dist:munin} John~B. Carter, John~K. Bennett, and Willy Zwaenepoel. \newblock Implementation and performance of {M}unin. \newblock In {\em Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles}, 1991. \bibitem[CD94]{linda:mom} Scott~R. Cannon and David Dunn. \newblock Adding fault-tolerant transaction processing to {L}inda. \newblock {\em Software---Practice and Experience}, 24(5):449--466, May 1994. \bibitem[CG86]{linda:SNET} Nicholas Carriero and David Gelernter. \newblock The {S}/{N}et's {Linda} kernel. \newblock {\em ACM Transactions on Computer Systems}, 4(2):110--129, May 1986. \bibitem[CG88]{linda:AEL} Nicholas Carriero and David Gelernter. \newblock Applications experience with {Linda}. \newblock {\em ACM SIGPLAN Notices (Proc. ACM SIGPLAN PPEALS)}, 23(9):173--187, September 1988. \bibitem[CG89]{linda:CON} Nicholas Carriero and David Gelernter. \newblock {Linda} in context. \newblock {\em Communications of the ACM}, 32(4):444--458, April 1989. \bibitem[CG90]{linda:howbook} Nicholas Carriero and David Gelernter. \newblock {\em How to Write Parallel Programs: A First Course}. \newblock MIT Press, 1990. \bibitem[CG93]{linda:minix} P.~Ciancarini and N.~Guerrini. \newblock {L}inda meets {M}inix. \newblock {\em ACM SIGOPS Operating Systems Review}, 27(4):76--92, October 1993. \bibitem[CGKW93]{linda:piranha2} Nicholas Carriero, David Gelernter, David Kaminsky, and Jeffery Westbrook. \newblock Adaptive parallelism with {P}iranha. \newblock Technical Report YALE/DCS/RR-954, Yale University Department of Computer Science, February 1993. \bibitem[CGM92]{linda:hetero} Nicholas Carriero, David Gelernter, and Timothy~G. Mattson. \newblock {L}inda in heterogenous computing environments. \newblock In {\em Proceedings of the Workshop on Heterogenous Processing}. IEEE, March 1992. \bibitem[Cia93]{linda:distlogic} Paolo Ciancarini. \newblock Distributed programming with logic tuple spaces. \newblock Technical Report UBLCS-93-7, Laboratory for Computer Science, University of Bologna, April 1993. \bibitem[CKM92]{linda:mts} Shigeru Chiba, Kazuhiko Kato, and Takishi Masuda. \newblock Exploiting a weak consistency to implement distributed tuple space. \newblock In {\em Proceedings of the 12th International Conference on Distributed Computing Systems}, pages 416--423, June 1992. \bibitem[Com88]{dist:comertcp} Douglas Comer. \newblock {\em Internetworking with TCP/IP}. \newblock Prentice-Hall, 1988. \bibitem[CP89]{dist:namingtut} Douglas~E. Comer and Larry~L. Peterson. \newblock Understanding naming in distributed systems. \newblock {\em Distributed Computing}, 3(2):51--60, 1989. \bibitem[Cri91]{ftol:understanding} Flaviu Cristian. \newblock Understanding fault-tolerant distributed systems. \newblock {\em Communications of the {A}{C}{M}}, 34(2):57--78, February 1991. \bibitem[CS93]{linda:ieeespectrum} Leigh Cagan and Andrew~H. Sherman. \newblock {L}inda unites network systems. \newblock {\em IEEE Spectrum}, 30(12):31--35, December 1993. \bibitem[Dij75]{parallel:guarded} Edsger~W. Dijkstra. \newblock Guarded commands, nondeterminacy, and formal derivation of programs. \newblock {\em Communications of the ACM}, 18(8):453--457, August 1975. \bibitem[DoD83]{parallel:ada} U.S. Department~of Defense. \newblock {\em Reference Manual for the Ada Programming Language}. \newblock Washington D.C., 1983. \bibitem[For93a]{dist:mpi-draft} Message Passing~Interface Forum. \newblock Document for a standard messge-passing interface, October 1993. \newblock (available from netlib). \bibitem[For93b]{dist:mpi-tutorial} The~MPI Forum. \newblock {M}{P}{I}: A message passing interface. \newblock In {\em Proceedings of Supercomputing '93}, pages 878--883, Los Alamitos, California, November 1993. IEEE Computer Society Press. \bibitem[GC92]{linda:coord} David Gelernter and Nicholas Carriero. \newblock Coordination languages and their significance. \newblock {\em Communications of the ACM}, 35(2):97--107, February 1992. \bibitem[Gel85]{linda:GEN} David Gelernter. \newblock Generative communication in {Linda}. \newblock {\em ACM Transactions on Programming Languages and Systems}, 7(1):80--112, January 1985. \bibitem[GK92]{linda:piranha1} David Gelernter and David Kaminsky. \newblock Supercomputing out of recycled garbage: Preliminary experience with {P}iranha. \newblock In {\em Proceedings of the Sixth ACM International Conference on Supercomputing}, Washington, D.C., July 1992. \bibitem[GMS91]{garcia91} Hector Garcia-Molina and Annemarie Spauster. \newblock Ordered and reliable multicast communication. \newblock {\em ACM Transactions on Computer Systems}, 9(3):242--271, August 1991. \bibitem[Gra78]{ftol:twophase1} Jim Gray. \newblock Notes on database operating systems. \newblock In {\em Operating Systems: An Advanced Course, Lecture Notes in Computer Science}. Springer-Verlag, Berlin, 1978. \bibitem[Gra86]{ftol:objectaction} James~N. Gray. \newblock An approach to decentralized computer systems. \newblock {\em IEEE Transactions on Software Engineering}, SE-12(6):684--692, June 1986. \bibitem[Has92]{linda:proset} Willi Hasselbring. \newblock A formal z specification of proset-{L}inda. \newblock Technical Report 04--92, University of Essen Department of Computer Science, 1992. \bibitem[Hoa78]{parallel:csp} C.A.R. Hoare. \newblock Communicating sequential processes. \newblock {\em Communications of the ACM}, 21(8):666--677, August 1978. \bibitem[HP90]{misc:quanarch} John~L. Hennessy and David~A. Patterson. \newblock {\em Computer Architecture: A Quantitative Approach}. \newblock Morgan Kaufmann (Palo Alto, California), 1990. \bibitem[HP91]{xkerneltse} Norman~C. Hutchinson and Larry~L. Peterson. \newblock The {\it x}-kernel: An architecture for implementing network protocols. \newblock {\em IEEE Transactions on Software Engineering}, 17(1):64--76, January 1991. \bibitem[HW87]{herlihy87} Maurice~P. Herlihy and Jeannette~M. Wing. \newblock Avalon: Language support for reliable distributed systems. \newblock In {\em Digest of Papers, The Seventeenth International Symposium on Fault-Tolerant Computing}, pages 89--94. IEEE Computer Society, IEEE Computer Society Press, July 1987. \bibitem[Jac90]{ftol:radOD} Jonathan Jacky. \newblock Inside risks: Risks in medical electronics. \newblock {\em Communications of the ACM}, 33(12):138, December 1990. \bibitem[Jal94]{ftol:jalotebook} Pankaj Jalote. \newblock {\em Fault Tolerance in Distributed Systems}. \newblock Prentice Hall, 1994. \bibitem[Jel90]{linda:eiffel} Robert Jellinghaus. \newblock Eiffel {Linda}: An object-oriented {Linda} dialect. \newblock {\em ACM SIGPLAN Notices}, 25(12):70--84, December 1990. \bibitem[JS94]{linda:plinda2} Karpjoo Jeong and Dennis Shasha. \newblock {P}{L}inda 2.0: {A} transactional/checkpointing approach to fault tolerant {L}inda. \newblock In {\em Proceedings of the Thirteenth Symposium on Reliable Distributed Systems}, Dana Point, California, October 1994. \newblock To appear. \bibitem[Kam90]{linda:OGI} Srikanth Kambhatla. \newblock Recovery with limited replay: Fault-tolerant processes in {Linda}. \newblock Technical Report CS/E 90-019, Department of Computer Science, Oregon Graduate Institute, 1990. \bibitem[Kam91]{linda:OGI2} Srikanth Kambhatla. \newblock Replication issues for a distributed and highly available {L}inda tuple space. \newblock Master's thesis, Department of Computer Science, Oregon Graduate Institute, 1991. \bibitem[Kam94]{linda:piranhadiss} David Kaminsty. \newblock {\em Adaptive Parallelism with {P}iranha}. \newblock PhD thesis, Department of Computer Science, Yale University, May 1994. \bibitem[KMBT92]{dist:orcaftol} M.~Frans Kaashoek, Raymond Michiels, Henri~E. Bal, and Andrew~S. Tannenbaum. \newblock Transparent fault-tolerance in parallel {Orca} programs. \newblock In {\em Proceedings of the Third Symposium on Experiences with Distributed and Multiprocessor Systems}, pages 297--311, Newport Beach, California, March 1992. \bibitem[KT87]{ftol:checkpoint} Richard Koo and Sam Toueg. \newblock Checkpointing and rollback-recovery for distributed systems. \newblock {\em IEEE Transactions on Software Engineering}, 13(1):23--31, January 1987. \bibitem[Lam78]{dist:logicalclocks} Leslie Lamport. \newblock Time, clocks, and the ordering of events in a distributed system. \newblock {\em Communications of the ACM}, 21(7):558--565, July 1978. \bibitem[Lam81]{ftol:AtomicXns} Butler Lampson. \newblock Atomic transactions. \newblock In {\em Distributed Systems---Architecture and Implementation}, pages 246--265. Springer-Verlag, Berlin, 1981. \bibitem[Lap91]{ftol:dependability} Jean-Claude Laprie. \newblock {\em Dependability: Basic Concepts and Terminology}, volume~4 of {\em Dependable Computing and Fault-Tolerant Systems}. \newblock Springer-Verlag, 1991. \bibitem[Lei89]{linda:SPEC} Jerrold Leichter. \newblock {\em Shared Tuple Memories, Shared Memories, Buses and LAN's---{Linda} Implementation Across the Spectrum of Connectivity}. \newblock PhD thesis, Department of Computer Science, Yale University, July 1989. \bibitem[{LRW}91]{linda:LRWman} {LRW Systems}. \newblock {\em {LRW$^{^{\rm T\kern-.04em M}}$ {\sc Linda-C} for VAX User's Guide}}, 1991. \newblock Order number VLN-UG-102. \bibitem[LS83]{liskov83} Barbara Liskov and Robert Scheifler. \newblock Guardians and actions: Linguistic support for robust, distributed programs. \newblock {\em ACM Transactions on Programming Languages and Systems}, 5(3):381--404, July 1983. \bibitem[LSP82]{ftol:byzantine1} Leslie Lamport, Robert Shostak, and Marshall Pease. \newblock The {B}yzantine generals problem. \newblock {\em ACM Transactions on Programming Languages and Systems}, 4(3):382--401, July 1982. \bibitem[Mis92]{ftol:consuldiss} Shivakant Mishra. \newblock {\em Consul: A Communication Substrate for Fault-Tolerant Distributed Programs}. \newblock PhD thesis, Department of Computer Science, The University of Arizona, February 1992. \bibitem[MPS93a]{ftol:consuldse} Shivikant Mishra, Larry~L. Peterson, and Richard~D. Schlichting. \newblock Consul: A communication substrate for fault-tolerant distributed programs. \newblock {\em Distributed Systems Engineering}, 1:87--103, 1993. \bibitem[MPS93b]{ftol:consulspe} Shivikant Mishra, Larry~L. Peterson, and Richard~D. Schlichting. \newblock Experience with modularity in {C}onsul. \newblock {\em Software --- Practice and Experience}, 23(10):1059--1075, October 1993. \bibitem[MS92]{ftol:abstractions} Shivikant Mishra and Richard~D. Schlichting. \newblock Abstractions for constructing dependable distributed systems. \newblock Technical Report 92-19, Department of Computer Science, The University of Arizona, August 1992. \bibitem[Nel81]{dist:rpc} Bruce~J. Nelson. \newblock {\em Remote Procedure Call}. \newblock PhD thesis, Computer Science Department, Carnegie-Mellon University, 1981. \bibitem[Neu92]{ftol:attcrash} Peter~G. Neumann. \newblock Inside risks: Avoiding weak links. \newblock {\em Communications of the ACM}, 35(12):146, December 1992. \bibitem[NL91]{dist:dsmsurvey} Bill Nitzberg and Virginia Lo. \newblock Distributed shared memory: A survey of issues and algorithms. \newblock {\em Computer}, 24(8):52--60, August 1991. \bibitem[PBS89]{ftol:psync} Larry~L. Peterson, Nick~C. Buchholz, and Richard~D. Schlichting. \newblock Preserving and using context information in interprocess communication. \newblock {\em ACM Transactions on Computer Systems}, 7(3):217--246, August 1989. \bibitem[Pow91]{ftol:delta4Book} David Powell, editor. \newblock {\em Delta-4: A Generic Architecture for Dependable Distributed Computing}. \newblock Springer-Verlag, 1991. \bibitem[PSB{\etalchar{+}}88]{ftol:delta4} David Powell, Douglass Seaton, Gottfried Bonn, Paulo Verissimo, and F.~Waeselynk. \newblock The {D}elta-4 approach to dependability in open distributed computing systems. \newblock In {\em Proceedings of the Eighteenth Symposium on Fault-Tolerant Computing}, Tokyo, June 1988. \bibitem[PTHR93]{linda:patterson} Lewis~I. Patterson, Richard~S. Turner, Robert~M. Hyatt, and Kevin~D. Reilly. \newblock Construction of a fault-tolerant distributed tuple-space. \newblock In {\em Proceedings of the 1993 Symposium on Applied Computing}, pages 279--285. ACM/SIGAPP, February 1993. \bibitem[RSB90]{ftol:clocksynchsurv} Parameswaran Ramanathan, Kang~G. Shin, and Ricky~W. Butler. \newblock Fault-tolerant clock synchronization in distributed systems. \newblock {\em IEEE Computer}, 23(10):33--42, October 1990. \bibitem[SBA93]{linda:glendause} Benjamin~R. Seyfarth, Jerry~L. Bickham, and Mangaiarkarasi Arumughum. \newblock Glenda installation and use. \newblock University of Southern Mississippi, November 1993. \bibitem[SBT94]{bakken:ftlangchap} Richard~D. Schlichting, David~E. Bakken, and Vicraj~T. Thomas. \newblock Language support for fault-tolerant parallel and distributed programming. \newblock In G.~Koob and C.~Lau, editors, {\em Foundations of Ultradependable Computing: Paradigms for Dependable Applications}, pages 55--78. Kluwer Academic Publishers, 1994. \bibitem[SC91]{linda:distML} Ellen~H. Siegel and Eric~C. Cooper. \newblock Implementing distributed {L}inda in standard {M}{L}. \newblock Technical Report CMU-CS-91-151, School of Computer Science, Carnegie Mellon University, 1991. \bibitem[Sch90]{ftol:SM} Fred Schneider. \newblock Implementing fault-tolerant services using the state machine approach. \newblock {\em ACM Computing Surveys}, 22(4):299--319, December 1990. \bibitem[Seg93]{linda:segall} Edward Segall. \newblock {\em Tuple Space Operations: Multiple-Key Search, On-line Matching, and Wait-free Synchronization}. \newblock PhD thesis, Department of Electrical Engineering, Rutgers University, 1993. \bibitem[SS83]{ftol:FSTOP} Richard~D. Schlichting and Fred~B. Schneider. \newblock Fail-stop processors: An approach to designing fault-tolerant computing systems. \newblock {\em ACM Transactions on Computer Systems}, 1(3):222--238, August 1983. \bibitem[Sun90]{dist:pvm} V.~S. Sunderam. \newblock {P}{V}{M}: A framework for parallel distributed computing. \newblock {\em Concurrency: Practice and Experience}, 2(4):315--339, December 1990. \bibitem[TKB92]{dist:orcacomputer} Andrew~S. Tannenbaum, M.~Frans Kaashoek, and Henri~E. Bal. \newblock Parallel programming using shared objects and broadcasting. \newblock {\em IEEE Computer}, 25(8):10--19, August 1992. \bibitem[TM81]{tannenbaum81} Andrew~S. Tannenbaum and Sape~J. Mullender. \newblock An overview of the {A}moeba distributed operating system. \newblock {\em ACM Operating Systems Review}, 15(3):51--64, July 1981. \bibitem[TS92]{dist:consensus} John Turek and Dennis Shasha. \newblock The many faces of consensus in distributed systems. \newblock {\em Computer}, 25(6):8--17, June 1992. \bibitem[VM90]{ftol:membership1} Paulo Verissimo and Jos\'{e}~Alves Marques. \newblock Reliable broadcast for fault-tolerance on local computer networks. \newblock In {\em Proceedings of the Ninth Symposium on Reliable Distributed Systems}, pages 54--63, Huntsville, AL, October 1990. \bibitem[WL86]{wilkes86} C.~Thomas Wilkes and Richard~J. LeBlanc. \newblock Rationale for the design of {A}oelus: a systems programming language for the action/object system. \newblock In {\em Proceedings of the 1986 IEEE International Conference on Computer Languages}, pages 107--122, October 1986. \bibitem[WL88]{linda:super} Robert Whiteside and Jerrold Leichter. \newblock Using {L}inda for supercomputing on a local area network. \newblock In {\em Proceedings of Supercomputing 88}, 1988. \bibitem[XL89]{linda:XU} Andrew Xu and Barbara Liskov. \newblock A design for a fault-tolerant, distributed implementation of {Linda}. \newblock In {\em Proceedings of the Nineteenth International Symposium on Fault-Tolerant Computing}, pages 199--206, June 1989. \bibitem[Xu88]{linda:XUMS} Andrew Xu. \newblock A fault-tolerant network kernel for {Linda}. \newblock Master's thesis, MIT Laboratory for Computer Science, August 1988. \bibitem[Zav93]{zave93} Pamela Zave. \newblock Feature interaction and formal specifications in telecommunications. \newblock {\em IEEE Computer}, 26(8):20--29, August 1993. \bibitem[Zen90]{linda:transputer} Steven~Ericsson Zenith. \newblock {L}inda coordination language; subsystem kernel architecture (on transputers). \newblock Technical Report YALEU/DCS/RR-794, Department of Computer Science, Yale University, May 1990. \end{thebibliography}