1. Architecture of a software system: centralized and distributed
- Fundamental concepts of a distributed system.
- Software and hardware aspects
2. The operating system
2.1 Functionality and basic services
2.2 Multiprogramming: processes.
2.3 Inter Process communication mechanisms
2.4 Threads and synchronization
2.5 Memory management.
3. Distributed systems models, algorithms and software
3.1 Distributed system models
3.2 Algorithms for distributed synchronization, election, and transactions
3.3 Consensus algorithms
3.4 Middleware models and distributed programming