Outline Objective for today’s lecture: Advanced topics in scheduling.
Transcript of Outline Objective for today’s lecture: Advanced topics in scheduling.
![Page 1: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/1.jpg)
Outline
• Objective for today’s lecture:Advanced topics in scheduling
![Page 2: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/2.jpg)
Real Time Schedulers• Real-time schedulers must support regular,
periodic execution of tasks (e.g., continuous media).– CPU Reservations
• “I need to execute for X out of every Y units.”• Scheduler exercises admission control at reservation
time: application must handle failure of a reservation request.
– Proportional Share• “I need 1/n of resources”
– Time Constraints• “Run this before my deadline at time T.”
![Page 3: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/3.jpg)
Assumptions
• Tasks are periodic with constant interval between requests, Ti (request rate 1/Ti)
• Each task must be completed before the next request for it occurs
• Tasks are independent• Worst-case run-time for each task is
constant (max), Ci
• Any non-periodic tasks are special
![Page 4: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/4.jpg)
Task Model
time
1
2
T1 T1
T2
C1 = 1
C2 = 1
![Page 5: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/5.jpg)
Definitions• Deadline is time of next request• Overflow at time t if t is deadline of unfulfilled
request• Feasible schedule - for a given set of tasks, a
scheduling algorithm produces a schedule so no overflow ever occurs.
• Critical instant for a task - time at which a request will have largest response time.– Occurs when task is requested simultaneously with all
tasks of higher priority
![Page 6: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/6.jpg)
Task Model
time
1
2
Ti Ti
T2
C1 = 1 deadline overflow
Critical instant
![Page 7: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/7.jpg)
Rate Monotonic• Assign priorities to tasks according to their
request rates, independent of run times• Optimal in the sense that no other fixed
priority assignment rule can schedule a task set which can not be scheduled by rate monotonic.
• If feasible (fixed) priority assignment exists for some task set, rate monotonic is feasible for that task set.
![Page 8: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/8.jpg)
Rate Monotonic
time
1
2
Ti=2
T2=5
C1 = 1
C2 = 1
![Page 9: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/9.jpg)
Earliest Deadline First• Dynamic algorithm• Priorities are assigned to tasks according to the
deadlines of their current request• With EDF there is no idle time prior to an
overflow• For a given set of m tasks, EDF is feasible iff
C1/T1 + C2/T2 + … + Cm/Tm 1• If a set of tasks can be scheduled by any
algorithm, it can be scheduled by EDF
![Page 10: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/10.jpg)
EDF
time
1
2
Ti Ti=2
T2=5
C1 = 1
C2 = 1
0T0=4
C0 = 1
Released attime t0
Released attime t2
Released attime t4
¼ + ½ + 1/5 < 1
![Page 11: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/11.jpg)
Proportional Share• Goals: to integrate real-time and non-real-time tasks, to
police ill-behaved tasks, to give every process a well-defined share of the processor.
• Each client, i, gets a weight wi
• Instantaneous share fi (t) = wi /( wj )
• Service time (fi constant in interval) Si(t0, t1) = fi (t) t
• Set of active clients varies fi varies over time
Si(t0 , t1) = fi () d
jA(t)
t0
t1
![Page 12: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/12.jpg)
Common Proportional Share Competitors
• Weighted Round Robin – RR with quantum times equal to share
RR:
WRR:
• Fair Share –adjustments to priorities to reflect share allocation (compatible with multilevel feedback algorithms)
Linux
10203020
![Page 13: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/13.jpg)
Common Proportional Share Competitors
• Weighted Round Robin – RR with quantum times equal to share
RR:
WRR:
• Fair Share –adjustments to priorities to reflect share allocation (compatible with multilevel feedback algorithms)
Linux
1020 1010
![Page 14: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/14.jpg)
Common Proportional Share Competitors
• Weighted Round Robin – RR with quantum times equal to share
RR:
WRR:
• Fair Share –adjustments to priorities to reflect share allocation (compatible with multilevel feedback algorithms)
Linux
010 10
![Page 15: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/15.jpg)
Lottery Scheduling• Lottery scheduling [Waldspurger96] is another scheduling
technique.• Elegant approach to periodic execution, priority, and
proportional resource allocation.
– Give Wp “lottery tickets” to each process p.– GetNextToRun selects “winning ticket” randomly.
• If ΣWp = N, then each process gets CPU share Wp/N ... ...probabilistically, and over a sufficiently long time interval.
– Flexible: tickets are transferable to allow application-level adjustment of CPU shares.
– Simple, clean, fast.• Random choices are often a simple and efficient way to
produce the desired overall behavior (probabilistically).
![Page 16: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/16.jpg)
Lottery SchedulingWaldspurger and Weihl (OSDI 94)
• Goal: responsive control over the relative rates of computation
• Claims:– Support for modular resource management– Generalizable to diverse resources– Efficient implementation of proportional-
share resource management: consumption rates of resources by active computations are proportional to relative shares allocated
![Page 17: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/17.jpg)
Basic Idea
• Resource rights are represented by lottery tickets– Give Wp “lottery tickets” to each process p.– abstract, relative (vary dynamically wrt contention),
uniform (handle heterogeneity)– responsiveness: adjusting relative # tickets gets
immediately reflected in next lottery
• At allocation time: hold a lottery;Resource goes to the computation holding the winning ticket.– GetNextToRun selects “winning ticket” randomly..
![Page 18: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/18.jpg)
Fairness• Expected allocation is proportional to # tickets
held - actual allocation becomes closer over time.
• Number of lotteries won by clientE[w] = n p where p = t/T
• Response time (# lotteriesto wait for first win)E[n] = 1/p
w # winst # ticketsT total # tickets n # lotteries
![Page 19: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/19.jpg)
Example List-based Lottery
10 2 5 1 2
T = 20
Random(0, 19) = 15
10 12 17Summing:
![Page 20: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/20.jpg)
Bells and Whistles• Ticket transfers - objects that can be explicitly passed in
messages– Can be used to solve priority inversions
• Ticket inflation– Create more - used among mutually trusting clients to
dynamically adjust ticket allocations
• Currencies - “local” control, exchange rates
• Compensation tickets - to maintain share
– use only f of quantum, ticket inflated by 1/f in next
![Page 21: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/21.jpg)
Kernel Objects
1000base
ticket
amount
currencyC_name
300
Backingtickets
Issued tickets
Activeamount
Currencyname
![Page 22: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/22.jpg)
base
alice bob
task1
task2
task3
thread2 thread3 thread4thread1
3000
200
500
100
100
2000base
1000base
200alice
200 task2
300task2
100task3
100bob100
alice
100task1
0
Exchange rate:1 bob = 20 base
![Page 23: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/23.jpg)
Example List-based Lottery
10 task2 2bob 5 task3 1
base
2bob
T = 3000 base
Random(0, 2999) = 1500
![Page 24: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/24.jpg)
Compensation
• A holds 400 base, B holds 400 base
• A runs full 100msec quantum,B yields at 20msec
• B uses 1/5 allotted timeGets compensation ticket valued at 400/(1/5) = 2000 base at next lottery
![Page 25: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/25.jpg)
Ticket Transfer
• Synchronous RPC between client and server
• create ticket in client’s currency and send to server to fund it’s currency
• on reply, the transfer ticket is destroyed
![Page 26: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/26.jpg)
Control Scenarios
• Dynamic ControlConditionally and dynamically grant ticketsAdaptability
• Resource abstraction barriers supported by currencies. Insulate tasks.
![Page 27: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/27.jpg)
Other Kinds of Resources
Control relative waiting times for mutex locks.– Mutex currency funded out of currencies of
waiting threads– Holder gets inheritance ticket in addition to its
own funding, passed on to next holder (resulting from lottery) on release.
![Page 28: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/28.jpg)
Scheduling: Beyond “Ordinary” Uniprocessors
• Multiprocessors– Co-scheduling and gang scheduling– Hungry puppy task scheduling– Load balancing
• Networks of Workstations– Harvesting Idle Resources - remote execution and
process migration
• Laptops and mobile computers– Power management to extend battery life, scaling
processor speed/voltage to tasks at hand, sleep and idle modes.
![Page 29: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/29.jpg)
RR and System Throughput
On a multiprocessor, RR may improve throughput under light load:The scenario: three salmon steaks must cook for 5 minutes
per side, but there’s only room for two steaks on the hibachi.
30 minutes worth of grill time needed: steaks 1, 2, 3 with sides A and B.
FCFS: steaks 1 and 2 for 10 minutes, steak 3 for 10 minutes.
Completes in 20 minutes with grill utilization a measly 75%.
1 1
1
2 2
2
![Page 30: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/30.jpg)
RR and System Throughput
RR: 1A and 2A...flip...1B and 3A...flip...2B and 3B.Completes in three quanta (15 minutes) with 100% utilization.
RR may speed up parallel programs if their inherent parallelism is poorly matched to the real parallelism.
E.g., 17 threads execute for N time units on 16 processors.
1
1
2
21
2
![Page 31: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/31.jpg)
Multiprocessor Scheduling
What makes the problem different?• Workload consists of parallel programs
– Multiple processes or threads, synchronized and communicating
– Latency defined as last piece to finish.
• Time-sharing and/or Space-sharing (partitioning up the Mp nodes)– Both when and where a process should run
![Page 32: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/32.jpg)
Architectures
P P P P
Memory
$ $ $ $
Symmetric mp NUMA
cluster
Interconnect
CA
MemP
$CA
MemP
$
CA
MemP
$ CA
MemP
$
Node 0 Node 1
Node 2 Node 3
![Page 33: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/33.jpg)
Impact of load-balancing on latency
Consider set of processes: 5, 5, 4, 4, 3, 3
3 processors• If unrelated: (SJF)
avg response time = (3 + 3 + 4 + 7 + 8 + 9)/6 = 5.66
• If 2 tasks, each 5, 4, 3 (no dependencies)avg response time (SPF) = (8 + 9)/2 = 8.5avg response time (LPF) = (8 + 8)/2 = 8
Effect of Workload
Red done
Blue done
![Page 34: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/34.jpg)
Affinity Scheduling• Where (on which node) to run a particular
thread during the next time slice?• Processor’s POV: favor processes which have
some residual state locally (e.g. cache)• What is a useful measure of affinity for deciding
this?– Least intervening time or intervening activity (number of
processes here since “my” last time) *– Same place as last time “I” ran.– Possible negative effect on load-balance.
![Page 35: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/35.jpg)
Processor Partitioning
• Static or Dynamic• Process Control (Gupta)
– Vary number of processors available– Match number of processes to processors– Adjusts # at runtime.– Works with task-queue or threads
programming model– Impact on “working set”
![Page 36: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/36.jpg)
Process Control ClaimsTypical speed-up profile
Number of processes per application
spee
dup
||ism andworking setin memory
Lock contention,memory contention,context switching,cache corruption
Magic point
![Page 37: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/37.jpg)
Co-Scheduling
John Ousterhout (Medusa OS)• Time-sharing model• Schedule related threads simultaneously
Why?How?– Local scheduling decisions after some global
initialization (Medusa) – Centralized (SGI IRIX)
![Page 38: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/38.jpg)
Effect of Workload
Impact of communication and cooperation
Issues:-context switch+common state-lock contention+coordination
![Page 39: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/39.jpg)
CM*’s Version• Matrix S (slices) x P (processors)• Allocate a new set of processes (task force) to a
row with enough empty slots• Schedule: Round robin through rows of matrix
– If during a time slice, this processor’s element is empty or not ready, run some other task force’s entry in this column - backward in time (for affinity reasons and purely local “fall-back” decision)
![Page 40: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/40.jpg)
Design
• Determining how many processors an application should have– Centralized server, with system calls for
process status info (user-level) (kernel implementation would be desirable, but…)
• Controlling the number of processes in an application– suspend and resume are responsibility of
runtime package of application
![Page 41: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/41.jpg)
Networks of Workstations
What makes the problem different?• Exploiting otherwise “idle” cycles.
• Notion of ownership associated with workstation.
• Global truth is harder to come by in wide area context
![Page 42: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/42.jpg)
45
Harvesting Idle Cycles
• Remote execution on an idle processor in a NOW (network of workstations)– Finding the idle machine and starting
execution there. Related to load-balancing work.
• Vacating the remote workstation when its user returns and it is no longer idle– Process migration
![Page 43: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/43.jpg)
Issues
• Why?
• Which tasks are candidates for remote execution?
• Where to find processing cycles? What does “idle” mean?
• When should a task be moved?
• How?
![Page 44: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/44.jpg)
Motivation for Cycle Sharing
• Load imbalances. Parallel program completion time determined by slowest thread. Speedup limited.
• Utilization. In trend from shared mainframe to networks of workstations scheduled cycles to statically allocated cycles– “Ownership” model– Heterogeneity
![Page 45: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/45.jpg)
Which Tasks?• Explicit submission to a “batch” scheduler (e.g.,
Condor) or Transparent to user.• Should be demanding enough to justify
overhead of moving elsewhere. Properties?• Proximity of resources.
– Example: move query processing to site of database records.
– Cache affinity
![Page 46: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/46.jpg)
Finding Destination• Defining “idle” workstations
– Keyboard/mouse events? CPU load?
• How timely and complete is the load information (given message transit times)?– Global view maintained by some central manager
with local daemons reporting status.– Limited negotiation with a few peers– How binding is any offer of free cycles?
• Task requirements must match machine capabilities
![Page 47: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/47.jpg)
When to Move
• At task invocation. Process is created and run at chosen destination.
• Process migration, once task is already running at some node. State must move.– For adjusting load balance (generally not
done)– On arrival of workstation’s owner (vacate,
when no longer idle)
![Page 48: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/48.jpg)
How - Negotiation Phase
• Condor example: Central manager with each machine reporting status, properties (e.g. architecture, OS). Regular match of submitted tasks against available resources.
• Decentralized example: select peer and ask if load is below threshold. If agreement to accept work, send task. Otherwise keep asking around (until probe limit reached).
![Page 49: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/49.jpg)
How - Execution Phase
• Issue - Execution environment. – File access - possibly without user having account
on destination machine or network file system to provide access to user’s files.
– UIDs?
• Remote System Calls (Condor)– On original (submitting) machine, run a “shadow”
process (runs as user)– All system calls done by task at remote site are
“caught” and message sent to shadow.
![Page 50: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/50.jpg)
Remote System Calls
Submitting machine Executing machine
OS Kernel OS Kernel
Shadow Remote JobRemote syscallcode
Remote syscall stubs
User code
Regular syscallstubs
![Page 51: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/51.jpg)
How - Process MigrationCheckpointing current execution state (both for
recovery and for migration)– Generic representation for heterogeneity?– Condor has a checkpoint file containing register
state, memory image, open file descriptors, etc.Checkpoint can be returned to Condor job queue.
– Mach - package up processor state, let memory working set be demand paged into new site.
– Messages in-flight?
![Page 52: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/52.jpg)
Migration based on Virtual Machines
What is a virtual machine monitor (VMM) – example: Vmware
• VMware Workstation acts as a “true” virtual monitor• Provides direct access to processor and memory• Fast execution of instructions• Not processor emulation• Shares the processor with the host (host does scheduling)
![Page 53: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/53.jpg)
Isolation Between V.M.s
State that must be migrated is well-defined
![Page 54: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/54.jpg)
Encapsulation
![Page 55: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/55.jpg)
Processor Scheduling & Energy Management
• Processor vendors keep making chips faster (and more power hungry)
• Premise: sometimes we need that peak performance but for lots of applications, we don’t
• Solution: sell the chip based on peak MHz and then let it run at slower/lower power design point
![Page 56: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/56.jpg)
Exploiting Idleness
Busy
transition Idle
transition
Lowpowercost
Highpowercost
X time
X time
?
?
![Page 57: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/57.jpg)
Dynamic Voltage Scaling
• The question: at what clock rate/voltage should the CPU run in the next scheduling interval?
• Voltage scalable processors– StrongARM SA-2 (500mW at 600MHz; 40mW at 150MHz)
– Speedstep Pentium III– AMD Mobile K6 Plus– Transmeta
• Power is proportional to V2 x F• Energy will be affected
(+) by lower power, (-) by increased time
![Page 58: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/58.jpg)
lpARM System
• Speed-control register
• Processor cycle ctrs
• System sleep control
![Page 59: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/59.jpg)
Implementation of Voltage Scheduling Algorithms
Issues:• Capturing utilization measure
– Start with no a priori information about applications and need to dynamically infer / predict behavior (patterns / “deadlines” / constraints?)
– Idle process or “real” process – usually each quantum is either 100% idle or busy
– AVGN: weighted utilization at time tWt = (NWt-1 + Ut-1) / (N+1)
• Adjusting the clock speed– Idea is to set the clock speed sufficiently high to meet
deadlines (but deadlines are not explicit in algorithm)
![Page 60: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/60.jpg)
Interval Scheduling(Speed Setting)
•Weiser et. al.• Algorithms (when):
– Past
– AVGN
• Stepping (how much)
– One
– Double
– Peg – min or max
• Based on unfinished work during previous intervaltime
CP
U lo
ad
Clo
ck s
peed
Adjust clock based on past window,no process reordering involved
•Per-task basis may be more successful
![Page 61: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/61.jpg)
Based on Earliest Deadline First
• Dynamic algorithm• Priorities are assigned to tasks according to the
deadlines of their current request• With EDF there is no idle time prior to an
overflow• For a given set of m tasks, EDF is feasible iff
C1/T1 + C2/T2 + … + Cm/Tm 1• If a set of tasks can be scheduled by any
algorithm, it can be scheduled by EDF
![Page 62: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/62.jpg)
Intuition
time
1
2
Ti Ti
T2
C1 = 1
C2 = 1
![Page 63: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/63.jpg)
time
1
2
Ti Ti
T2
C1 = 1
C2 = 1
Intuition
![Page 64: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/64.jpg)
time
1
2
Ti Ti
T2
C1 = 1
C2 = 1
Intuition
½ + 1/5 = 7/10 of max speed
![Page 65: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/65.jpg)
time
1
2
T2
C1 = 1
C2 = 1
Intuition
½ + 1/5 = 7/10 of max speed
1/5
7/10
![Page 66: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/66.jpg)
Recent Advances• Automatically determining “deadlines” –
inferring periodic behavior from UI events and IPC (Vertigo)
time
spee
d
UIevent
Skipthreshold
predicted
max
Panicthreshold
Interactiveepisodeends
If episode predicted aslonger than perceptionthreshold -> max
![Page 67: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/67.jpg)
Outline• Objective for today’s lecture:
– Comments about eventbarriers (pgm 3)– Research at Duke on energy-centric OS
design
![Page 68: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/68.jpg)
EventBarrier• EventBarrier has a binary “memory”.• It has a “broadcast” to notify all waiting threads of an event.• The broadcast primitive waits until the event is handled.
EventBarrier::Wait()If the EventBarrier is not in the signaled state, wait for it.
EventBarrier:: Signal()Signal the event, and wait for all waiters/arrivals to respond.
EventBarrier::Complete()Notify EventBarrier that caller’s response to the event is complete.Block until all threads have responded to the event.
![Page 69: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/69.jpg)
signaled
wait
wait
complete
complete
The question is whether completers have to wait – What is that 3rd line for? Fix this….
![Page 70: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/70.jpg)
The Moat Problem
• Travelers, knights, and troubadours arrive at the castle.
• The castle guard decides when to lower the bridge to allow the arrivals into the castle.
• If the bridge is down, new arrivals may enter immediately without waiting.
• The guard doesn’t raise the bridge if there are people on it.
• This can be solved easily using EventBarrier.
![Page 71: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/71.jpg)
The Moat Problem with EventBarrier
EventBarrier gate;
/* Called by knights etc. */void EnterCastle() { gate.Wait(); /* wait for gate to open (if necessary) */ CrossBridge(); gate.Complete(); /* tell the guard it’s OK to close gate */}
void GuardThread() { while (TRUE) { /* twiddle thumbs */ /* watch for arriving travelers */ /* decide when to open gate */ WaitForOrderToOpenGate(); gate.Signal(); /* open gate, wait for travelers to cross, close gate */ /* gate is closed */}
![Page 72: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/72.jpg)
Highway 110 Problem
Highway 110 is a two-lane north-south road that passes across a one-lane bridge. A car can safely enter the bridge if and only if there are no oncoming cars on the bridge.
To prevent accidents, sensors installed at each end of the tunnel notify a controller computer when cars arrive or depart in either direction The controller uses the sensor input to control signal lights at either end of the bridge.
![Page 73: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/73.jpg)
Highway 110 with EventBarrierEventBarrier north;EventBarrier south;
void HeadingNorth { north.Wait(); go across one-lane bridge; north.Complete();}
void HeadingSouth() { south.Wait(); go across one-lane bridge; south.Complete();}
void BridgeScheduler() { while (TRUE) { north.Signal(); south.Signal(); …. }}
![Page 74: Outline Objective for today’s lecture: Advanced topics in scheduling.](https://reader035.fdocuments.net/reader035/viewer/2022062804/5697bf781a28abf838c8201a/html5/thumbnails/74.jpg)
Highway 110 with Locks and
Condition Variables
OneVehicle(int direc) //direc is either 0 or 1; giving the direction in which the car is to cross
{
ArriveBridge(direc);
CrossBridge(direc);
ExitBridge(direc);
}
ArriveBridge(dir){
bridgeLock->Acquire();while (num_on_bridge !=0 &
dir != direction) OKtogo[dir]->Wait();
direction = dir;num_on_bridge++;bridgeLock->Release();
}
ExitBridge(dir){
bridgeLock->Acquire();num_on_bridge--; if (num_on_bridge == 0) {
direction = !dir; Oktogo[direction]-
>Broadcast();bridgeLock->Release();
}
Variation of this problemhas “load limit” restrictionof 3 cars at a time
Fairness?