Prozesse
Programme, die sich in Ausführung befinden
z.B. aktive Shell, Befehle wie ls, cat zur Ausführungszeit
besitzen Enviornment
Prozessvariablen, die an Kindprozesse verebt werden
und lokale Variablen
Prozesshierachie:
können selbst nur von Elternprozessen erzeugt werden
Programm
Sequenz von Anweisungen
in Datei gespeichert
wenn in Ausführung wird Programm zu Prozess
Prozessverwaltung
In der Regel läuft "gleichzeitig" eine Vielzahl von Prozessen.
sollen "gerechten" Anteil an Hardwareressourcen erhalten, damit alle ihre Aufgabe sinnvoll erledigen können (Prozessverwaltung)
Der Benutzer kann in gewissem Umfang in die Prozessverwaltung eingreifen
(Befehle zur Prozessverwaltung).
Benutzerprozesse
Systemprozesse
Anwendungsprogramme in Ausführung
führen Dienste des OS aus
häufig deamons
Hilfsprozesse, die ständig existieren
meist passiv
Prozess besteht aus
einem sich in Ausführung befindlichen Programm
lokalen Variablen
globalen (Umgebungs-)variablen (Environment)
Beim Abspalten eines Kindprozesses wird nur das Environment vererbt.
Welche Größen zum Environment gehören und welche Werte sie besitzen, hängt vom System, von der verwendeten Shell und von den vorangegangenen Befehlen ab.
Hauptverantwortung Betriebssystem: Steuerung der Ausführung von Prozessen
basiert auf Prozessmodell, das die Zustände die ein Prozess annehmen kann enthält
Prozesszustandsübergangsmodelle
erster Schritt beim erstellen eines Programms für Prozesssteuerung:
Beschreibung des Verhaltens, das Prozess zeigen soll
wird durch Modelle modelliert
Prozesszustände und zulässige Zustandsübergange
grundlegende Prozesszustände
aktiv: wird zurzeit ausgeführt
bereit: kann ausgeführt werden, wartet auf Ausführung
blockiert: kann nicht ausgeführt werden, solange nicht bestimmtes Ereignis eintritt
Ablaufplanung
bereite Prozesse werden in Warteschlange geparkt
wenn Prozessor frei wird wählt Ablaufplaner einen der wartenten Prozesse aus
Prozesserzeugung
OS erstellt Datenstrukturen, die für Verwaltung des Prozesses verwendet werden und weist Prozess Adressraum im Hauptspeicher zu
Erzeugung Prozess i.d.R. für Benutzer/Anwendungsprogramm transparent
verwandte Prozesse müssen i.d.R. miteinander kommunizieren und kooperieren
Gründe Prozesserzeugung *
Neuer Batch Job
Interaktives Anmelden
Bereitstellung eines Dienstes durch OS erzeugt
Erzeugung durch bereits bestehenden Anwendungsprozess
Prozessterminierung *
Computersystem muss es ermöglichen, dass Prozesse ihre Beendigung anzeigen
Dienstanforderung an OS den anfordernden Prozess zu terminieren
Fehlerbedingungen können ebenfalls zur Terminierung führen
Prozesszustand Neu
gerade erzeugt, noch nicht zur Gruppe der ausführbaren Prozesse zugelassen
typischerweise noch nicht in Hauptspeicher geladen, noch im Sekundärspeicher
Prozesszustand Terminiert
Terminiert:
aus Gruppe der ausführbaren Prozesse aussortiert
entweder gestoppt oder abgebrochen oder Fehler
“Neu“ und “terminiert“
Die Tabellen und Informationen, die mit dem Prozess in Zusammenhang stehen, werden jedoch zeitweilig vom Betriebssystem aufrechterhalten, wodurch Hilfs- oder Unterstützungsprogramme die Gelegenheit erhalten, benötigte Informationen zu extrahieren.
Sobald diese Programme die benötigten Informationen extrahiert haben, braucht das Betriebssystem die mit dem Prozess in Verbindung stehenden Daten nicht mehr aufrechtzuerhalten und der Prozess wird endgültig aus dem System gelöscht.
Zustand “suspendiert“
Gründe:
Freigabe Hauptspeicher für (wichtigeren) Prozess
Prozesse die Probleme verursachen
Benutzerwunsch
Swapping
Teil eines Prozesses oder ganzer Prozess wird auf Festplatte verschoben
in Warteschlange für suspendierte Prozesse
Blockiert/Suspendiert
Prozess im Sekundärspeicher und wartet auf bestimmtes Ereignis
Bereit/Suspendiert
im Sekundärspeicher, für Ausführung verfügbar sobald in Hauptspeicher geladen
Unterscheidung um zu verhindern, dass noch blockierter Prozess zurück in Hauptspeicher geladen wird
Prozesswechsel
Änderung der Prozessorzuteilung
bei Echtzeitanwendungen müssen bestimmte Zeitvorgaben eingehalten werden
sonst hohes Gefahrenpotential
gerade aktive Prozess pi gibt den Prozessor ab: freiwilliig oder unfreiwillig
Erforderliche Aktionen
bei unterbrochenen Prozessen: Sicherung des gesamten
Prozesskontextes
Änderung des Zustands von Prozess pi in "bereit" oder "wartend"
Auswahl des nächsten zu aktivierenden Prozesses pj
Änderung des Zustands von Prozess pj von "bereit" in "aktiv"
bei unterbrochenen Prozessen: Wiederherstellen des (vorher gesichterten) Prozesskontextes
Ablaufplanung:
Scheduling-Verfahren
Menge von Regeln zur Festlegung des nächsten zu bearbeitenden Rechenprozesses unter Einhaltung von Randbedingungen
Ressourcen- /Zeitbeschränkungen
Randbedingungen eingehalten: gültige Schedule - sonst ungültig
Zielsetzung: optimaler Schedule
mit Hilfe von Heuristiken
Anorderungen Scheduling Verfahren
Gerechtigkeit Faire Aufteilung der Prozessorzeit auf die Prozesse
Durchsatz Ausführung möglichst vieler Prozesse pro Zeiteinheit
Ressourcenauslastung Möglichst gute Auslastung des Prozessors
Effizienz Effiziente Ausführung des Scheduling-Verfahrens
Durchlaufzeit Möglichst schneller Abschluss eines Prozesses
Antwortzeit Möglichst schnelle Reaktion auf Ereignisse
Anforderungen an Scheduling-Verfahren in Echtzeitbetriebssystemen
Einhaltung Deadlines
Determinismus
Stabilität der Prozessorüberlastung
statische Ablaufplanung
Ablauf auszuführender Prozesse wird vor der Ausführung des Systems festgelegt
dynamische Ablaufplannung
Ablauf der auszuführenden Prozesse wird zur Laufzeit des Systems festgelegt
nicht-präemptiver Ablaufplan
während der Ausführungszeit wird ununterbrochen ein und dieselbe Ressource belegt
präemptive Ablaufplanung
präemptiver Ablaufplanung
eine Aufgabe darf während ihrer Ausführungszeit unter- brochen werden, um sie zu einem späteren Zeitpunkt weiter abzuarbeiten
Klassifikation von Scheduling Verfahren
Beispiele Ablaufplanung
Statische:
Ratenmonotones Scheduling
Dynamische:
nicht unterbrechend
First Come First Serve
Shortest Job First
Service in Random Order
unterbrechend
Round Robin
Zeitscheiben mit Prioritäten
Multi-Level Queues
Langezeit Ablaufplaner
Earliest Deadline First
RMS
statisch
mit festen Prioritäten
Ratenmonotone Prioritätszuweisung
jeden Task wird Priorität entsprechend seiner Anforderungsrate zugewiesen unabhängig von Bearbeitungszeit
Prozessorauslastung
Planung nach Wartezeit:
Der am längsten wartende Prozess kommt zuerst an die Reihe
Vorteil: einfach
Nachteile:
kurze Prozesse müssen auf lange warten
keine Priorisierung
setzt voraus dass Prozesse nach endlicher Zeit terminieren
Betriebsmittel müssen den Prozessen während der gesamten Laufzeit kontinuierlich zur Verfügung stehen
Planung nach Laufzeit:
Der Prozess mit der kürzesten Laufzeit kommt zuerst an die Reihe
Vorteil:
kleine Warteschlangen
Prozess können Betriebsmittel entzogen werden wenn kürzerer Prozess in Warteschlange kommt
Länge eines Prozess erst bekannt wenn in Ausführung
BEnutzer geben Schätzungen geringer an um eigenen Prozess zu favorisieren
Prozesse mit langer Laufzeit werden ausgehungert
Prozesse werden in Warteschlange aufgereiht und mit FCFS abgearbeitet
ist Prozess nach fest vorgebener Zeitscheibe noch nicht beendet, wird er verdrängt und wieder eingereiht
bis Auftrag vollständig bedient ist
Vorteile:
einfache Implementierung
schwierige Wahl der Zeitscheibe - meist erst im Betrieb experimentell optimiert
zu kleine Zeitscheibe: hoher Overhead durch häufigen KOntextwechsel
zu große Zeitscheibe: nachteilliger Effekt des FCFS - hohe durschnittliche Wartezeiten
Zeitscheiben mit Priorität
jeder Prozess bekomt statisch eine Priorität zugeordnet
Prozesse im Ready Zustand werden zyklisch Zeitscheiben zugeordnet in denen CPU beansprucht werden kann
Länge der zugewiesenen Zeitscheiben proportional zur Prozesspriorität
Prozesse mit hoher Priorität favorisiert
Nachteil:
schwierige Wahl Zeitscheiben
Overhead durch häufigen Kontextwechsel
Multi Level Queues *
Adaptives Verfahren, das die Prozesse charakterisiert
gibt eine Reihe von Warteschlangen, die nach Priorität gestaffelt sind
Langzeit Ablaufplaner
Erweiterung Zeitscheibenverfahren
Prioritäten der einzelnen Prozesse nicht zeitlich invariant, sondern können sich dynamisch zur Systemlaufzeit ändern
übergeordneter Prozess, sammelt Daten über Systemablauf unf kennt zusätzliche Ranbedingungen
kann bei Bedarf Prioritäten bestimmter Prozesse erhöhen oder erniedrigen
um rechtzeitige Beendigung zu gewährleisten oder anderen Prozessen mehr CPU Zeit zuzuordnen
Earliest Deadline Scheduling
Dynamisch
mit variablen Prioritäten
Prioritätszuweisung:
höchste Priorität für Tasks mit der nächsten Deadline
auch bei 100% Prozessorauslastung liefert EDF bei periodischen Tasks stets gültige Schedules
aufwändig zu berechnen
Zeitverhalten bei Überlast nicht mehr vorhersagbar
Problem:
aperiodische Tasks
Einhaltung von Deadlines nur dann garantiert wenn Mindestabstand von zwei aufeinanderfolgenden Anforderungen bekannt ist
Lösung:
wie periodische Tasks behandeln
fest reservierte Rechenzeit bleibt in der Regel ungenutzt
Zuletzt geändertvor einem Jahr