Lottery scheduling
From Wikipedia, the free encyclopedia
Lottery Scheduling is a probabilistic scheduling algorithm for processes in an operating system. Processes are each assigned some number of lottery tickets, and the scheduler draws a random ticket to select the next process. The distribution of tickets need not be uniform; granting a process more tickets provides it a relative higher chance of selection. This technique can be used to approximate other scheduling algorithms, such as Shortest job next and Fair-share scheduling.
Lottery scheduling solves the problem of starvation. Giving each process at least one lottery ticket guarantees that it has non-zero probability of being selected at each scheduling operation.
[edit] Implementation
Implementations of lottery scheduling should take into consideration that there could be billions of tickets distributed among a large pool of threads. To have an array tickets with each ticket corresponding to a thread may be highly inefficient.
[edit] See also
[edit] External links
- Operating systems and systems programming - UC Berkeley OS Class
- Implementing Lottery Scheduling - Matching the Specialization in Traditional Schedulers - Paper by David Petrou et al.