Vorschlag Einsendeaufgabe 2 für Kurs 20047

So liebe Mitstudenten,

was kann man hierdran besser machen?

Aufgabe 1:

a)

1. Beispiel:
2. Beispiel:
3. Beispiel:

4. Beispiel:

b)
Die Bedingung eines kritischen Abschnitts bei mehreren nebenläufigen Prozessen ist, dass hiervon mindestens ein Prozess schreibend auf gemeinsam genutzte Daten/Betriebsmittel zugreift.
c)

An kritische Abschnitte werden nach Dijkstra vier Anforderungen gestellt. Benennen Sie diese.

1. Anforderung:
2. Anforderung:
3. Anforderung:
4. Anforderung:

Aufgabe 2:

a)

Name des Semaphors Initialwert
P1 P2 P3
kritischer Abschnitt kritischer Abschnitt kritischer Abschnitt

b)

Der Semaphor s muss mit dem Wert 2 initialisiert werden.
Vorgehen sollte vermieden werden, da Zustand des kritischen Abschnitts durch unklare Reihenfolge der Schreib/Lesezugriffe nicht eindeutig.

Aufgabe 3:

a) 2051

Seitengröße = 4096 Byte
Virtuelle Adresse/Seitengröße: 2051/4096 = 0 R 2051
Seitenummer (Index) = 0
Offset = 2051
Seitenrahmennummer= 0

phy. Adresse = Seitenrahmennr * Seitengröße + Offset:
0*4106+2051 = 2051

b) 2051

Physische Adresse/Seitengröße: 2051/4096 = 0 R 2051
Seitenrahmennummer = 0
Offset = 2051
Seitennummer = 0

Virtuelle Adresse = Seitennummer * Seitengröße + Offset:
0*4106+2051 = 2051

Aufgabe 4:

a)

zu A zu B zu C zu D zu E
von A Nein Nein Ja Nein Nein
von B Nein Nein Ja Nein Nein
von C Nein Nein Nein Ja Ja
von D Ja Ja Nein Nein Nein
von E Ja Ja Nein Nein Nein

b)

Name des Semaphors Initialwert
AC 0
BC 0
CD 0
CE 0
DA 1
EA 1
DB 1
EB 1
[leer] [leer]
[leer] [leer]
[leer] [leer]
[leer] [leer]

c)

A B C D E
P(DA) P(DB) P(AC) P(CD) P(CE)
P(EA) P(EB) P(BC) [leer] [leer]
[leer] [leer] [leer] [leer] [leer]
[leer] [leer] [leer] [leer] [leer]
Prozess arbeitet Prozess arbeitet Prozess arbeitet Prozess arbeitet Prozess arbeitet
V(AC) V(BC) V(CD) V(DA) V(EA)
[leer] [leer] V(CE) V(DB) V(EB)
[leer] [leer] [leer] [leer] [leer]
[leer] [leer] [leer] [leer] [leer]

d)

Paarung kann zusammengefasst werden Name des zusammengefassten Semaphors
(B → A, A → B) Nein BAAB
(E → A, E → B)
wenn gleichzeitig auch
(D → A, D → B) 
Ja EAEB
(A → C, B → C) Nein ACBC
(A → E, B → E) Nein AEBE
(D → A, E → A) Nein DAEA
(C → A, C → B) Nein CACB
(D → B, E → B) Nein DBEB
(C → D, C → E) Ja CDCE
(D → E, C → E) Nein DECE

e)

Name des Semaphors Initialwert
EAEB 2
CDCE 0

A B C D E
P(EAEB) P(EAEB) P(AC) P(CDCE) P(CDCE)
[leer] [leer] P(BC) [leer] [leer]
[leer] [leer] [leer] [leer] [leer]
[leer] [leer] [leer] [leer] [leer]
Prozess arbeitet Prozess arbeitet Prozess arbeitet Prozess arbeitet Prozess arbeitet
V(AC) V(BC) V(CDCE) V(EAEB) V(EAEB)
[leer] [leer] V(CDCE) [leer] [leer]
[leer] [leer] [leer] [leer] [leer]
[leer] [leer] [leer] [leer] [leer]

Für Korrekturen bin ich natürlich stark empfänglich, schreibt gerne in die Kommentare.

Nicht gelöste Aufgaben werde ich noch im Laufe der Zeit ergänzen. Haltet dazu einfach den Twitterfeed im Auge, ich weiss nicht ob die RSS Leser das sonst mitbekommen.

5 Gedanken zu “Vorschlag Einsendeaufgabe 2 für Kurs 20047

  1. Hallo,

    ich sitze auch grade über der EA.
    Ich habe weitestgehend die gleichen Antworten wie du.
    Virtueller Speicher habe ich allerdings noch nicht gemacht. Ich finde aber das sieht sehr richtig aus 😉

    nur bei der letzten Aufgabe (Prozesssynchronisation3 d & e) habe ich eine komplett andere lösung:

    d)
    zusammengelegte Kanten:
    (A → C, B → C)) –> ACBC
    (D → A, E → A) –> DAEA
    (D → B, E → B) –> DBEB
    (C → D, C → E) –> CDCE

    e)
    neue Initialwerte:

    Name des Semaphors Initialwert
    DAEA 2
    DBEB 2

    –> die restlichen haben m.e. den initialwert 0

    Abarbeitungsschema:
    A B C D E
    P(DAEA) P(DBEB) P(ACBC) P(CD) P(CE)
    P(DAEA) P(DBEB) P(ACBC) [leer] [leer]
    Prozess arbeitet
    V(ACBC) V(ACBC) V(CD) P(DAEA) P(DAEA)
    [leer] [leer] V(CE) P(DBEB) P(DBEB)

    Ich versuche mal meinen Gedankengang zu erklären:
    Laut aufgabe sind alle Prozesse nebenläufig und wiederkehrend.
    d.h. wenn du den Semaphor EAEB initial auf 2 setzt kanns dir passieren das der Prozess A zwei mal hintereinander ausgeführt wird und B gar nicht. das gleiche kann dir auch bei CDCE passieren.

    Ich denke dass man alles zusammenlegen kann wo 2 Pfeile auf einen Prozess zeigen (wenn du dir den Graphen aufgezeichnet hast).
    Du musst aber trotzem die zusammengelegten Semaphoren 2 mal passieren um sicher zu sein das beide vorgänger ausgeführt wurden.

    ich hoffe die erklärung ist einigermaßen verständlich.
    Sollte ich komplett auf dem falschen Dampfer bin ich natürlich für eine Korrektur dankbar 🙂

    Gruß
    Thomas

    Like

    • Bin voll deiner Meinung (auch mit der Korrektur unten). War wohl schon etwas spät, als ich die Lösung bearbeitet hatte. Aber ich habe die Aufgabe nochmal bei 0 gestartet und bin nun mit dir d’accord. Vielen Dank für dein Comment

      Like

  2. Nachtrag.

    ich habe grade noch einen Fehler entdeckt.
    bei Prozess D und E müssen die Semaphoren DAEA und DBEB natürlich verlassen werden. nicht passiert.
    Also V() statt P().

    klassicher Copy-Paste-Fehler 😀

    Like

  3. Gern geschehen. wobei ich mir natürlich auch nicht sicher bin ob meine Lösung korrekt ist.

    eben habe ich die Adressierungsaufgabe gemacht.
    Du Rechnest mit einer Seitengröße in Byte. Ich glaube das der Speicher Wortadressiert ist. d.h. du müsstest die Seitengröße nochmal durch 2 teilen.
    Würde schon darum sinn machen weil dann bei a und b nicht die gleichen Ergebnisse raus kommen.

    Hier mal meine Lösungen: (natürlich auch ohne gewähr 🙂 )
    für Korrekturen bin ich Dankbar

    a)
    Seitengröße = 4096 Byte = 2043 Worte

    2051/2043 = 1 rest 8
    -> Seitennummer = 1 -> Seitenrahmen = 2;
    Offset = 8

    berechnung physische Adresse:
    2 * 2043 + 8 = 4094

    b)
    Seitengröße = 2043 Worte (siehe oben)

    2051/2043 = 1 rest 8
    -> Seitenrahmen 1 -> Seitennummer = 4;
    Offset = 8

    berechnung physische Adresse:
    4 * 2043 + 8 = 8180

    c) Seite muss geladen werden.

    Like

Hinterlasse einen Kommentar