Kooperation von Prozessen Flashcards

1
Q

Semaphor aus Benutzersicht (Definition)

A

Ein Semaphor ist eine von mehreren Prozessen nutzbare Integer Variable, die nur über die drei folgenden Aktionen veränderbar ist:

  • sem.init(n) initialisiert den Semaphor sem mit n e N0
  • sem.P() dekrementiert sem um 1
  • sem.V() inkrementiert sem um 1

Zusätzlich gilt:

  1. Alle Aktionen auf einem Semaphor sind wechselseitig ausgeschlossen.
  2. Der Wert eines Semaphores wird nie negativ.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Semaphor aus Implementierungssicht (Definition)

A

Ein Semaphor ist ein Datentyp, der aus einer Zählervariablen sem und seinem Speicher für Prozesszustände (Warteraum) susp besteht, auf dem nur die folgenden, wechselseitig ausgeschlossenen Operationen definiert sind:

  • sem.init(n) :: sem = n; susp = PCBQueue()=; mit n e N0
  • sem.P() :: sem = sem - 1 Falls (sem < 0) suspendiere den Ausführenden Prozess und füge ihn in der Warteschlange susp ein
  • sem.V() :: sem ) sem + 1 Falls (sem <= 0) entnimm den ersten wartenden Prozess aus der Warteschlange susp und füge ihn in die READY Liste ein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly