summaryrefslogtreecommitdiff
path: root/simulator/opendc-utils/src/test
AgeCommit message (Collapse)Author
2021-04-21simulator: Migrate to SimulationCoroutineDispatcherFabian Mastenbroek
This change migrates the remainder of the codebase to the SimulationCoroutineDispatcher implementation.
2021-04-21simulator: Introduce SimulationCoroutineDispatcherFabian Mastenbroek
This change introduces the SimulationCoroutineDispatcher implementation which replaces the TestCoroutineDispatcher for running single-threaded simulations. Previously, we used the TestCoroutineDispatcher from the kotlinx-coroutines-test modules for running simulations. However, this module is aimed at coroutine tests and not at simulations. In particular, having to construct a Clock object each time for the TestCoroutineDispatcher caused a lot of unnecessary lines. With the new approach, the SimulationCoroutineDispatcher automatically exposes a usable Clock object. In addition to ergonomic benefits, the SimulationCoroutineDispatcher is much faster than the TestCoroutineDispatcher due to the assumption that simulations run in only a single thread. As a result, the dispatcher does not need to perform synchronization and can use the fast PriorityQueue implementation.
2021-03-17simulator: Make hypervisors generic for the resource typeFabian Mastenbroek
This change moves the hypervisor implementations to the opendc-simulator-resources module and makes them generic to the resource type that is being used (e.g., CPU, disk or networking).
2021-01-11Convert to pull-based workload modelFabian Mastenbroek
This change converts the low-level workload model to be pull-based. This reduces the overhead that we experienced with our previous co-routine based approach.