0% found this document useful (0 votes)
66 views25 pages

Lec4 Scheduling

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views25 pages

Lec4 Scheduling

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Lecture 4

Scheduling
Algorithms
Context switching

• A context switch is the computing process of storing and restoring


the state (context) of a CPU so that execution can be resumed from
the same point later.

• This enables multiple processes to share a single CPU.

• The context switch is an essential feature of a multitasking operating


system.

• Operating systems designer try to optimize the use of context


switches.
Context switching
• The following steps are needed for a context switch to occur:
• Save the values of the program counter, registers, stack pointer.
• Change the state of the process in the PCB from running state to blocked
state.
• Update the various times for process accounting information.
• Select a new process for execution.
• Update the state field in its PCB to running.
• Update memory management related information.
• Change the context of the CPU to the new process by loading the values of
program counter and registers that were saved earlier.

• Context switching is a costly operation.


• Choose the time slice wisely.
• context switch time = T – (SUM for all processes (waiting time +
execution time))
CPU Switch From Process to Process
Process Scheduling

• Maximize CPU use, quickly switch processes onto CPU for


time sharing.

• Process scheduler selects among available processes for


next execution on CPU.

• Maintains scheduling queues of processes


• Job queue – set of all processes in the system
• Ready queue – set of all processes residing in main memory, ready
and waiting to execute
• Device queues – set of processes waiting for an I/O device

Processes migrate among the various queues


Representation of Process Scheduling

Queueing diagram represents queues, resources, flows


Schedulers
• Long-term scheduler (or job scheduler) – selects which
processes should be brought into the ready queue.
• Short-term scheduler (or CPU scheduler) – selects which
process should be executed next and allocates CPU.
• Sometimes the only scheduler in a system
• Short-term scheduler is invoked very frequently (milliseconds)
 (must be fast)

• Long-term scheduler is invoked very infrequently (seconds,


minutes)  (may be slow)

• The long-term scheduler controls the degree of


multiprogramming
Schedulers
• Types of process scheduling:

• Preemptive
• Can be taken out from the processor after the time slice gets
expire.

• Non-preemptive
• Can’t be taken out unless it completes its execution
Scheduling Algorism Criteria (5)
• CPU utilization – keep the CPU as busy as possible.
(Optimization Max)
• Throughput – # of processes that complete their execution per
time unit.
Optimization Max
• Turnaround time – amount of time to execute a particular process
Optimization Min
• Waiting time – amount of time a process has been waiting in the
ready queue
Optimization Min
• 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).
Optimization Min
First-Come First-Served (FCFS) Scheduling Alg. Or (FIFO)

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
FCFS Scheduling (Cont.)

Suppose that the processes arrive in the order:


P2 , P3 , P1
• 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.
Shortest-Job-First (SJF) Scheduling
• Associate with each process the length of its next CPU burst
• Use these lengths to schedule the process with the shortest time

• SJF is optimal – gives minimum average waiting time for a given


set of processes.

• The longer processes may starve if there is a steady supply of


shorter processes.
Example of SJF

ProcessTime Burst Time


P1 0.0 6
P2 2.0 8
P3 4.0 7
P4 5.0 3
• SJF scheduling chart

P4 P1 P3 P2

0 3 9 16 24

• Average waiting time = (0+3 + 9 + 16) / 4 = 7


Exercise (SJF)
Process Execution Time

P1 7

P2 8

P3 4

P4 3

P4 P3 P1 P2

0 7 14 22
3

Average waiting time = (0+ 3 +7 + 14 ) / 4 = 6


Shortest Remaining Time First (SRF)

• The preemptive version of SJF.

• Calculate the remaining execution time for each process

• Schedule the process with the minimum remaining time

• Like SJF, longer processes can starve in SRT algorithm


Example of Shortest-remaining-time-first

• Now we add the concepts of varying arrival times and preemption to the
analysis

ProcessA arri Arrival TimeT Burst Time


P1 0 8
P2 1 4
P3 2 9
P4 3 5
• Preemptive SJF Gantt Chart

P1 P2 P4 P1 P3

0 1 5 10 17 26

• Average waiting time = [(10-1)+(1-1)+(17-2)+(5-3)]/4 = 26/4 = 6.5 msec


Exercise (SRF)
Process Arrival Time Execution Time

P1 0 7

P2 1 3

P3 2 8

P4 3 4

P1 P2 P4 P1 P3

8 14 22
0 1 4

P1 = 8 – 1 = 7
P2 = 1 – 1 = 0
P3 = 14 – 2 = 12
P4 = 4 – 3 = 1
Average waiting time = (7 + 0 + 12 + 1) / 4 = 5
Priority Scheduling
• A priority number (integer) is associated with each process.

• The CPU is allocated to the process with the highest priority


(smallest integer  highest priority)
• Non-preemptive Alg.

• SJF is priority scheduling where priority is the inverse of predicted next


CPU burst time

• Problem  Starvation ; low priority processes may never execute

• Solution  Aging ; as time progresses increase the priority of the process


Example of Priority Scheduling

ProcessA arri Burst TimeT Priority


P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
• Priority scheduling Gantt Chart

P2 P5 P1 P3 P4

0 1 6 16 18 19

• Average waiting time = (6 + 0 + 16 + 18 + 1) / 5 = 41 / 5 = 8.2


Round Robin (RR)
• Each process gets a small unit of CPU time (time quantum q),
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.
• Timer interrupts every quantum to schedule next process.
• Performance
• q large  FIFO
• q small  q must be large with respect to context switch, otherwise
overhead is too high
Example of RR

Process Burst Time


P1 24
P2 3
P3 3
Time slice = 4
• The Gantt chart is:

P1 P2 P3 P1 P1 P1 P1 P1

0 4 7 10 14 18 22 26 30

• Typically, higher average turnaround than SJF, but better response


• q should be large compared to context switch time
• q usually 10ms to 100ms, context switch < 10 msec
Algorithm Evaluation

• How to select CPU-scheduling algorithm for an OS?


• Determine criteria, then evaluate algorithms
• Deterministic modeling
• Type of analytic evaluation
• Takes a particular predetermined workload and defines the performance
of each algorithm for that workload
• Consider 5 processes arriving at time 0:
Deterministic Evaluation

➢For each algorithm, calculate minimum average waiting time


Simple and fast, but requires exact numbers for input, applies only
to those inputs
▪ FCFS is 28ms:

▪ Non-preemptive SJF is 13ms:

▪ RR is 23ms: wt= Σ(completion time – burst time)/#P


Which is the best scheduling algorithm?

• Sometimes FCFS algorithm is better than the other in


short burst time while Round Robin is better for
multiple processes in every single time.

However, it cannot be predicted what process will come


after.

Average Waiting Time is a standard measure for giving


credit to the scheduling algorithm.
The End

You might also like