Bij niet-preventieve planning kan een proces, zodra het wordt uitgevoerd, niet door een ander proces worden ondermijnd voordat het de uitvoering voltooit of de CPU vrijwillig vrijgeeft.
Hier ziet u hoe niet-preventieve algoritmen werken:
1. Processelectie:
- De planner selecteert het volgende proces dat moet worden uitgevoerd op basis van planningsbeleid zoals First-Come First-Served (FCFS), Shortest Job First (SJF) of een ander planningsalgoritme.
2. Niet-onderbreekbare uitvoering:
- Zodra een proces wordt uitgevoerd, kan het niet worden onderbroken door een ander proces. Dit betekent dat het geselecteerde proces zal doorgaan met uitvoeren totdat het de uitvoering ervan voltooit of vrijwillig de CPU opgeeft (bijvoorbeeld door een I/O-bewerking uit te voeren).
3. Geen voorkooprecht:
- Terwijl het huidige proces wordt uitgevoerd, kan geen enkel ander proces de CPU ervan wegnemen. Dit zorgt ervoor dat processen worden voltooid zonder te worden onderbroken door processen met een hogere prioriteit.
4. Voltooiing:
- Het proces gaat door met het uitvoeren van zijn instructies totdat het de uitvoering ervan voltooit of een staat bereikt waarin het wordt geblokkeerd (wachtend op I/O of een bepaalde bron). Zodra het proces is voltooid, is de CPU beschikbaar voor het plannen van het volgende proces.
Niet-preventieve planningsalgoritmen zijn eenvoudiger te implementeren dan preventieve planningsalgoritmen, omdat er geen noodzaak is voor frequente contextwisselingen. Ze kunnen echter leiden tot een lagere systeemefficiëntie en suboptimale prestaties, omdat processen met een hogere prioriteit mogelijk moeten wachten totdat processen met een lagere prioriteit hun uitvoering hebben voltooid.
Voorbeelden van niet-preventieve planningsalgoritmen zijn onder meer:
- Wie het eerst komt, het eerst maalt (FCFS): Processen worden uitgevoerd in de volgorde waarin ze binnenkomen, zonder rekening te houden met hun prioriteit of resourcevereisten.
- Kortste baan eerst (SJF) zonder voorrang: Dit algoritme selecteert het proces met de kortste geschatte uitvoeringstijd voor de volgende uitvoering. Zodra het proces echter begint te worden uitgevoerd, kan dit niet worden ondermijnd door een ander proces, zelfs als dit laatste later arriveert met een kortere geschatte uitvoeringstijd. |