Skip to main content
  • Textbook
  • © 2013

Distributed Programming

Theory and Practice

Authors:

  • Bridges the gap between books that focus on specific concurrent programming languages and books that focus on distributed algorithms
  • Programs are written in a “real-life” programming notation along the lines of Java and Python Exercises
  • Examples are included in each chapter with on-line access to the solutions
  • Includes supplementary material: sn.pub/extras

Buy it now

Buying options

eBook USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

This is a preview of subscription content, log in via an institution to check for access.

Table of contents (21 chapters)

  1. Front Matter

    Pages i-xviii
  2. Introduction

    • A. Udaya Shankar
    Pages 1-39
  3. Simple Lock

    • A. Udaya Shankar
    Pages 41-61
  4. Bounded Buffer

    • A. Udaya Shankar
    Pages 63-87
  5. Message-Passing Services

    • A. Udaya Shankar
    Pages 89-110
  6. Fifo Channels from Unreliable Channels

    • A. Udaya Shankar
    Pages 111-139
  7. Programs, Semantics and Effective Atomicity

    • A. Udaya Shankar
    Pages 141-171
  8. Implements and Compositionality

    • A. Udaya Shankar
    Pages 173-189
  9. SESF for Time-Constrained Programs

    • A. Udaya Shankar
    Pages 191-206
  10. Lock Using Peterson’s Algorithm

    • A. Udaya Shankar
    Pages 207-212
  11. Lock Using the Bakery Algorithm

    • A. Udaya Shankar
    Pages 213-224
  12. Distributed Lock Service

    • A. Udaya Shankar
    Pages 225-229
  13. Distributed Lock Using Timestamps

    • A. Udaya Shankar
    Pages 231-247
  14. Channel with Termination Detection Service

    • A. Udaya Shankar
    Pages 249-253
  15. Termination Detection for Diffusing Computations

    • A. Udaya Shankar
    Pages 255-267
  16. Object-Transfer Service

    • A. Udaya Shankar
    Pages 269-275
  17. Object Transfer Using Path Reversal

    • A. Udaya Shankar
    Pages 277-298
  18. Distributed Shared Memory Service

    • A. Udaya Shankar
    Pages 299-303
  19. A Single-Copy Distributed Shared Memory

    • A. Udaya Shankar
    Pages 305-312
  20. A Multi-copy Distributed Shared Memory

    • A. Udaya Shankar
    Pages 313-320

About this book

Distributed Programming: Theory and Practice presents a practical and rigorous method to develop distributed programs that correctly implement their specifications. The method also covers how to write specifications and how to use them. Numerous examples such as bounded buffers, distributed locks, message-passing services, and distributed termination detection illustrate the method. Larger examples include data transfer protocols, distributed shared memory, and TCP network sockets.

Distributed Programming: Theory and Practice bridges the gap between books that focus on specific concurrent programming languages and books that focus on distributed algorithms.  Programs are written in a "real-life" programming notation, along the lines of Java and Python with explicit instantiation of  threads and programs.  Students and programmers will see these as programs and not "merely" algorithms in pseudo-code.  The programs implement interesting algorithms and solve problems that are large enough to serve as projects in programming classes and software engineering classes. Exercises and examples are included at the end of each chapter with on-line access to the solutions.

Distributed Programming: Theory and Practice is designed as an advanced-level text book for students in computer science and electrical engineering.  Programmers, software engineers and researchers working in this field will also find this book useful.

Reviews

From the reviews:

“This book is about how to write software for distributed systems while ensuring correctness. … This book intends to come out with a practical methodology for writing correct parallel programs. … The text covers most of the classic parallel programming topics like lock, message passing, bounded buffers, etc. It is addressed to researchers and students in parallel computing and can also be used by software professionals as a hands on writing correct parallel software.” (Corneliu Bârsan, zbMATH, Vol. 1276, 2014)

“As a textbook, it presents a thorough introduction to distributed programming in a language-agnostic framework based on assertional reasoning and supported by temporal logic. … As a reference book, Distributed Programming provides a set of fundamental concepts and their applications in a compact, straightforward format. The formalism introduced in the book is easy to grasp and provides a good template for language independence … . Summing Up: Recommended. Upper-division undergraduates, graduate students, researchers/faculty, and professionals.” (L. Benedicenti, Choice, Vol. 51 (1), September, 2013)

Authors and Affiliations

  • , Department of Computer Science, University of Maryland, College Park, USA

    A. Udaya Shankar

Bibliographic Information

Buy it now

Buying options

eBook USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access