Skip to content

Repository files navigation

๐Ÿ–ฅ๏ธ OS Visualiser

OS Visualiser

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.


๐Ÿš€ Live Demo

Experience the project directly in your browser.

No installation is required.


๐Ÿ“– About the Project

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

๐ŸŽฏ Project Objectives

  • 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.

๐Ÿ“Š Project Highlights

  • โœ… 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

โœจ Features

  • 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

๐Ÿ“š Modules Implemented

๐Ÿงฉ System Calls

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

โš™๏ธ CPU Scheduling

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

๐Ÿค Process Synchronization

Interactive visualization of classical synchronization problems.

Implemented:

  • Producer Consumer
  • Readers Writers
  • Dining Philosophers

Concepts Covered:

  • Critical Section
  • Mutual Exclusion
  • Semaphores
  • Resource Sharing
  • Synchronization

๐Ÿšฆ Deadlock Handling

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 Management

Memory allocation using partitioning techniques.

Implemented:

  • Multiple Fixed Partitions (MFT)
  • Multiple Variable Partitions (MVT)

Concepts Covered:

  • Internal Fragmentation
  • External Fragmentation
  • Partition Allocation
  • Memory Utilization

๐Ÿ“ฆ Contiguous Memory Allocation

Algorithms:

  • First Fit
  • Best Fit
  • Worst Fit
  • Next Fit

Visualizes:

  • Memory Allocation
  • Remaining Memory
  • Fragmentation
  • Free Memory Blocks

๐Ÿง  Page Replacement Algorithms

Implemented:

  • FIFO
  • Optimal
  • LRU
  • LFU

Generated Metrics:

  • Page Hits
  • Page Faults
  • Hit Ratio
  • Fault Ratio
  • Memory Frames

๐Ÿ’ฝ Disk Scheduling

Implemented:

  • FCFS
  • SSTF
  • SCAN

Displays:

  • Seek Sequence
  • Total Seek Time
  • Disk Head Movement

๐Ÿ—ƒ๏ธ File Allocation

Implemented:

  • Sequential Allocation
  • Linked Allocation
  • Indexed Allocation

๐Ÿ“ Directory Structures

Implemented:

  • Single-Level Directory Organization

๐Ÿ—๏ธ Architecture

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

๐Ÿ› ๏ธ Tech Stack

Category Technology
Frontend HTML5
Styling CSS3
Programming JavaScript (ES6)
Deployment GitHub Pages
Version Control Git & GitHub

๐Ÿ“‚ Project Structure

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

๐Ÿš€ Getting Started

Clone the Repository

git clone https://github.com/himanshusinghpatel998/os_visualiser.git

Move into the project directory.

cd os_visualiser

Run the application by opening index.html in your browser or using VS Code Live Server.


๐ŸŽฎ How to Use

  1. Open the application.
  2. Select an Operating System module.
  3. Enter the required inputs.
  4. Run the simulation.
  5. Observe the visualization and generated metrics.
  6. Compare different algorithms.

๐Ÿ’ก Challenges Solved

  • Dynamic Gantt Chart generation
  • Real-time metric calculation
  • Interactive visualization of complex OS algorithms
  • Modular JavaScript implementation
  • Responsive user interface
  • Reusable component-based structure

๐ŸŽฏ Learning Outcomes

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

๐Ÿš€ Future Enhancements

  • 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

๐Ÿค Contributing

Contributions are welcome.

  1. Fork the repository.
  2. Create a feature branch.
  3. Commit your changes.
  4. Push the branch.
  5. Open a Pull Request.

๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿ‘จโ€๐Ÿ’ป Author

Himanshu Singh Patel

GitHub: https://github.com/himanshusinghpatel998

Live Demo: https://himanshusinghpatel998.github.io/os_visualiser/


โญ Support

If you found this project useful, consider giving it a Star โญ on GitHub.

It helps others discover the project and motivates future improvements.

About

Interactive web-based Operating System simulator featuring 20+ OS algorithms with real-time visualizations for CPU Scheduling, Memory Management, Process Synchronization, Deadlock Handling, Page Replacement, Disk Scheduling, and File Allocation.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages