Was bedeutet die Visualisierung?
Jeder Prozess hat die CPU für eine kurze Zeitspanne
“Timesharing” erzeugt eine Illusion mehrerer CPUs
Konsequenz: Programm läuft langsamer, da die CPU “geteilt” wird
Was wird für Virtualisierung benötigt?
Low Level Machinery
Methoden und Protokolle für die grundlegende Funktionalität
High Level Intelligence
Effektive Methoden zum Stoppen und Starten von Programmen
Zusätzliche Richtlinien oder Vorgaben
Beschränkungen für die Anzahl der gleichzeitig ausgeführten Prozesse auf einer CPU
Ein Kontrollmechanismus, der die Reihenfolge der Ausführung von Prozessen bestimmt
Prozess-API
Programmierschnittstelle wird benötigt, die jedes Betriebssystem beinhalten muss
create: Ausgewähltes Programm wird gestartet und ein neuer Prozess erzeugt
create
destroy: Falls sich ein Programm nicht von selbst beendet, ist dies sehr hilfreich
destroy
wait: Durchaus sinnvoll zu warten, bis ein Prozess von selbst aufhört zu laufen
wait
status: Statusinformation von Prozessen abfragen
status
Weitere Möglichkeiten sind je nach Betriebssystem unterschiedlich, z.B.: suspend und resume um Prozesse anzuhalten und weiterlaufen zu lassen
suspend
resume
Wie wird ein Prozess erzeugt?
Voraussetzung: Ein Programm muss in ausführbarer Form vorliegen
Programm und statische Daten werden in den Adressraum des Prozesses geladen
»Früher« wurde das gesamte Programm in den Speicher geladen
»Heute« wird nur der benötigte Programm-Code und die erforderlichen Daten geladen
(Runtime) Stack wird erzeugt -> Funktionsparameter und Rücksprungadressen
Das Betriebssystem füllt z.B. die Parameterlisten -> main-Funktion
Heap reserviert
Das Betriebssystem unterstütz den Prozess, indem mehr Speicher gegeben wird
Input/Output-Resourcen werden erzeugt
Prozess Status
Last changeda year ago