Skip to content

Concurrent and Distributed Computing in Java

Best in textbook rentals since 2012!

ISBN-10: 047143230X

ISBN-13: 9780471432302

Edition: 2004

Authors: Vijay K. Garg

List price: $176.95
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

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…    
Customers also bought

Book details

List price: $176.95
Copyright year: 2004
Publisher: John Wiley & Sons, Incorporated
Publication date: 2/4/2004
Binding: Hardcover
Pages: 336
Size: 6.46" wide x 9.43" long x 0.94" tall
Weight: 1.320
Language: English

List of Figures
Preface
Introduction
Introduction
Distributed Systems versus Parallel Systems
Overview of the Book
Characteristics of Parallel and Distributed Systems
Design Goals
Specification of Processes and Tasks
Runnable Interface
Join Construct in Java
Thread Scheduling
Problems
Bibliographic Remarks
Mutual Exclusion Problem
Introduction
Peterson's Algorithm
Lamport's Bakery Algorithm
Hardware Solutions
Disabling Interrupts
Instructions with Higher Atomicity
Problems
Bibliographic Remarks
Synchronization Primitives
Introduction
Semaphores
The Producer-Consumer Problem
The Reader-Writer Problem
The Dining Philosopher Problem
Monitors
Other Examples
Dangers of Deadlocks
Problems
Bibliographic Remarks
Consistency Conditions
Introduction
System Model
Sequential Consistency
Linearizability
Other Consistency Conditions
Problems
Bibliographic Remarks
Wait-Free Synchronization
Introduction
Safe, Regular, and Atomic Registers
Regular SRSW Register
SRSW Multivalued Register
MRSW Register
MRMW Register
Atomic Snapshots
Consensus
Universal Constructions
Problems
Bibliographic Remarks
Distributed Programming
Introduction
InetAddress Class
Sockets based on UDP
Datagram Sockets
DatagramPacket Class
Example Using Datagrams
Sockets Based on TCP
Server Sockets
Example 1: A Name Server
Example 2: A Linker
Remote Method Invocations
Remote Objects
Parameter Passing
Dealing with Failures
Client Program
Other Useful Classes
Problems
Bibliographic Remarks
Models and Clocks
Introduction
Model of a Distributed System
Model of a Distributed Computation
Interleaving Model
Happened-Before Model
Logical Clocks
Vector Clocks
Direct-Dependency Clocks
Matrix Clocks
Problems
Bibliographic Remarks
Resource Allocation
Introduction
Specification of the Mutual Exclusion Problem
Centralized Algorithm
Lamport's Algorithm
Ricart and Agrawala's Algorithm
Dining Philosopher Algorithm
Token-Based Algorithms
Quorum-Based Algorithms
Problems
Bibliographic Remarks
Global Snapshot
Introduction
Chandy and Lamport's Global Snapshot Algorithm
Global Snapshots for non-FIFO Channels
Channel Recording by the Sender
Application: Checkpointing a Distributed Application
Problems
Bibliographic Remarks
Global Properties
Introduction
Unstable Predicate Detection
Application: Distributed Debugging
A Token-Based Algorithm for Detecting Predicates
Problems
Bibliographic Remarks
Detecting Termination and Deadlocks
Introduction
Diffusing Computation
Dijkstra and Scholten's Algorithm
An Optimization
Termination Detection without Acknowledgment Messages
Locally Stable Predicates
Application: Deadlock Detection
Problems
Bibliographic Remarks
Message Ordering
Introduction
Causal Ordering
Application: Causal Chat
Synchronous Ordering
Total Order for Multicast Messages
Centralized Algorithm
Lamport's Algorithm for Total Order
Skeen's Algorithm
Application: Replicated State Machines
Problems
Bibliographic Remarks
Leader Election
Introduction
Ring-Based Algorithms
Chang-Roberts Algorithm
Hirschberg-Sinclair Algorithm
Election on General Graphs
Spanning Tree Construction
Application: Computing Global Functions
Problems
Bibliographic Remarks
Synchronizers
Introduction
A Simple Synchronizer
Application: BFS Tree Construction
Synchronizer [alpha]
Synchronizer [beta]
Synchronizer [gamma]
Problems
Bibliographic Remarks
Agreement
Introduction
Consensus in Asynchronous Systems (Impossibility)
Application: Terminating Reliable Broadcast
Consensus in Synchronous Systems
Consensus under Crash Failures
Consensus under Byzantine Faults
Knowledge and Common Knowledge
Application: Two-General Problem
Problems
Bibliographic Remarks
Transactions
Introduction
ACID Properties
Concurrency Control
Dealing with Failures
Distributed Commit
Problems
Bibliographic Remarks
Recovery
Introduction
Zigzag Relation
Communication-Induced Checkpointing
Optimistic Message Logging: Main Ideas
Model
Fault-Tolerant Vector Clock
Version End Table
An Asynchronous Recovery Protocol
Message Receive
On Restart after a Failure
On Receiving a Token
On Rollback
Problems
Bibliographic Remarks
Self-Stabilization
Introduction
Mutual Exclusion with K-State Machines
Self-Stabilizing Spanning Tree Construction
Problems
Bibliographic Remarks
Various Utility Classes
Bibliography
Index