Weiterentwicklung Prozessor-Simulator (Folgearbeit)

Schneider, Michael and Petter, Tobias (2022) Weiterentwicklung Prozessor-Simulator (Folgearbeit). Other thesis, OST Ostschweizer Fachhochschule.

[thumbnail of FS 2022-BA-EP-Petter-Schneider-Weiterentwicklung Prozessor-Simulator.pdf] Text
FS 2022-BA-EP-Petter-Schneider-Weiterentwicklung Prozessor-Simulator.pdf - Supplemental Material

Download (6MB)

Abstract

EINLEITUNG
Die Funktionsweise von modernen Prozessoren wird im Informatik-Studium an der OST im Rahmen des zweiteiligen Moduls "Betriebssysteme" unterrichtet. Besonders die Kapitel über Assembly und Prozessoren sind komplex und erfordern ein hohes Mass an abstraktem Denkvermögen. Um ein besseres Verständnis bei den Studenten zu fördern, gab das INS 2020 die Entwicklung eines grafischen Prozessor-Simulators in Auftrag. Mithilfe dessen soll das Nachverfolgen der Arbeitsschritte eines Prozessors leichter möglich sein. Im Zuge unserer Studienarbeit im Herbstsemester 2021 entwickelten wir diesen Simulator weiter und ergänzten ihn um weitere Funktionalität.
Das Ziel der vorliegenden Arbeit war, diese Weiterentwicklung abermals fortzuführen. Wir konzentrierten uns dabei auf Verbesserungen der von uns in der Studienarbeit eingefügten Code-Anzeige, um es Nutzern zu erlauben, mit ihrem Code zu interagieren. Der Simulator soll so künftigen Generationen von Studenten noch besser beim Verständnis dieses grundlegenden Stoffes helfen.
 
VORGEHEN
Der Hauptteil unserer Arbeit bestand darin, das Setzen von bedingten Breakpoints sowie Watchpoints zu ermöglichen. Wir verwendeten dazu einen Expression Parser, um vom Nutzer eingegebene Bedingungen auf ihr Zutreffen zu überprüfen und das Programm gegebenenfalls anzuhalten. Watchpoints funktionieren ähnlich, werden aber nach jedem Schritt automatisch überprüft. Um diese Features einbauen zu können, mussten wir zuerst eine Verbindung zwischen den Instruktions-Bytes im Speicher und den im Frontend angezeigten Textzeilen herstellen. Nachdem wir Zeilen, welche nicht auf Instruktionen mappen, aus dem Text im Frontend herausgefiltert hatten, konnten wir unter Verwendung des Disassemblers eine solche Korrelation mit den Daten im Speicher herstellen.
 
ERGEBNIS
Es ist uns gelungen, die anfangs stark eingeschränkte Code-Anzeige so auszubauen, dass der Nutzer damit die vollständige Kontrolle über die Ausführung des Programms hat. Es ist möglich, den Simulator schrittweise oder kontinuierlich vorwärts oder rückwärts laufen zu lassen. Bedingte und unbedingte Breakpoints sowie Watchpoints können gesetzt werden und halten die Ausführung des Programms gegebenenfalls an.
Es ist ausserdem möglich, auf spezifische Codezeilen zu klicken, um den Zustand des Simulators bis zu dieser Zeile vor- oder zurückzuspulen.
Weiterhin konnten wir mehrere Verbesserungen beim Informationsgehalt angezeigter Daten einbauen. Wie in einem konventionellen Debugger wird die aktuell ausgeführte Codezeile farblich hervorgehoben. Ausserdem sind die einzelnen, kodierten Instruktionen im Speicher jetzt farblich unterschiedlich gekennzeichnet.
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
Technologies > Programming Languages > TypeScript
Divisions: Bachelor of Science FHO in Informatik > Bachelor Thesis
Depositing User: OST Deposit User
Contributors:
Contribution
Name
Email
Thesis advisor
Richter, Stefan
UNSPECIFIED
Date Deposited: 19 Sep 2022 07:36
Last Modified: 19 Sep 2022 07:36
URI: https://eprints.ost.ch/id/eprint/1038

Actions (login required)

View Item
View Item