prestaciones de los sistemas en tiempo real

7
10. Prestaciones de los sistemas en tiempo real A pesar del incremento de velocidad de los computadores, ésta no es infinita, y se ha visto acompañada por un incremento de similar magnitud de la complejidad de sistemas a controlar. Por tanto, en algunas aplicaciones, es crucial no desperdiciar ciclos de CPU. Es también de máxima importancia que se minimice el tiempo transcurrido desde la aparición de un evento externo a la ejecución del código relacionado con dicho evento. Este tiempo se conoce como latencia. En cualquier sistema pueden encontrarse varias formas de latencia, que son a menudo utilizadas para caracterizar las prestaciones del sistema. Latencia ante interrupciones Es el tiempo transcurrido desde la recepción de una señal de interrupción hardware hasta que la primera instrucción software del controlador de interrupciones es ejecutada. Hay que considerar que cuando aparece una interrupción debe guardarse en la pila el valor del contador de programa, probablemente también la palabra de estado. Se debe acudir a una tabla de vectores de interrupción y cargar el valor correspondiente en el contador de programa. Todas estas operaciones son realizadas automáticamente por el hardware y consumen poco tiempo, salvo que las interrupciones, por alguna necesidad concreta del programa, se encuentren desactivadas temporalmente, en cuyo caso la latencia será mayor. Til tiempo de latencia de la interrupción Tint tiempo de procesamiento de la interrupción Tiret tiempo de retorno tras la finalización Los tiempos corresponden a QNX con un procesador 386 a 2O MHz en modo protegido Este tiempo de latencia podría subdividirse en otros más atómicos correspondientes al almacenamiento de los registros del procesador, u otras latencias que se puedan dar cuando varias interrupciones ocurran simultáneamente y el hardware deba decidir a cual atender primero. Latencia ante la planificación En muchas ocasiones, ante la aparición de un evento, será necesario lanzar un nuevo proceso. Se definirá la latencia en la planificación como el tiempo transcurrido entre la

Upload: diego-gabriel-salas-rivera

Post on 18-Dec-2015

215 views

Category:

Documents


3 download

DESCRIPTION

EN SISTEMAS OPERATIVOS ES IMPORTANTE LA GESTION DE LOS SISTEMAS OPERATIVO EN TIEMPO REAL CONOCIDOS COMO SORT

TRANSCRIPT

10. Prestaciones de los sistemas en tiempo real A pesar del incremento de velocidad de los computadores, sta no es infinita, y se ha visto acompaada por un incremento de similar magnitud de la complejidad de sistemas a controlar. Por tanto, en algunas aplicaciones, es crucial no desperdiciar ciclos de CPU. Es tambin de mxima importancia que se minimice el tiempo transcurrido desde la aparicin de un evento externo a la ejecucin del cdigo relacionado con dicho evento. Este tiempo se conoce como latencia. En cualquier sistema pueden encontrarse varias formas de latencia, que son a menudo utilizadas para caracterizar las prestaciones del sistema.

Latencia ante interrupcionesEs el tiempo transcurrido desde la recepcin de una seal de interrupcin hardware hasta que la primera instruccin software del controlador de interrupciones es ejecutada. Hay que considerar que cuando aparece una interrupcin debe guardarse en la pila el valor del contador de programa, probablemente tambin la palabra de estado. Se debe acudir a una tabla de vectores de interrupcin y cargar el valor correspondiente en el contador de programa. Todas estas operaciones son realizadas automticamente por el hardware y consumen poco tiempo, salvo que las interrupciones, por alguna necesidad concreta del programa, se encuentren desactivadas temporalmente, en cuyo caso la latencia ser mayor.

Tiltiempo de latencia de la interrupcinTint tiempo de procesamiento de la interrupcin Tiret tiempo de retorno tras la finalizacin

Los tiempos corresponden a QNX con un procesador 386 a 2O MHz en modo protegidoEste tiempo de latencia podra subdividirse en otros ms atmicos correspondientes al almacenamiento de los registros del procesador, u otras latencias que se puedan dar cuando varias interrupciones ocurran simultneamente y el hardware deba decidir a cual atender primero.

Latencia ante la planificacinEn muchas ocasiones, ante la aparicin de un evento, ser necesario lanzar un nuevo proceso. Se definir la latencia en la planificacin como el tiempo transcurrido entre la finalizacin de un controlador de interrupcin y la ejecucin de un proceso provocada por esa interrupcin. Este tiempo comprende las demoras necesarias para verificar qu proceso se debe planificar, realizar el cambio de contexto y un tiempo que el sistema pudiera tener desactivada la preemption de nuevos procesos. Este tiempo es necesario para ajustar punteros y acceder a estructuras de datos exclusivas del sistema.

En ambos tipos de latencias se pueden estudiar los tiempos promedios, pero para casos crticos deben considerarse tambin los peores tiempos de latencia. Estos tiempos apareceran cuando se dieran varias solicitudes de interrupcin simultneamente, que la atencin a las interrupciones est desactivada temporalmente, lo mismo que la preemption, que las listas de procesos estn muy llenas etc.

Tiltiempo de latencia de la interrupcinTint tiempo de procesamiento de la interrupcin Tsl tiempo de latencia de planificacin

Los tiempos corresponden a QNX con un procesador 386 a 2O MHz en modo protegido.

11. Ventajas y DesventajasVentajasEl soporte integrado para hilos A pesar de que el procesador slo maneja un proceso a la vez, el cambio rpido da la ilusin de la ejecucin simultnea Puede dar lugar a un uso ms eficiente del tiempo de procesador (asumiendo la programacin eficiente) Permite la integracin de numerosos mdulos. Los desarrolladores tienen la confianza de que los hilos sern manejados de manera eficiente y segura. Trabajo con hilos sintcticamente ms accesible a los desarrolladores, que pueden ser puestos fuera mediante las interrupciones. Priorizacin formal de threading (si est presente) puede asegurar que los hilos de alta prioridad no tengan que esperar a aquellas que son menos importantes.DESVENTAJAS Huella de memoriaEl cdigo de SOTR y la aplicacin para la gestin de hilos consumir, sin duda, memoria adicional Procesador saturadoSaturacin incurrida durante la gestin de hilo, etc. Inversin PrioritariaSi en el SOTR no se ha incorporado el establecimiento de prioridades y un mecanismo para hacerlo cumplir, un hilo de mayor prioridad puede encontrarse a la espera de una de menor prioridad. Punto muertoEn cualquier sistema multi-hilo, el peligro de bloqueos derivados de la contencin de recursos es un problema. ComplejidadCodificacin y depuracin puede ser ms difcil cuando los hilos estn involucrados Curva de aprendizajeAdems, el lenguaje de programacin, las llamadas al sistema operativo especfico y la sintaxis deben ser aprendidas.12. CASO: El sistema Operativo Unix y el tiempo RealEl SO UNIX System V desarrollado por AT&T ha pasado a ser un estndar, ganando rpida aceptacin debido a su flexibilidad, portabilidad y al elevado nmero de herramientas que soporta. Pero el SO UNIX fue diseado originalmente para la multitarea y el tiempo compartido, por estas razones no tiene una respuesta adecuada a las especificaciones temporales que requieren las aplicaciones en tiempo real. Entrando ms en detalle sobre el UNIX, veremos sus deficiencias en los siguientes aspectos.

Planificacin: Est diseada para proporcionar un tratamiento equitativo en el acceso a la CPU y a la memoria. Cada proceso dispone de una porcin de tiempo para ejecutarse. El planificador peridicamente recalcula las prioridades de los procesos para asegurar un reparto equitativo de la CPU por cada proceso.

Manejo de las interrupciones: En el UNIX estndar, un proceso trabajando en el espacio del sistema (llamadas del sistema en modo kernel) no puede ser pasado por alto por una interrupcin. Esto es as aunque el proceso que haya ejecutado la llamada al sistema sea de baja prioridad. En algunos casos, como llamadas a fork donde se deban copiar muchos datos, la finalizacin de la llamada puede requerir varios segundos, por lo cual esto es inaceptable para aplicaciones en tiempo real.

Comunicaciones interprocesos: El UNIX posee semforos, colas de mensajes y mecanismos de comparticin de memoria. Tambin los pipes y las seales pueden utilizarse a efectos de comunicacin. Su nica pega en este aspecto es que las llamadas al sistema pueden consumir mucho tiempo de CPU.

Sistema de archivos: En el UNIX estndar el espacio en disco es asignado a los archivos cuando se realizan operaciones de escritura, no cuando se efecta la creacin del archivo. Esto tiene dos efectos: en primer lugar no se garantiza que cuando se vaya a escribir en un archivo ya creado haya realmente espacio; en segundo lugar las operaciones de escritura consumen ms tiempo por tener que ocuparse tambin de la asignacin de memoria. Adems, para un mejor aprovechamiento del disco, los bloques que ocupa un archivo no tienen por qu estar contiguos. Esto tambin causa un retraso en las operaciones de L/E.

Soporte de E/S: No soporta operaciones asncronas de E/S, no hay capacidad para conectarse directamente a dispositivos de E/S. Si proporciona la posibilidad de escrituras y lecturas en forma de no bloques.

Control, por parte del usuario, de los recursos del sistema: El UNIX System V proporciona la posibilidad de dejar permanente en memoria un fragmento de cdigo o datos, para responder rpidamente en un cambio de contexto cuando se produzca algn evento, pero no da medios para garantizarse el uso de dispositivos.

Como se ve el UNIX, construido para procesos en tiempo compartido, presenta deficiencias para su uso como SOTR, pero se le pueden aadir funciones adecuadas para transformarlo en un operativo adecuado para el tratamiento de sistemas en tiempo real.a. Estndares de UNIX para el tiempo real.La prxima generacin de sistemas en tiempo real usar sistemas abiertos, que incorporarn estndares industriales. Estos sistemas abiertos pueden especificar estndares tanto en el mbito de hardware (caso tpico los buses) como de software (lenguajes, sistemas operativos, plataformas X) ofreciendo una serie de ventajas. Tales ventajas quedan expuestas en el siguiente cuadro en contraposicin con los sistemas especficos.

Ventajas para los usuariosSistemas especficosSistemas abiertos

Portabilidad softwareConversin de bases de datosReciclado y disponibilidad del programadorFlujo de mejorasMeses/Aos AosGrandes tiradas

Controlado por el fabricanteHoras/Semanas Horas/Das Insignificante

Todo el mercado

Con los aos han aparecido una gama de sistemas operativos UNIX y varios esfuerzos para estandarizarlos. De estos cabe destacar los de AT&T, que dieron como fruto el UNIX System V y el del comit ANSI/IEEE que ofrece el POSIX. En la estandarizacin POSIX (P.1OO3.x, donde x hace referencia a un rea) se incluyen un nmero de corporaciones que trabajan en varios subestandares, muchos an en fase de desarrollo. As se encuentra el estndar P.1OO2.2 relativo al shell y a las herramientas, mtodos de test (P.1OO3.3), tiempo real (P.1OO3.4), ADA (P.1OO3.5), seguridad (P.1OO3.6), administracin del sistema (P.1OO3.7), funcionamiento en red (P.1OO3.P) y otras materias.

FUNCIONDESCRIPCION

1. TemporizadoresCapacidad de programar y leer temporizadores internos de alta resolucin

2. Planificacin por prioridadPlanificacin pre-emptive, garantizando la ejecucin de las tareas de alta prioridad en cuanto estn preparadas

3. Comparticin de memoriaMapeo de un espacio fsico de memoria comn dentro de los espacios virtuales de cada proceso, de esta forma varias aplicaciones pueden acceder a fragmentos de datos o cdigo comunes.

4. Archivos en tiempo realCreacin y acceso a archivos con caractersticas deterministas. Un proceso puede preasignarse espacio en disco para un archivo y determinar caractersticas que mejorarn las operaciones con archivos

5. SemforosDebe garantizar las primitivas de sincronizacin P y V, elementos bsicos para la sincronizacin de tareas.

6. Comunicacin interprocesosPaso de mensajes sncrono y asncrono con facilidades para el control de recursos. Debe buscarse la posibilidad de trabajar en red de manera transparente al usuario

7. Notificacin de eventos asncronosUn mecanismo que proporcione el almacenamiento en colas de los eventos, entrega determinstica y paso de datos mnimo

8. Cierre (bloqueo) de memoriaCapacidad para dejar residentes secciones del espacio virtual de un proceso. El fin de esta propiedad es eliminar tiempos de latencia en los cambios de contexto.

9 E/S asncronaPosibilidad de que una aplicacin procese colas de datos con notificaciones de la finalizacin de las operaciones de E/S iniciadas por la aplicacin

1O. E/S sincronizadaCapacidad para establecer garantas para que se complete una operacin de E/S a diferentes niveles lgicos de finalizacin

El propsito del estndar POSIX en tiempo real (P.1OO3.4) es desarrollar un conjunto de interfaces que permitan la portabilidad de aplicaciones en tiempo real. Estas necesidades conducen a 1O funciones muy importantes en el tiempo real. Se est incluso avanzando en el desarrollo de estndares de mtrica que permitan la medicin de las prestaciones.