Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Aufgaben Semaphore Übersicht (Dijkstra)

Ähnliche Präsentationen


Präsentation zum Thema: "Aufgaben Semaphore Übersicht (Dijkstra)"—  Präsentation transkript:

1 Aufgaben Semaphore Übersicht (Dijkstra)
Einsatz von Semaphoren: Wechselseitiger Ausschluss (INIT = 1): REQ …. Kritischer Bereich …. REL Zählende Semaphore (INIT = N): Bis zu N verschiedene Prozesse dürfen in den kritischen Bereich eintreten (z.B. N=4: Nutzung von vier verfügbaren Bandgeräten) Blockierende Semaphore (INIT = 0) dient zur Prozesssynchronisation: Nach Prozess A kommt Prozess B (Reihenfolge), P()-Operation an der Stelle, wo gewartet werden muss und V()-Operation signalisiert, dass Wartebedingung erfüllt ist Prozess A ….. REL S REQ S ….. Prozess B Beachte: Deadlocks (Verklemmungen) entstehen, wenn die Reihenfolge der P/V-Operationen falsch gewählt wurde. Notationen: P(S) = passeeren = Verringern um den Wert 1: Request, wait, down, aquire, … V(S) = vrijgeven = Erhöhen um den Wert 1: Release, up, signal, …

2 Aufgaben Semaphore Beispiele aus dem Internet
Philosophenproblem: Durchsetzen einer Reihenfolge: Wechselseitiger Ausschluss: Erzeuger/Verbraucherproblem:

3 Aufgaben Semaphore Aufgabe 1
Vorgegeben sind die Anordnung von Semaphor-Anweisungen am Anfang und am Ende dreier Tasks A, B und C. In der folgenden Tabelle sind die Anfangswerte für die drei Semaphor-Variablen S1, S2 und S3 eingetragen. Ermitteln Sie für die 4 Fälle a), b), c) und d) der Tabelle, ob und in welcher Reihenfolge diese Tasks bei der angegebenen Initialisierung der Semaphor-Variablen ablaufen. REQ S1 Task A REL S2 REQ S2 Task B REL S3 REL S1 REQ S3 Task C REL S2 Fall a) b) c) d) S1 2 3 S2 1 S3

4 Aufgaben Semaphore Aufgabe 2
Task C läuft an, wenn A und B abgelaufen sind. A B Task A REL S1 Task B REL S2 REQ S1 REQ S2 Task C S1 S2 C Aufgabe: Task C läuft an, wenn A oder B abgelaufen sind. Zeichne das Petri-Netz und formuliere die Semaphor-Anweisungen.

5 Aufgaben Semaphore Aufgabe 3
Gegeben ist folgendes Petri-Netz (Stellen-/Transitions-Netz) zur Beschreibung der Ablaufreihenfolge dreier Tasks A, B und C. Wie lautet die Ablaufreihenfolge, wenn S1 = S2 = S3 = 0, S4 = 1 ist und S1 mit 1 initialisiert wird? Ergänzen Sie die Taskanweisungen für A, B und C am Anfang und am Ende mit den entsprechenden Semaphor-Anweisungen (REQ und REL), so dass der Ablauf der o. g. Reihenfolge entspricht und kein Deadlock möglich ist? B S1 S2 A S3 S4 Init C

6 Aufgaben Semaphore Aufgabe 4
Durch eine geeignete Synchronisierung soll der folgende Ablauf von 4 Tasks (3 Überwachungs-tasks und 1 Protokollierungstask) erzwungen werden: U1 P U2 P U3 P 1) Führen Sie in jeder Task die erforderlichen Semaphor-Anweisungen ein, mit denen die geforderte Reihenfolge sichergestellt ist. 2) Wie müssen die von Ihnen benutzten Semaphor-Variablen initialisiert werden, damit die geforderte Reihenfolge bei der Task U1 beginnt?

7 Aufgaben Semaphore Aufgabe 5
Beispiel für Deadlock-Prevention (die höchstpriore Task kommt am spätesten) Im Programmablauf bedeutet: E = Anweisung Q = Zugriff auf Ressource Q V = Zugriff auf Ressource V Task Ankunftszeit Programmablauf 1/T Prio a 4 T E E Q V E 1 (hoch) b 2 T E V V E 2 c E E 3 d 0 T E Q Q Q Q E 4 Stellen Sie den zeitlichen Ablauf (0T >= t >= 18T) der vier Tasks für Prioritätsvererbung (priority inheritance) und für priority ceiling protocol (pcp) dar. Executing ready Ex. With Q locked blocked Ex. With V locked 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A B C D

8 Aufgaben Semaphore Aufgabe 5
Lösungsformular Task Ankunftszeit Programmablauf 1/T Prio a 4 T E E Q V E 1 (hoch) b 2 T E V V E 2 c E E 3 d 0 T E Q Q Q Q E 4 Executing Ex. With Q locked Ex. With V locked ready blocked 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A B C D

9 Aufgaben Semaphore Aufgabe 5
Lösungsformular Task Ankunftszeit Programmablauf 1/T Prio a 4 T E E Q V E 1 (hoch) b 2 T E V V E 2 c E E 3 d 0 T E Q Q Q Q E 4 Executing Ex. With Q locked Ex. With V locked ready blocked 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A B C D

10 Aufgaben Semaphore Aufgabe 6
Stellen Sie den Erreichbarkeitsgraphen für das nebenstehende Petri-Netz (Bedingung/Ereignis-Netz) auf, um nachzuweisen, dass es einen Knoten ohne abgehende Kanten gibt, so dass es zu einer Verklemmung kommen kann. Das Verhalten eines Lese-/Schreiblocks soll mit Hilfe normaler Semaphore nachgebildet werden, so dass zwei Rechenprozessen der lesende Zugriff oder einem Rechenprozess der schreibende Zugriff erlaubt ist. Dazu wird ein Semaphor mit 2 vorinitialisiert. Ein Prozess, der nur lesend auf den kritischen Abschnitt zugreift, allokiert das Semaphor wie gewohnt einmal, ein Rechenprozess, der schreibend zugreifen möchte, allokiert dagegen das Semaphor zweimal. Zur Vereinfachung sind 3 zugreifende Prozesse maximal aktiv. Sequenz zum Lesen Sequenz zum Schreiben P(S1) ... // kritischer Abschnitt V(S1)


Herunterladen ppt "Aufgaben Semaphore Übersicht (Dijkstra)"

Ähnliche Präsentationen


Google-Anzeigen