Systeme 1
Kapitel 4Prozesse
WS 2009/10 1
Letzte Vorlesung• Festplatten – Layout
• Realisierung von Dateien– Zusammenhängend
• Schnell, einfach• Problem: Fragmentierung• Verwendung: CD-ROM
– Verkettete Listen• Keine Fragmentierung, sequentielles Lesen• Problem: Wahlfreier Zugriff (langsam)• Verwendung: FAT (Windows)
WS 2009/10 2
Letzte Vorlesung
• Realisierung von Dateien– I-Nodes• I-Node nur im Speicher, falls Datei offen• Verwendung: UNIX
• Realisierung von Verzeichnissen• Verwaltung freier Plattenblöcke
WS 2009/10 3
Multitasking auf Ein-Prozessor Systemen
• Prozessoren sind so leistungsfähig, dass die pseudo-parallele Ausführung mehrerer Prozesse schnell genug abläuft.
• Viele Prozesse können den Prozessor ohnehin nicht permanent nutzen.– Viel Zeit wird mit Warten auf Ein-/Ausgaben
verbracht:• z.B.: Lesen von Festplatten ist um ein Vielfaches
langsamer als die Ausführungsgeschwindigkeit des Prozessors.
WS 2009/10 4
Multitasking auf Ein-Prozessor Systemen
• Getrennte Ausführung:
• Pseudo-Parallele Ausführung:
WS 2009/10 5
Programm 1
Programm 2
Programm 3
Zerlegung in Teilaufgaben
• Zerlegung einer Gesamtaufgabe in Teilaufgaben, die in getrennten Prozessen laufen, ist häufig ein „natürliches“ Vorgehen.
• Prinzipiell ist Zusammenfassung in ein einziges Programm immer möglich.
• Aber: – Durch Zerlegung (automatische) Aufteilung der Rechenzeit
unter verschiedenen Teilaufgaben durch Betriebssystem („Scheduling“).
– Wartezeiten auf Ein- / Ausgaben können durch andere Prozesse genutzt werden.
– Ein-Programm-Lösung mit gleicher Funktionalität hätte häufig verworrene Kontrollstruktur („Spaghetti-Kode“).
WS 2009/10 6
Prozesse
• Prozess – Programm in Ausführung– Zu jedem Prozess gehört ein Adressraum:
• zugeordneter Arbeitsspeicher mit minimalen und maximalen Adressen• Enthält
– Ausführbares Programm, Programmdaten und Kellerspeicher (“Stack”)
– Informationen über aktuellen Programmzustand:• Inhalt von Prozessorregistern:
– Programmzähler, allg. CPU-Register, Akkumulator– Stack pointer
• Verwaltungsinformationen zu geöffneten Dateien, ...– Wenn ein Prozess inaktiv ist, werden diese Informationen in
einer Prozesstabelle gespeichert.• Wenn ein Prozess aktiviert wird, kann so sein alter Zustand wieder
hergestellt werden (Activation Record).WS 2009/10 7
Prozesswechsel
• Kooperatives Multitasking– Jedem Prozess ist es selbst überlassen, wann er die Kontrolle über den
Prozessor an den Kern wieder zurückgibt.– Vorteil: Einfacheres Betriebssystem.– Nachteil: Auf „gutmütige“ Programme angewiesen.– Bsp.: Windows 95 / 98 / ME und MacOS bis einschl. 9
• Präemptives Multitasking– Neuzuteilung des Prozessors kann in regelmäßigen Zeitintervallen vom
Betriebssystem erzwungen werden.– Vorteil: Steuerung durch das Betriebssystem– Nachteil:
• Komplexeres Betriebssystem Nebenläufigkeit und wechselseitiger Ausschluss
– Bsp.: Windows NT / 2000 und neuer, Linux
WS 2009/10 8
Prozesswechsel
WS 2009/10 9
Prozesstabelle
Schritt 1:Prozess 1 wird ausgeführt.
Hauptspeicher
CPU
Prozesswechsel
WS 2009/10 10
Prozesstabelle
Schritt 2:Activation record von Prozess 1 wird in die Prozesstabelle geschrieben.
Hauptspeicher
CPU
Prozesswechsel
WS 2009/10 11
Prozesstabelle
Schritt 3:Activation record von Prozess 2 wird aus der Prozesstabelle geladen.
Hauptspeicher
CPU
Prozesswechsel
WS 2009/10 12
Prozesstabelle
Schritt 4:Prozess 2 wird ausgeführt.
Hauptspeicher
CPU
Prozesszustände
• Modell mit 5 Zuständen– Neu: Prozess wurde erzeugt, ist aber noch nicht
gestartet.– Bereit: Rechenbereit, aber Prozessor ist diesem
Prozess nicht zugeteilt.– Aktiv: CPU ist dem Prozess zugeteilt.– Blockiert: Nicht in der Lage weiterzuarbeiten,
wartet auf ein Event (z.B. E/A)– Terminiert
WS 2009/10 13
Prozesszustände
WS 2009/10 14
neu bereit aktiv
blockiert
terminiertZulassung Zuteilung
Freigabe
Timeout
Warten aufEreignis
Ereignistrifft ein
Warteschlange wartender Prozesse
WS 2009/10 15
ProzessorZuteilung
Bereit-Warteschlange
Warteschlange Ereignis 1
Warteschlange Ereignis n
Freigabe
Timeout
Warten auf Ereignis 1
Warten auf Ereignis n
Zulassung