Download SISTEMAS EMBEBIDOS Y PROGRAMACIÓN EN TIEMPO REAL

Document related concepts

Oz (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

Erlang wikipedia , lookup

Racket (lenguaje de programación) wikipedia , lookup

Meta Lenguaje wikipedia , lookup

Transcript
SISTEMAS EMBEBIDOS Y PROGRAMACIÓN
EN TIEMPO REAL
NIKLAUS WIRTH
INGENIERO
ELECTRÓNICO.
OBTUVO UN MASTER
Y UN DOCTORADO.
FUE EL JEFE DE
DISEÑO DE LOS
LENGUAJES DE
PROGRAMACIÓN
EULER, ALGOL W,
PASCAL, MODULA,
MODULA-2 Y
OBERON.
INTRODUCCIÓN
• SISTEMA EMBEBIDO:
Como el término lo sugiere, es solo una parte de un “todo” más grande que
consiste en muchos componentes, no sólo módulos de computadora, sino
también sensores y actuadores.
• PROGRAMACIÓN EN TIEMPO REAL:
Surge de la exigencia a sistemas que cumplan con la ejecución en sus
respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que
el sistema ha fallado. Para garantizar el comportamiento correcto en el
tiempo requerido se necesita que el sistema sea predecible (determinista).
DESAFÍOS Y DIFICULTADES
• EXISTENCIA DE PROCESOS CONCURRENTES:
Varias actividades en curso implican múltiples, “procesos concurrentes de
cómputo”, y con ellos el problema de su sincronización.
• LIMITACIONES DE TIEMPO REAL:
Las actividades en el sistema corren a una velocidad predeterminada, lo que
impone limitaciones a las tardanzas con las que un proceso de cálculo debe
generar reacciones y respuestas.
DESAFÍOS Y DIFICULTADES
• CONSIDERACIONES ECONÓMICAS:
El consumo de potencia o energía de un procesador, es decisivo en la
selección del mismo.
• CONFIABILIDAD Y ESTABILIDAD:
Desempeña un papel mucho más pesado que en aplicaciones de cálculo
puras. Un fracaso a este nivel, ya no causa por ejemplo, un número
incorrecto.
• PARTICIPACIÓN DE SENSORES Y ACTUADORES:
Hipersensibilidad de sensores, ruido eléctrico de motores, o fatigas
mecánicas, han causado fracasos.
CAMINOS PARA UNA MEJOR PROGRAMACIÓN
• TEORÍAS AXIOMÁTICAS:
Desarrollos de textos que ayudan a controlar los procesos a partir de errores
que aparecerán.
• DISCIPLINA EN EL DISEÑO:
Trabajar ordenadamente, y no tornar en exceso la utilización de
herramientas de desarrollo.
• TALENTO Y EXPERIENCIA.
CAMINOS PARA UNA MEJOR PROGRAMACIÓN
• LENGUAJES DE PROGRAMACIÓN:
A veces existe la posibilidad de programar en otro lenguaje para introducir
simplicidad al desarrollo.
• SEPARACIÓN DE PROBLEMAS Y PREOCUPACIONES:
Es útil para el diseño.
• “AMBICIÓN” POR REDUCIR LA COMPLEJIDAD:
Posibilita la creación de diseños más claros y profesionales.
EJEMPLO DE REDUCCIÓN DE COMPLEJIDAD
•
CONTROL PARA UN HELICÓPTERO MODELO:
1.
2.
3.
4.
5.
6.
REEMPLAZO DE PRODESADORES
REEMPLAZO EN LENGUAJE DE PROGRAMACIÓN
ECONOMIZACIÓN GLOBAL
ELIMINACIÓN DE SISTEMA EN TIEMPO REAL
UTILIZACIÓN DE SECUENCIAS PARA REALIZAR PROCESOS COLECTIVOS
ASOMBROSA DISMINUCIÓN DE TIEMPOS
REGLAS DE ORO
• ABSTENERSE DE USAR INTERRUPCIONES:
Disminuyen el riesgo en tardanzas no deseables.
• EVITAR UTILIZAR PROCESADORES CON CACHE:
Pueden causar variaciones de interpretación bastante imprevisibles
REGLAS DE ORO
“ TORNAR INCANSABLE LA BUSQUEDA
POR LA SIMPLICIDAD AL PROGRAMAR ”