Wat is CPU-planning?
CPU-planning is een proces om te bepalen welk proces de CPU zal bezitten voor uitvoering terwijl een ander proces in de wacht staat. De belangrijkste taak van CPU-planning is ervoor te zorgen dat wanneer de CPU inactief blijft, het besturingssysteem ten minste een van de processen selecteert die beschikbaar zijn in de gereedstaande wachtrij voor uitvoering. Het selectieproces wordt uitgevoerd door de CPU-planner. Het selecteert een van de processen in het geheugen die klaar zijn voor uitvoering.
In deze zelfstudie over CPU-planning leert u:
- Wat is CPU-planning?
- Soorten CPU-planning
- Belangrijke CPU-planningsterminologieën
- Criteria voor CPU-planning
- Intervaltimer
- Wat is een dispatcher?
- Typen algoritme voor CPU-planning
- Wie het eerst komt, het eerst maalt
- Kortste resterende tijd
- Op prioriteit gebaseerde planning
- Round-Robin-planning
- Kortste taak eerst
- Wachtrijplanning op meerdere niveaus
- Het doel van een planningsalgoritme
Soorten CPU-planning
Hier zijn twee soorten planningsmethoden:
Preventieve planning
In Preemptive Scheduling worden de taken meestal toegewezen met hun prioriteiten. Soms is het belangrijk om een taak met een hogere prioriteit uit te voeren vóór een andere taak met een lagere prioriteit, zelfs als de taak met een lagere prioriteit nog steeds wordt uitgevoerd. De taak met lagere prioriteit blijft enige tijd bestaan en wordt hervat wanneer de taak met hogere prioriteit de uitvoering ervan heeft voltooid.
Niet-preventieve planning
Bij dit type planningsmethode is de CPU toegewezen aan een specifiek proces. Het proces dat de CPU bezig houdt, zal de CPU vrijgeven door van context te wisselen of te beëindigen. Het is de enige methode die voor verschillende hardwareplatforms kan worden gebruikt. Dat komt omdat het geen speciale hardware nodig heeft (bijvoorbeeld een timer) zoals preventieve planning.
Wanneer planning preventief of niet-preventief is?
Overweeg deze vier parameters om te bepalen of planning preventief of niet-preventief is:
- Een proces schakelt over van de lopende naar de wachttoestand.
- Een specifiek proces schakelt van de actieve status naar de gereedstatus.
- Een specifiek proces schakelt van de wachttoestand naar de gereedstatus.
- Het proces heeft zijn uitvoering voltooid en is beëindigd.
Alleen voorwaarden 1 en 4 zijn van toepassing, de planning wordt niet-preventief genoemd.
Alle andere roosters zijn preventief.
Belangrijke CPU-planningsterminologieën
- Burst-tijd / uitvoeringstijd: het is de tijd die het proces nodig heeft om de uitvoering te voltooien. Het wordt ook wel looptijd genoemd.
- Aankomsttijd: wanneer een proces gereed komt
- Eindtijd: wanneer het proces is voltooid en het systeem verlaat
- Multiprogrammering: Een aantal programma's die tegelijkertijd in het geheugen aanwezig kunnen zijn.
- Jobs: het is een soort programma zonder enige vorm van gebruikersinteractie.
- Gebruiker: het is een soort programma met gebruikersinteractie.
- Proces: het is de referentie die wordt gebruikt voor zowel de taak als de gebruiker.
- CPU / IO burst-cyclus: karakteriseert de procesuitvoering, die wisselt tussen CPU- en I / O-activiteit. CPU-tijden zijn meestal korter dan de tijd van I / O.
Criteria voor CPU-planning
Een CPU-planningsalgoritme probeert het volgende te maximaliseren en te minimaliseren:
Maximaliseren:
CPU-gebruik: CPU-gebruik is de belangrijkste taak waarbij het besturingssysteem ervoor moet zorgen dat de CPU zo druk mogelijk blijft. Het kan variëren van 0 tot 100 procent. Voor de RTOS kan dit echter variëren van 40 procent voor low-level en 90 procent voor het high-level-systeem.
Doorvoer: het aantal processen dat hun uitvoering per tijdseenheid voltooit, is bekend. Doorvoer. Dus wanneer de CPU bezig is met het uitvoeren van het proces, wordt er op dat moment gewerkt, en het werk dat per tijdseenheid is voltooid, wordt Throughput genoemd.
Minimaliseren:
Wachttijd: wachttijd is een hoeveelheid die een specifiek proces in de wachtrij moet wachten.
Reactietijd: het is een hoeveelheid tijd waarin het verzoek is ingediend totdat het eerste antwoord is geproduceerd.
Doorlooptijd: doorlooptijd is een hoeveelheid tijd om een specifiek proces uit te voeren. Het is de berekening van de totale tijd die is besteed aan wachten om in het geheugen te komen, in de wachtrij te wachten en op de CPU uit te voeren. De periode tussen het moment van indienen van het proces en de voltooiingstijd is de doorlooptijd.
Intervaltimer
Timeronderbreking is een methode die nauw verband houdt met voorrang. Wanneer een bepaald proces de CPU-toewijzing krijgt, kan een timer worden ingesteld op een gespecificeerd interval. Zowel timeronderbreking als preemption dwingen een proces om de CPU terug te sturen voordat de CPU-burst is voltooid.
Het meeste van het meervoudig geprogrammeerde besturingssysteem gebruikt een of andere vorm van een timer om te voorkomen dat een proces het systeem voor altijd vasthoudt.
Wat is een dispatcher?
Het is een module die controle geeft over de CPU aan het proces. De Dispatcher moet snel zijn, zodat deze op elke contextschakelaar kan worden uitgevoerd. Dispatch-latentie is de hoeveelheid tijd die de CPU-planner nodig heeft om het ene proces te stoppen en een ander te starten.
Functies uitgevoerd door Dispatcher:
- Context wisselen
- Overschakelen naar gebruikersmodus
- Verplaatsen naar de juiste locatie in het nieuw geladen programma.
Typen algoritme voor CPU-planning
Er zijn hoofdzakelijk zes soorten algoritmen voor procesplanning
- Wie het eerst komt, het eerst maalt (FCFS)
- Shortest-Job-First (SJF) -planning
- Kortste resterende tijd
- Prioriteitsplanning
- Round Robin-planning
- Wachtrijplanning op meerdere niveaus
Wie het eerst komt, het eerst maalt
Wie het eerst komt, het eerst maalt is de volledige vorm van FCFS. Het is het gemakkelijkste en meest eenvoudige algoritme voor CPU-planning. In dit type algoritme krijgt het proces dat de CPU opvraagt eerst de CPU-toewijzing. Deze planningsmethode kan worden beheerd met een FIFO-wachtrij.
Wanneer het proces de gereedstaande wachtrij binnengaat, wordt de PCB (Process Control Block) verbonden met de staart van de wachtrij. Dus wanneer de CPU vrij komt, moet deze aan het begin van de wachtrij aan het proces worden toegewezen.
Kenmerken van de FCFS-methode:
- Het biedt niet-preventieve en preventieve planningsalgoritmen.
- Jobs worden altijd uitgevoerd op basis van wie het eerst komt, het eerst maalt
- Het is gemakkelijk te implementeren en te gebruiken.
- Deze methode presteert echter slecht en de algemene wachttijd is vrij hoog.
Kortste resterende tijd
De volledige vorm van SRT is de kortste resterende tijd. Het is ook bekend als preventieve planning van SJF. Bij deze methode wordt het proces toegewezen aan de taak die het dichtst bij de voltooiing is. Deze methode voorkomt dat een nieuwer gereedstatusproces de voltooiing van een ouder proces tegenhoudt.
Kenmerken van SRT-planningsmethode:
- Deze methode wordt meestal toegepast in batchomgevingen waar korte opdrachten de voorkeur moeten krijgen.
- Dit is geen ideale methode om het te implementeren in een gedeeld systeem waarvan de vereiste CPU-tijd onbekend is.
- Koppel aan elk proces als de lengte van de volgende CPU-burst. Zodat dat besturingssysteem deze lengtes gebruikt, wat helpt om het proces met de kortst mogelijke tijd te plannen.
Op prioriteit gebaseerde planning
Prioriteitsplanning is een methode om processen te plannen op basis van prioriteit. Bij deze methode selecteert de planner de taken die volgens de prioriteit moeten worden uitgevoerd.
Prioriteitsplanning helpt OS ook om prioriteitstoewijzingen te betrekken. De processen met hogere prioriteit moeten eerst worden uitgevoerd, terwijl taken met dezelfde prioriteit op round-robin- of FCFS-basis worden uitgevoerd. De prioriteit kan worden bepaald op basis van geheugenvereisten, tijdvereisten, enz.
Round-Robin-planning
Round robin is het oudste, eenvoudigste planningsalgoritme. De naam van dit algoritme komt van het round-robin-principe, waarbij elke persoon op zijn beurt een gelijk deel van iets krijgt. Het wordt meestal gebruikt voor het plannen van algoritmen bij multitasking. Deze algoritmemethode helpt bij het uithongeren van processen.
Kenmerken van Round-Robin-planning
- Round Robin is een hybride model dat klokgestuurd is
- Het tijdsblok moet minimaal zijn, dat is toegewezen aan een specifieke taak die moet worden verwerkt. Het kan echter variëren voor verschillende processen.
- Het is een real-time systeem dat binnen een bepaalde tijdslimiet op de gebeurtenis reageert.
Kortste taak eerst
SJF is een volledige vorm van (Kortste taak eerst) is een planningsalgoritme waarin het proces met de kortste uitvoeringstijd moet worden geselecteerd voor uitvoering als volgende. Deze planningsmethode kan preventief of niet-preventief zijn. Het vermindert de gemiddelde wachttijd voor andere processen die wachten op uitvoering aanzienlijk.
Kenmerken van SJF Scheduling
- Het wordt aan elke taak gekoppeld als een te voltooien tijdseenheid.
- Bij deze methode wordt, wanneer de CPU beschikbaar is, het volgende proces of de volgende taak met de kortste voltooiingstijd als eerste uitgevoerd.
- Het wordt geïmplementeerd met niet-preventief beleid.
- Deze algoritmemethode is handig voor verwerking van het batchtype, waarbij wachten tot taken zijn voltooid niet kritisch is.
- Het verbetert de job output door kortere jobs aan te bieden, die eerst uitgevoerd moeten worden, die meestal een kortere doorlooptijd hebben.
Wachtrijplanning op meerdere niveaus
Dit algoritme verdeelt de gereedstaande wachtrij in verschillende afzonderlijke wachtrijen. Bij deze methode worden processen toegewezen aan een wachtrij op basis van een specifieke eigenschap van het proces, zoals de prioriteit van het proces, de grootte van het geheugen, enz.
Dit is echter geen onafhankelijk OS-algoritme voor planning, aangezien het andere soorten algoritmen moet gebruiken om de taken te plannen.
Kenmerkend voor het plannen van wachtrijen op meerdere niveaus:
- Er moeten meerdere wachtrijen worden aangehouden voor processen met enkele kenmerken.
- Elke wachtrij kan zijn eigen planningsalgoritmen hebben.
- Per wachtrij worden prioriteiten gegeven.
Het doel van een planningsalgoritme
Hier zijn de redenen om een planningsalgoritme te gebruiken:
- De CPU gebruikt planning om de efficiëntie te verbeteren.
- Het helpt u middelen toe te wijzen aan concurrerende processen.
- Het maximale gebruik van de CPU kan worden bereikt met meervoudig programmeren.
- De processen die moeten worden uitgevoerd, staan in de wachtrij.
Overzicht:
- CPU-planning is een proces om te bepalen welk proces de CPU zal hebben voor uitvoering terwijl een ander proces in de wacht staat.
- In Preemptive Scheduling worden de taken meestal toegewezen met hun prioriteiten.
- Bij de niet-preventieve planningsmethode is de CPU toegewezen aan een specifiek proces.
- Burst-tijd is een tijd die nodig is om het proces te laten voltooien. Het wordt ook wel looptijd genoemd.
- CPU-gebruik is de belangrijkste taak waarbij het besturingssysteem ervoor moet zorgen dat de CPU zo bezet mogelijk blijft
- Het aantal processen dat hun uitvoering per tijdseenheid voltooit, is de bekende doorvoer.
- Wachttijd is een hoeveelheid die een specifiek proces nodig heeft om in de wachtrij te wachten.
- Het is een hoeveelheid tijd waarin het verzoek is ingediend totdat het eerste antwoord is geproduceerd.
- Doorlooptijd is een hoeveelheid tijd om een specifiek proces uit te voeren.
- Timeronderbreking is een methode die nauw verband houdt met voorrang,
- Een dispatcher is een module die controle geeft over de CPU aan het proces.
- Zes soorten algoritmen voor procesplanning zijn:
- First Come First Serve (FCFS), 2) Shortest-Job-First (SJF) -planning 3) Kortste resterende tijd 4) Prioriteitsplanning 5) Round Robin-planning 6) Multilevel wachtrijplanning
- Bij de First Come First Serve-methode krijgt het proces dat de CPU vraagt eerst de CPU-toewijzing.
- In de kortste resterende tijd wordt het proces toegewezen aan de taak die het dichtst bij de voltooiing is.
- In Prioriteitsplanning selecteert de planner de taken die volgens de prioriteit moeten worden uitgevoerd.
- In, deze Round Robin-planning werkt in principe, waarbij elke persoon op zijn beurt een gelijk deel van iets krijgt
- In Kortste taak eerst moet de kortste uitvoeringstijd worden geselecteerd om vervolgens te worden uitgevoerd
- Bij Multilevel-planning scheidt de methode de gereedstaande wachtrij in verschillende afzonderlijke wachtrijen. Bij deze methode worden processen toegewezen aan een wachtrij op basis van een specifieke eigenschap
- De CPU gebruikt planning om de efficiëntie te verbeteren.