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

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
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
article

Process-oriented Simulation with Stackless Coroutines

Dorian Weber
edoc Publication server (Humboldt University of Berlin)
Simulation Techniques and Applications
article

Process-oriented Simulation with Stackless Coroutines

Dorian Weber
article en

Abstract

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.

edoc Publication server (Humboldt University of Berlin)
Openalex Percentile: Top 6%
Simulation Techniques and Applications
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.