3.3 Strategien zur Ablaufsteuerung - Informatik • Informatik · SRTF (shortest remaining time...

21
bs-3.3 1 3.3 Strategien zur Ablaufsteuerung Klasse Process = Mechanismus Klasse ReadyList = Strategie class Process { ... static Set<Process> readyList = new ReadyList(); ... } Prinzip der Trennung von Strategie (Richtlinie, policy) und Mechanismus (mechanism) bedeutet bei der Prozessverwaltung

Transcript of 3.3 Strategien zur Ablaufsteuerung - Informatik • Informatik · SRTF (shortest remaining time...

bs-3.3 1

3.3 Strategien zur Ablaufsteuerung

Klasse Process = Mechanismus

Klasse ReadyList = Strategie

class Process {...static Set<Process> readyList = new ReadyList();...}

Prinzip der Trennung von Strategie (Richtlinie, policy) undMechanismus (mechanism)

bedeutet bei der Prozessverwaltung

bs-3.3 2

Strategie der Prozessverwaltung heißt

Strategie der Ablaufsteuerung (scheduling strategy)oder einfach Ablaufsteuerung (scheduling)

und hat die Aufgabe, die knappe Ressource "Prozessor"in geschickter Weise an die Prozesse zu vergeben

Mögliche Ziele der Ablaufsteuerung (teilweise in Konflikt):

Effiziente Nutzung von Prozessoren und anderen Ressourcen

Bevorzugung wichtiger Prozesse

Termingerechtheit (bei Echtzeitsystemen)

Fairness

bs-3.3 3

3.3.1 Grundbegriffe

Warteschlangensystem (queueing system)für knappe Betriebsmittel:

Auftrag Ergebnis

Warteschlange Bedienstation(en)(Auftragsstauraum) (Betriebsmittel, Anbieter, server)

z.B. Bereitliste für Prozessor(en)oder Druckerwarteschlange für Drucker

Verdrängung

Bedienung

bs-3.3 4

Mathematische Behandlung:

Warteschlangentheorie (Teil der Wahrscheinlichkeitstheorie),basierend auf den Zufallsvariablen Ankunftsrate und Bearbeitungszeit

Grobe Klassifikation der Bedienung von Warteschlangen:

→ verdrängende (präemptive, preemptive)Strategien

→ nichtverdrängende (non-preemptive)

Beachte: bei manchen Ressourcen-Typen sindkeine verdrängenden Strategien möglich;Beispiel: Drucker

bs-3.3 5

Def.: faire Strategie: jeder eintreffende Auftrag wird"in absehbarer Zeit" erledigt (Beispiel: FCFS)(verschiedene Präzisierungen möglich!)

Def.: Verweilzeit eines Auftrags (auch Antwortzeit, response time):

t = Wartezeit w + Bearbeitungszeit s

Verzögerung (response ratio)t/s = (w+s)/s = 1 + w/s

! Oft ist s nicht – oder nur näherungsweise – bekannt !

bs-3.3 6

3.3.2 Elementare Strategien

FCFS (FIFO) (first-come, first-served; first in, first out)Bedienung in der Reihenfolge des Eintreffens

nichtverdrängend+ einfach+ fair– kleine Aufträge werden ungebührlich benachteiligt:

Verzögerung t/s = (w+s)/s = 1 + w/swächst stark für kleine s !

Beispiel:t/s = 1 + w/s = 4

t/s = 1 + w/s = 2

(vergleiche auch ALP 4, Kap. 4)

bs-3.3 7

SJF (shortest job first; auch shortest request first, SRF)Bedienung gemäß ansteigenden Bearbeitungszeiten

nichtverdrängend+ einfach+ schnelle Erledigung kleiner Aufträge,

mittlere Verweilzeit t wird minimiert (gemittelt über die Anzahl der Aufträge!)

– Bearbeitungszeit muß bekannt sein– nicht fair

Beispiel:t = (3+4)/2 = 3,5 für FCFS

t = (1+4)/2 = 2,5 für SJF

bs-3.3 8

Variante mit Verdrängung:

SRTF (shortest remaining time first):Bearbeitung wird unterbrochen zugunsten eines neuenAuftrags, dessen Bearbeitungszeit kleiner als die aktuelle Restbearbeitungszeit ist.

noch stärkere Bevorzugung der kleinen Aufträge

bs-3.3 9

RR (round-robin, „Ringelreihen“, Reihum-Verfahren)FCFS-Warteschlange, aber bearbeiteter Auftragwird grundsätzlich nach Ablauf einer Zeitscheibeverdrängt und am Ende der Schlange eingereiht

verdrängend

+ fair: wenn n Aufträge in Bearbeitung sind, erhältjeder 1/n der Betriebsmittel-Kapazität(unabhängig vom Zeitpunkt des Eintreffens!)

+ ohne Benachteiligung kleiner Aufträge!

– Aufwand

Beispiel mit n=2:t = 2 für FCFSt = 2 + 2 = 4t = (2+4)/2 = 3

bs-3.3 10

PRIO (priority, Priorität)Bedienung nach Dringlichkeit (zusätzliches Attribut),typischerweise gemäß abfallenden Rangzahlen

nichtverdrängend+ einfach (Prioritätsschlange als Heap realisieren!)+ Verallgemeinerung von

FCFS (Rang = Ankunftzeit)SJF (Rang = Bearbeitungszeit)

– nicht fair (bei extern festgelegten, nicht veränderbaren Prioritäten)

bs-3.3 11

HRN (highest response ratio next)lange Wartezeit geht als Bonus ein:bedient wird der Auftrag mit maximaler Verzögerung

t/s = 1 + w/s(Aufträge gleich groß FCFS, Aufträge gleichzeitig SJF )

Guter Kompromiss zwischen FCFS und SJF,wenn verdrängende Strategie (wie RR) nicht möglich !(Vergleiche auch ALP 4, 4.2.2)

Beispiel:

a

a: 1+5/2 = 3,5b: 1+4/1 = 5 b abfertigenc: 1+1/1 = 2

a: 1+6/2 = 4 a abfertigenc: 1+2/1 = 3

Wartezeiten 1 4 5

Bearbeitungszeiten 1 1 2

2 6

1 2

bc

ac

bs-3.3 12

SRR (selfish RR)

wie RR, aber neue Aufträge werden nicht sofortan der Ressource beteiligt:

zum Zeitpunkt a eintreffender Auftrag wird erstzum Zeitpunkt a/r , 0 ≤ r ≤ 1 , am RR beteiligt (oder wenn kein RR-Beteiligter mehr vorhanden)

kontinuierliches Spektrum von Strategien mit FCFS für r = 0 , RR für r = 1 .

bs-3.3 13

Bearbeitungszeit s

Erwartete Verweilzeit E(t)

E(s) = 1

bs-3.3 14

3.3.3 Gemischte Strategien

MLQ (multi-level queues)Kombination von PRIO mit anderen Strategienjeweils für Aufträge gleicher Priorität

Beliebt für die Ablaufsteuerung ist PRIO mit RR:

Bereitliste:

4

3

2

1

Benutzerprozesse

Systemprozesse

Treiber

zeitkritische Treiber

bs-3.3 15

3.3.4 Dynamische Prioritäten

Statische Prozess-Prioritäten sind sinnvoll,

falls Prozesse in wenige Klassen einteilbar (3.3.3)

Dynamische Prioritäten bringen mehr Flexibilität,

falls Verhaltensprofil (rechenintensiv vs. E/A-intensiv)der Prozesse nicht vorhersagbar; befördert werdentypische Betriebsziele wie

• hohe Auslastung der Ressourcen• und damit hoher Durchsatz,• d.h. geringe Verweilzeiten

bs-3.3 16

Grundprinzip:

die Peripherie so stark wie möglich beschäftigen,jedenfalls so stark, wie es das Verhaltensprofilder Benutzerprozesse hergibt;

Folgerung: Dringlichkeit eine Prozesses orientieren

→ an seiner E/A-Intensität

→ an der Geschwindigkeit der benutzten E/A-Geräte

demnach vermeiden,

dass ein Gerät untätig ist, obwohl es Prozessegibt, die es benutzen wollen.

bs-3.3 17

2 Beispiele für Operationalisierung dieses Prinzips:

diskrete Vorgehensweise mit der AnnahmeProgramme haben E/A-Phasen und CPU-Phasen:

in regelmäßigen Abständen E/A-Intensität messen und Priorität entsprechend umsetzen

kontinuierliche Anpassung an CPU-Verbrauch:

Rangzahl entspricht akkumulierter Rechenzeit, allerdings mit Dämpfungsfaktor für länger zurückliegende Aktivität

bs-3.3 18

Bei Zeitscheibenende bzw. Blockade von Prozess p:bestimme neuen Rang von p und aktiviereden Prozess i mit minimaler Rangzahl ranki

ohne Dämpfung:

incr = elapsed

rankp‘ = rankp + incr

rankp‘ = akkumulierte CPU-Zeit

bs-3.3 19

Bei Zeitscheibenende bzw. Blockade von Prozess p:bestimme neuen Rang von p und aktiviereden Prozess i mit minimaler Rangzahl ranki

ohne Dämpfung: mit Dämpfung:

incr = elapsed incr = α * elapsed * weightweight = weight + incr

rankp‘ = rankp + incr rankp‘ = rankp + incr

rankp‘ = akkumulierte α > 0 , anfangs weight = 1 CPU-Zeit (bei Überlauf von weight alle ranki

und weight durch weight dividieren)

bs-3.3 20

3.3.5 Deadline Scheduling bei Echtzeitsystemen

System mit harten Echtzeit-Anforderungen(hard real-time system):

auf bestimmte Ereignisse muß durch den behandelnden Prozess unbedingtbinnen bestimmter Zeit reagiert werden

Prozessattribut deadline = zukünftiger Zeitpunkt, zu demder Prozess beendet sein muß

bs-3.3 21

Probleme:

1. keine Erfolgsgarantie, sofern man nicht vollständige Kenntnis vom Verhaltendes externen Prozesses und sichere obere Grenzenfür die Behandlungszeiten hat;

2. nicht gut geeignet, wenn sowohl hard deadlines als auch soft deadlines einzuhalten sind.

Deadline Scheduling: zu jedem Zeitpunkt muß derProzess mit der nächstliegenden Deadline aktiv sein