1. A data processing system comprising: an array of processing cores for processing a set of software programs configured to run on the data processing system, with each software program among the set of software programs comprising its list of tasks to be processed; a hardware logic module, referred to as a controller, for repeatedly assigning individual processing cores of the array of processing cores to process individual tasks of each software program among the set of software programs; a memory providing task-specific memory segments; and a hardware logic module, referred to as a cross-connect, for connecting the array of processing cores and the task-specific memory segments of the memory, wherein the controller configures at least one of the following: (a) at least one given task-specific multiplexer among a set of task-specific multiplexers within the cross-connect to connect a processing core of the array of processing cores to such a task-specific memory segment that is specific to the same task as the given task-specific multiplexer, and (b) at least one given core-specific multiplexer among a set of core-specific multiplexers within the cross-connect to connect a task-specific memory segment to such a core of the array of processing cores that the given core-specific multiplexer is specific to.