1. A method for scheduling applications on a multi-core processor comprising a plurality of processor cores, the method comprising: associating a first at least two processor cores and a first plurality of address spaces with a first affinity group; associating a second at least one processor core and a second plurality of address spaces with a second affinity group; and scheduling one or more of the first affinity group and the second affinity group to execute on associated cores of the multi-core processor, wherein the step of scheduling further comprises: releasing a processor core for scheduling; synchronizing the plurality of processor cores; processing a scheduling event for the released processor core; associating the released processor core with the affinity group associated with the scheduling event; and assigning a plurality of address spaces to the released processor core for the scheduling event.