Industria y comunicaciones en Tiempo-Real

Anuncio
PAC- Performance-centered Adaptive Curriculum for Employment Needs
Programa ERASMUS: Acción Multilateral - 517742-LLP-1-2011-1-BG-ERASMUS-ECUE
MASTER DEGREE:
Industrial Systems Engineering
ASIGNATURA ISE4:
Industria y comunicaciones en Tiempo-Real
MÓDULO 2:
Sistemas en Tiempo-Real
TAREA 2-1:
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
Contenido
TAREA 2-1: FUNDAMENTO Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL. ........................3
1. INTRODUCCIÓN Y OBJETIVOS ...........................................................................................................................3
2. CONTENIDO .....................................................................................................................................................................3
2.1 SISTEMAS EN TIEMPO-REAL..........................................................................................................................3
2.2 SISTEMAS EN TIEMPO-REAL EN INDUSTRIA ......................................................................................5
2.3. PROCESAMIENTO DE INTERRUPTICONES ...........................................................................................7
2.4. SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS .......................................................9
2.5. PLANIFICACIÓN DE SISTEMAS EN TIEMPO-REAL ........................................................................10
2.6. PLANIFICACIÓN CÍCLICA ..............................................................................................................................11
2.7 ALGORITMO HEURÍSTICO ............................................................................................................................14
2.8. ANÁLISIS DEL MÉTODO DE PLANIFICACIÓN CÍCLICA ESTÁTICA .....................................18
2.9. PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL .....................................................................19
3. CONCLUSIONES .........................................................................................................................................................23
4. BIBLIOGRAFÍA Y/O REFERENCIAS ...................................................................................................................23
5. ENLACES DE INTERÉS ............................................................................................................................................23
Índice de figuras
Figura
Figura
Figura
Figura
1:
2:
3:
4:
INTERRUPCIONES DE PROGRAMAS Y PROFUNDIDAD 3 CON PRIORIDADES ............9
PLANIFICACIÓN CÍCLICA ............................................................................................................................12
ÁRBOL GENERADO POR ALGORITMOS DE BUSQUEDA.......................................................16
PERIODOS ARMÓNICOS .............................................................................................................................17
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
2
TAREA 2-1: FUNDAMENTO Y PROGRAMACIÓN DE
SISTEMAS EN TIEMPO-REAL.
1. INTRODUCCIÓN Y OBJETIVOS
El objetivo de la tarea es explicar los conceptos básicos de los sistemas en
tiempo real y sus características más importantes relacionados con la función
comunicaciones industriales, como base para la introducción de los sistemas
en tiempo real en la programación. Entre las competencias básicas que los
alumnos deben adquirir es la capacidad de aplicar correctamente los
mecanismos para la sincronización de tiempo y los acontecimientos, y analizar
y deducir la importancia de la planificación de los mensajes y la función
prioridades (estática y dinámica).
2. CONTENIDO
2.1 SISTEMAS EN TIEMPO-REAL
Para poder entender que es un Sistema en tiempo real (RTS) vamos a definir
previamente unos conceptos básicos:
-
Un sistema es una caja negra que tiene una o más entradas y un una
o más salidas.
-
El tiempo de respuesta del sistema es el tiempo entre el momento de
la entrada y el momento de la salida.
-
El tiempo entre la presentación de un conjunto de entradas a un
sistema y la aparición de todas las salidas asociadas se llama tiempo
de respuesta del sistema.
-
Un sistema en falla es un sistema que no puede satisfacer uno o más
de los requisitos presentados en la especificación del sistema.
Con estas definiciones previas podemos decir que:
Un sistema de tiempo real (RTS) se puede definir como un sistema que debe
responder, en un tiempo específico y finito, a una entrada o estímulo externo
y cuyo correcto funcionamiento dependerá de las salidas.
El correcto funcionamiento no solo dependerá de los resultados que entrega
sino del momento en que lo hace, ya que es dependiente del tiempo. Es muy
importante que estos sistemas cumplan los requerimientos del tiempo.
El sistema de tiempo real (RTS) tiene una serie de características muy
importantes:
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
3
•
Tiempo: Es clave la administración y el control del tiempo en que se
producen los resultados. Todas las tareas deben ser realizadas antes
de la terminación de los plazos y esto puede hacer que el sistema sea
predecible. Los resultados obtenidos con retrasos pueden producir
graves consecuencias.
•
Confiabilidad:
Debe
ser
un
sistema
predecible
que
tenga
cierta
tolerancia a los fallos y nos de seguridad. Lo cual implica que se debe
demostrar que los requerimientos de tiempo se cumplen en cualquier
circunstancia.
Lo cual requiere una cuidadosa planificación de las tareas y recursos. El
cumplimiento de los requisitos de tiempo y anticiparse a los fallos. Sería
importante dotar al sistema con la capacidad de monitorizar u controlar el
tiempo.
Ambiente: Las características del ambiente son muy importantes para conocer
los resultados del sistema. A través de sensores se puede recopilar datos
sobre el medio ambiente y a través de actuadores cambiar el estado del
sistema controlado.
Los RTS a menudo toman medidas para tener un ambiente controlado, este
cambio en el sistema dependerá de E/S y no solo de las entradas, un
ejemplo claro es un reactor nuclear.
Los sistemas en tiempo real podemos dividirlos en tres tipos, en función del
tratamiento de los errores que podamos tener en el sistema:
•
Sistemas de tiempo real duros o Hard real-time systems: si la respuesta
está fuera de plazo, no tienen valor alguno, y produce una falla total
del sistema. Todas las acciones deben estar dentro de un plazo de
tiempo especificado.
Ejemplo: Control de frenado.
•
Sistemas de tiempo real firme o Firm real-time: pueden tolerar el
incumplimiento
en
el
tiempo
de
respuesta
ocasionalmente,
una
respuesta tardía no tiene valor.
Ejemplo: Sistemas multimedia
•
Sistemas de tiempo real blandos o Soft real-time systems: pueden
tolerar
el
incumplimiento
en
el
tiempo
de
respuesta,
con
una
penalización que implica la degradación en la calidad de la respuesta.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
4
Ejemplo: Reproductor de DVD.
Con todo esto podemos decir que el objetivo de un Sistema en tiempo real
(RST) es asegurarse que se cumplen todos los plazos. Si se excede llevaría a
un deterioro del sistema y resultado.
Generalmente RTS se define como un sistema que da la respuesta correcta en
un plazo determinado de tiempo. Si se excede, entonces esto llevaría a un
deterioro del sistema y / o resultados erróneos. El tiempo de respuesta
depende del sistema global.
Una estrategia en tiempo real tiene un número de características que pueden
ser inherentes o impuesta y pueden distinguirse de las de otros tipos de
sistemas. Las principales características son:
 Interacción con el medio ambiente a través de sensores para recopilar
datos sobre el medio ambiente y actuadores para cambiar el estado
del sistema controlado.
 Debe procesar información en un plazo de tiempo limitado, por lo que
el sistema de control puede ser predecible .. Los resultados obtenidos
con un retraso puede conducir a graves consecuencias, incluso si
fueran verdad. Esto es diferente de los sistemas interactivos, en los que
puede haber plazos para la conveniencia del usuario, pero su fracaso
no es crıtico. No todos los componentes de una estrategia en tiempo
real tienen limitaciones de tiempo.
2.2 SISTEMAS EN TIEMPO-REAL EN INDUSTRIA
Los requerimientos de diseño de las aplicaciones de tiempo real son
radicalmente diferentes de aquellos de las aplicaciones de propósito
general (cómputo científico y de escritorio en entornos de red). Esto
demanda de sistemas operativos de tiempo real con características
mecanismos específicos para este segmento de la computación.
y
En particular, en un sistema operativo de tiempo real es necesario poder
predecir en todo momento qué actividad está ejecutando el procesador y por
cuanto tiempo lo hace. Con este propósito la comunidad de tiempo real ha
diseñado una arquitectura de software en donde las actividades a llevar a
cabo por las aplicaciones (tareas) se activan por tiempos determinados y
según esquemas de planificación predecibles.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
5
Sin embargo, en los sistemas operativos de tiempo real actuales, la
comunicación entre los dispositivos externos y el procesador no ha cambiado
y se sigue dando a través de señales emitidas por el hardware (denominadas
interrupciones) que interrumpen a las aplicaciones de forma impredecible para
ejecutar rutinas de servicio de interrupción (ISR -- “Interrupt Service Routine”).
Este mecanismo, diseñado décadas atrás para los sistemas operativos de
propósito general, introduce grandes dificultades para satisfacer los
requerimientos de predecibilidad temporal y confiabilidad que demanda el
cómputo en tiempo real.
Las características típicas de la estrategia en tiempo real en los sistemas
industriales es el uso de soluciones de software, hardware y algoritmos
especializados.
- Ordenadores industriales y controladores, PLC, Microcontroladores y más con
una arquitectura adecuada;
- Los sistemas operativos de tiempo real (RTOS);
- SCADA-packs y entornos de software como LabVIEW;
- Lenguajes para el tiempo-real con capacidades multitarea como Modula-2,
Ada, Java y otros;
- Herramientas de hardware con características temporales adecuadas
(multiplexores, DAC, ADC, etc);
- DBMS Industrial;
- Buses industriales, interfaces y protocolos para la construcción de sistemas
de computación distribuida (RS-485, - RS-422, RS-232, Modbus, Profibus, CAN
Bus, bus VME, VXI, PXI, LXI, IndustrialEthernet, IEEE-488 y otros.)
- Algoritmos especiales.
2.2.1. LOS MÉTODOS DE DISEÑO
Existen varios métodos para ayudar al diseño de sistemas de tiempo real, un
ejemplo de los cuales es MASCOT, un método antiguo, pero muy exitoso, lo
que representa la estructura concurrente del sistema. Otros ejemplos son
HOOD, Real-Time UML, AAVD el perfil Ravenscar, y Real-Time Java. (Ver más
detalles en: http://en.wikipedia.org/wiki/Real-time_computing))
Un ejemplo de Sistema en tiempo real en industria es ANÁLISIS EN TIEMPO
REAL EN LAS INDUSTRIAS EL CARBÓN Y MINERALES DE LA EMPRESA SGS.
SGS Ofreces servicios líderes de inspección, verificación, pruebas, ensayos y
certificación a nivel global.
La indagatoria y el análisis del carbón o minerales en tiempo real hacen que
sea posible responder rápidamente a condiciones cambiantes y controlar
eficientemente la calidad para cumplir con especificaciones contractuales y
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
6
operacionales. Los sistemas de medición en tiempo real generalmente incluyen
un analizador en línea, un sistema de muestreo mecánico integrado para la
calibración del analizador y para recolectar diariamente las muestras de un
contrato o de un embarque y además un software computacional para el
control del sistema de manejo de material en tiempo real. SGS recomienda
usar sistemas de medición en línea que sean robustos ante cambios en las
reservas o en tipo de material, tales como sistemas basados en activación
rápida del neutrón gamma (prompt gamma neutron activation - PGNA). Los
analizadores PGNA miden directamente componentes elementales tal como son
recibidos.
2.3. PROCESAMIENTO DE INTERRUPTICONES
Una Importante estrategia para la programación de RTS es la gestión de
interrupciones. Una interrupción se produce cuando hay un estímulo externo
para el cual se requiere que el sistema responda en un plazo determinado. A
menudo hay muchos incentivos (interrupciones), por lo que deben ser
priorizadas para que la tarea de mayor prioridad deba ser ejecutada dentro
de un plazo determinado y de cualquier otro evento.
Los procesos interrumpidos también incluyen el almacenamiento de información
para que los ordenadores puedan restaurar correctamente la tarea
interrumpida, y evitar los bloqueos internos y los ciclos interminables. La
interrupción puede ser generada por el software o hardware. El estado del
programa interrumpido se guarda y se pasa el control al programa para el
procesamiento de la interrupción. Después del procesamiento, el estado del
programa se restaura y continúa con el flujo normal de procesamiento
Un aspecto determinante para el logro del requerimiento de predecibilidad del
sistema operativo, es el mecanismo mediante el cual se administran los
eventos externos que se presentan durante la ejecución de la aplicación. Para
el tratamiento de estos eventos externos, la generalidad de los sistemas
operativos de tiempo real actuales emplea esquemas de administración de
interrupciones que fueron diseñados décadas atrás para sistemas operativos
de “propósito general”. Estos esquemas tienen como propósito fundamental la
respuesta rápida a eventos externos (minimizar la latencia de interrupción) o el
caudal de procesamiento1; sin embargo, presentan serios inconvenientes para
el caso de sistemas de tiempo real confiables. Algunos de los inconvenientes
más importantes son:
•
La
generalidad
de
los
desarrollos
teóricos
para
los
análisis
de
factibilidad de planificación de los sistemas de tiempo real, consideran
sólo un único espacio de prioridades para todas las actividades en el
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
7
sistema. Esta suposición contrasta con el modelo real soportado por el
sistema operativo, en el cual las Rutinas de Servicio de Interrupción o
ISRs (“Interrupt Service Routine”) y las tareas poseen espacios de
prioridades
y
algoritmos
de
planificación
independientes.
Como
consecuencia, el empleo de dos espacios de prioridades independientes
afecta
severamente
temporal
del
la
sistema.
capacidad
En
los
de
casos
predecir
en
que
el
comportamiento
las
ecuaciones
de
factibilidad incluyen el efecto de estos dos espacios, se deteriora
significativamente la cota de utilización que garantiza la factibilidad de
planificación del sistema.
•
La sincronización entre ISRs y tareas se lleva a cabo mediante la
inhabilitación de interrupciones. En consecuencia, los sistemas operativos
de tiempo real son incapaces de ofrecer garantías de la latencia de
interrupción para el peor caso.
•
Existen severas restricciones en cuanto a los servicios del sistema que
se pueden invocar dentro de las ISRs. Esto a su vez, trae como
consecuencia
un
aumento
de
la
complejidad
de
diseño
e
implementación, que afecta negativamente la confiabilidad del software
resultante.
Por lo anterior podemos afirmar que, aunque estos esquemas tradicionales de
administración de interrupciones son adecuados para sistemas que demandan
una alta capacidad (o caudal) de procesamiento, como por ejemplo los
sistemas operativos de red y de bases de datos; así mismo, presentan severas
restricciones para el caso de sistemas que requieren un alto grado de
confiabilidad y, peor aún, carecen del determinismo necesario para establecer
las garantías de respuesta temporal que demandan las aplicaciones de
tiempo real.
El mantenimiento de una interrupción puede a su vez ser interrumpido por
otro evento de mayor prioridad. En este caso, los niveles de prioridad están
configurados como en la (Fig. 1) Para atender las interrupciones y para
cumplir con las limitaciones de tiempo del sistema, muchos de los sistemas en
tiempo real, realizan cálculos dinámicos para determinar si pueden cumplir con
los objetivos del sistema.
Estos cálculos dinámicos se basan en: la frecuencia media de aparición de
acontecimientos, el tiempo necesario para procesar los acontecimientos y los
procedimientos que pueden interrumpir o suspender su servicio.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
8
En los sistemas informáticos no se utilizan a menudo controladores especiales
para el mantenimiento de las interrupciones cuando se establece la prioridad
necesaria. Las interrupciones pueden tener diversos niveles. Parámetros
principales: la profundidad, la prioridad y la saturación (Figura 1).
Fig.1: interrupciones de programas y profundidad 3 con prioridades.
2.4. SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS
Un sistema de multi-tarea debe tener un mecanismo por el cual las diferentes
tareas pueden intercambiar información entre sí y este mecanismo asegura la
sincronización
Por estas características, el sistema operativo y los lenguajes de programación
de RTS a menudo utilizan semáforos con una cola, los buzones o los sistemas
de mensajería. Los semáforos proporcionan sincronización y señalización, pero
no contienen la información. Los mensajes son similares a los semáforos,
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
9
excepto que contienen información relevante. En los buzones no se señalan la
información, pero ellos la contienen.
Los semáforos con una cola es un software primitivo que ayuda a gestionar el
tráfico. Proporcionan una manera de gestionar colas diferentes, por ejemplo,
colas de tareas esperando por, los recursos, el acceso a una base de datos o
los mecanismos y las colas de los recursos y mecanismos. Los semáforos
coordinan (sincronizan) tareas de espera, garantizando al mismo tiempo que
las tareas y los recursos no interfieran uno con el otro.
En RTS los semáforos son de uso frecuente para la implementación y
administración de buzones. En los buzones se almacenan temporalmente las
memorias intermedias para el envío de mensajes desde un proceso a otro. Un
proceso produce alguna información, lo pone en el buzón de correo y, a
continuación indica el proceso de consumo, para detectar la presencia de la
información en el buzón de correo con el fin de usarla.
La tercera forma de comunicación y sincronización entre procesos es el
sistema de mensajería (ver Message Passing Interface). En el sistema de
mensajería un proceso envía un mensaje a otro proceso. El último mensaje
recibido se activa automáticamente por el sistema de apoyo para el tiempo de
ejecución o por el sistema operativo para el procesamiento. Dicho sistema
provoca la sobrecarga debida a la transferencia real de la información, pero
proporciona una mayor flexibilidad y facilidad de uso.
En lugar de sincronización dinámica de tareas (por semáforos), Algunos se
enfocan en RTS sobre la sincronización estática de tareas. Esto significa que
se analiza el flujo total de proceso y, si es principalmente cíclico con varios
casos de sincronización de la sincronización de las tareas puede ser guiado
con un ciclo ejecutivo de tiempo real, en el que los algoritmos para el modelo
de procesamiento nos dicen el comportamiento cíclico del sistema.
2.5. PLANIFICACIÓN DE SISTEMAS EN TIEMPO-REAL
Dependiendo de cómo implementemos el método, los procesos se clasifican
como:
•
Procesos periódicos. Se activan repetidamente a ciertos intervalos de
tiempo. Sus características temporales son: (a) Período de activación o
tiempo entre dos activaciones sucesivas, (b) el tiempo de ejecución o
tiempo
máximo
de
respuesta
(tiempo
máximo
entre
la
activación
adecuada y terminación), (c) el tiempo de cálculo (tiempo máximo para
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
10
el cálculo de cada activación ). La desigualdad siguiente debe ser clara
de 0 ≤ c ≤ b ≤ a.
•
Procesos aperiódicos. Se activan en función del caso y tienen requisitos
de tiempo crítico. Las características temporales de estos procesos son
los
siguientes:
(a')
separación
mínima
(tiempo
mínimo
entre
dos
activaciones consecutivas), (b') Plazo de ejecución o tiempo máximo de
respuesta (tiempo máximo entre la activación adecuada y terminación),
(c'), el tiempo de cálculo (tiempo máximo de cálculo para cada
activación). La desigualdad siguiente debe ser clara de 0 ≤ c '≤ b' ≤ a'
.Si los requisitos de tiempo no son críticos a continuación, se les llama
procesos esporádicos.
Procesos de segunda categoría (secundaria). Ellos no tienen requisitos de
tiempo y se ejecutan cuando no hay procesos en ejecución en tiempo real, y
no hay procesos esperando en línea.
La planificación significa como distribuir los recursos del sistema (incluyendo la
CPU) para los diferentes procesos en la demanda. El problema general de
encontrar un plan aceptable para un conjunto de procesos es complejo, pero
se puede simplificar si tenemos en cuenta sólo la planificación del tiempo de
procesamiento y suponemos que otros recursos están disponibles cuando sea
necesario por los procesos.
La planificación de sistemas de tiempo real ha tenido un avance significativo
en los últimos años debido a la estática (off-line) y la planificación dinámica
(on-line).
2.6. PLANIFICACIÓN CÍCLICA
Uno de los métodos más utilizados en la planificación estática es la
planificación cíclica que permite la ejecución de un conjunto de procesos
iterativos con un solo procesador. Por lo tanto, además de un conjunto de
procesos y sus requisitos de tiempo, debe establecerse un plan maestro, el
cual determina la secuencia de los procesos que se deben realizar en un
período determinado de tiempo (ciclo principal) que se repite cíclicamente.
El ciclo principal se divide en ciclos secundarios, que describen una serie de
procesos que se deben cumplir para un determinado período de tiempo (ciclo
secundario) y cada uno de ellos a su vez se subdivide en tramos dentro de
los cuales sólo un proceso se ejecuta a partir de la serie del respectivo
segundo ciclo.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
11
Cuando se completa un ciclo secundario y el siguiente se inicia, están
sincronizados con el reloj del ciclo secundario. Cuando el procesador es libre
procesos secundarios importantes se llevan a cabo, que dan cuenta de las
actividades que no son críticas.
Un planificador ejecuta procesos cíclicos bajo el plan de ejecución presentado
en las tablas, que se compone de un conjunto de procesos y los requisitos de
tiempo antes de iniciar el sistema.
Figura 2a muestra un conjunto de procesos {P1, P2, P3, P4} y sus requisitos
de tiempo (ai, bi, ci), donde ai es el periodo de activación, bi - el período de
ejecución, ci - tiempo para los cálculos y la Figura 2b indica la importancia de
estos parámetros. En la Figura 2c hay un plan para implementar el ejemplo en
la figura 2a.
Figura 2a: Planificación Cíclica
Figura 2b: Planificación Cíclica
Figura 2: Planificación Cíclica
Una de las condiciones para la planificación de un conjunto de procesos
periódicos {P1, P2, ..., Pn} con requisitos de tiempo (ai, bi, ci), es que el uso
de procesador u es menor que o igual a 1 :
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
12
Para desarrollar el plan de ejecución que necesitamos para calcular la longitud
del ciclo principal M y la duración de los ciclos secundario mi. La longitud del
ciclo principal M se corresponde con el mínimo común múltiplo de los
períodos de procesos, M = m*c*m(ai). Por ejemplo en la figura 2a el resultado
es M = 24. Para calcular la longitud de los ciclos secundarios i por
conveniencia se consideran como equivalente a un determinado valor de m,
que debe cumplir con las siguientes condiciones (si no hay ningún valor de m
que las cumple, entonces el conjunto de procesos no permite la planificación
cíclica ) (ver siguiente diapositiva):
Para m = 3 obtenemos ncs = 8 y m = 4 ncs = 6. A medida que la
complejidad aumenta con el número de los ciclos secundarios, elegimos m =
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
13
4, lo que nos da seis ciclos secundarios de cada ciclo principal (si elige m =
3, entonces usted tendrá 8 ciclos secundarios para cada ciclo principal).
Además, encontramos que el número de actuaciones de cada proceso en el
ciclo principal es ne1 = 4 para el proceso P1, ne2 = 3 para el proceso P2,
ne3 = 3 para el proceso P3 y ne4 = 2 para el proceso P4. Para incluir la
ejecución Pik del proceso Pi en un ciclo mj secundario, las siguientes
condiciones deben cumplirse:
1. El procesos Pim puede ser incluido en los ciclos secundarios que se
inician al mismo tiempo o después del tiempo de de la k-th y la
activación final antes o al mismo tiempo de la k-th plazo de respuesta. Es
decir la ejecución de k-th , ∀ k Î [1, ..., nei], del proceso PI se puede
incluir en el j-th del ciclo secundario j, ∀ j Î [1, ..., ncs], de modo que : ai
(k-1) £ m (j-1) £ ai (k-1) + bi - m
2. Cualquier ciclo secundario mj , que lleva a cabo la condición anterior
debe estar asociado a una de las fases en la preparación del plan de
ejecución de una sucesión s (mj) la realización ny de los procesos {Pfl, ...,
Prs}. Para permitir la aplicación del Pik para ser incluido en s (mj), a fin
de asegurar las limitaciones de tiempo, el ciclo mj secundario también
debe cumplir la condición anterior y la siguiente condición (que debe
permanecer el tiempo libre en el ciclo secundario de modo que los
procesos se puede completar):
2.7 ALGORITMO HEURÍSTICO
A partir del nodo Pi, j (nodo j en el nivel i) elegimos como descendiente del
nodo único del proceso Pk. El criterio para añadir el proceso puede ser: a) el
tiempo más corto, b) un período más corto, o c) más tiempo para los
cálculos.
Definición de los ciclos y tramos dentro de los cuales se activa el proceso.
Para seleccionar el ciclo secundario, donde se puede incluir una ejecución de
un proceso de un solo of_ los siguientes criterios que pueden ser utilizados :
a) añadiendo el proceso para el primer ciclo secundario que permite la
ejecución de sus requisitos de tiempo,
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
14
b) añadiendo el proceso en el del ciclo secundario en el que hay menos
tiempo libre para el cálculo y este ciclo garantiza sus requisitos de tiempo, o
c) añadiendo el proceso en el último ciclo secundario, que permite la
ejecución de sus requisitos de tiempo.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
15
Figura 3: Árbol generado por el algoritmo de búsqueda.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
16
Figura 4: Periodos armónicos
•
Figura 4-a) muestra un conjunto de procesos y los requisitos de tiempo.
Al reducir el período de P1 y P2 que recibimos a la suma de los
procesos de armónicos en la Figura 4-b), donde los valores indicados
cumplen las condiciones para la planificación.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
17
•
El principal es igual a la más grande de los períodos de M = 20, y el
secundario es igual a la más pequeña de períodos. En este caso se
muestra el plan resultante en la Figura 4-c) que se puede llegar
fácilmente.
•
El método del plan cíclico contiene sólo los procesos periódicos. Si hay
procesos aperiódicos, éstos deben ser tratados por las peticiones a los
servidores
que
son
procesos
periódicos.
Un
proceso
aperiódica
caracterizado por (a ', b', c '), donde a' es la distancia mínima, b 'es un
Período de ejecución y c' tiempo de cálculo debe ser tratada como un
proceso periódico, que se caracteriza por (a, b, c) de modo que se
ejecuta de acuerdo a la los siguientes c’ £ b £
b’, c =
c’ y a £
b’ ‐
b + 1. Así que para el proceso de aperiódico, caracterizado por un a'=
6, b' = 6 y c '= 1 se obtiene como requisitos de tiempo para consultas
al servidor (1,1,1), (2,2,1), (3,3,1), (4,3,1), (5,2,1) and (6,1,1). La consulta
al servidor se activa cada vez que se realiza una actividad que
corresponde a un proceso aperiódico y si no se produjo el evento todo
se suspende hasta la siguiente activación.
2.8. ANÁLISIS DEL MÉTODO DE PLANIFICACIÓN CÍCLICA ESTÁTICA
Los métodos para ciclo de planificación estática basada en la planificación
cíclica, se utilizan a menudo en sistemas de tiempo real crítico. Las principales
ventajas de los métodos para la planificación estática son que el método es
determinista y previsible, no hay peligro de sobrecarga debido a la evolución
del contexto y en general es previsible para la planificación estática, sistemas
Furthermore, ningún esfuerzo adicional es una condición necesaria para poner
en práctica la exclusión mutua y su ejecución es muy simple y la carga
adicional para su ejecución es muy pequeña. La planificación se limita a los
cambios de activación de los procesos de acuerdo con un plan
predeterminado para la aplicación. Esto permite que todos los procesos que
compartan en el mismo espacio.
En cuanto a las desventajas se puede mencionar las siguientes: el diseño de
planes es mucho tiempo consumido, y se vuelve más lento con el menor
número de períodos de procesos armonizados; no son fáciles de mantener, ya
que sólo un cambio en el conjunto de procesos o dentro de límites de tiempo
requiere un plan conjunto para hacerse de nuevo, hay grupos de procesos que
no permiten una planificación cíclica. Para remediar este inconveniente, el
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
18
código se puede dividir en procesos separados con el fin de hacer que sea
más fácil la planificación.
En sistemas paralelos los métodos basados en las prioridades de planificación,
son ampliamente utilizados. La prioridad de un proceso indica la urgencia
relativa de su ejecución. La planificación basada en prioridades, elige entre la
lista para implementar los procesos de una, que es la prioridad más alta (más
urgentes). La priorización de los procesos puede ser estática (no cambia con
el tiempo) o dinámica (puede cambiar con el tiempo). Furthermore la
planificación basada en prioridades pueden ser clasificados como la expulsión
(expulsión del proceso actual cuando otro proceso con una prioridad más alta
está lista para su ejecución) y la no expulsión (antes de ejecutar un proceso
de mayor prioridad de espera para el proceso actual se acabe o para ser
bloqueado).
Los métodos basados en las prioridades de planificación, son fácil de
implementar, pero la incertidumbre inherente del sistema de procesos que
compiten y métodos convencionales para determinar las prioridades (en
función de la importancia y criticidad del proceso o para aumentar la
utilización de recursos) no garantizan la implementación del tiempo límite el
conjunto de procesos en tiempo real. Por lo tanto, el problema básico de los
métodos de planificación basada en prioridades es establecer las prioridades
de los procesos de manera que se cumplan los requisitos de tiempo.
2.9. PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
La mayoría de los sistemas de tiempo real contienen partes que pueden no
necesariamente ser ejecutados en tiempo real y otros que debe ser ejecutado
en tiempo real. Entre aquellos a ejecutar en tiempo real o de ejecución en
tiempo real, se pueden distinguir dos tipos:
-
Tipo 1. El tiempo medio debe estar por debajo de un cierto tiempo
máximo.
-
Tipo 2. Los cálculos deben ser completados en un tiempo máximo.
La dificultad del aumento de programación con el aumento de las limitaciones
de tiempo. Dependiendo de cómo se debe llevar a cabo las distintas acciones
del programa, la programación se pueden clasificar en:
•
Programación consecutiva. Este es el tipo clásico de programación en el
que
diferentes
acciones
para
la
ejecución
están
dispuestas
consecutivamente. El comportamiento del programa depende sólo de los
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
19
efectos de las acciones individuales y su orden, no importa el tiempo
que se necesita para llevar a cabo las acciones específicas.
•
Programación multitarea. Se diferencia de la programación consecutiva
por el hecho de que diferentes acciones no tienen que ser ejecutadas
necesariamente separadas en el tiempo, es posible tener ejecución
paralela de algunas tareas. Sin embargo, las acciones consecutivas aún
pueden ser útiles.
Programación de tiempo real. Se diferencia de los dos anteriores porque
además de que no es necesario que sean acciones separadas en el tiempo,
su secuencia no está determinada por el sistema de programación, pero en
cambio los acontecimientos ocurren en el medio ambiente. Un programa PB se
puede dividir en múltiples tareas, pero la comunicación entre las tareas no
debe esperar a una señal de sincronización. Por ejemplo, la señal de reloj, lo
que indica que se debe ejecutar una acción prioritaria no puede esperar a
una señal de sincronización. En suma, RTS el tiempo requerido para realizar
una acción es esencial para el proceso de verificación. Esto hace que estos
sistemas sean más difíciles de verificar.
Una característica común de todos los programas en tiempo real es que
deben trabajar de forma continua, de modo que la estructura natural es un
ciclo infinito:
El programa previo ControlTask debe estar sincronizado con el mundo exterior.
La forma más sencilla de sincronizar es verificar si se ha producido algún
evento externo. Este método se conoce como sondear y se puede hacer de
dos maneras:
Si es un evento que no ha sucedido, el sistema continúa con la
implementación de otras medidas antes de comprobar de nuevo si este evento
ocurrió.
El programa sigue repitiendo la comprobación hasta que se produce el evento
especificado
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
20
La ventaja en las encuestas es que se puede considerar que el programa está
realizando una sola tarea, lo que facilita la planificación y las desventajas: hay
que asegurarse de que todas las tareas se pueden realizar en un plazo
determinado. Este método se utiliza generalmente sólo para sistemas
pequeños.
A continuación se puede ver un programa en tiempo real demostrado que
llevan cabo estas tareas:
- La monitorización del teclado para comprobar si se ha producido la entrada.
- La ejecución de las acciones de control.
- Actualización de la pantalla.
En una forma de modo que puedan ser considerados como una sola tarea.
Este programa proporciona los siguientes procedimientos: Teclado, control y
visualización, que corresponden a las tareas encomendadas, cuando las
condiciones apropiadas, Keyflag, Controlflag y Displayflag, se cumplen.
Este programa tiene una limitación que es debido a que las funciones si el
tiempo de procesamiento de la unidad de cálculo más largo es menor que el
tiempo máximo permitido para el evento te. En el peor de los casos, todos los
eventos están activos y cada módulo utiliza el tiempo máximo y la siguiente
desigualdad deben ser satisfechos tkeymax TControl + + t pantalla < te
Si el tiempo total es menos de del te, entonces se puede reducir mediante la
comprobación de la Controlflag dos veces por ciclo de la primera verificación
después de comprobar Keyflag y la otra verificación después de comprobar
Displayflag. Así que ahora el peor de los casos es: tkeymax + TControl < te y
tmuestra + TControl < te
En los algoritmos de control que se requiere a menudo para determinar la
manera de salir del proceso y realizar cálculos para la variable de control
durante un período determinado - determinado de antemano. En este método,
los intervalos en los que se calcula la variable de control no son fijos, ya que
dependen de diferentes acciones.
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
21
Si se requiere una actividad para ser sincronizado con un momento
determinado, por ejemplo de modo que se produce cada cinco segundos, que
puede ser utilizado para la medición de un reloj de tiempo real que registra
los momentos para llevar a cabo una tarea específica. El siguiente programa
proporciona esta de la siguiente manera:
En el programa se ha descrito anteriormente, se supone que existe una Digin
función (), que lee la señal lógica correspondiente procedente del dispositivo
de interfaz, que en este caso es el reloj.
Otro método de sincronización es a través de las interrupciones. En este caso,
no es necesario llevar a cabo los controles de una señal especifica que el
equipo puede realizar cálculos que pueden ser interrumpidos cuando una
interrupción se produce durante la ejecución de la acción, por ejemplo, si
usted tiene un reloj en el que las interrupciones se producen periódicamente
en el procedimiento se lleva a cabo para actualizar la hora. En este caso, la
función GetTime proporciona el tiempo a través de la actualización de la
interrupción de la variable de programa. El programa comprueba Keyflag y
Displayflag y devuelve al módulo de control, que tiene la siguiente forma:
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
22
El método de una sola tarea con una señal de reloj ofrece una excelente
solución para los problemas de control sencillos para tiempo real y se utiliza
a menudo.
Los sistemas se desarrollaron para muchas familias de microprocesadores
utilizando cualquier lenguaje de programación común (C, Pascal, Basic, etc).
que permiten el desarrollo de programas de este tipo y después a escribir
código en ROM, con el fin de crear un controlador embebido.
3. CONCLUSIONES
Podemos entender ahora la importancia que tienen los sistemas de
Tiempo-Real en nuestra vida, ya que están presentes en muchos procesos
claves para la industria.
En este tema hemos conseguido conocer mejor estos sistemas y comprender
como funcionan.
4. BIBLIOGRAFÍA Y/O REFERENCIAS
[1] Fundamentos de programación de sistemas en Tiempo-Real. prof. Manuel
Castro, de la Universidad UNED de Madrid. Algunas adiciones fueron hechas
por el prof. Anton Petrov - departamento ЕCIТ en PU Plovdiv.
[2] SGS Mineral Services – T3 SGS 540 Análisis en tiempo real en las
industrias del carbón y minerales.
[3] Administración de Interrupciones en Sistemas Operativos de Tiempo Real.
CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO
POLITÉCNICO NACIONAL. Doctor Luis Eduardo Leyva del Foyo.
5. ENLACES DE INTERÉS
•
https://www.energy.siemens.com/cms/00000009/English/newsletter/issue
_4_2008/simeas/Page s/real_time_monitoring_of_a_power_plant.aspx
•
http://www.electro.fisica.unlp.edu.ar/temas/p7/RTS-1.html
•
http://www.twirpx.com/files/informatics/realtime/
http://ru.wikipedia.org/wiki/Операционная_система_реального_времени
•
http://www.asutp.ru/?p=600591
FUNDAMENTOS Y PROGRAMACIÓN DE SISTEMAS EN TIEMPO-REAL
23
Descargar