Disclosed is an apparatus, method, and program product that enables
distribution of operating system resources on a nodal basis in the same
proportions as the expected system workload. The preferred embodiment of
the present invention accomplishes this by assigning various types of
weights to each node to represent their proportion of the overall balance
within the system. Target Weights represent the desired distribution of
the workload based on the existing proportions of processor and memory
resources on each node. The actual workload balance on the system is
represented by Current Weights, which the operating system strives to
keep as close to the Target Weights as possible, on an ongoing basis.
When the system is started, operating system services distribute their
resources nodally in the same proportions as the Target Weights, and can
request to be notified if the Target Weights ever change. If processors
and/or memory are subsequently added or removed, new Target Weights are
calculated at that time, and all services which requested notification
are notified so they can redistribute their resources according to the
new Target Weights or a stepwise refinement thereof.