Attempting to implement an equivalent to the Time Warp Operating System in Rust.
| examples | ||
| LICENSES | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
| simulation run.excalidraw | ||
Experiments around the Time Warp Operating System in Rust
Introduction
This is a record of my attempts at implementing the Time Warp Operating System in Rust, as originally defined in "Distributed Simulation and the Time Warp Operating System" (Jefferson et al., 1987).
The current most completed attempt resides in the bytes_based module inside this repo's rust library crate.
A reprisal of the ping-pong example from (West, 1988) has been attempted. It resides in examples/ping_pong.rs and can be run using cargo:
> cargo run --example=ping_pong
References
- D. Jefferson, B. Beckman, F. Wieland, L. Blume, and M. Diloreto. 1987. Time warp operating system. SIGOPS Oper. Syst. Rev. 21, 5 (Nov. 1987), 77–93. https://doi.org/10.1145/37499.37508
- [Jefferson 82] Jefferson, David and Sowizral, Henry, "Fast Concurrent Simulation Using the Time Warp Mechanism, Part I: Local Control", Rand Note N-1906AF, the Rand Corporation, Santa Monica, California, Dec. 1982
- [Jefferson 85] Jefferson, David, "Virtual Time", ACM Transactions on Programming Languages and Systems, Vol. 7, No. 3, July 1985
- Jefferson, D.R. (1990). Virtual time II: storage management in conservative and optimistic systems. ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing.
- Unger, B.W., Cleary, J.G., Lomow, G., Xining, L., Zhonge, X., & Slind, K. (1986). JADE virtual time implementation manual.
- Lin, Y., & Lazowska, E. (1991). A study of time warp rollback mechanisms. ACM Trans. Model. Comput. Simul., 1, 51-72.
- "Optimising Time Warp: Lazy Rollback and Lazy Reevaluation." (West, 1988)