A static schedule is selected from a set of static schedules for an application
dependent on the state of the application. A scheduling system stores a set of
pre-defined static schedules for each state of the application. A scheduling system
learns the costs of predefined schedules for each state of the application on-line
as the application executes. Upon the detection of a state change in the application
during run-time, the scheduling system selects a new static schedule for the application.
The new static schedule is determined based on schedule costs and exploration criteria.