Concurrent and distributed computing in Java

Concurrent and Distributed Computing in Java addresses fundamental concepts in concurrent computing with Java examples. The book consists of two parts. The first part deals with techniques for programming in shared-memory based systems. The book covers concepts in Java such as threads, synchronized methods, waits, and notify to expose students to basic concepts for multi-threaded programming. It also includes algorithms for mutual exclusion, consensus, atomic objects, and wait-free data structures. The second part of the book deals with programming in a message-passing system. This part covers resource allocation problems, logical clocks, global property detection, leader election, message ordering, agreement algorithms, checkpointing, and message logging. Primarily a textbook for upper-level undergraduates and graduate students, this thorough treatment will also be of interest to professional programmers.

[1]  Madalene Spezialetti,et al.  Efficient Distributed Snapshots , 1986, ICDCS.

[2]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[3]  Mukesh Singhal,et al.  Advanced Concepts In Operating Systems , 1994 .

[4]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[5]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[6]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[7]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[8]  Valmir Carneiro Barbosa,et al.  An introduction to distributed algorithms , 1996 .

[9]  S. Venkatesan,et al.  Testing and Debugging Distributed Programs Using Global Predicates , 1995, IEEE Trans. Software Eng..

[10]  Michel Raynal,et al.  Distributed algorithms and protocols , 1988 .

[11]  Leslie Lamport,et al.  How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor , 1997, IEEE Trans. Computers.

[12]  Kerry Raymond,et al.  A tree-based algorithm for distributed mutual exclusion , 1989, TOCS.

[13]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[14]  C. V. Ramamoorthy,et al.  Protocols for Deadlock Detection in Distributed Database Systems , 1982, IEEE Transactions on Software Engineering.

[15]  Vijay K. Garg Elements of distributed computing , 2002 .

[16]  David Peleg,et al.  Crumbling walls: a class of practical and efficient quorum systems , 1995, PODC '95.

[17]  Kim Taylor The Role of Inhibition on Asynchronous Consistent-Cut Protocols , 1989, WDAG.

[18]  Leslie Lamport,et al.  A new solution of Dijkstra's concurrent programming problem , 1974, Commun. ACM.

[19]  Fred B. Schneider,et al.  Faster Possibility Detection by Combining Two Approaches , 1995, WDAG.

[20]  Nancy A. Lynch,et al.  Discarding Obsolete Information in a Replicated Database System , 1987, IEEE Transactions on Software Engineering.

[21]  Edsger W. Dijkstra,et al.  Self-stabilizing systems in spite of distributed control , 1974, CACM.

[22]  Joseph Y. Halpern,et al.  Knowledge and common knowledge in a distributed environment , 1984, JACM.

[23]  Dana Angluin,et al.  Local and global properties in networks of processors (Extended Abstract) , 1980, STOC '80.

[24]  Hagit Attiya,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 1998 .

[25]  Andrew Birrell,et al.  Implementing Remote procedure calls , 1983, SOSP '83.

[26]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[27]  Leslie Lamport,et al.  Reaching Agreement in the Presence of Faults , 1980, JACM.

[28]  Mustaque Ahamad,et al.  Slow memory: weakening consistency to enhance concurrency in distributed shared memories , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[29]  Baruch Awerbuch,et al.  Complexity of network synchronization , 1985, JACM.

[30]  Vijay K. Garg,et al.  Some Optimal Algorithms for Decomposed Partially Ordered Sets , 1992, Inf. Process. Lett..

[31]  Vijay K. Garg,et al.  Principles of Distributed Systems , 1995, Springer US.

[32]  Robert H. Thomas,et al.  A Majority consensus approach to concurrency control for multiple copy databases , 1979, ACM Trans. Database Syst..

[33]  André Schiper,et al.  The Causal Ordering Abstraction and a Simple Way to Implement it , 1991, Inf. Process. Lett..

[34]  Gary L. Peterson,et al.  An O(nlog n) Unidirectional Algorithm for the Circular Extrema Problem , 1982, TOPL.

[35]  Robert E. Strom,et al.  Optimistic recovery in distributed systems , 1985, TOCS.

[36]  Ashok K. Agrawala,et al.  An optimal algorithm for mutual exclusion in computer networks , 1981, CACM.

[37]  Andrzej M. Goscinski,et al.  Distributed operating systems - the logical design , 1991 .

[38]  Maurice Herlihy,et al.  Impossibility and universality results for wait-free synchronization , 1988, PODC '88.

[39]  Mukesh Singhal,et al.  Efficient Distributed Detection of Conjunctions of Local Predicates , 1998, IEEE Trans. Software Eng..

[40]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[41]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[42]  Dale Skeen,et al.  Crash recovery in a distributed database system , 1982 .

[43]  Divyakant Agrawal,et al.  An efficient and fault-tolerant solution for distributed mutual exclusion , 1991, TOCS.

[44]  Keith Marzullo,et al.  Efficient detection of a class of stable properties , 1994, Distributed Computing.

[45]  Ichiro Suzuki,et al.  A distributed mutual exclusion algorithm , 1985, TOCS.