Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Prozesssynchronisation

Gemeinsamer Zugriff auf Daten. Dabei muss verhindert werden, dass durch gleichzeitigen Zugriff Inkonsistenzen in den Daten entstehen. Dies wird durch Mutex- …

Inhalt4 Abschnitte
  1. 1. Grundidee
  2. 2. Zwecke der Synchronisation
  3. 3. Mechanismen und Modelle
  4. 4. Typische Probleme

Grundidee

Prozesssynchronisation, kurz Synchronisation, bezeichnet in der Programmierung die Koordinierung des zeitlichen Ablaufs mehrerer nebenläufiger Prozesse oder Threads. Nebenläufig bedeutet, dass mehrere Abläufe scheinbar oder tatsächlich gleichzeitig stattfinden. Dabei spielt es keine Rolle, ob es um Threads innerhalb eines Programms, um verschiedene Programme auf einem Computer oder um Prozesse in einem verteilten System geht, die über ein Netzwerk kommunizieren.

Synchronisation ist wichtig, weil Prozesse voneinander abhängen können. Ein Prozess muss häufig auf ein Ereignis warten, das ein anderer Prozess auslöst. Der Scheduler, also die Komponente, die Rechenzeit verteilt, muss solche kausalen Abhängigkeiten berücksichtigen: Ein Prozess soll nur dann Rechenzeit bekommen, wenn alle notwendigen Bedingungen für seine Fortsetzung erfüllt sind.

Zwecke der Synchronisation

Ein wichtiger Zweck ist der gemeinsame Zugriff auf Daten. Wenn mehrere Prozesse gleichzeitig dieselben Daten verändern, können Inkonsistenzen entstehen. Das wird durch Mutex-Verfahren verhindert. Mutex bedeutet gegenseitiger Ausschluss: Immer nur ein Prozess darf gleichzeitig auf einen kritischen Bereich oder eine gemeinsam genutzte Ressource zugreifen.

Ein weiterer Zweck ist die gemeinsame Nutzung beschränkter Betriebsmittel, zum Beispiel von Peripheriegeräten. Auch hier können Mutex-Verfahren helfen; oft sind aber komplexere Scheduling-Methoden nötig, um die Nutzung sinnvoll zu steuern.

Synchronisation dient außerdem der Übergabe von Daten oder Nachrichten von einem Prozess an einen anderen. Das nennt man Interprozesskommunikation. Zusätzlich kann Synchronisation genutzt werden, um Unterprozesse durch Signale zu steuern, insbesondere um Prozesse abzubrechen oder darauf zu warten, dass sie terminieren.

Mechanismen und Modelle

Konkret wird Prozesssynchronisation meist mit klassischen Kontrollmechanismen umgesetzt. Dazu gehören Locks, Semaphore und Monitore. Ein Lock sperrt eine Ressource, damit sie nicht gleichzeitig von mehreren Prozessen benutzt wird. Ein Semaphor ist ein Synchronisationsmittel, das den Zugriff auf Ressourcen zählen oder begrenzen kann. Ein Monitor fasst gemeinsam genutzte Daten und die erlaubten Zugriffsoperationen so zusammen, dass der Zugriff kontrolliert abläuft.

Die Abhängigkeiten zwischen Prozessen lassen sich formal zum Beispiel durch ein Petri-Netz modellieren. Ein Petri-Netz ist ein mathematisches Modell, mit dem Zustände, Ereignisse und Abhängigkeiten in nebenläufigen Systemen dargestellt werden können.

Typische Probleme

Ein typisches Problem der Prozesssynchronisation ist die Verklemmung, auch Deadlock genannt. Sie entsteht, wenn Prozesse sich gegenseitig blockieren, weil zirkuläre Abhängigkeiten bestehen. Ein bekanntes Beispiel dafür ist das Problem der speisenden Philosophen.

Ein anderes prototypisches Problem ist die Steuerung eines Producer/Consumer-Systems. Dabei erzeugt ein Prozess Daten oder Aufgaben, der Producer, während ein anderer Prozess sie verbraucht oder verarbeitet, der Consumer. Synchronisation sorgt dafür, dass beide sinnvoll zusammenarbeiten, etwa indem der Consumer wartet, wenn noch nichts produziert wurde.

Weiterlesen

Programmierung Beim Programmieren sind wesentliche Aspekte zur Softwarequalität zu berücksichtigen und durch die Gestaltung des Quellcodes umzusetzen. Siehe dazu als Beispiele … Nebenläufigkeit Die Nebenläufigkeit, mitunter auch Parallelität (englisch concurrency) genannt, ist in der Informatik die Eigenschaft eines Systems, mehrere Aufgaben, … Thread (Informatik) Kritischer Abschnitt · Nebenläufigkeit · Parallele Programmierung · Prozess · Threadsicherheit. Literatur. Bearbeiten. Peter Ziesche: Nebenläufige & verteilte … Computer Ein Computer (englisch; deutsche Aussprache [kɔmˈpjuːtɐ]) oder Rechner ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Verteiltes System Ein verteiltes System ist ein Zusammenschluss unabhängiger Recheneinheiten (Knoten), die sich für den Benutzer als ein einziges System präsentieren; … Rechnernetz Ein Rechnernetz, Computernetz oder Computernetzwerk ist ein Zusammenschluss verschiedener technischer, primär selbstständiger elektronischer Systeme … Daten Daten bezeichnet als Plural von Datum Fakten, Zeitpunkte oder kalendarische Zeitangaben. Als Pluralwort steht es für durch Beobachtungen, Messungen u. a. Mutex Ein kritischer Abschnitt (engl. critical section oder critical region) ist derjenige Teil im ausführbaren Code, in dem ein wegen des Mutex ungestörter … Betriebsmittel (Informatik) Bei wechselseitiger Abhängigkeit von Ressourcen führt ein Versagen der Zugriffsregelung zu einer sogenannten Verklemmung (deadlock). Manche Ressourcen wie z … Peripheriegerät Peripheriegeräte dienen der Ein- und Ausgabe von Daten oder Befehlen in die Zentraleinheit. Sie erbringen eine „Dienstleistung“ für den Benutzer, diese kann … Interprozesskommunikation Deadlocks. Bearbeiten. → Hauptartikel: Deadlock (Informatik). Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess aus der … Synchronisation Synchronisation sorgt dafür, dass Vorgänge gleichzeitig (synchron) oder in einer bestimmten Reihenfolge ablaufen. Einfache Synchronisation der Zeitmessung durch …