This project is a collection of educational simulations and code examples designed to illustrate core operating system concepts. It provides practical implementations of virtualization, concurrency, and persistence to demonstrate how an operating system manages hardware and software resources.
The repository includes simulators for CPU scheduling, memory virtualization via paging and segmentation, and file system architectures. It provides specific models for virtual-to-physical address translation and the distribution of processor time across competing tasks.
The simulations cover concurrency control through the use of locks, semaphores, and condition variables to manage shared data. Additional coverage includes the modeling of non-volatile data persistence through simulated block-level disk input and output operations.