Bei der nicht präemptiven SJF-Planung (Shortest Job First) wird die CPU dem Prozess zugewiesen, der unter den Prozessen in der Bereitschaftswarteschlange die kürzeste CPU-Burst-Zeit hat. Sobald einem Prozess die CPU zugewiesen wurde, kann er nicht von einem anderen Prozess vorgezogen werden, selbst wenn dieser eine kürzere CPU-Burst-Zeit hat. Das bedeutet, dass der aktuell laufende Prozess so lange weiterläuft, bis er seine Ausführung abschließt oder aus irgendeinem Grund blockiert.
Hier ist ein Beispiel zur Veranschaulichung der nicht präemptiven SJF-Planung:
Betrachten Sie die folgenden Prozesse mit ihren CPU-Burst-Zeiten:
Prozess 1:Burst-Zeit =5
Prozess 2:Burst-Zeit =3
Prozess 3:Burst-Zeit =8
Zunächst befinden sich alle drei Prozesse in der Bereitschaftswarteschlange. Die CPU wird Prozess 2 zugewiesen, da dieser die kürzeste CPU-Burst-Zeit hat. Prozess 2 beginnt mit der Ausführung und läuft 3 Zeiteinheiten lang. Zum Zeitpunkt t =3 schließt Prozess 2 seine Ausführung ab und wird beendet.
Jetzt enthält die Bereitschaftswarteschlange Prozess 1 und Prozess 3. Prozess 1 hat eine kürzere CPU-Burst-Zeit als Prozess 3, daher wird ihm die CPU zugewiesen. Prozess 1 läuft 5 Zeiteinheiten lang und schließt seine Ausführung zum Zeitpunkt t =8 ab.
Schließlich verbleibt nur noch Prozess 3 in der Bereitschaftswarteschlange. Ihm wird die CPU zugewiesen und er läuft 8 Zeiteinheiten lang. Zum Zeitpunkt t =16 beendet Prozess 3 seine Ausführung und die CPU geht in den Leerlauf.
Zusammenfassend lautet die Reihenfolge, in der die Prozesse in diesem Beispiel ausgeführt werden:Prozess 2, Prozess 1 und Prozess 3. Die Gesamtzeit, die zum Abschließen aller Prozesse benötigt wird, beträgt 16 Zeiteinheiten.