Inspiration
CPU scheduling has long been a core challenge in operating systems.
However, static algorithms like FCFS, SJF, and Priority Scheduling often struggle with dynamic workloads — leading to inefficiency, longer waiting times, and unfairness.
OptiCore was created to solve this problem.
It is an intelligent CPU scheduling optimizer that uses Genetic Algorithms (GA) to evolve and discover the most efficient scheduling strategies automatically.
By intelligently combining traditional methods like Round Robin, SJF, and Priority, OptiCore minimizes average waiting time, turnaround time, and context switching dynamically.
What It Does
OptiCore simulates CPU scheduling behavior and applies a Genetic Algorithm to evolve optimized strategies for any given workload.
It provides an interactive, visual, and tunable experience through a Google Colab interface, allowing users to:
- Adjust process parameters such as arrival time, burst time, and priority
- Tune GA parameters like population size, number of generations, and mutation rate
- Compare baseline algorithms versus the evolved hybrid strategy
- Visualize results through Gantt charts, bar graphs, and performance metrics
How It Was Built
- Implemented classical CPU scheduling algorithms: FCFS, SJF, Priority, and Round Robin
- Defined a fitness function combining:
- Average Waiting Time
- Average Turnaround Time
- Fairness Deviation
- Context Switch Count
- Average Waiting Time
- Used Genetic Algorithms to evolve hybrid schedulers dynamically
- Built an interactive user interface using
ipywidgetsandmatplotlibin Google Colab - Designed a minimal, dark-themed aesthetic for a clean and modern visualization experience
Challenges Faced
- Designing a balanced fitness function that promotes fairness and efficiency simultaneously
- Maintaining GA performance while optimizing for multiple metrics
- Creating dynamic Gantt visualizations within a Colab notebook
- Fine-tuning mutation and crossover rates to ensure stable convergence
What I Learned
- How metaheuristic optimization methods like Genetic Algorithms can improve system-level processes
- That adaptive and evolutionary logic can outperform traditional, static scheduling algorithms
- How to develop interactive and research-grade simulations efficiently in Python and Colab
What’s Next
- Integrating Reinforcement Learning for real-time adaptive scheduling
- Simulating an OS-level kernel environment for realistic testing
- Developing a web-based dashboard (using Streamlit or FastAPI) for broader accessibility
Log in or sign up for Devpost to join the conversation.