DISTRIBUTED SYSTEMS: CONCEPTS AND DESIGN

Second Edition, 1994
George Coulouris, Jean Dollimore and Tim Kindberg

644 pages
Addison-Wesley Publishing Company
ISBN 0-201-62433-8


CONTENTS

FOREWORD (by Ken Birman, Cornell University)
PREFACE

(Each chapter commences with an outline and concludes with an extensive set of exercises designed to test and consolidate the reader's understanding of the contents).

1 CHARACTERIZATION OF DISTRIBUTED SYSTEMS

1.1 Introduction
1.2 Examples
1.3 Key characteristics
1.4 Historical background
1.5 Summary

2 DESIGN GOALS

2.1 Introduction
2.2 Basic design issues
2.3 User requirements
2.4 Summary

3 NETWORKING AND INTERNETWORKING

3.1 Introduction
3.2 Network technologies
3.3 Protocols
3.4 Technology case studies: Ethernet, Token Ring and ATM
3.5 Protocol case studies: Internet protocols and FLIP
3.6 Summary

4 INTERPROCESS COMMUNICATION

4.1 Introduction
4.2 Building blocks
4.3 Client-server communication
4.4 Group communication
4.5 Case study: interprocess communication in UNIX
4.6 Summary

5 REMOTE PROCEDURE CALLING

5.1 Introduction
5.2 Design issues
5.3 Implementation
5.4 Case studies: Sun and ANSA
5.5 Asynchronous RPC
5.6 Summary

6 DISTRIBUTED OPERATING SYSTEMS

6.1 Introduction
6.2 The kernel
6.3 Processes and threads
6.4 Naming and protection
6.5 Communication and invocation
6.6 Virtual memory
6.7 Summary

7 FILE SERVICE: A MODEL

7.1 Introduction
7.2 File service components
7.3 Design issues
7.4 Interfaces
7.5 Implementation techniques
7.6 Summary

8 FILE SERVICE: CASE STUDIES

8.1 Introduction
8.2 The Sun Network File System
8.3 The Andrew File System
8.4 The Coda File System
8.5 Summary

9 NAME SERVICES

9.1 Introduction
9.2 The SNS - a name service model
9.3 Discussion of the SNS and further design issues
9.4 Case studies: DNS, GNS and X.500
9.5 Summary

10 TIME AND COORDINATION

10.1 Introduction
10.2 Synchronizing physical clocks
10.3 Logical time and logical clocks
10.4 Distributed coordination
10.5 Summary

11 REPLICATION

11.1 Introduction
11.2 Basic architectural model 316
11.3 Consistency and request ordering
11.4 The gossip architecture
11.5 Process groups and ISIS
11.6 Summary

12 SHARED DATA AND TRANSACTIONS

12.1 Introduction
12.2 Conversations between a client and a server
12.3 Fault tolerance and recovery 358
12.4 Transactions
12.5 Nested transactions
12.6 Summary

13 CONCURRENCY CONTROL

13.1 Introduction
13.2 Locks
13.3 Optimistic concurrency control
13.4 Timestamp ordering
13.5 Comparison of methods for concurrency control
13.6 Summary

14 DISTRIBUTED TRANSACTIONS

14.1 Introduction
14.2 Simple distributed transactions and nested transactions
14.3 Atomic commit protocols
14.4 Concurrency control in distributed transactions
14.5 Distributed deadlocks
14.6 Transactions with replicated data
14.7 Summary

15 RECOVERY AND FAULT TOLERANCE

15.1 Introduction
15.2 Transaction recovery
15.3 Fault tolerance
15.4 Hierarchical and group masking of faults
15.5 Summary

16 SECURITY

16.1 Introduction
16.2 Cryptography
16.3 Authentication and key distribution
16.4 Case study: Kerberos
16.5 Logics of authentication
16.6 Digital signatures
16.7 Summary

17 DISTRIBUTED SHARED MEMORY

17.1 Introduction
17.2 Design and implementation issues
17.3 Sequential consistency and Ivy
17.4 Release consistency and Munin
17.5 Other consistency models
17.6 Summary

18 DISTRIBUTED OPERATING SYSTEMS: CASE STUDIES

18.1 Introduction
18.2 Mach
18.3 Chorus
18.4 UNIX emulation in Mach and Chorus
18.5 Amoeba
18.6 A comparison of Mach, Amoeba and Chorus
18.7 Clouds
18.8 Firefly RPC
18.9 The Amoeba multicast protocol

REFERENCES
INDEX