0% found this document useful (0 votes)
5 views

CPU scheduling

The document outlines the principles of CPU scheduling in operating systems, covering various scheduling algorithms, criteria for evaluation, and the distinction between user-level and kernel-level threads. It discusses different scheduling methods such as First-Come, First-Served, Shortest Job First, Priority Scheduling, and Round Robin, along with their advantages and challenges. Additionally, it addresses multiple-processor scheduling and real-time CPU scheduling considerations.

Uploaded by

omar alomary
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

CPU scheduling

The document outlines the principles of CPU scheduling in operating systems, covering various scheduling algorithms, criteria for evaluation, and the distinction between user-level and kernel-level threads. It discusses different scheduling methods such as First-Come, First-Served, Shortest Job First, Priority Scheduling, and Round Robin, along with their advantages and challenges. Additionally, it addresses multiple-processor scheduling and real-time CPU scheduling considerations.

Uploaded by

omar alomary
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 36

CIT11: Principles of Operating System

Principles of Operating
System
Course Code CIT11

Faculty of Computing and Information Technology


Computer Science Department
Spring, 2017/2018
These slides are based on lecture notes of the book’s author
& Portland University slides
& A. Frank - P. Weisberg slides
Wedad Al-Sorori 14 September 2017 Introduction 1/51
CIT11: Principles of Operating System

CPU Scheduling

• This lecture will cover the following topics:


• Basic Concepts

• Scheduling Criteria

• Scheduling Algorithms

• Thread Scheduling

• Multiple-Processor Scheduling

• Real-Time CPU Scheduling

Wedad Al-Sorori 14 September 2017 Introduction 2/51


CIT11: Principles of Operating System

Objectives

• After completing this lecture, students will be able to:

• Demonstrate CPU scheduling, which is the basis for


multiprogrammed operating systems
• Describe and evaluate various CPU-scheduling algorithms

• Discuss evaluation criteria for selecting a CPU-scheduling


algorithm for a particular system.
• Examine the scheduling algorithms of several operating systems

Wedad Al-Sorori 14 September 2017 Introduction 3/51


CIT11: Principles of Operating System

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

Wedad Al-Sorori 14 September 2017 Introduction 4/51


CIT11: Principles of Operating System

CPU Scheduler
• Short-term scheduler selects from among the processes in
ready queue, and allocates the CPU 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
• Scheduling under 1 and 4 is nonpreemptive
• All other scheduling is preemptive

Wedad Al-Sorori 14 September 2017 Introduction 5/51


CIT11: Principles of Operating System

Dispatcher
• Dispatcher module 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

Wedad Al-Sorori 14 September 2017 Introduction 6/51


CIT11: Principles of Operating System
Scheduling Criteria
• CPU utilization – keep the CPU as busy as possible
• Throughput – # 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, not
output (for time-sharing environment)

Wedad Al-Sorori 14 September 2017 Introduction 7/51


CIT11: Principles of Operating System

Scheduling Algorithm Optimization Criteria

• Max CPU utilization

• Max throughput

• Min turnaround time

• Min waiting time

• Min response time

Wedad Al-Sorori 14 September 2017 Introduction 8/51


CIT11: Principles of Operating System

First- Come, First-Served (FCFS) Scheduling


(1/2)
ProcessBurst 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

Wedad Al-Sorori 14 September 2017 Introduction 9/51


CIT11: Principles of Operating System

FCFS Scheduling (1/2)


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
• Consider one CPU-bound and many I/O-bound processes
Wedad Al-Sorori 14 September 2017 Introduction 10/51
CIT11: Principles of Operating System

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 difficulty is knowing the length of the next CPU request
• Could ask the user

Wedad Al-Sorori 14 September 2017 Introduction 11/51


CIT11: Principles of Operating System

Example of SJF
ProcessArriva l 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

Wedad Al-Sorori 14 September 2017 Introduction 12/51


CIT11: Principles of Operating System

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


Wedad Al-Sorori 14 September 2017 Introduction 13/51
CIT11: Principles of Operating System
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
Wedad Al-Sorori 14 September 2017 Introduction 14/51
CIT11: Principles of Operating System
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 = 8.2 msec


Wedad Al-Sorori 14 September 2017 Introduction 15/51
CIT11: Principles of Operating System

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

Wedad Al-Sorori 14 September 2017 Introduction 16/51


CIT11: Principles of Operating System

Example of RR with Time Quantum = 4


ProcessBurst 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 10ms to 100ms, context switch < 10 usec
Wedad Al-Sorori 14 September 2017 Introduction 17/51
CIT11: Principles of Operating System

Time Quantum and Context Switch Time

Wedad Al-Sorori 14 September 2017 Introduction 18/51


CIT11: Principles of Operating System

Turnaround Time Varies With The Time Quantum

80% of CPU bursts should


be shorter than q

Wedad Al-Sorori 14 September 2017 Introduction 19/51


CIT11: Principles of Operating System

Multilevel Queue
• Ready queue is partitioned into separate queues, eg:
• foreground (interactive)
• background (batch)
• Process permanently in a given queue
• Each queue has its own scheduling algorithm:
• foreground – RR
• background – FCFS
• Scheduling must be done between the queues:
• Fixed priority scheduling; (i.e., serve all from foreground then from
background). Possibility of starvation.
• Time slice – 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
Wedad Al-Sorori 14 September 2017 Introduction 20/51
CIT11: Principles of Operating System

Multilevel Queue Scheduling

Wedad Al-Sorori 14 September 2017 Introduction 21/51


CIT11: Principles of Operating System

Multilevel Feedback Queue


• A process can move between the various queues; aging can be
implemented 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

Wedad Al-Sorori 14 September 2017 Introduction 22/51


CIT11: Principles of Operating System

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 job enters queue Q0 which is served FCFS
• 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 FCFS and receives 16
additional milliseconds
• If it still does not complete, it is preempted
and moved to queue Q2

Wedad Al-Sorori 14 September 2017 Introduction 23/51


CIT11: Principles of Operating System

Thread Scheduling
• Distinction between user-level and kernel-level threads
• When threads supported, threads scheduled, not processes
• Many-to-one and many-to-many models, thread library schedules
user-level threads to run on LWP
• Known as process-contention scope (PCS) since scheduling
competition is within the process
• Typically done via priority set by programmer
• Kernel thread scheduled onto available CPU is system-
contention scope (SCS) – competition among all threads in
system

Wedad Al-Sorori 14 September 2017 Introduction 24/51


CIT11: Principles of Operating System

Pthread Scheduling
• API allows specifying either PCS or SCS during thread
creation
• PTHREAD_SCOPE_PROCESS schedules threads using PCS
scheduling
• PTHREAD_SCOPE_SYSTEM schedules threads using SCS
scheduling
• Can be limited by OS – Linux and Mac OS X only allow
PTHREAD_SCOPE_SYSTEM

Wedad Al-Sorori 14 September 2017 Introduction 25/51


CIT11: Principles of Operating System

Multiple-Processor Scheduling
• CPU scheduling more complex when multiple CPUs are available
• Homogeneous processors within a multiprocessor
• Asymmetric multiprocessing – only one processor accesses the system
data structures, alleviating the need for data sharing
• Symmetric multiprocessing (SMP) – each processor is self-scheduling,
all processes in common ready queue, or each has its own private queue
of ready processes
• Currently, most common
• Processor affinity – process has affinity for processor on which it is
currently running
• Soft affinity
• Hard affinity
• Variations including processor sets

Wedad Al-Sorori 14 September 2017 Introduction 26/51


CIT11: Principles of Operating System

NUMA and CPU Scheduling

Note that memory-placement algorithms can also consider affinity

Wedad Al-Sorori 14 September 2017 Introduction 27/51


CIT11: Principles of Operating System

Multiple-Processor Scheduling – Load


Balancing
• If SMP, need to keep all CPUs loaded for efficiency

• Load balancing attempts to keep workload evenly


distributed

• Push migration – periodic task checks load on each


processor, and if found pushes task from overloaded CPU
to other CPUs

• Pull migration – idle processors pulls waiting task from


busy processor
Wedad Al-Sorori 14 September 2017 Introduction 28/51
CIT11: Principles of Operating System

Multicore Processors

• Recent trend to place multiple processor cores on same physical


chip

• Faster and consumes less power

• Multiple threads per core also growing


• Takes advantage of memory stall to make progress on another thread
while memory retrieve happens

Wedad Al-Sorori 14 September 2017 Introduction 29/51


CIT11: Principles of Operating System

Multithreaded Multicore System

Wedad Al-Sorori 14 September 2017 Introduction 30/51


CIT11: Principles of Operating System

Real-Time CPU Scheduling (1/2)


• Can present obvious challenges
• Soft real-time systems – no guarantee as
to when critical real-time process will be
scheduled
• Hard real-time systems – task must be
serviced by its deadline
• Two types of latencies affect performance
1. Interrupt latency – time from arrival of interrupt to start
of routine that services interrupt
2. Dispatch latency – time for schedule to take current
process off CPU and switch to another

Wedad Al-Sorori 14 September 2017 Introduction 31/51


CIT11: Principles of Operating System

Real-Time CPU Scheduling (2/2)


• Conflict phase of dispatch
latency:
1.Preemption of any process running
in kernel mode

2.Release by low-priority process of


resources needed by high-priority
processes

Wedad Al-Sorori 14 September 2017 Introduction 32/51


CIT11: Principles of Operating System

Priority-based Scheduling
• For real-time scheduling, scheduler must support preemptive,
priority-based scheduling
• But only guarantees soft real-time

• For hard real-time must also provide ability to meet deadlines


• Processes have new characteristics: periodic ones require CPU
at constant intervals
• Has processing time t, deadline d, period p
• 0≤t≤d≤p
• Rate of periodic task is 1/p

Wedad Al-Sorori 14 September 2017 Introduction 33/51


CIT11: Principles of Operating System
Assignment
• Answer and submit questions in assignment7 that was
attached with this lecture on CLMS.

Wedad Al-Sorori 14 September 2017 Introduction 34/51


CIT11: Principles of Operating System

Summary
• CPU scheduling is the base of multiprogrammed operating
systems.
• Several scheduling algorithms can be used with different
environments and can be evaluated according to some
scheduling criteria such as average waiting time.

Wedad Al-Sorori 14 September 2017 Introduction 35/51


CIT11: Principles of Operating System

Thanks

Wedad Al-Sorori 14 September 2017 Introduction 36/51

You might also like