Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS]

Davide Libenzi
2007-04-18T19:48:10Z

On Wed, 18 Apr 2007, William Lee Irwin III wrote:

> Thinking of the scheduler as a CPU bandwidth allocator, this means
> handing out shares of CPU bandwidth to all users on the system, which
> in turn hand out shares of bandwidth to all sessions, which in turn
> hand out shares of bandwidth to all process groups, which in turn hand
> out shares of bandwidth to all thread groups, which in turn hand out
> shares of bandwidth to threads. The event handlers for the scheduler
> need not deal with this apart from task creation and exit and various
> sorts of process ID changes (e.g. setsid(), setpgrp(), setuid(), etc.).

Yes, it really becomes a hierarchical problem once you consider user and
processes. Top level sees a "user" can be scheduled (put itself on the
virtual run queue), and passes the ball to the "process" scheduler inside
the "user" container, down to maybe "threads". With all the "key"
calculation parameters kept at each level (with up-propagation).

- Davide