Jobbövervakaren är en del av OS/2 kärnan och som arbetar på systemets lägsta nivå (för mer, se Omstarta Skrivbord sidan).
Jobbövervakaren är ansvarig för multikörning och multitrådning i OS/2. Eftersom du bara har en processor normalt, men förväntar dig att flera program skall köras samtidigt, växlar Jobbövervakaren mellan dessa program flera dussin gånger per sekund, så programmen tycks köras parallellt.
För att förstå de olika inställningarna på "Jobbövervakare" sidan i "OS/2 Kärna" objektet, kan följande förklaringar om hur OS/2 sköter processer och trådar vara till hjälp. På den inställningssidan kommer du få mer specifik information om de olika inställningarna via "Hjälp" knappen.
En tråd är den minsta enhet för att administrera programövergångar som OS/2 tillhandahåller. Ett program kan innehålla flera trådar men måste ha minst en tråd. Termen "tråd" valdes därför inom en tråd är programinstruktionerna utförda sekvensiellt, medan mellan trådar kan du aldrig vara säker på vilken tråds instruktion som kommer att utföras först.
Välprogrammerad OS/2 mjukvara använder flera trådar för att användaren skall få ett snabbt svar på sina indata och musrörelser. Till exempel om du utför ett kommando som tar lång tid i ett program, bör ett program starta en andra tråd för denna uppgift. Medan denna nya tråd arbetar i bakgrunden, är användargränssnittet (och huvudtråden för programmet) redo för nytt inflöde.
Sämre programmerad OS/2 mjukvara använder bara en tråd för både användargränssnittet och för att utföra uppgifter. Medan en uppgift utförs är därför användargränssnittet blockerat. Ett bra exempel på det kommer från IBM själv: i VIEW.EXE om du söker i hela biblioteket, är din dator fullständigt blockerad tills sökningen är komplett. Detta skulle ha varit perfekt för multitrådning.
Trådar ha olika prioritet. I allmänhet får en tråd med högre prioritet mer processortid än en med lägre prioritet. Det är särskilt sant om flera trådar har arbete att utföra, dvs tävlar om processortid. Det gäller inte för trådar som är "blockerade" därför att de har ingenting att göra. En blockerad tråd behöver ingen processortid och dess prioritet är sålunda betydelselös.
OS/2 kontrollerar trådprioritet på ett mycket raffinerat sätt. Det skiljer mellan fyra prioritetsklasser:
Några exempel:
Inom den "vanliga prioritet" klassen försäkrar sig OS/2 om att ingen tråd "svälter", dvs aldrig får processortid, genom att dynamiskt höja varje tråds prioritet automatiskt efter en viss tid. Denna tidsperiod är bestämd av MAXWAIT i CONFIG.SYS. OS/2 höjer också en tråds prioritet för att mottaga tangentbordsdata, för förgrundsprocesser eller om tråden utnyttjar utrustning.
Dessa dynamiska justeringar utförs bara då om CONFIG.SYS
inte innehåller kommandot PRIORITY=ABSOLUTE, vilket ej är
rekommenderat. (Därför finns inte denna inställning i "OS/2
Kärna" objektet.)