The aim of this book is to introduce the reader to the concepts behind the general area of computer science known as distributed and parallel processing. Experience of using a variety of computer systems and languages, and a basic understanding of the functioning of computers is assumed. The book is intended for undergraduate computer science courses, and may be of interest to students studying electrical engineering, electronics and microprocessors. It also serves as an introduction to the topic for postgraduates and interested computer professionals not already working in the area.