He desarrollado un algoritmo de programación que proporciona garantías probabilísticas en tiempo real, pero parece demasiado obvio y simple para ser novedoso. Me ha costado trabajo relacionarlo con los algoritmos de programación publicados en tiempo real (EDF, servidor esporádico, etc.). ¿El siguiente algoritmo de programación es un algoritmo conocido en tiempo real?¿Este algoritmo es un algoritmo de sistema en tiempo real existente?
Supuestos:
- Todas las tareas se han extraído de una distribución donde porcentaje X de tareas requieren menos de R cpu-segundo
- Todas las tareas tienen el mismo plazo. Si una tarea tarda más de T segundos, entonces es un fracaso para esa tarea
- llegadas de tareas están separados por un conocido de tiempo mínimo entre llegadas, MIN_INTER_ARRIVE_T
- El planificador tiene una taskset que puede contener un máximo de tareas H en cualquier momento (durante cada paso de tiempo, todas las tareas del taskset hacen iguales progreso mediante el intercambio de la CPU por igual)
- tareas no se afectan entre sí
Garantía:
- (1) Si X Educación física rcentaje de tareas requieren menos de cpu-segundo R y (2) R < = T/H, (3) MIN_INTER_ARRIVE_T> = T/H, entonces al menos porcentaje X de tareas terminará dentro de T segundos
Algoritmo :
- Si llega una tarea y el conjunto de tareas está lleno, desaloje la tarea que usó la mayor cantidad de CPU. Las suposiciones garantizan que dicha tarea habrá utilizado al menos R cpu-segundos. Por lo tanto, las únicas tareas que se pueden desalojar serán tareas que son fallas de todos modos. Cualquier tarea que requiera menos de R cpu-seconds se completará a tiempo.
La segunda suposición parece ser problemático en la vida real:. "• Todas las tareas tienen el mismo plazo Si una tarea tarda más de T segundos, entonces es un fracaso para esa tarea ". En entornos informáticos reales, hay muchas tareas que no obedecen esta suposición. – rkellerm
En algunos sistemas del mundo real esa suposición sería realista. Estoy interesado en aplicar este planificador a un servidor web donde cada tarea es una solicitud web. En esta configuración, parece apropiado suponer que todas las solicitudes web tienen la misma fecha límite (digamos 10 o más segundos), después de lo cual la solicitud expira. – Mike