Current real-time scheduling methods focus on periodic tasks with fixed (or at least bounded) execution times. However, many tasks used in control and optimization applications do not fit this pattern. "Anytime" or incremental algorithms whose performance is variable and improves as their execution time increases are examples of such tasks. We have developed an adaptive scheduling framework to deal with multiple anytime tasks that compete with each other for processing time. This work explores the issues surrounding anytime tasks, how they are scheduled, how they adapt, and how they interact with more traditional scheduling techniques.