cpu scheduling in operating systems

13
2/28/2020 CPU Scheduling in Operating Systems - GeeksforGeeks https://www.geeksforgeeks.org/cpu-scheduling-in-operating-systems/ 1/3 CPU Scheduling in Operating Systems Scheduling of processes/work is done to finish the work on time. Below are different time with respect to a process. Arrival Time: Time at which the process arrives in the ready queue. Completion Time: Time at which process completes its execution. Burst Time: Time required by a process for CPU execution. Turn Around Time: Time Difference between completion time and arrival time. Turn Around Time = Completion Time – Arrival Time Waiting Time(W.T): Time Difference between turn around time and burst time. Waiting Time = Turn Around Time – Burst Time Why do we need scheduling? A typical process involves both I/O time and CPU time. In a uni programming system like MS-DOS, time spent waiting for I/O is wasted and CPU is free during this time. In multi programming systems, one process can use CPU while another is waiting for I/O. This is possible only with process scheduling. Objectives of Process Scheduling Algorithm

Upload: others

Post on 13-May-2022

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CPU Scheduling in Operating Systems

2/28/2020 CPU Scheduling in Operating Systems - GeeksforGeeks

https://www.geeksforgeeks.org/cpu-scheduling-in-operating-systems/ 1/3

CPU Scheduling in Operating SystemsScheduling of processes/work is done to finish the work on time.

Below are different time with respect to a process.

Arrival Time: Time at which the process arrives in the ready queue.

Completion Time: Time at which process completes its execution.

Burst Time: Time required by a process for CPU execution.

Turn Around Time: Time Difference between completion time and arrival time.

Turn Around Time = Completion Time – Arrival Time

Waiting Time(W.T): Time Difference between turn around time and burst time.

Waiting Time = Turn Around Time – Burst Time

Why do we need scheduling?A typical process involves both I/O time and CPU time. In a uni programming system like MS-DOS,

time spent waiting for I/O is wasted and CPU is free during this time. In multi programming systems,

one process can use CPU while another is waiting for I/O. This is possible only with process

scheduling.

Objectives of Process Scheduling Algorithm

Page 2: CPU Scheduling in Operating Systems

2/28/2020 CPU Scheduling in Operating Systems - GeeksforGeeks

https://www.geeksforgeeks.org/cpu-scheduling-in-operating-systems/ 2/3

Max CPU utilization [Keep CPU as busy as possible]

Fair allocation of CPU.

Max throughput [Number of processes that complete their execution per time unit]

Min turnaround time [Time taken by a process to finish execution]

Min waiting time [Time a process waits in ready queue]

Min response time [Time when a process produces first response]

Different Scheduling Algorithms

First Come First Serve (FCFS): Simplest scheduling algorithm that schedules according to arrival

times of processes. First come first serve scheduling algorithm states that the process that requests

the CPU first is allocated the CPU first. It is implemented by using the FIFO queue. When a process

enters the ready queue, its PCB is linked onto the tail of the queue. When the CPU is free, it is

allocated to the process at the head of the queue. The running process is then removed from the

queue. FCFS is a non-preemptive scheduling algorithm.

Note:First come first serve suffers from convoy effect.

Shortest Job First (SJF): Process which have the shortest burst time are scheduled first.If two

processes have the same bust time then FCFS is used to break the tie. It is a non-preemptive

scheduling algorithm.

Longest Job First (LJF): It is similar to SJF scheduling algorithm. But, in this scheduling algorithm,

we give priority to the process having the longest burst time. This is non-preemptive in nature i.e.,

when any process starts executing, can’t be interrupted before complete execution.

Shortest Remaining Time First (SRTF): It is preemptive mode of SJF algorithm in which jobs are

schedule according to shortest remaining time.

Longest Remaining Time First (LRTF): It is preemptive mode of LJF algorithm in which we give

priority to the process having largest burst time remaining.

Round Robin Scheduling: Each process is assigned a fixed time(Time Quantum/Time Slice) in cyclic

way.It is designed especially for the time-sharing system. The ready queue is treated as a circular

queue. The CPU scheduler goes around the ready queue, allocating the CPU to each process for a

time interval of up to 1-time quantum. To implement Round Robin scheduling, we keep the ready

Page 3: CPU Scheduling in Operating Systems

2/28/2020 CPU Scheduling in Operating Systems - GeeksforGeeks

https://www.geeksforgeeks.org/cpu-scheduling-in-operating-systems/ 3/3

queue as a FIFO queue of processes. New processes are added to the tail of the ready queue. The

CPU scheduler picks the first process from the ready queue, sets a timer to interrupt after 1-time

quantum, and dispatches the process. One of two things will then happen. The process may have a

CPU burst of less than 1-time quantum. In this case, the process itself will release the CPU voluntarily.

The scheduler will then proceed to the next process in the ready queue. Otherwise, if the CPU burst of

the currently running process is longer than 1-time quantum, the timer will go off and will cause an

interrupt to the operating system. A context switch will be executed, and the process will be put at the

tail of the ready queue. The CPU scheduler will then select the next process in the ready queue.

Priority Based scheduling (Non-Preemptive): In this scheduling, processes are scheduled

according to their priorities, i.e., highest priority process is scheduled first. If priorities of two processes

match, then schedule according to arrival time. Here starvation of process is possible.

Highest Response Ratio Next (HRRN): In this scheduling, processes with highest response ratio is

scheduled. This algorithm avoids starvation.

Response Ratio = (Waiting Time + Burst time) / Burst time

Multilevel Queue Scheduling: According to the priority of process, processes are placed in the

different queues. Generally high priority process are placed in the top level queue. Only after

completion of processes from top level queue, lower level queued processes are scheduled. It can

suffer from starvation.

Multi level Feedback Queue Scheduling: It allows the process to move in between queues. The

idea is to separate processes according to the characteristics of their CPU bursts. If a process uses

too much CPU time, it is moved to a lower-priority queue.

Some useful facts about Scheduling Algorithms:

1. FCFS can cause long waiting times, especially when the first job takes too much CPU time.

2. Both SJF and Shortest Remaining time first algorithms may cause starvation. Consider asituation when the long process is there in the ready queue and shorter processes keep coming.

3. If time quantum for Round Robin scheduling is very large, then it behaves same as FCFSscheduling.

4. SJF is optimal in terms of average waiting time for a given set of processes,i.e., average waitingtime is minimum with this scheduling, but problems are, how to know/predict the time of next job.

Page 4: CPU Scheduling in Operating Systems

4/4/2020 Preemptive and Non-Preemptive Scheduling - GeeksforGeeks

https://www.geeksforgeeks.org/preemptive-and-non-preemptive-scheduling/ 1/4

Preemptive and Non-Preemptive SchedulingPrerequisite – CPU Scheduling

1. Preemptive Scheduling:Preemptive scheduling is used when a process switches from running state to ready state or from

waiting state to ready state. The resources (mainly CPU cycles) are allocated to the process for the

limited amount of time and then is taken away, and the process is again placed back in the ready

queue if that process still has CPU burst time remaining. That process stays in ready queue till it gets

next chance to execute.

Algorithms based on preemptive scheduling are: Round Robin (RR),Shortest Remaining Time First

(SRTF), Priority (preemptive version), etc.

Page 5: CPU Scheduling in Operating Systems

4/4/2020 Preemptive and Non-Preemptive Scheduling - GeeksforGeeks

https://www.geeksforgeeks.org/preemptive-and-non-preemptive-scheduling/ 2/4

2. Non-Preemptive Scheduling:Non-preemptive Scheduling is used when a process terminates, or a process switches from running to

waiting state. In this scheduling, once the resources (CPU cycles) is allocated to a process, the

process holds the CPU till it gets terminated or it reaches a waiting state. In case of non-preemptive

scheduling does not interrupt a process running CPU in middle of the execution. Instead, it waits till

the process complete its CPU burst time and then it can allocate the CPU to another process.

Algorithms based on non-preemptive scheduling are: Shortest Job First (SJF basically non

preemptive)and Priority (non preemptive version), etc.

Key Differences Between Preemptive and Non-Preemptive Scheduling:

1. In preemptive scheduling the CPU is allocated to the processes for the limited time whereas inNon-preemptive scheduling, the CPU is allocated to the process till it terminates or switches towaiting state.

2. The executing process in preemptive scheduling is interrupted in the middle of execution whenhigher priority one comes whereas, the executing process in non-preemptive scheduling is notinterrupted in the middle of execution and wait till its execution.

3. In Preemptive Scheduling, there is the overhead of switching the process from ready state torunning state, vise-verse, and maintaining the ready queue. Whereas in case of non-preemptivescheduling has no overhead of switching the process from running state to ready state.

4. In preemptive scheduling, if a high priority process frequently arrives in the ready queue then theprocess with low priority has to wait for a long, and it may have to starve. On the other hands, inthe non-preemptive scheduling, if CPU is allocated to the process having larger burst time thenthe processes with small burst time may have to starve.

Page 6: CPU Scheduling in Operating Systems

4/4/2020 Preemptive and Non-Preemptive Scheduling - GeeksforGeeks

https://www.geeksforgeeks.org/preemptive-and-non-preemptive-scheduling/ 3/4

5. Preemptive scheduling attain flexible by allowing the critical processes to access CPU as theyarrive into the ready queue, no matter what process is executing currently. Non-preemptivescheduling is called rigid as even if a critical process enters the ready queue the process runningCPU is not disturbed.

6. The Preemptive Scheduling has to maintain the integrity of shared data that’s why it is costassociative as it which is not the case with Non-preemptive Scheduling.

Comparison Chart:

PARAMENTER PREEMPTIVE SCHEDULING NON-PREEMPTIVE SCHEDULING

Basic In this resources(CPU Cycle)

are allocated to a process for a

limited time.

Once resources(CPU Cycle) are

allocated to a process, the process holds

it till it completes its burst time or

switches to waiting state.

Interrupt Process can be interrupted in

between.

Process can not be interrupted untill it

terminates itself or its time is up.

Starvation If a process having high

priority frequently arrives in the

ready queue, low priority

process may starve.

If a process with long burst time is

running CPU, then later coming process

with less CPU burst time may starve.

Overhead It has overheads of scheduling

the processes.

It does not have overheads.

Flexibility flexible rigid

Cost cost associated no cost associated

CPU

Utilization

In preemptive scheduling, CPU

utilization is high.

It is low in non preemptive scheduling.

Page 7: CPU Scheduling in Operating Systems

4/4/2020 Preemptive and Non-Preemptive Scheduling - GeeksforGeeks

https://www.geeksforgeeks.org/preemptive-and-non-preemptive-scheduling/ 4/4

PARAMENTER PREEMPTIVE SCHEDULING NON-PREEMPTIVE SCHEDULING

Examples Examples of preemptive

scheduling are Round Robin

and Shortest Remaining Time

First.

Examples of non-preemptive scheduling

are First Come First Serve and Shortest

Job First.

Page 8: CPU Scheduling in Operating Systems

Scanned by CamScanner

Page 9: CPU Scheduling in Operating Systems

Scanned by CamScanner

Page 10: CPU Scheduling in Operating Systems

Scanned by CamScanner

Page 11: CPU Scheduling in Operating Systems

Scanned by CamScanner

Page 12: CPU Scheduling in Operating Systems

Scanned by CamScanner

Page 13: CPU Scheduling in Operating Systems

Scanned by CamScanner