diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2020-02-28 14:34:45 +0100 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2020-02-28 14:34:45 +0100 |
| commit | 3a5eac673fb67a6cff7fc79f16312db78d706322 (patch) | |
| tree | 6c0e37e994d0a1ada6cef8d42d7dfbd9cdde3ccc /docs/architecture.md | |
| parent | 0c19b32433e2086e72e0d22595f4daa6ef04b64b (diff) | |
| parent | 2ed1e47b5d82229a873febebb2d8bd3d8f5832ea (diff) | |
Merge branch 'refactor/domains' into 'feat/2.x'
Change from logical processes to simulation domains
See merge request opendc/opendc-simulator!28
Diffstat (limited to 'docs/architecture.md')
| -rw-r--r-- | docs/architecture.md | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/architecture.md b/docs/architecture.md index 940ec09b..e84686e3 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -9,7 +9,8 @@ The `odcsim` framework has an API module (`odcsim-api`) and an module implementi ### 3.1.1 `odcsim-api` The API defines the behavior of any implementation adhering to the `odcsim` framework. It centers around a `SimulationEngine`, which can be created through a `SimulationEngineProvider`. -A simulation has a root process with certain `Behavior` (a coroutine). Processes have a `ProcessContext` which allow them to spawn other processes and open communication `Channel`s with other processes. Each of these `Channel`s has a `SendPort` and a `ReceivePort`. +A simulation consists of a number of simulation domains (logical processes) which itself consist of several coroutines +whose execution is serialized. That is, we guarantee that no two coroutines run at the same time. ### 3.1.2 `odcsim-engine-omega` The implementation is an executable interpretation of this API. The main class is `OmegaSimulationEngine` and takes care of transmitting timestamped events between processes. It ensures that message delivery order is the same as sent order. |
