The lecture “Distributed Systems” covers basic architectures and methods that allow for functional and productive distributed computer systems. Such a distributed system employs multiple independent subsystems to fulfill a certain task. It will, however, appear to the user a coherent single system. To achieve this goal, the different subsystems need to have common knowledge. Distributed across independent subsystems causes multiple challenges that will be addresses in this lecture: subsystems need to be discoverable, they need to exchange messages, replicated data needs to be kept in a consistent state across the subsystems, faults in single subsystems need to be tolerated, and resources of the entire distributed system should be used efficiently such that the given task is fulfilled effectively and efficiently. These components and aspects can be found in modern, Internet-based systems. They guarantee functionality of services like the World Wide Web, email or file sharing. 

Semester: ST 2024