/ Betriebssysteme & Prozesse

Deadlock Minimale Ressourcen

Mindestanzahl an Ressourcen, ab der ein Deadlock prinzipiell vermieden wird: MinRes = Prozesse · (MaxBedarf − 1) + 1.

Deadlock — Minimale Ressourcen
01 · Eingabe

Deadlock — Minimale Ressourcen berechnen

Mindestanzahl an Ressourcen, ab der ein Deadlock prinzipiell vermieden wird: MinRes = Prozesse · (MaxBedarf − 1) + 1.

Lösen für
MinRes = Prozesse · (MaxBedarf 1) + 1

Worum geht es?

Wenn N Prozesse jeweils maximal M Exemplare einer Ressource benötigen, lässt sich ein Deadlock garantiert verhindern, sobald insgesamt mindestens N · (M − 1) + 1 Exemplare zur Verfügung stehen. Im schlimmsten Fall belegen alle Prozesse je (M − 1) Exemplare und blockieren sich gegenseitig — das eine zusätzliche Exemplar erlaubt mindestens einem Prozess, fertig zu werden, danach werden seine Ressourcen freigegeben.

Das ist die klassische Schubfach-Argumentation aus dem Banker-Kontext und liefert die Mindestanzahl, ab der eine sichere Allokation möglich ist.

Die Formel

Formel Deadlock-Schwelle
MinRes = Prozesse · (MaxBedarf − 1) + 1

Umstellungen:
    Prozesse  = (MinRes − 1) / (MaxBedarf − 1)
    MaxBedarf = (MinRes − 1) / Prozesse + 1

Die Variablen

SymbolBedeutungEinheitErklärung
ProzesseProzessanzahlAnzahl konkurrierender Prozesse.
MaxBedarfMax. Bedarf pro ProzessMaximaler Ressourcenbedarf eines einzelnen Prozesses.
MinResMin. RessourcenMindestanzahl an Ressourcen zur Deadlock-Vermeidung.

Minimal-Beispiel

Drei Prozesse, jeder benötigt maximal 2 Exemplare.

Rechnung 3 × 2
MinRes = 3 · (2 − 1) + 1
       = 3 + 1
       = 4

Praxis-Beispiele

Beispiel 1 — Klassisches Schulbuch-Beispiel

5 Prozesse, jeweils max. 4 Bandlaufwerke nötig.

Rechnung Bandlaufwerke
MinRes = 5 · (4 − 1) + 1
       = 15 + 1
       = 16

Beispiel 2 — Max. Prozesse bei Ressourcenlimit

Bei 22 Ressourcen und MaxBedarf 5 pro Prozess.

Rechnung Max. Prozesse
Prozesse = (22 − 1) / (5 − 1)
         = 21 / 4
         = 5,25 → max. 5 Prozesse

Beispiel 3 — Zulässiger MaxBedarf

10 Ressourcen, 3 Prozesse — welcher MaxBedarf bleibt sicher?

Rechnung MaxBedarf
MaxBedarf = (10 − 1) / 3 + 1
          = 3 + 1
          = 4