<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook V3.1-Based Variant V1.0//EN" [
 <!ENTITY kpm "<application>kpm</application>">
 <!ENTITY % addindex "IGNORE">
 <![ %addindex; [ <!ENTITY docindex SYSTEM "docindex.docbook"> ]]>
]>
<book lang="de">
<bookinfo>
<title>Das Kpm Handbuch</title>
<authorgroup>
<author>
<surname></surname>
</author>
</authorgroup>
<date>Version 1.3k1, 2. Februar 1998</date>
<releaseinfo><!-- information about this particular version --></releaseinfo>
<abstract>
<para>Dieses Handbuch beschreibt die Funktionen des Dienstprogramms
Kpm Version 1.3k1. Es dient der Verwaltung von Prozessen und zeigt
verschiedene Systeminformationen an.</para>
<para>Deutschsprachiges Handbuch zu Kpm</para><!-- Merge this with the previous paragraph; it comes from <META NAME="description" CONTENT="..."> --></abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>Kpm</keyword>
<keyword>kdeutils</keyword>
</keywordset>
</bookinfo>

<chapter id="einfhrung">
<title>Einf&uuml;hrung</title>

<sect1 id="ber-kpm">
<title>&Uuml;ber Kpm</title>

<para>Das Dienstprogramm Kpm zeigt die laufenden Prozesse Ihres Linuxrechners
an und erlaubt es, seine Parameter zu ver&auml;ndern. Weiterhin werden genaue
Angaben &uuml;ber die laufenden Prozesse und die Systemressourcen angezeigt
(z.B. die Auslastung des Speichers, der Auslagerungsdatei, des Prozessors,
die Gesamtlaufzeit des Systems, etc.). Prozesse k&ouml;nnen beendet und
ihre Priorit&auml;t bei der Zuteilung von Prozessorzeit angepasst
werden. Sind Sie als Super-User angemeldet, so k&ouml;nnen Sie zus&auml;tzlich
Einstellungen des Prozess-Ablaufplans (scheduling) vornehmen.</para>
</sect1>

<sect1 id="lizenz-und-gewhrleistung">
<title>Lizenz und Gew&auml;hrleistung</title>

<para>Kpm beruht weitestgehend auf <ulink url="mailto:f91-men@nada.kth.se">Mattias Engdegårds</ulink> Programm <literal remap="tt">qps</literal>. Der Hauptunterschied
zwischen Kpm und qps besteht in der Verwendung der KDE Oberfl&auml;che. Kpm ist
konform mit den meisten KDE Standards: Einstellungen werden durch
KDE-typische Konfigurationsdateien vorgenommen und das Programm besitzt
Sitzungsmanagement. Einige Eigenschaften von qps wurden jedoch entfernt,
z.B. die M&ouml;glichkeit, Arttabellen  des Mac OS7 oder
besondere Ankreuz-Elemente  anzeigen zu lassen.</para>

<para>Qps (und damit auch Kpm) wurden unter der GNU General Public License (GNU
GPL) ver&ouml;ffentlicht.</para>
</sect1>

<sect1 id="voraussetzungen">
<title>Voraussetzungen</title>

<para><itemizedlist>
<listitem>
<para>Das Betriebssystem Linux mit Kernel Version 2.0 oder h&ouml;her. Kpm
nutzt das <literal remap="tt">proc</literal> Dateisystem von Linux intensiv. Leider ist dieses
System nicht auf andere Betriebssysteme &uuml;bertragbar, da scheinbar jedes
UNIX System einen eigenen Weg geht, um Informationen &uuml;ber
Prozesse zu sammeln.
</para>
</listitem>
<listitem>
<para>Das K Desktop Environment 1.0 oder h&ouml;her.
</para>
</listitem>
<listitem>
<para>Die Programmbibliotheken Qt 1.31 oder h&ouml;her. Da KDE ohnehin auf Qt
basiert, stellt dies kein besonderes Problem dar.
</para>
</listitem>
<listitem>
<para>Ihr Linux Kernel muss mit <literal remap="tt">Unterst&uuml;tzung f&uuml;r das
<literal remap="tt">proc</literal>-Dateisystem</literal> kompiliert worden sein. Da jedoch viele
Programme  wie beispielsweise "top" ohne <literal remap="tt">proc-</literal>Dateisystem
nicht funktionsf&auml;hig w&auml;ren, ist sie standardm&auml;&szlig;ig in den
meisten Kerneln enthalten.
</para>
</listitem>
</itemizedlist>
</para>
</sect1>
</chapter>

<chapter id="die-meneintrge">
<title>Die Men&uuml;eintr&auml;ge</title>

<sect1 id="fenster">
<title>Fenster</title>

<para><variablelist>
<varlistentry>
<term>Minimieren</term>
<listitem>
<para>Minimiert das Hauptfenster. In diesem Modus ben&ouml;tigt Kpm deutlich
weniger Prozessorzeit da die Prozessliste nicht aktualisiert werden muss.
Falls Sie KWM als Windowmanager verwenden und die Option "An Kontrolleiste
andocken" gw&auml;hlt haben, sehen Sie ein kleines Symbol in der
Kontrolleiste, das die durchschnittliche Systemauslastung darstellt. Bei
anderen Windowmanagern wie fvwm zeigt das Symbol von Kpm selbst die
Systemauslastung an. Diese Darstellung h&auml;ngt jedoch davon ab, wie der
Windowmanager konfiguriert wurde.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Beenden</term>
<listitem>
<para>Beendet Kpm (Das Schlie&szlig;en des Hauptfensters f&uuml;hrt ebenfalls zum Beenden
von Kpm).</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>

<sect1 id="prozess">
<title>Prozess</title>

<para><variablelist>
<varlistentry>
<term>Priorit&auml;t neu festlegen</term>
<listitem>
<para>Hiermit kann die Priorit&auml;t eines oder mehrerer ausgew&auml;hlter Prozesse
ver&auml;ndert werden. Unter Linux wird jedem Prozess ein Priorit&auml;tslevel (der
"nice"-Wert) von -20 (h&ouml;chste Priorit&auml;t) bis +20 (geringste Priorit&auml;t)
zugeordnet. Somit f&uuml;hrt ein <emphasis remap="it">gr&ouml;&szlig;erer</emphasis>
Priorit&auml;tslevel dazu, dass ein Prozess <emphasis remap="it">weniger</emphasis> Prozessorzeit
zugeteilt bekommt. Sie d&uuml;rfen jedoch nur als Super-User die
Priorit&auml;tswerte verringern, um die Priorit&auml;t eines Prozesses zu
erh&ouml;hen. Das bedeutet, dass Sie als normaler Benutzer die
Prozesspriorit&auml;t nicht erh&ouml;hen d&uuml;rfen - selbst, wenn Sie sie
zuvor gesenkt hatten (Beachten Sie, da&szlig; die Prozesspriorit&auml;t
erh&ouml;t wird, wenn der "nice"-Wert kleiner wird).</para>
<para>Nat&uuml;rlich haben Sie nur die M&ouml;glichkeit, die Priorit&auml;t ihrer eigenen
Prozesse zu ver&auml;ndern. Als Super-User d&uuml;rfen Sie die Priorit&auml;t
jedes Prozesses modifizieren und somit auch die Priorit&auml;t heraufsetzen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ablaufplan (Scheduling) &auml;ndern</term>
<listitem>
<para>Diese M&ouml;glichkeit besitzt nur der Super-User. Mit Hilfe dieses
Men&uuml;punktes kann der Super-User den Ablaufplan ausgew&auml;hlter Prozesse
ver&auml;ndern (Dazu werden die Posix.1b Real-Time Erweiterungen des Linux
2.0.x Kernels eingesetzt). Normale Prozesse werden auf den Wert SCHED&lowbar;OTHER
gesetzt und erhalten die statische Priorit&auml;t 0; "soft" Real-Time Prozesse
haben den Wert SCHED&lowbar;FIFO oder SCHED&lowbar;RR und eine statische Priorit&auml;t
zwischen 1 und 99.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Socket Information</term>
<listitem>
<para>Zeigt eine Liste der TCP und UDP Sockets an, die von den ausgew&auml;hlten
Prozessen verwendet werden. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>

<sect1 id="signal">
<title>Signal</title>

<para>&Uuml;ber die einzelnen Men&uuml;punkte des Signal-Men&uuml;s k&ouml;nnen Sie
unterschiedliche Signale an alle ausgew&auml;hlten Prozesse senden. Seien Sie
jedoch vorsichtig hierbei - besonders, wenn Sie mehrere Prozesse ausgew&auml;hlt
haben. Eine Erkl&auml;rung der Standard-Linux-Signale k&ouml;nnen Sie
<link linkend="unix-signale">hier</link> finden.</para>
</sect1>

<sect1 id="ansicht">
<title>Ansicht</title>

<para><variablelist>
<varlistentry>
<term>Proze&szlig;liste auffrischen</term>
<listitem>
<para>Dieser Men&uuml;punkt f&uuml;hrt zu einer
sofortigen Aktualisierung der Proze&szlig;liste. Dies ist besonders hilfreich,
wenn Sie lange Zeitintervalle zwischen den automatischen
Aktualisierungen ausgew&auml;hlt haben. Eine sofortige Aktualisierung wird
ebenfalls durch Dr&uuml;cken des Aktualisieren-Knopfes in der Werkzeugleiste
oder durch das Dr&uuml;cken der Leertaste erreicht. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Alle Prozesse</term>
<listitem>
<para>Zeigt alle Prozesse an.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ihre Prozesse</term>
<listitem>
<para>Zeigt die von Ihnen gestarteten Programme an (inkl. "SETUID"  
Super-User Programme, die Sie aufgerufen haben).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Nicht-Root Prozesse</term>
<listitem>
<para>Zeigt alle Prozesse an, ausser denen des Super-Users.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Laufende Prozesse</term>
<listitem>
<para>Zeigt nur laufende Prozesse an (laufende oder solche, die sich in der
Warteschlange f&uuml;r laufende Prozesse befinden).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Benutzer-Felder</term>
<listitem>
<para>Diese Prozessliste zeigt die interessantesten Prozessfelder an.
Es handelt sich hierbei um die Felder, die auch durch das
Programm "top" angezeigt werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Job-Felder</term>
<listitem>
<para>Zeigt die wichtigsten Felder f&uuml;r "Job-Control" an.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Speicher-Felder</term>
<listitem>
<para>Zeigt Informationen &uuml;ber die Auslastung des Speichers, aufgetretene
Seitenfehler (page faults) etc.</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>
</chapter>

<chapter id="kpm-hauptfenster">
<title>Kpm Hauptfenster</title>

<sect1 id="feldern">
<title>Erl&auml;uterungen zu den Feldern</title>

<para> Die
Felder, die in der Prozessliste angezeigt werden, k&ouml;nnen unter dem
Men&uuml;eintrag "Ansicht"-"Felder ausw&auml;hlen..." ausgew&auml;ht werden.</para>

<para><variablelist>
<varlistentry>
<term>PID - Prozess ID</term>
<listitem>
<para>Jedem Prozess wird eine eigene Prozess-ID-Nummer zugeordnet. Diese Nummer
ist 1 oder gr&ouml;&szlig;er. Wird ein neuer Prozess gestartet, so erh&auml;lt dieser die
n&auml;chst h&ouml;here, unbenutzte PID-Nummer. PID-Nummern sind (momentan)
"16bit signed" Integer-Werte und haben einen Wert von 0 bis 32767. Dies als
Information f&uuml;r technisch Interessierte.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PPID - "Parent"-Prozess ID</term>
<listitem>
<para>Jeder Prozess wird einem &uuml;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.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PGID - Prozess-Gruppen ID</term>
<listitem>
<para>Jeder Prozess geh&ouml;rt zu einer Gruppe von Prozessen. Diese Gruppen werden
f&uuml;r die Verteilung von Prozesssignalen verwendet. Sie werden ebenfalls von Terminals
eingesetzt, um &uuml;ber ihre Eingabeaufforderungen zu entscheiden. Prozesse,
die derselben Prozessgruppe angeh&ouml;ren, dem auch das Terminal zugeordnet
ist, befinden sich im Vordergrund und besitzen somit das Recht,
Lesezugriffe zu t&auml;tigen. Prozesse, die einer anderen Gruppe angeh&ouml;ren,
werden blockiert und erzeugen ein Signal, falls sie dennoch versuchen,
einen Lesezugriff zu unternehmen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SID - Sitzungs-ID</term>
<listitem>
<para>Sitzungs-IDs werden haupts&auml;chlich eingesetzt, um herauszufinden, was bei
einem Absturz des Terminals geschehen ist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TTY - Kontrolle des tty</term>
<listitem>
<para>Der aktive Terminal (tty) ist &uuml;blicherweise die Schnittstelle (seriell,
pty, etc.), von der aus Prozesse gestartet werden. Dieses Terminal wird
gleichzeitig f&uuml;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. Der Terminal /dev/ttyp6 wird
beispielsweise als "p6" angezeigt.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TPGID - Prozess-Gruppen ID des tty-Prozesses</term>
<listitem>
<para>Ein Terminal tty, das gerade benutzt wird, ist immer einem Prozess
zugeordnet. Die Prozess-Gruppen ID dieses Prozesses wird unter TPGID
angezeigt.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>USER - Prozess-Benutzer</term>
<listitem>
<para>Hierbei handelt es sich um den (wirklichen) Benutzer, der den jeweiligen
Prozess gestartet hat. Falls die tats&auml;chliche Benutzer-ID eines Prozesses
sich von der wirklichen Benutzer-ID unterscheidet, wird dies von Kpm durch
ein angeh&auml;ngtes * oder + gekennzeichnet. Der Stern wird angegeben,
wenn der tats&auml;chliche Benutzer der Super-User ist (genaugenommen zeigt es
an, dass die "set-uid" des Programms auf "root" eingestellt ist).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>NICE - Der Prozesspriorit&auml;tswert "nice"</term>
<listitem>
<para>Der "nice"-Wert bestimmt, wie h&auml;ufig und wie lange ein Prozess jeweils
laufen darf. Der Wert selber liegt zwischen -20 und +20, wobei 0 den
Standardwert darstellt. Niedrige Zahlen weisen einem Prozess mehr
Prozessorzeit zu. Das Herabsetzen von "nice"-Werten ist ausschlie&szlig;lich dem
Super-User vorbehalten.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PRI - L&auml;nge des n&auml;chsten Prozessor-Zeitintervalls</term>
<listitem>
<para>Dies ist die maximale L&ouml;nge des kommenden Zeitintervalls, die einem
Prozess an Prozessorzeit 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 kleine Zahlen einem l&auml;ngeren Zeitintervall entsprechen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PLCY - Prozess-Ablaufplan ("Scheduling policy")</term>
<listitem>
<para>FIFO (F) und "Round-Robin" (R) sind Echtzeit-Ablaufpl&auml;ne; "OTHER" (O) ist
der bei UNIX &uuml;bliche Ablaufplan zur Verteilung der CPU-Zeit. F- und
R-Prozesse haben eine Echtzeitpriorit&auml;t zwischen 1 und 99. Nachdem
"Round-Robin" Prozesse f&uuml;r die Dauer einer Zeitscheibe ("time-slice")
gelaufen sind, werden sie auf die letzte Position innerhalb der
Warteschlange ihres Priorit&auml;tslevels gesetzt. FIFO Prozesse laufen
solange, bis sie die ihnen zugeteilte Prozessorzeit aufgeben (durch das
Versetzen in den Ruhezustand oder durch Blockierung) oder durch einen
Prozess mit einem h&ouml;heren Priorit&auml;tslevel an der weiteren Bearbeitung
gehindert werden. Nur der Super-User (root) darf den Ablaufplan
("scheduling policy") ver&auml;ndern.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RPRI - Echtzeit-Priorit&auml;tsstufen</term>
<listitem>
<para>Echtzeit-Prozesse (FIFO und "Round-Robin") werden Priorit&auml;tswerte zwischen
1 und 99 zugeordnet. Ein Prozess mit einer h&ouml;heren Priorit&auml;tsstufe als ein
anderer wird bei der Zuteilung der CPU-Zeit bevorzugt. Normale Prozesse,
die CPU-Zeit mit anderen Prozessen teilen ("policy"-Wert 0) besitzen alle
den Priorit&auml;tslevel 0. Nur der Super-User (root) darf die
Echtzeit-Priorit&auml;tsstufen &auml;ndern.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MAJFLT - Anzahl der aufgetretenen
schwerwiegenden Fehler ("major faults")</term>
<listitem>
<para>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&ouml;tigt wird,
z.B. f&uuml;r Auslagerungen oder das Einlesen von Speicherseiten.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MINFLT - Anzahl der aufgetretenen
leichten Fehler ("minor faults")</term>
<listitem>
<para>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&ouml;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").</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TRS - "Text resident set size" (Gr&ouml;&szlig;e in
KBytes)</term>
<listitem>
<para>Hierbei handelt es sich um die Gr&ouml;&szlig;e des Prozesstextes (der ausf&uuml;hrbare
Programmcode), der momentan im RAM geladen ist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DRS - "Data resident set size" (Gr&ouml;&szlig;e in
KBytes)</term>
<listitem>
<para>Hierbei handelt es sich um die Gr&ouml;&szlig;e der Prozessdaten (nicht ausf&uuml;hrbarer
Programmcode), der momentan im RAM geladen ist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SIZE - Virtuelle Gr&ouml;sse des Prozesses
(KBytes)</term>
<listitem>
<para>Dies ist die Gesamtgr&ouml;&szlig;e des Prozesses. Dazu geh&ouml;ren der
gesamte Prozesscode, die Daten und die gemeinsam genutzten Bibliotheken
("shared libraries") einschlie&szlig;lich der Seiten, die ausgelagert sind.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SWAP - Umfang der Auslagerung (in KBytes)</term>
<listitem>
<para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RSS - "resident set size" (Gr&ouml;&szlig;e in KBytes)</term>
<listitem>
<para>Hierbei handelt es sich um die Gr&ouml;&szlig;e des Prozessteils (Code, Daten und die
gemeinsam genutzte Bibliotheken), der sich tats&auml;chlich im RAM befindet.
Man erh&auml;lt eine gute Absch&auml;tzung der RAM-Menge, die ein Prozess
verwendet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SHARE - Gemeinsam genutzter Speicher (Gr&ouml;&szlig;e
in KBytes)</term>
<listitem>
<para>Dieser Wert gibt die Speichermenge an, die ein Prozess sich mit anderen
Prozessen teilt oder teilen k&ouml;nnte. Dabei sagt dies nicht aus, dass von dieser
Speichermenge auch tats&auml;chlich irgendein Teil von anderen Prozessen
verwendet wird. Der Wert gibt lediglich an, wieviel Speicher mit anderen
Prozessen geteilt werden kann.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DT - Anzahl an "dirty pages"</term>
<listitem>
<para>Hierbei ist die Anzahl (nicht die Anzahl Bytes!) an RAM-Seiten gemeint,
die seit dem letzten Zugriff auf die Festplatte ver&auml;ndert wurden. "Dirty
pages" m&uuml;ssen zuerst auf die Festplatte geschrieben werden, bevor sie
wieder f&uuml;r andere Dinge freigegeben werden k&ouml;nnen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>STAT - Zustand eines Prozesses</term>
<listitem>
<para>Ein Prozess befindet sich immer in einem der folgenden Zust&auml;nde:</para>
<para><itemizedlist>
<listitem>
<para>R (running): Der Prozess l&auml;uft gerade auf der CPU oder ist bereit
f&uuml;r die Ausf&uuml;hrung
</para>
</listitem>
<listitem>
<para>S (sleeping): Der Prozess wartet auf ein Ereignis (etwa auf 
eine Ein-/Ausgabe oder auf den Zeitgeber)
</para>
</listitem>
<listitem>
<para>D (uninterruptable sleep): Der Prozess wartet auf ein Ereignis, ohne
dass er hierbei unterbrochen werden kann (z.B. der Wartezustand eines
Schnittstellentreibers)
</para>
</listitem>
<listitem>
<para>T (stopped): Der Prozess wurde beendet oder durch einen anderen
Prozess verfolgt ("traced")
</para>
</listitem>
<listitem>
<para>Z (zombie): Der Prozess wurde beendet, ohne dass der &uuml;bergeordnete
"parent"-Prozess hiervon bislang Kenntnis genommen hat.
</para>
</listitem>
<listitem>
<para>Falls ein Prozess komplett auf die Festplatte ausgelagert wurde
(keine im Speicher befindlichen Seiten besitzt), so wird ein "W" in dem
Feld angezeigt. Dies erfolgt auch bei Kernel-Prozessen, z.B. Kswapd.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>FLAGS - Prozess-Kennzeichner ("flags", hex)</term>
<listitem>
<para>Die folgende Liste enth&auml;lt einige zus&auml;tzliche Informationen &uuml;ber den
Zustand eines Prozesses. Bitte sehen Sie im Programmcode des Linux Kernels
f&uuml;r weiterf&uuml;hrende Details nach.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>WCHAN - Funktion, in der ein Prozess ruht</term>
<listitem>
<para>Wenn ein Prozess auf ein Ereignis wartet, dann befindet er sich in dieser
Kernel-Funktion (Um den Namen abzuk&uuml;rzen sind die Pr&auml;fixe "do&lowbar;" oder
"sys&lowbar;" entfernt).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>UID - Numerische Benutzer-ID</term>
<listitem>
<para>Dies ist die ID des (wirklichen) Benutzers, dem der Prozess geh&ouml;rt.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&percnt;WCPU - Durchschnittliche, prozentuale CPU-Last</term>
<listitem>
<para>Hierbei handelt es sich um den &uuml;ber die letzten 30 Sekunden gemittelten
Prozentsatz der CPU-Zeit, die ein Prozess verwendet (exponentiell
abnehmender Durchschnitt).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&percnt;CPU - prozentuale CPU-Last seit der
letzten Aktualisierung</term>
<listitem>
<para>Dieser Wert gibt an, wieviel CPU-Zeit (in Prozenten) ein Prozess seit der
letzten Aktualisierung der Prozessliste verwendet hat.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&percnt;MEM - Prozentsatz des benutzten Speichers</term>
<listitem>
<para>Dies gibt an, welcher prozentuale Anteil des gesamten RAM-Speichers von
einem Prozess verwendet wird (als "resident size"). Da gemeinsam genutzte
Bibliotheken ebenfalls zu der Berechnung hinzugez&auml;hlt werden, handelt es
sich m&ouml;glicherweise um einen zu hohen Wert.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>START - Anfangszeit des Prozesses</term>
<listitem>
<para>Dieser Wert gibt an, wann der Prozess erzeugt wurde.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TIME - verwendete Gesamt-CPU-Zeit</term>
<listitem>
<para>Dies gibt an, wieviel CPU-Zeit ein Prozess seit seinem Aufruf gebraucht
hat.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>COMM - Befehl, der den Prozess aufgerufen hat</term>
<listitem>
<para>In diesem Feld wird der Befehl (Dateiname) angezeigt, der den
Prozess erzeugt hat. Zu lange Namen werden abgeschnitten.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CMDLINE - Befehlszeile, die den Prozess
aufgerufen hat</term>
<listitem>
<para>Dies ist die Befehlszeile inklusive eventueller Argumente, mit der ein Prozess
erzeugt wurde. Falls im Men&uuml; "Einstellungen" der Punkt "Befehlspfad
anzeigen" nicht ausgew&auml;hlt wurde, so wird der Name des Befehls
abgeschnitten. Ausgelagerte Prozesse werden mitunter nur durch den in Klammern
gesetzten Befehlsnamen aufgef&uuml;hrt (dies gilt auch f&uuml;r
Kernel-Prozesse).</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>
</chapter>

<chapter id="unixsignals">
<title>Anhang</title>

<sect1 id="unix-signale">
<title>UNIX Signale</title>

<para> Die folgende
Aufz&auml;hlung der UNIX Signale entspricht denen, die auch in den
Handbuchseiten <emphasis remap="it">signal(7)</emphasis> erkl&auml;rt werden. F&uuml;r n&auml;here Angaben lesen
Sie bitte die Handbuchseiten, die Sie mit Hilfe des folgenden Kommandos
aufrufen k&ouml;nnen: <literal remap="tt">man 7 signal</literal></para>

<para>Die aufgef&uuml;hrten Signale sind durch Posix definiert und k&ouml;nnen durch Kpm
aufgerufen werden:</para>

<para><itemizedlist>
<listitem>
<para><emphasis remap="bf">SIGHUP:</emphasis> Entweder wurde durch das aktive Terminal
ein Absturz erkannt oder der aktive Prozess wurde unvorhergesehenerweise
beendet
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGINT:</emphasis> "Unterbrechung", durch die Tastatur aufgerufen
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGQUIT:</emphasis> "Beenden", durch die Tastatur aufgerufen
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGILL:</emphasis> Unberechtigt aufgerufener Befehl
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGABRT:</emphasis> "Abbrechen"-Signal von "abort(3)"
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGFPE:</emphasis> Flie&szlig;komma-Fehler
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGKILL:</emphasis> "Kill"-Signal
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSEG:</emphasis> Ung&uuml;ltige Speicherreferenz
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPIPE:</emphasis> Unterbrechung
des Signalflusses: "Broken pipe: write to pipe with no readers"
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGALRM:</emphasis> Zeitgebersignal des Alarms (1)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTERM:</emphasis> Terminationssignal
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGUSR1:</emphasis> Benutzer-definiertes Signal 1
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGUSR2:</emphasis> Benutzer-definiertes Signal 2
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGCHLD:</emphasis> Untergeordneter "Child"-Prozess wurde angehalten
oder beendet
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGCONT:</emphasis> Fortsetzen, falls angehalten
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSTOP:</emphasis> Prozess anhalten
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTSTP:</emphasis> Aufforderung zum Anhalten wurde am Terminal tty
eingegeben
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTTIN:</emphasis> Eingabe f&uuml;r einen Hintergrundprozess vom Terminal
tty
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTTOU:</emphasis> Ausgabe f&uuml;r einen Hintergrundprozess vom Terminal
tty
</para>
</listitem>
</itemizedlist>
</para>

<para>Die folgenden Signale sind weder durch Posix definiert noch bislang durch
Kpm verf&uuml;gbar:</para>

<para><itemizedlist>
<listitem>
<para><emphasis remap="bf">SIGTRAP:</emphasis> "Trace/breakpoint trap" - Die Falle zum Aufsp&uuml;ren
oder f&uuml;r Unterbrechungen
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGIOT:</emphasis> "IOT trap" Diese Falle ist ein Synonym f&uuml;r SIGABRT
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGBUS:</emphasis> Bus-Fehler
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSYS:</emphasis> Ung&uuml;ltiges Argument wurde an die Routine (SVID)
&uuml;bergeben
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSTKFLT:</emphasis> Fehler des Stacks am Koprozessor
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGURG:</emphasis> Dringende Bedingung/Situation am Socket (4.2 BSD)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGIO:</emphasis> I/O ist jetzt m&ouml;glich (4.2 BSD)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPOLL:</emphasis> Synonym f&uuml;r SIGIO (System V)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGCLD:</emphasis> Synonym f&uuml;r SIGCHLD
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGXCPU:</emphasis> Zeitbegrenzung der CPU &uuml;berschritten (4.2 BSD)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGXFSZ:</emphasis> Gr&ouml;&szlig;enbegrenzung f&uuml;r die Datei &uuml;berschritten (4.2
BSD)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGVTALRM:</emphasis> Virtueller Wecker (4.2 BSD)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPROF:</emphasis> Profil-Wecker
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPWR:</emphasis> Fehler in der Stromversorgung (System V)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGINFO:</emphasis> Synonym f&uuml;r SIGPWR
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGLOST:</emphasis> Datei-Sperre verloren
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGWINCH:</emphasis> Signal f&uuml;r die Ver&auml;nderung der Fenstergr&ouml;&szlig;e (4.3
BSD, Sun)
</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGUNUSED:</emphasis> Nicht verwendetes Signal
</para>
</listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="bekannte-fehler-und-einschrnkungen">
<title>Bekannte Fehler und Einschr&auml;nkungen</title>

<para><itemizedlist>
<listitem>
<para>Gelegentlich kommt es vor, dass Kpm mit einem Segmentverletzungsfehler
abst&uuml;rzt. Dies geschieht, wenn mehr als ein Prozess gew&auml;hlt wurde und die
Tabelle aktualisiert wird. Der Grund f&uuml;r diesen Absturz ist bislang nicht
bekannt.
</para>
</listitem>
<listitem>
<para>Die Informationszeile und die Prozessliste sind auf eine
Zeichensatzgr&ouml;&szlig;e von 12 Punkt optimiert worden. Bis zu einer Gr&ouml;&szlig;e von 14
Punkt sieht die Darstellung gut aus, jedoch wird von der Verwendung
gr&ouml;&szlig;erer Zeichen abgeraten.
</para>
</listitem>
<listitem>
<para>Wenn Sie Kpm so einstellen, dass die Prozessliste h&auml;ufig
aktualisiert wird, so kann das Programm die Belastung der CPU erheblich
erh&ouml;hen. Beispielsweise wird auf einem Rechner mit einem AMD
K6PR200-Prozessor dieser zu ca. 5 Prozent ausgelastet, wenn die Zeitspanne
zwischen den Aktualisierungen auf eine Sekunde gestellt wird. Die
tats&auml;chliche Belastung h&auml;ngt jedoch stark von der Anzahl aller Prozesse ab
(nicht nur die aufgef&uuml;hrten) und kann mitunter deutlich h&ouml;her ausfallen.
</para>
</listitem>
<listitem>
<para>Der "&percnt;CPU"-Wert ist bei sehr kurzen Aktualisierungsintervallen
nicht pr&auml;zise.
</para>
</listitem>
<listitem>
<para>Das WCHAN-Feld ist fehlerhaft, falls ein ruhender Prozess sich an
einer Stelle ausserhalb der in der Datei <literal remap="tt">System.map</literal>
definierten befindet. In diesen F&auml;llen wird der letzte Eintrag in
der Datei <literal remap="tt">System.map</literal> angezeigt (meistens so etwas wie <literal remap="tt">&lowbar;end</literal>).
</para>
</listitem>
<listitem>
<para>Kpm kann nicht mehr als einen Prozess mit der gleichen PID
verwalten. Dieser Zustand tritt ein, wenn CLONE&lowbar;PID mit dem Systemaufruf
"clone()" verwendet wird.
</para>
</listitem>
</itemizedlist>
</para>
</sect1>
</chapter>
<![ %addindex; [ &docindex; ]]>
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
sgml-general-insert-case: lower
End:
-->
