This simulates scheduling algorithms and shows how processes run over time using a Gantt chart and Process table. The backend logic is written in C, the UI is in React, and Go is used as a bridge for JSON communication.
- Takes process input (arrival time, burst time, allocated time etc.)
- Runs scheduling algorithms
- Generates execution timeline
- Visualises it as a Gantt chart
- Shows final metrics like CT, TAT, Response
- FCFS
- SJF (Preemptive and Non-Preemptive)
- Round Robin
- MLFQ (with priority queues, allotment, reset, etc.)
MLFQ was the main focus — especially handling:
- preemption
- demotion between queues
- priority reset
- correct timeline generation
- C → core scheduling logic
- React → UI + visualisation
- Go → JSON bridge between backend and frontend
Most implementations online either:
- skip edge cases
- or don’t show how scheduling actually happens
I wanted something where:
- I control the logic fully
- I can see every context switch
- and debug things like MLFQ properly
Core algorithms are working.
Main effort went into:
- getting MLFQ correct
- generating proper timeline data for visualisation
Known issue:
- MLFQ visualisation is being actively improved - logic is correct, frontend mapping is being refined.
git clone https://github.com/ns0851/scheduler-visualiser.git
cd scheduler-visualisergo versiongo mod init 'name'
go mod tidygo install github.com/air-verse/air@latestgo run main.goOr with live reload:
air(Run air init once if .air.toml is not present)
gcc main.c scheduler/basic_scheduler.c coreJob/job.c scheduler/MLFQ.c queueHelpers/helper.c queueHelpers/timeline.c cJSON.c -o scheduler
./schedulernpm install
npm run dev- better UI (animations, smoother Gantt)
- improve MLFQ visualisation (reset, queue movement, etc.)
- add more algorithms
- cleaner input system
- side-by-side comparison of algorithms
Wish to work on this project even further to make algorithms much easier to learn VIA visualization