Scheduling Algorithms in OS
There are various types of scheduling algorithm which are used by the operating system to schedule the process on the processor.
Objective of Scheduling Algorithms
There are the following objectives of Scheduling Algorithms:
- Fare allocation of CPU
- Increased throughput
- Improved CPU Utilization
- Minimum Turnaround time
- Minimum response time
- Minimum waiting time
Types of Scheduling Algorithms
There are various types of Scheduling Algorithms:
- First come, first serve (FCFS).
- Shortest Job first (SJF).
- Shortest remaining time first(SRTF).
- Round Robin (RR)
- Priority-based Scheduling
- Highest Response Ration Next
- First Come First Serve (FCFS): - FCFS (First Come First Serve) is either a preemptive or non-preemptive Scheduling algorithm. It is easy to use and understand. In FCFS, jobs are executed on a first-come, first-serve manner. FCFS performance is poor due to the high average waiting time.
- Shortest Job First (SJF): - Shortest Job First is a Non-Preemptive algorithm. In the shortest job first algorithm, the job having shortest or less burst time will get the CPU first. It is a good approach to minimize the waiting time. It is simple to implement in the batch operating system because in this CPU time is known in advance, but it is not used in interactive systems because, in an interactive system, CPU time is not known.
- Shortest Remaining Time First (SRTF): - Shortest Remaining Time First is a Preemptive Scheduling Algorithm in which the operating system schedules the job, based on the remaining time of the execution. The job having the shortest remaining time is executed first.
- Round Robin (RR): - Round Robin is a Preemptive Scheduling Algorithm, which is the most commonly used algorithm in CPU Scheduling.In this, each process is assigned a fix time interval to execute. It is called quantum. In the round-robin, if a process executes in a given time period, then it gets preempted. Round robin is a starvation free CPU scheduling algorithm because all the processes get fair sharing of CPU.
- Priority Based Scheduling: - In Priority-Based Scheduling, all the processes are assigned some priority, and according to the priority, the process gets the CPU. Priority is assigned on the basis of time requirements, memory requirements, and resource requirements. In this, if two processes have the same priority, then the scheduling is done according to their time of arrival or first-come, first-served basis.
- Highest Response Ratio Next: - In Highest Response Ration Next algorithm, the highest response ratio process is scheduled next. This algorithm reduced the problem of starvation in the system.