* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download 5. Process and thread scheduling
Survey
Document related concepts
Transcript
5. Process and thread scheduling
5.1 Organization of Schedulers
– Embedded and Autonomous Schedulers
5.2 Scheduling Methods
– A Framework for Scheduling
– Common Scheduling Algorithms
– Comparison of Methods
5.3 Priority Inversion
Operating Systems
1
Process and Thread Scheduling
• Scheduling occurs at two levels:
• Process/job scheduling
– Long term scheduling (seconds, minutes, …)
– Move process to Ready List (RL) after creation
(When and in which order?)
• Dispatching
– Short term scheduling (milliseconds)
– Select process from Ready List to run
• We use the term scheduling to refer to both
Operating Systems
2
Organization of Schedulers
• Embedded
– Called as function at
end of kernel call
– Runs as part of calling
process
• Autonomous
– Separate process
– Multiprocessor: may
have dedicated CPU
– Single-processor:
scheduler and other
processes alternate
(every quantum)
Operating Systems
3
An Embedded Scheduler
Scheduler() {
do {
find highest priority process p with p.status==ready_a;
find a free cpu;
if (cpu != NIL) Allocate_CPU(p,cpu);
} while (cpu != NIL);
do {
find highest priority process p with p.status==ready_a;
find lowest priority process q with p.status==running;
if (Priority(p) > Priority(q)) Preempt(p,q);
} while (Priority(p) > Priority(q));
if (self->Status.Type!=running) Preempt(p,self);
}
Operating Systems
4
Scheduling Methods
• Priority determines who runs
– Can be static or dynamic
– Given by Priority function: P = Priority(p)
• p are parameters
– Arbitration rule to break ties
• Random
• Chronological (FIFO)
• Cyclic (Round Robin = RR)
• When is scheduler invoked?—Decision mode
• Preemptive: scheduler called periodically
(quantum-oriented) or when system state changes
• Nonpreemptive: scheduler called when process
terminates or blocks
Operating Systems
5
Priority function Parameters
• Possible parameters:
– Attained service time (a)
– Real time in system (r)
– Total service time (t)
– Period (d)
– Deadline (explicit or implied by period)
– External priority (e)
– System load (not process-specific)
Operating Systems
6
Scheduling algorithms
Name
FIFO:
SJF:
SRT:
RR:
ML:
Decision mode
Priority
Arbitration
nonpreemptive
P=r
random
nonpreemptive
P = –t
chronological/random
preemptive
P = –(t–a)
chronological/random
preemptive
P=0
cyclic
preemptive
P=e
cyclic
nonpreemptive
P=e
chronological
• n fixed priority levels
• level P is serviced when n through P+1 empty
Operating Systems
7
Scheduling algorithms
• MLF (Multilevel
Feedback)
• Like ML, but priority
changes dynamically
• Every process enters at
highest level n
• Each level P prescribes
maximum time tP
• tP increases as P
decreases
• Typically:
tn = T (a constant)
tP = 2 tP+1
Operating Systems
8
Scheduling algorithms
• MLF priority function:
– depends on level n, and attained time, a
P = n– log2(a/T+1)
– derivation is in the book
– but note:
• there is no need to ever compute P
• priority is known automatically by position in queue
• MLF is preemptive: CPU is taken away whenever process
exhausts tP
• Arbitration rule (at highest non-empty level): cyclic (at
quantum) or chronological (at tP)
Operating Systems
9
Scheduling Algorithms
RM (Rate Monotonic):
– Intended for periodic (real-time) processes
– Preemptive
– Highest priority: shortest period: P = –d
EDF (Earliest Deadline First):
– Intended for periodic (real-time) processes
– Preemptive
– Highest priority: shortest time to next deadline:
P = –(d – r % d)
• derivation
rd
number of completed periods
r%d
time in current period
d–r%d
time remaining in current period
Operating Systems
10
Comparison of Methods
• FIFO, SJF, SRT: Primarily for batch systems
– total length of computation is the same for all
– FIFO simplest
– SJF & SRT have better average turnaround times:
(r1+r2+…+rn)/n
– Example:
Average turnaround times:
FIFO: ((0+5)+(3+2))/2 = 5.0
SRT: ((2+5)+(0+2))/2 = 4.5
SJF: same as FIFO (p1 arrived
first, non-preemptive)
Operating Systems
11
Comparison of Methods
• Time-sharing systems
– Response time is critical
– Use RR or MLF with RR within each queue
– Choice of quantum determines overhead
• When q , RR approaches FIFO
• When q 0, context switch overhead 100%
• When q is much greater than context switch
overhead, n processes run concurrently at 1/n CPU
speed
Operating Systems
12
Comparison of Methods
• Real-time systems
– Feasible schedule: All deadlines are met
– CPU utilization is defined as: U=∑ ti/di for all pi
– If schedule is feasible, U 1 (but not vice versa):
• EDF always yields feasible schedule if U 1.
• RM yields feasible schedule if U<0.7
(approximately), otherwise, it may fail
Operating Systems
13
Comparison of Methods
• Example
– p1 has service time 1.5, period 4
– p2 has service time 3, period 5
– U=(1.5/4) +3/5=.975 < 1
– EDF succeeds but RM fails
Operating Systems
14