A guide to understanding and implementing multi-core, concurrent, distributed, real-time, and embedded applications. With an accessible writing style, a wealth of complete examples, and numerous exercises, this book is ideal for undergraduate students. It is also appropriate for graduate students and practitioners needing a solid foundation in these growing areas.