Prozess
Ein Prozess in der Informatik ist ein aktuell auszuführender Code, welcher von einer Instanz eines laufenden Programmes kommt. Er hat eine Folge an Aktivitäten, die erledigt werden sollen, diese beginnen oft mit einer Eingabe oder dem Einlesen von Daten und enden mit einer Ausgabe oder Weiterleitung einer Aufgabe. Ein jedes Programm und Betriebssystem nutzt Prozesse, um mehrere Aufgaben gleichzeitig lösen zu können, somit wird überhaupt erst Multitasking ermöglicht.
Im Normalfall besteht ein Prozess aus folgenden Elementen:
- Code: Der Code für das System, der ausgeführt wird.
- Daten: Alle Ressourcen, die für die Ausführung des Codes notwendig sind.
- Stack: Ein spezieller Speicherbereich, der lokale Variablen und Funktionen des Prozesses verwaltet.
- Heap: Ein dynamischer Speicherbereich für die von der Laufzeit angeforderten Speicherkapazitäten.
- Prozesskontrollblock (PCB): Eine Datensammlung, die Informationen über den Prozess enthält, wie z.B. Status, Priorität und Ressourcen.
Ablauf eines Prozesses
Der Prozess wird erstellt, ist dann bereit (ready) zur Ausführung und wartet auf CPU-Ressourcen. Sobald Ressourcen der CPU freigegeben werden, wird der bereitstehende Prozess ausgeführt (running). Anschließend kommt es darauf an, was für eine Aufgabe der Prozess besitzt. Soll der Prozess eine Eingabe des Benutzers an einer bestimmten Stelle im System sichern, so wartet er in dem Fall auf die Eingabe des Benutzers (blocked) und führt mit diesem den Befehl, den er durch den Code erhalten hat, zu Ende. Auch andere Ressourcen wie der Schreibzugriff auf die Festplatte oder einen externen Speicher können anderweitig blockiert sein und den Prozess in den blocked-Zustand zwingen.
Zusätzlich:
- Zusätzlich zu den Prozessen gibt es auch Threads. Ein Thread ist ein kleiner/leichtgewichtiger Prozess der innerhalb eines anderen Prozesses handeln kann.
- Scheduling sorgt für die Ordnung zwischen den vielen Prozessen, die ausgeführt werden wollen. Reihenfolge und Ablauf der Prozesse wird bestimmt. Es wird ermöglicht, dass Prozesse gleichzeitig, ohne gegenseitige Sabotage, funktionieren.
