Patent ID: 7793294

Claim:
A system for scheduling tasks, the system comprising: memory for storing computer executable instructions; a processor for accessing memory and executing computer executable instructions, the computer executable instructions comprising: an initial scheduler that schedules a plurality of tasks of an associated priority group within an available schedule time period based on an earliest possible end time of a task duration of a respective task of the plurality of tasks, such that tasks of the plurality of tasks that have a task duration that overlap task durations of scheduled tasks are not scheduled and are defined as unscheduled tasks; a reintroduction scheduler that moves scheduled tasks within respective task time ranges to create time interval gaps for the unscheduled tasks, wherein an unscheduled task is scheduled by the reintroduction scheduler if an unscheduled task has a task duration that falls within an available time interval gap; and a priority group selector that selects tasks with a same predefined priority from a plurality of priority groups for providing task of a first priority group to the initial scheduler; wherein the reintroduction scheduler provides an indication for a next priority group to the priority group selector and a revised schedule of tasks to the initial scheduler, the priority group selector selecting a next group of tasks with a same priority for providing a second priority group to the initial scheduler, the initial scheduler schedules a plurality of tasks of the second priority group within available time intervals of the revised schedule of tasks based on an earliest possible end time of a task duration of a respective task of the second priority group, such that tasks that have a task duration that overlap task durations of scheduled tasks of the first and second priority group are unscheduled tasks of the second priority group.