Displayen kommer grovt s„tt att likna f”ljande:
Den cyanf„rgade delen av grafen representerar "anv„ndarens" last p† systemet, medan den bl†f„rgade delen represents "IRQ" lasten. Den procentsats som skrivs ut i centrum representerar alltid de kombinerade "anv„ndar" och "IRQ" lasterna. Om du k”r det h„r p† ett multi-processor system, kommer du att f† "anv„ndar" graf f”r varje CPU. D„remot, kan du „ven d† att f† endast en "IRQ" graf d„rf”r att per definition, processar &os2; alla interrupt p† den f”rsta CPU'n i systemet. Se anm„rkningerna nedanf”r f”r detaljer om detta.
Notera att du kan dra och sl„ppa fonter och f„rger p† pulswidgeten. Dessutom, „r den storleksf”r„ndringsbar.
Implementering Detaljer
Internt, anv„nder pulswidgeten DosPerfSysCall API
(se dokumentationen f”r
DosPerfSysCall
i Toolkit's dokumentation*).
Denna API har f”rdelen att kunna m„ta CPU aktivitet genom att direkt accessa
prestandar„knarna i &os2;'s k„rna ist„llet f”r att k”ra en andra ledig-tids tr†d vilken
konsumerar all †terst†ende CPU tid sj„lv (och d„rmed ytterligare batterikraft p† laptops).
Som ett resultat, att k”ra pulswidgeten konsumerar inte ytterligare CPU tid undantaget f”r den tid som det tar att rita upp sj„lva widgeten. Med andra ord, pulswidgeten bidrar inte sj„lv med n†gon egen CPU last, den f”rfr†gar endast &os2; k„rnan efter den aktuella lasten och visar den som en graf.
Widgetens egen overhead f”r att rita upp „r ocks† orsaken till du troligtvis aldrig kommer att se en CPU last p† noll, „ven om du f”r n„rvarande inte g”r n†gonting med ditt system. P† f”rfattarens system (en Pentium II-400), g†r CPU lasten aldrig ner under 0.7% med standard widgetstorlek.
Krav
DosPerfSysCall API'n har nyligen introducerats och kanske inte
fungerar p† ditt system. Den b”r fungera med Warp 4 och h”gre (eller Warp 3
med en ekvivalent fixpaksniv†; b”r vara fixpak 26).
IBM's dokumentation f”r DosPerfSysCall p†st†r att en Pentiumprocessor
„r n”dv„ndig f”r att k„rnans prestandar„knare skall fungera.
Om widgeten inte visa n†gon graf utan endast "E xxx"
(med xxx varande en standard &os2; felkod), har ett fel intr„ffat. Mest troligt,
kommer du att f† "E 182", vilket betyder att DosPerfSysCall API', inte
hittades p† ditt system. F”r andra felkoder, kan du f”rs”ka skriva HELP SYSxxx p†
en kommandorad.
"Anv„ndare" och "IRQ" last
F”r varje prestanda snapshot, returnerar DosPerfSysCall v„rden f”r "anv„ndare"
och "IRQ" laster, respektive.
"Anv„ndar" lasten „r den tid som spenderades p† "uppdragstid" kod. V„sentligen, betyder det att CPU'n var upptagen med att exekvera kod i antingen en applikation eller med &os2; k„rnan eller en device drivrutin i den regulj„ra exekveringen hos fl”det av processer och tr†dar, som kontrolleras av schemal„ggaren i &os2;'s k„rna. (Se "Processer och tr†dar" f”r detaljer.)
Som kontrast, "IRQ" lasten representerar den tid som var n”dv„ndig f”r att
processa interupts. Som du kanske k„nner till, interrupt „r ett s„tt f”r h†rdvarukomponenter att
signalera till CPU'n att n†gon viktig h„ndelse har intr„ffat som m†ste †tg„rdas omedelbart.
Mest vanligt, „r interrupts fr†n h†rddiskar, ljudkort, n„tverkskort, seriella och
skrivarkommunikationer. Dessa devicer har inte r†d att v„nta tills &os2;'s schemal„ggare har avslutat
en process tidscykel och „r redo att v„xla till en annan uppgift. Ist„llet, n„r ett IRQ kommer in,
avbryter &os2;'s k„rna den regulj„ra schemal„ggningssekvensen och anropar en interrupthanterare
ist„llet, vilket, i de flesta fall, kommer att vara kod fr†n n†gon device drivrutin. (I allm„nhet, kan
endast &os2; device drivrutiner installera interrupthanterare.) Till exempel, om en interrupt
fr†n h†rddisken kommer in, kommer koden i IBM1S506.ADD att bli anropad direkt f”r att
betj„na interruptet.
Om du aldrig ser n†gon IRQ last hos ditt system, „r detta normalt. Det „r troligtvis
fallet om du inte har n†gra n„tverksadapters installerade och du har aktiverat
busmastering f”r dina h†rddiskar. Emellertid, om du har en h”g IRQ last, kan du ”verv„ga
att f”rs”ka reducera den -- aktivera busmastering f”r dina h†rddiskar och/eller skaffa
en n„tverksadapter som kan hantera busmastering.