www.linuxmaterial.de Prozesse

Zustände

Prozesse können einen von drei Zuständen haben:

  1. running - Der Prozess ist aktiv bzw. wird von der CPU bearbeitet
  2. ready - Der Prozess ist bereit von der CPU bearbeitet zu werden
  3. blocked - Der Prozess wartet auf ein Ereignis z.B. einen Tastendruck

Ein Prozess kann weitere Prozesse starten *1. Gestartete Prozesse geben beim Beenden einen Ergebnis-Code (errorlevel) an den aufrufenden Prozesse zurück. Als Zombie Prozesse bezeichnet man beendete Prozesse, die jedoch noch einen Prozess-Tabellen-Eintrag belegen.

Z.B.: Der einen weiteren Prozess (=Kind) aufrufende (Eltern-)Prozess ist nicht mehr vorhanden oder nimmt den Abschlusswert nicht an. Der Kindprozess hat sich beendet, den von ihm belegten Speicherplatz freigegeben und wartet darauf den Abschlusswert zurückzugegeben. Solange sich der Prozess in diesem Wartezustand befindet, belegt er in der Prozesstabelle einen Eintrag.

Kenndaten

Die Kenndaten können sehr schön mittels

cat /proc/[prozessnr]/status

ausgegeben werden*2:

Name: ypbind
State: S (sleeping) Tgid: 726
Pid: 726
PPid: 724
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups:
VmSize: 17884 kB
VmLck: 0 kB
VmRSS: 736 kB
VmData: 16476 kB
VmStk: 12 kB
VmExe: 28 kB
VmLib: 1304 kB
SigPnd: 0000000000000000
SigBlk: 0000000080014407
SigIgn: 8000000000000000
SigCgt: 0000000380014407
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff

Ausgabe des Befehls top:

3:20pm up 6:48, 8 users, load average: 0.07, 0.19, 0.22
141 processes: 138 sleeping, 2 running, 1 zombie, 0 stopped
CPU states: 5.6% user, 5.6% system, 0.0% nice, 88.7% idle
Mem: 247668K av, 243600K used, 4068K free, 0K shrd, 26052K buff
Swap: 385520K av, 12812K used, 372708K free 83500K cached
PID USER PRINISIZERSSSHARESTAT%CPU%MEMTIMECOMMAND
6537 rk 16010161016764R2.10.40:00top
3446 root 1502945620M4392S1.98.56:23X
3536 rk 1501092810M9848S1.94.44:01kdeinit
4865 puretec 150999299929116S1.94.02:47kdeinit
4642 rk 1503257231M18044S0.713.12:47quanta
6004 rk 1501242812M11044S0.75.00:01kdeinit
13 root 150000SW0.30.00:10kjournald
3561 rk 1501196411M10736S0.14.80:12kdeinit
1 root 150240240204S0.00.00:05init
2 root 150000SW0.00.00:06keventd
3 root 150000SW0.00.00:00kapmd
4 root 3419000SWN0.00.00:00ksoftirqd_CPU0v
5 root 150000SW0.00.00:03kswapd
6 root 150000SW0.00.00:00bdflush
7 root 150000SW0.00.00:00kupdated
8 root 150000SW0.00.00:00kinoded
9 root 230000SW0.00.00:00mdrecoveryd

*1 Üerblick auf der Kommandozeile mittels pstree

*2 Für jeden Prozess existiert ein Verzeichnis im Prozessdateisystem (/proc). Im einzelnen werden folgende Daten für jeden Prozess abgebildet:

Dateiname Inhalt
cmdline aufrufende Kommandozeile
cwd Link zum Arbeitsverzeichnis des Prozesses
environ Umgebungsvariablen
exe Programm
fd die geöffneten Dateien
maps Memorymapping
mem Speicherverbrauch
root
stat Prozessstatus
statm belegter Speicher
status Tabelle des belegten Speichers