Der einfachste non-preemtive Scheduling-Algorithmus ist der FCFS. Hierbei wird der PCB
(Process Control Block, Abbildung
) des in den rechenbereiten
Zustand überführten Prozesses an
das Ende einer Schlange angehängt. Wenn ein Prozess in den rechnenden Zustand
überführt wird, so wird immer der zu dem Kopf der Schlange gehörende Prozess
ausgewählt und der Kopf der Schlange gelöscht.
Betrachten wir einmal die mittelere Wartezeit von Prozessen im rechenbereiten Zustand, wenn Prozesse mit sehr unterschiedlicher Rechenzeit abgearbeitet werden sollen.
| Prozess | Rechenzeit (in ms) |
| 24 | |
| 3 | |
| 3 |
Nehmen wir weiter an, dass die Prozesse in der Reihenfolge
,
,
in die Schlange eingefügt werden. Dann wartet
im rechenbereiten Zustand 0
ms,
wartet 24 ms und
wartet 27 ms. Der Durchschnitt beträgt also 17
ms. Würden nun die Prozesse in umgekehter Reihenfolge in die Schlange eingefügt
so müsste der Prozess
0 ms im rechenbereiten Zustand warten,
3 ms
und
6 ms. Der Durchschnitt würde dann nur 3 ms betragen.
Es zeigt sich also, dass das Problem bei diesem Algorithmus ist, dass er sehr schlechte Ergebnisse liefert, wenn zunächst sehr lange Prozesse berechnet werden und erst danach kürzere Prozesse zum Zuge kommen. Dieses Problem führt zu einem weiteren Alogotithmus: Kürzester Auftrag zuerst.