Zum Inhalt springen

Informatik · Klasse 12 · aktualisiert

Synchronisation: Nebenläufige Prozesse sicher steuern

Du erkennst Fehler durch verschränkte Abläufe, schützt gemeinsame Daten und unterscheidest Warteverfahren sowie Störungen ohne Fortschritt.

0 von 9 Aufgaben gelöst

Synchronisation: Nebenläufige Prozesse sicher steuern

Kurz gesagt

Synchronisation stimmt nebenläufige Abläufe beim Zugriff auf gemeinsame Daten ab. Ein passender Schutz ordnet konkurrierende Zugriffe; dafür müssen die beteiligten Zugriffe dieselben Schutzregeln einhalten.

Ein Prozess ist ein laufendes Programm; ein Thread ist ein Ausführungsstrang darin. Threads können nebenläufig arbeiten: Ihre Ausführung überlappt sich zeitlich, auch wenn einzelne Schritte nacheinander stattfinden. Du untersuchst ausgedachte, vereinfachte Abläufe und passende Schutzregeln.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Termi das Ziel für dich ab.

4 Abschnitte

Eine Race Condition liegt hier vor, wenn die zeitliche Reihenfolge konkurrierender Zugriffe darüber entscheidet, ob das beabsichtigte Ergebnis entsteht. Konkurrierend bedeutet hier: Mehrere Threads greifen auf dieselben Daten zu, und mindestens einer verändert sie.

Im betrachteten Modell besteht eine Änderung aus drei Schritten: Lesen, Rechnen und Zurückschreiben. Jeder Thread rechnet mit seiner eigenen gelesenen Kopie. Beim Zurückschreiben ersetzt sein Ergebnis den gerade gespeicherten Wert. Dieses Modell zeigt eine mögliche Zerlegung; es legt keine genaue Schrittfolge für jede echte Programmanweisung fest.

Verschränkt heißt: Schritte eines anderen Ablaufs liegen zwischen den Schritten einer noch nicht abgeschlossenen Änderung. Lesen zwei Threads denselben Ausgangswert, kann der spätere Schreibzugriff eine bereits gespeicherte Änderung überschreiben. Man spricht dann von einem verlorenen Update, also einer verlorenen Änderung.

Nicht jede Verschränkung führt zu einem Fehler. Schließt ein Thread seine Änderung ab, bevor der andere liest, kann der zweite mit dem neuen Wert weiterrechnen. Ein richtiger Endwert in einem Durchlauf beweist deshalb nicht, dass andere mögliche Abläufe ebenfalls richtig enden.

Definition

Race Condition

Ein Fehler durch die zeitliche Reihenfolge konkurrierender Zugriffe: Je nach Verschränkung entsteht das beabsichtigte Ergebnis oder eine Änderung geht verloren.

Beispiel: Ein gemeinsamer Punktestand – ausgedachtes Ablaufmodell

  1. 1Gespeichert sind 20 Punkte. Thread A soll 4 Punkte ergänzen, Thread B soll 7 ergänzen. Beide Änderungen sollen zählen.
  2. 2A liest 20 in seine eigene Kopie.
  3. 3B liest ebenfalls 20 in seine eigene Kopie.
  4. 4A berechnet 24 und schreibt 24 zurück.
  5. 5B berechnet mit seiner gelesenen 20 den Wert 27 und schreibt 27 zurück.
  6. 6Am Ende sind 27 Punkte gespeichert. Mit beiden Änderungen wären es 31. Die Änderung von A wurde überschrieben.

Teste dich

LeichtIn einem ausgedachten Ablauf steht ein gemeinsamer Zahlenwert auf 9. A soll 2 ergänzen, B soll 5 ergänzen. Beide lesen 9. Danach schreibt A 11 und B 14 zurück. Was ist am Ende gespeichert?

Alles auf einen Blick

Synchronisation

  • Verschränkung

    Beim Lesen, Rechnen und Zurückschreiben kann eine Änderung durch einen späteren Schreibzugriff verloren gehen.

  • Gemeinsame Sperre

    Zusammengehörige Zugriffe müssen denselben Mutex für den gesamten geschützten Vorgang verwenden.

  • Zugangsgrenze

    Mehrere Semaphor-Erlaubnisse begrenzen gleichzeitige Nutzer, ersetzen aber keinen Schutz gemeinsamer Verwaltungsdaten.

  • Spinlock

    Aktives Prüfen verbraucht Rechenzeit; im betrachteten POSIX-Benutzerbereich ist sein Einsatz an besondere Bedingungen gebunden.

  • Fehlender Fortschritt

    Deadlock bedeutet dauerhaftes gegenseitiges Warten, Livelock fortgesetztes gegenseitiges Reagieren und Verhungern ausbleibenden Ressourcenzugang.

Musteraufgabe · Schritt für Schritt

Vier Geräteplätze vergeben – ausgedachtes Modell

  1. 1Annahme: Jeder Nutzer braucht genau einen Geräteplatz und fordert vor dem Zugang eine Erlaubnis an. Er gibt sie nach dem Verlassen genau einmal zurück. Der Semaphor startet mit vier Erlaubnissen.
  2. 2A und B erhalten je eine Erlaubnis. Es bleiben zwei; beide dürfen je einen Platz nutzen.
  3. 3C und D erhalten ebenfalls je eine Erlaubnis. Jetzt ist keine frei; vier Nutzer haben Zugang.
  4. 4E fordert eine Erlaubnis an und blockiert, solange keine verfügbar ist.
  5. 5B verlässt seinen Platz und gibt seine Erlaubnis zurück. Dadurch steht eine Erlaubnis zur Verfügung.
  6. 6Annahme: Kein anderer Thread nimmt diese Erlaubnis vorher. E erhält sie; wieder sind null Erlaubnisse frei. A, C, D und E haben Zugang.
  7. 7Ergebnis: Höchstens vier Nutzer haben zugleich Zugang. Gemeinsam veränderte Verwaltungsdaten brauchen zusätzlich passenden Schutz, etwa denselben Mutex für alle betroffenen Zugriffe.

Fehler finden

Prüfe das Warten an zwei Sperren – ausgedachtes Modell In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Zwei Threads müssen jeweils eine Nachricht des anderen erhalten, bevor sie selbst senden können. Beide warten dauerhaft und niemand greift ein. Das ist ein . Ein Programm soll drei gleichzeitige Nutzer zulassen und einen vierten bis zur Freigabe eines Platzes warten lassen. Dafür eignet sich ein passend eingerichteter . Ein Thread prüft eine belegte Sperre wiederholt selbst und verbraucht dabei Rechenzeit. Das ist .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Synchronisation

LeichtIm ausgedachten Parkmodell verringert A die Zahl freier Plätze um 2, B erhöht sie um 5. Beide verwenden ohne Schutz Lesen, Rechnen und Zurückschreiben. Ein Durchlauf liefert den gewünschten Endwert. Was folgt daraus?
MittelIn einem ausgedachten Java-Programm ersetzt A unter der Objektsperre M die gespeicherte Nummer 6 durch 8 und gibt M frei. Danach erwirbt B M und liest die Nummer; sonst ändert sie niemand. Welche Aussage gilt?
SchwerIn einem ausgedachten Terminprogramm ändern A und B ihren Vorschlag, sobald sie den neuen Vorschlag des anderen sehen. Beide erhalten Zugang zu den Daten und führen diese Reaktionen endlos aus; ein Termin wird nicht bestätigt. Welche Störung passt?

Weiterlesen in Informatik