Processorplanning (of CPU-planning) bepaalt welke processen worden toegewezen aan en verwijderd van de CPU op basis van planningsmodellen zoals Preventieve en Niet-preventieve planning (ook gekend als Coöperatieve planning).
Oudere systemen kunnen werken in eenvoudige stand-alone modi, maar met de toenemende behoefte aan responsieve, flexibele systemen, evenals virtualisatie, biedt multi-processing efficiënt beheer een snel antwoord op alle taakverwerkingsverzoeken.
Planningseenheden worden vaak a taak en het is de taak van de planner om deze taken uit te voeren en te beheren wanneer dat nodig is; de Scheduler selecteert de taak die moet worden verwijderd en toegewezen aan de CPU voor verwerking, volgens het gebruikte planningsmodel.
De planner moet een eerlijk en efficiënt selectieproces uitvoeren, rekening houdend met variabele, dynamische verwerkingsverzoeken en optimaal gebruik maken van de CPU-cycli.
Taken kunnen zich tijdens verwerking in twee toestanden bevinden:
Wanneer de CPU inactief is, leest de planner de Klaar wachtrij, en selecteert de volgende taak die moet worden uitgevoerd. Dan is het de dispatcher dat geeft de geselecteerde taakcontrole van de CPU, dus het moet snel zijn! Elke tijd die door de Dispatcher wordt ingenomen, staat bekend als Dispatch Latency.
Er zijn verschillende structuren en aangepaste parameters om het te definiëren Klaar wachtrij, evenals verschillende methoden die kunnen worden gebruikt om de complexiteit van het planningsproces te beheren.
Over het algemeen gaat het om het optimaliseren en maximaliseren van CPU-gebruik, doorvoer, enz.
De planner moet een beslissing nemen tijdens een van de volgende fasen:
Er moet een nieuwe taak worden geselecteerd als fase 1 of 4 plaatsvindt om volledig gebruik van de CPU te garanderen, en in fase 2 en 3 kan de taak worden voortgezet of een nieuwe taak worden geselecteerd.
Nadat we hebben begrepen hoe een taak wordt verwerkt, bekijken we twee planningsmodellen die omgaan met CPU-interrupts.
Beide hebben vergelijkbare functies met taken, taakstatussen, wachtrijen en prioriteiten (statisch of dynamisch):
Taken binnen een niet-preventief systeem zullen worden uitgevoerd totdat ze zijn voltooid.
De planner controleert vervolgens de status van alle taken en plant de taak met de volgende hoogste prioriteit in met een Klaar staat.
Met Non-Preemptive Scheduling kan een taak, wanneer deze eenmaal is toegewezen aan de CPU, niet worden weggenomen, zelfs als korte taken moeten wachten tot langere taken worden voltooid.
Het planningsbeheer voor alle taken is "redelijk" en responstijden zijn voorspelbaar omdat taken met hoge prioriteit geen wachttaken verderop in de wachtrij kunnen stoten..
De Scheduler zorgt ervoor dat elke taak zijn 'deel van de CPU krijgt, waardoor elke vertraging bij elke taak wordt voorkomen. De 'hoeveelheid tijd' die aan de CPU is toegewezen, hoeft niet noodzakelijk gelijk te zijn, omdat deze afhankelijk is van hoe lang het duurt voordat de taak is voltooid.
Met dit planningsmodel kunnen taken worden onderbroken - in tegenstelling tot niet-preventieve planning met een "run-to-completion" -benadering.
De onderbrekingen, die kunnen worden geïnitieerd door externe oproepen, roepen de Scheduler op een lopende taak te pauzeren om een andere taak met hogere prioriteit te beheren - zodat de besturing van de CPU kan worden uitgeschakeld.
De taak met de hoogste prioriteit in a Klaar status wordt uitgevoerd, waardoor een snelle reactie op real-time gebeurtenissen mogelijk is.
Sommige van de nadelen van Preemptive Scheduling zijn onder meer de toename van overheadkosten voor resources bij het gebruik van interrupts en problemen met twee taken voor het delen van gegevens, omdat een persoon kan worden onderbroken tijdens het bijwerken van gedeelde gegevensstructuren en de gegevensintegriteit negatief kan beïnvloeden.
Aan de andere kant is het praktisch om een taak te kunnen pauzeren om een andere taak te beheren die kritiek zou kunnen zijn.
Veel varianties en afhankelijkheden in verschillende beleidsregels kunnen worden gedefinieerd, zoals het gebruik van een "Round Robin-beleid [i]" waarbij elke taak (met dezelfde prioriteit) eenmaal wordt uitgevoerd en vervolgens aan het einde van de wachtrij voor de volgende cyclus wordt geplaatst.
Andere beleidsmaatregelen omvatten Als eerste erin, als eerste eruit, Kortste-Job-First, Kortste-Job-Next, Kortste resterende tijd, enz.
Analyse van historische gegevens kan informatie verschaffen over aspecten, zoals de snelheid waarmee nieuwe taken aankomen, de CPU- en I / O-bursts enz., Zodat kansverdelingen de kenmerken van wachttijden van taken kunnen berekenen, waardoor beheerders met relevante gegevens worden gewirhd om planningsmodellen te definiëren.