An interactive, full-stack laboratory for simulating Operating System internals. This project combines a high-performance C++ Core Engine with a dynamic PHP Dashboard to provide real-time analysis of CPU scheduling, memory allocation, and system stability.
Supports pre-emptive and non-pre-emptive algorithms with real-time Gantt Chart visualization:
- FCFS (First-Come, First-Served)
- SJF (Shortest Job First - Non-preemptive)
- Priority Scheduling (Customizable importance levels)
- Round Robin (Time-slice driven execution)
Visualize spatial fragmentation and allocation efficiency:
- First Fit: Fast allocation in the first available hole.
- Best Fit: Minimizes external fragmentation by finding the perfect match.
- Worst Fit: Leaves larger leftover holes to accommodate future small processes.
- Banker's Algorithm: Proactive safety state verification.
- Cycle Detection (DFS): Resource Allocation Graph (RAG) analysis to detect deadlocks.
- Stability Score: A weighted algorithm that evaluates system health (0-100%) based on scheduling latency and resource availability.
The project utilizes a Polyglot Architecture to maximize both performance and accessibility:
- Backend (C++20): Handles all heavy computation and algorithmic simulations. Communicates via a custom JSON protocol over
stdin/stdout. - Bridge (PHP 8.2+): Acts as an orchestrator. It executes the C++ binary as a sub-process, pipes JSON data, and parses the results.
- Frontend (Vanilla JS/CSS): A modern, glassmorphic dashboard optimized for interaction and visual feedback.
- C++ Compiler:
g++(MinGW-w64 recommended for Windows). - PHP: PHP 8.2 or higher (CLI/Web Server).
- Clone the repository:
git clone https://github.com/Mayur-e/SysScope--OS-Scheduling---Stability-Analyzer.git cd SysScope--OS-Scheduling---Stability-Analyzer - Compile the Engine:
Run the automated build script:
.\compile.bat - Launch the Analyzer:
Start the PHP server and open the dashboard:
Access the UI at:
.\run.bathttp://localhost:8000/src/index.php
We welcome contributions to make this the ultimate OS tool!
- Multi-Level Queue Scheduling: Implement complex feedback queues.
- Paging Simulation: Add virtual memory and page replacement algorithms (LRU, Optimal).
- Real-time Graphing: Integrate Chart.js for memory usage trends.
- Export Reports: Download analysis results as PDF or JSON.
- Dockerization: Containerize the C++ and PHP environment for one-click setup.
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
Mayuresh Mandalik - mayureshmandalik25@gmail.com
Project Link: https://github.com/Mayur-e/SysScope--OS-Scheduling---Stability-Analyzer