Sistemas de Tiempo-Real
Definición:
Un sistema de tiempo real es un sistema informático en el que es significativo el tiempo en el que se producen sus acciones.
No es suficiente que las acciones del sistema sean correctas lógicamente, sino que, además, deben producirse dentro de un intervalo de tiempo determinad. Esto es debido a que el sistema está conectado a un proceso externo del que recibe estímulos a los que debe responder con suficiente rapidez para evitar que evolucione a un estado indeseable.
En un sistema de tiempo real existen generalmente un Sistema a Controlar y un Sistema Controlador. Es común que las actividades del STR se dividan en tareas, cada una de ellas sujetas a una serie de restricciones temporales, de entre las que destaca el plazo.
Estos son algunos ejemplos de sistemas operativos de tiempo real:
- OS-9
- RTLinux (RealTime Linux)
- QNX
- VxWorks.
Modelos de Tareas
Los modelos resultantes de la creación del modelo de procesadores son estudiados por separado (un procesador por vez), para determinar tareas diferentes (que serán programas diferentes de manera tal que se pueden ejecutar concurrentemente o no). La distorsión agregada en esta etapa representa la subdivisión del modelo funcional de un procesador (el DFD) en distintos DFDs (uno por tarea) agrupando procesos batch, interactivos o de tiempo real, partes del DFD aisladas del resto (comunicación solamente a través de depósitos de datos), etc. Además, es probable que sea necesario agregar procesos de control de concurrencia y sincronización para el acceso a recursos compartidos (como por ejemplo los depósitos de datos).
Dentro de cada procesador definido en el modelo anterior, deben asignarse procesos a diferentes tareas o particiones.En muchos sistemas operativos modernos, el manejo de tareas es transparente al desarrollador.Las tareas pueden categorizar se típicamente en Interactivas, Batch, y en Tiempo Real. Para la mayoría de los sistemas administrativos es importante determinar que partes del modelo esencial se asignaran a tareas interactivas y cuales a tareas batch. La comunicación entre tareas normalmente es provista vía el sistema operativo.
Comunicación entre Tareas
Las diferentes tareas de un sistema no pueden utilizar los mismos datos o componentes físicos al mismo tiempo. Hay dos diseños destacados para tratar este problema.Uno de los diseños utiliza semáforos. En general, el semáforo puede estar cerrado o abierto. Cuando está cerrado hay una cola de tareas esperando la apertura del semáforo.Los problemas con los diseños de semáforos son bien conocidos: inversión de prioridades y puntos muertos.En la inversión de prioridades, una tarea de mucha prioridad espera porque otra tarea de baja prioridad tiene un semáforo. Si una tarea de prioridad intermedia impide la ejecución de la tarea de menor prioridad, la de más alta prioridad nunca llega a ejecutarse. Una solución típica sería tener a la tarea que tiene el semáforo ejecutada a la prioridad de la tarea que lleva más tiempo esperando.
Características de las Tareas
Determinismo:
El determinismo es una cualidad clave en los sistemas de tiempo real. Es la capacidad de determinar con una alta probabilidad, cuanto es el tiempo que se toma una tarea en iniciarse. Esto es importante por que los sistemas de tiempo real necesitan que ciertas tareas se ejecuten antes de que otras puedan iniciar.
Responsividad:
La Responsividad se enfoca en el tiempo que se tarda una tarea en ejecutarse una vez que la interrupción ha sido atendida. Los aspectos a los que se enfoca son:
- La cantidad de tiempo que se lleva al iniciar la ejecución de una interrupción.
- La cantidad de tiempo que se necesita para realizar las tareas que pidió la interrupción.
- Los efectos de Interrupciones anidadas.
Usuarios controladores:
En estos sistemas, el usuario (i.e los procesos que corren en el sistema) tienen un control mucho más amplio del sistema.
- El proceso es capaz de especificar su prioridad
- El proceso es capaz de especificar el manejo de memoria que requiere (que parte estará en caché y que parte en memoria swap y que algoritmos de memoria swap usar)
- El proceso especifica que derechos tiene sobre el sistema.
Confiabilidad:
La confiabilidad en un sistema de tiempo real es otra característica clave. El sistema no debe de ser solamente libre de fallas pero más aun, la calidad del servicio que presta no debe de degradarse más allá de un límite determinado.
Operación a prueba de fallos duras (Fail soft operation)
El sistema debe de fallar de manera que: cuando ocurra una falla, el sistema preserve la mayor parte de los datos y capacidades del sistema en la máxima medida posible.
Que el sistema sea estable, I. E. Que si para el sistema es imposible cumplir con todas las tareas sin exceder sus restricciones de tiempo, entonces el sistema cumplirá con las tareas más críticas y de más alta prioridad.
Los Sistemas de tiempo real y análisis de sis requerimientos
Debido que los sistemas de tiempo real tienen características especiales diferentes a los demás tipos de sistemas y que los sistemas operativos de tiempo real relegan a sus usuarios el cumplimiento de estos requerimientos (según la característica de "usuarios controladores" vista en el capítulo anterior) es importante mencionar que este tipo de requerimientos deben de tomarse en cuenta en el proceso de desarrollo.
Sin embargo, como estos requerimientos no forman parte de una sola funcionalidad del sistema sino que forman parte de todo el sistema a menudo se definen como "requerimientos no funcionales".
También se argumenta que como no son parte de la aplicación sino que es como se comporta una aplicación al introducirse en un ambiente de tiempo real entonces estos son una "Característica del sistema", más que un requerimiento.
Planificación de Tareas
La planificación (scheduling) de un sistema de tiempo real consiste en asignar acciones a procesadores
- La relación biunívoca entre acciones y procesadores es un plan de ejecución (schedule)
- para ello utiliza un algoritmo de planificación.
Planes Válidos y Admisibles
Un plan Válido es un plan de ejecución que
- asigna como máximo una acción a la vez a cada procesador
- asigna como máximo un procesador a la vez a cada acción
- no ejecuta ninguna acción antes de su tiempo de activación.
- asigna a cada trabajo un tiempo de procesador igual a su tiempo de ejecución real o máximo, según los casos
- satisface todas las relaciones de precedencia y todas las restricciones en el uso de los recursos (por ejemplo, exclusión mutua).
Planificación Óptima
Un sistema de tiempo real es planificable con un algoritmo de planificación determinado si el algoritmo siempre produce planes admisiblesUn algoritmo de planificación es óptimo si produce un plan admisible para cualquier sistema siempre que exista.
Esquemas de Planificación
Planificación dirigida por tiempo (time/clock-driven)
- el planificador se ejecuta cada vez que llega una señal de reloj " ejemplo: planificación cíclica.
- las acciones listas para ejecutarse se agrupan en una cola FIFO
- cada acción se ejecuta durante una rodaja de tiempo y después se pone al final de la cola " variante: rodajas de tiempo desiguales (ponderadas)
- cada acción tiene una prioridad
- se ejecuta siempre la acción de mayor prioridad entre las listas " la planificación está dirigida por sucesos (event-driven)
Planificación con y sin desalojo
Planificación con desalojo (preemtive scheduling)
- se puede desalojar del procesador una acción que se está ejecutando para dar paso a otra " se usa normalmente con prioridades.
- una acción que ha comenzado a ejecutarse sólo deja el procesador si termina su ejecución necesita un recurso que no está disponible abandona el procesador voluntariamente.
Sincronización
Sincronizar archivos o datos. La sincronización de archivos es utilizada para mantener la misma versión de archivos en múltiples dispositivos. Por ejemplo, sincronizar la libreta de dirección de un teléfono con la libreta de direcciones de una computadora.
Las funciones de cadena de suministro están integradas e interactúan en tiempo real; cuando se hacen cambios a un área, el efecto es reflejado automáticamente a través de la cadena de suministro.
No hay comentarios:
Publicar un comentario