Verteilte Algorithmen sind Verfahren, die dadurch charakterisiert sind, dass mehrere autonome Prozesse gleichzeitig Teile eines gemeinsamen Problems in kooperativer Weise bearbeiten und der dabei erforderliche Informationsaustausch ausschliesslich über Nachrichten erfolgt. Derartige Algorithmen kommen im Rahmen von verteilten Systemen zum Einsatz, bei denen kein gemeinsamer Speicher existiert und die Übertragungsund Bearbeitungsdauer von Nachrichten i.a. nicht vernachlässigt werden kann. Da dadurch kein Prozess eine aktuelle konsistente Sicht des globalen Zustands besitzt, führt dies zu schwierigen, aber interessanten Problemen. In diesem Buch werden einige dieser Probleme analysiert, diskutiert und zueinander in Beziehung gesetzt. Für eine Reihe von Grundproblemen, zu denen das Election-Problem, das Schnappschussproblem und das Terminierungsproblem gehören, werden verschiedene Lösungsalgorithmen angegeben und miteinander verglichen. Die Bewertung der Algorithmen umfasst analytische und empirische Untersuchungen sowie eine Diskussion der qualitativen Eigenschaften verschiedener Varianten. Neben einer Herausarbeitung grundsätzlicher Aspekte, etwa der Bedeutung des Zeitbegriffs in verteilten Systemen, werden einige typische Methoden und Techniken vorgestellt, die für die Konstruktion und Analyse verteilter Algorithmen, aber auch auch für die Programmierung verteilter oder paralleler Systeme von praktischer Relevanz sind. Durch eine kurze Schilderung des Umfeldes sowie durch einige spielerische und gleichnishafte Beispiele werden die Problemstellungen motiviert und die Ergebnisse der Arbeit in den grösseren Rahmen des verteilten Programmierens eingeordnet.