Procesverzending is het onderdeel van de taakplanner van een besturingssysteem dat een proces uit de gereedstaande wachtrij selecteert om door de CPU te worden uitgevoerd. Het is het mechanisme dat bepaalt welk proces als volgende wordt uitgevoerd, en wanneer. Deze beslissing is cruciaal voor de systeemprestaties en het reactievermogen.
De rol van de coördinator is:
* Selecteer een proces: Uit de verzameling processen die klaar zijn om te worden uitgevoerd.
* Contextwisseling: Bewaar de status van het momenteel lopende proces (registers, geheugenaanwijzers, enz.) en laad de status van het geselecteerde proces. Hierdoor kan de CPU naadloos schakelen tussen processen.
* Uitvoering starten: Begin met de uitvoering van het geselecteerde proces.
Het algoritme dat wordt gebruikt voor het selecteren van het volgende proces (het verzendalgoritme) heeft een aanzienlijke invloed op de algehele systeemprestaties. Verschillende algoritmen geven prioriteit aan verschillende aspecten, zoals:
* Doorlooptijd: De totale tijd die een proces in het systeem doorbrengt (van indiening tot voltooiing).
* Wachttijd: De tijd die een proces in de wachtrij wacht.
* Responstijd: De tijd die nodig is voordat een proces begint te reageren op gebruikersinvoer.
* Doorvoer: Het aantal voltooide processen per tijdseenheid.
Veel voorkomende verzendalgoritmen zijn onder meer:
* Wie het eerst komt, het eerst maalt (FCFS): Processen worden uitgevoerd in de volgorde waarin ze binnenkomen. Eenvoudig maar kan tot lange wachttijden leiden.
* Kortste baan eerst (SJF): Het proces met de kortste geschatte uitvoeringstijd wordt vervolgens uitgevoerd. Minimaliseert de gemiddelde wachttijd, maar vereist wel dat u vooraf de uitvoeringstijd kent.
* Prioriteitsplanning: Processen krijgen prioriteiten toegewezen en het proces met de hoogste prioriteit wordt vervolgens uitgevoerd. Kan leiden tot uithongering voor processen met een lage prioriteit.
* Round Robin: Elk proces krijgt een klein tijdsdeel (kwantum) om uit te voeren voordat het wordt voorrang gegeven en naar de achterkant van de gereedstaande wachtrij wordt verplaatst. Biedt eerlijkheid, maar de kwantumgrootte beïnvloedt de prestaties.
* Wachtrijplanning op meerdere niveaus: Processen worden onderverdeeld in wachtrijen op basis van eigenschappen (bijvoorbeeld interactief versus batch). Elke wachtrij heeft zijn eigen planningsalgoritme.
* Planning van feedbackwachtrijen op meerdere niveaus: Vergelijkbaar met een wachtrij met meerdere niveaus, maar maakt het mogelijk dat processen tussen wachtrijen bewegen op basis van hun gedrag (een proces dat zijn tijdsegment opgebruikt kan bijvoorbeeld naar een wachtrij met een lagere prioriteit worden verplaatst).
In wezen is procesverzending de cruciale schakel tussen de gereedstaande processen en de CPU, waardoor wordt verzekerd dat de CPU efficiënt en eerlijk wordt gebruikt. De keuze van het algoritme heeft rechtstreeks invloed op de algehele responsiviteit en efficiëntie van het besturingssysteem. |