+title: Bericht
Die CSV-Dateien, welche als Inputs verwendet werden findet man im Ordner examples/input. Wenn das Programm nur mit den beiden Argumenten für die CSV-Datei und für den Algorithmus verwendet wird werden die default Werte verwendet. Für die Umschaltzeit ist das 0 und für die Menge an Zeiteinheiten die in Round Robin pro Prozess verwendet wird ist das 3.
Beim ersten Versuch wenden wir den First Come, First Serve Algorithmus auf die Beispiel1.csv Datei an.
cargo run examples/input/Beispiel1.csv 1
Das Ergebnis lässt sich in hier nachlesen.
Beim zweiten Versuch wenden wir den Round Robin Algorithmus auf die Beispiel2.csv Datei an.
cargo run examples/input/Beispiel2.csv 2
Das Ergebnis lässt sich hier nachlesen.
Beim dritten Versuch wenden wir Non-preemptive Shortest Job First Algorithmus auf die Beispiel2.csv Datei an.
cargo run examples/input/Beispiel2.csv 3
Das Ergebnis lässt sich hier nachlesen.
Beim vierten Versuch wenden wir den Preemptive Shortest Job First Algorithmus auf die Beispiel2.csv Datei an.
cargo run examples/input/Beispiel2.csv 4
Das Ergebnis lässt hier hier nachlesen.
Beim fünften Verusch wenden wir den Round Robin Algorithmus an aber setzen die Zeit pro Prozess auf 7 und die Umschaltzeit auf 2. Wieder mit Beispiel2.csv.
cargo run examples/input/Beispiel2.csv 2 7 2
Das Ergebnis lässt sich hier nachlesen.
Beim sechsten Versuch wenden wir den Non-preemptive Shortest Job First Algorithmus auf die Beispiel1.csv Datei mit einer Umschaltzeit von 2 an.
cargo run examples/input/Beispiel1.csv 3 2
Das Ergebnis kann man hier nachlesen.
Beim siebten Versuch wenden wir den Preemptive Shortest Job First Algorithmus auf die Beispiel1.csv Datei mit einer Umschaltzeit von 10 an.
cargo run examples/input/Beispiel1.csv 4 10
Das Ergebnis kann hier nachgelesen werden.
Ein optimales Verfahren für jeden Kontext gibt es nicht. Jedoch kann man durch die Auseinandersetzung mit den Algorithmen, ihrer Simulation und dem Testen mithilfe der Simulation viel darüber lernen worauf es beim Kontext ankommt. Für alle Prozesse insgesammt könnte man beim ersten Eindruck denken, der Algorithmus ist bei gleichbleibender Umschaltzeit irrelevant. Schlielich beginnen die Prozesse zur gleichen Zeit und alle Prozesse sind auch nach gleicher Zeit fertig. Jedoch kann man an den Durchschnitten erkennen, dass die Algorithmen große Unterschiede für die einzelnen Prozesse bedeuten, welche im realen Kontext auch nicht alle gleich wichtig sind. So gibt der Non-Preemptiv Shortest Job First Algorithmus besonders schlechte Durchschnittswerte während die Variante mit Unterbrechung besonders gute Durchschnittswerte gibt. Diese beiden Algorithmen vernachlässigen aber besonders lang dauernde Prozesse. Dieses Problem haben First Come First Serve und Round Robin nicht. Round Robin kann aber sehr viele Unterbrechungen benötigen, was bei einer höheren Umschaltzeit sehr nachteilig ist. First Come First Serve ist dafür sehr gut nachvollziebar und macht das System vorhersehbar. Nach meinem Wissen ändert sich bei aktuellen Betriebssystemen der Scheduling Algorithmus je nach Situation dynamisch. Sogar Rückmeldungen des Prozessors können berücksichtigt werden. Wenn ich mich bei einem primitiven Betriebssystem für einen Algorithmus entscheiden müsste wäre es wahrscheinlich Round Robin, es sei denn die Umschaltzeit kann nicht niedrig genug gehalten werden. Dann wohl First Come First Serve.