Welcome to the Multiprogramming OS Simulator!
This project is a hands-on technological journey into fundamental concepts of operating systems, featuring interactive CPU, memory, and process management simulations.
Dive into the world of multiprogramming and discover how real operating systems manage resources, schedule processes, and handle interruptsβall in a safe, educational environment.
The simulator is built on a modular architecture, mimicking the core components of a real OS:
- CPU Module: Emulates instruction execution and context switching.
- Memory Module: Simulates RAM, paging, and address translation.
- Process Manager: Maintains PCB data, manages process states and scheduling.
- Interrupt Handler: Coordinates supervisor calls, errors, and asynchronous events.
- CPU & Machine Simulation βοΈ
- Simulates instruction cycles, registers, and basic I/O.
- Provides hooks for supervisor calls and privilege checks.
- Supervisor Calls via Interrupts π¨
- Implements SVCs for process management, memory allocation, and I/O.
- Paging Implementation ποΈ
- Virtual memory management using page tables.
- Supports page faults and dynamic allocation.
- Robust Error Handling β
- Detects illegal memory access, invalid instructions, and resource exhaustion.
- Interrupt Generation & Servicing π
- Hardware and software interrupts, nested interrupt support, priority handling.
- Process Control Block (PCB) Structure π
- Tracks process ID, state, registers, memory maps, and scheduling information.
- Multi-level Scheduling
- Device Driver Simulation
- File System Layer (future release)
- User/Kernel Mode Switching
-
Learn OS Fundamentals:
Grasp core concepts like multiprogramming, interrupt handling, memory management, and process control in a hands-on way. -
Tech-Driven Design:
Modern code structure, clear separation of responsibilities, and focus on real-world scenarios. -
Interactive & Educational:
Ideal for students, educators, and curious developers ready to dive into OS inner workingsβwithout needing real hardware.- Trace & Debug:
Step-by-step simulation with trace logs for every process, interrupt, and memory operation.
- Trace & Debug:
-
Extensible & Customizable:
Easily add new instructions, memory models, or scheduling algorithms for experiments and assignments.
- Simulates multi-process CPU scheduling and execution (FCFS, Round Robin, Priority)
- Handles supervisor calls and interrupts dynamically (customizable interrupt vector table)
- Implements paging for efficient memory management (with page fault simulation and swapping)
- Manages process information via PCB data structures (full lifecycle: creation, ready, running, blocked, terminated)
- Integrates error detection and handling for robust simulation (invalid opcode, out-of-memory, deadlock detection)
- Visualizes process and memory state (optional: CLI or GUI output, configurable logging)
- Supports batch and interactive modes for running workloads
- Clone the repo:
git clone https://github.com/ShaikhNomaan-png/Multiprogramming-Operating-System-.git
- Navigate to the src directory:
cd Multiprogramming-Operating-System-/src - Run the simulation:
(Instructions for building/running your code, e.g., usingmake,gcc, or a specific script.)
- C / C++ / Assembly (adapt as appropriate)
- Modular structure for extensibility
- Designed for clarity, accuracy, and learning
Contributions welcome!
Level up your OS knowledge and join the simulation revolution! π»β‘