Have a look at ShareII at www.softway.com.au. It's a commercial product
which contains a user-oriented heirachical scheduler like this. It
works well, but it's complex to get a reasonable "fairness" between
users. One specifies the share each user gets with respect to their
peers, and the scheduler tries to enforce it, using historical
information to deal with a user who saturates the CPU(s) on an idle
machine who later competes with users on a busy machine.
User scheduling is not only useful for real users - its a great way of
making sure daemons get the amount of CPU they need without saturating
the machine if they run wild.
Bias warning: I work at Softway, often on Share.
J