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...

Celý popis

Uložené v:
Podrobná bibliografia
Hlavný autor: Garg, Vijay K
Médium: E-kniha Kniha
Jazyk:English
Vydavateľské údaje: Piscataway, N.J. John Wiley & Sons 2005
Hoboken, N.J Wiley
IEEE Press
Wiley-Interscience
John Wiley & Sons, Incorporated
Wiley-IEEE Press
Vydanie:1st ed.
Predmet:
ISBN:9780471432302, 047143230X, 0471721263, 9780471721260
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Abstract 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.
AbstractList 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.
Author Garg, Vijay K
Author_xml – sequence: 1
  fullname: Garg, Vijay K
BackLink https://cir.nii.ac.jp/crid/1130282270655689856$$DView record in CiNii
BookMark eNpVkM1Lw0AQxVe0Ylt78eYtBxEEqzuzm_042li1UvAiiqewSbZ1tU1iPgr-925oFZzDDAM_Hu-9ATnIi9wScgL0CijFa8olSASUsEcGv49g-2Skpep-zpBR7JEBUsqoCJVih6QfhloLQMaOyKiuP6gfQMWk6JPLqMjTtqps3gQmz4JbVzeVS9rGZkFUrMu2cfkycHnwaDbmmPQWZlXb0e4Oycvd9Dl6GM-f7mfRzXxspFYIYwuWGw6JQkyAphRMJlKa4IIrDBdCZwJ4xhTV1FoKkBkqLIYoeSIz442xITnbCtdmYSoXJ0XxWccbjP_F9Nj5Fiur4qu1dRPbjkx9mMqs4ukkQuTaF_SnlzsXp67bAF7BG5S-pVAorcIOu9hiblm2ycrV7z58XFZubarv-HU2n75Nul6VBM-e7lhr7c5giL5o5OwHUKt1Jw
ContentType eBook
Book
Copyright 2004 Wiley
Copyright_xml – notice: 2004 Wiley
DBID WIIVT
RYH
OHILO
DEWEY 005.27
DOI 10.1002/0471721271
DatabaseName Wiley
CiNii Complete
O'Reilly Online Learning: Corporate Edition
DatabaseTitleList


DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 0471721263
9780471721277
9780471721260
0471721271
9780471432302
047143230X
Edition 1st ed.
1
ExternalDocumentID 9780471432302
EBC224926
BA69583952
WILEYB0030871
5259924
GroupedDBID 089
20A
38.
3W6
3X9
3XM
5KU
5VX
6IK
6TE
A4I
A4J
AABBV
AAIJS
AARDG
ABARN
ABIAV
ABIMR
ABQPQ
ABQPW
ACIQC
ACLGV
ACNAM
ADVEM
AERYV
AFOJC
AJFER
AKHYG
ALMA_UNASSIGNED_HOLDINGS
ALTAS
AZZ
BBABE
BEFXN
BFFAM
BGNUA
BKEBE
BNKTO
BPBUR
BPEOZ
BZWPW
CZZ
ECNEQ
GEOUK
HF4
I90
IERZE
IPJKO
IVK
IWL
J-X
JFSCD
JJU
MYL
NK1
NK2
OCL
OHILO
PLCCB
PQEST
PQQKQ
PQUKI
W1A
WIIVT
YPLAZ
ZEEST
ABAZT
AHWGJ
RYH
ID FETCH-LOGICAL-a79821-e1e4a41b822b10c01ad6c0b2f4825f69d614d38090ee011da06e25274b7da2833
ISBN 9780471432302
047143230X
0471721263
9780471721260
IngestDate Fri Dec 05 18:22:41 EST 2025
Wed Dec 10 11:17:42 EST 2025
Thu Jun 26 23:31:41 EDT 2025
Tue Jul 08 08:29:37 EDT 2025
Mon Aug 28 20:39:30 EDT 2023
IsPeerReviewed false
IsScholarly false
LCCN 2003065883
LCCallNum QA76.58G35
LCCallNum_Ident QA76.58G35
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a79821-e1e4a41b822b10c01ad6c0b2f4825f69d614d38090ee011da06e25274b7da2833
Notes Includes bibliographical references (p. 297-304) and index
OCLC 559961233
PQID EBC224926
PageCount 0
ParticipantIDs safari_books_v2_9780471432302
proquest_ebookcentral_EBC224926
nii_cinii_1130282270655689856
igpublishing_primary_WILEYB0030871
ieee_books_5259924
ProviderPackageCode J-X
PublicationCentury 2000
PublicationDate 2005
2005.
c2004
2004
2004-02-04T00:00:00
PublicationDateYYYYMMDD 2005-01-01
2004-01-01
2004-02-04
PublicationDate_xml – year: 2005
  text: 2005
PublicationDecade 2000
PublicationPlace Piscataway, N.J.
Hoboken, N.J
PublicationPlace_xml – name: Piscataway, N.J.
– name: Hoboken, N.J
– name: Newark
PublicationYear 2005
2004
Publisher John Wiley & Sons
Wiley
IEEE Press
Wiley-Interscience
John Wiley & Sons, Incorporated
Wiley-IEEE Press
Publisher_xml – name: John Wiley & Sons
– name: Wiley
– name: IEEE Press
– name: Wiley-Interscience
– name: John Wiley & Sons, Incorporated
– name: Wiley-IEEE Press
SSID ssj0000128376
ssib002862244
Score 1.8504966
Snippet Concurrent and Distributed Computing in Java addresses fundamental concepts in concurrent computing with Java examples. The book consists of two parts. The...
SourceID safari
proquest
nii
igpublishing
ieee
SourceType Publisher
SubjectTerms Communication, Networking and Broadcast Technologies
COMPUTERS
Distributed processing
Electronic data processing
Electronic data processing -- Distributed processing
Java (Computer program language)
Networking
Parallel processing (Electronic computers)
SubjectTermsDisplay COMPUTERS
Networking
TableOfContents List of Figures. Preface. 1. Introduction. 2. Mutual Exclusion Problem. 3. Synchronization Primitives. 4. Consistency Conditions. 5. Wait-Free Synchronization. 6. Distributed Programming. 7. Models and Clocks. 8. Resource Allocation. 9. Global Snapshot. 10. Global Properties. 11. Detecting Termination and Deadlocks. 12. Message Ordering. 13. Leader Election. 14. Synchronizers. 15. Agreement. 16. Transactions. 17. Recovery. 18. Self-Stabilization. Appendix: Various Utility Classes. Bibliography. Index.
12.4.1 Centralized Algorithm -- 12.4.2 Lamport's Algorithm for Total Order -- 12.4.3 Skeen's Algorithm -- 12.4.4 Application: Replicated State Machines -- 12.5 Problems -- 12.6 Bibliographic Remarks -- 13 Leader Election -- 13.1 Introduction -- 13.2 Ring-Based Algorithms -- 13.2.1 Chang-Roberts Algorithm -- 13.2.2 Hirschberg-Sinclair Algorithm -- 13.3 Election on General Graphs -- 13.3.1 Spanning Tree Construction -- 13.4 Application: Computing Global Functions -- 13.5 Problems -- 13.6 Bibliographic Remarks -- 14 Synchronizers -- 14.1 Introduction -- 14.2 A Simple Synchronizer -- 14.2.1 Application: BFS Tree Construction -- 14.3 Synchronizer a -- 14.4 Synchronizer b -- 14.5 Synchronizer g -- 14.6 Problems -- 14.7 Bibliographic Remarks -- 15 Agreement -- 15.1 Introduction -- 15.2 Consensus in Asynchronous Systems (Impossibility) -- 15.3 Application: Terminating Reliable Broadcast -- 15.4 Consensus in Synchronous Systems -- 15.4.1 Consensus under Crash Failures -- 15.4.2 Consensus under Byzantine Faults -- 15.5 Knowledge and Common Knowledge -- 15.6 Application: Two-General Problem -- 15.7 Problems -- 15.8 Bibliographic Remarks -- 16 Transactions -- 16.1 Introduction -- 16.2 ACID Properties -- 16.3 Concurrency Control -- 16.4 Dealing with Failures -- 16.5 Distributed Commit -- 16.6 Problems -- 16.7 Bibliographic Remarks -- 17 Recovery -- 17.1 Introduction -- 17.2 Zigzag Relation -- 17.3 Communication-Induced Checkpointing -- 17.4 Optimistic Message Logging: Main Ideas -- 17.4.1 Model -- 17.4.2 Fault-Tolerant Vector Clock -- 17.4.3 Version End Table -- 17.5 An Asynchronous Recovery Protocol -- 17.5.1 Message Receive -- 17.5.2 On Restart after a Failure -- 17.5.3 On Receiving a Token -- 17.5.4 On Rollback -- 17.6 Problems -- 17.7 Bibliographic Remarks -- 18 Self-Stabilization -- 18.1 Introduction -- 18.2 Mutual Exclusion with K-State Machines
18.3 Self-St abilizing Spanning Tree Construction -- 18.4 Problems -- 18.5 Bibliographic Remarks -- A. Various Utility Classes -- Bibliography -- Index -- List of Figures -- 1.1 A parallel system -- 1.2 A distributed system -- 1.3 A process with four threads -- 1.4 HelloWorldThread.java -- 1.5 FooBar.java -- 1.6 Fibonacci.java -- 2.1 Interface for accessing the critical section -- 2.2 A program to test mutual exclusion -- 2.3 An attempt that violates mutual exclusion -- 2.4 An attempt that can deadlock -- 2.5 An attempt with strict alternation -- 2.6 Peterson's algorithm for mutual exclusion -- 2.7 Lamport's bakery algorithm -- 2.8 TestAndSet hardware instruction -- 2.9 Mutual exclusion using TestAndSet -- 2.10 Semantics of swap operation -- 2.11 Dekker.java -- 3.1 Binary semaphore -- 3.2 Counting semaphore -- 3.3 A shared buffer implemented with a circular array -- 3.4 Bounded buffer using semaphores -- 3.5 Producer-consumer algorithm using semaphores -- 3.6 Reader-writer algorithm using semaphores -- 3.7 The dining philosopher problem -- 3.8 Dining Philosopher -- 3.9 Resource Interface -- 3.10 Dining philosopher using semaphores -- 3.11 A pictorial view of a Java monitor -- 3.12 Bounded buffer monitor -- 3.13 Dining philosopher using monitors -- 3.14 Linked list -- 4.1 Concurrent histories illustrating sequential consistency -- 4.2 Sequential consistency does not satisfy locality -- 4.3 Summary of consistency conditions -- 5.1 Safe and unsafe read-write registers -- 5.2 Concurrent histories illustrating regularity -- 5.3 Atomic and nonatomic registers -- 5.4 Construction of a regular boolean register -- 5.5 Construction of a multivalued register -- 5.6 Construction of a multireader register -- 5.7 Construction of a multiwriter register -- 5.8 Lock-free atomic snapshot algorithm -- 5.9 Consensus Interface
6.5.1 Remote Objects -- 6.5.2 Parameter Passing -- 6.5.3 Dealing with Failures -- 6.5.4 Client Program -- 6.6 Other Useful Classes -- 6.7 Problems -- 6.8 Bibliographic Remarks -- 7 Models and Clocks -- 7.1 Introduction -- 7.2 Model of a Distributed System -- 7.3 Model of a Distributed Computation -- 7.3.1 Interleaving Model -- 7.3.2 Happened-Before Model -- 7.4 Logical Clocks -- 7.5 Vector Clocks -- 7.6 Direct-Dependency -- 7.7 Matrix Clocks -- 7.8 Problems -- 7.9 Bibliographic Remarks -- 8 Resource Allocation -- 8.1 Introduction -- 8.2 Specification of the Mutual Exclusion Problem -- 8.3 Centralized Algorithm -- 8.4 Lamport's Algorithm -- 8.5 Ricart and Agrawala's Algorithm -- 8.6 Dining Philosopher Algorithm -- 8.7 Token-Based Algorithms -- 8.8 Quorum-Based Algorithms -- 8.9 Problems -- 8.10 Bibliographic Remarks -- 9 Global Snapshot -- 9.1 Introduction -- 9.2 Chandy and Lamport's Global Snapshot Algorithm -- 9.3 Global Snapshots for non-FIFO Channels -- 9.4 Channel Recording by the Sender -- 9.5 Application: Checkpointing a Distributed Application -- 9.6 Problems -- 9.7 Bibliographic Remarks -- 10 Global Properties -- 10.1 Introduction -- 10.2 Unstable Predicate Detection -- 10.3 Application: Distributed Debugging -- 10.4 A Token-Based Algorithm for Detecting Predicates -- 10.5 Problems -- 10.6 Bibliographic Remarks -- 11 Detecting Termination and Deadlocks -- 11.1 Introduction -- 11.2 Diffusing Computation -- 11.3 Dijkstra and Scholten's Algorithm -- 11.3.1 An Optimization -- 11.4 Termination Detection without Acknowledgment Messages -- 11.5 Locally Stable Predicates -- 11.6 Application: Deadlock Detection -- 11.7 Problems -- 11.8 Bibliographic Remarks -- 12 Message Ordering -- 12.1 Introduction -- 12.2 Causal Ordering -- 12.2.1 Application: Causal Chat -- 12.3 Synchronous Ordering -- 12.4 Total Order for Multicast Messages
5.10 Impossibility of wait-free consensus with atomic read-write registers -- 5.11 TestAndSet class -- 5.12 Consensus using TestAndSet object -- 5.13 CompSwap object -- 5.14 Consensus using CompSwap object -- 5.15 Load-Linked and Store-Conditional object -- 5.16 Sequential queue -- 5.17 Concurrent queue -- 6.1 A datagram server -- 6.2 A datagram client -- 6.3 Simple name table -- 6.4 Name server -- 6.5 A client for name server -- 6.6 Topology class -- 6.7 Connector class -- 6.8 Message class -- 6.9 Linker class -- 6.10 Remote interface -- 6.11 A name service implementation -- 6.12 A RMI client program -- 7.1 An example of topology of a distributed system -- 7.2 A simple distributed program with two processes -- 7.3 A run in the happened-before model -- 7.4 A logical clock algorithm -- 7.5 A vector clock algorithm -- 7.6 The VCLinker class that extends the Linker class -- 7.7 A sample execution of the vector clock algorithm -- 7.8 A direct-dependency clock algorithm -- 7.9 A sample execution of the direct-dependency clock algorithm -- 7.10 The matrix clock algorithm -- 8.1 Testing a lock implementation -- 8.2 ListenerThread -- 8.3 Process.java -- 8.4 A centralized mutual exclusion algorithm -- 8.5 Lamport's mutual exclusion algorithm -- 8.6 Ricart and Agrawala's algorithm -- 8.7 (a) Conflict graph -- (b) an acyclic orientation with P2 and P4 as sources -- (c) orientation after P3 and P4 finish eating -- 8.8 An algorithm for dining philosopher problem -- 8.9 A token ring algorithm for the mutual exclusion problem -- 9.1 Consistent and inconsistent cuts -- 9.2 Classification of messages -- 9.3 Chandy and Lamport's snapshot algorithm -- 9.4 Linker extended for use with SenderCamera -- 9.5 A global snapshot algorithm based on sender recording -- 9.6 Invocation of the global snapshot algorithm
Concurrent and Distributed Computing in Java -- Contents -- List of Figures -- Preface -- 1 Introduction -- 1.1 Introduction -- 1.2 Distributed Systems versus Parallel Systems -- 1.3 Overview of the Book -- 1.4 Characteristics of Parallel and Distributed Systems -- 1.5 Design Goals -- 1.6 Specification of Processes and Tasks -- 1.6.1 Runnable Interface -- 1.6.2 Join Construct in Java -- 1.6.3 Thread Scheduling -- 1.7 Problems -- 1.8 Bibliographic Remarks -- 2 Mutual Exclusion Problem -- 2.1 Introduction -- 2.2 Peterson's Algorithm -- 2.3 Lamport's Bakery Algorithm -- 2.4 Hardware Solutions -- 2.4.1 Disabling Interrupts -- 2.4.2 Instructions with Higher Atomicity -- 2.5 Problems -- 2.6 Bibliographic Remarks -- 3 Synchronization Primitives -- 3.1 Introduction -- 3.2 Semaphores -- 3.2.1 The Producer-Consumer Problem -- 3.2.2 The Reader-Writer Problem -- 3.2.3 The Dining Philosopher Problem -- 3.3 Monitors -- 3.4 Other Examples -- 3.5 Dangers of Deadlocks -- 3.6 Problems -- 3.7 Bibliographic Remarks -- 4 Consistency Conditions -- 4.1 Introduction -- 4.2 System Model -- 4.3 Sequential Consistency -- 4.4 Linearizability -- 4.5 Other Consistency Conditions -- 4.6 Problems -- 4.7 Bibliographic Remarks -- 5 Wait-Free Synchronization -- 5.1 Introduction -- 5.2 Safe, Regular, and Atomic Registers -- 5.3 Regular SRSW Register -- 5.4 SRSW Multivalued Register -- 5.5 MRSW Register -- 5.6 MRMW Register -- 5.7 Atomic Snapshots -- 5.8 Consensus -- 5.9 Universal Constructions -- 5.10 Problems -- 5.11 Bibliographic Remarks -- 6 Distributed Programming -- 6.1 Introduction -- 6.2 InetAddress Class -- 6.3 Sockets based on UDP -- 6.3.1 Datagram Sockets -- 6.3.2 DatagramPacket Class -- 6.3.3 Example Using Datagrams -- 6.4 Sockets Based on TCP -- 6.4.1 Server Sockets -- 6.4.2 Example 1: A Name Server -- 6.4.3 Example 2: A Linker -- 6.5 Remote Method Invocations
10.1 WCP (weak conjunctive predicate) detection algorithm-checker process
Title Concurrent and Distributed Computing in Java
URI https://ieeexplore.ieee.org/servlet/opac?bknumber=5259924
http://portal.igpublish.com/iglibrary/search/WILEYB0030871.html
https://cir.nii.ac.jp/crid/1130282270655689856
https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=224926
https://learning.oreilly.com/library/view/~/9780471432302/?ar
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV07b9swECYat0O3BE0RNy-hyNYKoSRSIsfYcBKkQNohNbIJlEgW6qAIfsH597mTaPqBAEWHLIRNGDr7jr4X774j5AIsTlLYTIXGxDZkLGGh4hb-7owmVhdUWKnaYRPZ_b14fJS_3KSmaTtOIKtrsVzK5k1FDXsgbGyd_Q9x-4fCBrwGocMKYod1xyP2bx3QwFNdOrQlzIZrhMTFaVambVxr5jPXvnKnFl4X36iuumtc_VXP39p66608ANvJA2BsuFW20UWIlOGAc4gz4lf1ZYe_ih_KEOo9WlsFX6s3uEolBzeKg6Hby1IIcN_fjH7-_uEzWWjiQE217f6OmIc2WhH3wLDx5ZqYG2iDILF_Gp90AyNfV9W2wz9VVk2qDcP_sE962AxyQN6Z-hP5vuZwABwONjgceA4HVR0ghw_J-Hr0MLwN3bSJUGVSxFFoIsMUiwpwmYqIljRSOi1pEVsGUbRNpQZPRieCSmoMaEWtaGpiDlF9kWkFLEg-k179VJsjEgiuqSlBFXIN4SazSjCuU9hUmZbC8D45wF-e4zmZ5hxCUAiD--TrJh_ypoMbyVtw9UGH3Rj1ySlwJy8rXCO8dYavi1fVPBVS8LRPzld8y9vrdlfjm48Gw7hFh4QndOx01BdxviWqL_-gcEw-ro_fCenNJnNzSj6Ui1k1nZy5w_ECwv8sng
linkProvider ProQuest Ebooks
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.title=Concurrent+and+distributed+computing+in+Java&rft.au=Garg%2C+Vijay+Kumar&rft.date=2004-01-01&rft.pub=IEEE+Press&rft.isbn=9780471432302&rft_id=info:doi/10.1002%2F0471721271&rft.externalDocID=BA69583952
thumbnail_m http://cvtisr.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fwww.safaribooksonline.com%2Flibrary%2Fcover%2F9780471432302
thumbnail_s http://cvtisr.summon.serialssolutions.com/2.0.0/image/custom?url=http%3A%2F%2Fportal.igpublish.com%2Figlibrary%2Famazonbuffer%2FWILEYB0030871_null_0_320.png