Het scherm ziet er ruwweg als volgt uit:
Het groenblauwe deel van de grafiek vertegenwoordigt de "gebruikers" belasting van het systeem, terwijl het blauwe deel de "IRQ" belasting vertegenwoordigt. Het percentage dat in het midden wordt weergegeven vertegenwoordigt altijd de huidige gecombineerde "gebruikers" en "IRQ" belasting. Als u met een multiprocessor systeem werkt, krijgt u een "gebruikers" grafiek voor elke CPU. Maar ook dan zult u maar ‚‚n "IRQ" grafiek hebben, omdat per definitie &os2; alle interrupts op de eerste CPU van het systeem verwerkt. Zie de onderstaande opmerkingen voor details hierover.
Let op dat u op de hartslag widget ook het slepen en loslaten van kleuren en lettertypen kunt toepassen. Verder is het via de aanpassingsschuif in grootte aanpasbaar.
Implementatie Details:
Intern gebruikt de hartslag widget de DosPerfSysCall API
(zie
DosPerfSysCall
in de Toolkit documentatie
*).
Deze API heeft het voordeel dat, om de CPU activiteit te meten, u direct de
prestatie metingen uit de &os2; kernel kunt halen in plaats van een tweede
leeglooptijd thread te laten draaien, die zelf alle overblijvende CPU tijd
(en daardoor extra accu stroom op laptops) consumeert.
Als gevolg hiervan consumeert de hartslag widget geen aanvullende CPU tijd tijdens het draaien, met uitzondering van de benodigde tijd voor het tekenen van het widget zelf. Met andere woorden, de hartslag widget berekent zelf de CPU belasting niet, het raadpleegt alleen de &os2; kernel voor de huidige belasting en toont dat in een grafiek.
De widget zijn eigen belasting, voor het tekenen, is ook de reden waarom u waarschijnlijk nooit een CPU belasting van nul zult zien, zelfs als u momenteel helemaal niets aan het doen bent met uw systeem. Op het systeem van de auteur (een Pentium II-400), komt de CPU belasting nooit onder de 0.7% met de standaard widget grootte.
Benodigdheden:
De DosPerfSysCall API is slechts zeer recent ingevoerd en zou wel eens
niet kunnen werken op uw systeem. Hij zou moeten werken met Warp 4 en hoger (of Warp 3
met een vergelijkbaar fixpak niveau; wat dan fixpak 26 zou moeten zijn).
De IBM documentatie voor DosPerfSysCall geeft aan dat een Pentium
processor nodig is om de kernel prestatie metingen te laten werken.
Als de widget geen grafiek vertoont maar alleen een "E xxx" (met
xxx zijnde een standaard &os2; foutcode), dan heeft zich een fout voorgedaan. Het meest
waarschijnlijk is dat u "E 182" krijgt, wat betekent dat de DosPerfSysCall
API niet gevonden is op uw systeem. Voor andere foutcodes kunt u proberen HELP SYSxxx
in te typen op een opdrachtregel.
"Gebruiker" en "IRQ" belasting:
Voor elke prestatie meting geeft DosPerfSysCall waarden terug voor respectievelijk
"gebruiker" en "IRQ" belasting.
De "gebruiker" belasting is de tijd die besteed is in "taaktijd" programmatuur. In essentie betekent dit dat de CPU drukdoende was met het uitvoeren van een programma van ofwel een applicatie ofwel de &os2; kernel ofwel een stuurprogramma in de normale uitvoeringsgang van processen en threads, zoals geregeld door de planner in de &os2; kernel. (Zie: "Processen en threads" voor details.)
In tegenstelling hierop vertegenwoordigt de "IRQ" belasting de tijd die nodig was om
interrupts te verwerken. Zoals u wellicht weet zijn interrupts een manier voor apparatuuronderdelen
om de CPU te laten weten dat er een belangrijke gebeurtenis is voorgevallen welke direct afgehandeld
moet worden.
Meest voorkomend zijn interrupts die veroorzaakt worden door harde schijven, geluidskaarten,
netwerkkaarten, en seri‰le en printer communicaties.
Deze apparatuur kan het zich niet veroorloven om te wachten totdat de &os2; planner een proces
tijdsinterval afgehandeld heeft en gereed is om naar een volgende taak over te schakelen. In plaats
daarvan onderbreekt de &os2; kernel, als er een interrupt binnenkomt, de normaal geplande volgorde
en roept een interrupt processor aan, die, in de meeste gevallen, geprogrammeerd is in een soort
stuurprogramma. (In het algemeen kunnen alleen &os2; stuurprogramma's interrupt processors
installeren).
Bijvoorbeeld, als er een interrupt van een harde schijf binnen komt zal er direct programmatuur in de
IBM1S506.ADD aangeroepen worden om de interrupt te verwerken.
Als u nooit enige IRQ belasting op uw systeem ziet, dan is dat normaal. Dit is waarschijnlijk het
geval als u geen enkele netwerkadapter ge‹nstalleerd heeft en u busmastering geactiveerd heeft
voor uw harde schijven. Als u echter een hoge IRQ belasting heeft, zou u maatregelen kunnen treffen
om dat te verlagen. Activeer busmastering voor uw harde schijven en/of plaats een netwerkadapter
die beschikt over busmastering.