Lottery Scheduling - my notes
Contents
Some notes taking from reading the paper ‘Lottery Scheduling: Flexible Proportional-Share Resource Management’.
Intro
challenges of CPU scheduler
- real-time:
- hard: industrial control
 - soft: audio, video
 
 - multi-process
 - fairness
 - priorities
 - CPU utilization
 - isolation
 - overhead
 - starvation avoidance (SJF)
 
history of CPU schedulers
- general-purpose schemes (mostly rely on priority)
- does not provide the encapsulation and modularity properties required for large software systems
 
 - fair share & microeconomic
- overheads limit them to relatively coarse control over long-running computations
 
 - proportional-share (lottery scheduling)
- resourse consumption rates of active computetions are proportional to the relative shares that they are allocated
 - provides responsive control over the relative execution rates of computations
 - excellent support for modular resource management
 
 
problems: proportional share scheduler
lottery scheduling
a randomized resource allocation mechanism, each allocation is determined by holding a lottery, the resource is granted to the client with the winning ticket
the ticket
- abstract: quantify resource rights independently of machine details
 - relative: the fraction of a resource they represent varies dynamically in proportion to the contention for that resource
 - uniform: right for heterogeneous resources can ve homogeneously represented as tickets
 
statistics
- scheduling by lottery is probabilistically fair
 - suppose a client has \(t\) tickets, the total tickets is \(T\):
- the number of lotteries won by a client has a binomial distribution:
- the probablity this client win: \(p = t/T\)
 - the expected number of wins in \(n\) time lotteries: \(E = np\), variance \(\sigma_w^2 = np(1-p)\), \(\sigma_w/E = \sqrt{(1-p)/np}\)
 
 - the times of lotteries required until the client’s first win has a geometric distribution:
- expected number of time $n$ that a client wait before first win: \(E(n) = 1/p\), varience \(\sigma^2_w = (1-p)/p^2\)
 - that is \(ResponseTime \propto 1/t\)
 
 
 - the number of lotteries won by a client has a binomial distribution:
 - any client with non-zero num of tickets will eventually win a lottery -> solve the problem of starvation
 
Modular resource management
ticket transfer
- ex: a client needs to block pending a reply from an RPC, it can transfer its tickets to that server
 - solves the conventional priority inversion problem
 
ticket inflation
- an alternative of transfer: a client can escalate its resource rights by creating more lottery tickets
 - but it will violated desirable modularity and load insulation properties
 - very useful among mutually trusting clients: can be used to adjust resource allocations without explicit communication
 
ticket currencies
- a unique currency can be used to denominate tickets within each trust boundary
 - cause inflation, but can maintain an exchange rate between local currency and a base currency
 
compensation tickets
- A client which consumes only a fraction \(f\) of its allocated resource quantum can be granted a compensation ticket that inflates its value by 1 until the client starts its next quantum.
 
Implementation
- scheduling quantum: 100 ms
 - random number: in 10 RISC instructions
 
lotteries
- search a list of \(n\) clients in \(O(n)\) time, can ordering by decreasing to reduce average searching time
 - when \(n\) is large, use a tree of partial ticket sums, traversed the winning client leaf node in \(log(n)\)
 
ticket active & deactive
- a ticket is active while it is being used by a thread to compete in a lottery
 - when a thread is removed from the run queue, its tickets are deactived
 - the tickets are reactived when the thread rejoin the running queue
 
ticket transfer
- creating a new ticket denominated in the client’s currency, and using it to fund the server’s currency
 
Experiments
- dynamic ticket inflationcontrol
 - client/server ticket transmission
 
system overhead
- the overhead imposed by our prototype lottery scheduler is comparable to that of the standard Mach time-sharing policy.
 
Managing diverse resource
locks
- The mutex transfers its inheritance ticket to the thread which currently holdsthe mutex.
 - When a thread releases a lottery-scheduled mutex, it holds a lottery among the waiting threads to determine the next mutex owner.
 - then the thread moves the mutex inheritance ticket to the winner
 
space-shared resource(memory)
- use an inverse lottery, in which a “loser” is chosen to relinquish a unit of a resource that it holds.
 - suppose a client holds \(t\) tickets, the probability of being selected by a lottery with total tickets \(T\) and \(n\) clients is $$p = \frac{(1-t/T)}{n-1}$$
 
Author xymeow
LastMod 2019-03-03