Das "Puls"-Widget des &xcenter;s zeigt die momentane Prozessorauslastung zusammen mit einem Graphen der vergangenen Prozessoraktivit„t an. Die Anzeige wird einmal pro Sekunde aktualisiert. Es „hnelt stark der entsprechende Anzeige im &warpcenter;.

Die Anzeige sieht etwa so aus:

Der gr�ne Teil des Graphen stellt die "Benutzer"-Belastung des Systems dar, w„hrend der blaue Teil die "IRQ"-Belastung darstellt. Die Prozentzahl, die in der Mitte angezeigt wird, gibt die Summe von "Benutzer"- und "IRQ"-Last an. Einzelheiten entnehmen Sie bitte den Bemerkungen am Ende.

Beachten Sie, daá Sie an das Puls-Widget Schriftarten und Farben ziehen und �bergeben zuweisen k”nnen. Auáerdem ist es in der Gr”áe ver„nderlich.

Details der Implementation

Intern benutzt das Puls-Widget das DosPerfSysCall-API. (siehe die Beschreibung des Aufrufs DosPerfSysCall in der Dokumentation des Toolkit*). Dieses API hat den Vorteil, daá man direkt auf die vom &os2;-Kernel angegebenen Leistungsz„hler zugreifen kann, statt einen zweiten "Leerlauf"-Prozeá laufen zu haben, der die gesamte freie Prozessorzeit f�r sich verbraucht (und deshalb bei Laptops zus„tzliche Batterieenergie verbraucht).

Als Ergebnis verbraucht das Puls-Widget keine zus„tzliche Prozessorzeit, auáer der Zeit, die es zum erneuten Zeichnen des Widgets selbst ben”tigt. Mit anderen Worten belastet das Puls-Widget die CPU selbst nicht, sondern fragt nur den &os2;-Kernel nach der Auslastung und zeigt diese als Graph an.

Die zus„tzliche Belastung durch das Neuzeichnen des Widgets selbst ist auch der Grund, warum niemals eine Prozessorauslastung von Null angezeigt wird, auch wenn Sie gerade nichts auf dem System tun. Auf dem System des Autors (einem Pentium-II 400), f„llt die CPU-Belastung bei der Standardgr”áe des Widgets niemals unter 0.7%.

Voraussetzungen

Das DosPerfSysCall-API wurde vor relativ kurzer Zeit eingef�hrt, und es kann sein, daá es auf Ihrem System nicht funktioniert. Es sollte mit Warp 4 und neuer (oder mit Warp 3 und einem „quivalenten Fixpack-Level, bei dem es sich um Fixpack 26 handeln d�rfte) funktionieren.

Weiterhin bemerkt die IBM-Dokumentation f�r dieses API, daá man einen Prozessor der Pentium-Klasse ben”tigt, damit die Kernel-Leistungsz„hler funktionieren.

Wenn das Widget keinen Graphen sondern nur "E xxx" anzeigt (wobei xxx ein &os2;-Standardfehlercode ist), gab es einen Fehler. Am wahrscheinlichsten ist "E 182", was bedeutet, daá das DosPerfSysCall-API auf dem System nicht gefunden wurde. Bei anderen Fehlercodes k”nnen Sie auf der Befehlszeile HELP SYSxxx eingeben.

"Benutzer"- und "IRQ"-Auslastung

F�r jeden Stand der Auslastung gibt DosPerfSysCall jeweils Werte f�r "Benutzer" und "IRQ" zur�ck.

Die "Benutzer"-Auslastung ist der Anteil der Zeit, die auf "Programmzeit" verwendet wurde. Im Prinzip bedeutet das, daá der Prozessor damit besch„ftigt war, Code entweder von einer Applikation, dem &os2;-Kernel oder einem Ger„tetreiber im normalen Fluá der Prozesse und Threads auszuf�hren, wie es vom Scheduler im &os2;-Kernel verteilt wird. (Details siehe "Prozesse und Threads".)

Im Unterschied dazu gibt die "IRQ"-Auslastung die Zeit an, die gebraucht wurde, um Interrupts (="Unterbrecher") auszuf�hren. Wie Sie vielleicht wissen, sind Interrupts die Methode, mit der Hardware-Komponenten den Prozessor benachrichtigen, daá ein besonderes Ereignis eingetreten ist, das sofort bearbeitet werden muá. Meistens werden Interrupts von Festplatten, Sound- und Netzwerkkarten sowie serieller und Druckerkommunikation ausgel”st. Diese Ger„te k”nnen es sich nicht leisten zu warten, bis der &os2;-Scheduler die Zeitscheibe eines Prozesses fertig bearbeitet hat und bereit ist, auf die n„chste Aufgabe umzuschalten. Statt dessen unterbricht der &os2;-Kernel den normal vorgesehenen Ablauf, wenn ein Interrupt ausgel”st wird, und ruft einen "Interrupt-Handler" auf, was in den meisten F„llen der Code in einem Ger„tetreiber sein wird. (Im allgemeinen k”nnen nur &os2;-Ger„tetreiber Interrupt-Handler installieren.) Wenn beispielsweise ein Interrupt von einer Festplatte eintrifft, wird sofort Code im Treiber IBM1S506.ADD aufgerufen, der sich um den Interrupt k�mmert.

Wenn nie irgendeine IRQ-Auslastung auf dem System angezeigt wird, ist das kein Problem. Das ist wahrscheinlich der Fall, wenn Sie keine Netzwerkkarten installiert und auáerdem Busmaster-Zugriffe f�r die Festplatte aktiviert haben. Wenn Sie aber eine hohe IRQ-Auslastung feststellen, k”nnten Sie sich Maánahmen �berlegen, diese Last zu reduzieren - Busmaster-Zugriffe f�r die Festplatten einschalten und/oder eine Netzwerkkarte zu besorgen, die Busmaster-Zugriffe unterst�tzt.