next up previous contents
Next: Kürzester Auftrag zuerst Up: CPU-Prozess-Scheduling (Prozessablaufplanung) Previous: CPU-Prozess-Scheduling (Prozessablaufplanung)   Contents


First-Come, First-Served (FCFS)

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)
$P_1$ 24
$P_2$ 3
$P_3$ 3


Nehmen wir weiter an, dass die Prozesse in der Reihenfolge $P_1$, $P_2$, $P_3$ in die Schlange eingefügt werden. Dann wartet $P_1$ im rechenbereiten Zustand 0 ms, $P_2$ wartet 24 ms und $P_3$ 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 $P_3$ 0 ms im rechenbereiten Zustand warten, $P_2$ 3 ms und $P_1$ 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.


next up previous contents
Next: Kürzester Auftrag zuerst Up: CPU-Prozess-Scheduling (Prozessablaufplanung) Previous: CPU-Prozess-Scheduling (Prozessablaufplanung)   Contents
Prof. Dr. Pluemicke 2003-05-10