This repository contains implementations of various (CPU scheduling Algorithms) in Java. The implemented algorithms include:
- First-Come, First-Served (FCFS)
- Shortest Job First (SJF)
- Priority Scheduling
- Round Robin (RR)
- Multi-Level (MLQ)
-
FCFS:
- This Algorithm Schedules processes based on their arrival times.
- The process that arrives first gets executed first, and subsequent processes wait in a queue until it's their turn.
- It operates under the assumption that all processes are equally important.
- More Information
-
SJF:
- This Algorithm Schedules processes based on their burst times.
- The process with the shortest burst time is executed first, minimizing the average waiting time.
- It can be either preemptive or non-preemptive
- More Information
-
RR:
- This Algorithm allocates a fixed time slice (Quantum) to each process in a cyclic manner.
- Each process gets a chance to execute for the defined time quantum before being preempted and placed back in the ready queue.
- It ensures fairness by giving equal opportunities to all processes and prevents starvation.
- More Information
-
Priority:
- This Algorithm assigns priorities to processes based on certain criteria.
- The process with the highest priority is executed first.
- It can be either preemptive or non-preemptive.
- More Information
-
Multi-Level:
- This Algorithm divides the ready queue into multiple separate queues, each with its own Scheduling Algorithm.
- Processes are assigned to different queues based on specified criteria.
- Each queue can use a different Scheduling Algorithm to manage its processes.
- More Information
- Scheduling (computing)
- CPU Scheduling in Operating Systems
- Preemptive and Non-Preemptive Scheduling
- Operating System Concepts Book by Abraham Silberschatz.
- Modern Operating Systems Book by Andrew Tanenbaum.