0% found this document useful (0 votes)
43 views28 pages

Topic 03 CPU Scheduling OS

Uploaded by

fmlomat
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)
43 views28 pages

Topic 03 CPU Scheduling OS

Uploaded by

fmlomat
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/ 28

Topic 3: CPU Scheduling

1. Basic Concepts

2. Scheduling Criteria

3. Scheduling Algorithms

1
1. Basic Concepts

• Maximum CPU utilization obtained with


multiprogramming
• CPU–I/O Burst Cycle – Process execution
consists of a cycle of CPU execution and
I/O wait
• CPU burst followed by I/O burst
• CPU burst distribution is of main concern

2
CPU Scheduler
• The CPU scheduler selects from among the processes in ready queue,
and allocates a CPU core to one of them
• Queue may be ordered in various ways
• CPU scheduling decisions may take place when a process:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
• For situations 1 and 4, there is no choice in terms of scheduling. A
new process (if one exists in the ready queue) must be selected for
execution.
• For situations 2 and 3, however, there is a choice.

3
Preemptive and Nonpreemptive Scheduling

• When scheduling takes place only under circumstances 1


and 4, the scheduling scheme is nonpreemptive.
• Otherwise, it is preemptive.
• Under Nonpreemptive scheduling, once the CPU has been
allocated to a process, the process keeps the CPU until it
releases it either by terminating or by switching to the
waiting state.
• Virtually all modern operating systems including Windows,
MacOS, Linux, and UNIX use preemptive scheduling
algorithms.

4
Preemptive Scheduling and Race Conditions

• Preemptive scheduling can result in race conditions


when data are shared among several processes.
• Consider the case of two processes that share data.
While one process is updating the data, it is preempted
so that the second process can run. The second process
then tries to read the data, which are in an inconsistent
state.

5
Dispatcher
• Dispatcher module gives control of
the CPU to the process selected by
the CPU 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

6
2. Scheduling Criteria

• CPU utilization: keep the CPU as busy as possible


• Throughput: number of processes that complete their
execution per time unit
• Turnaround 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.

7
Scheduling Algorithm Optimization Criteria

•Max CPU utilization


•Max throughput
•Min turnaround time
•Min waiting time
•Min response time

8
3. Scheduling Algorithms

3.1. First- Come, First-Served (FCFS) Scheduling


3.2. Shortest-Job-First (SJF) Scheduling
3.3. Round Robin (RR)
3.4. Priority Scheduling

9
3.1. 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 P2 P3
0 24 27 30

• Waiting time for P1 = 0; P2 = 24; P3 = 27


• Average waiting time: (0 + 24 + 27)/3 = 17

10
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

11
3.2. 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
• Preemptive version called shortest-remaining-time-first
• The difficulty is knowing the length of the next CPU
request
• How do we determine the length of the next CPU burst?
• Could ask the user
• Estimate

12
Example of SJF

ProcessArrival Time 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 = (3 + 16 + 9 + 0) / 4 = 7

13
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
P1 P2 P4 P1 P3
0 1 5 10 17 26

14
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

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

15
3.3. 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

16
Example of RR with Time Quantum = 4

Process Burst Time


P1 24
P2 3
P3 3

17
Example of RR with Time Quantum = 4

Process Burst Time


P1 24
P2 3
P3 3
• 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 10 milliseconds to 100 milliseconds,
• Context switch < 10 microseconds

• Average waiting time = [(30-24)+(7-3)+(10-3) = 17/3 = 5.67

18
3.4. 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
• Nonpreemptive

• 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

19
Example of Priority Scheduling

ProcessA arri Burst TimeT Priority


P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2

20
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

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

21
Priority Scheduling w/ Round-Robin
ProcessA arri Burst TimeT Priority
P1 4 3
P2 5 2
P3 8 2
P4 7 1
P5 3 3
• Run the process with the highest priority. Processes with the same
priority run round-robin

• Gantt Chart with time quantum = 2

• Average waiting time = [(22)+(11)+(12)+(0) )+(24)]/5 = 69/5 = 13.8

22
Multilevel Queue
• With priority scheduling, have separate queues for each priority.
• Schedule the process in the highest-priority queue!

23
Multilevel Queue
• Prioritization based upon process type

24
Multilevel Feedback Queue

• A process can move between the various queues.


• 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
• Aging can be implemented using multilevel feedback
queue

25
Example of Multilevel Feedback Queue
• Three queues:
• Q0 – RR with time quantum 8 milliseconds
• Q1 – RR time quantum 16 milliseconds
• Q2 – FCFS
• Scheduling
• A new process enters queue Q0 which is served in RR
• When it gains CPU, the process receives 8 milliseconds
• If it does not finish in 8 milliseconds, the process is moved to queue Q1
• At Q1 job is again served in RR and receives 16 additional milliseconds
• If it still does not complete, it is preempted and moved to queue Q2

26
Review Questions
1. Describe how the process take place in the CPU scheduling decisions.
2. Differentiate between Preemptive and Non-preemptive Scheduling
3. Discuss the Scheduling Criteria
4. Consider the following processes, with the length of the CPU-burst time.
Process Burst Time Priority
P1 10 3
P2 3 1
P3 2 2
P4 1 4

The processes in the order P1, P2, P3, P4, all at time 0.
a. Draw the Gantt charts illustrating the execution of these processes using FCFS, SJF ,
RR (quantum = 1), and priority (a smaller priority number is the higher priority)
Scheduling.
b. Calculate the waiting time for each process and the average waiting time for each of the
scheduling algorithms in part a.
c. Which of the schedules is the minimal average waiting time?
5. Which of the following scheduling algorithms could result in starvation? and what is the
solution?
a. First-come, first-served
b. Shortest job first
c. Round robin
d. Priority 27
End of Topic 3: CPU Scheduling

You might also like