Zur Installation gibt es zwei Möglichkeiten. Entweder klont man das Repository und führt das Programm mit Cargo aus oder man lädt die Binary Datei herunter und legt sie entweder in ein Verzeichnis, das der Shell als Verzeichnis für Executables bekannt ist oder man gibt zur Ausführung den Pfad der Binärdatei an.
- Git
- Cargo
Git ist wahrscheinlich bereits auf Ihrem System installiert. Cargo wird meistens in Rust mitgeliefert. Rust kann über den Packetmanager Ihrer Unix-Distribution installiert werden oder über rustup.rs.
Folgende Anweisungen sind möglicherweise Unix-spezifisch. Stelle sicher, dass Git und Cargo installiert sind.
git --version
cargo --version
Anschließend klonen Sie die Repository in eines von Ihnen bevorzugten Verzeichnissen.
git clone https://github.com/malikwirin/prozessverwaltung.git
Aktuell nur für 64 Bit Linux. Ansonsten keine Dependencies.
Laden Sie die Binary mithilfe eines Webrowsers auf der Releasepage herunter. Legen Sie die Binary in das gewünschte Verzeichnis und machen es falls notwendig ausführbar.
Die Verwendung findet im Terminal statt. Zur Vorbereitung müssen die Prozesse in eine CSV Datei geschrieben werden analog zu diesem Beispiel. An dem Ort, wo das Programm ausgeführt wird, wird ein Verzeichnis mit dem Namen output erstellt falls noch nicht vorhanden. Dort wird eine Org-Datei abgelegt, die einen Überblick über die Simulation gibt.
Zur Aufrufung des Programms gibt es drei Möglichkeiten je nach Installation. Entweder befindet man sich im Verzeichnis des Cargo Projekts so ruft man das Programm folgendermaßen auf:
cargo run #weitere Argumente
Falls sich die Binary im Pfad der Shell befindet:
prozessverwaltung #weitere Argumente
Ansonsten so:
/Pfad/zur/Binary/prozessverwaltung #weitere Argumente
Das erste Argument ist der Pfad zur CSV-Datei. In dieser Datei werden die Prozesse mit Namen, ID, Ankunftszeit und Bearbeitungszeit beschrieben. Beispieldateien befinden sich in examples/input. Ohne einen Verweis auf eine CSV Datei wird das Programm nicht ausgeführt.
Das zweite Argument ist der Scheduling-Algorithmus. Ohne das Setzen eines Algorithmus wird das Programm nicht ausgeführt. Mehrere Ausdrücke können für das Bestimmen des Algorithmus benutzt werden. Eine einfache Lösung sind die Zahlen 1 bis 4. 1 für First Come First Serve; 2 für Round Robin; 3 für Non-preemptive Shortest Job First; 4 für Preemptive Shortest Job First
Weitere Argumente sind optional weil diese Werte setzen für die es Defaults gibt.
Mit dem dritten Argument setzt man die Umschaltzeit, also die Menge an Zeiteinheiten, die vergehen wenn der Prozess gewechselt wird, außer für den Round Robin Algorithmus. Der default Wert ist 0. Für Round Robin (RR) setzt man mit dem dritten Argument die Menge an Zeiteinheiten die ein Prozess auf einmal mximal bearbeitet wird. Der Default ist 3. Die Umschaltzeit wird mit dem vierten Argument gesetzt.
Folgendermaßen können Verwendungen im Terminal aussehen:
In diesem Fall wird Round Robin ausgeführt mit einer Umschaltzeit von von 2 Zeiteinheiten:
cargo run examples/input/Beispiel1.csv 1 2
Die Ergebnisse können in einer Org-Datei im Verzeichniss output angesehen werden. Diese Datei trägt das Datum und die Uhrzeit zum Zeitpunkt der Simulation. Zur Betrachtung von Org-Dateien empfehle ich GNU Emacs.
Einen Vergleich zwischen verscheidenen Herangehensweisen finden Sie hier.