Synchronisation und Kommunikation

  • Chapter
  • First Online:
Grundkurs Betriebssysteme
  • 10k Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 29.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 39.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free ship** worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Edsger Wybe Dijkstra (geboren am 11.05.1930, gestorben am 06.08.2002), Niederländischer Computer-Wissenschaftler.

  2. 2.

    Engl. to spin = schnell drehen.

  3. 3.

    Engl. Semaphore = Signalmast, Flaggensignal.

  4. 4.

    P kommt vom holländischen „passeeren“ (passieren) bzw. probeeren (versuchen) und V vom holländischen „vrijgeven“ (freisetzen) bzw. „verhogen“ (erhöhen).

  5. 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. 6.

    Sir Charles Antony Richard Hoare (geboren am 11.01.1934), britischer Computerwissenschaftler.

  7. 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. 8.

    In den 70er-Jahren bei der Firma Xerax entwickelt.

  9. 9.

    Beispiel etwas abgewandelt.

  10. 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. 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. 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. 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.

    Google Scholar 

  • Brinch Hansen, P. (1999). Java’s Insecure Parallelism. SIGPLAN Notices, 34, 4.

    Google Scholar 

  • 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) 

    Google Scholar 

  • Englewood Cliffs, N. J., & Brinch Hansen, P. (1995) The Programming Language Concurrent Pascal. IEEE Transactions on Software Engineering, S. 199–207. (sehr interessant, Klassiker).

    Google Scholar 

  • Glatz, E. (2015). Betriebssysteme Grundlagen, Konzepte, Systemprogrammierung (3., überarb. u. akt. Aufl.). Heidelberg: dpunkt. (sehr zu empfehlen)

    Google Scholar 

  • Hoare, C. A. R. (1974). Monitors: An operating system structuring concept (Klassiker). Communications of the ACM, 17(10), 449–557.

    Google Scholar 

  • Kredel, H., & Yoshida, A. (1999). Thread- und Netzwerk- Programmierung mit Java. Heidelberg: dpunkt.

    Google Scholar 

  • Mandl, P., Bakomenko, A., & Weiß, J. (2010). Grundkurs Datenkommunikation (2. Aufl.) Wiesbaden: Springer Vieweg.

    Google Scholar 

  • Tanenbaum, A. S., & Bos, H. (2016). Moderne Betriebssysteme (4., akt. Aufl.) (deutsche Übersetzung von Tanenbaum & Bos 2015). Hallbergmoos: Pearson Deutschland.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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

Publish with us

Policies and ethics

Navigation