MULTITAREA
MULTITAREA
MULTITAREA
DOCENTE:
ALUMNO (A):
GRADO Y GRUPO:
8° SEMESTRE - GRUPO C
PERIODO:
COATZACOALCOS, VERACRUZ
Introducción.
En temas anteriores se han discutido las configuraciones de la unidad central de
proceso, CPU, y de las interfaces específicas de entrada/salida, y se ha comentado su
carácter de soporte hardware para la interpretación y ejecución de las órdenes de
usuario, codificadas e introducidas en forma de programa. Ya entonces, se comentaba
la posibilidad de escribir estos programas según estructuras mono y multitarea.
Definiendo la tarea como el conjunto de instrucciones ejecutables que describen un
tratamiento limitado y completo sobre variables de proceso, una aplicación en
estructura monotarea es aquella desarrollada sobre una tarea única, que contiene el
total del programa con todas sus variables de entrada y salida y sentencias de
operación, mientras que, por contra, una aplicación multitarea será aquella que divide
el programa en subconjuntos, independientes o no, que forman tareas aisladas,
normalmente en correspondencia con tratamientos particulares de a aplicación
(vigilancia, programa secuencial, comunicaciones, etc.).
En estructuras monotarea el programa o tarea única se ejecuta periódicamente,
siguiendo un único ciclo de operación, mientras que las estructuras multitarea
desarrollan simultáneamente múltiples ciclos durante la ejecución, uno por cada tarea.
Estas tareas, además, pueden o no ejecutarse periódicamente.
Obsérvese cómo, en cualquier caso, •el ciclo de operación de la tarea sea única o una
más dentro de la aplicación, recorre la conocida secuencia de cuatro pasos:
• • adquisición de entradas,
• • escrutinio del programa (de la tarea),
• • actualización de salidas.
• • servicio a periféricos o terminales de explotación.
Así pues, la tarea constituye una entidad de programación completa, con sus propias
entradas, salidas, variables internas y sentencias de control.
Esta circunstancia, que permite optimizar la ejecución utilizando estructuras multitarea
si se dispone de un hardware multiprocesador con procesadores adaptados a los
distintos tipos de tratamientos (booleano, regulación, tratamiento de textos, etc.),
obliga, sin embargo, a utilizar un gestor de recursos en estas aplicaciones para
eliminar la conflictividad en el acceso a los medios (recursos).
El gestor, un ente software que el usuario puede parametrizar para asignar las
prioridades a las tareas de su programa, puede correr sobre una CPU específica o
coordinadora (por ejemplo. la unidad 923 A de Siemens), o sobre la misma CPU
principal (por ejemplo, en el autómata TSX 87-40 de Telémecanique.
Sea una u otra la acción desencadenada por el supervisor, son posibles varios
métodos de planificación o decisión, aunque los más utilizados en autómatas son el
prioritario y el de gestión de tiempos.
En el primer caso, a cada tarea se le asigna una prioridad, y el supervisor activa la
tarea más prioritaria de entre todas las que lo soliciten y estén habilitadas. Este
método es típico para sistemas de tiempo real industriales, donde existen subprocesos
con constantes de tiempo distintas, e interesa fijar las prioridades de atención según la
criticidad en el tiempo de respuesta que exige cada subproceso.
El método de gestión de tiempo o tiempo compartido («time sharing») consiste en
asignar unidades de tiempo a cada tarea, unidades que constituirán el tiempo de ciclo
deseado para ella.
Una vez arrancado, el autómata irá ejecutando las tareas según esta plantilla de
tiempos, resolviendo las simultaneidades que se presenten en atención a la mayor o
menor prioridad establecida para las tareas involucradas. De esta forma, se asegura el
cumplimiento del tiempo de ciclo lijado para la tarea más prioritaria, siendo en las
demás tanto menos probables de cumplirse conforme se va descendiendo hacia las
tareas definidas como menos prioritarias.
Así, por ejemplo, los autómatas de la serie TSX 7 de Telémecanique pueden ejecutar
«en paralelo» (casi en paralelo, ya que no existe simultaneidad en el tiempo), las
siguientes tres tareas periódicas, ordenadas de mayor a menor prioridad (figura 1):
• • 1 tarea rápida (de 15 a 20 ms).
• • 1 tarea maestra que contiene el tratamiento secuencia! y combinacional de la
aplicación (de 20 a 100 ms).
• • 3 tareas auxiliares, que contienen las sentencias definidas como menos
críticas: diálogo con el operador, tratamiento de textos, salida a impresora, salida
analógica a registradores, etc. (de 100 a 300 ms).
•
Además de las tareas periódicas, estos autómatas pueden ejecutar una tarea
interrupción no periódica muy rápida (< 1 ms), asíncrona y prioritaria a todas las
demás, cuya ejecución se desencadena bajo una señal que proviene de sucesos
externos: posicionamiento de ejes, contaje rápido, etc.
Esta tarea se tratará de nuevo en el apartado dedicado a interrupciones, er este
mismo capítulo.
La tarea maestra es una tarea periódica y obligatoria, que ejecuta los tratamientos
combinacionales y secuenciales generales de la aplicación. Se activa
sistemáticamente desde el supervisor, y permite habilitar/deshabilitar desde ella a las
otras tareas.
La tarea rápida es la de mayor prioridad de entre todas las periódicas. El tratamiento
de esta tarea debe ser lo más corto posible, tanto para permitirle cortos tiempos de
respuesta y alta frecuencia de escrutinio desde el supervisor, como para no perjudicar
innecesariamente a las tareas menos prioritarias.
Las tareas auxiliares son tareas periódicas dedicadas a la atención de los tratamientos
más lentos o menos críticos, como la regulación sobre largas constantes de tiempo, el
intercambio de datos y estadísticas con un PLC maestro u ordenador, etc.
Cada una de estas tareas se procesa, si no es interrumpida por otra de mayor
prioridad, según la conocida secuencia de adquisición de estados tratamiento del
programa y actualizado de salidas, pero intercalado en la secuencia un reloj que fija el
periodo o tiempo de ciclo de escrutinio fijado en la plantilla de tiempos, según se
muestra en la figura 2.
Conclusión.
Concluimos que la diferencia en el procesamiento de estos dos tipos de programas
estructurados radica en que el primero funcionando con microprocesadores mono
tarea, ejecutan los diversos módulos o bloques de programación según un
procesamiento secuencial, es decir. uno a continuación del otro. mientras que el
procesador multifunción además del procesamiento secuencial puede ejecutar el
programa estructurado independientemente si se ejecutó el bloque anterior. Esto
significa, que si en algún momento durante el proceso de barrido del programa en el
sistema de control se origina una contingencia. puede ejecutarse una tarea de
interrupción sin tener que esperar el barrido total del programa
Los PLCs multifunción desarrollados en base a microprocesadores multitarea se
caracterizan por su mayor velocidad para atender diferentes programas a la vez y en
tiempo real. además, por su mayor capacidad de memoria para ejecutar varios
programas simultáneamente sin originar conflictos. Así también, en estos
procesadores la concepción del tratamiento secuencial es en base a la división en
bloques de programas. algo así como subrutinas, que es básicamente el concepto de
la programación estructurada.