title: how does the Completely Fair Scheduler (CFS) work in Android
body: <p>I am trying to get a better understanding on ANDROID CFS. I have some doubt on scheduler's behavior.</p>
  
  <p><em>The difference between Android scheduler and Linux scheduler Scheduler — 5 files — The Android kernel also contains slight changes to the CPU process scheduler and time-keeping algorithms. We don’t know the history of these changes, and the impact was not evident based on a cursory examination.</em></p>
  
  <p>Do you know which are this files?</p>
  
  <p>If I understand, Process.THREAD_PRIORITY_DEFAULT or Process.THREAD_PRIORITY_BACKGROUND are 'nice' value. How does Android convert 'nice' value in 'timeslice'?</p>
  
  <p>What is the initial value of 'virtual runtime' in Android and how to calculate?</p>
  
  <p>In Android, is 'cgroups' use to define scheduling classes? The following application states: (i) Foreground process - Critical priority; (ii) Visible process and Service process - High priority; (iii) Background process and Empty process - Low priority; are three scheduling classes ?</p>