Adaptive partitioning of real-time tasks on multiple processors