3.3 strategien zur ablaufsteuerung - informatik • informatik · srtf (shortest remaining time...
Post on 18-May-2018
216 Views
Preview:
TRANSCRIPT
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 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
top related