1. An apparatus comprising a computer processor for executing a plurality of predefined groups {G 1 } of tasks that process network data during consecutive time slots of equal length, wherein each task group G 1 comprises a plurality of tasks, the computer processor comprising: a task selection circuit for associating, based upon any method, each time slot with a task group G 1 and for selecting, based upon any method, for each time slot, one of the tasks from the associated task group G 1 , wherein any two consecutive time slots are associated with respective different task groups G 1 ; and an instruction execution unit which is, in each time slot, to initiate execution of at most one instruction for the task selected for the time slot, the instruction to be suspended upon indication of unavailable resources therefor and to be resumed upon indication of resource availability, wherein the indications of unavailable resource is generated when the task is performing a FIFO read operation, determining a specific FIFO is indicated to be read, and either a state machine indicates a state corresponding to the specific FIFO being owned by a state machine indicates a state corresponding to the specific FIFO being owned by another task or by sampling of a status signal of the specific FIFO for the selected task at a predetermined cycle rate wherein the status signal indicates the specific FIFO is empty, and wherein the indication of available resources is generated when the state machine indicates a state corresponding to the specific FIFO being owned by the task, and the status signal indicates the specific FIFO is not empty; wherein the instruction execution unit includes, for each task, one or more registers storing task-specific values, such that no one of the one or more registers has to be saved or restored when a task is scheduled for execution; wherein the one or more registers include a program counter register for each task; wherein the instruction execution unit does not permit a task to re-access a first register until other tasks sharing the first register are permitted access or have been granted permission to access the first register.