A System for Modelling and Visualizing Processor State During Code Execution
The main purpose of application is to simulate processor's behaviour during execution of some code. The user has a database of processors which he can modify by adding new processors or changing properties of existing ones. It means that the user can fill a database with either real-world units...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Tagungsbericht |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | The main purpose of application is to simulate processor's behaviour during execution of some code. The user has a database of processors which he can modify by adding new processors or changing properties of existing ones. It means that the user can fill a database with either real-world units and examine their behaviour or try experimenting with properties in order to achieve different results not presented in any existing instances. Processors are defined as elements they are built from and elements' properties such as their count, bit depth, capacity and etc. Such definition can be quite accurate and mostly depends on how accurately processor's elements are described. However, not all aspects can be covered with such approach. For instance, there exists an algorithm which sole purpose is to balance requests between processor elements but the algorithm itself is quite tricky and is difficult to find, so it is not emulated in this app. The user chooses one of processors from database and inputs machine command sequence. The application runs each command one after another and simulates processor's behaviour according to current command: sets or clears bits, writes to or reads from registers, uses certain elements for computations and etc. All the activity is visualized at runtime which can be used for educational purposes in order to deeply understand what is going on when a curtain command or piece of code is executed. It may be crucial for those who are into assembler both getting started and having some experience as seeing how exactly commands effect current state of machine and what values they change not only helps to understand more thoroughly how assembler works but also makes it easier to debug code as it can be dreadful to do without visual assistance and scare beginners away. This also might be helpful for those who study system-level programming to visualize and have better understanding of how things like memory and processes management and inter-process communication work. Main elements of processor are displayed during visualization, as well as all data flow, values stored in registers and changes caused by current command execution. Moreover, statistics can be gathered and accessed at any time during or after execution. Statistics can be used either for profiling (understanding which elements are frequently used and which are not, balancing load between them) or for registering frequent command sequence patterns (can be useful in productio |
---|---|
ISSN: | 2066-026X 2066-8821 |
DOI: | 10.12753/2066-026x-19-058 |