Distributed computing fundamentals, simulations and advanced topics - Attiya