ITFN 2601 Introduction to Operating Systems

Download Report

Transcript ITFN 2601 Introduction to Operating Systems

ITFN 2601
Introduction to Operating
Systems
Lecture 4
Scheduling
Agenda
Scheduling
Batch
Interactive
Real-Time
Threads
Scheduling: When
New Process is Created
Parent Process
Child Process
Process Exits
When a process blocks
I/O Interrupt occurs
Clock Interrupts
Non-preemptive
Preemptive
Objectives of a Good
Scheduling Policy
Fairness
Efficiency
Low response time (important for
interactive jobs)
Low turnaround time (important for
batch jobs)
High throughput
Scheduling
Throughput
The amount of useful work accomplished per unit time. This
depends, of course, on what constitutes “useful work.” One
common measure of throughput is jobs/minute (or second, or
hour, depending on the kind of job)
Utilization
For each device, the utilization of a device is the
fraction of time the device is busy. A good
scheduling algorithm keeps all the devices (CPUs,
disk drives, etc.) busy most of the time.
Scheduling
 Turnaround
The length of time between when the job arrives in the system
and when it finally finishes
 Response Time
The length of time between when a job arrives in the system
and when it starts to produce output. For interactive jobs,
response time might be more important than turnaround.
 Wait Time
The amount of time the job is ready (runnable but not running).
This is a better measure of scheduling quality than turnaround
since the scheduler has no control of the mount of time the
process spends computing or blocked waiting for I/O.
Preemption
Needs a clock interrupt (or equivalent)
Needed to guarantee fairness
Found in all modern general purpose
operating systems
Without preemption, the system
implements “run to completion (or
yield)”
Scheduling Algorithms
(Batch)
FIFO (First In First Out)
Fairest
Low throughput
High Turnaround
Shortest First
High Throughput
Low Turnaround
Unfair for Large Jobs
Scheduling Algorithms
(Batch, cont)
Shortest Remaining
High Turnaround on Long Jobs
Unfair for Large Jobs
Multi-Scheduling (CPU or Memory Limited)
HIGH Turnaround (disk swaps)
Throughput highly variable, probably low
Fairness highly variable
First-Come First-Served
The simplest possible scheduling
discipline is called First-come, firstserved (FCFS). The ready list is a simple
queue (first-in/first-out). The scheduler
simply runs the first job on the queue
until it blocks, then it runs the new first
job, and so on. When a job becomes
ready it is simply added to the end of the
queue.
FCFS
Main advantage of FCFS is that it is easy
to write and understand
No starvation
If one process gets into an infinite loop, it
will run forever and shut out all the
others
FCFS tends to excessively favor long
bursts. CPU-bound processes
Shortest Job First (SJF)
Whenever the CPU has to choose a burst
to run, it chooses the shortest one
Non-preemptive policy
Preemptive version of the SJN, called
shortest remaining time first
Starvation is possible
Scheduling Algorithms
(Interactive)
Round Robin
Fairest overall
Response time variable but finite
Priority Scheduling
Fair
“More Fair” for users with higher priorities
Response time inverse to priority
Round-Robin
Round-robin (RR). RR keeps all the
processes in a queue and runs the first
one, like FCFS. After a length of time q
(called quantum), if the current burst
hasn’t completed, it is moved to the tail of
the queue and the next process is started
Round Robin
An important preemptive policy
Essentially the preemptive version of FCFS
The key parameter is the quantum size q
When a process is put into the running state, a
timer is set to q
If the timer goes off and the process is still
running, the OS preempts the process.
The process is moved to the ready state
The next job in the queue is selected to run
Round Robin
Quantum can’t be too large
Quantum can’t be too small
What quantum should we choose
Tradeoff
Small q makes system more responsive
Large q makes system more efficient since
there’s less switching
Round Robin, Example
Priority Scheduling
Always run the highest priority process
Preemptive or non-preemptive
Priorities can be assigned externally to
processes based on their importance
Assigned (and changed) dynamically
Other Interactive Scheduling
Multiple Queues
Shortest Process Next
Guaranteed Scheduling
Lottery Scheduling
Fair-Share Scheduling
Scheduling Algorithms
(Interactive, cont)
Multi-Quantized
Response time proportionate to quanta
More bookkeeping
Shortest Process Next
Estimation of process length
Unfair for large jobs
Fast response for small jobs
Scheduling Algorithms
(Interactive, cont)
Guaranteed Scheduling
Lottery Scheduling
Alotted time proportional to Job
Size/Importance
Sharing
Fair by user, not necessarily fair by job
Responses become disproportionate
Scheduling Algorithms
(Real-Time)
Small Jobs
High Priority
Periodic/Aperiodic
Schedulable?
Iff the sum of the ratios CPU Time to Period
time is less than one
Sum(CPU/Period) <= 1
Static/Dynamic?
Scheduler Mechanism
Some processes are intrinsically more
important at some times than others
Time-dependent response
High-priority request
How can a process raise it’s scheduling
priority?
Thread Scheduling
User-level threads
Process has a Thread Scheduler
Same concept as Process Scheduler
Conflicts with Process Scheduling
Kernel Level Threads
Kernel has Thread and Process Scheduler
Two Quanta’s
Thread Quanta
Process Quanta
Summary
Scheduler responsible for many goals
Scheduling algorithms complex
Know your math!