The course will mainly cover topics from distributed systems, including distributed system architectures, synchronization, consistency, fault tolerance, security, distributed memory management, and distributed file systems. New paradigms of distributed systems will also be discussed, such as server clusters, peer-to-peer systems, grid computing, and mobile computing.
Distributed Systems Architectures
- Types of distributed systems
- System architectures
- Examples of distributed systems
Processes and Communication
- Threads, clients, servers
- Code migration
- Remote procedure call
- Types of communications
Scheduling
- Multiprocessor Scheduling
- Real-time Scheduling
Naming
- Names, identifiers
- Flat naming
- Structured naming
- Attribute-based naming
Synchronization
- Clock synchronization
- Logical clocks
- Mutual exclusion
- Election algorithms
Consistency and Replication
- Data-centric consistency models
- Client-centric consistency models
- Replica management
- Consistency protocols
Fault Tolerance
- Process Resilience
- Reliable client-server communications
- Reliable group communication
- Recovery
Security
- Security threats, policies, and mechanisms
- Security channels
- Access control
- Security management
Distributed Memory Management Distributed File Systems Peer-to-Peer and Grid Systems Mobile Computing