Introduction: why and where do we need distributed systems? What properties and techniques are important for distributed systems?
Communication in distributed systems: Networks, network services and protocols, classification of communication mechanisms. OS communication services (Pipes, Message Queues, Sockets), communication platforms (PVM, MPI).
Internet network services: remote process invokation, distributed system architectures: Client/Server architecture versus distributed algorithms.
Distributed algorithms: timing and causality, group communication, election algorithms, mutual exclution, consensus.