Schneider, Michael and Petter, Tobias (2022) Weiterentwicklung Prozessor-Simulator. Other thesis, OST Ostschweizer Fachhochschule.
HS 2021 2022-SA-EP-Schneider-Petter-Prozessor-Simulator.pdf - Supplemental Material
Download (4MB)
Abstract
Einleitung:
Informatikstudenten lernen in den ersten Semestern ihres Studiums im Doppelmodul "Betriebssysteme" unter anderem, wie moderne Prozessoren funktionieren. Dies erfordert ein hohes Mass an abstraktem Denkvermögen und ist deshalb für Studiums-Neulinge oft anspruchsvoll. Um Studenten dabei zu helfen, wurde in der Vergangenheit die Entwicklung eines grafischen Prozessor-Simulators in Auftrag gegeben. Unsere Arbeit hatte zum Ziel, diesen weiterzuentwickeln und um zusätzliche Funktionen zu ergänzen. Wir fokussierten uns dabei hauptsächlich auf mehrere Verbesserungen in der Bedienbarkeit, sodass der Simulator zum Verständnis der Vorlesung und zur Prüfungsvorbereitung eingesetzt werden kann.
Vorgehen:
Unser erster Schritt war ein Erheben der Bedürfnisse der Studenten. Dazu besuchten wir eine Übungsstunde in "Betriebssysteme 1" und befragten die dort anwesenden Studenten nach ihrer Meinung über den Simulator. Die dort geäusserten Vorschläge setzten wir dann gemeinsam mit unseren eigenen Ideen um.
Darunter fielen unter anderem:
1) die Möglichkeit, im Simulator "zurückzuspulen" und beliebig viele Schritte in der Simulation rückwärts zu gehen
2) der Einbau eines Sliders zum Regeln der Animationsgeschwindigkeit
3) zwei neue Farbschemen (Light & Dark Mode) und eine Möglichkeit, zwischen ihnen zu wechseln
4) eine neue, verständlichere Animation für Instruktionen, welche den Instruction Pointer modifizieren (z.B. Jumps, Call, Return)
Ergebnis:
Der Hauptteil der Arbeit bestand aus der Einbindung des sogenannten „Reverse Debugging“, das es Nutzenden ermöglicht, vergangene Simulationsschritte erneut durchzuführen. Dies kommt dem Lerneffekt zugute, da man sich die Ausführung nicht gänzlich klarer Schritte leicht nochmals ansehen kann, ohne alles von vorne starten zu müssen. Wir haben uns dabei für eine gemischte Lösung entschieden: die Felder des GUI werden mittels einer Transaktionsanalyse in jedem Schritt auf Änderungen überprüft (Javascript Proxies) und diese aufgezeichnet. Beim Schritt zurück werden die alten Werte aus dem Speicher wieder eingefügt. Der dahinterliegende Assembly-Emulator hingegen wird bei Bedarf neu aufgebaut und läuft von Anfang des Programms bis zur gewünschten Stelle durch.
Es ist uns gelungen, den Reverse Debugger ohne signifikante Performance- und Speicher-Overheads zu implementieren.
Der Simulator ist unter einer OpenSource-Lizenz veröffentlicht und kann unter http://cpusimulator.pages.gitlab.ost.ch/cpusim-frontend/ verwendet werden.
Item Type: | Thesis (Other) |
---|---|
Subjects: | Topics > Software > Testing and Simulation Area of Application > Web based Area of Application > Academic and Education Area of Application > E-Learning Technologies > Programming Languages > Java Script |
Divisions: | Bachelor of Science FHO in Informatik > Student Research Project |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Richter, Stefan UNSPECIFIED |
Date Deposited: | 20 Apr 2022 08:51 |
Last Modified: | 20 Apr 2022 08:51 |
URI: | https://eprints.ost.ch/id/eprint/1008 |