Die Prozesstabelle ist eine Kernel-Datenstruktur das den Status eines Prozesses beschreibt (zusammen mit Prozess U-Bereich). Es enthält Felder, die dem Kernel immer zur Verfügung stehen müssen.
Es enthält folgende Felder:
- Statusfeld (das den Status des Prozesses identifiziert)
- Felder, die es dem Kernel ermöglichen, den Prozess und seinen u-Bereich im Speicher zu lokalisieren
- UIDs zur Bestimmung verschiedener Prozessberechtigungen
- PIDs zur Angabe von Beziehungen zwischen Prozessen (z. B. Fork)
- Ereignisdeskriptor (wenn der Prozess im Ruhezustand ist)
- Scheduling-Parameter zur Bestimmung der Reihenfolge, in der der Prozess in die Zustände „Kernel läuft“ und „Benutzer läuft“ wechselt
- Signalfeld für Signale, die an den Prozess gesendet, aber noch nicht bearbeitet wurden
- Timer, die Prozessausführungszeit im Kernelmodus und Benutzermodus geben
- Feld, das die Prozessgröße angibt (damit der Kernel weiß, wie viel Speicherplatz für den Prozess zugewiesen werden muss).
Kurz gesagt, die Prozesstabelle gibt dem Kernel Informationen über Prozesse.
Die Prozesstabelle in Linux (wie in fast jedem anderen Betriebssystem) ist einfach eine Datenstruktur im RAM eines Computers. Es enthält Informationen über die Prozesse, die derzeit vom Betriebssystem verarbeitet werden.
Diese Informationen umfassen allgemeine Informationen zu jedem Prozess
- Prozess-ID
- Prozesseigentümer
- Prozesspriorität
- Umgebungsvariablen für jeden Prozess
- der übergeordnete Prozess
- Zeiger auf den ausführbaren Maschinencode eines Prozesses.
Eine sehr wichtige Information in der Prozesstabelle ist der Zustand, in dem sich jeder Prozess gerade befindet. Diese Information ist für das Betriebssystem essenziell, denn sie ermöglicht das sogenannte Multiprocessing, also die Möglichkeit, mehrere Prozesse virtuell auf nur einer Recheneinheit (CPU) laufen zu lassen.
Die Information, ob ein Prozess gerade aktiv ist, schläft, läuft usw., wird vom Betriebssystem verwendet, um die Ausführung von Prozessen zu handhaben.
Darüber hinaus gibt es statistische Informationen, wie z. B. wann der Prozess das letzte Mal RUNNING war, damit der Planer des Betriebssystems entscheiden kann, welcher Prozess als nächstes ausgeführt werden soll.
Zusammengefasst ist die Prozesstabelle also das zentrale Organisationselement für das Betriebssystem, um alle gestarteten Prozesse zu verwalten.
Eine kurze Einführung findet sich in diesem Thread:
https://web.archive.org/web/20190817081256/http://www.linuxforums.org/forum/kernel/42062-use-process-table.html
Und Wikipedia hat auch nette Informationen über Prozesse:
http://en.wikipedia.org/wiki/Process_management_(computing)#Process_description_and_control
http://en.wikipedia.org/wiki/Process_table
Jeder Prozess wird im Betriebssystem durch einen Prozesskontrollblock repräsentiert - auch bekannt als Aufgabenkontrollblock - die Folgendes enthält
Process management
Registers
Program counter
Program status word
Stack pointer
Process state
Priority
Scheduling parameters Process ID
Parent process
Process group
Signals
Time when process started CPU time used
Children’s CPU time
Time of next alarm
Memory management
Pointer to text segment info
Pointer to data segment info
Pointer to stack segment info
File management
Root directory Working directory File descriptors User ID
Group ID
Weitere Informationen finden Sie unter https://www.technologyuk.net/computing/computer-software/operating-systems/