• Keine Ergebnisse gefunden

Aufgabe 2: Kommunikation zwischen Prozessen: benannte Pipe oder FIFO

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe 2: Kommunikation zwischen Prozessen: benannte Pipe oder FIFO"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. rer. nat. Roland Wism ¨uller

Aufgabenblatt 9

(Besprechung am 16.12.2021)

Vorlesung Betriebssysteme I Wintersemester 2021/22

Aufgabe 1: Parkhaus-Synchronisation in Java (f ¨ ur Motivierte)

Schreiben Sie ein Simulationsprogramm f¨ur ein Parkhaus. Neue Autos kommen nach einem Zufallsverfahren an und verlassen nach zuf¨alliger Wartezeit das Parkhaus. Realisieren Sie jedes Fahrzeug als separaten Thread. Das Parkhaus hat nat¨urlich nur eine begrenzte Kapazit¨at.

Beschreiben Sie Ihre Implementierung. Verwenden Sie den vorgegebenen Code-Ger¨ustParking.java.

Die Meldungen sind in denenter()undexit()Methoden eingef¨ugt, damit man sieht welches Auto an der Reihe ist.

Z.B.:

”Car 7 herausfahren ... , Frei: 1“ (Auto 7 hat das Parkhaus verlassen, Freie Plaetze: 1) oder

”Car 4 wartet ...“ (Auto 4 soll warten, kein Platz frei.) Hinweise:

• Sie k¨onnen das Java Synchronisations-PaketBssync.jarverwenden. (siehe Webseite unter

”Materialien“; dort finden Sie auch die entsprechende Dokumentation)

• Versuchen Sie unterschiedliche L¨osungen mit den gelernten Synchronisationskonzepten zu implementieren.

Testen Sie Ihre L¨osung gr¨undlich. Sie k¨onnen (und sollen!) Ihre L¨osung in der ¨Ubung pr¨asentieren.

Aufgabe 2: Kommunikation zwischen Prozessen: benannte Pipe oder FIFO

Unbenannte Pipes werden im Systemkern erzeugt und verwaltet. Sie besitzen keine Eintr¨age ¨uber ihren Besitzer und eine Authentifizierung ist damit nicht m¨oglich. Moderne Betriebssysteme bieten aber ein erweitertes Konzept f¨ur Pipes, die so genannten Named Pipes (oder FIFO), an. FIFOs haben einen Eintrag im Dateisystem und sind durch Zugriffsrechte identifizierbar. Bei Unix-Systemen k¨onnen Sie mitmkfifo(oder Systemaufrufmknod) eine FIFO erzeugen. Es gibt einen POSIX-kompatiblen Funktionsaufruf und auch ein Unix Kommando mit gleicher Funktionalit¨at (s.man mkfifo undman 3 mkfifo).

Schreiben Sie entweder ein C-Programm oder eine Sequenz von Unix-Kommandos, um einen Datenaustausch zwischen zwei Prozessen mit Hilfe einer FIFO zu realisieren.

Aufgabe 3: Deadlocks

Gegeben sei ein System mit drei Prozessen (P1, P2, P3) und vier Semaphoren (A, B, C, D), die jeweils mit dem Wert 1 initialisiert wurden. Die Prozesse f¨uhren die folgenden Anweisungsfolgen aus:

1

(2)

Prozess P1 Prozess P2 Prozess P3

P(C) P(A) P(B)

P(A) P(B) P(D)

... P(D) P(C)

... ... ...

V(A) V(D) V(C)

V(C) V(B) V(D)

V(A) V(B)

Weisen Sie nach, dass sich dieses Prozesssystem prinzipiell verklemmen kann, indem Sie einen Ablauf angeben, der zu einer Verklemmung f¨uhrt. Stellen Sie den zeitlichen Ablauf der drei Prozesse in Form eines Diagramms dar, in dem Sie auch die Ausf¨uhrung der Semaphor-Operationen und auftretende Prozess-Blockierungen kennzeichnen.

Aufgabe 4: Belegungs/Anforderungs-Graph

Gegeben sei ein System mit drei Prozessen (P1, P2, P3) und drei Semaphoren (A, B, C), die jeweils mit dem Wert 1 initialisiert wurden. Die Prozesse f¨uhren die folgenden Anweisungsfolgen aus:

Prozess P1 Prozess P2 Prozess P3

P(A); P(B); // (2) P(B); // (1)

P(B); // (1) (2) P(C); // (1) P(C);

... P(A); P(A); // (2)

... ... ...

V(B); V(A); V(A);

V(A); V(C); V(C);

V(B); V(B);

Nehmen Sie an, daß bei zwei verschiedenen Ausf¨uhrungen des Prozess-Systems die Prozesse jeweils bis zu den mit (1) bzw. (2) markiertenP-Operationen gekommen sind, d.h. dieP-Operation wurde vom Prozess aufgerufen, ist aber noch nicht beendet (beachten Sie, daß das nicht zwangsl¨aufig bedeutet, daß der Prozess in derP-Operation blockiert wurde;

es k¨onnte genausogut sein, dass die Operation ohne Blockierung ausgef¨urt werden kann und nur noch nicht beendet ist).

Zeichnen Sie f¨ur die beiden Zust¨ande (1) und (2) je einen Belegungs/Anforderungs-Graphen. Liegt in einem der F¨alle eine Verklemmung vor?

Aufgabe 5: Belegungs/Anforderungs-Graph

Gegeben sei ein System mit drei Prozessen (P1, P2, P3) und drei Semaphoren (A, B, C), die jeweils mit dem Wert 1 initialisiert wurden. Die Prozesse f¨uhren die folgenden Anweisungsfolgen aus:

Prozess P1 Prozess P2 Prozess P3

P(A); P(C); P(C);

P(B); P(A); // (*) V(C);

V(B); P(B); P(A); // (*)

P(C); // (*) ... P(B);

... ... ...

V(C) V(B); ...

V(B); V(A); V(B);

V(C); V(A);

In einem bestimmten Ablauf hat sich dieses System in den mit (*) gekennzeichnetenP-Operationen verklemmt. Zeichnen Sie f¨ur diesen Zustand einen Belegungs/Anforderungs-Graphen.

2

(3)

Aufgabe 6: Verklemmungserkennung: matrixbasierter Algorithmus

Gegeben ist der folgende Zustand eines Prozess-Systems:

RessourcenvektorE= 3 4 1 2

BelegungsmatrixC=

1 0 0 0 0 1 1 0 2 0 0 0 0 1 0 0 0 0 0 1

AnforderungsmatrixR=

0 0 0 2 0 0 1 0 0 3 0 0 2 0 0 0 0 1 0 0

a) Bestimmen Sie zun¨achst den RessourcenrestvektorA. b) F¨uhren Sie nun den matrixbasierten Algorithmus durch.

c) Liegt eine Verklemmung vor?

Aufgabe 7: Verklemmungserkennung: matrixbasierter Algorithmus

Gegeben sei ein System mit drei Prozessen (P1, P2, P3) und drei Semaphoren (A, B, C), die jeweils mit dem Wert 1 initialisiert wurden. Die Prozesse f¨uhren die folgenden Anweisungsfolgen aus:

Prozess P1 Prozess P2 Prozess P3

P(A); P(B); // (2) P(B); // (1)

P(B); // (1) (2) P(C); // (1) P(C);

... P(A); P(A); // (2)

... ... ...

V(B); V(A); V(A);

V(A); V(C); V(C);

V(B); V(B);

Nehmen Sie an, daß bei zwei verschiedenen Ausf¨uhrungen des Prozess-Systems die Prozesse jeweils bis zu den mit (1) bzw. (2) markiertenP-Operationen gekommen sind, d.h. dieP-Operation wurde vom Prozess aufgerufen, ist aber noch nicht beendet (beachten Sie, daß das nicht zwangsl¨aufig bedeutet, daß der Prozess in derP-Operation blockiert wurde;

es k¨onnte genausogut sein, dass die Operation ohne Blockierung ausgef¨urt werden kann und nur noch nicht beendet ist).

Bestimmen Sie f¨ur die beiden Zust¨ande (1) und (2) mit Hilfe des matrixbasierten Algorithmus, ob eine Verklemmung vorliegt.

3

Referenzen

ÄHNLICHE DOKUMENTE

Erläuterung: Zwei Menschen a,b sind Aufgabengruppenpartner, in Zeichen a AGP b, wenn sie in der Vorlesung „Arithmetik als Prozess“ in diesem Semester ihre 3.Übung in einer

Bestimmen Sie nun (möglichst bequem) den Rest von n beim Teilen durch 6. „ Man bildet von einer Zahl die Quersumme ohne die letzte Ziffer, verdoppelt das Ergebnis und zieht die

und dann alles geschickt ineinander einsetzen, so dass am Ende eine bekannte Formel für P(n) entsteht. Berechnen Sie die Anzahl aller Möglichkeiten, mit denen man k = 4 Zahlen aus n

Wenn es endlich viele Lösungen für b gibt, probieren Sie diese alle durch?. Wenn es unendlich viele Lösungen für b gibt, prüfen Sie

Entwickeln und implementieren Sie die drei Varianten, bei denen der Datenaustausch zwischen den vier Prozessen einmal mit Pipes , Message Queues und Shared Memory mit

- In einem Zeitdiagramm gilt für je zwei Ereignisse e, e’ die Relation e<e’ genau dann, wenn es einen Kausalitätspfad von e nach e’ gibt. (bestehend aus Nachrichtenpfeilen

- Eine Nachricht wird nur dann an einen Prozess P ausgeliefert, wenn alle (bzgl. send-Ereignisse) kausal früheren Nach- richten an den gleichen Prozess schon ausgeliefert wurden.

- wenn Φ "jetzt" gilt, dann meldet dies ein (jetzt gestarteter) Schnappschussalg.. - Es gibt wichtige stabile Prädikate,