Skip to content

An interactive, educational web application that visualizes core Operating System concepts including CPU scheduling, memory management, and file system operations.

Notifications You must be signed in to change notification settings

Ayushkumar418/OS_SIMULATOR-Web_App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OS Simulator - Web-Based Operating System Visualizer

An interactive, educational web application that visualizes core Operating System concepts including CPU scheduling, memory management, and file system operations.

OS Simulator Python React FastAPI

🎯 Project Overview

This OS Simulator is designed for students and educators to understand how operating systems work internally through interactive, step-by-step visualizations.

Key Features

  • CPU Scheduling Algorithms

    • FCFS (First Come First Serve)
    • SJF/SRTF (Shortest Job First / Shortest Remaining Time First)
    • Priority Scheduling (Preemptive & Non-Preemptive)
    • Round Robin with configurable time quantum
  • Memory Management

    • Paging simulation with page tables
    • Virtual to physical address translation
    • Page fault handling
    • Page replacement algorithms (FIFO, LRU, Optimal, Clock)
    • Segmentation with protection
    • Contiguous memory allocation
  • File System

    • Block-based file operations
    • Multiple allocation methods (Contiguous, Linked, Indexed)
    • Defragmentation tool
    • Access control and permissions
  • Educational Features

    • Step-by-step explanations
    • Real-time Gantt charts
    • Performance metrics
    • Algorithm comparison mode
    • Demo scenarios

📖 Documentation

Comprehensive documentation is available in the docs/ folder:

Section Description
📚 Modules Detailed documentation for each simulator
🏗️ Architecture System design, API reference, components
📖 Guides Installation, user guide, contributing

Quick Links

🚀 Getting Started

Prerequisites

  • Python 3.8 or higher
  • Node.js 16 or higher
  • npm or yarn

Quick Start

# Clone the repository
git clone https://github.com/Ayushkumar418/OS_SIMULATOR-Web_App.git
cd OS_SIMULATOR-Web_App

# Start backend
cd backend
pip install -r requirements.txt
python main.py

# Start frontend (new terminal)
cd frontend
npm install
npm run dev
  • Frontend: http://localhost:5173
  • Backend API: http://localhost:8000
  • API Docs: http://localhost:8000/docs

📊 Modules

Module Description
CPU Scheduler Process scheduling algorithms visualization
Paging Simulator Page replacement algorithms demo
Virtual Memory TLB, page replacement, thrashing
Segmentation Memory segmentation with protection
Contiguous Allocator First/Best/Worst/Next fit algorithms
File System Block allocation, defragmentation

📚 Technical Stack

Backend:

  • Python 3.8+
  • FastAPI - Modern web framework
  • Pydantic - Data validation
  • Uvicorn - ASGI server

Frontend:

  • React 18 - UI library
  • Vite - Build tool
  • React Router - Navigation
  • Framer Motion - Animations
  • Recharts - Data visualization

🤝 Contributing

Contributions welcome! See Contributing Guide.

📝 License

Educational project - Free to use for learning purposes.


Happy Learning! 🎓