Uploaded by Asad Haroon

cpu-scheduling

advertisement
Chapter 6:
Scheduling Algorithms
Dr. Amjad Ali
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 at
a later time.

This enables multiple processes to share a single CPU.

The context switch is an essential feature of a multitasking operating
system.

Context switches are usually computationally intensive and much of the
design of operating systems is 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.

< 10 usec
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
multiprogramming
controls
the
degree
of
Schedulers
 Processes can be described as either:

I/O-bound process – spends more time doing I/O than computations,
many short CPU bursts

CPU-bound process – spends more time doing computations; few very
long CPU bursts
 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 Criteria
 CPU utilization – keep the CPU as busy as possible
 Throughput – # of processes that complete their execution per unit
time
 Turn around time – amount of time to execute a particular process
 Waiting time – amount of time a process has been waiting in the ready
queue
 Response time – amount of time it takes from when a request was
submitted until the first response is produced, not output (for timesharing environment)
Scheduling Algorithm Optimization Criteria
 Max CPU utilization
 Max throughput
 Min turnaround time
 Min waiting time
 Min response time
First-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:
P1
0
P2
24
 Waiting time for P1 = 0; P2 = 24; P3 = 27
 Average waiting time: (0 + 24 + 27)/3 = 17
P3
27
30
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order:
P2 , P3 , P 1
 The Gantt chart for the schedule is:
P2
0
P3
3
P1
6
 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
30
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
0
P3
P1
3
9
P2
16
 Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
24
Class Exercise
Process
Execution Time
P1
7
P2
8
P3
4
P4
3
Class Exercise
Process
Execution Time
P1
7
P2
8
P3
4
P4
3
P4
0
P1
P3
3
7
P2
14
Average waiting time = (7 + 14 + 3 + 0) / 4 = 6
22
Shortest Remaining Time First
 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
ProcessAarri Arrival TimeT
Burst Time
P1
0
8
P2
1
4
P3
2
9
P4
3
5
 Preemptive SJF Gantt Chart
0
1
P1
P4
P2
P1
5
10
P3
17
26
 Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec
Class Exercise
Process
Arrival Time
Execution Time
P1
0
7
P2
1
3
P3
2
8
P4
3
4
Class Exercise
P1
0
Process
Arrival Time
Execution Time
P1
0
7
P2
1
3
P3
2
8
P4
3
4
P2
1
P1
P4
4
8
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
P3
14
22
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)

Preemptive

Non-preemptive
 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
0
P1
P5
P2
1
6
 Average waiting time = 8.2 msec
P3
16
P4
18
19
Round Robin (RR)
 Each process gets a small unit of CPU time (time quantum or time
slice) q, usually 10-100 milliseconds. After this time has elapsed, the
process is preempted and added to the end or tail of the ready queue
which is treated as circular 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. Each process must wait no longer than (n-1)q time units untill its
next time quantum.
 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
P1
P2
P3
Burst Time
24
3
3
Time slice = 4
 The Gantt chart is:
P1
0
P2
4
P3
7
P1
10
P1
14
P1
18
P1
22
P1
26
30
 Typically, higher average turnaround time than SJF, but better response time
 q should be large compared to context switch time
 q usually 10ms to 100ms, context switch < 10 usec
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:
Download