Grundlagen

Prozesse und Arbeitsspeicher

Ein Programm auf der Festplatte tut nichts. Erst wenn das Betriebssystem es lädt, ihm Speicher und Rechenzeit gibt, wird daraus ein laufender Prozess.

Programm und Prozess

Ein Programm ist eine Datei mit Anweisungen. Ein Prozess ist eine laufende Ausführung dieses Programms mit eigenem Zustand: Speicherinhalt, geöffnete Dateien und die Stelle, an der es gerade arbeitet. Dasselbe Programm kann mehrmals gleichzeitig als getrennte Prozesse laufen, etwa zwei Fenster eines Texteditors, die unabhängig voneinander arbeiten.

Threads in Kürze

Innerhalb eines Prozesses kann es mehrere Threads geben: Ausführungsstränge, die sich denselben Speicher teilen. Ein Programm kann so etwa im Hintergrund speichern, während die Oberfläche weiter auf Eingaben reagiert. Für Einsteiger genügt: Prozesse sind voneinander getrennt, Threads eines Prozesses arbeiten eng zusammen.

BeOS wird oft als Beispiel für ein System genannt, das Threads in seiner Oberfläche stark nutzt, damit Fenster auch bei Last möglichst reaktionsfähig bleiben.

Rechenzeit und Scheduler

Der Scheduler ist der Teil des Kernels, der entscheidet, welcher Prozess oder Thread als Nächstes Rechenzeit erhält. Wie das mehrere Programme scheinbar gleichzeitig laufen lässt und welche historischen Unterschiede es gab, erklärt der Artikel Multitasking verstehen ausführlicher.

Arbeitsspeicher und Adressräume

Jeder Prozess braucht Arbeitsspeicher für Programmcode und Daten. Moderne Systeme geben jedem Prozess einen eigenen Adressraum: Er sieht scheinbar einen zusammenhängenden Speicherbereich, der nur ihm gehört. Das Betriebssystem übersetzt diese Adressen mithilfe des Prozessors in echte Speicherstellen. Ein fehlerhafter Prozess kann so in der Regel nicht einfach den Speicher eines anderen überschreiben; vollkommen ist dieser Schutz aber nicht, etwa bei Fehlern in Treibern oder im Kernel selbst.

Ältere Systeme boten diesen Schutz nicht oder nur teilweise. Das ist ein Grund, warum ein abstürzendes Programm dort manchmal das ganze System mitriss, während es auf Systemen mit getrennten Adressräumen meist nur selbst beendet wurde.

Virtueller Speicher

Mit dem Adressraum hängt der virtuelle Speicher zusammen, ist aber nicht dasselbe: Der Adressraum beschreibt, welche Adressen ein Prozess sieht, virtueller Speicher die Technik, diese Adressen flexibel echtem Speicher zuzuordnen. Weil Prozesse nicht direkt mit echten Speicherstellen arbeiten, kann das System selten benötigte Teile auf einen Datenträger auslagern und bei Bedarf zurückholen. Programme können so zusammen mehr Speicher belegen, als physisch vorhanden ist - allerdings wird der Rechner deutlich langsamer, wenn ständig ausgelagert werden muss.

Task Manager und Prozessübersichten

Der Task-Manager unter Windows XP oder Windows 10, der Systemmonitor unter Ubuntu 10.04 oder ps in einer UNIX-Shell zeigen Prozesse und Speicherbelegung an. Diese Werkzeuge sind normale Programme, die den Kernel nach Informationen fragen; sie sind nicht der Kernel selbst. Mehr zu dieser Trennung steht in Kernel und Benutzeroberfläche.

In den Simulationen sind solche Prozesslisten fiktiv und werden lokal im Browser erzeugt. Sie zeigen keine Prozesse deines Computers.