Skip to content

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

 
 
 

Contributors

Languages