Peor de los tiempos de ejecución

Ir a: navegación, búsqueda de

El peor de los tiempos de ejecución (WCET) de un computacional la tarea es la máxima duración de que la tarea podría tomar para ejecutar a un específico hardware plataforma.

Contenido

  • 1 ¿Qué WCET se utiliza para
  • 2 Encontrar WCET
    • 2.1 Consideraciones en el cálculo de WCET
    • 2.2 Enfoques automatizados para encontrar WCET
      • 2.2.1 Técnicas de análisis estático
      • 2.2.2 Medición y técnicas híbridas
  • 3 Investigación
    • 3.1 WCET herramienta Challenge
  • 4 Véase también
    • 4.1 Artículos y white papers

¿Qué WCET se utiliza para

Peor caso tiempo de ejecución se utiliza normalmente en confiable sistemas de tiempo real, donde entender el comportamiento de temporización caso peor de software es importante para la confiabilidad o el correcto comportamiento funcional.

Por ejemplo, un sistema informático que controla el comportamiento de un motor en un vehículo puede ser que necesite responder a las entradas dentro de un período de tiempo determinado. Uno de los componentes que conforman el tiempo de respuesta es el tiempo empleado en ejecutar el software, por lo tanto, si se puede determinar el tiempo de ejecución caso peor software, a continuación, el diseñador del sistema puede utilizar esto (con otras técnicas tales como Análisis de planificabilidad para asegurar que el sistema responde lo suficientemente rápido.

Mientras WCET es potencialmente aplicable a muchos sistemas en tiempo real, en la práctica la garantía de WCET es utilizada principalmente por sistemas de tiempo real que se relacionan con alta confiabilidad y seguridad. Por ejemplo en software en el aire, se requiere cierta atención al software por DO178B Sección 6.3.4. El creciente uso de software en sistemas automotrices también está conduciendo la necesidad de utilizar el análisis WCET del software.

En el diseño de algunos sistemas, WCET a menudo se utiliza como insumo para Análisis de planificabilidad, aunque un uso mucho más común de WCET en sistemas críticos es garantizar que los presupuestos de tiempo preasignado en un sistema de partición regulares tales como ARINC 653 No son violados.

Encontrar WCET

Desde los primeros días de embedded computing, desarrolladores de software embebido han utilizado:

  • end-to-end del código, por ejemplo mediciones estableciendo un pin de I/O en el dispositivo para alta al comienzo de la tarea y baja al final de la tarea y utilizando un analizador lógico para medir la anchura de pulso más larga, o midiendo dentro del software mismo mediante el reloj del procesador o instrucción cuenta.
  • técnicas de análisis estático manual como contando las instrucciones de ensamblador para cada función, lazo etc. y luego combinarlas.

Ambas de estas técnicas tienen limitaciones. Extremo a extremo mediciones Coloque una alta carga de software de prueba para lograr la trayectoria más larga; contando las instrucciones sólo es aplicable a hardware y software simple. En ambos casos un margen de error se utiliza a menudo para dar cuenta de código no probado, aproximaciones de rendimiento de hardware o errores. A menudo se utiliza un margen del 20%, aunque hay muy poca justificación utilizado para esta figura, excepto para confianza histórica ("funcionó la última vez").

Como hardware y software han aumentado en complejidad, ha impulsado la necesidad de herramientas de apoyo. Complejidad está convirtiendo en un problema en las mediciones y análisis estático. Es difícil juzgar qué tan amplia el margen de error debe ser y cómo bien probados es el sistema de software. Argumentos de seguridad sistema basados en una marca más agua alto alcanzada durante la prueba son ampliamente utilizados, pero se convierten en más difícil de justificar ya que el software y hardware son menos predecibles.

En el futuro, es probable que un requisito para los sistemas críticos de seguridad es que son analizados utilizando métodos estáticos y basada en la medición.[citación necesitada]

Consideraciones en el cálculo de WCET

El problema de encontrar WCET por análisis es equivalente a la detener el problema y por lo tanto es insoluble en el caso general. Afortunadamente para la clase de sistemas que ingenieros típicamente quieren hallar WCET, el software está generalmente bien estructurado, siempre terminará y analizable.

Mayoría de los métodos para encontrar una WCET implican aproximaciones (generalmente un redondeo hacia arriba cuando existen incertidumbres) y por lo tanto, en la práctica el WCET exacto misma es a menudo considerado como inalcanzable. En cambio, diferentes técnicas para encontrar el WCET producen estimaciones para el WCET. Esas estimaciones son típicamente pesimistas, lo que significa que el estimado WCET es conocido por ser más alto que el real WCET (que es generalmente lo que se desea). Mucho trabajo en el análisis WCET es reducir el pesimismo en el análisis para que el valor estimado es suficientemente bajo como para ser valioso para el diseñador del sistema.

Análisis WCET generalmente se refiere al tiempo de ejecución de un único hilo, tarea o proceso. Sin embargo, por supuesto en hardware moderno, especialmente multifilar, otras tareas en el sistema impactará el WCET de una determinada tarea si comparten memoria caché, líneas de memoria y otras funciones de hardware. Además, tarea programar eventos tales como bloqueo o, para ser interrupciones debe ser considerado en análisis WCET si pueden ocurrir en un sistema en particular. Por lo tanto, es importante considerar el contexto en el cual se aplicación el análisis WCET.

Enfoques automatizados para encontrar WCET

Existen muchos enfoques automatizados para calcular WCET más allá de las técnicas manuales más arriba. Estos incluyen:

  • técnicas analíticas para mejorar casos de prueba para aumentar la confianza en las mediciones de extremo a extremo
  • análisis estático del software ("estático" significado sin ejecutar el software).
  • acercamientos combinados, referido a menudo como análisis "híbrido", siendo una combinación de mediciones y análisis estructural

Técnicas de análisis estático

Una herramienta estática de WCET intenta proporcionar estimaciones WCET mediante el examen de los programas informáticos sin ejecutarlo directamente en el hardware. Técnicas de análisis estático han dominado la investigación en el área desde finales de los ochenta, aunque en un entorno industrial enfoques de extremo a extremo mediciones eran práctica estándar.

Herramientas de análisis estático de trabajaren en un alto nivel para determinar la estructura de un programaes la tarea, ya sea en una pieza de trabajo código fuente o binario desmontada ejecutable. También trabajan en un nivel bajo, usando información de tiempo sobre el hardware real que la tarea se ejecutará, con todas sus características específicas. Mediante la combinación de esos dos tipos de análisis, la herramienta intenta dar un límite superior en el tiempo requerido para ejecutar una tarea dada en una plataforma de hardware determinado.

En el WCET estática, bajo análisis se complica por la presencia de elementos arquitectónicos que mejoran el rendimiento promedio-caso de la procesador:: instrucciones/datos cachés, predicción de bifurcaciones y tuberías de la instrucción por ejemplo. Es posible, pero cada vez más difícil, para determinar los límites WCET apretados si estas características arquitectónicas modernas son tenidas en cuenta en el modelo de tiempo utilizado por el análisis.

Las autoridades de certificación tales como la Agencia Europea de seguridad aérea, por lo tanto, dependen de suites de validación de modelo.[citación necesitada]

Análisis estático ha producido buenos resultados para el hardware más simple, sin embargo una posible limitación de análisis estático es que el hardware (la CPU en particular) ha alcanzado una complejidad que es extremadamente difícil de modelo. En particular, el proceso de modelado puede introducir errores de varias fuentes: errores en el diseño de chip, falta de documentación, errores en la documentación, errores en la creación del modelo; todo lleva a casos donde el modelo predice un comportamiento diferente al observado en hardware real. Por lo general, donde no es posible predecir con exactitud un comportamiento, un resultado pesimista se utiliza, que puede conducir a la estimación WCET ser mucho más grande que nada logró en tiempo de ejecución.

Hardware multi-núcleo es particularmente difícil de obtener buenas estimaciones WCET estáticas para.

Hay una serie de herramientas comerciales y académicos que implementan distintas formas de análisis estático.

Medición y técnicas híbridas

Basada en métricas y enfoques híbridos generalmente tratan de medir los tiempos de ejecución de segmentos de código corto sobre el hardware real, que luego se combinan en un análisis del nivel superior. Herramientas de toman en cuenta la estructura del software (por ejemplo, lazos, ramas), para producir una estimación de la WCET del programa más grande. El fundamento es que es difícil probar la ruta más larga en software complejo, pero es más fácil probar la ruta más larga en muchos componentes más pequeños de lo. Un caso peor efecto sólo debe verse una vez durante la prueba para que el análisis poder combinarla con otros eventos casos peores en su análisis.

Típicamente las secciones pequeñas del software pueden medir automáticamente mediante técnicas como la instrumentación (agregar marcadores al software) o con el hardware de soporte tales como depuradores y hardware CPU módulos de rastreo. Estos marcadores resultan en una traza de ejecución, que incluye tanto la ruta tomada por el programa y el tiempo en el cual se ejecutaron diferentes puntos. El rastro es entonces analizados para determinar el tiempo máximo que cada parte del programa ha tenido que para ejecutar, lo que el tiempo máximo observado iteración de cada lazo es y si hay alguna parte del software que no comprobado)Cobertura de código).

Análisis WCET medida ha producido buenos resultados para hardware simple y complejo, aunque como análisis estático puede sufrir excesivo pesimismo en situaciones de núcleo múltiple, donde es difícil definir el impacto de un núcleo en otro. Una limitación de la medida es que se basa en observar los efectos del peor de los casos durante la prueba (aunque no necesariamente al mismo tiempo). Puede ser difícil determinar si los peores efectos casos necesariamente han sido probados.

Hay una serie de herramientas comerciales y académicos que implementan distintas formas de análisis basadas en la medición.

Investigación

Los grupos de investigación más activos están en Suecia (Mälardalen, Linköping), Alemania (Saarbrücken, Dortmund, Brunswick), Francia (Toulouse, Saclay, Rennes), Austria (Viena), Reino Unido (Universidad de York y Rapita Systems Ltd), Italia (Bolonia), (Cantabria, Valencia), España y Suiza (Zurich). Recientemente, el tema de análisis de nivel de código de tiempo ha encontrado más atención fuera de Europa por grupos de investigación en los Estados Unidos (Carolina del norte, Florida), Canadá, Australia, Bangladesh (MBI LAB), Reino de Arabia Saudita-UQU(HISE LAB) y Singapur.

WCET herramienta Challenge

El primer desafío de herramienta WCET internacional llevó a cabo durante el otoño de 2006. Fue organizado por el Universidad de Mälardalen y patrocinado por la red ARTIST2 de excelencia en diseño de sistemas embebidos. El objetivo del desafío fue para examinar y comparar diferentes enfoques en el análisis el peor tiempo de ejecución. Han participado todas las herramientas disponibles y prototipos capaces de determinar límites superior salvo para el WCET de tareas. El resultados finales se presentaron en noviembre de 2006 en el ISoLA 2006 Simposio Internacional en PaphosChipre.

Un segundo desafío tuvo lugar en 2008 [1].

Véase también

  • CerCo ("certificado complejidad")
  • Compilación WCET-aware / el compilador de C WCET-consciente del CMI
  • Notación O grande
  • Optimización (informática)
  • Mejores y peores casos

Artículos y white papers

  • El problema del peor de los tiempos de ejecución - Resumen de métodos y estudio de herramientas (PDF)
  • Peor de los tiempos de ejecución de predicción mediante el análisis estático del programa (PDF)
  • Análisis WCET de sistemas probabilísticos duro tiempo Real (PDF)
  • OTAWA, un marco para experimentar los cómputos WCET (PDF)
  • WCET herramienta Challenge 2006 extendido prueba de análisis de resultados del informe final (artículo para una revista de Springer)
  • Informe final WCET herramienta Challenge 2006 (PDF)
  • Un marco del compilador para la reducción del peor de los tiempos de ejecución (PDF)

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=worst-case_execution_time&oldid=621027471"