[comp.arch] Fair-share scheduler

danh@halley.UUCP (Dan Hendrickson) (03/22/90)

In article <268@van-bc.UUCP> sl@van-bc.UUCP (Stuart Lynne) writes:
}In article <500@sibyl.eleceng.ua.OZ> ian@sibyl.OZ (Ian Dall) writes:
}}In article <1990Mar19.220617.26370@world.std.com> bzs@world.std.com (Barry Shein) writes:
}}The other problem seems to be that, sure people would like to be able
}}to use spare capacity, but they like to be guaranteed a certain
}}minimum number of cycles. Well, let me propose the guaranteed share
}}scheduler! I doubt if this is new but I'll propose it anyway!  Suppose
}}the total number of cycles per unit time is T, the maximum number of
}}users is M and the number of active users is A. Every user should get
}}max(T/A, T/M) cycles per unit time. The T/M is guaranteed, the T/A -
}}T/M is the bonus for being shared.
    [other stuff]
}You have to have a scheduler that is aware of the number of users currently
}requesting CPU cycles. When the number of cycles available is less than
}requested divide it up via a formula where all possible users are allocated
}a fixed percentage of CPU cycles (such that the total of all users
}allocations add's up to 100 per cent).
}
}When cycles are scarce you get at least your allocation. When cycles are 
}available because there is no one else around (at 3:00 AM for example) you 
}can get access to a MUCH larger amount of cycles.
}
}For example if there are 50 people using a 50MIPS Killer Micro Mini
}Mainframe (TM), each would be allocated 2%. During the day when *all* 50
}people are in and pounding on the keyboard they would each get about 1MIPS
}worth of CPU if they need it. At night two late night programmers doing big 
}make's could each get 50% or 25MIPS.
  [other stuff]

While at Prisma, Inc (may it rest in peace), the sw group implemented a
fair-share scheduler on our local Sun network.  Certain groups were given
a guaranteed percent of the machine if they needed it.  Each group could
be given different fair-share percentages which were enforced on a fully-
utilized machine.  I am not sure how the extra cycles were split up, if
it was based on the fair-share percentage, or on the # of users.
I don't have any more details on the scheduler.  Perhaps some
of the ex-Prismoids out there could give more details.

(To throw this discussion into another thread, this would give a system
administrator with his, not your, interests at heart the ability to get
on your machine when he needed and steal YOUR cpu cycles to his heart's
content!)


Dan Hendrickson, Tandem Computers, Inc.
Austin, TX