Das K Desktop Environment

Kapitel 2. Benutzung von Kpm

2.1. Kpm Programmstart

Beim Start zeigt Kpm Auslastung, CPU-Nutzung, Speichernutzung, Nutzung der Auslagerungsdatei und Gesamtlaufzeit des Systems sowie eine zusammengefasste Ansicht der Prozesse an.

Kpm nach dem Start

2.1.1. Erläuterungen zu den Anzeigefeldern

Kpm mit der Textanzeige

2.1.1.1. Auslastungsanzeige

Die Auslastungsanzeige zeigt die durchschnittliche Systemauslastung grafisch an. Genaue Zahlen erscheinen, wenn auf das Feld Auslastungsanzeige geklickt wird.

2.1.1.2. CPU-Anzeige

Die cpu-Anzeige zeigt in Prozenten die CPU-Ressourcen an, die von Benutzer-, nice- und System-Prozessen verwendet werden, sowie die Leerl. (nicht verwendeten) Ressourcen. Klicken Sie auf die CPU-Anzeige, um auf Textanzeige mit exakten Prozentwerten umzuschalten.

2.1.1.3. Speicheranzeige

Die Speicher-Anzeige zeigt den genutzten Speicher an. Die Anzeige ist unterteilt in gebr.(gebraucht), Puffer-, zwi (zwischengespeicherter) und freien Speicher. Klicken Sie auf Spei, um die Anzeige auf exakte Zahlen (in Megabyte) einschließlich der Gesamtspeichermenge umzuschalten.

2.1.1.4. Auslagerungsspeicheranzeige

Die swap-Anzeige zeigt den Anteil des genutzten Auslagerungsspeichers. Klicken Sie auf swap, um auf eine Textanzeige mit der exakten Menge in Megabyte umzuschalten. Außerdem wird die Gesamtmenge an Auslagerungsspeicher angezeigt.

2.1.1.5. Gesamtlaufzeit des Systems

Die läuft-seit-Anzeige zeigt an, wie lange das System bereits läuft.

2.1.2. Prozessliste

In der Standardeinstellung zeigt die Prozessliste die Benutzerfelder aller Prozesse an. Sie kann auch so eingestellt werden, dass sie nur eigene Prozesse, Nicht-Root-Prozesse oder alle laufenden Prozesse anzeigt. Außer den Benutzerfeldern können auch die Programm- oder Speicherfelder angezeigt werden. Schließlich ist es auch möglich, eine selbst zusammengestellte Felderliste anzeigen zu lassen. Ein Klick auf einen Spaltenkopf sortiert die Prozessliste nach dieser Spalte. Ein zweiter Klick auf die gleiche Spalte kehrt die Sortierreihenfolge um.

2.1.2.1. Benutzerfelder

PID

Prozess-ID. Jedem Prozess wird eine eigene Prozess-Identifikations-Nummer (PID) zugeordnet. Diese Nummer ist 1 oder größer. Wird ein neuer Prozess gestartet, so erhält dieser die nächst höhere, unbenutzte PID-Nummer. PID-Nummern sind (momentan) "16bit signed" Integer-Werte und haben einen Wert von 0 bis 32767. Dies als Information für technisch Interessierte.

USER

Prozess-Benutzer. Hierbei handelt es sich um den (wirklichen) Benutzer, der den jeweiligen Prozess gestartet hat. Falls die tatsächliche Benutzer-ID eines Prozesses sich von der wirklichen Benutzer-ID unterscheidet, wird dies von Kpm durch ein angehängtes * oder + gekennzeichnet. Der Stern zeigt an, dass der tatsächliche Benutzer der Super-User ist (genaugenommen zeigt er an, dass das Programm setuid "root" ist).

PRI

Länge des nächsten Prozessor-Zeitintervalls. Dies ist die maximale Zeit, die einem Prozess beim nächsten Aktivieren zugewiesen werden kann. (oder die maximale Restzeit des laufenden Zeitintervalls, falls der Prozess zur Zeit bearbeitet wird). Die Zahl entspricht einem Wert innerhalb einer Skala von -20 bis +20, wobei kleinere Zahlen einem längeren Zeitintervall entsprechen.

NICE

Der Prozessprioritätswert. Der "nice"-Wert bestimmt, wie häufig und wie lange ein Prozess laufen darf. Der Wert selbst liegt zwischen -20 und +20, wobei 0 den Standardwert darstellt. Niedrigere Zahlen weisen einem Prozess mehr Prozessorzeit zu. Das Herabsetzen von "nice"-Werten ist ausschließlich dem Super-User vorbehalten.

SIZE

Virtuelle Größe des Prozesses (KBytes). Dies ist die Gesamtgröße des Prozesses. Dazu gehören der gesamte Prozesscode, die Daten und die gemeinsam genutzten Bibliotheken ("shared libraries") einschließlich der Seiten, die ausgelagert sind.

RSS

"resident set size" (Größe in KBytes). Hierbei handelt es sich um die Größe des Prozessteils (Code, Daten und die gemeinsam genutzte Bibliotheken), der sich tatsächlich im RAM befindet. Dieser Wert ergibt eine gute Abschätzung der RAM-Menge, die ein Prozess verwendet.

SHARE

Gemeinsam genutzter Speicher (Größe in KByte). Dieser Wert gibt die Speichermenge an, die sich ein Prozess mit anderen Prozessen teilt oder teilen könnte. Dabei sagt dies nicht aus, dass von dieser Speichermenge auch tatsächlich irgendein Teil von anderen Prozessen verwendet wird. Der Wert gibt lediglich an, wieviel Speicher mit anderen Prozessen geteilt werden kann.

STAT

Zustand eines Prozesses. Ein Prozess befindet sich immer in einem der folgenden Zustände:

R

(running): Der Prozess läuft auf der CPU oder ist bereit für die Ausführung.

S

(sleeping): Der Prozess wartet auf ein Ereignis (etwa auf eine Ein-/Ausgabe oder auf den Zeitgeber).

D

(uninterruptable sleep): Der Prozess wartet auf ein Ereignis, ohne dass er hierbei unterbrochen werden kann (z.B. der Wartezustand eines Gerätetreibers).

T

(stopped): Der Prozess wurde beendet oder wird durch einen anderen Prozess verfolgt ("traced").

Z

(zombie): Der Prozess wurde beendet, ohne dass der übergeordnete "parent"-Prozess hiervon bislang Kenntnis genommen hat.

W

Der Prozess wurde komplett auf die Festplatte ausgelagert (er besitzt keine im Speicher befindlichen Seiten mehr). Dies erfolgt auch bei Kernel-Prozessen, z.B. kswapd.

%CPU

Prozentuale CPU-Last seit der letzten Aktualisierung. Dieser Wert gibt an, wieviel CPU-Zeit (in Prozent) ein Prozess seit der letzten Aktualisierung der Prozessliste verwendet hat.

%MEM

Prozentsatz des benutzten Speichers. Dieser Wert gibt an, welcher prozentuale Anteil des gesamten RAM-Speichers von einem Prozess verwendet wird (ausgehend vom Wert unter "rss"). Da gemeinsam genutzte Bibliotheken ebenfalls zu der Berechnung hinzugezählt werden, handelt es sich möglicherweise um einen zu hohen Wert.

TIME

Verwendete Gesamt-CPU-Zeit. Dies gibt an, wieviel CPU-Zeit ein Prozess seit seinem Start gebraucht hat.

CMDLINE

Befehlszeile, die den Prozess aufgerufen hat. Dies ist die Befehlszeile inklusive eventueller Argumente, mit der ein Prozess erzeugt wurde. Ausgelagerte Prozesse werden mitunter nur durch den in Klammern gesetzten Befehlsnamen aufgeführt (dies gilt auch für Kernel-Prozesse).

2.1.2.2. Programmfelder

Kpm Programmfelder

PID

Prozess-ID. Jedem Prozess wird eine eigene Prozess-ID-Nummer (PID) zugeordnet. Diese Nummer ist 1 oder größer. Wird ein neuer Prozess gestartet, so erhält dieser die nächst höhere, unbenutzte PID-Nummer. PID-Nummern sind (momentan) "16bit signed" Integer-Werte und haben einen Wert von 0 bis 32767. Dies als Information für technisch Interessierte.

PPID

"Parent"-Prozess ID. Jeder Prozess wird einem übergeordneten Prozess, dem Eltern- oder "Parent"-Prozess zugeordnet. Die einzige Ausnahme ist hierbei der allererste Prozess init mit der PID-Nummer 1. Dieser Prozess stellt quasi die Wurzel des Prozessbaumes dar und besitzt daher keinen "Parent"-Prozess.

PGID

Prozess-Gruppen ID. Jeder Prozess gehört zu einer Gruppe von Prozessen. Diese Gruppen werden für die Verteilung von Prozesssignalen verwendet. Sie werden ebenfalls von Terminals eingesetzt, um über ihre Eingabeaufforderungen zu entscheiden. Prozesse, die derselben Prozessgruppe angehören, dem auch das Terminal zugeordnet ist, befinden sich im Vordergrund und besitzen somit das Recht, Lesezugriffe zu tätigen. Prozesse, die einer anderen Gruppe angehören, werden blockiert und erzeugen ein Signal, falls sie dennoch versuchen, einen Lesezugriff zu unternehmen.

SID

Sitzungs-ID. Sitzungs-IDs werden hauptsächlich eingesetzt, um festzulegen, was bei einem Absturz des Terminals geschehen ist.

TTY

Verwaltendes Terminal(tty). Das verwaltende Terminal ist üblicherweise das Gerät (seriell Schnittstelle, pty, etc..), von dem aus Prozesse gestartet werden. Dieses Terminal wird gleichzeitig für Ein- und Ausgaben verwendet. Kpm durchsucht das /dev-Verzeichnis, um den Namen des Terminals herauszufinden. Es sind jedoch nicht alle Prozesse einem verwaltenden Terminal zugeordnet. Daher kann diese Suche erfolglos verlaufen. Um Platz zu sparen, werden nur die letzten beiden Zeichen des tty-Namens angezeigt. Das Terminal /dev/ttyp6 wird beispielsweise als p6 angezeigt.

TPGID

Prozess-Gruppen ID des tty-Prozesses. Jedes benutzte Terminal tty ist einem Prozess zugeordnet. Die Prozess-Gruppen ID dieses Prozesses wird unter TPGID angezeigt.

STAT

Zustand eines Prozesses. Ein Prozess befindet sich immer in einem der folgenden Zustände:

R

(running): Der Prozess läuft auf der CPU oder ist bereit für die Ausführung.

S

(sleeping): Der Prozess wartet auf ein Ereignis (etwa auf eine Ein-/Ausgabe oder auf den Zeitgeber).

D

(uninterruptable sleep): Der Prozess wartet auf ein Ereignis, ohne dass er hierbei unterbrochen werden kann (z.B. der Wartezustand eines Gerätetreibers).

T

(stopped): Der Prozess wurde beendet oder wird durch einen anderen Prozess verfolgt ("traced").

Z

(zombie): Der Prozess wurde beendet, ohne dass der übergeordnete ("parent"-)Prozess hiervon bislang Kenntnis genommen hat.

W

Der Prozess wurde komplett auf die Festplatte ausgelagert (er besitzt keine im Speicher befindlichen Seiten mehr). Dies erfolgt auch bei Kernel-Prozessen, z.B. kswapd.

UID

Numerische Benutzer-ID. Dies ist die ID des (wirklichen) Benutzers, dem der Prozess gehört.

TIME

Verwendete Gesamt-CPU-Zeit. Dies gibt an, wieviel CPU-Zeit ein Prozess seit seinem Aufruf gebraucht hat.

CMDLINE

Befehlszeile, die den Prozess aufgerufen hat. Dies ist die Befehlszeile inklusive eventueller Argumente, mit der ein Prozess erzeugt wurde. Ausgelagerte Prozesse werden mitunter nur durch den in Klammern gesetzten Befehlsnamen aufgeführt (dies gilt auch für Kernel-Prozesse).

2.1.2.3. Speicherfelder

Kpm Speicherfelder

PID

Prozess-Identifikation. Jedem Prozess wird eine eigene Prozess-ID-Nummer (PID) zugeordnet. Diese Nummer ist 1 oder größer. Wird ein neuer Prozess gestartet, so erhält dieser die nächst höhere, unbenutzte PID-Nummer. PID-Nummern sind (momentan) "16bit signed" Integer-Werte und haben einen Wert von 0 bis 32767. Dies als Information für technisch Interessierte.

TTY

Verwaltendes Terminal (tty). Das aktive Terminal (tty) ist üblicherweise das Gerät (seriell Schnittstelle, pty, etc..), von dem aus Prozesse gestartet werden. Dieses Terminal wird gleichzeitig für Ein- und Ausgaben verwendet. Kpm durchsucht das /dev Verzeichnis, um den Namen des Terminals herauszufinden. Es sind jedoch nicht alle Prozesse einem aktiven Terminal zugeordnet. Daher kann diese Suche erfolglos verlaufen. Um Platz zu sparen, werden nur die letzten beiden Zeichen des tty-Namens angezeigt. Das Terminal /dev/ttyp6 wird beispielsweise als p6 angezeigt.

MAJFLT

Anzahl der aufgetretenen schwerwiegenden Fehler ("major faults"). Ein Seitenfehler ("page fault") tritt auf, wenn ein Prozess versucht, entweder lesend oder schreibend auf eine Speicherseite zuzugreifen, die sich nicht im RAM befindet. Es handelt sich um einen schwerwiegenden Seitenfehler, wenn ein Zugriff auf die Festplatte benötigt wird, z.B. für Auslagerungen oder das Einlesen von Speicherseiten.

MINFLT

Anzahl der aufgetretenen leichten Fehler ("minor faults"). Ein Seitenfehler ("page fault") tritt auf, wenn ein Prozess versucht, entweder lesend oder schreibend auf eine Speicherseite zuzugreifen, die sich nicht im RAM befindet oder versucht, auf eine Seite zu schreiben, auf die kein Schreibzugriff möglich ist. Es handelt sich um einen leichten Fehler, wenn hierbei kein Zugriff auf die Festplatte erfolgen muss, z.B. ein Schreibzugriff auf eine mit "copy-on-write" gemeinsam benutzte Seite ("shared page").

TRS

"Text resident set size" (Größe in KByte). Hierbei handelt es sich um die Größe des Prozesstextes (der ausführbare Programmcode), der sich momentan im RAM befindet.

DRS

"Data resident set size" (Größe in KByte). Hierbei handelt es sich um die Größe der Prozessdaten (nicht ausführbarer Programmcode), der sich momentan im RAM befindet.

SIZE

Virtuelle Grösse des Prozesses (KByte). Dies ist die Gesamtgröße des Prozesses. Dazu gehören der gesamte Prozesscode, die Daten und die gemeinsam genutzten Bibliotheken ("shared libraries") einschließlich der Seiten, die ausgelagert sind.

SWAP

Umfang der Auslagerung (in KByte). Dies ist die Differenz zwischen SIZE und RSS. Mit anderen Worten sagt dieser Wert, in welchem Umfang Teile des Prozesses auf die Festplatte ausgelagert wurden.

RSS

"resident set size" (Größe in KBytes). Hierbei handelt es sich um die Größe des Prozessteils (Code, Daten und die gemeinsam genutzte Bibliotheken), der sich tatsächlich im RAM befindet. Man erhält eine gute Abschätzung der RAM-Menge, die ein Prozess verwendet.

SHARE

Gemeinsam genutzter Speicher (Größe in KBytes). Dieser Wert gibt die Speichermenge an, die ein Prozess sich mit anderen Prozessen teilt oder teilen könnte. Dabei sagt dies nicht aus, dass von dieser Speichermenge auch tatsächlich irgendein Teil von anderen Prozessen verwendet wird. Der Wert gibt lediglich an, wieviel Speicher mit anderen Prozessen geteilt werden kann.

DT

Anzahl an "dirty pages". Hierbei ist die Anzahl an RAM-Seiten (nicht die Anzahl Bytes!) gemeint, die seit dem letzten Zugriff auf die Festplatte verändert wurden. "Dirty pages" müssen zuerst auf die Festplatte geschrieben werden, bevor sie wieder für andere Dinge freigegeben werden können.

CMDLINE

Befehlszeile, die den Prozess aufgerufen hat. Dies ist die Befehlszeile inklusive eventueller Argumente, mit der ein Prozess erzeugt wurde. Ausgelagerte Prozesse werden mitunter nur durch den in Klammern gesetzten Befehlsnamen aufgeführt (dies gilt auch für Kernel-Prozesse).

2.1.2.4. Andere Felder

PLCY

Prozess-Ablaufplan ("Scheduling policy"). FIFO (F) und "Round-Robin" (R) sind Echtzeit-Ablaufpläne; "OTHER" (O) ist der bei UNIX übliche Ablaufplan zur Verteilung der CPU-Zeit. F- und R-Prozesse haben eine Echtzeitpriorität zwischen 1 und 99. Nachdem "Round-Robin" Prozesse für die Dauer einer Zeitscheibe ("time-slice") gelaufen sind, werden sie auf die letzte Position innerhalb der Warteschlange ihres Prioritätslevels gesetzt. FIFO Prozesse laufen solange, bis sie den Prozessor freigeben (durch das Versetzen in den Ruhezustand oder durch Blockierung) oder durch einen Prozess mit einem höheren Prioritätslevel an der weiteren Bearbeitung gehindert werden. Nur der Super-User (root) darf den Ablaufplan ("scheduling policy") verändern.

RPRI

Echtzeit-Prioritätsstufen. Echtzeit-Prozesse (FIFO und "Round-Robin") werden Prioritätswerte zwischen 1 und 99 zugeordnet. Ein Prozess mit einer höheren Prioritätsstufe als ein anderer wird bei der Zuteilung der CPU-Zeit bevorzugt. Normale Prozesse, die CPU-Zeit mit anderen Prozessen teilen ("policy"-Wert O) besitzen alle den Prioritätslevel 0. Nur der Super-User (root) darf die Echtzeit-Prioritätsstufen ändern.

FLAGS

Prozess-Kennzeichner ("flags", hex). Bitte sehen Sie wegen Details im Programmcode des Linux-Kernels nach.

WCHAN

Art des Schlafens eines Prozesses. Wenn ein Prozess auf ein Ereignis wartet, so wird die Art des Wartens hier angezeigt (Um den Namen abzukürzen sind die Präfixe "do_" oder "sys_" entfernt).

%WCPU

Durchschnittliche, prozentuale CPU-Last. Hierbei handelt es sich um den über die letzten 30 Sekunden gemittelten Prozentsatz der CPU-Zeit, die ein Prozess verwendet hat (exponentiell abnehmender Durchschnitt).

START

Anfangszeit des Prozesses. Dieser Wert gibt an, wann der Prozess erzeugt wurde.

COMM

Befehl, der den Prozess aufgerufen hat. In diesem Feld wird der Befehl (Dateiname) angezeigt, der den Prozess erzeugt hat. Zu lange Namen werden abgeschnitten.