Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
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

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

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