Bij niet-preventieve SJF-planning (kortste taak eerst) wordt de CPU toegewezen aan het proces met de kortste CPU-bursttijd van de processen in de gereedstaande wachtrij. Zodra aan een proces de CPU is toegewezen, kan dit niet worden ondermijnd door een ander proces, zelfs als dit laatste een kortere CPU-burst-tijd heeft. Dit betekent dat het proces dat momenteel wordt uitgevoerd, zal blijven draaien totdat het de uitvoering ervan voltooit of om de een of andere reden blokkeert.
Hier is een voorbeeld om niet-preventieve SJF-planning te illustreren:
Beschouw de volgende reeks processen met hun CPU-bursttijden:
Proces 1:Bursttijd =5
Proces 2:Bursttijd =3
Proces 3:Bursttijd =8
Aanvankelijk staan alle drie de processen in de wachtrij. De CPU wordt toegewezen aan proces 2 omdat deze de kortste CPU-bursttijd heeft. Proces 2 wordt uitgevoerd en duurt 3 tijdseenheden. Op tijdstip t =3 voltooit proces 2 de uitvoering en wordt afgesloten.
De gereedstaande wachtrij bevat nu proces 1 en proces 3. Proces 1 heeft een kortere CPU-bursttijd dan proces 3, dus wordt de CPU toegewezen. Proces 1 duurt 5 tijdseenheden en voltooit de uitvoering op tijdstip t =8.
Ten slotte staat alleen proces 3 nog in de gereedwachtrij. Het krijgt de CPU toegewezen en duurt 8 tijdseenheden. Op tijdstip t =16 voltooit proces 3 de uitvoering ervan en wordt de CPU inactief.
Samenvattend is de volgorde waarin de processen in dit voorbeeld worden uitgevoerd:Proces 2, Proces 1 en Proces 3. De totale tijd die nodig is om alle processen te voltooien is 16 tijdseenheden. |