Process-oriented Simulation with Stackless Coroutines
Prozessorientierte Simulationen stellen simultane Aktivitäten meist mit Koroutinen dar – Funktionen, die ihre Ausführung pausieren und später fortsetzen können. Traditionell nutzen Simulationsframeworks stackbasierte Koroutinen, die den Aufrufkontext explizit sichern und dazu Betriebssystemunterstützung oder Assemblercode benötigen. Neuere Systemprogrammiersprachen fördern stacklose Koroutinen, die unabhängig vom Betriebssystem funktionieren; zugleich wurden stackbasierte Schnittstellen aus POSIX entfernt. Dennoch setzen bestehende Frameworks überwiegend auf stackbasierte Ansätze; Literatur zu stacklosen Koroutinen in der Simulation ist rar. Diese Arbeit untersucht, ob sich stacklose Koroutinen für prozessorientierte Simulatoren eignen, analysiert die Kompromisse und erforscht das Potenzial statischer Codeanalyse für die Korrektheit von Simulationsmodellen. Dazu wurde in Rust ein Simulatorkern auf Basis stackloser Koroutinen entwickelt und zu einer Simulationsbibliothek erweitert. Speichersicherheit und Wohldefiniertheit von Rust sowie formale operationale Semantik dienten dem Korrektheitsnachweis; Simulationsszenarien und eine Fallstudie evaluieren Ausdrucksstärke und Leistung. Stacklose Koroutinen eignen sich für die Simulationsmodellierung und verbessern die Portabilität erheblich, da sie weder Betriebssystemaufrufe noch nicht-portablen Assembler erfordern. Das weniger effiziente Umschalten des Ausführungskontextes verschlechtert zwar die Laufzeit, wird aber durch Compileroptimierungen kompensiert. Zudem erlaubt Rusts statische Codeanalyse, bestimmte Fehlerarten in Simulationsmodellen bereits zur Übersetzungszeit zu erkennen. Stacklose Koroutinen sind damit eine praktikable und vollständige Alternative zu stackbasierten in der Simulation. Prozessorientierte Simulationen können nun ohne Betriebssystemunterstützung laufen und auf Plattformen wie Webbrowser ausgeweitet werden, was Anwendungsbereich und Zugänglichkeit erheblich vergrößert.
Authors
- Dorian Weber
Publication Details
- Journal
- edoc Publication server (Humboldt University of Berlin)
- Published
- 2026-09-09
- DOI
- https://doi.org/10.18452/38722
- Primary Topic
- Simulation Techniques and Applications
- Type
- article
- Field-Weighted Citation Impact
- 0.00