Está en la página 1de 45

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA

DISEÑO DE SISTEMAS EN TIEMPO REAL (MT-325)

TEMA:
“CAPÍTULO 2: HARDWARE PARA SISTEMAS EN TIEMPO REAL
Y CONCEPTOS”
Subtitle
DOCENTE:
Ing. CIP Daniel Leonardo Barrera Esparta
MEng. Roberto Sumiyoshi Furukawa Fukuda
I.- SISTEMAS EMBEBIDOS

¿Que es un sistema empotrado (embebido)?

• Equipo informático especial integrado para realizar unas funciones muy específicas en un
sistema electrónico mayor

• Es un sistema electrónico que está contenido (“embebido”) dentro de un equipo completo


que incluye, por ejemplo, partes mecánicas y electromecánicas.

• El diseño del sistema está optimizado para reducir su tamaño y su costo, aumentar su
confiabilidad y mejorar su desempeño.
I.- SISTEMAS EMBEBIDOS
I.- SISTEMAS EMBEBIDOS

¿Dónde se utilizan?

Los sistemas embebidos se encuentran en muchos ámbitos:


• Electrónicas de consumo : Lavadoras, Televisión Digital, neveras, microondas, Consolas de
Juegos, Cámaras de video, etc.
• Sistemas de Comunicación: Contestadoras, celulares, Beepers, infraestructura de redes,
etc.
• Automóviles: inyección electrónica, frenos, elevadores de vidrios, control de asientos,
instrumentación, seguridad.
• Industria: instrumentación, monitoreo, control robótica, control de trafico, manejo de
códigos de barra, ascensores, entre otros.
• Medicina: monitores cardiacos, renales y de apnea, marcapasos, maquinas de diálisis.
I.- SISTEMAS EMBEBIDOS
Componentes de un Sistema
Embebido
• Analog Components
Sensors, Actuators, …
• Digital Components
Processor, Coprocessors,
Memories, Buses
Controllers, Application Specific
Hardwares
• Converters
Analog-to-Digital (A2D), D2A, …
• Software
Operating systems
Middleware
Applications (MPEG-x, GSM-
kernel, …)
I.- SISTEMAS EMBEBIDOS

Sistemas Empotrados: Especializados

Existen básicamente dos tipos de sistemas embebidos:

•Sistemas que corresponde a sistemas autónomos que funcionan por si solos, capaces de
realizar varias funciones a la vez.

•Sistemas que son parte de sistemas mayores, los cuales cumplen una funcionalidad
específica del sistema mayor.
I.- SISTEMAS EMBEBIDOS

Que es un embedded computer?

•Se refiere a los equipos electrónicos que incluyen un procesamiento de datos, pero que, a
diferencia de una computadora personal, están diseñados para satisfacer una función
específica.

•Usa microprocesadores con circuitería especial y con sistema operativo

•El cerebro de un sistema embebido es típicamente un microcontrolador, aunque también


puede ser un DSP, una FPGA, un microprocesador o un ASIC

•A veces se usan SBC (single board computer) para hacer más fácil el desarrollo electrónico.
I.- SISTEMAS EMBEBIDOS

Que es un embedded computer?

Muchas E/S deben cumplir restricciones


de tiempo real
•Un sistema de tiempo real debe
reaccionar a estímulos del objeto
controlado (u operador) dentro de un
intervalo definido por el ambiente.
•Respuestas correctas pero tardías son
erradas.
•Una restricción de tiempo real se dice
DURA (hard) si su incumplimiento
puede resultar en catástrofe.
•Toda otra restricción de tiempo son
blandas (soft).
I.- SISTEMAS EMBEBIDOS

Como se implementa un Sistema


Embebido Sistema en un Chip (SoC)

• En un chip, se pueden conectar entre


sí distintos bloques prediseñados,
como si fueran componentes que se
interconectan en un circuito impreso
• A esos bloques se los llama cores
(núcleos) o IP (intellectual-property,
o propiedad intelectual)
• Se forma así un SoC (System on Chip)
• Es la manera típica de diseñar un
ASIC complejo ASIC = Application-
Specific IC
I.- SISTEMAS EMBEBIDOS

Como se implementa un Sistema Embebido FPGA

•Se puede hacer lo mismo con una FPGA y se le dice PSoC = Programmable System on a
Chip
Para mejor performance, algunas FPGA traen (fijo) un procesador
•La integración normalmente se hace mediante:
Un lenguaje de descripción de hardware (ej. VHDL, Verilog) o una herramienta gráfica
•Un core puede ser un procesador
I.- SISTEMAS EMBEBIDOS
I.- SISTEMAS EMBEBIDOS

¿Son sinónimos Embedded y Real-Time?

•La mayoría de los sistemas embebidos


son real-time

•La mayoría de los sistemas de tiempo


real son embebidos
II.- CONTROL EN TIEMPO REAL

Introducción

• La aplicación del computador en el control de procesos supone un salto tecnológico


enorme que se traduce en la implantación de nuevos sistemas de control en el entorno
Industrial y posibilita el desarrollo de la navegación espacial.

• Desde el punto de vista de la aplicación de las teorías de control automático el


computador no esta limitado a emular el cálculo realizado en los reguladores analógicos.
El computador permite la implantación de avanzados algoritmos de control mucho más
complejos como pueden ser el control óptimo o el control adaptativo.

• El objetivo en un principio era sustituir y mejorar los reguladores analógicos, pero este
objetivo se fue ampliando dada las capacidades de los computadores en realizar un
control integral de las plantas de fabricación, englobando también la gestión de la
producción.
II.- CONTROL EN TIEMPO REAL

Introducción

Los requisitos del control de tiempo real se manifiestan en una de sus características
principales: las restricciones temporales a que esta sometido. Para tareas periódicas de
control, vienen impuestas por el período de muestreo con que se debe ejecutar el
algoritmo de control. Para otro tipo de tareas periódicas como pueden ser tareas de
tratamiento de datos, tareas gráficas o de supervisión, tareas de comunicación los
restricciones temporales no son tan estrictas y muchas veces el diseñador de las
aplicaciones dispone de un margen donde elegir.
II.- CONTROL EN TIEMPO REAL

Introducción

Estas restricciones temporales también implican prioridad de ejecución, siendo


comúnmente las tareas dedicadas al control las más frecuentes y por lo tanto las que se
deben ejecutar con mayor prioridad, interrumpiendo en el caso de los sistemas
monoprocesadores a todas las demás tareas.

También pueden existir tareas de control que se ejecuten con períodos grandes como en las
aplicaciones de control de variables lentas como la temperatura, existiendo algunas otras
tareas con períodos de ejecución menor. Pero la tarea de control es la más crítica dado que
es la que actúa de interface con el proceso y debe garantizar su correcto funcionamiento.
II.- CONTROL EN TIEMPO REAL

Equipos Industriales

•Equipo especializado en control de sistemas industriales.


•Normalmente requiere robustez para uso continuo y en ambientes „duros‟.
•Hardware y software específicos para tarea a realizar aunque con flexibilidad.
•Ejemplo: Control de robots en producción, monitorización de sistemas industriales (
hornos, centrales eléctricas, calderas, etc.), monitorización de tráfico, medicina, control de
frenos ABS y climatizador en vehículos.etc.
•Software muy seguro con previsión de posibles fallos.
II.- CONTROL EN TIEMPO REAL

Equipos Industriales

Diversas técnicas de programación para tener comunicación entre procesos, priorización y


tiempo de respuesta adecuados ante acontecimientos externos (interrupciones).

Conexión a internet de sistemas embebidos con Windows o Linux.


II.- CONTROL EN TIEMPO REAL

Computadoras Industriales

Los Computadores Industriales son sistemas electrónicos de control constituidos por un


computador de propósito general adecuadamente diseñado y montado para poder
trabajar en el entorno de un proceso industrial continuo o discreto y soportar las
condiciones ambientales adversas (polvo, temperatura, interferencias EM, …). Aquellos
cuyo sistema físico (hardware) es equivalente al del computador personal conocido como
“PC”, han gozado en los últimos años de una gran aceptación.
II.- CONTROL EN TIEMPO REAL
Características que distinguen los PC industriales de los PC comerciales

Resistencia a condiciones extremas, frío-calor, corrosión, humedad, vibraciones, ruido


eléctrico, interferencias, polvo, etc.

-Temperatura y polvo: Los PC industriales están preparados para trabajar en un rango de


temperatura de 0-50ºC mientras que la mayoría de los PC comerciales tiene problemas a
partir de los 40ºC. Los ventiladores de enfriamiento incorporan filtros para evitar que el
polvo y otras partículas extrañas se introduzcan en el PC.

-Choque y vibraciones: Las protecciones contra vibraciones mecánicas se hace por medio
de abrazaderas de acero amortiguadas que son esenciales para estabilizar las tarjetas.

-Alimentación: Los PC industriales está equipados con transformadores de aislamiento


para resistir picos de voltajes y circuitos limitadores como protección contra las
fluctuaciones de la tensión de alimentación, comunes en los ambientes industriales.
II.- CONTROL EN TIEMPO REAL
Características que distinguen los PC industriales de los PC comerciales

-Los sistemas de potencia de los PC industriales son diseñados para suministrar voltajes DC
estables bajo las peores condiciones de suministro de AC con una alta fiabilidad (MTBF
(Mean Time Between Failure)=50000 horas).

Las cajas de los PC industriales tienen un efecto de apantallamiento contra la carga


estática.

-Humedad: En algunas aplicaciones industriales los niveles de humedad pueden llegar a ser
altos, por ejemplo en las prensas de pulpa de la industria papelera se registran valores del
95%. Los PC comerciales pueden trabajar sólo hasta niveles de humedad del 80%.
II.- CONTROL EN TIEMPO REAL
Características que distinguen los PC industriales de los PC comerciales

-Construidos en metales de alta calidad.

-Amortizadores de choque y de vibración sobre las aberturas de lectores.

-Ventiladores integrados de alta capacidad de enfriamiento para las más altas


temperaturas ambientales (+50°C), con filtro anti-polvo.

-Impermeable al agua y al polvo.


II.- CONTROL EN TIEMPO REAL
Aplicaciones Industriales del PC industrial

Actualmente, su aplicación se está trasladando de forma paulatina a las plantas


industriales más tradicionales para llevar a cabo la integración de los procesos de gestión
con las tareas de control realizadas tradicionalmente por otros sistemas electrónicos de
control.
II.- CONTROL EN TIEMPO REAL
Aplicaciones Industriales típicas del PC

La aplicación del computador industrial en sectores de tecnología de punta (aeroespacial,


robótica, visión artificial,…) motivó el desarrollo de este tipo de sistemas de control, que
consiste en utilizar el propio equipo, donde se implantan simultáneamente, el control en
tiempo real y la gestión de los procesos de producción.

Diversas empresas especializadas han desarrollado RTOS ( Real Time Operating Systems)
que posibilitan el desarrollo de los procesos de control y, además, ejecutar otras
aplicaciones como las de desarrollo y gestión, a través de su interfaz gráfica de usuario
II.- CONTROL EN TIEMPO REAL
Computadores Industriales Embebidos

• Múltiples formatos y plataformas


• Normalmente deben atender a varios dispositivos concurrentemente:
a. Comunicaciones
b. Interfaz con el operario
c. Subsistemas con sus sensores y actuadores
II.- CONTROL EN TIEMPO REAL
Panel PC

Integra un PC y un monitor plano de forma que ocupen en menor espacio posible,


cumpliendo todos los requerimientos de las MMI industriales. Por su forma compacta son
ideales para sistemas móviles. En algunos casos también incluyen un teclado de membrana
o pantalla táctil como se ve en las siguientes figuras.
III.- PROCESOS,HILOS Y CONCURRENCIA
Programación Concurrente

Virtualmente todos los sistemas de tiempo-real son inherentemente concurrentes: los


dispositivos operan en paralelo en el mundo real. Programación concurrente es el nombre
dado a las técnicas y notación de programación para expresar "paralelismo" potencial y
resolver la sincronización y los problemas de comunicación.

En la programación concurrente solo se cuenta con un procesador. El tiempo de CPU se


reparte entre varios procesos.

El paralelismo implica que existen varios procesadores en el sistema. La programación


paralela implica dividir la ejecución de un programa en distintos módulos los cuales se
ejecutaran en distintos procesadores.
III.- PROCESOS,HILOS Y CONCURRENCIA
Programas & Procesos
III.- PROCESOS,HILOS Y CONCURRENCIA
Definición de proceso
El SO crea un número de computadoras virtuales

La ejecución de un programa sobre una de esos computadoras virtuales es llamada un


proceso secuencial

La computadora virtual da la ilusión que cada proceso esta ejecutándose sobre una CPU
dedicada con una memoria dedicada

Un proceso es un programa en ejecución


Componentes:

Un código y una estructura de datos


Ejemplo:
Un compilador C ejecutándose será un proceso para el sistema operativo El SO le asigna
recursos (procesador, memoria, dispositivos, etc.) y controla su ejecución
III.- PROCESOS,HILOS Y CONCURRENCIA
Esquema de un proceso
III.- PROCESOS,HILOS Y CONCURRENCIA
Estados de un proceso

• Running - ejecutándose: usando la CPU


• Ready – Listo: (esperando por la CPU)
• Blocked (esperando por un recurso que estará disponible)
• Estados de Transición: Cambios en estado determinado por:

- Planificador (Scheduler)
- Recursos que llegan a estar
disponibles
III.- PROCESOS,HILOS Y CONCURRENCIA
Estados de un proceso
III.- PROCESOS,HILOS Y CONCURRENCIA
Bloque de control de procesos
• El SO mantiene una tabla de proceso con información de cada proceso, llamado Process
Control Block (PCB)

• Almacena:
• ID del Proceso, ID Usuario, ID Grupo
• Estado actual del proceso (Running, Ready, Blocked)
• Directorio de trabajo
• Contexto de Hardware: copia los Registros (Contador Programa, Stack pointer, etc)
• Puntero a segmentos de memoria asignada (Stack, Data, Text)
• Parámetros de Prioridad/Planificación
• Tabla de archivos Abiertos
• Registro de los recursos asignados
III.- PROCESOS,HILOS Y CONCURRENCIA
Sistemas concurrentes

• Un sistema (programa) concurrente se compone de un conjunto de procesos


secuenciales autónomos que se ejecutan de forma (aparentemente) paralela

• Cada proceso tiene un flujo de control independiente

• A veces se habla de procesos con varios flujos de control (threads)

• Las instrucciones de los procesos se ejecutan intercalándose unas con otras


(paralelismo)

• El término concurrencia indica paralelismo potencial.


III.- PROCESOS,HILOS Y CONCURRENCIA
Sistemas concurrentes

• La implementación actual (i.e. ejecución) de una colección de procesos usualmente


toma una de estas tres formas:
Multiprogramación
• Ejecución de múltiples procesos en un solo procesador. Los procesos multiplexan sus
ejecuciones en un solo procesador
Multiprocesamiento
• Ejecución de múltiples procesos en un sistema multiprocesador donde hay acceso a
memoria compartida. Los procesos multiplexan sus ejecuciones sobre un sistema.
Programación Distribuida
• Ejecución de múltiples procesos en varios procesadores los cuales no comparten
memoria. Los procesos multiplexan sus ejecuciones en varios procesadores.

En todos los casos hay que multiplexar el uso del procesador o procesadores entre los
procesos.
III.- PROCESOS,HILOS Y CONCURRENCIA
Procesos y contexto

• El CPU tiene una estructura que contiene información referente a la situación del
programa en ejecución (registro de instrucción, contador de programa, registros
generales, etc.)

• En sistemas concurrentes observamos que se multiplexa los múltiples procesos sobre


una sola CPU. En cualquier instante de tiempo solo un proceso esta en ejecución
(running).
• Cuando un proceso sale de ejecución para dejar los recursos a otro proceso, el sistema
debe:
• Salvar el estado actual del proceso
• Copiar todos los registros al BCP. Estos registros son utiles para restaurar el estado en la
próxima ejecución. Es decir permite el retorno de la situación en ese punto cuando el
proceso que fue retirado de ejecución sea nuevamente activado
• Copia todos los valores de los registros del nuevo proceso desde los registros del BCP
III.- PROCESOS,HILOS Y CONCURRENCIA
Cambio de Contexto

• Estos pasos mencionados


se conoce como: Cambio
de contexto.

• El cambio de contexto es
overhead; el sistema no
realiza cómputo útil
durante el cambio.

• El tiempo de realización
del cambio de contexto es
dependiente del soporte
de hardware.
III.- PROCESOS,HILOS Y CONCURRENCIA
Ejecución concurrente

• Los procesos concurrentes se ejecutan con ayuda de un núcleo de ejecución ( Run- Time
Kernel ) que es el planificador (scheduler) en un sistema operativo
• El núcleo se encarga de la creación, terminación y el multiplexado de los procesos.
• El núcleo puede tomar varias formas:
• Núcleo desarrollado como parte de la aplicación
• Núcleo incluido en el entorno de ejecución del lenguaje
• Núcleo de un sistema operativo de tiempo real
• Núcleo microprogramado dentro del procesador para mayor eficiencia.
III.- PROCESOS,HILOS Y CONCURRENCIA
Ejecución concurrente

• El algoritmo (método) de planificación utilizado por el núcleo de ejecución afectará al


comportamiento temporal del programa (sistema).
• Desde el punto de vista del programador, el núcleo de ejecución planifica los procesos de
una forma no determinista.

Cuando hablamos de procesos debemos distinguir:


Procesos pesados: cada uno se ejecuta en su máquina virtual distinta. Cada proceso puede ser
visto como un programa independiente.
Procesos ligeros ( threads ): todos los threads de un mismo proceso comparten la misma
máquina virtual. Tienen acceso al mismo espacio de memoria. El programador o el lenguaje
deben proporcionar mecanismos para evitar interferencias entre unos y otros

La concurrencia puede estar soportada por el lenguaje de programación o sólo por el sistema
operativo.
III.- PROCESOS,HILOS Y CONCURRENCIA
Lenguajes concurrentes

El soportar la concurrencia en los lenguajes de programación tiene una serie ventajas:

Conduce a programas más legibles y fáciles de mantener.

Mas portátiles

Un STR podría no disponer de un sistema operativo.

Pero también algunas desventajas:

Dificultad al implementar de forma eficiente el modelo de concurrencia del lenguaje sobre el


modelo de concurrencia del sistema operativo.
Distintos modelos de concurrencia según lenguajes
III.- PROCESOS,HILOS Y CONCURRENCIA
Lenguajes concurrentes

Los lenguajes de programación concurrentes proporcionan elementos para:

Crear procesos concurrentes.


La sincronización de procesos.
La comunicación entre procesos.

Los modelos de concurrencia de los distintos lenguajes de programación difieren respecto a :

- Estructura - Nivel
- Granularidad - Inicialización
- Terminación - Representación
III.- PROCESOS,HILOS Y CONCURRENCIA
Lenguajes concurrentes

Estructura

Estática: número de procesos fijo y conocido en tiempo de compilación.


Dinámica: número de procesos conocido sólo en tiempo de ejecución.

Granularidad del paralelismo

Grano grueso (coarse grain): pocos procesos pero de larga vida .


Grano fino (fine grain): gran número de procesos simples.
III.- PROCESOS,HILOS Y CONCURRENCIA
Comunicación y sincronización

Teniendo en cuenta la relación entre los procesos, estos pueden:

• Ser independientes: no se comunican ni sincronizan.

• Cooperar para un fin común: regularmente se comunican y sincronizan sus actividades para
realizar alguna operación común.

• Competir por el uso de recursos: se comunican y sincronizan con el fin de obtener los
recursos compartidos
III.- PROCESOS,HILOS Y CONCURRENCIA
Comunicación y sincronización

Hay veces en las que los procesos cooperan para un fin común o compiten por la utilización de
recursos.

Para ello es necesario realizar operaciones de comunicación y sincronización entre procesos:


– Dos procesos se comunican cuando hay una transferencia de información de uno a otro.
– Dos procesos están sincronizados cuando hay restricciones en el orden en que ejecutan
algunas de sus acciones.

La forma más sencilla de comunicación entre dos procesos o más procesos consiste en la
compartición de variables comunes.
III.- PROCESOS,HILOS Y CONCURRENCIA
Comunicación y sincronización

El acceso incontrolado a variables comunes

– Hace que el resultado de la ejecución dependa del orden en que se intercalan las
instrucciones de dos o más procesos: condición de carrera (race condition).
– Es una situación anómala que hay que evitar
Comunicación y sincronización

Dos conceptos Importantes:


Sección Crítica. Secuencia de órdenes que deben ejecutarse de forma indivisible.
Exclusión Mútua. Sincronización requerida para proteger la Sección Crítica.
III.- PROCESOS,HILOS Y CONCURRENCIA
Comunicación y sincronización

El resultado final puede ser 1 ó 2: Depende de las velocidades relativas de los procesos Para
evitar condiciones de carrera hay que asegurar que las operaciones con variables comunes se
ejecutan de forma atómica (indivisible)

Al no ser indivisible puede coincidir dando lugar a error.

También podría gustarte