Skillnaden mellan Preemptive och Non-Preemptive Scheduling i Operativsystem Skillnaden mellan
Processor Schemaläggning (eller CPU Scheduling ) bestämmer vilka processer som tilldelas och tas bort från CPU: n, baserat på schemaläggningsmodeller som Preemptive och Non Förberedande schemaläggning (även känd som Samarbetsplanering ).
Äldre system kan fungera i enkla fristående lägen men med det ökande Behovet av responsiva, flexibla system, såväl som virtualisering, effektiv hantering av multibearbetning ger snabbt svar på alla uppgiftsbehandlingsförfrågningar.
Schemaläggningsenheter kallas ofta en uppgift och det är schemaläggarens jobb att köra och hantera dessa uppgifter när det behövs, Scheduler väljer uppgiften som ska tas bort och tilldelas CPU-enheten för bearbetning, till den schemaläggningsmodell som används.
Hur vet schemaläggaren vilka uppgifter som är prioriterade?
Schemaläggaren behöver driva en rättvis och effektiv urvalsprocess, med hänsyn till variabla, dynamiska bearbetningsförfrågningar och utnyttja CPU-cyklerna mest.
Uppgifter kan vara i två tillstånd medan de bearbetas:
- I en CPU Burst där CPU: n utför beräkningar för att bearbeta uppgiften (perioden för en CPU Burst varierar från uppgift till uppgift, och program för att programmera).
- I en Input / Output (I / O) Burst väntar på att data ska tas emot eller skickas från systemet.
När CPU-enheten är ledig läser schemaläggaren Klar kö och väljer nästa uppgift som ska köras. Då är det Dispatcher som ger den valda uppgiften kontroll av CPU, så det måste vara snabbt! Varje tid som tas upp av Dispatcher är känd som Dispatch Latency .
Det finns olika strukturer och anpassade parametrar för att definiera Klar kö, samt flera metoder som kan användas för att hantera komplexiteten i schemaläggningsprocessen.
Normalt handlar det om att optimera och maximera CPU-utnyttjande, genomströmning etc.
Schemaläggaren måste fatta ett beslut under ett av följande steg:
- När uppgiften ändras från en Running till en väntande stat (till exempel väntar under en I / O-begäran).
- När uppgiften ändras från Kör till Klar (till exempel svara på avbrott).
- När uppgiften ändras från Väntar till Klar (till exempel en I / O-begäran är klar).
- När Uppgift
En ny uppgift måste väljas om steg 1 eller 4 händer för att säkerställa fullt utnyttjande av CPU, och i både steg 2 och 3, kan uppgiften fortsätta springa eller en ny är vald.
Låt oss titta på två schemaläggningsmodeller som behandlar CPU-störningar efter att ha förstått hur en uppgift behandlas.
Båda har liknande funktioner med uppgifter, uppgiftstillstånd, köer och prioriteringar (statisk eller dynamisk):
- Non-Preemptive Scheduling är när en uppgift körs tills den stannar (frivilligt) eller slutar. Windows® hade icke-förebyggande schemaläggning till Windows 3. x, varefter det ändrats till Preemptive från Windows 95.
- Preemptive Scheduling är där en uppgift kan tvingas avbrytas av en CPU-avbrytning, till skillnad från icke-förebyggande Uppgiften körs tills den släpper kontrollen över CPU: n.
Non-Preemptive Scheduling
Uppgifter inom ett icke-förebyggande system kommer att köras tills det är klart.
Schemaläggaren kontrollerar sedan alla arbetsuppgifter och planerar nästa högsta prioritetsuppgift med ett Klar -läge.
Med icke-förebyggande schemaläggning kan en gång en uppgift ha sitt uppdrag till CPU: n, det kan inte tas bort, även om korta uppgifter måste vänta på att längre uppgifter ska slutföras.
Schemaläggningshanteringen över alla uppgifter är "rättvis" och svarstiderna är förutsägbara, eftersom högprioriterade uppgifter inte kan stötta väntande uppgifter längre ner i kön.
Scheduler säkerställer att varje uppgift får sin andel av CPU, vilket förhindrar eventuell fördröjning med någon uppgift. Den tid som tilldelas CPUen kanske inte nödvändigtvis är lika, eftersom det beror på hur lång tid uppgiften tar för att slutföra.
Preemptive Scheduling
Denna schemaläggningsmodell gör det möjligt att avbryta uppgiften - i motsats till icke-förebyggande schemaläggning som har en "run-to-completion" -strategi.
Avbrotten, som kan initieras från externa samtal, åberopar schemaläggaren att pausa en löpande uppgift för att hantera en annan högre prioritetsuppgift - så att kontrollen av CPU-enheten kan föregås.
Den högsta prioriterade uppgiften i ett Klar -tillstånd utförs, vilket möjliggör snabb respons på realtidshändelser.
Några av nackdelarna med Preemptive Scheduling involverar ökning av kostnader för resurser vid användning av avbrott och problem kan uppstå med två uppgifter som delar uppgifter, eftersom man kan avbrytas när man uppdaterar delade datastrukturer och kan påverka dataintegriteten negativt.
Å andra sidan är det praktiskt att kunna pausa en uppgift att hantera en annan som kan vara kritisk.
I sammanfattning
Många avvikelser och beroenden i olika policyer kan definieras, t.ex. användning av en Round Robin Policy [i] " där varje uppgift (med samma prioritet) körs en gång och sedan placeras i slutet av kön, för nästa cykel.
Andra policyer inkluderar Första inledningsvis , Kortaste-jobb-först , Kortaste-jobb-Nästa , Kortaste återstående tid , etc.
Analys av historiska data kan ge information om aspekter, till exempel hur mycket nya uppdrag kommer, CPU- och I / O-bursten etc, så sannolikhetsfördelningar kan beräkna egenskaper av uppgifterna för väntetider och därigenom aktivera administratörer med relevant data för att definiera schemaläggningsmodeller.