KEMBAR78
Window scheduling algorithm | PPT
1
““Windows Scheduling Algorithm””
ADVANCE OPERATING SYSTEM
Basic ConceptsBasic Concepts
 Maximum CPU utilization is obtained with multiprogramming
◦ Several processes are kept in memory at one time
◦ Every time a running process has to wait, another process can take over use of
the CPU
 Scheduling of the CPU is fundamental to operating system design
 Process execution consists of a cycle of a CPU time burst and an I/O time burst
(i.e. wait)
◦ Processes alternate between these two states (i.e., CPU burst and I/O burst)
◦ Eventually, the final CPU burst ends with a system request to terminate
execution
Alternating Sequence of CPUAlternating Sequence of CPU
And I/O BurstsAnd I/O Bursts
CPU SchedulerCPU Scheduler
 The CPU scheduler selects from among the processes in memory that are ready to
execute and allocates the CPU to one of them
 CPU scheduling is affected by the following set of circumstances:
(N) A process switches from running to waiting state
(P) A process switches from running to ready state
(P) A process switches from waiting to ready state
(N) A processes switches from running to terminated state
 Circumstances 1 and 4 are non-preemptive; they offer no schedule choice
 Circumstances 2 and 3 are pre-emptive; they can be scheduled
Scheduling CriteriaScheduling Criteria
Different CPU scheduling algorithms have different properties
 In choosing which algorithm to use, the properties of the various algorithms should
be considered
 Criteria for comparing CPU scheduling algorithms may include the following
◦ CPU utilization – percent of time that the CPU is busy executing a process
◦ Throughput – number of processes that are completed per time unit
◦ Response time – amount of time it takes from when a request was submitted
until the first response occurs (but not the time it takes to output the entire
response)
◦ Waiting time – the amount of time before a process starts after first entering the
ready queue (or the sum of the amount of time a process has spent waiting in the
ready queue)
◦ Turnaround time – amount of time to execute a particular process from the time
of submission through the time of completion
Optimization CriteriaOptimization Criteria
 It is desirable to
◦ Maximize CPU utilization
◦ Maximize throughput
◦ Minimize turnaround time
◦ Minimize start time
◦ Minimize waiting time
◦ Minimize response time
 In most cases, we strive to optimize the average measure of each metric
 In other cases, it is more important to optimize the minimum or maximum values
rather than the average
 First Come, First Served (FCFS)
 Shortest Job First (SJF)
 Priority
 Round Robin (RR)
SINGLE PROCESSOR SCHEDULINGSINGLE PROCESSOR SCHEDULING
ALGORITHMSALGORITHMS
ProcessBurst Time
P1 24
P2 3
P3 3
 With FCFS, the process that requests the CPU first is allocated the CPU first
 Case #1: Suppose that the processes arrive in the order: P1 , P2 , P3
The Gantt Chart for the schedule is:
 Waiting time for P1 = 0; P2 = 24; P3 = 27
 Average waiting time: (0 + 24 + 27)/3 = 17
 Average turn-around time: (24 + 27 + 30)/3 = 27
FIRST-COME, FIRST-SERVED (FCFS)FIRST-COME, FIRST-SERVED (FCFS)
SCHEDULINGSCHEDULING
P1 P2 P3
24 27 300
FCFS Scheduling (Cont.)FCFS Scheduling (Cont.)
 Case #2: Suppose that the processes arrive in the order: P2 , P3 , P1
 The Gantt chart for the schedule is:
P1P3P2
63 300
Waiting time for P1 = 6; P2 = 0; P3 = 3
Average waiting time: (6 + 0 + 3)/3 = 3 (Much better than Case #1)
Average turn-around time: (3 + 6 + 30)/3 = 13
FCFS Scheduling (Cont.)FCFS Scheduling (Cont.)
 Case #1 is an example of the convoy effect; all the other processes wait for one
long-running process to finish using the CPU
◦ This problem results in lower CPU and device utilization;
 Case #2 shows that higher utilization might be possible if the short processes
were allowed to run first
 The FCFS scheduling algorithm is non-preemptive
◦ Once the CPU has been allocated to a process, that process keeps the CPU until
it releases it either by terminating or by requesting I/O
◦ It is a troublesome algorithm for time-sharing systems
Priority SchedulingPriority Scheduling
 The SJF algorithm is a special case of the general priority scheduling algorithm
 A priority number (integer) is associated with each process
 The CPU is allocated to the process with the highest priority (smallest integer =
highest priority)
 Priority scheduling can be either preemptive or non-preemptive
◦ A preemptive approach will preempt the CPU if the priority of the newly-arrived
process is higher than the priority of the currently running process
◦ A non-preemptive approach will simply put the new process (with the highest
priority) at the head of the ready queue
 SJF is a priority scheduling algorithm where priority is the predicted next CPU
burst time
 The main problem with priority scheduling is starvation, that is, low priority
processes may never execute
 A solution is aging; as time progresses, the priority of a process in the ready queue
is increased
ROUND ROBIN (RR) SCHEDULINGROUND ROBIN (RR) SCHEDULING
•In the round robin algorithm, each process gets a small unit of CPU time (a time
quantum), usually 10-100 milliseconds. After this time has elapsed, the process is
preempted and added to the end of the ready queue.
•If there are n processes in the ready queue and the time quantum is q, then each
process gets 1/n of the CPU time in chunks of at most q time units at once. No process
waits more than (n-1)q time units.
•Performance of the round robin algorithm
•q large  FCFS
•q small  q must be greater than the context switch time; otherwise, the overhead
is too high
•One rule of thumb is that 80% of the CPU bursts should be shorter than the time
quantum
Process Burst Time
P1 53
P2 17
P3 68
P4 24
 The Gantt chart is:
EXAMPLE OF RR WITH TIMEEXAMPLE OF RR WITH TIME
QUANTUM = 20QUANTUM = 20
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Example of RR with TimeExample of RR with Time
Quantum = 20Quantum = 20
 Typically, higher average turnaround than SJF, but better response time
 Average waiting time
= ( [(0 – 0) + (77 - 20) + (121 – 97)] + (20 – 0) + [(37 – 0) + (97 - 57) +
(134 – 117)] + [(57 – 0) + (117 – 77)] ) / 4
= (0 + 57 + 24) + 20 + (37 + 40 + 17) + (57 + 40) ) / 4
= (81 + 20 + 94 + 97)/4
= 292 / 4 = 73
 Average turn-around time = 134 + 37 + 162 + 121) / 4 = 113.5
 In multi-level feedback queue scheduling, a process can move between the various
queues; aging can be implemented this way
 A multilevel-feedback-queue scheduler is defined by the following parameters:
◦ Number of queues
◦ Scheduling algorithms for each queue
◦ Method used to determine when to promote a process
◦ Method used to determine when to demote a process
◦ Method used to determine which queue a process will enter when that process
needs service
MULTILEVEL FEEDBACK QUEUEMULTILEVEL FEEDBACK QUEUE
SCHEDULINGSCHEDULING
EXAMPLE OF MULTILEVEL FEEDBACKEXAMPLE OF MULTILEVEL FEEDBACK
QUEUEQUEUE
 Scheduling
◦ A new job enters queue Q0 (RR) and is placed at the end. When it gains the
CPU, the job receives 8 milliseconds. If it does not finish in 8 milliseconds, the
job is moved to the end of queue Q1.
◦ A Q1 (RR) job receives 16 milliseconds. If it still does not complete, it is
preempted and moved to queue Q2 (FCFS).
WINDOWS XP SCHEDULINGWINDOWS XP SCHEDULING
 Windows XP schedules threads using a priority-based, preemptive scheduling
algorithm
 The scheduler ensures that the highest priority thread will always run
 The portion of the Windows kernel that handles scheduling is called the
dispatcher
 A thread selected to run by the dispatcher will run until it is preempted by a
higher-priority thread, until it terminates, until its time quantum ends, or until it
calls a blocking system call such as I/O
 If a higher-priority real-time thread becomes ready while a lower-priority thread
is running, lower-priority thread will be preempted
◦ This preemption gives a real-time thread preferential access to the CPU when
the thread needs such access
 The dispatcher uses a 32-level priority scheme to determine the order of thread
execution
 Priorities are divided into two classes
◦ The variable class contains threads having priorities 1 to 15
◦ The real-time class contains threads with priorities ranging from 16 to 31
◦ There is also a thread running at priority 0 that is used for memory management
 The dispatcher uses a queue for each scheduling priority and traverses the set of
queues from highest to lowest until it finds a thread that is ready to run
 If no ready thread is found, the dispatcher will execute a special thread called the
idle thread
WINDOWS XP SCHEDULINGWINDOWS XP SCHEDULING
Windows XP SchedulingWindows XP Scheduling
 There is a relationship between the numeric priorities of the Windows XP kernel
and the Win32 API
 The Windows Win32 API identifies six priority classes to which a process can
belong as shown below
◦ Real-time priority class
◦ High priority class
◦ Above normal priority class
◦ Normal priority class
◦ Below normal priority class
◦ Low priority class
 Priorities in all classes except the read-time priority class are variable
◦ This means that the priority of a thread in one of these classes can change
Windows XP SchedulingWindows XP Scheduling
 Within each of the priority classes is a relative priority as shown below
 The priority of each thread is based on the priority class it belongs to and its relative
priority within that class
Windows XP SchedulingWindows XP Scheduling
 The initial priority of a thread is typically the base priority of the process that the
thread belongs to
 When a thread’s time quantum runs out, that thread is interrupted
 If the thread is in the variable-priority class, its priority is lowered
◦ However, the priority is never lowered below the base priority
 Lowering the thread’s priority tends to limit the CPU consumption of compute-
bound threads
Windows XP SchedulingWindows XP Scheduling
When a variable-priority thread is released from a wait operation, the
dispatcher boosts the priority
The amount of boost depends on what the thread was waiting for
A thread that was waiting for keyboard I/O would get a large increase
A thread that was waiting for a disk operation would get a moderate
increase
This strategy tends to give good response time to interactive threads that are
using the mouse and windows
It also enables I/O-bound threads to keep the I/O devices busy while
permitting compute-bound threads to use spare CPU cycles in the background
This strategy is used by several time-sharing operating systems, including
UNIX
In addition, the window with which the user is currently interacting receives a
priority boost to enhance its response time
Windows XP SchedulingWindows XP Scheduling
 When a user is running an interactive program, the system needs to provide
especially good performance for that process
 Therefore, Windows XP has a special scheduling rule for processes in the normal
priority class
 Windows XP distinguishes between the foreground process that is currently
selected on the screen and the background processes that are not currently selected
 When a process moves in the foreground, Windows XP increases the scheduling
quantum by some factor – typically by 3
 This increase gives the foreground process three times longer to run before a time-
sharing preemption occurs
THANK YOUTHANK YOU

Window scheduling algorithm

  • 1.
  • 2.
    Basic ConceptsBasic Concepts Maximum CPU utilization is obtained with multiprogramming ◦ Several processes are kept in memory at one time ◦ Every time a running process has to wait, another process can take over use of the CPU  Scheduling of the CPU is fundamental to operating system design  Process execution consists of a cycle of a CPU time burst and an I/O time burst (i.e. wait) ◦ Processes alternate between these two states (i.e., CPU burst and I/O burst) ◦ Eventually, the final CPU burst ends with a system request to terminate execution
  • 3.
    Alternating Sequence ofCPUAlternating Sequence of CPU And I/O BurstsAnd I/O Bursts
  • 4.
    CPU SchedulerCPU Scheduler The CPU scheduler selects from among the processes in memory that are ready to execute and allocates the CPU to one of them  CPU scheduling is affected by the following set of circumstances: (N) A process switches from running to waiting state (P) A process switches from running to ready state (P) A process switches from waiting to ready state (N) A processes switches from running to terminated state  Circumstances 1 and 4 are non-preemptive; they offer no schedule choice  Circumstances 2 and 3 are pre-emptive; they can be scheduled
  • 5.
    Scheduling CriteriaScheduling Criteria DifferentCPU scheduling algorithms have different properties  In choosing which algorithm to use, the properties of the various algorithms should be considered  Criteria for comparing CPU scheduling algorithms may include the following ◦ CPU utilization – percent of time that the CPU is busy executing a process ◦ Throughput – number of processes that are completed per time unit ◦ Response time – amount of time it takes from when a request was submitted until the first response occurs (but not the time it takes to output the entire response) ◦ Waiting time – the amount of time before a process starts after first entering the ready queue (or the sum of the amount of time a process has spent waiting in the ready queue) ◦ Turnaround time – amount of time to execute a particular process from the time of submission through the time of completion
  • 6.
    Optimization CriteriaOptimization Criteria It is desirable to ◦ Maximize CPU utilization ◦ Maximize throughput ◦ Minimize turnaround time ◦ Minimize start time ◦ Minimize waiting time ◦ Minimize response time  In most cases, we strive to optimize the average measure of each metric  In other cases, it is more important to optimize the minimum or maximum values rather than the average
  • 7.
     First Come,First Served (FCFS)  Shortest Job First (SJF)  Priority  Round Robin (RR) SINGLE PROCESSOR SCHEDULINGSINGLE PROCESSOR SCHEDULING ALGORITHMSALGORITHMS
  • 8.
    ProcessBurst Time P1 24 P23 P3 3  With FCFS, the process that requests the CPU first is allocated the CPU first  Case #1: Suppose that the processes arrive in the order: P1 , P2 , P3 The Gantt Chart for the schedule is:  Waiting time for P1 = 0; P2 = 24; P3 = 27  Average waiting time: (0 + 24 + 27)/3 = 17  Average turn-around time: (24 + 27 + 30)/3 = 27 FIRST-COME, FIRST-SERVED (FCFS)FIRST-COME, FIRST-SERVED (FCFS) SCHEDULINGSCHEDULING P1 P2 P3 24 27 300
  • 9.
    FCFS Scheduling (Cont.)FCFSScheduling (Cont.)  Case #2: Suppose that the processes arrive in the order: P2 , P3 , P1  The Gantt chart for the schedule is: P1P3P2 63 300 Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 (Much better than Case #1) Average turn-around time: (3 + 6 + 30)/3 = 13
  • 10.
    FCFS Scheduling (Cont.)FCFSScheduling (Cont.)  Case #1 is an example of the convoy effect; all the other processes wait for one long-running process to finish using the CPU ◦ This problem results in lower CPU and device utilization;  Case #2 shows that higher utilization might be possible if the short processes were allowed to run first  The FCFS scheduling algorithm is non-preemptive ◦ Once the CPU has been allocated to a process, that process keeps the CPU until it releases it either by terminating or by requesting I/O ◦ It is a troublesome algorithm for time-sharing systems
  • 11.
    Priority SchedulingPriority Scheduling The SJF algorithm is a special case of the general priority scheduling algorithm  A priority number (integer) is associated with each process  The CPU is allocated to the process with the highest priority (smallest integer = highest priority)  Priority scheduling can be either preemptive or non-preemptive ◦ A preemptive approach will preempt the CPU if the priority of the newly-arrived process is higher than the priority of the currently running process ◦ A non-preemptive approach will simply put the new process (with the highest priority) at the head of the ready queue  SJF is a priority scheduling algorithm where priority is the predicted next CPU burst time  The main problem with priority scheduling is starvation, that is, low priority processes may never execute  A solution is aging; as time progresses, the priority of a process in the ready queue is increased
  • 12.
    ROUND ROBIN (RR)SCHEDULINGROUND ROBIN (RR) SCHEDULING •In the round robin algorithm, each process gets a small unit of CPU time (a time quantum), usually 10-100 milliseconds. After this time has elapsed, the process is preempted and added to the end of the ready queue. •If there are n processes in the ready queue and the time quantum is q, then each process gets 1/n of the CPU time in chunks of at most q time units at once. No process waits more than (n-1)q time units. •Performance of the round robin algorithm •q large  FCFS •q small  q must be greater than the context switch time; otherwise, the overhead is too high •One rule of thumb is that 80% of the CPU bursts should be shorter than the time quantum
  • 13.
    Process Burst Time P153 P2 17 P3 68 P4 24  The Gantt chart is: EXAMPLE OF RR WITH TIMEEXAMPLE OF RR WITH TIME QUANTUM = 20QUANTUM = 20 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162
  • 14.
    Example of RRwith TimeExample of RR with Time Quantum = 20Quantum = 20  Typically, higher average turnaround than SJF, but better response time  Average waiting time = ( [(0 – 0) + (77 - 20) + (121 – 97)] + (20 – 0) + [(37 – 0) + (97 - 57) + (134 – 117)] + [(57 – 0) + (117 – 77)] ) / 4 = (0 + 57 + 24) + 20 + (37 + 40 + 17) + (57 + 40) ) / 4 = (81 + 20 + 94 + 97)/4 = 292 / 4 = 73  Average turn-around time = 134 + 37 + 162 + 121) / 4 = 113.5
  • 15.
     In multi-levelfeedback queue scheduling, a process can move between the various queues; aging can be implemented this way  A multilevel-feedback-queue scheduler is defined by the following parameters: ◦ Number of queues ◦ Scheduling algorithms for each queue ◦ Method used to determine when to promote a process ◦ Method used to determine when to demote a process ◦ Method used to determine which queue a process will enter when that process needs service MULTILEVEL FEEDBACK QUEUEMULTILEVEL FEEDBACK QUEUE SCHEDULINGSCHEDULING
  • 16.
    EXAMPLE OF MULTILEVELFEEDBACKEXAMPLE OF MULTILEVEL FEEDBACK QUEUEQUEUE  Scheduling ◦ A new job enters queue Q0 (RR) and is placed at the end. When it gains the CPU, the job receives 8 milliseconds. If it does not finish in 8 milliseconds, the job is moved to the end of queue Q1. ◦ A Q1 (RR) job receives 16 milliseconds. If it still does not complete, it is preempted and moved to queue Q2 (FCFS).
  • 17.
    WINDOWS XP SCHEDULINGWINDOWSXP SCHEDULING  Windows XP schedules threads using a priority-based, preemptive scheduling algorithm  The scheduler ensures that the highest priority thread will always run  The portion of the Windows kernel that handles scheduling is called the dispatcher  A thread selected to run by the dispatcher will run until it is preempted by a higher-priority thread, until it terminates, until its time quantum ends, or until it calls a blocking system call such as I/O  If a higher-priority real-time thread becomes ready while a lower-priority thread is running, lower-priority thread will be preempted ◦ This preemption gives a real-time thread preferential access to the CPU when the thread needs such access
  • 18.
     The dispatcheruses a 32-level priority scheme to determine the order of thread execution  Priorities are divided into two classes ◦ The variable class contains threads having priorities 1 to 15 ◦ The real-time class contains threads with priorities ranging from 16 to 31 ◦ There is also a thread running at priority 0 that is used for memory management  The dispatcher uses a queue for each scheduling priority and traverses the set of queues from highest to lowest until it finds a thread that is ready to run  If no ready thread is found, the dispatcher will execute a special thread called the idle thread WINDOWS XP SCHEDULINGWINDOWS XP SCHEDULING
  • 19.
    Windows XP SchedulingWindowsXP Scheduling  There is a relationship between the numeric priorities of the Windows XP kernel and the Win32 API  The Windows Win32 API identifies six priority classes to which a process can belong as shown below ◦ Real-time priority class ◦ High priority class ◦ Above normal priority class ◦ Normal priority class ◦ Below normal priority class ◦ Low priority class  Priorities in all classes except the read-time priority class are variable ◦ This means that the priority of a thread in one of these classes can change
  • 20.
    Windows XP SchedulingWindowsXP Scheduling  Within each of the priority classes is a relative priority as shown below  The priority of each thread is based on the priority class it belongs to and its relative priority within that class
  • 21.
    Windows XP SchedulingWindowsXP Scheduling  The initial priority of a thread is typically the base priority of the process that the thread belongs to  When a thread’s time quantum runs out, that thread is interrupted  If the thread is in the variable-priority class, its priority is lowered ◦ However, the priority is never lowered below the base priority  Lowering the thread’s priority tends to limit the CPU consumption of compute- bound threads
  • 22.
    Windows XP SchedulingWindowsXP Scheduling When a variable-priority thread is released from a wait operation, the dispatcher boosts the priority The amount of boost depends on what the thread was waiting for A thread that was waiting for keyboard I/O would get a large increase A thread that was waiting for a disk operation would get a moderate increase This strategy tends to give good response time to interactive threads that are using the mouse and windows It also enables I/O-bound threads to keep the I/O devices busy while permitting compute-bound threads to use spare CPU cycles in the background This strategy is used by several time-sharing operating systems, including UNIX In addition, the window with which the user is currently interacting receives a priority boost to enhance its response time
  • 23.
    Windows XP SchedulingWindowsXP Scheduling  When a user is running an interactive program, the system needs to provide especially good performance for that process  Therefore, Windows XP has a special scheduling rule for processes in the normal priority class  Windows XP distinguishes between the foreground process that is currently selected on the screen and the background processes that are not currently selected  When a process moves in the foreground, Windows XP increases the scheduling quantum by some factor – typically by 3  This increase gives the foreground process three times longer to run before a time- sharing preemption occurs
  • 24.