An Interactive Web-Based Operating System Simulator for Visualizing Core OS Concepts and Algorithms
Learn Operating System concepts through real-time visualizations, interactive simulations, and hands-on experimentation.
Experience the project directly in your browser.
No installation is required.
OS Visualiser is an interactive educational platform designed to simplify Operating System concepts through dynamic visualizations and simulations.
Traditional Operating System learning relies heavily on static diagrams and theoretical explanations. This project transforms those concepts into interactive simulations where users can provide custom inputs, observe algorithm execution step-by-step, and analyze the generated results in real time.
The application is completely browser-based and covers major Operating System topics including CPU Scheduling, Process Synchronization, Deadlock Handling, Memory Management, Page Replacement, Disk Scheduling, File Allocation, and Directory Structures.
It is designed for:
- ๐ Computer Science Students
- ๐จโ๐ซ Educators
- ๐ผ Technical Interview Preparation
- ๐ Self Learning
- ๐ป Operating System Enthusiasts
- Visualize Operating System algorithms interactively.
- Make complex OS concepts easier to understand.
- Encourage learning through experimentation.
- Build a modular and scalable educational platform.
- Provide a practical resource for academic learning and interview preparation.
- โ 20+ Operating System algorithms implemented
- โ 9+ interactive learning modules
- โ Browser-based execution
- โ Dynamic visualization of algorithms
- โ Real-time performance metric calculation
- โ Interactive user interface
- โ Modular architecture
- โ Responsive design
- โ Live deployment using GitHub Pages
- Interactive algorithm simulations
- Dynamic Gantt Chart generation
- User-defined inputs
- Automatic metric calculation
- Real-time visualization
- Clean and responsive interface
- Modular implementation
- Beginner-friendly design
- No external dependencies
- Easy deployment
Visualizes commonly used system calls and demonstrates process creation and execution.
Implemented:
- fork()
- exec()
- wait()
- exit()
Concepts Covered:
- Parent-child process creation
- Process execution
- Process synchronization
- Process lifecycle
Simulates multiple CPU Scheduling algorithms with customizable process inputs.
Algorithms:
- First Come First Serve (FCFS)
- Shortest Job First (SJF)
- Shortest Remaining Time First (SRTF)
- Round Robin
- Priority Scheduling (Preemptive)
- Priority Scheduling (Non-Preemptive)
Generated Metrics:
- Gantt Chart
- Completion Time
- Waiting Time
- Turnaround Time
- Response Time
- Average Waiting Time
- Average Turnaround Time
Interactive visualization of classical synchronization problems.
Implemented:
- Producer Consumer
- Readers Writers
- Dining Philosophers
Concepts Covered:
- Critical Section
- Mutual Exclusion
- Semaphores
- Resource Sharing
- Synchronization
Simulates deadlock management strategies.
Implemented:
- Banker's Algorithm
- Deadlock Detection Algorithm
Features:
- Safe Sequence Detection
- Resource Allocation
- Need Matrix
- Available Matrix
- Safe State Analysis
Memory allocation using partitioning techniques.
Implemented:
- Multiple Fixed Partitions (MFT)
- Multiple Variable Partitions (MVT)
Concepts Covered:
- Internal Fragmentation
- External Fragmentation
- Partition Allocation
- Memory Utilization
Algorithms:
- First Fit
- Best Fit
- Worst Fit
- Next Fit
Visualizes:
- Memory Allocation
- Remaining Memory
- Fragmentation
- Free Memory Blocks
Implemented:
- FIFO
- Optimal
- LRU
- LFU
Generated Metrics:
- Page Hits
- Page Faults
- Hit Ratio
- Fault Ratio
- Memory Frames
Implemented:
- FCFS
- SSTF
- SCAN
Displays:
- Seek Sequence
- Total Seek Time
- Disk Head Movement
Implemented:
- Sequential Allocation
- Linked Allocation
- Indexed Allocation
Implemented:
- Single-Level Directory Organization
The project follows a modular architecture where every Operating System concept is implemented independently.
Advantages:
- Easy maintenance
- Reusable code
- Independent module development
- Improved scalability
- Better readability
- Simplified debugging
| Category | Technology |
|---|---|
| Frontend | HTML5 |
| Styling | CSS3 |
| Programming | JavaScript (ES6) |
| Deployment | GitHub Pages |
| Version Control | Git & GitHub |
os_visualiser/
โ
โโโ assets/
โโโ css/
โโโ images/
โโโ js/
โ
โโโ cpu_scheduling/
โโโ system_calls/
โโโ process_synchronization/
โโโ deadlock/
โโโ memory_management/
โโโ contiguous_memory_allocation/
โโโ page_replacement/
โโโ disk_scheduling/
โโโ file_allocation/
โโโ directory_structure/
โ
โโโ index.html
โโโ README.md
git clone https://github.com/himanshusinghpatel998/os_visualiser.gitMove into the project directory.
cd os_visualiserRun the application by opening index.html in your browser or using VS Code Live Server.
- Open the application.
- Select an Operating System module.
- Enter the required inputs.
- Run the simulation.
- Observe the visualization and generated metrics.
- Compare different algorithms.
- Dynamic Gantt Chart generation
- Real-time metric calculation
- Interactive visualization of complex OS algorithms
- Modular JavaScript implementation
- Responsive user interface
- Reusable component-based structure
This project demonstrates practical implementation of:
- CPU Scheduling
- Process Management
- Synchronization
- Deadlock Handling
- Memory Management
- Page Replacement
- Disk Scheduling
- File Systems
- DOM Manipulation
- Event-Driven Programming
- Modular Software Design
- Multi-Level Queue Scheduling
- Multi-Level Feedback Queue Scheduling
- LOOK Disk Scheduling
- C-LOOK Disk Scheduling
- C-SCAN
- Buddy Memory Allocation
- Segmentation
- Paging with Segmentation
- Tree Directory Structure
- Performance Comparison Graphs
- Dark Mode
- Export Simulation Results
Contributions are welcome.
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Push the branch.
- Open a Pull Request.
This project is licensed under the MIT License.
GitHub: https://github.com/himanshusinghpatel998
Live Demo: https://himanshusinghpatel998.github.io/os_visualiser/
If you found this project useful, consider giving it a Star โญ on GitHub.
It helps others discover the project and motivates future improvements.