Processorplanlægning (eller CPU-planlægning) bestemmer, hvilke processer der tildeles og fjernes fra CPU'en, baseret på planlægningsmodeller som f.eks Tegningsretter og Ikke-undtagelsesplanlægning (også kendt som Kooperativ planlægning).
Ældre systemer kunne fungere i enkle fristående tilstande, men med det stigende behov for lydhøre, fleksible systemer såvel som virtualisering giver administration af multi-behandling effektivt hurtig respons på alle anmodninger om opgavebehandling.
Planlægningsenheder omtales ofte som en opgave og det er planlæggerens job at køre og styre disse opgaver, når det er nødvendigt; planlæggeren vælger den opgave, der skal fjernes og tildeles CPU'en til behandling, i henhold til den anvendte planlægningsmodel.
Scheduler skal køre en fair og effektiv udvælgelsesproces under hensyntagen til variable, dynamiske behandlingsanmodninger og få mest muligt ud af CPU-cyklusser.
Opgaver kan være i to tilstande under behandling:
Når CPU'en er inaktiv, læser planlæggeren Klar kø, og vælger den næste opgave, der skal køres. Derefter er det Dispatcher der giver den valgte opgaveregulering af CPU'en, så den skal være hurtig! Enhver tid, der tages af Dispatcher, kaldes Send forsinkelse.
Der er forskellige strukturer og brugerdefinerede parametre til at definere Klar kø, samt flere metoder, der kan bruges til at styre kompleksiteten i planlægningsprocessen.
Generelt handler det om at optimere og maksimere CPU-udnyttelse, gennemstrømning osv.
Planlæggeren skal træffe en beslutning i et af følgende trin:
En ny opgave skal vælges, hvis trin 1 eller 4 sker for at sikre fuld udnyttelse af CPU'en, og i både trin 2 og 3 kan opgaven fortsætte med at køre, eller en ny er valgt.
Efter at have forstået, hvordan en opgave behandles, lad os se på to planlægningsmodeller, der beskæftiger sig med CPU-afbrydelser.
Begge har lignende funktioner med opgaver, opgavetilstand, køer og prioriteter (statisk eller dynamisk):
Opgaver inden for et ikke-undtagelsessystem kører, indtil de er afsluttet.
Planlæggeren kontrollerer derefter alle opgaver 'tilstande og planlægger den næste højeste prioriterede opgave med en Parat stat.
Med ikke-præemptiv planlægning, når en opgave først har tildelt CPU'en, kan den ikke fjernes, selvom korte opgaver skal vente på, at længere opgaver er afsluttet.
Planlægningsstyring på tværs af alle opgaver er "fair", og responstider er forudsigelige, da opgaver med høj prioritet ikke kan støde venteopgaver længere nede i køen.
Scheduler sikrer, at hver opgave får sin 'andel af CPU'en og undgår enhver forsinkelse med enhver opgave. Den 'mængde tid', der er tildelt CPU'en, er nødvendigvis ikke nødvendigvis, da det afhænger af, hvor lang tid opgaven tager at udføre.
Denne planlægningsmodel gør det muligt at afbryde opgaver - i modsætning til ikke-forebyggende planlægning, der har en "run-to-completing" -tilgang.
Afbrydelserne, som kunne initieres fra eksterne opkald, påkalder planlæggeren til at sætte en kørende opgave på pause for at administrere en anden opgave med højere prioritet - så kontrollen af CPU'en kan undgås.
Den højeste prioriterede opgave i en Parat tilstand udføres, hvilket tillader hurtig respons på realtidsbegivenheder.
Nogle af ulemperne med præemptiv planlægning involverer øget omkostning på ressourcer, når der bruges afbrydelser og problemer kan forekomme med to opgaver, der deler data, da en kan blive afbrudt under opdatering af delte datastrukturer, og det kan have negativ indflydelse på dataintegriteten.
På den anden side er det praktisk at være i stand til at sætte en opgave på pause til at styre en anden, der kan være kritisk.
Der kan defineres mange afvigelser og afhængigheder i forskellige politikker, f.eks “Round Robin Policy [i]” hvor hver opgave (med lige høj prioritet) kører én gang og derefter placeres i slutningen af køen til den næste cyklus.
Andre politikker inkluderer Først ind først ud, Kortest-Job-First, Kortest-Job-Næste, Korteste resterende tid, etc.
Analyse af historiske data kan give information om aspekter, som den hastighed, hvorpå nye opgaver ankommer, CPU- og I / O-bursts, så sandsynlighedsfordelinger kan beregne karakteristika for opgavernes ventetider og således bevæge administratorer med relevante data til at definere planlægningsmodeller.