Arbetsbesparande schemaläggare
I dator- och kommunikationssystem är en arbetsbesparande schemaläggare en schemaläggare som alltid försöker hålla den eller de schemalagda resurserna upptagna, om det finns inskickade jobb redo att schemaläggas. Däremot är en icke-arbetsbevarande schemaläggare en schemaläggare som i vissa fall kan lämna den eller de schemalagda resurserna inaktiva trots närvaron av jobb som är redo att schemaläggas.
Till exempel, när man hanterar nätverk och paketschemaläggning , lämnar en arbetsbesparande schemaläggare kanalen inaktiv endast när det inte finns några paket att sända, medan en icke-arbetsbevarande schemaläggare kan lämna kanalen inaktiv med paket som fortfarande väntar på överföring .
På liknande sätt, när man hänvisar till CPU-schemaläggning , dvs trådar eller processer schemalagda över en eller flera tillgängliga processorer eller kärnor , säkerställer en arbetsbesparande schemaläggare att processorer/kärnor inte är inaktiva om det finns processer/trådar som är klara för exekvering .
Icke-arbetsbevarande schemaläggare är ibland användbara för att förbättra förutsägbarheten och minska avslutningsjitter för de aktiviteter som utförs av ett dator- och kommunikationssystem. I med flera processorer är de användbara för att förbättra prestandan i vissa scenarier. Ibland kan en icke-arbetsbevarande schemaläggare vara användbar för att förbättra stabiliteten hos ett system; Till exempel kan en processschemaläggare välja att hålla processer borta från körningskön om det finns farhågor om att summan av arbetsuppsättningarna för alla körbara processer skulle överstiga tillgängligt minne och leda till icke-linjära sidöverbelastningar. Att begränsa körkön på detta sätt kan leda till underutnyttjande av tillgängliga processorer (och därmed vara icke-arbetebesparande) med målet att undvika situationer där systemet är oanvändbart på grund av trassling.