Download Desarrollo de software para STR

Document related concepts
no text concepts found
Transcript
Desarrollo de software para
STR
1
Desarrollo de software para STR
© Las características específicas de los STR condicionan los
métodos y herramientas utilizados para desarrollar el software
© No todas las técnicas que se usan para construir otros tipos de
sistemas sirven para el software de tiempo real
3 suele haber problemas de fiabilidad y determinismo temporal
© Nos centraremos en los lenguajes de programación y sistemas
operativos
2
Sistemas operativos
© Los sistemas operativos convencionales no son adecuados
para realizar sistemas de tiempo real
3 son versiones modificadas de S.O de tiempo compartido
3 no tienen un comportamiento determinista
3 no permiten garantizar los tiempos de respuesta
© Las características particulares de estos sistemas
3 Multitarea mediante system call
G No tienen en cuenta el tiempo
G Introducen retardos ilimitados en el tiempo de ejecución de las tareas
3 Planificación basada en prioridades
G Flexible
• Permite implementar diferentes estrategias para manejar procesos
modificando la regla para asignar prioridades
3
Sistemas operativos
G Dificultad en proyectar las restricciones temporales en un conjunto de
prioridades
• Tienen un número limitado de niveles de prioridad mientras que los plazos de
finalización pueden variar en un plazo más amplio
• En entornos dinámicos la llegada de una nueva tarea puede necesitar la
modificación completa del conjunto de prioridades
3 Respuesta rápida a interrupciones externas
G Solución
• Prioridades para interrupciones más altas que para procesos
• Reducir el código ejecutado con interrupciones inhabilitadas
G Problemas
• Retardos ilimitados en la ejecución de los procesos
• Un proceso siempre será interrumpido por un driver
• No se puede determinar de antemano el número de interrupciones que sufrirá
un proceso
4
Sistemas operativos
3 Mecanismos para la comunicación y sincronización entre procesos
G Sincronización de tareas y exclusión mutua en recursos compartido
mediante semáforos
G Si no hay protocolos para entrar en secciones críticas pueden provocar
problemas como inversión de prioridades, bloqueo encadenado y deadlock
3 Núcleos (kernel) pequeños y cambios de contexto rápidos
G Reduce los gastos del sistemas”menor tiempo medio de respuesta ”no
garantiza los deadlines de las tareas individuales
G Kernel pequeño ” menor funcionalidad
3 Reloj de tiempo real
G Característica esencial pero acompañada de mecanismos adicionales para
el manejo de tiempo como
• Primitivas para especificar explícitamente las restricciones temporales
• Activación automática de tareas periódicas
5
Sistemas operativos
© En general, las características de diseño de STR
3 Garantizar la correcta ejecución de todas las tareas hard
3 Administrar el uso de recursos compartidos
3 Ofrecer un buen tiempo de respuesta a las tareas que no tengan plazo
de finalización
3 Recuperación ante fallos software o hardware
3 Soportar los cambios de modo
3 Eficiente en los cambios de contexto y tiempos de respuesta a
interrupciones
6
Sistemas operativos
S. Tiempo Compartido vs S. Tiempo Real
Factor
Sist de Tiempo
Compartido
Sist de Tiempo
Real
Capacidad
Alto
rendimiento
Plazos finalización
garantizados
Grado de
respuesta
Respuesta a
sobrecarga
Rápida
Asegurado el
respuesta media tiempo respuesta en
el peor caso
Igualdad
Estabilidad
7
Sistemas operativos
© STC
3 Mejorar las prestaciones para el caso medio
3 La capacidad del sistema se mide por su rendimiento medio
3 Conseguir un tiempo de respuesta medio que sea rápido
3 Igualdad
© STR
3 Asegurar que el comportamiento del peor caso es aceptable
3 La capacidad del sistema se mide por su planificabilidad
G habilidad de las tareas para cumplir todas las hard deadlines
3 Mejorar el tiempo de respuesta para peor caso en tareas con hard
deadlines
3 Estabilidad en situaciones de sobrecarga
G el sistema satisface las deadlines críticas incluso si no puede satisfacer
todas las deadlines
8
Sistemas operativos
© Predicibilidad
3 Basándose en las características del kernel y en la información
asociada a cada tarea el sistema debe de ser capaz de
G Predecir la evolución de las tareas
G Garantizar de antemano que se cumplirán todas las restricciones
temporales críticas
3 Depende de
G Características de la arquitectura del hardware
• Prebúsqueda de instrucciones, pipelining, memoria caché, DMA
G Mecanismos y políticas del kernel
• Algoritmo de planificación, semáforos, políticas de manejo de memoria, de
interrupciones
G Lenguaje de programación
9
Sistemas operativos
© DMA
3 Si CPU y dispositivo DMA necesitan un ciclo de memoria , el bus se
asigna al dispositivo DMA y la CPU debe esperar (cycle stealing)
3 No hay forma de predecir cuántas veces la CPU debe esperar
3 Solución: time-slice method
G Cada ciclo de memoria se divide en dos: uno reservado para DMA y otro
para CPU
© Caché
3 80% de las veces los datos están en caché y las operaciones de
escritura degradan el rendimiento
3 Para hacer análisis del peor caso se supondría
G fallo en caché para cada acceso a memoria (Procesador sin caché o no
habilitada)
G Estimar el tiempo de ejecución con un modelo matemático de la caché
10
Sistemas operativos
© Interrupciones
3 Se sirven de acuerdo a un esquema de prioridades fijas, asignándole
una prioridad más alta que a los procesos
3 Tres planteamientos
G Inhabilitar las interrupciones externas excepto la del timer y manejar los
dispositivos manejados por tareas de aplicación
• Baja eficiencia del procesador
G Inhabilitar las interrupciones externas excepto la del timer y manejar los
dispositivos mediante rutinas dedicadas del kernel que se activan de forma
periódica por el timer
• Espera ocupada de las rutinas que manejan I/O
G Habilitar las interrupciones y reducir los drivers al menor tamaño posible
• Cada driver activará una tarea que se encargará de manejar el dispositivo
• Se asigna una prioridad a la tarea que maneja cada dispositivo que es
independiente de otras prioridades
11
Sistemas operativos
© Llamadas al sistema
3 Cada llamada caracterizada por un tiempo de ejecución limitado
3 Se debe poder expropiar cada primitiva del kernel (preemptable)
© Semáforos
3 Plantean problemas de inversión de prioridades, que introducen
retardos no deterministas
3 Se deben utilizar protocolos particulares cada vez que una tarea quiere
entrar en una sección crítica
G Basic Priority Inheritance, Priority Ceiling, etc.
© Manejo de memoria
3 Evitar esquemas de paginación bajo demanda
G Introducen retardos no deterministas debido a fallos de página y
reemplazos de páginas
12
Sistemas operativos
© Un sistema operativo de tiempo real debe soportar
3 Concurrencia
G procesos ligeros (threads) con memoria común
3 Temporización
G medida de tiempos, manejo de tareas con restricciones temporales y
ejecución periódica
3 Planificación
G prioridades fijas con desalojo, acceso a recursos con protocolos de
herencia de prioridad
3 Dispositivos de E/ S
G acceso a recursos de hardware e interrupciones
13
Sistemas operativos: POSIX
© Es un conjunto de normas IEEE/ ISO que definen interfaces
de sistemas operativos
© Permiten desarrollar software portátil y reutilizable ( Portable
Operating System Interface) + X
© Las normas definen servicios que se pueden incluir o no en un
sistema operativo particular
© Además se definen perfiles de aplicación con conjuntos de
servicios estándar
© Hay interfaces para C, Ada, y otros lenguajes
14
Normas POSIX
© POSIX 1, 1a
© POSIX 1b, 1d, 1i, 1j
© POSIX 1c
© POSIX 1e
© POSIX 1f
© POSIX 1 g
© POSIX 1h
© POSIX 21
© POSIX 5,5a, 5b
Interfaz básica similar a UNIX™
Extensiones de tiempo real
Procesos ligeros (threads)
Seguridad
NFS
Servicios de red (sockets, XTI)
Tolerancia de fallos
Comunicaciones de tiempo real
Interfaces para Ada
15
Perfiles de aplicación POSIX
© Definen subconjuntos de servicios para distintos tipos de
aplicaciones
© POSIX 13 : Perfiles para sistemas de tiempo real
3 PSE50 : sistema de tiempo real mínimo
G sin gestión de memoria, ficheros ni terminal
G sólo threads (procesos no pesados)
3 PSE51 : controlador de tiempo real
G tiene sistema de ficheros y terminal
3 PSE52 : sistema de tiempo real dedicado
G tiene gestión de memoria y procesos pesados
3 PSE53 : sistema de tiempo real generalizado
G sistema completo con todo tipo de servicios
16
S.O de Tiempo Real
© VRTX (Versatile Real-Timer Executive)
© VX Works
© QNX
© RTEMS (Real Time Executive for Military Systems)
© RT-MACH
© CHORUS
© SPRING
© HARTOS
© MARS
© CHAOS (SO de TR orientado a objetos)
© RT- Linux (SO de TR de libre distribución)
17
S.O de Tiempo Real
© Kernel basado en prioridades para aplicaciones empotradas
3 VX Works, QNX, Chorus, VRTX32, pSOS, OS9, ...
© Extensiones de tiempo real para S.O de tiempo compartido
3 RT-UNIX, RT-LINUX, RT -MACH, ...
© Sistemas operativos de investigación
3 CHAOS (SO de TR orientado a objetos), MARS, Spring, ARTS, RK,
TIMIX, HARTOS, YARTOS, HARTIK,...
© RTEMS (Real Time Executive for Military Systems
18
Lenguajes de programación
© Un lenguaje de programación de sistemas de tiempo real debe
facilitar la realización de sistemas
3 concurrentes (simultaneidad de acciones)
3 fiables
3 con un comportamiento temporal analizable
© Características de un Lenguaje de programación de TR
3 Debería forzar al programador a especificar límites de tiempo y
excepciones de timeout en todos los bucles, esperas y estamentos de
acceso a dispositivos
3 Ausencia de estructuras de datos dinámicas
3 Ausencia de recursividad
3 Bucles limitados por tiempo
19
Lenguajes de programación
© Hay tres clases de lenguajes de interés para STR
3 Lenguajes ensambladores
G Flexibles y eficientes, pero costosos y poco fiables
3 Lenguajes secuenciales (Fortran, Pascal, C, ...)
G Necesitan un SO para concurrencia y tiempo real
3 Lenguajes concurrentes (Modula, Ada, Real-Time Euclid...)
G Concurrencia y tiempo real incluidos en el lenguaje
20
Lenguajes de programación: C
© Es un lenguaje muy utilizado para programación de sistemas
© Es un lenguaje
3 estructurado, con bloques
3 con escasez de tipos
3 muy flexible (pero a veces poco seguro)
© No tiene integrada la concurrencia ni el tiempo real
3 se consigue invocando servicios del sistema operativo de forma
explícita
© No facilita la descomposición en módulos ni la programación
con objetos
3 se puede hacer con C++ (una extensión de C para programar con
objetos)
21
Lenguajes de programación: ADA
© Es un lenguaje diseñado específicamente para sistemas de
tiempo real empotrados
3 concurrencia
3 tiempo real
3 acceso al hardware e interrupciones
© Es un lenguaje imperativo, descendiente de Pascal
3 estructura en bloques
3 fuertemente tipado
© Está pensado para construir sistemas grandes y cambiantes
3 paquetes (módulos) y esquemas genéricos
3 extensión de tipos con herencia
3 biblioteca jerárquica
3 interfaces normalizadas con otros lenguajes (C, Fortran)
22
Lenguajes de programación: ADA 95
© Es la versión actual normalizada de Ada
© La norma define
3 un núcleo común para todas las implementaciones
3 unos anexos especializados para
G programación de sistemas
G sistemas de tiempo real
G sistemas distribuidos
G sistemas de información
G cálculo numérico
G fiabilidad y seguridad
3 Los anexos definen
G paquetes de biblioteca
G mecanismos de implementación
G no añaden sintaxis ni vocabulario al lenguaje
23