scheduling

advertisement
What Is In This Presentation?
• It is about Process Scheduling.(zaman
çizelgesi)
• The design of a scheduler
• It centers around Round Robin algorithms that
perform
start
In computer science, scheduling is the method
by which threads, processes or data flows are
given access to system resources (e.g. processor
time, communications bandwidth).
scheduling
This is usually done to load balance a system
effectively or achieve a target quality of service.
• The need for a scheduling algorithm arises from
the requirement for most modern systems
• to perform multitasking (execute more than
one process at a time)
• and multiplexing (transmit multiple flows
simultaneously).
The scheduler
The scheduler is concerned mainly with:
• Throughput(üretilen iş) - The total number of processes
that complete their execution per time unit.
• Latency (gecikme), specifically:
– Turn-around time (dönüş süresi)- total time between
submission of a process and its completion.
– Response time (tepki süresi)- amount of time it takes from
when a request was submitted until the first response is
produced.
• Fairness / Waiting Time(bekleme süresi) - Equal CPU
time to each process (or more generally appropriate
times according to each process' priority). It is the time
for which the process remains in the ready queue.
The scheduler
• The scheduler assigns a fixed time unit per process, and
cycles through them.
• RR scheduling involves extensive overhead, especially with
a small time unit.
• Balanced throughput between FCFS and SJF, shorter jobs
are completed faster than in FCFS and longer processes are
completed faster than in SJF.
• Poor average response time, waiting time is dependent on
number of processes, and not average process length.
• Because of high waiting times, deadlines are rarely met in a
pure RR system.
• Starvation can never occur, since no priority is given.
• Order of time unit allocation is based upon process arrival
time, similar to FCFS.
 There is no universal “best” scheduling algorithm, and many
operating systems use extended or combinations of the scheduling
algorithms above.
 Windows uses a multilevel feedback queue, a combination of
-fixed priority preemptive scheduling,
- round-robin,
- and first in first out.
In this system, threads can dynamically increase or decrease in priority
depending on if it has been serviced already, or if it has been waiting
extensively.
 Every priority level is represented by its own queue, with roundrobin scheduling amongst the high priority threads and FIFO among
the lower ones.
 The algorithm used may be as simple as round-robin in which each
process is given equal time (for instance 1 ms, usually between
1 ms and 100 ms) in a cycling list. So, process A executes for 1 ms,
then process B, then process C, then back to process A.
Scheduling disciplines
• Scheduling disciplines are algorithms used for
distributing resources among parties which
simultaneously and asynchronously request them
Scheduling disciplines are used
• in routers (to handle packet traffic) as well as
• in operating systems (to share CPU time among
both threads and processes),
• disk drives (I/O scheduling),
• printers (print spooler), most embedded
systems, etc.
Scheduling Goals
• Maximize throughput and resource utilization.
– Need to overlap CPU and I/O activities.
• Minimize response time, waiting time and
turnaround time.
• Share CPU in a fair way.
• May be difficult to meet all these goals-sometimes need to make tradeoffs(An
exchange that occurs as a compromise).
Purpose of scheduling
 The main purposes of scheduling algorithms are
to minimize resource starvation and to ensure
fairness amongst the parties utilizing the
resources.
Note :- Starvation occurs if a low priority process never
runs. The ssolution is: build aging into a variable priority.
 Scheduling deals with the problem of deciding
which of the outstanding requests is to be
allocated resources. There are many different
scheduling algorithms
 One of them are Round Robin Algorithem
Round-robin scheduling
Round-robin (RR) is one of the algorithms
employed by process and network schedulers in
computing.
As the term is generally used,
• time slices are assigned to each process in equal
portions and in circular order,
• handling all processes without priority (also
known as cyclic executive).
• Round-robin scheduling is simple, easy to
implement, and starvation-free.
Round-robin scheduling cont.
• Round-robin scheduling can also be applied to
other scheduling problems, such as data packet
scheduling in computer networks.
• It is an Operating System concept.
• The name of the algorithm comes from the
round-robin principle known from other fields,
where each person takes an equal share of
something in turn.
RR Process scheduling
 In order to schedule processes fairly, a roundrobin scheduler generally employs time-sharing,
giving each job a time slot or quantum[1] (its
allowance of CPU time), and interrupting the job
if it is not completed by then.
 The job is resumed next time a time slot is
assigned to that process. In the absence of timesharing, or if the quanta were large relative to the
sizes of the jobs, a process that produced large
jobs would be favoured over other processes.
ROUND ROBIN:
 Use a timer to cause an interrupt after a predetermined
time.
 Preempts (have precedence over) if task exceeds it’s
quantum.
 Definitions:
– Context Switch -Changing the processor from
running one task (or process) to another. Implies
changing memory.
– Processor Sharing Use of a small quantum such that
each process runs frequently at speed 1/n.
– Reschedule latency How long it takes from when a
process requests to run, until it finally gets control
of the CPU.
Choosing a time quantum
 Choosing a time quantum
– Too short - inordinate (excessive) fraction of
the time is spent in context switches.
–
Too long - reschedule latency is too great. If
many processes want the CPU, then it's a
long time before a particular process can get
the CPU. This then acts like FCFS.
– Adjust so most processes won't use their
slice. As processors have become faster, this
is less of an issue.
Round Robin (RR)
– FCFS + preemptive scheduling.
• First Come First Served (FCFS)-Scheduler selects the process
at the head of the ready queue; typically non-preemptive
– Ready queue is treated as a circular queue.
– Each process gets the CPU for a time quantum (or
time slice), typically 10 - 100 ms.
– A process runs until it blocks, terminates, or uses
up its time slice.
Example
– Example: Assuming a time quantum of 4 ms, what’s the
average waiting time?
• Issue: What’s the right value for the time quantum?
• Too long => poor response time
• Too short => poor throughput
• RR pros & cons:
+ Works well for short jobs; typically used in timesharing systems.
– High overhead due to frequent context switches.
– Increases average waiting time, especially if CPU bursts are the
same length and need more than one time quantum.
Scheduling
Algorithms
CPU SCHEDULING
EXAMPLE DATA:
Process Arrival
Time
0
1
2
3
1
2
3
4
Note:
Example violates rules for
quantum size since most
processes don’t finish in one
quantum.
Service
Time
8
4
9
5
Round Robin, quantum = 4, no priority-based preemption
P1
0
P2
4
P3
8
P4
12
P1
16
P3
20
P4
24
P3
25
Average wait = ( (20-0) + (8-1) + (26-2) + (25-3) )/4 = 74/4 = 18.5
5: CPU-Scheduling
17
26
Example
As an Example From networks
• Round robin DNS & DDNS (Dynamic DNS) is
often used to load balance requests between
a number of Web servers.
For example, a company has one domain name
and three identical copies of the same web site
residing on three servers with three different IP
addresses.
5: CPU-Scheduling
18
Weighted round robin
• Weighted round robin (WRR) is a scheduling
discipline
• specifically for scheduling in ATM networks using
fixed size packets (cells).
• In the more general case of IP networks with
variable size packets, in order to approximate
GPS(Generalized processor sharing) the weight
factors must be normalized.
Service is shared between all non-empty classes in the
same ratio as the weight factors (positive values for
each service class).
5: CPU-Scheduling
19
Deficit Round Robin
• Deficit Round Robin (DRR), also Deficit Weighted
Round Robin (DWRR), is a scheduling algorithm for
the network scheduler.
WRR serves every non-empty queue where as DRR
serves packets at the head of every non-empty queue
whose deficit counter is greater than the packet's size at
the head of the queue (HoQ).
If the deficit counter is lower,
• then the queue is skipped (HoQ packet is not served)
• and its credit is increased by some given value called quantum.
• This increased value is used to calculate the deficit counter the next time around
when the scheduler examines this queue for serving its head-of-line packet. If
the queue is served, then the Credit is decremented by the size of packet being
served.
5: CPU-Scheduling
20
What if?
• What happens if the time allocated in a Round
Robin Scheduling is very large? And what
happens if the time allocated is very low?
 Ans: It results in a FCFS scheduling, that means
Scheduler selects the process at the head of the
ready queue; typically non-preemptive
If time is too low, the processor through put
is reduced. More time is spent on context
switching
Operating System
Preemption
Algorithm
Amiga OS
Yes
Prioritized Round-robin scheduling
FreeBSD
Yes
Multilevel feedback queue
Linux pre-2.6
Yes
Multilevel feedback queue
Linux
2.6-2.6.23
Summary
Yes
O(1) scheduler
Linux post-2.6.23
Yes
Completely Fair Scheduler
Mac OS pre-9
None
Cooperative Scheduler
Mac OS 9
Some
Preemptive for MP tasks, Cooperative
Scheduler for processes and threads
Mac OS X
Yes
Multilevel feedback queue
NetBSD
Yes
Multilevel feedback queue
Solaris
Yes
Multilevel feedback queue
Windows 3.1x
None
Cooperative Scheduler
Windows 95, 98, Me
Half
Preemptive for 32-bit processes, Cooperative
Scheduler for 16-bit processes
Windows NT (including 2000, XP, Vista, 7, and
Yes
Server)
Multilevel feedback queue
Download