This article discusses the development of forkSim, a tool that can be used to support the teaching of system-level programming within the context of Operating Systems classes, by facilitating the comprehension and analysis of the behavior of C codes representing process-based concurrent programs involving fork system calls. The tool builds on two main components. The first is a C preprocessor, created using language processing techniques. This preprocessor embeds inspectors into the C code before its execution. In runtime, the inspectors extract relevant data from the actions performed and generate a JSON file. The second component is a web application that generates a visual representation of the program flow based on the JSON file. This visualization incorporates elements from BPMN diagrams and draws inspiration from representations used for many years in OS classes. The development of forkSim faced several technical challenges and involved some design decisions, both documented in this paper, along with a discussion of the results achieved.
@InProceedings{farina_et_al:OASIcs.SLATE.2024.6, author = {Farina, Daniel Augusto Rodrigues and Campiolo, Rodrigo and Rufino, Jos\'{e} and Pereira, Maria Jo\~{a}o Varanda}, title = {{Automatic and Dynamic Visualization of Process-Based Concurrent Programs}}, booktitle = {13th Symposium on Languages, Applications and Technologies (SLATE 2024)}, pages = {6:1--6:12}, series = {Open Access Series in Informatics (OASIcs)}, ISBN = {978-3-95977-321-8}, ISSN = {2190-6807}, year = {2024}, volume = {120}, editor = {Rodrigues, M\'{a}rio and Leal, Jos\'{e} Paulo and Portela, Filipe}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2024.6}, URN = {urn:nbn:de:0030-drops-220777}, doi = {10.4230/OASIcs.SLATE.2024.6}, annote = {Keywords: E-Learning Tool, System Programming, Concurrent Programming, Code Instrumentation, Inspector Functions, C, JSON, Konva JS, Canvas, Python, React JS, BPMN} }
Feedback for Dagstuhl Publishing