Described is a scheduling system that provides allocation of system resources
of one or more processor sets among groups of processes. Each of the process groups
is assigned a fixed number of shares, which is the number that is used to allocate
system resources among processes of various process groups within a given processor
set. The described fair share scheduler considers each processor set to be a separate
virtual computer. Different process sets do not share processes, a particular process
must execute on a single processor set. In another embodiment of the invention,
each process group could be given a separate number of shares for each processor
set. Percentage of the resources of the specific processor set allocated to processes
of a process group is calculated as a ratio of the shares of the process group
on the processor set to the total number of shares of active process groups operating
in that set. The process group is considered active on a processor set, if that
processor set executes at least one process of that process group.