Tasks are assigned to processors of a system. The resident set size of
each task is determined, specifying the amount of physical information
allocated thereto, and locational information of this memory with respect
to the processors is determined. Each task is assigned one processor,
based on the task's resident set size, and the locational information of
the task's allocated physical memory. Each task is attempted to be
assigned to the processor closest to the largest portion of the physical
memory allocated thereto. A number of the tasks may be determined as best
suited to run on a given processor, but the given processor may be unable
to run them all. The processor may be thus assigned only those tasks that
have a greatest amount of physical memory allocated that is closest to
the processor, such as the greatest amount or percentage of physical
memory allocated that is local to the processor.