# Difference Between SRJF and LRJF CPU Scheduling Algorithms

CPU scheduling algorithms play a crucial role in determining the order in which processes or tasks are executed on a computer's central processing unit (CPU). Two commonly used algorithms for CPU scheduling are Shortest Remaining Job First (SRJF) and Longest Remaining Job First (LRJF). These algorithms prioritize tasks based on their remaining execution time. In this explanation, we will discuss the differences between SRJF and LRJF scheduling algorithms.

## Shortest Remaining Job First (SRJF)

SRJF is a non-preemptive scheduling algorithm where the process with the shortest remaining execution time is selected for execution next. It aims to minimize the average waiting time of processes. Here are the key characteristics of the SRJF algorithm −

• Decision Criterion− The decision criterion in SRJF is the remaining burst time or execution time of a process. The process with the smallest remaining burst time is chosen to execute next.

• Preemption− SRJF is a non-preemptive algorithm, meaning once a process starts executing, it will continue until it completes or blocks.

• Context Switching− Context switching occurs only when a process completes execution or blocks. It does not occur due to preemption.

• Starvation− SRJF can potentially suffer from starvation. If there are long processes continuously arriving, short processes may have to wait for a long time before getting a chance to execute.

## Longest Remaining Job First (LRJF)

LRJF is a preemptive scheduling algorithm where the process with the longest remaining execution time is given the highest priority. It aims to ensure fairness among processes and prevent starvation. Let's look at the distinctive features of the LRJF algorithm −

• Decision Criterion− In LRJF, the decision criterion is the remaining burst time or execution time of a process. The process with the longest remaining burst time is selected to execute first.

• Preemption− LRJF is a preemptive algorithm, meaning a process can be preempted if a higher-priority process with a shorter remaining burst time arrives.

• Context Switching− Context switching occurs when preemption happens, and the CPU is assigned to a new process with a higher priority.

• Starvation− LRJF avoids starvation because every process gets an opportunity to execute, even if it has a long remaining burst time. However, shorter processes may experience increased waiting time due to preemption.

## Difference Between SRJF and LRJF CPU Scheduling Algorithms

Here's a table highlighting the differences between the Shortest Remaining Job First (SRJF) and Longest Remaining Job First (LRJF) CPU scheduling algorithms −

Criteria

SRJF

LRJF

Scheduling Policy

SRJF is a non-preemptive scheduling algorithm, where the CPU remains allocated to the currently executing process until it completes or a shorter job arrives.

LRJF is a preemptive scheduling algorithm, where the CPU can be taken away from the currently executing process if a longer job arrives.

Job Selection

SRJF selects the process with the smallest remaining burst time among the ready processes to execute next.

LRJF selects the process with the largest remaining burst time among the ready processes to execute next.

Preemption

SRJF does not preempt a running process, which means once a process starts executing, it continues until completion or voluntarily gives up the CPU.

LRJF preempts a running process if a job with a longer burst time becomes ready. The longer job is given the CPU, and the current process is put back into the ready queue.

Average Waiting Time

SRJF tends to have a lower average waiting time because it prioritizes shorter jobs, which allows them to complete quickly.

LRJF may have a higher average waiting time compared to SRJF because longer jobs can monopolize the CPU, causing shorter jobs to wait longer.

Starvation

SRJF can potentially lead to starvation for longer jobs as they are constantly preempted by shorter jobs.

LRJF mitigates the issue of starvation for shorter jobs because longer jobs are preempted to give shorter jobs a chance to execute. However, longer jobs may experience starvation in LRJF.

Context Switching

SRJF requires fewer context switches as it is a non-preemptive algorithm. Context switches occur only when a process completes or voluntarily gives up the CPU.

LRJF requires more context switches because preemption can occur when a longer job becomes ready, leading to frequent context switches between processes.

Use Case

SRJF is suitable when the focus is on minimizing average waiting time and shorter jobs need to be given priority. It is often used in batch processing or environments with predictable job lengths.

LRJF is useful when the goal is to ensure fairness among jobs and prevent longer jobs from monopolizing the CPU. It is commonly employed in interactive systems or timesharing environments.

## Conclusion

The choice between SRJF and LRJF CPU scheduling algorithms depends on the system requirements, workload characteristics, and objectives. SRJF aims to minimize waiting time and improve system throughput by prioritizing shorter processes, while LRJF focuses on maximizing resource utilization by prioritizing longer processes. Both algorithms have their strengths and limitations, and selecting the appropriate algorithm requires considering the specific needs and constraints of the system.

Updated on: 13-Jul-2023

101 Views