Se caracterizan por presentar requisitos especiales en cinco áreas generales:
- Determinismo
- Sensibilidad
- Control del usuario
- Fiabiidad
- Tolerancia a los fallos Un sistema operativo es determinista si realiza las operaciones en instantes fijos y predeterminados o en intervalos de tiempos predeterminados. Cuando compiten varios procesos por los recursos y por el tiempo del procesador, depende, en primer lugar, de la velocidad con la que pueda responder a las interrupciones y en segundo lugar, de si el sistema posee suficiente capacidad para gestionar todas las peticiones en el tiempo requerido.
Un sistema operativo para operar de forma determinista es el retardo máximo que se produce de la llegada de la interrupción de un dispositivo de alta prioridad hasta que comienza el servicio.
La sensibilidad. El determinismo hace referencia a cuanto tiempo consume un sistema operativo en reconocer una interrupción. La sensibilidad se refiere a cuanto tiempo consume un sistema operativo en dar servicio a la interrupción después de reconocerla.
Las características de la sensibilidad son, entre otras:
1- La cantidad de tiempo necesario para iniciar la gestión de la interrupción y comenzar la ejecución de su rutina de tratamiento (ISR, interrupt service routine).
2- La cantidad de tiempo necesario para ejecutar la ISR. Generalmente, depende de la plataforma del hardware.
3- El efecto del tratamiento de interrupciones. El servicio se retrasara si una ISR puede ser interrumpida por la llegada de otra interrupción.
El determinismo y la sensibilidad forman conjuntamente el tiempo de respuesta a sucesos externos. Los requisitos en tiempo de respuesta son críticos ya que cada sistema debe cumplir los requisitos de tiempo impuesto por los individuos, dispositivos y flujos de datos externos al sistema.
El control del usuario es generalmente mucho mayor en un sistema operativo en tiempo real que en un sistema operativo ordinario. En sistema operativo típico que no sea en tiempo real, el usuario no tiene control sobre la función de planificación del sistema operativo. En un sistema en tiempo real resulta esencial permitir al usuario un control preciso sobre la prioridad de las tareas. El usuario debe poder distinguir entre tareas rígidas y flexibles y especificar prioridades relativas dentro de cada clase. Un sistema en tiempo real también permitirá al usuario especificar características. Que procesos deben estar siempre residente en la memoria principal.
La fiabilidad es normalmente mucho mas importante en sistemas en tiempo real que en los que no lo son. Un fallo transitorio en un sistema que no sea en tiempo real puede resolverse simplemente volviendo a reiniciar el sistema. Un fallo de un procesador en un multiprocesador que no sea en tiempo real produce una reducción del nivel de servicio hasta que se repara o sustituye el procesador averiado. Pero un sistema en tiempo real responde y controla sucesos en tiempo real. Las perdidas o degradaciones del rendimiento pueden tener consecuencias catastróficas, que pueden ir desde perdida financieras hasta daños en equipo e incluso perdida de vidas humanas.
La tolerancia a los fallos es una característica que hace referencia a la capacidad de un sistema de conservar la máxima capacidad y los máximos datos posibles en caso de fallos por Ej., un sistema UNIX clásico típico, cuando detecta datos corruptos en el núcleo, genera un mensaje de error en la consola del sistema, vuelca el contenido de la memoria en el disco para un análisis posterior y finaliza la ejecución del sistema. Un sistema en tiempo real intentara corregir el problema o minimizar sus efectos mientras continua la ejecución.
Un aspecto importante a la tolerancia a los fallos es la estabilidad. Un sistema en tiempo real si, en los casos en los que es imposible cumplir todos los plazos de ejecución de las tareas, el sistema cumple los plazos de las tareas mas criticas y de mayor prioridad, incluso si no se cumple los de alguna tarea menos critica.
Para cumplir los requisitos anteriores los sistemas operativos actuales en tiempo real incluyen normalmente las siguientes características:
- Cambios rápidos de procesos o hilos.
- Pequeño tamaño (con una mínima funcionalidad asociada).
- Capacidad de responder rápidamente a interrupciones externas.
- Multitarea con herramientas de comunicación entre procesos, como semáforos, señales y sucesos.
- Uso de archivos secuénciales especiales que puedan acumular datos a alta velocidad.
- Planificación preferente basadas en prioridades.
- Reducción de intervalos en los que están inhabilitadas las interrupciones.
- Primitivas para demorar tareas durante un tiempo fijo y para detenerlas y reanudarlas.
- Alarmas especiales y temporizadores.
El corazón de un sistema en tiempo real es el planificador de tares a corto plazo. Lo que resulta importante es que todas las tareas rígidas de tiempo real acaben (o comiencen) en su plazo y que también acaben (o comiencen) en su plazo tantas tareas flexibles de tiempo real como sea posible.
La mayoría de los sistemas operativos actuales en tiempo real son incapaces de trabajar directamente con plazos. En su lugar, se han diseñado para ser tan sensibles como sea posible a las tareas de tiempo real, de forma que, cuando se aproxima un plazo se pueda planificar rápidamente la traerá. Las aplicaciones de tiempo real normalmente necesitan tiempos de respuesta deterministas en un rango de varios milisegundo, las aplicaciones al límite, como los simuladores de aviones militares, por Ej. presentan a menudo restricciones en un rango de diez a cien microsegundos.
No hay comentarios:
Publicar un comentario