SlideShare a Scribd company logo
2
Most read
11
Most read
13
Most read
CPU
Scheduling
Algorithms

       Group No. 2   1
Overview
   Basic Concepts
   Scheduling Criteria
   Scheduling Algorithms
   Implementation in C++
   Demonstration
   Involvement of Operating System

                            CPU Scheduling Algorithms   2
Basic Concepts
   Main objective of multiprogramming is to keep on
    running processes all the time for maximum CPU
    utilization.

   Scheduling is fundamental function of OS.

   The task of selecting the processes in memory that
    are ready to execute, and allocating them to the
    CPU is performed by the CPU Scheduler.




                                 CPU Scheduling Algorithms   3
CPU Scheduler
   CPU scheduling decisions may take place when a
    process:
    o 1. Switches from running to waiting state

    o 2. Switches from running to ready state

    o 3. Switches from waiting to ready

    o 4. Terminates

   Scheduling under 1 and 4 is non preemptive.
   All other scheduling is preemptive.




                                CPU Scheduling Algorithms   4
CONT…
CPU Scheduler
   Nonpreemptive
      Once a process is allocated the CPU, it does not
      leave unless:
      o it has to wait, e.g., for I/O request 

      o it terminates  

   Preemptive
      o OS can force (preempt) a process from CPU at

        anytime
      o E.g., to allocate CPU to another higher-priority

        process 


                                  CPU Scheduling Algorithms           5
Scheduling Criteria

 CPU   utilization: keep the CPU as busy as possible
  ◦ Maximize
 Throughput: No of processes that complete their
  execution per time unit
  ◦ Maximize
 Turnaround time: amount of time to execute a
  particular process (time from submission to
  termination)
  ◦ Minimize



                               CPU Scheduling Algorithms   6
CONT…
Scheduling Criteria

   Waiting time: amount of time a process has been
    waiting in the ready queue (sum of time waiting in
    ready queue)
    o Minimize

   Response time – amount of time it takes from when
    a request was submitted until the first response is
    produced,     not    output   (for     time-sharing
    environment)
    o Minimize




                                 CPU Scheduling Algorithms           7
Scheduling Algorithms
   First Come, First Served
   Shortest Job First
   Priority
   Round Robin




                               CPU Scheduling Algorithms   8
Implementation in C++
   Class: cpuschedule
   Attributes:
         o n     – number of processes
         o Bu[ ] – Array to store Burst Time

         o A[ ]  – Array to store Arrival Time
         o Wt[ ] – Array to store Waiting Time

         o Twt   – Total Waiting Time
         o Awt   – Average Waiting Time



                                 CPU Scheduling Algorithms   9
CONT…

Implementation in C++
 Operations:
   o   Getdata() – To get number of processes and
       Burst Times from the user
   o   Fcfs() – First Come, First Served Algorithm
   o   Sjf() – Shortest Job First (normal) Algorithm
   o   SjfP() – Shortest Job First (Preemption)
       Algorithm
   o   SjfNp() – Shortest Job First (non
       preemption) Algorithm
   o   Priority() – Priority Algorithm
   o   RoundRobin() – Round Robin Algorithm

                                  CPU Scheduling Algorithms           10
First Come, First Served
                    Process Burst Time
                      P1        24
                      P2         3
                      P3        3
       Suppose that the processes arrive in the order:
         P1 , P2 , P3
       The Gantt Chart for the schedule is:
                   P1                   P2          P3


    0                              24        27           30

       Waiting time for P1 = 0; P2 = 24; P3 = 27
       Average waiting time: (0 + 24 + 27)/3 = 17
                                         CPU Scheduling Algorithms   11
First Come First                                                      CONT…


Served
   Suppose that the processes arrive in the order :
    P2 , P3 , P1 (P1:24,P2:3,P3:3)
   The Gantt chart for the schedule is:
          P2       P3                P1


      0        3        6                                  30

   Waiting time for P1 = 6; P2 = 0; P3 = 3
   Average waiting time: (6 + 0 + 3)/3 = 3
   Much better than previous case
   Convoy effect - short process behind long process


                                          CPU Scheduling Algorithms       12
Shortest Job First
                         Normal SJF
               Process               Burst Time
                 P1                        7
                   P2                        3
                   P3                        4

   The Gantt Chart for SJF (Normal) is:
          P2        P3          P1

      0        3         7                 14

   Average waiting time = (0 + 3 + 7)/3 = 3.33
                                      CPU Scheduling Algorithms   13
Shortest Job First
                                                                          CONT…



                   Non-Preemptive SJF

    Process                Arrival Time                        Burst Time
    P1                       0.0                                   7
    P2                          2.0                                       4
    P3                          4.0                                       1
    P4                          5.0                                       4
   The Gantt Chart for SJF (non-preemptive) is:
              P1                P3       P2           P4


         0    2    4   5    7        8        12               16

   Average waiting time = (0 + 6 + 3 + 7)/4 = 4
                                              CPU Scheduling Algorithms           14
Shortest Job First
                                                                                 CONT…


                              Preemptive SJF
  Process                          Arrival Time                       Burst Time
  P1                                 0.0                                  7
  P2                                 2.0                                  4
  P3                                 4.0                                  1
  P4                                 5.0                                  4

 The   Gantt Chart for SJF (preemptive) is:

            P1       P2       P3       P2       P4                  P1


        0        2        4        5        7           11                       16
 Average        waiting time = (9 + 1 + 0 +2)/4 = 3

                                                     CPU Scheduling Algorithms           15
Shortest Job First
                                                                CONT…



 Associate with each process the length of its next CPU
  burst.
 Use these lengths to schedule the process with the
  shortest time.
 Two schemes:
  o Non-Preemptive: once CPU given to the process it
    cannot be preempted until completes its CPU burst.
  o Preemptive: if a new process arrives with CPU burst
    length less than remaining time of current executing
    process, preempt. This scheme is know as the
    Shortest-Remaining-Time-First (SRTF).
 SJF is optimal: gives minimum average waiting time for a
  given set of processes.


                                    CPU Scheduling Algorithms           16
Priority
      Process                 Burst Time                        Priority
       P1                        10                               3
       P2                         1                               1
       P3                         2                               4
       P4                         1                               5
       P5                         5                               2

   Gantt Chart
            P2       P5          P1                 P3          P4


        0        1        6                   16          18           19

   Average waiting time = (6 + 0 + 16 + 18 + 1)/5 = 8.2
                                           CPU Scheduling Algorithms        17
Priority
                                                              CONT…


A   priority number (integer) is associated with each
  process.
 Lager the CPU burst lower the priority.
 The CPU is allocated to the process with the highest
  priority (smallest integer ≡ highest priority)
 Starvation (Infinity blocking): low priority processes
  may never execute.
 Aging: as time progresses increase the priority of the
  process.




                                  CPU Scheduling Algorithms           18
Round Robin
                             Process                   Burst Time
                               P1                          24
                               P2                           3
                               P3                           3

 Quantum  time = 4 milliseconds
 The Gantt chart is:


           P1       P2       P3        P1        P1        P1        P1        P1

       0        4        7        10        14        18        22        26        30
 Average   waiting time = {[0+(10-4)]+4+7}/3 = 5.6


                                                                 CPU Scheduling Algorithms   19
Round Robin
                                                               CONT…



   Typically, higher average turnaround than SJF, but
    better response
   Each process gets a small unit of CPU time (time
    quantum), usually 10-100 milliseconds. After this
    time has elapsed, the process is preempted and
    added to the end of the ready queue.
   Performance
    o q large ⇒ FCFS
    o q small ⇒ q must be large with respect to
      context switch, otherwise overhead is too high




                                   CPU Scheduling Algorithms           20
Involvement of OS
              Source Code    (.c)



  Compiler     Conversion        (.i , .o)



              Executable   (.exe)




  Microsoft                       (load executable
               Micro-kernel
  Windows                        directly to memory)


                 Memory

    CPU
                    Scheduling
                    Algorithms
    Execut
      e
                        CPU Scheduling Algorithms      21
CPU
Scheduling
Algorithms
  Group No. 2

          Group No. 2   22

More Related Content

PPTX
SCHEDULING ALGORITHMS
PPTX
DeadLock in Operating-Systems
PPTX
CPU Scheduling in OS Presentation
PPT
Priority scheduling algorithms
PDF
Process scheduling (CPU Scheduling)
PPTX
Cpu scheduling
PPTX
Distributed operating system
PPSX
CPU Scheduling algorithms
SCHEDULING ALGORITHMS
DeadLock in Operating-Systems
CPU Scheduling in OS Presentation
Priority scheduling algorithms
Process scheduling (CPU Scheduling)
Cpu scheduling
Distributed operating system
CPU Scheduling algorithms

What's hot (20)

PPTX
Cpu scheduling in operating System.
PPTX
Process scheduling
PDF
OS - Process Concepts
PPTX
Thread scheduling in Operating Systems
PPTX
Semophores and it's types
PPTX
Process scheduling
PPT
Scheduling algorithms
PPTX
MULTILEVEL QUEUE SCHEDULING
PPTX
Structure of operating system
PPTX
Operating system Dead lock
PPTX
Threads .ppt
PPT
Process management in os
PPT
Operating Systems Process Scheduling Algorithms
PDF
Methods for handling deadlocks
PDF
Multithreading
PPTX
Distributed Mutual Exclusion and Distributed Deadlock Detection
PPTX
Page replacement algorithms
PPTX
Process management os concept
Cpu scheduling in operating System.
Process scheduling
OS - Process Concepts
Thread scheduling in Operating Systems
Semophores and it's types
Process scheduling
Scheduling algorithms
MULTILEVEL QUEUE SCHEDULING
Structure of operating system
Operating system Dead lock
Threads .ppt
Process management in os
Operating Systems Process Scheduling Algorithms
Methods for handling deadlocks
Multithreading
Distributed Mutual Exclusion and Distributed Deadlock Detection
Page replacement algorithms
Process management os concept
Ad

Viewers also liked (17)

PDF
Process Scheduling
PDF
Os Question Bank
PPTX
Scheduling Algorithms
PDF
OS - CPU Scheduling
PPTX
CPU scheduling algorithms in OS
PPTX
Programming Key terms Flash Cards
PPTX
Cpu presentation
PPTX
Central Processing Unit
PPT
Cpu ppt cse
PPTX
GCSE Compuitng Hardware Key terms
PPT
Cpu Scheduling Galvin
PPT
Motherboard
PPT
Motherboard components and their functions
PPT
Chapter 4 Microprocessor CPU
PPT
Process Synchronization And Deadlocks
PPSX
Process scheduling
PPTX
Motherboard and its components
Process Scheduling
Os Question Bank
Scheduling Algorithms
OS - CPU Scheduling
CPU scheduling algorithms in OS
Programming Key terms Flash Cards
Cpu presentation
Central Processing Unit
Cpu ppt cse
GCSE Compuitng Hardware Key terms
Cpu Scheduling Galvin
Motherboard
Motherboard components and their functions
Chapter 4 Microprocessor CPU
Process Synchronization And Deadlocks
Process scheduling
Motherboard and its components
Ad

Similar to CPU Scheduling Algorithms (20)

PDF
cpu schduling ppt.pdf
PPT
Os module 2 ba
PDF
Algorithm o.s.
PPTX
Week 5a.pptx of cpu scheduling operating system class
PDF
5 Process Scheduling
PPTX
Cpu scheduling
PPT
Sa by shekhar
PPT
Process Scheduling in Ope Spptystems rating
PPT
ch6- CPU scheduling https://www.slideshare.net/slideshow/operating-system-18-...
PPT
Operating System 5
PDF
Lec SRTF, Priority, RR scheduling OS.pdf
PPT
PPT
OS-operating systems- ch05 (CPU Scheduling) ...
PPTX
CPU Scheduling
DOC
Operating Systems Third Unit - Fourth Semester - Engineering
PDF
Fcfs and sjf
PPT
Reviewer cpu scheduling
cpu schduling ppt.pdf
Os module 2 ba
Algorithm o.s.
Week 5a.pptx of cpu scheduling operating system class
5 Process Scheduling
Cpu scheduling
Sa by shekhar
Process Scheduling in Ope Spptystems rating
ch6- CPU scheduling https://www.slideshare.net/slideshow/operating-system-18-...
Operating System 5
Lec SRTF, Priority, RR scheduling OS.pdf
OS-operating systems- ch05 (CPU Scheduling) ...
CPU Scheduling
Operating Systems Third Unit - Fourth Semester - Engineering
Fcfs and sjf
Reviewer cpu scheduling

Recently uploaded (20)

PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Machine learning based COVID-19 study performance prediction
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
A Presentation on Artificial Intelligence
PPTX
Big Data Technologies - Introduction.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Approach and Philosophy of On baking technology
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation theory and applications.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Modernizing your data center with Dell and AMD
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Machine learning based COVID-19 study performance prediction
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation_ Review paper, used for researhc scholars
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A Presentation on Artificial Intelligence
Big Data Technologies - Introduction.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Approach and Philosophy of On baking technology
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation theory and applications.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Unlocking AI with Model Context Protocol (MCP)
Understanding_Digital_Forensics_Presentation.pptx
Modernizing your data center with Dell and AMD

CPU Scheduling Algorithms

  • 2. Overview  Basic Concepts  Scheduling Criteria  Scheduling Algorithms  Implementation in C++  Demonstration  Involvement of Operating System CPU Scheduling Algorithms 2
  • 3. Basic Concepts  Main objective of multiprogramming is to keep on running processes all the time for maximum CPU utilization.  Scheduling is fundamental function of OS.  The task of selecting the processes in memory that are ready to execute, and allocating them to the CPU is performed by the CPU Scheduler. CPU Scheduling Algorithms 3
  • 4. CPU Scheduler  CPU scheduling decisions may take place when a process: o 1. Switches from running to waiting state o 2. Switches from running to ready state o 3. Switches from waiting to ready o 4. Terminates  Scheduling under 1 and 4 is non preemptive.  All other scheduling is preemptive. CPU Scheduling Algorithms 4
  • 5. CONT… CPU Scheduler  Nonpreemptive Once a process is allocated the CPU, it does not leave unless: o it has to wait, e.g., for I/O request  o it terminates    Preemptive o OS can force (preempt) a process from CPU at anytime o E.g., to allocate CPU to another higher-priority process  CPU Scheduling Algorithms 5
  • 6. Scheduling Criteria  CPU utilization: keep the CPU as busy as possible ◦ Maximize  Throughput: No of processes that complete their execution per time unit ◦ Maximize  Turnaround time: amount of time to execute a particular process (time from submission to termination) ◦ Minimize CPU Scheduling Algorithms 6
  • 7. CONT… Scheduling Criteria  Waiting time: amount of time a process has been waiting in the ready queue (sum of time waiting in ready queue) o Minimize  Response time – amount of time it takes from when a request was submitted until the first response is produced, not output  (for time-sharing environment) o Minimize CPU Scheduling Algorithms 7
  • 8. Scheduling Algorithms  First Come, First Served  Shortest Job First  Priority  Round Robin CPU Scheduling Algorithms 8
  • 9. Implementation in C++  Class: cpuschedule  Attributes: o n – number of processes o Bu[ ] – Array to store Burst Time o A[ ] – Array to store Arrival Time o Wt[ ] – Array to store Waiting Time o Twt – Total Waiting Time o Awt – Average Waiting Time CPU Scheduling Algorithms 9
  • 10. CONT… Implementation in C++  Operations: o Getdata() – To get number of processes and Burst Times from the user o Fcfs() – First Come, First Served Algorithm o Sjf() – Shortest Job First (normal) Algorithm o SjfP() – Shortest Job First (Preemption) Algorithm o SjfNp() – Shortest Job First (non preemption) Algorithm o Priority() – Priority Algorithm o RoundRobin() – Round Robin Algorithm CPU Scheduling Algorithms 10
  • 11. First Come, First Served Process Burst Time P1 24 P2 3 P3 3  Suppose that the processes arrive in the order: P1 , P2 , P3  The Gantt Chart for the schedule is: P1 P2 P3 0 24 27 30  Waiting time for P1 = 0; P2 = 24; P3 = 27  Average waiting time: (0 + 24 + 27)/3 = 17 CPU Scheduling Algorithms 11
  • 12. First Come First CONT… Served  Suppose that the processes arrive in the order : P2 , P3 , P1 (P1:24,P2:3,P3:3)  The Gantt chart for the schedule is: P2 P3 P1 0 3 6 30  Waiting time for P1 = 6; P2 = 0; P3 = 3  Average waiting time: (6 + 0 + 3)/3 = 3  Much better than previous case  Convoy effect - short process behind long process CPU Scheduling Algorithms 12
  • 13. Shortest Job First Normal SJF Process Burst Time P1 7 P2 3 P3 4  The Gantt Chart for SJF (Normal) is: P2 P3 P1 0 3 7 14  Average waiting time = (0 + 3 + 7)/3 = 3.33 CPU Scheduling Algorithms 13
  • 14. Shortest Job First CONT… Non-Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4  The Gantt Chart for SJF (non-preemptive) is: P1 P3 P2 P4 0 2 4 5 7 8 12 16  Average waiting time = (0 + 6 + 3 + 7)/4 = 4 CPU Scheduling Algorithms 14
  • 15. Shortest Job First CONT… Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4  The Gantt Chart for SJF (preemptive) is: P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16  Average waiting time = (9 + 1 + 0 +2)/4 = 3 CPU Scheduling Algorithms 15
  • 16. Shortest Job First CONT…  Associate with each process the length of its next CPU burst.  Use these lengths to schedule the process with the shortest time.  Two schemes: o Non-Preemptive: once CPU given to the process it cannot be preempted until completes its CPU burst. o Preemptive: if a new process arrives with CPU burst length less than remaining time of current executing process, preempt. This scheme is know as the Shortest-Remaining-Time-First (SRTF).  SJF is optimal: gives minimum average waiting time for a given set of processes. CPU Scheduling Algorithms 16
  • 17. Priority Process Burst Time Priority P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2  Gantt Chart P2 P5 P1 P3 P4 0 1 6 16 18 19  Average waiting time = (6 + 0 + 16 + 18 + 1)/5 = 8.2 CPU Scheduling Algorithms 17
  • 18. Priority CONT… A priority number (integer) is associated with each process.  Lager the CPU burst lower the priority.  The CPU is allocated to the process with the highest priority (smallest integer ≡ highest priority)  Starvation (Infinity blocking): low priority processes may never execute.  Aging: as time progresses increase the priority of the process. CPU Scheduling Algorithms 18
  • 19. Round Robin Process Burst Time P1 24 P2 3 P3 3  Quantum time = 4 milliseconds  The Gantt chart is: P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30  Average waiting time = {[0+(10-4)]+4+7}/3 = 5.6 CPU Scheduling Algorithms 19
  • 20. Round Robin CONT…  Typically, higher average turnaround than SJF, but better response  Each process gets a small unit of CPU time (time quantum), usually 10-100 milliseconds. After this time has elapsed, the process is preempted and added to the end of the ready queue.  Performance o q large ⇒ FCFS o q small ⇒ q must be large with respect to context switch, otherwise overhead is too high CPU Scheduling Algorithms 20
  • 21. Involvement of OS Source Code (.c) Compiler Conversion (.i , .o) Executable (.exe) Microsoft (load executable Micro-kernel Windows directly to memory) Memory CPU Scheduling Algorithms Execut e CPU Scheduling Algorithms 21
  • 22. CPU Scheduling Algorithms Group No. 2 Group No. 2 22

Editor's Notes

  • #18: Sonali C. UDIT CPU Scheduling Aging - Gradually increasing the priority of process that waits in the system for long time.