In this paper we describe the design and implementation of libcppsim, a general-purpose, process-oriented simulation library written in C++. libcppsim provides a set of classes for implementing simulation processes, scheduling primitives, random variate generation and output data analysis functions. The main simulation entity provided by the library is the simulation process; the basic process scheduling primitives are modeled upon those provided by S IMULA's simulation class. The modular object-oriented design of libcppsim allows users to extend its functionalities with minimal effort. In order to improve efficiency, simulation processes are not implemented as operating system threads; instead, we use coroutine objects which implements a cooperative quasi-parallel process environment. A portable implementation of coroutines is provided in order to allow libcppsim to be used on different platforms.
M. Marzolla (2004). libcppsim: a Simula-like, Portable Process-Oriented simulation library in C++. s.l : SCS.
libcppsim: a Simula-like, Portable Process-Oriented simulation library in C++
MARZOLLA, MORENO
2004
Abstract
In this paper we describe the design and implementation of libcppsim, a general-purpose, process-oriented simulation library written in C++. libcppsim provides a set of classes for implementing simulation processes, scheduling primitives, random variate generation and output data analysis functions. The main simulation entity provided by the library is the simulation process; the basic process scheduling primitives are modeled upon those provided by S IMULA's simulation class. The modular object-oriented design of libcppsim allows users to extend its functionalities with minimal effort. In order to improve efficiency, simulation processes are not implemented as operating system threads; instead, we use coroutine objects which implements a cooperative quasi-parallel process environment. A portable implementation of coroutines is provided in order to allow libcppsim to be used on different platforms.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.