Zusammenfassung
Bei der Parallelverarbeitung mit gleichzeitiger Nutzung gemeinsamer Betriebsmittel durch Prozesse bzw. durch Threads sind einige Herausforderungen zu bewältigen. Wenn man Prozesse oder Threads ohne Abstimmung mit gemeinsam genutzten Betriebsmitteln wie z. B. gemeinsam genutzte Speicherbereiche, arbeiten lässt, kann es zu Inkonsistenzen oder sog. Race Conditions kommen. Lost-Updates oder andere Anomalien können die Folge sein.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Edsger Wybe Dijkstra (geboren am 11.05.1930, gestorben am 06.08.2002), Niederländischer Computer-Wissenschaftler.
- 2.
Engl. to spin = schnell drehen.
- 3.
Engl. Semaphore = Signalmast, Flaggensignal.
- 4.
P kommt vom holländischen „passeeren“ (passieren) bzw. probeeren (versuchen) und V vom holländischen „vrijgeven“ (freisetzen) bzw. „verhogen“ (erhöhen).
- 5.
Wir gehen in unserem Beispiel im Weiteren von einer atomaren Aktion aus, obwohl Dijkstra auch eine Lösung vorgibt, die ohne atomare Anforderung auskommt und deadlockfrei ist.
- 6.
Sir Charles Antony Richard Hoare (geboren am 11.01.1934), britischer Computerwissenschaftler.
- 7.
Von Per Brinch Hansen, Dänisch-Amerikanischer Computerwissenschaftler (geboren am 13.11.1938, gestorben am 31.07.2007) gibt es einige Veröffentlichungen, in denen die wesentlichen Grundzüge der parallelen Programmierung dargestellt sind. Er war auch der Erfinder der Sprache Concurrent Pascal. Die Hochphase der Entwicklung in diesem Umfeld war 1971 bis 1975. Folgende Veröffentlichungen von Brinch Hansen sind u. a. interessant: (Brinch Hansen 1973, S. 226–232) und (Englewood Cliffs und Brinch Hansen 1995, S. 199–207).
- 8.
In den 70er-Jahren bei der Firma Xerax entwickelt.
- 9.
Beispiel etwas abgewandelt.
- 10.
Per Brinch Hansen befasst sich in (Brinch Hansen 1999) mit Java und paralleler Programmierung und stellt fest, dass die Java-Monitore nicht korrekt sind und Java gegen Grundprinzipien verstößt. Beispielsweise lässt Java auch als „public“ deklarierte Variablen in Klassen zu, die synchronisierte Methoden haben.
- 11.
Siehe https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Semaphore.html, letzter Zugriff am 29.12.2019.
- 12.
Remote Procedure Call (RPC): Ein Mechanismus zum entfernten Aufruf von Prozeduren, aus Sicht des Programmierers transparent, so als ob sie lokal vorhanden wären.
- 13.
Es gibt auch Betriebssysteme, die bidirektionale Pipes anbieten.
Literatur
Brinch Hansen, P. (1973). Operating System Principles, Section 7.2 Class Concepts, Juli 1973, S. 226-232.
Brinch Hansen, P. (1999). Java’s Insecure Parallelism. SIGPLAN Notices, 34, 4.
Ehses, E., Köhler, L., Riemer, P., Stenzel, H., & Victor, F. (2005). Betriebssysteme: Ein Lehrbuch mit Übungen zur Systemprogrammierung in UNIX/Linux. Hallbergmoos: Pearson Deutschland. (zu empfehlen)
Englewood Cliffs, N. J., & Brinch Hansen, P. (1995) The Programming Language Concurrent Pascal. IEEE Transactions on Software Engineering, S. 199–207. (sehr interessant, Klassiker).
Glatz, E. (2015). Betriebssysteme Grundlagen, Konzepte, Systemprogrammierung (3., überarb. u. akt. Aufl.). Heidelberg: dpunkt. (sehr zu empfehlen)
Hoare, C. A. R. (1974). Monitors: An operating system structuring concept (Klassiker). Communications of the ACM, 17(10), 449–557.
Kredel, H., & Yoshida, A. (1999). Thread- und Netzwerk- Programmierung mit Java. Heidelberg: dpunkt.
Mandl, P., Bakomenko, A., & Weiß, J. (2010). Grundkurs Datenkommunikation (2. Aufl.) Wiesbaden: Springer Vieweg.
Tanenbaum, A. S., & Bos, H. (2016). Moderne Betriebssysteme (4., akt. Aufl.) (deutsche Übersetzung von Tanenbaum & Bos 2015). Hallbergmoos: Pearson Deutschland.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature
About this chapter
Cite this chapter
Mandl, P. (2020). Synchronisation und Kommunikation. In: Grundkurs Betriebssysteme. Springer Vieweg, Wiesbaden. https://doi.org/10.1007/978-3-658-30547-5_6
Download citation
DOI: https://doi.org/10.1007/978-3-658-30547-5_6
Published:
Publisher Name: Springer Vieweg, Wiesbaden
Print ISBN: 978-3-658-30546-8
Online ISBN: 978-3-658-30547-5
eBook Packages: Computer Science and Engineering (German Language)