Lo más temprano posible plazo primero programación

Ir a: navegación, búsqueda de

Lo más temprano posible plazo primero (EDF) o menos tiempo para ir es una dinámica algoritmo de planificación utilizado en sistemas operativos en tiempo real para colocar los procesos en un cola de prioridad. Cuando produce un evento de programación (acabados de tarea, tarea nueva lanzado, etc.) se buscará la cola para el proceso más cercano a su fecha límite. Este proceso es el siguiente en ser programado para su ejecución.

EDF es una óptima algoritmo de planificación en multi-núcleo preventivo, en el sentido siguiente: Si una colección de independiente puestos de trabajo, cada uno caracterizado por una hora de llegada, un requisito de ejecución y una fecha límite, se pueden programar (cualquier algoritmo) de una manera que asegura que todos los trabajos completan antes de su fecha límite, el EDF programará esta colección de trabajos para que todos terminen antes de su fecha límite.

Con la programación periódicos procesos que tienen plazos iguales a sus períodos, EDF tiene un límite de utilización de 100%. Por lo tanto, la prueba de planificación para EDF es:

U = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq 1,

donde el \left\{C_i\right\} son los peor de los tiempos de cómputo de la n los procesos y la \left\{T_i\right\} son sus respectivos períodos Inter llegadas (asumidos igual a los plazos relativos).

Es decir, la Fed puede garantizar que se cumplen todos los plazos, siempre que el total CPU utilización no es más del 100%. En comparación con prioridad fija programación técnicas como programación tasa monotónica, EDF puede garantizar todos los plazos en el sistema de carga superior.

Sin embargo, cuando el sistema está sobrecargado, el conjunto de procesos que echará de menos los plazos es muy impredecible (será función de los plazos exactos y tiempo en que se produce la sobrecarga). Esto es una desventaja considerable para un diseñador de sistemas de tiempo real. El algoritmo también es difícil de aplicar en hardware y hay un tema difícil de representar los plazos en diversas gamas (plazos deben ser redondeados a cantidades finitas, normalmente unos pocos bytes como máximo). Si una aritmética modular se utiliza para calcular los plazos futuros relativos a ahora, el campo guardar un plazo relativo futuro debe adaptarse al menos el valor de la (("duración" {del más largo tiempo esperado para terminación} * 2) + "ahora"). Por lo tanto EDF No se encuentra comúnmente en los sistemas informáticos industriales en tiempo real.

En su lugar, utilizan más sistemas de computadora en tiempo real programación de prioridad fija (generalmente programación tasa monotónica). Con fijas prioridades, es fácil predecir que las condiciones de sobrecarga hará que los procesos de baja prioridad a perder los plazos, mientras que el proceso de mayor prioridad reunirá todavía su plazo.

Hay un importante cuerpo de investigación con EDF la programación en Computación en tiempo real; es posible calcular los peores tiempos de respuesta de procesos en EDF, para tratar otros tipos de procesos que los procesos periódicos y utilizar servidores para regular las sobrecargas.

Contenido

  • 1 Ejemplo
    • 1.1 Diagrama de tiempo
    • 1.2 Utilización
  • 2 Intercambio de plazo
  • 3 Análisis del tráfico pesado para colas de EDF con incumplir
  • 4 Núcleos aplicación FED programación
  • 5 Véase también
  • 6 Referencias

Ejemplo

Considerar 3 procesos periódicos programados en un monoprocesador preventivo. Los períodos y tiempos de ejecución son como se muestra en la siguiente tabla:

Proceso de sincronización de datos
Proceso Tiempo de ejecución Período
P1 1 8
P2 2 5
P3 4 10

En este ejemplo, las unidades de tiempo pueden considerarse programable rebanadas de tiempo. Los plazos son que cada proceso periódico debe completar dentro de su período.

Diagrama de tiempo

Diagrama de tiempo mostrando parte de un posible calendario para el ejemplo.

En el diagrama de temporización, las columnas representan rebanadas de tiempo con el tiempo aumenta hacia la derecha, y todos los procesos empezar sus períodos en el segmento de tiempo 0. El diagrama tiempo alternando sombreado azul y blanco indica períodos de cada proceso, con los plazos en los cambios de color.

El primer proceso previsto por la Fed es P2, porque su período es más corto, y por lo tanto tiene la fecha más temprana. Asimismo, cuando finaliza P2, P1 está programada, seguido de P3.

En el segmento de tiempo 5, tanto P2 y P3 tienen el mismo plazo, que necesitan completar antes de tiempo se asigna 10, así que la Fed puede programar ninguno.

Utilización

La utilización será:

 \left ( \frac{1}{8} + \frac{2}{5} + \frac{4}{10} \right ) = \left ( \frac{37}{40} \right ) = 0.925 = {\mathbf{92.5%}}


Puesto que el mínimo común múltiplo de los períodos es 40, el patrón de programación puede repetir cada 40 rebanadas de tiempo. Pero, sólo 37 de los 40 tiempo rebanadas son utilizados por P1, P2 o P3. Puesto que la utilización, 92,5%, no es mayor al 100%, el sistema es programable con EDF.

Intercambio de plazo

Artículo principal: Herencia de prioridad

Plazo indeseables intercambios pueden ocurrir con programación de EDF. Cuando se accede a un recurso compartido por procesos usando secciones críticas dentro de un proceso (para evitar que se da por otro proceso con un plazo anterior a la espera de acceso al mismo recurso compartido), se convierte en importante para el programador para asignar temporalmente la fecha más temprana de entre los demás procesos esperando el recurso, en el proceso mientras está dentro de su sección crítica para evitar que los procesos con los plazos anteriores perder su respectivo plazo, especialmente si el proceso dentro de su sección crítica tiene mucho más tiempo para completar y la salida de su sección crítica y posterior liberación del recurso compartido puede ser retrasado. También se puede ser más retrasado por otros procesos con plazos anteriores que no comparten el mismo recurso y por lo tanto pueden adelantarse durante su sección crítica. Este peligro de intercambio plazo dentro de una sección crítica es análoga a inversión prioritaria Cuando se utiliza programación preventiva prioridad fija.

Para acelerar la búsqueda dentro de una cola de la lista enlazada, deben someterse a los procesos dentro de la lista de espera según sus plazos. Cuando un proceso cíclico o nuevo se da un nuevo plazo, entonces se inserta antes del primer proceso con una fecha posterior. De esta manera, los procesos con los primeros plazos son siempre al principio de la lista, reduciendo el tiempo para encontrarlas.

Análisis del tráfico pesado para colas de EDF con incumplir

En un análisis de tráfico pesado del comportamiento de un solo servidor cola bajo un Primeros-plazo-First (FED) programación política con incumplir, los procesos tienen plazos y sirven sólo hasta que transcurran los plazos. La fracción de "incumplido obra," definido como el trabajo residual no atendido debido a transcurrido los plazos, es una medida de rendimiento importantes.

Núcleos aplicación FED programación

Aunque las implementaciones de la Fed no son comunes en núcleos comerciales en tiempo real, aquí están algunos enlaces de granos open source y en tiempo real aplicación FED:

  • TIBURÓN El tiburón RTOS, implementando distintas versiones de reserva de recursos y programación de EDF algoritmos de programación
  • ERIKA Enterprise ERIKA Enterprise, que proporciona una implementación de EDF optimizado para pequeños microcontroladores con una API similar a la OSEK API.
  • El núcleo de un hombre El núcleo de Everyman implementa EDF o plazo monotónica programación dependiendo de la configuración del usuario.
  • MaRTE OS MaRTE OS actúa como un tiempo de ejecución para aplicaciones Ada e implementa una amplia gama de programación de algoritmos como EDF.
  • El Acuosa proyecto constituye una modificación en el kernel de Linux enriqueciendo al planificador de procesos con capacidades de programación de EDF. El momento de la programación no puede ser tan preciso como en el caso de los sistemas operativos en tiempo real duro anteriores, sin embargo es lo suficientemente preciso para mejorar grandemente la previsibilidad y así cumplir con los requisitos en tiempo real, de aplicaciones multimedia. Acuosa es uno de los pocos proyectos que proporciona capacidades de programación en tiempo real a los usuarios sin privilegios en un sistema en forma controlada, mediante un modelo de control de acceso correctamente diseñado.[1]
  • El Kernel de Linux ha nombrado a una más temprana implementación primer plazo FECHA LÍMITE DE HORARIO que está disponible desde la versión estable de 3.14.
  • El Programador en tiempo real desarrollado en el contexto de la IRMOS Proyecto europeo es un multi-processor scheduler en tiempo real para el kernel de Linux, particularmente conveniente para el aislamiento temporal y provisioning de QoS garantías a los componentes de software complejos multi-threaded y también todo máquinas virtuales. Por ejemplo, al usar Linux como anfitrión OS y KVM como hipervisor, IRMOS puede ser utilizado para proporcionar garantías programación indidivual VMs y al mismo tiempo aislar su desempeño con el fin de evitar interferencias temporales no deseados. IRMOS cuenta con un combinado EDF/FP Programador jerárquica. A nivel externo hay un programador FED repartido en las CPU disponibles. Sin embargo, las reservas son multi-CPU y FP global sobre los procesadores múltiples se utiliza a nivel interno con el fin de programar los hilos (o procesos) adjunta a cada reserva FED externo. Véase también Este artículo en lwn.net para una visión general y un breve tutorial sobre el tema.
  • Xen ha tenido un planificador EDF por algún tiempo. El Página de comando man contiene una breve descripción.
  • KVM: El programador será probablemente ejecutado por los desarrolladores KVM en algún momento en el futuro[vaga].
  • El OS de Plan 9 de Bell Labs incorpora EDFI, un "ligero en tiempo real programación protocolo que combina la Fed con herencia fecha límite sobre los recursos compartidos."[2]

Véase también

  • Prioridad dinámica programación

Referencias

  1. ^ Cucinotta, Tommaso (abril de 2008). «Acceso Control adaptativo reservas en sistemas multiusuario». 14 IEEE en tiempo real e incorporada tecnología y aplicaciones Simposio (ACR 2008).
  2. ^ Pierre G. Jansen Sape J. Mullender, Paul J.M. Havinga, Hans Scholten. FED ligero programación con plazo herencia

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Earliest_deadline_first_scheduling&oldid=603719309"