I have developed a scheduling algorithm that provides probabilistic soft real-time guarantees, but it seems too obvious and simple to be novel. I have had a hard time though relating it to published real-time scheduling algorithms (EDF, sporadic server, etc.). Is the following scheduling algorithm a known real-time algorithm?
Assumptions:
- All tasks are drawn from a distribution where X percentage of tasks require fewer than R cpu-seconds
- All tasks have the same deadline. If a task takes longer than T seconds, then it is a failure for that task
- Task arrivals are separated by a known minimum inter-arrival time, MIN_INTER_ARRIVE_T
- The scheduler has a taskset which can hold a maximum of H tasks at any time (during every time step, all tasks in the taskset make equal progress by sharing the CPU equally)
- Tasks cannot affect each other
Guarantee:
- (1) If X percentage of tasks require fewer than R cpu-seconds and (2) R <= T/H, (3) MIN_INTER_ARRIVE_T >= T/H, then at least X percentage of tasks will finish within T seconds
Algorithm:
- If a task arrives and the taskset is full, then evict the task that has used the most CPU. The assumptions guarantee that such a task will have used at least R cpu-seconds. So the only tasks that can be evicted will be tasks that are failures anyway. Any task that requires fewer than R cpu-seconds will complete on time.