Skip to content

"Interactive simulator for visualizing and comparing disk scheduling algorithms."

License

icodecedd/disk-scheduling

Repository files navigation

Disk Scheduling Algorithms Simulator

🚀 Explore Disk Scheduling in Action — A Powerful Visualization Platform to Understand, Compare, and Experiment with Algorithms like FCFS, SSTF, SCAN, C-SCAN, and LOOK for Enhanced Learning and Research


Python CustomTkinter Matplotlib


📋 Overview

Research Tool Operating Systems Performance Analysis

Disk Scheduling Algorithms Simulator is a comprehensive educational and analytical tool designed to demonstrate, compare, and visualize various disk scheduling algorithms used in modern operating systems. This interactive suite provides both terminal-based and graphical interfaces for understanding how different scheduling strategies optimize disk I/O performance.


✨ Features

🔧 Interactive Simulation 🎨 Advanced UI/UX
✅ Multi-Algorithm Support: 6 scheduling algorithms ✅ Rich Terminal Interface: Colorized output with progress bars
✅ Dynamic Parameter Input: Customizable track configurations ✅ Graphical GUI: Modern CustomTkinter interface
✅ Real-time Visualization: Animated disk head movement ✅ Data Visualization: Professional matplotlib charts
✅ Performance Metrics: Seek time and distance analysis ✅ Error Handling: Comprehensive input validation

🧮 Algorithms Implemented

Algorithm Full Name Strategy Time Complexity Best Use Case
🎯 FCFS First-Come, First-Served Sequential processing O(n) Simple, fair scheduling
SSTF Shortest Seek Time First Greedy nearest-first O(n²) Minimize seek time
🛗 SCAN Elevator Algorithm Bidirectional sweep O(n) Heavy load systems
👀 LOOK Look Algorithm Optimized SCAN O(n) Efficient boundary handling
🔄 C-SCAN Circular SCAN Unidirectional circular O(n) Uniform response time
🎯 C-LOOK Circular LOOK Optimized C-SCAN O(n) Best overall performance

💻 System Requirements

🛠️ Development Environment

Python 3.8+
Python 3.8+
Core runtime environment
Cross Platform
Cross-Platform
Windows, macOS, Linux
Desktop
Desktop Environment
For GUI components

📦 Dependencies

🔧 Required Libraries

📊 Visualization & UI 🎨 Enhancement Libraries
matplotlib>=3.5.0 – Data visualization tqdm>=4.64.0 – Progress bars
rich>=12.0.0 – Terminal formatting colorama>=0.4.4 – Terminal colors
customtkinter>=5.0.0 – Modern GUI framework CTkMessagebox>=2.0.0 – GUI dialogs
Pillow>=9.0.0 – Image processing numpy>=1.21.0 – Numerical computing

🚀 Installation

Quick Setup

Step 1: Clone the Repository

git clone https://github.com/icodecedd/disk-scheduling.git
cd disk-scheduling

Step 2: Create Virtual Environment (Recommended)

# Create virtual environment
python -m venv disk_scheduler_env

# Activate virtual environment
# On Windows:
disk_scheduler_env\Scripts\activate
# On macOS/Linux:
source disk_scheduler_env/bin/activate

Step 3: Install Dependencies

# Install all required packages
pip install matplotlib rich tqdm colorama customtkinter pillow CTkMessagebox numpy

# Or install from requirements file (if available)
pip install -r requirements.txt

Step 4: Verify Installation

python -c "import matplotlib, rich, customtkinter; print('✅ All dependencies installed successfully!')"

🤝 Contributing

Contributions Welcome

We enthusiastically welcome contributions from the community! Here's how you can help improve this project:

🔧 Development Contributions 📚 Documentation & Education 🐛 Quality Improvements 🎯 Feature Requests
🆕 New Algorithms: Implement additional scheduling algorithms 📖 Tutorials: Create step-by-step learning guides 🔍 Bug Reports: Identify and report issues 🔮 New Features: Suggest innovative functionality
🎨 UI Improvements: Enhance user interface and experience 🎥 Examples: Add practical use-case demonstrations ✨ Code Quality: Refactor and improve code structure 🎨 Visualization: Propose new chart types and displays
⚡ Performance: Optimize existing algorithm implementations 🔍 Analysis: Provide performance comparison studies 🛡️ Security: Enhance input validation and error handling ⚙️ Configuration: Add customization options
🧪 Testing: Expand test coverage and validation 🌐 Translations: Localize documentation and interfaces 📊 Analytics: Improve performance metrics and reporting 🚀 Performance: Suggest optimization strategies

Contribution Process

  1. Fork the repository to your GitHub account
  2. Clone your fork locally (git clone https://github.com/icodecedd/disk-scheduling.git)
  3. Create a feature branch (git checkout -b feature-name)
  4. Commit your changes (git commit -m "Add: Enhanced SSTF algorithm with batch processing"')
  5. Push to your branch (git push origin feature-name)
  6. Open a Pull Request

🎓 Designed for Academic Learning & OS Concepts 🎓

Academic Learning Operating Systems

Track Project Engagement:

GitHub Repo stars GitHub forks GitHub Watchers

"Understanding disk scheduling algorithms is key to optimizing system performance"

About

"Interactive simulator for visualizing and comparing disk scheduling algorithms."

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages