Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Tyreek07 authored Dec 20, 2021
1 parent 47e092f commit 0797331
Show file tree
Hide file tree
Showing 4 changed files with 430 additions and 0 deletions.
Binary file added BuddySimulator Dokumentation V4.pdf
Binary file not shown.
61 changes: 61 additions & 0 deletions BuddySimulator.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/bin/bash

#Dies ist die Hauptquelle
#BuddySimulator v0.7B by Tarek Sabbagh and Thatree Ludwig
#IMPORTANT: Bash v4.0+ is required as associative arrays are part of the source

source ./Library.bash #Externe Funktionsbibliothek

echo -e "\n${bold}Willkommen zum BuddySimulator v0.7B"
echo -en "\n${bold}Wie groß soll der Hauptspeicher sein?\n${blue}Bitte nur in Zweierpotenzen: ${normal}" # "-n" verhindert eine Newline, also ein Zeichenumbruch, "-e" erkennt die Backshlashkommandos "\n" - newline, "\t"- tabulator.
read "memory" #Eingabe der Hauptspeicherkapazität

attempt=3 #Insgesamt 4 Versuche um eine Zweierpotenz einzugeben

memoryCheck "$memory" #Prüft, ob die Eingabe eine Zweierpotenz ist
addBuddyList 1 "$memory" #Fügt den 1. Buddy in einen Array - "0-001-'memory'"
echo -e "\n${bold}Der Hauptspeicher besitzt nun ${underline}${memory}MB${normal}"
#HINWEIS: Die Variable "memory" bleibt IMMER den Gesamtspeicher

#Hauptmenü-Schleife
echo -e "\n${bold}Hauptmenü${normal}"
PS3=$'\n'"Bitte Auswählen: " #Dieser String erscheint immer, wenn ein Selectmenu aufgerufen wird
select auswahl in "Prozess starten" "Prozess beenden" "Informationen anzeigen" "Simulator beenden" #Hier wird die Hauptmenü-Schleife aktiviert. Wird diese Schleife beendet, endet das Programm
do
case "$auswahl" in #Case-Funktion um zwischen den Möglichkeiten zu differenzieren
"Prozess starten" ) #Wenn ein Prozess gestartet werden soll
echo -n "${bold}Prozessgröße angeben:${normal} "
read "processSize" #Größe des zu aktivierenden Prozesses wird angefragt. HINWEIS: Die Variable "processSize" ist wichtig
processSizeCheck $processSize #Prüft ob die Eingabe ein Integer ist
if [[ $error != "noinput" ]]; then #Wenn der Teststring "error"(in Library) nicht den String "noinput" als Element besitzt, wird der Prozess gestartet bzw. einem passenden Buddy zugeteilt.
assignProcess "$processSize" #Hier wird der Prozess gestartet bzw. einem passenden Buddy zugeteilt
getBuddyList #Die Werte von der buddyList wird ausgegeben - Alle Speicherbuddies werden angezeigt
getActiveList #Werte von activeList wird ausgegeben - Alle Prozesse und aktive Buddies werden angezeit
getError #Es sind eventuell Errors ausgegeben, die dann ausgegeben werden, zb. Wenn der Speicher zu voll ist
fi
error="" #Der Teststring "error" wird zurückgesetzt
getmenu ;; #Gibt das Menu aus für die nächste Select-Schleife
"Prozess beenden" ) #Wenn Prozesse beendet werden soll
getProcessList #Startet neue Select (1 Prozess beenden) (alle Prozesse beenden) (Zurück)
if [[ $error != "noinput" ]]; then #Wenn kein Error ist, dann wird ein Prozess beendet
terminateProcess $processID #Terminiert den Prozess und schaut ob Buddies vereint werden können
getBuddyList #Siehe Z. 31 - 36
getActiveList
getError
fi
error=""
getmenu ;; #Gibt das Menu aus für die nächste Select-Schleife
"Informationen anzeigen" ) #Diverse Informationen werden ausgegeben (Gesamtspeicher) (Freier Speicher) (belegter Speicher) (Wie viele Buddies)
getBuddyList #Z.31
getActiveList #Z.32
echo -e "${bold}\nGesamtspeicher: ${blue}${memory}MB${normal}"
getInfo #Holt diverse Infos
getmenu ;; #Z.36
"Simulator beenden" ) #Das Programm wird beendet
echo -e "\n${bold}${blue}Auf Wiedersehen!${normal}\n"
exit 1 ;; #terminiert das Programm
* ) #Bei nicht-vorgegebenen Antworten
echo -e "${bold}${red}Fehler - Ungültige Eingabe erkannt\nBitte Wiederholen:${normal}"
getmenu ;; #Gibt das Menu aus für die nächste Select-Schleife
esac
done
20 changes: 20 additions & 0 deletions Color.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash
#Vordergrund
bold=`echo -en "\e[1m"` #Fettgedruckt
underline=`echo -en "\e[4m"` #unterstreichen
normal=`echo -en "\e[0m"` #Nach Jeden Befehl wieder zurücksetzen
black=`echo -en "\e[30m"`
red=`echo -en "\e[31m"`
green=`echo -en "\e[32m"`
blue=`echo -en "\e[34m"`
white=`echo -en "\e[97m"`
lightred=`echo -en "\e[91m"`

#Hintergrund
BLACK=`echo -en "\e[40m"`
RED=`echo -en "\e[41m"`
GREEN=`echo -en "\e[42m"`
ORANGE=`echo -en "\e[43m"`
BLUE=`echo -en "\e[44m"`
WHITE=`echo -en "\e[107m"`
DEFAULT=`echo -en "\e[49m"`
Loading

0 comments on commit 0797331

Please sign in to comment.