Skip to content

SchedMaster lies in its hybrid approach - combining classical scheduling algorithms with optimization techniques like Greedy Algorithms, Dynamic Programming, and Backtracking. Additionally, it leverages simple ML models to predict process behavior, detect anomalies in resource usage, and recommend the most suitable scheduling strategies.

License

Notifications You must be signed in to change notification settings

vivek081202/SchedMaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⏱️ SchedMaster

Intelligent Scheduling & Optimization Simulation tool using Machine Intelligence

image

In modern operating systems, efficient resource management and process scheduling play a crucial role in maintaining system performance, responsiveness, and stability. However, traditional scheduling techniques often rely on static algorithms that fail to adapt dynamically to varying workloads, resource availability, or process behavior.

SchedMaster is an intelligent simulation and optimization tool designed to overcome these limitations by integrating the principles of Design and Analysis of Algorithms (DAA) and basic Machine Learning (ML) techniques. It provides an interactive environment where users can visualize, analyze, and optimize CPU scheduling, disk scheduling, and resource allocation strategies.

The uniqueness of SchedMaster lies in its hybrid approach — combining classical scheduling algorithms with optimization techniques like Greedy Algorithms, Dynamic Programming, and Backtracking. Additionally, it leverages simple ML models to predict process behavior, detect anomalies in resource usage, and recommend the most suitable scheduling strategy for given conditions. This project aims to not only simulate existing scheduling methods but also empower users to experiment, analyze time & space complexities, and explore adaptive scheduling solutions that reflect real-world scenarios more effectively.

🚀 Features

1. CPU Scheduling Module

  • Algorithms Implemented:

    • First Come First Serve (FCFS)
    • Priority Scheduling (Premptive)
    • Round Robin (RR)
    • Shortest Remaining Time First (SRTF)
  • ML Techniques:

    • Supervised Learning for execution time prediction
    • Greedy algorithm optimization
    • Performance pattern analysis using clustering
    • Linear Regression

    image

2. Disk Scheduling Module

  • Algorithms Implemented:

    • First Come First Serve (FCFS)
    • Shortest Seek Time First (SSTF)
    • SCAN
    • C-SCAN
    • LOOK
    • C-LOOK
  • ML Techniques:

    • Pattern recognition for disk access prediction
    • Dynamic programming for optimal path finding
    • Time series analysis for access pattern prediction

    image

3. Resource Allocation Module

  • Problems Solved:

    • Bankers Algorithm (System Safe State and Deadlock Avoidance)
  • ML Techniques:

    • Resource usage prediction
    • Deadlock prevention using pattern recognition
    • Performance optimization through learning

    image

4. Anomaly Detection Module

  • Features:

    • Real-time anomaly detection
    • Performance analysis
    • Resource usage monitoring
  • ML Techniques:

    • Unsupervised learning for anomaly detection (Isolation Forest)
    • Time series analysis
    • Pattern recognition in resource usage

    image

5. Comparative Analysis Module

  • Features:

    • Side-by-side algorithm comparison
    • Performance metrics visualization
    • Interactive parameter tuning
  • ML Techniques:

    • Performance prediction models
    • Algorithm selection optimization
    • Pattern recognition in performance metrics

    image
    image

🛠️ Installation

Prerequisites

  • Python 3.8 or higher
  • Git
  • pip (Python package installer)

Step-by-Step Installation

  1. Clone the Repository
# Clone using HTTPS
git clone https://github.com/yourusername/SchedMaster.git

# Or clone using SSH
git clone [email protected]:yourusername/SchedMaster.git

# Navigate to project directory
cd SchedMaster
  1. Create and Activate Virtual Environment (Recommended)
# Create virtual environment
python -m venv venv

# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
  1. Install Dependencies
# Install required packages
pip install -r requirements.txt

# Verify installation
pip list
  1. Run the Application
# Start the Streamlit app
streamlit run pages/app.py
  1. Access the Application
  • Open your web browser
  • Navigate to http://localhost:8501
  • The application should be running and ready to use

Troubleshooting

If you encounter any issues during installation:

  1. Python Version Issues
# Check Python version
python --version

# If version is below 3.8, install a newer version
  1. Dependency Conflicts
# Create a fresh virtual environment
python -m venv venv --clear

# Reinstall dependencies
pip install -r requirements.txt
  1. Streamlit Issues
# Update Streamlit
pip install --upgrade streamlit

# Clear Streamlit cache
streamlit cache clear

🚀 Usage

# Run the Streamlit app
streamlit run pages/app.py

Open your web browser and navigate to http://localhost:8501

📁 Project Structure

SchedMaster/
├── data/               # Data files and datasets
├── images/            # Static images and icons
├── modules/           # Core algorithm implementations
├── pages/             # Streamlit pages
│   ├── app.py         # Main application entry point
│   ├── Home.py        # Home page
│   ├── CPU_Scheduling.py
│   ├── Disk_Scheduling.py
│   ├── Process_Sync.py
│   ├── Anomaly_Detection.py
│   └── Comparative_Analysis.py
└── requirements.txt   # Python dependencies

📦 Dependencies

  • streamlit
  • numpy
  • pandas
  • plotly
  • scikit-learn
  • streamlit-extras
  • matplotlib
  • seaborn

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the GPL-3.0 license - see the LICENSE file for details.

🙏 Acknowledgments

  • Streamlit for the amazing web application framework
  • Scikit-learn for machine learning capabilities
  • Plotly for interactive visualizations
  • All contributors who have helped shape this project

Designed and Developed by:

Vivek Kumar Singh LinkedIn

About

SchedMaster lies in its hybrid approach - combining classical scheduling algorithms with optimization techniques like Greedy Algorithms, Dynamic Programming, and Backtracking. Additionally, it leverages simple ML models to predict process behavior, detect anomalies in resource usage, and recommend the most suitable scheduling strategies.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages