Title: ITEC 502 ??? ??? ? ??
1ITEC 502 ??? ??? ? ??
- Chapter 5
- CPU Scheduling
- Mi-Jung Choi
- mjchoi_at_postech.ac.kr
- DPNM Lab., Dept. of CSE, POSTECH
2Contents
- Basic Concepts
- Scheduling Criteria
- Scheduling Algorithms
- Multiple-Processor Scheduling
- Real-Time Scheduling
- Thread Scheduling
3Basic Concepts
- Process Scheduling is
- the basis of multi-programmed operating system
- Terminology
- CPU scheduling, Process scheduling, Kernel Thread
scheduling - used interchangeably, we use process scheduling
4Basic Concepts
- In a single-processor system
- Only one process can run at a time
- Any others must wait until the CPU is free and
can be rescheduled - When the running process goes to the waiting
state, - the OS may select another process to assign CPU
to improve CPU utilization - Every time one process has to wait, another
process can take over use of the CPU - Process scheduling is
- a fundamental function of operating-system
- to select a process from the ready queue and
assign the CPU - Maximum CPU utilization obtained with
multiprogramming - by process scheduling
5Diagram of Process State
- It is important to realize that only one process
can be running on any processor at any instant - Many processes may be ready and waiting states
6Process Scheduling
- Two types of queues one ready queue, a set of
device queues - Two types of resources CPU, I/O
- Arrow indicates the flow of processes in the
system
7CPU - I/O Burst Cycle
- Process execution consists of
- a cycle of CPU execution (CPU burst) and I/O
wait (I/O burst) - Process alternate between these two states
- Process execution begins with a CPU burst, which
is followed by an I/O burst, and so on - Eventually, the final CPU burst ends with a
system call to terminate execution - CPU burst distribution of a process
- varies greatly from process to process and from
computer to computer
8SchedulingIntroduction to Scheduling
- Bursts of CPU usage alternate with periods of I/O
wait - a CPU-bound process
- an I/O bound process
9Alternating Sequence of CPU I/O Bursts
10Histogram of CPU-burst Times
- CPU burst distribution is generally characterized
- as exponential or hyper-exponential
- with large number of short CPU burst and small
number of long CPU burst - I/O bound process has many short CPU bursts
- CPU bound process might have a few long CPU bursts
11Process Scheduler
- is one of OS modules
- selects one of the processes in memory that are
ready to execute, and allocates the CPU to the
selected process - CPU scheduling decisions may take place when a
process - 1. switches from running to waiting state I/O
request, invocation of wait() for the termination
of other process - 2. switches from running to ready state when
interrupt occurs - 3. switches from waiting to ready at completion
of I/O - 4. terminates
- Scheduling under 1 and 4 is non-preemptive
- Scheduling under 2 and 3 is preemptive
12Non-preemptive vs. Preemptive
- Non-preemptive scheduling
- Once the CPU has been allocated to a process, the
process keeps the CPU until it releases the CPU - either by terminating or by switching to the
waiting state - used by Windows 3.x
- Preemptive scheduling
- Current running process can be switched with
another at any time - because interrupt can occur at any time
- Most of modern OS provides this scheme (Windows
XP, Mac OS X, UNIX) - incurs a cost associated with access to shared
data among processes - affects the design of the OS kernel
- Certain OS (UNIX) waits either for a system call
to complete or for an I/O block to take place
before doing a context switch - protects critical kernel code by disabling and
enabling the interrupt at the entry and exit of
the code
13Dispatcher
- Dispatcher module is a part of a Process
Scheduler - gives control of the CPU to the process selected
by the short-term scheduler this involves - switching context
- switching to user mode
- jumping to the proper location in the user
program to restart that program - Dispatch latency time it takes for the
dispatcher to stop one process and start another
running
14Context Switch
15Scheduling Criteria
- Based on the scheduling criteria, the performance
of various scheduling algorithm could be
evaluated - Different scheduling algorithms have different
properties - CPU utilization ratio () of the amount of time
while the CPU was busy per time unit - Throughput of processes that complete their
execution per time unit - Turnaround time the interval from the time of
submission of a process to the time of
completion. Sum of the periods spent waiting to
get into memory, waiting in the ready queue,
executing on the CPU, and doing I/O - Waiting time Amount of time a process has been
waiting in the ready queue, which is affected by
scheduling algorithm - Response time In an interactive system, amount
of time it takes from when a request was
submitted until the first response is produced,
not output (for time-sharing environment)
16Optimization Criteria
- It is desirable to maximize
- The CPU utilization
- The throughput
- It is desirable to minimize
- The turnaround time
- The waiting time
- The response time
- However in some circumstances, it is desirable to
optimize the minimum or maximum values rather
than the average - Interactive systems, it is more important to
minimize the variance in the response time than
minimize the average response time
17Process Scheduling Algorithms
- First-Come, First-Served Scheduling (FCFS)
- Shortest-Job-First Scheduling (SJF)
- Priority Scheduling
- Round-Robin Scheduling
- Our measure of comparison is the average waiting
time - CPU utilization, Throughput, Turnaround time
18First-Come, First-Served (FCFS) Scheduling
- 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 - Waiting time for P1 0 P2 24 P3 27
- Average waiting time (0 24 27)/3 17
19FCFS Scheduling
- Suppose that the processes arrive in the order
- P2 , P3 , P1
- The Gantt chart for the schedule is
- Waiting time for P1 6 P2 0 P3 3
- Average waiting time (6 0 3)/3 3
- Much better than previous case
20FCFS Scheduling
21FCFS Scheduling
- FCFS scheduling algorithm is non-preemptive
- Once the CPU has been allocated to a process,
that process keeps the CPU until it releases the
CPU, either by terminating or by requesting I/O - is particularly troublesome for time-sharing
systems - Convoy effect occurs
- When one CPU-bound process with long CPU burst
and many I/O-bound process which short CPU burst - All I/O bound process waits for the CPU-bound
process to get off the CPU while I/O is idle - All I/O- and CPU- bound processes executes I/O
operation while CPU is idle - results in low CPU and device utilization
22Shortest-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 - Two schemes
- non-preemptive once CPU given to the process it
cannot be preempted until completes its CPU burst - preemptive if a new process arrives with CPU
burst length less than remaining time of current
executing process, preempt. This scheme is
known as the Shortest-Remaining-Time-First (SRTF) - SJF is optimal gives minimum average waiting
time for a given set of processes
23Example of Non-Preemptive SJF
- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- SJF (non-preemptive)
- Average waiting time (0 6 3 7)/4 4
24Example of Preemptive SJF
- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- SJF (preemptive)
- Average waiting time (9 1 0 2)/4 3
0
25Preemptive SJF Scheduling
26Non-preemptive SJF Scheduling
27Determining Length of Next CPU Burst
- can only estimate the length
- can be done by using the length of previous CPU
bursts, using exponential averaging - The value of tn contains our most recent
information - ?n stores the past history
- The parameter ? controls the relative weight of
recent and past history in our prediction
28Prediction of the Length of the Next CPU Burst
- In this example, ?0 10, ? ½
- ?1 ? x t0 (1- ?) x ?0 ½ x 6 ½ x 10 8
- ?2 ? x t1 (1- ?) x ?1 ½ x 4 ½ x 8 6
29Examples of Exponential Averaging
- ? 0
- ?n1 ?n ?n-1 ?n-2 . ?0
- Recent history does not count
- ? 1
- ?n1 ? tn
- Only the actual last CPU burst counts
- If we expand the formula, we get
- ?n1 ? tn (1 - ?)? tn - 1
- (1 - ? )j ? tn -j
- (1 - ? )n 1 ?0
- Since both ? and (1 - ?) are less than or equal
to 1, each successive term has less weight than
its predecessor
30Priority 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) - Preemptive
- Non-preemptive
- SJF is a priority scheduling where priority is
the predicted next CPU burst time - Problem ? Starvation low priority processes may
never execute - Solution ? Aging as time progresses, increase
the priority of the process
31Example of Non-Preemptive Priority
- Process Burst Time Priority
- P1 10 3
- P2 1 1
- P3 2 4
- P4 1 5
- P5 5 2
- Priority Scheduling (non-preemptive)
- Average waiting time (0 1 6 16 18)/5
8.2
P2
P5
P4
P1
P3
16
6
18
19
0
1
32Preemptive Priority Scheduling
33Non-preemptive Priority Scheduling
50
34Round Robin (RR) Scheduling
- 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 - 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 ( q time units) in chunks of at
most n x q time units at once - No process waits more than (n-1) x q time units
- Performance depends on the size of the time
quantum - q large ? RR is same as FIFO
- q small ? provides high concurrency each of n
processes has its own processor running at 1/n
the speed of the real processor
35Example of RR with Time Quantum 20
- Process Burst Time
- P1 53
- P2 17
- P3 68
- P4 24
- The Gantt chart is
- Typically, higher average turnaround than SJF,
but better response
36RR Scheduling (1)
37RR Scheduling (2)
38Time Quantum and Context Switch Time
- The effect of context switching on the
performance of RR scheduling, for example one
process of 10 time quantum - quantum 12 time units, finished in less than 1
time quantum - quantum 6 time units, requires 2 quanta, 1
context switch - quantum 1 time units, requires 10 quanta, 9
context switch
39Round Robin (RR) Scheduling
- The time quantum q must be large with respect to
context switch, otherwise overhead is too high - If the context switching time is 10 of the time
quantum, then about 10 of the CPU time will be
spent in context switching - Most modern OS have time quanta ranging from 10
to 100 milliseconds, - The time required for a context switch is
typically less than 10 microseconds thus the
context-switch time is a small fraction of the
time quantum
40Turnaround Time varies with the Time Quantum
- The turnaround time depends on the size ofthe
time quantum - The average turnaroundtime can be improvedif
most processes finish their next CPU burst in a
single time quantum - When SJF and RR used
- If quantum 6 and 7, average turnaround time
10.5 - If quantum 1, average turnaround time 11
41Scheduling Algorithm with multi-Queues
- Multi-level Queue Scheduling
- Multi-level Feedback Queue Scheduling
42Multilevel Queue
- Ready queue is partitioned into separate
queues foreground (interactive) background
(batch) - The processes are permanently assigned to one
queue, generally based on some property, or
process type - Each queue has its own scheduling algorithm
- foreground RR
- background FCFS
- Scheduling must be done between the queues
- Fixed priority scheduling - serve all from
foreground then from background, Possibility of
starvation - Time slice scheduling each queue gets a certain
amount of CPU time which it can schedule amongst
its processes i.e., 80 to foreground in RR, 20
to background in FCFS
43Multilevel Queue Scheduling
- No process in the batch queue could run unless
the queues with high priority were all empty - If an interactive editing process entered the
ready queue while a batch process was running,
the batch process would be preempted
44Multi-level Queue Scheduling
- Two-level Queues SJF with priority 0, FCFS with
priority 1 - Fixed Priority Queue
- Preemptive
45Multilevel Feedback Queue
- A process can move between the various queues
aging can be implemented in this way - Multilevel-feedback-queue scheduler defined by
the following parameters - number of queues
- scheduling algorithms for each queue
- method used to determine when to upgrade 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
46Example of Multilevel Feedback Queue
- Three queues
- Q0 RR with time quantum 8 milliseconds
- Q1 RR time quantum 16 milliseconds
- Q2 FCFS
- Scheduling
- A new job enters queue Q0 which is served RR.
When it gains CPU, job receives 8 milliseconds.
If it does not finish in 8 milliseconds, job is
moved to queue Q1 - At Q1 job is again served RR and receives 16
additional milliseconds. If it still does not
complete, it is preempted and moved to queue Q2 - The job is serverd based on FCFS in queue Q2
47Multilevel Feedback Queues
48Multi-level Feedback Queue Scheduling
- Three-level Queues
- RR with quantum 3, RR with quantum 6, FCFS with
priority 1
49Scheduling Algorithms Goals
50Scheduling in Batch Systems (1)
- An example of shortest job first scheduling
51Scheduling in Batch Systems (2)
52Scheduling in Interactive Systems (1)
- Round Robin Scheduling
- list of runnable processes
- list of runnable processes after B uses up its
quantum
53Scheduling in Interactive Systems (2)
- A scheduling algorithm with four priority classes
54Multiple-Processor Scheduling
- CPU scheduling more complex when multiple CPUs
are available - Homogeneous processors within a system or
heterogeneous processors within a system - Asymmetric multiprocessing vs. Symmetric
multiprocessing (SMP) - Symmetric Multiprocessing (SMP) each processor
makes its own scheduling decisions - Asymmetric multiprocessing only one processor
accesses the system data structures, alleviating
the need for data sharing - Load sharing on SMP system
- keeps the workload evenly distributed across all
processors in an SMP system - Push migration vs. Pull migration
55Real-Time Scheduling
- Hard real-time systems required to complete a
critical task within a guaranteed amount of time - Soft real-time computing requires that critical
processes receive priority over less fortunate
ones
56Scheduling in Real-Time Systems
- Schedulable real-time system
- Given
- m periodic events
- event i occurs within period Pi and requires Ci
seconds - Then the load can only be handled if
57Policy versus Mechanism
- Separate what is allowed to be done with how it
is done - a process knows which of its children threads are
important and need priority - Scheduling algorithm parameterized
- mechanism in the kernel
- Parameters filled in by user processes
- policy set by user process
58Thread Scheduling (1)
- On operating systems that support kernel-level
thread, it is kernel-level threads, not
processes, that are being scheduled by the
operating system. - Local Scheduling How the threads library
decides which thread to put onto an available LWP - Global Scheduling How the kernel decides which
kernel thread to run next
59Thread Scheduling (2)
- Possible scheduling of user-level threads
- 50-msec process quantum
- threads run 5 msec/CPU burst
60Thread Scheduling (3)
- Possible scheduling of kernel-level threads
- 50-msec process quantum
- threads run 5 msec/CPU burst
61Summary
- CPU scheduling is the task of selecting a waiting
process from the ready queue and allocating the
CPU to it - The CPU is allocated to the selected process by
the dispatcher - FCFS scheduling is simple, cause short processes
to wait for long time - SJF scheduling is provably optimal, providing the
shortest averaging waiting time. But predicting
the length of the next CPU bursts is difficult - Priority scheduling allocates the CPU to the
heights priority process - Both priority and SJF may suffer from starvation.
Aging is a technique to prevent starvation - RR scheduling is more appropriate for a
time-shared system - Major problem of RR scheduling is the selection
of the time quantum - FCFS is non-preemptive, RR is preemptive, SJF and
Priority may be preemptive and non-preemptive - Multilevel queue allows different scheduling
algorithm for each queue - Multilevel feedback queue allow process to move
from one queue to another
62Review
- Basic Concepts
- Scheduling Criteria
- Scheduling Algorithms
- Multiple-Processor Scheduling
- Real-Time Scheduling
- Thread Scheduling