• Keine Ergebnisse gefunden

4B ETRIEBSMITTELVERWALTUNG

N/A
N/A
Protected

Academic year: 2021

Aktie "4B ETRIEBSMITTELVERWALTUNG"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

4 B

ETRIEBSMITTELVERWALTUNG

Betriebsmittel sind Objekte der Betriebsorganisation, die von Prozessen zu Definition und Fortschritt benötigt werden.

logische Betriebsmittel:

- Programme - Codebereiche - Datenbereiche - Zeitscheiben - logische Geräte - Dateien

- Kontrollblöcke, Listen - Speicherbereiche

physikalische Betriebsmittel:

- Zentralspeicher - Prozessor

- Geräte, Peripherspeicher

Betriebsmitel werden i. a. in verschiedenen Komponenten des Betriebssystems verwaltet, die auf die spezifischen Eigenschaften von BM-Klassen zugeschnitten sind und den Besonderheiten ihres Betriebs Rechnung tragen:

- Speicherverwaltung: Hauptspeicher, Page File - Programmverwaltung

- Prozeßverwaltung: Prozessoren

- E/A-Organisation: Geräte, Datenträger - Dateiorganisation: Dateien

Das vorliegende Kapitel soll gemeinsame Konzepte vorstellen und Fragestellungen behandeln.

Datenstrukturen der Betriebsmittel:

- physikalische Betriebsmittel

Beschreibung physikalischer Größen (z. B. Speichergrenzen, Verkabelung) - logische Betriebsmittel

* Parameter der Abbildung auf physikalische Betriebsmittel (z. B. Speichergrenzen, Geräteverweis, Datenträgerverweis, Lage auf Datenträger)

* logische Parameter des Betriebssystems (z. B. Dateiorganisationsform, Satzformat, Programmtyp)

- geteilte Betriebsmittel

Beschreibung der Aufteilung (z. B. Dateiverzeichnis, Blockbelegung, Speicherbelegungsinformation)

Allgemein:

- Betriebsmitteltyp

- Zugriffsbeschränkungen (z. B. Besitzer, Rechte, Schlüssel) - Zuteilungsstrategie-Parameter

- Betriebszustand (z. B. on-line, off-line)

- Wartungsinformationen (z. B. defekt Spuren, Fehlerhäufigkeit)

- Belegungszustand (z. B. frei/belegt von ..., angefordert von ...)

Ablage der Information:

- Beschreibungs- und Kontrollblöcke in Haupt- oder Peripherspeicher - bei gleichartigen Betriebsmittel u. U. Tabellen, Listen

- in Kontrollblöcken übergeordneter Strukturen

(2)

4.1 Betriebsmittelbelegung

4.1.1 Operationen

- Belege_eigen Prozeß fordert selbst Betriebsmittel für sich an (z. B. Datei öffnen)

- Belege_fremd Ein Prozeß fordert für einen fremden Prozeß Betriebsmittel an und weist es ihm zu (z. B. Speicherbereiche zur Prozeßerzeugung)

- Gib_frei Ein Prozeß gibt ein von ihm belegtes Betriebsmittel zurück

- Entziehe Ein Prozeß entzieht einem fremden Prozeß ein Betriebsmittel und gibt es frei

4.1.2 Realisierung der Operationen

Realisierung als Prozedur des Operationsaufrufers - Blockierung des Aufrufers für die Dauer der Operation - u. U. Adreßraumgrenzenüberschreitung erforderlich

Realisierung durch selbständigen Prozeß der über Auftragsschnittstelle angestoßen wird

- Nebenläufigkeit Auftraggeber-Operationsabwicklung

- auftragübergreifende Strategien können leichter realisiert werden - Aufträge werden an Auftragsschnittstelle zeitlich serialisiert:

kritische Abschnitte bei Operationsabwicklung werden dadurch zum Teil vermeidbar - Auftragsabwicklung unterliegt Systemprozeß:

erleichterte Realisierung von Schutzkonzepten Belege_eigen

Betriebsmittel frei ? Betriebsmittel anteilig verfügbar ?

Vermerke Betriebsmittel / Betriebsmittelanteil in Kontrollblock als "von Prozeß belegt"

J

N

Trage Prozeß in Warteliste ein und blockiere Prozeß in Zustand "BM-fordernd"

Ordne Prozeß Betriebsmittel zu

Gib_frei

(3)

BM-Warteliste leer?

Deblockiere Prozesse in Warteliste Vermerke BM / BM-Anteil in Kontrollblock

als "frei", u. U.: trage BM aus Prozeß-BM-Liste aus

N

J

Belege_fremd

Betriebsmittel frei

Betriebsmittel anteilig verfügbar?

? Vermerke BM / BM-Anteil

"von fremden Prozeß belegt",als ordne BM fremden Prozeß zu

Trage fremden Prozeß Warteliste ein undin blockiere

ihn in Zustand "BM- fordernd"

J N

Gib_frei

Vermerke BM / BM-Anteil als "frei"

und trage BM aus Prozeß-BM-Liste aus

BM-Warteliste leer ?

Solange möglich:

- Wähle Prozeß aus Warteliste aus, dessen Anforderung erfüllbar ist - Vermerke BM / BM-Anteil als von diesem Prozeß belegt, ordne Betriebsmittel diesem Prozeß zu

- Trage Prozeß aus Warteliste aus und deblockiere ihn N

J

Entziehe

(4)

Blockiere fremden Prozeß in Zustand "von BM verdrängt", trage Prozeß in Warteliste ein

Vermerke BM / BM-Anteil als "frei"

und in Verwaltung des fremden Prozesses als entzogen

Rette BM-Betriebszustand zur Wiederherstellung bei erneuter Zuteilung

Beispiele für Entzug:

- Prozessorentzug:

Prozessorstatus wird in PCB gerettet, bei erneuter Prozessorzuteilung wiederhergestellt.

- Arbeitsspeicherentzug:

Speicherbereiche werden partiell (Paging) oder insgesamt (Swapping) ausgelagert.

- Entzug eines defekt gewordenen Peripheriegeräts

Wenn kein Ersatzgerät zuordbar ist, muß Prozeß nicht erfolgreich abgebrochen und u.

U. vernichtet werden.

Die Neuzuordnung entzogener Betriebsmittel ist i. a. BM-Typ-spezifisch, bei bestimmten Situationen zum Teil auch nicht vorgesehen.

4.1.3 Strategien

Bei konkurrierenden Anforderungen knapper Betriebsmittel muß im Konfliktfall eine Auswahl getroffen werden:

- bestimmte Anforderungen werden sofort erfüllt, - andere müssen zurückgestellt werden.

=> Strategie zur Auswahl 1) Allgemeine Möglichkeiten

- zufällige Auswahl

- Auswahl im Hinblick auf Fairness gegenüber Prozessen - Auswahl im Hinblick auf gute Systemauslastung

2) Grundstrategien

- zeitliche Reihenfolge (Fairness)

- Prioritäten mit zeitlicher Reihenfolge kombiniert - Angebot und Nachfrage:

Momentan erfüllbare Anforderungen werden auch älteren, aber unerfüllbaren Anforderungen vorgezogen (Auslastung)

- Reservierung

Momentan erfüllbare Anforderungen werden auch älteren, aber unerfüllbaren Anforderungen vorgezogen, wenn sie zu diesen nicht in Konflikt stehen. Die Erfüllung jüngerer Anforderungen darf ältere Anforderungen nicht verzögern

(5)

3) Strategie Reservierung

- Belege_fremd und Gib_frei (fremd)

- in Gib_frei wird "Wähle Prozeß aus Warteliste aus, dessen Anforderung erfüllbar ist" durch folgenden Algorithmus ersetzt:

Sei m : Anzahl der Prozesse in Liste,

n : Anzahl der Betriebsmitteltypen

F = (f1, f2, ..., fn) : Freivektor

(z. B. f2= 3 => vom Betriebsmitteltyp 2 sind 3 Exemplare frei)

Ai = (ai1, ai2, ..., ain) : Anforderungsvektor für Prozeß Pi i = 1, ..., m

B = (b1, b2, ..., bn) : Bestellvektor

Initialisierung: B = (0, 0, ..., 0) Ein Prozeß Bi wird genau dann ausgewählt, wenn gilt:

bj + aij <= fj für alle j mit aij <> 0.

Wird ein Prozeß ausgewählt, so werden seine Anforderungen erfüllt:

fj = fj - aij für alle j,

sonst werden seine angeforderten Betriebsmittel bestellt:

bji = bj + aij für alle j.

Beispiel:

Gegeben:

Anzahl der Betriebsmitteltypen n = 7 Anzahl der Prozesse in Liste m = 5

Freivektor F = (3, 5, 1, 4, 4, 4, 2) Anforderungsvektoren A1 = (2, 2, 1, 0, 0, 0, 0)

A2 = (0, 1, 1, 1, 0, 0, 0) A3 = (0, 0, 0, 2, 2, 2, 0) A4 = (0, 3, 0, 3, 0, 2, 1) A5 = (0, 0, 0, 0, 0, 0, 2)

Prozeß B + Ai Entscheidung Freivektor Bestellvektor

3 5 1 4 4 4 2 0 0 0 0 0 0 0

P1 2 2 1 0 0 0 0 auswählen 1 3 0 4 4 4 2 0 0 0 0 0 0 0

P2 0 1 1 1 0 0 0 bestellen 1 3 0 4 4 4 2 0 1 1 1 0 0 0

P3 0 0 0 3 2 2 0 auswählen 1 3 0 2 2 2 2 0 1 1 1 0 0 0

P4 0 4 0 4 0 2 1 bestellen 1 3 0 2 2 2 2 0 4 1 4 0 2 1

P5 0 0 0 0 0 0 3 bestellen 1 3 0 2 2 2 2 0 4 1 4 0 2 3

Variante: BS 2000

Ein Prozeß wird zum "Sammeltask" erklärt. Dieser Prozeß darf Betriebsmittel "sammeln", d. h. Teilbedingungen durchführen. Er steht als erster in der Liste und belegt bei jedem Gib_frei - Aufruf soviele Betriebsmittel wie möglich.

(6)

4) Prozeßorganisation für Betriebsmittelverwaltung für Belege_fremd, Gib_frei (fremd)

Benutzerprozesse:

SENDE (Anforderung) WARTE (Belegung) SENDE (Freigabe) a) 2 Sekretäre

1 Belegen 2 Freigeben

b) 1 Sekretär mit phasenparalleler Organisation BM - Verwalter

Warte (Anforderung oder Freigabe)

Anforderung registrieren

prüfen und belegen

Freigeben

4.2 Verklemmungen

Definition: Verklemmung (Deadlock)

Eine Menge von Prozessen heißt verklemmt, wenn jeder der Prozesse deshalb blockiert ist, weil er auf ein Betriebsmittel wartet, das von einem anderen Prozeß bereits belegt ist. Keiner der Prozesse kann fortgesetzt werden, da die Fortsetzung nur nach Freigabe eines Betriebsmittels durch einen anderen ebenfalls blockierten Prozeß erfolgen könnte: Zirkulare Wartebedingung.

Beispiel: Verklemmung

Prozeß P1 Prozeß P2 Prozeß P3

... ... ...

Belege(Drucker) exklusiv Belege(Band) exklusiv Belege(DateiA) exklusiv

... ... ...

=> Belege(DateiA) exklusiv Belege(Drucker) exklusiv Belege (Band) exklusiv

... ... ...

Gib_frei (Drucker) Gib_frei (Band) Gib_frei (DateiA) Gib_frei (DateiA) Gib_frei (Drucker) Gib_frei (Band)

... ... ...

(7)

Auch Semaphore können als Betriebsmittel betrachtet werden, die mittels P-Operation belegt und mittels V-Operation freigegeben werden. Durch ungeeignete Prozeßorganisation kann auch hier eine Verklemmung auftreten.

Beispiel: Verklemmung mit Semaphoren var A, B: sema;

Prozeß P1 Prozeß P2

... ...

P(A) P(B)

... ...

P(B) P(A)

... ...

Beispiel:

var A, B: sema;

preset (A,1);

preset (B,1);

Prozeß P1 Prozeß P2

... ...

P(A) P(B)

... ...

V(B) V(A)

Verklemmungen können auftreten, wenn alle der folgenden Ursachen erfüllt sind:

A: Notwendige Begingungen

1. Hold and Wait - inkrementelle Belegung

Es werden neue Betriebsmittel angefordert, während andere Betriebsmittel bereits belegt sind.

2. Mutual Exclusion - exklusive Belegung

Belegung eines Betriebsmittels schließt Belegung desselben Betriebsmittels durch anderen Prozeß aus

3. No Preemption - keine Verdrängung

Belegte Betriebsmittel können nicht entzogen werden.

B: Notwendige und hinreichende Bedingung:

4. Circular Wait

Es existiert eine zyklische Wartebedingung.

(8)

Umgang mit Verklemmungen

Vermeidung (prevention): durch Eliminierung einer (oder mehrerer) der o. a. Ursachen Verhinderung (avoidance): erfüllbare Betriebsmittelanforderungen werden nicht gewährt,

wenn Verklemmungsgefahr besteht

Zulassung: Entdeckung (detection) und Auflösung (Recovery) der Verklemmung

Ignorieren (Vogel Strauss Strategie)

Definitionen:

Seien in einem bestimmten Betriebszustand:

V = (v1, v2, ..., vn) Vektor der jeweiligen Anzahl der vorhandenen Betriebsmittel Beispiel: V = (1,3,1) mit v1 = DateiA, v2 = Band, v3 = Drucker B = ( bij ) Belegungsmatrix

Prozeß i hat bij Exemplare des Betriebsmittels vj belegt A = ( aij ) Anforderungsmatrix

Prozeß i fordert aij Exemplare des Betriebsmittels vj an F = (f1, f2, ..., fn ) Freivektor

fi Exemplare des Betriebsmittels vi sind frei Ermittlung des Freivektors: fj = vj -

i bij

4.2.1 Vermeidung von Verklemmungen

Man unterscheidet zwischen Vermeidung und Verhinderung!

Verklemmungen können vermieden werden, wenn mindestens eine der o. a. Ursachen per Systemdesign eliminiert wird.

1) Hold and Wait

Eliminierung durch folgende Methode:

- Gesamtanforderungen aller Betriebsmittel zu Beginn der Verarbeitung => extrem schlechte Betriebsmittelauslastung, da zuviele Betriebsmittel angefordert werden und die meiste Zeit ungenutzt bleiben.

- Bei neuer Anforderung werden zunächst alle vom anfordernden Prozeß zuvor belegten Betriebsmittel freigegeben.

(9)

ist i. a. nicht eliminierbar.

3) No Preemption

-> Wartende Prozesse werden zwangsenteignet Problem:

Betriebsmittel können sich nach der Enteignung in inkonsistentem Zustand befinden, d.

h. Wiederaufsetzung bei der Unterbrechungsstelle ist i. a. nicht möglich.

4) Circular Wait

-> vorgeschriebene Reihenfolge der Anforderungen Beispiel: lineare Ordnung

Sei M = {BMx } und F : M -> N,

dann kann die Anforderung eines neuen BMx nur dann erfüllt werden, wenn F(x) > F(i) für alle bisher belegten BMi

F(Leser) = 1 F(Platte) = 5 F(Band) = 7 F(Drucker) = 12

=> Belegungsreihenfolgen: Leser -> Band erlaubt Band -> Leser verboten

- Band muß erst freigegeben werden, bevor von vorne angefangen werden kann - Reihenfolge gilt nicht zwischen allen Prozessen, sondern nur innerhalb eines

Prozesses

- wenn P1 Leser hat und P2 benötigt diesen auch, so muß P2 warten

4.2.2 Entdeckung und Behandlung

Wenn Verklemmungen auftreten, ist es notwendig, daß das System:

- den Zustand erkennt => Algorithmus zur Erkennung, der periodisch aufgerufen wird - die Verklemmung auflöst => Strategie zur Auswahl eines "Opfers" (z. B. nach Priorität,

entstehenden Schaden)

4.2.2.1 Algorithmus zur Entdeckung von Verklemmungen Es gilt:

Eine Menge von Prozessen (P1, P2, ..., Pm) ist verklemmungsfrei, wenn es eine Folge Pk1 ... Pkm gibt, so daß für jedes x  [1;m] gilt:

(1) Akx <= V -

Bky mit y = x...m

m : Anzahl der Prozesse n : Anzahl der Betriebsmittel Beispiel:

Ist ein System in dem Zustand V = (3,3), B = , A = verklemmt?

1. Möglichkeit: P1 -> P2

A1 = (0,2) <= V -

Bky = (3,3) - ( (1,0) + (0,2) ) = (3,3) - (1,2) = (2,1) => nicht möglich.

2. Möglichkeit: P2-> P1

(10)

A2 = (3,0) <= V -

Bky = (3,3) - ( (1,0) + (0,2) ) = (3,3) - (1,2) = (2,1) => Nicht möglich

=> System verklemmt!

Für die praktische Überprüfung wird die Ungleichung (1) angewendet.

(2) Akx <= V -

Br +

Bky mit y = 1...x-1 und r = 1...m

Die Teilsumme F = V -

Br stellt den augenblicklichen freien Vorrat an Betriebsmitteln dar

=>

(3) Akx <= F +

Bky mit y = 1...x-1 Entdeckung

F := V - Br für r=1...m

M := {1, 2, ... m}

H := M

wähle k aus H

k J

N

H := H \ {k} F := F + B k

M := M \ {k}

M = {} ? A <= F ?

N H = {} ?

J J

N

verklemmungsfrei alle Prozesse in M

verklemmt Beispiel:

3 Prozesse, 2 Betriebsmitteltypen V = (5,5)

B = A =

Ist das System verklemmungsfrei?

F = (5,5) - ( (1,0) + (0,2) + (2,1) ) = (2,2) M = {1,2,3} H = {1,2,3}

k = 1: A1= (2,0) <= (2,2) = F ? ja => P1 kann laufen F = (2,2) + (1,0) = (3,2)

M = {2,3} H = {2,3}

k = 3: A3= (1,3) <= (3,2) = F ? nein => H = {2}

(11)

F = (3,4)

k = 3: A3= (1,3) <= (3,4) = F ? ja => P3 kann laufen F = (5,5)

M = { } => verklemmungsfrei

4.2.2.2 Behandlung von Verklemmungen - Ein "Opfer" auswählen

Welche Betriebsmittel und welche Prozesse können mit möglichst geringem Schaden verdrängt werden.

Kriterien:

* Priorität

* Prozeß suchen, der geringsten Schaden erleidet bzw. verursacht - Anzahl und Typ der bereits belegten Betriebsmittel

- Auswirkung auf andere Prozesse - Behandlung des "Opfers" (Rollback)

* Beenden und Neustarten des Prozessors

* Rücksetzen auf Wiederaufsetzpunkt - Vermeiden von "Verhungern" (Starvation)

4.2.3 Verhinderung von Verklemmungen

Man unterscheidet zwischen Verhinderung und Vermeidung!

Verklemmungen können u. U. verhindert werden, wenn augenblicklich erfüllbare Anforderungen zurückgewiesen werden.

Beispiel:

BM1 BM2

P1 P2

BM2

BM1 Verklemmung

Verhinderung der Verklemmung durch zurückweisen der Anforderung BM2 von P2 Voraussetzung: die spätere Anforderung BM1 von P2 ist zu diesem Zeitpunkt bekannt

Algorithmus:

(12)

Die Routine Belege_fremd wird erweitert um zu prüfen, ob die Belegung zu einer Verklemmung führen kann. Jeder Prozeß muß also seinen maximalen Betriebsmittelbedarf im voraus melden.

Idee: "Rechnerisches" erfüllen der Gesamtanforderungen, dann Algorithmus zur Entdeckung.

=> G = ( gij ) Matrix der Gesamtanforderungen (ersetzt A) G - B ersetzt die noch zu erwartenden Anforderungen Es gilt:

Eine Anforderung kann dann gewährt werden, wenn sie das System in einem sicheren Zustand beläßt.

Ein Zustand heißt sicher, wenn es eine Folge Pk1, Pk2, ..., Pkm gibt, so daß für jedes 1 <= x <=

m gilt:

Gkx - Bkx <= V -

Bky für y = x...m bzw.

Gkx <= V -

Bky für y = x+1...m bzw.

Gkx <= F +

Bkyfür y = 1...x

Diese Bedingung muß nach der rechnerischen Erfüllung der aktuellen Anforderungen gelten.

(13)

Verhinderung

r l F := V - B - A für r = 1...m

M = {1, 2, ..., m }

l = Nr. des anfordernden Prozesses

H := M

l in H ?

wähle k aus H N J

k := l

G <= F + B ?k k F := F + B k

N

M := M \ { k}

k = l ? J

N

unsicher, nicht zuweisen H := H \ { k }

H = { } ? J J

F := F + A l

sicher, Zuweisung erlaubt Beispiel:

Gegeben: V = (5,5,5) B = G = P3->P2->P1

Kann die weitere Anforderung A1 = (0,1,0) von P1 gewährt werden?

B' =

F = (5,5,5) - ( (1,0,2) + (0,1,1) + (1,3,0) ) - (0,1,0) = (3,0,2) M = {1,2,3} H = {1,2,3} l = 1

k = 1: G1 = (1,5,2) <= (3,0,2) + (1,1,2) = (4,1,4) <= nein H = {1,3}

k = 3: G3 = (1,3,2) <= (3,0,2) + (1,3,0) = (4,3,2) <= ja F = (3,0,2) + (1,3,0)

= (4,3,2) M = {1,2} H = {1,2}

k = 1: G1 = (1,5,2) <= (4,3,2) + (1,1,2) = (5,4,4) <= nein H = {2}

k = 2: G2 = (1,2,3) <= (4,3,2) + (0,1,1) = (4,4,3) <= ja F = (4,3,2) + (0,1,1) = (4,4,3) M = {1} H = {1}

k = 1: G1 = (1,5,2) <= (4,4,3) + (1,1,2) = (5,5,5) <= ja F = (4,4,3) + (1,1,2) = (5,5,5)

=> sicher, die weitere Anforderung kann erfüllt werden.

Referenzen

ÄHNLICHE DOKUMENTE

Insbesondere geht es darum, die eigenen Erlebnisse und Erfahrungen, die im Praktikum und während des Studiums gewonnen und einer (Selbst-) Reflexion unterzogen wurden, noch einmal

en ale A fgabenbe eich e anke , in de Regel a o iie mi eine ge i en Technik- O ien ie ng, kla en Vo gaben, einem hohen Gena igkei an p ch nd de einde igen En cheidba kei , ob eine

Das Metamodell bestimmt nicht nur die Struktur der Dokumente und Diagramme, sondern zus¨atzlich die Formate f¨ur den Export, steuert ¨uber Beziehungen zwischen Dokumenten und

 Auch das Kapitel „Quellen“ (oder „Quellenverzeichnis“) wird nicht nummeriert..  Man könnte das Kapitel

Der durch die technologischen Innovationen und durch die Globalisierung beschleunigte Wandel der Arbeit und der Arbeitsbedingungen bedeutet ebenso wie die

• Mitarbeiter sollen aufgrund ihres aktuellen und geforderten Wissensstandes gefördert werden – nicht aufgrund früherer Abschlüsse... Schritt: Festlegen

(Region Labeling, Connected component labeling) I Bestimmen und gleichzeitiges Zählen der Regionen I ordnet jeder Region (Vordergrund) eines Binärbildes eine. eindeutige Markierung

Die hier wiedergegebenen Ausführungen aus [P 266] sind u. kein Nachweis dafür, dass die Systempermeabilität dieser Abdichtung 10 -18 m² oder weniger beträgt bzw. dass