Skip to content

A Java-based GUI application that simulates fundamental CPU scheduling algorithms. Implemented Algorithms: (FCFS) - (SJF) - (RR) with variable time quantum - Priority Scheduling (Non-preemptive)

Notifications You must be signed in to change notification settings

hamdyy04/CPU-Scheduling-Algorithms

Repository files navigation

⏳ CPU Scheduling Algorithms Simulator (Java GUI)

A Java-based GUI application that simulates fundamental CPU scheduling algorithms with process state tracking and queue visualization. Designed for OS education and algorithm analysis. Implemented Algorithms: First-Come-First-Served (FCFS) Shortest Job First (SJF) - Non-preemptive Round Robin (RR) with adjustable quantum Priority Scheduling (Non-preemptive).

5bqVOr0Dog

🎯 Key Features

Process Modeling State Management Consideration Process Data Structure Consideration Ready Queue Implementations: FCFS: Standard FIFO queue SJF: Priority queue (sorted by CPU time) RR: Circular queue with time quantum Priority: Priority queue (sorted by priority)

GUI Features

🖱️ Interactive process input table � Time quantum selector for RR 📈 Real-time visualization of: Ready queue composition Process state transitions Average waiting/turnaround times

⚙️ System Inputs

Process Set (All processes arrive at time 0): Process Number (PID) Required CPU Time (Burst time) Process Priority Round Robin Parameter: Time Quantum (Adjustable per simulation)

🛠️ Tech Stack

Core: Java 11+ GUI: Java Swing (or JavaFX) Build Tool: Maven/Gradle (optional)

🚀 Getting Started

Prerequisites JDK 11+ IDE (Eclipse/IntelliJ/NetBeans) Usage Add processes via input table Set RR quantum (if using Round Robin) Select algorithm from dropdown Start simulation View results in metrics panel

About

A Java-based GUI application that simulates fundamental CPU scheduling algorithms. Implemented Algorithms: (FCFS) - (SJF) - (RR) with variable time quantum - Priority Scheduling (Non-preemptive)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages