Next: How The Linux Scheduler
   Up: Lottery Scheduling for the
   Previous: Lottery Scheduling for the
  
  
  
  
  
  The scheduler is a central component of all modern multi-tasking
  operating systems. The algorithm used to implement the scheduler
  balances important goals such as interactivity and efficient CPU
  utilization while striving to ensure that no processes are starved
  (i.e., regardless of load, all processes get to use the processor at
  regular, predictable intervals). Consequently, we will examine Linux's
  scheduling algorithm as well as those of other OSes, implement an
  alternative scheduling method and perform quantitative comparisons
  between the newly implemented and pre-existing schedulers.
  
  This project will be executed in three phases:
  
  -  The first phase includes a rather quick survey of the scheduling
  algorithms used by other OSes (a sort of sanity check - is the
  lottery algorithm proposed below reasonable) as well as a more intense
  investigation of the scheduler used in Linux.
  
 -  The second phase consists of modifying the existing scheduling
  algorithm to perform like an alternative found in the literature. We
  anticipate implementation of a lottery scheduling algorithm, where
  each process is given a certain number of lottery tickets and gets to
  run whenever one of its lottery tickets is randomly selected. Those
  processes with many lottery tickets correspond to the processes with
  high priority and will, on average, be run more often than the
  processes that possess only a small number of tickets.
  
 -  The final phase of the project consists of a quantitative comparison
  of the newly implemented scheduler against the current scheduler.
  There seems to be a natural (if naive) way of implementing the lottery
  scheduling algorithm using the pre-existing framework.  When deciding
  which process to run next, rather than running the process with the
  highest dynamic priority, pick at random a number and determine which
  process's ticket that number corresponds to. This determination could
  take several forms. A straightforward method entails walking down the
  ready list subtracting the dynamic priority of each process
  encountered from the lottery value - the process whose priority takes
  the lottery value below zero is then run.
  
 
  
  This project is pedagogically important because it examines a core OS
  concept, namely that of scheduling processes effectively. It is
  reasonable because the framework that exists appears to be extensible
  without significant modification. As a contribution to Linux this
  project may also be valuable since scheduler performance is at the
  heart of OS performance.
  
  
  
  
 
  
  
 
  
  
   
  
   Next: How The Linux Scheduler
   Up: Lottery Scheduling for the
   Previous: Lottery Scheduling for the
  
  
  Brandon Sanders
  
12/17/1999