GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist die Linux-Prozesstabelle? Woraus besteht es?

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/


Linux
  1. Was bedeuten unter Linux alle Werte im obersten Befehl?

  2. Was bedeutet __init im Linux-Kernel-Code?

  3. Was bedeutet &am Ende eines Linux-Befehls?

  4. Was ist die Definition einer Sitzung unter Linux?

  5. Was bedeutet der Schnittstellenname eth0 unter Linux?

Was ist die Shell unter Linux?

Linux – Was bedeutet ein Punkt nach den Dateiberechtigungsbits?

Was bedeutet in der Ausgabe von Ps?

Was ist der Kill-Befehl in Linux?

Was ist ein gestoppter Prozess unter Linux?

Was bedeutet ./ (Punkt-Schrägstrich) unter Linux?