Medicin, Control y Evaluacin del Rendimiento Un sistema operativo es en primer lugar un administrador de recursos, por ello es importante poder determinar con qu efectividad administra sus recursos un sistema determinado. Generalmente hay un gran potencial de mejora en el uso de los recursos existentes, pero: o Muchas instalaciones realizan muy poco o ningn control y evaluacin. o Cuando se hacen controles especficos se generan grandes cantidades de datos que muchas veces no se sabe cmo interpretar. o Las instalaciones rara vez cuentan con personal versado en las tcnicas de anlisis de rendimiento. Durante los primeros aos del desarrollo de las computadoras el hardware representaba el costo dominante de los sistemas y debido a ello los estudios de rendimiento se concentraban en el hardware. Actualmente y segn la tendencia apreciable: o El software representa una porcin cada vez mayor de los presupuestos informticos. o El software incluye el S. O. de multiprogramacin / multiproceso, sistemas de comunicaciones de datos, sistemas de administracin de bases de datos, sistemas de apoyo a varias aplicaciones, etc. o El software frecuentemente oculta el hardware al usuario creando una mquina virtual, que est definida por las caractersticas operativas del software. Recuerden: Un software deficiente y / o mal utilizado puede ser causa de un rendimiento pobre del hardware, por lo tanto es importante controlar y evaluar el rendimiento del hardware y del software. Tendencias Importantes que Afectan a los Aspectos del Rendimiento Con los avances en la tecnologa de hardware los costos del mismo han decrecido drsticamente y todo hace suponer que esta tendencia continuar. Los costos de trabajo (personal) han ido aumentando: o Significan un porcentaje importante del costo de los sistemas informticos. o Se debe reformular el aspecto del rendimiento del hardware base y medirlo de manera ms adaptada a la productividad humana. Tendencias Importantes que Afectan a los Aspectos del Rendimiento El advenimiento del microprocesador en la dcada de 1.970: o Ha permitido bajar considerablemente el costo de los ciclos de cpu. o Ha desplazado el foco de atencin de la evaluacin del rendimiento a otras reas donde los costos no disminuyeron proporcionalmente; ej.: utilizacin de dispositivos de entrada / salida. Tendencias Importantes que Afectan a los Aspectos del Rendimiento Tambin influyen en los puntos de vista sobre la evaluacin del rendimiento aspectos tales como: o Construccin de redes. o Procesamiento distribuido. Las conexiones se hacen con redes y no solo con computadoras especficas: o Se puede disponer de cientos o miles de sistemas de computacin. o Se puede acceder a complejos sistemas de comunicaciones de datos Necesidad del Control y de la Evaluacin del Rendimiento Los objetivos corrientes en la evaluacin del rendimiento generalmente son: Evaluacin de seleccin: El evaluador debe decidir si la adquisicin de un sistema de computacin es apropiada. Proyeccin del rendimiento: El evaluador debe estimar el rendimiento de un: Sistema inexistente. Nuevo sistema. Nuevo componente de hardware o de software. Control del rendimiento: El evaluador acumula datos del rendimiento de un sistema o componente existente para: Asegurar que el sistema cumple con sus metas de rendimiento. Ayudar a estimar el impacto de los cambios planeados. Proporcionar los datos necesarios para tomar decisiones estratgicas. Necesidad del Control y de la Evaluacin del Rendimiento En las primeras fases del desarrollo de un nuevo sistema se intenta predecir: o La naturaleza de las aplicaciones que corrern en el sistema. o Las cargas de trabajo que las aplicaciones debern manejar. Durante el desarrollo e implementacin de un nuevo sistema se intenta determinar: o La mejor organizacin del hardware. o Las estrategias de administracin de recursos que debern implantarse en el S. O. o Si el sistema cumple o no con sus objetivos de rendimiento. Frecuentemente son necesarios procesos de configuracin de los sistemas para que puedan servir a las necesidades. Mediciones del Rendimiento El rendimiento expresa la manera o la eficiencia con que un sistema de computacin cumple sus metas El rendimiento es una cantidad relativa ms que absoluta pero suele hablarse de medidas absolutas de rendimiento, ej.: nmero de trabajos atendidos por unidad de tiempo. Algunas mediciones son difciles de cuantificar, ej.: facilidad de uso. Otras mediciones son fciles de cuantificar, ej.: accesos a un disco en la unidad de tiempo. Mediciones del Rendimiento Las mediciones de rendimiento pueden estar: Orientadas hacia el usuario, ej.: tiempos de respuesta. Orientadas hacia el sistema, ej.: utilizacin de la cpu. Mediciones del Rendimiento Algunas mediciones del rendimiento comunes son: o Tiempo de regreso: Tiempo desde la entrega del trabajo hasta su regreso al usuario (para procesamiento por lotes). o Tiempo de respuesta: Tiempo de regreso de un sistema interactivo. o Tiempo de reaccin del sistema: Tiempo desde que el usuario presiona enter hasta que se da la primera seccin de tiempo de servicio. Las anteriores son cantidades probabilsticas y se consideran como variables aleatorias en los estudios de: Simulacin. Modelado de sistemas. Otras medidas del rendimiento utilizadas son: o Varianza de los tiempos de respuesta: Es una medida de dispersin. Si es pequea indica tiempos prximos a la media. Si es grande indica tiempos alejados de la media. Es una medida de la predecibilidad. o Capacidad de ejecucin: Es la medida de la ejecucin de trabajo por unidad de tiempo. o Carga de trabajo: Es la medida de la cantidad de trabajo que: Ha sido introducida en el sistema. El sistema debe procesar normalmente para funcionar de manera aceptable. o Capacidad: Es la medida de la capacidad de rendimiento mxima que un sistema puede tener siempre que: El sistema est listo para aceptar ms trabajos. Haya alguno inmediatamente disponible. o Utilizacin: Es la fraccin de tiempo que un recurso est en uso. Es deseable un gran porcentaje de utilizacin pero ste puede ser el resultado de un uso ineficiente. Cuando se aplica a la cpu se debe distinguir entre: Uso en trabajos productivos de aplicacin.
Uso en sobrecarga del sistema.
Tcnicas de Evaluacin del Rendimiento Tiempos o Los tiempos proporcionan los medios para realizar comparaciones rpidas del hardware. o Una posible unidad de medida es el mips: milln de instrucciones por segundo. o Los tiempos se usan para comparaciones rpidas; se utilizan operaciones bsicas de hardware. Mezclas de instrucciones o Se usa un promedio ponderado de varios tiempos de las instrucciones ms apropiadas para una aplicacin determinada; los equipos pueden ser comparados con mayor certeza de la que proporcionan los tiempos por s solos. o Son tiles para comparaciones rpidas del hardware. Programas del ncleo o Un programa ncleo es un programa tpico que puede ser ejecutado en una instalacin. o Se utilizan los tiempos estimados que suministran los fabricantes para cada mquina para calcular su tiempo de ejecucin. o Se corre el programa tpico en las distintas mquinas para obtener su tiempo de ejecucin. o Pueden ser tiles para la evaluacin de ciertos componentes del software, por ej. compiladores; pueden ayudar a determinar qu compilador genera el cdigo ms eficiente. Modelos analticos o Son representaciones matemticas de sistemas de computacin o de componentes de sistemas de computacin. o Generalmente se utilizan los modelos de: Teora de colas. Procesos de Markov. o Requieren un gran nivel matemtico del evaluador y son confiables solo en sistemas sencillos, ya que en sistemas complejos los supuestos simplificadores pueden invalidar su utilidad y aplicabilidad. Puntos de referencia (o programas de comparacin del rendimiento) o Son programas reales que el evaluador ejecuta en la mquina que se est evaluando. Generalmente es un programa de produccin: Tpico de muchos trabajos de la instalacin. Que se ejecuta con regularidad. El programa completo se ejecuta en la mquina real con datos reales. Se deben seleccionar cuidadosamente los puntos de referencia para que sean representativos de los trabajos de la instalacin. Los efectos del software pueden experimentarse directamente en vez de estimarse. Programas sintticos Combinan las tcnicas de los ncleos y los puntos de referencia. Son programas reales diseados para ejercitar caractersticas especficas de una mquina. Simulacin Es una tcnica con la cual el evaluador desarrolla un modelo computarizado del sistema que se est evaluando. Es posible preparar un modelo de un sistema inexistente y ejecutarlo para ver cmo se comportara en ciertas circunstancias; se puede evitar la construccin de sistemas mal diseados. Los simuladores son muy aplicados en las industrias espacial y de transportes. Los simuladores pueden ser: Manejados por eventos: Son controlados por los eventos producidos en el simulador segn distribuciones probabilsticas. Manejados por libreto: Son controlados por datos obtenidos de forma emprica y manipulados cuidadosamente para reflejar el comportamiento anticipado del sistema simulado. Control del rendimiento Es la recoleccin y anlisis de informacin relativa al rendimiento del sistema existente. Permite localizar embotellamientos con rapidez. Puede ayudar a decidir la forma de mejorar el rendimiento. Puede ser til para determinar la distribucin de trabajos de varios tipos; permitira aconsejar el uso de compiladores optimizadores o compiladores rpidos y sucios. El control del rendimiento puede hacerse por medio de tcnicas de hardware o de software. o Los monitores de software: Generalmente son econmicos. Pueden distorsionar las lecturas del rendimiento debido a que consumen recursos del sistema. o Los monitores de hardware: Generalmente son ms costosos. Su influencia sobre la operacin del sistema es mnima. o Los monitores: Producen grandes cantidades de datos que deben ser analizados manualmente o por sistema. Indican con precisin cmo est funcionando un sistema. Son de mucha ayuda para evaluar sistemas en desarrollo y tomar las decisiones de diseo adecuadas. Los rastreos de ejecucin de instrucciones (trace) o rastreos de ejecucin de mdulos pueden revelar embotellamientos. Un rastreo de ejecucin de mdulos puede mostrar que se est ejecutando un pequeo subconjunto de mdulos durante gran parte del tiempo: Los diseadores debern optimizarlos para mejorar en gran medida el rendimiento del sistema. Se podra eliminar el costo de optimizacin de los mdulos poco usados. Aspectos que afectan el rendimiento Embotellamientos y Saturacin Los recursos administrados por los S. O. se acoplan e interactan de maneras complejas para afectar al total de la operacin del sistema. Ciertos recursos pueden sufrir embotellamientos que limitan el rendimiento del sistema: No pueden realizar su parte del trabajo. Otros recursos pueden estar con exceso de capacidad. Un embotellamiento tiende a producirse en un recurso cuando el trfico de trabajos o procesos de ese recurso comienza a alcanzar su capacidad lmite: El recurso se encuentra saturado. Los procesos que compiten por el recurso comienzan a interferirse unos a otros. Ej.: problema de la hiperpaginacin: o Ocurre cuando el almacenamiento principal est lleno. o Los conjuntos de trabajo de los distintos procesos activos no pueden ser mantenidos simultneamente en el almacenamiento principal. Para detectar los embotellamientos se debe controlar cada cola de peticiones de los recursos; cuando una cola crece rpidamente significa que la tasa de llegadas de peticiones debe superar a su tasa de servicio. El aislamiento de los embotellamientos es una parte importante de la afinacin de la sintonizacin del sistema. Los embotellamientos pueden eliminarse: Aumentando la capacidad de los recursos. Aadiendo ms recursos de se tipo en se punto del sistema. Ciclos de Retroalimentacin El rendimiento de un S. O. puede ser sensible al estado actual del sistema Un ciclo de retroalimentacin es una situacin en la cual la informacin del estado actual del sistema se pone a disposicin de las peticiones entrantes. La ruta de las peticiones puede modificarse, si la retroalimentacin indica que puede haber dificultad de darles servicio. Retroalimentacin negativa La tasa de llegadas de nuevas peticiones puede decrecer como resultado de la informacin que se est retroalimentando. Contribuye a la estabilidad de los sistemas de colas: Impide que las colas crezcan indefinidamente. Hace que la longitud de las colas se mantenga cerca de sus valores medios. Retroalimentacin positiva La informacin retroalimentada provoca un incremento en vez de un decremento de algn parmetro. Se deben evitar situaciones similares a la siguiente: El S. O. detecta capacidad disponible de cpu. El S. O. informa al planificador de trabajos que admita ms trabajos en la mezcla de multiprogramacin: Con esto se incrementara el uso de cpu. Al incrementarse la mezcla de multiprogramacin: Decrece la cantidad de memoria que se puede asignar a cada trabajo. El nmero de fallos de pgina puede incrementarse. La utilizacin de cpu puede decrecer. Puede producir inestabilidades: Debe disearse con mucha prudencia. Se deben controlar los efectos de cada cambio incremental para ver si resulta una mejora anticipada. Si un cambio incremental deteriora el rendimiento se podra estar operando en un rango inestable. Comparador de Rendimiento Un benchmark es un conjunto de procedimientos (programas de computacin) para evaluar el rendimiento de un ordenador. Comparador de Rendimiento Hay cuatro categoras generales de pruebas de comparacin: Pruebas aplicaciones-base (application-based) las ejecuta y las cronometra. Pruebas playback (playback test), las cuales usan llamadas al sistema durante actividades especificas de una aplicacin(Ej.: Llamados a grficos o uso del disco) y las ejecuta aisladamente. Prueba sinttica (synthetic test) , la cual enlaza actividades de la aplicacin en subsistemas especficos. Prueba de inspeccin (inspection tests), la cual no intenta imitar la actividad de la aplicacin, sino que las ejecuta directamente en los subsistemas especficos. Herramientas para comparar rendimiento Los test de aplicaciones base entregan la mejor forma de medir el rendimiento completo de el sistema en el mundo real. El programa Winstone de Zdnet, ejecuta mas de una docena de las aplicaciones mas populares en el ambiente Windows, es un ejemplo de este tipo de comparadores. Donde sea factible la tecnologa playback le da la manera mas real de medir subsistemas individuales en aislacin. El programa WinBench de ZDnet utiliza la tecnologa playback para probar grficos, Cd-rom y subsistemas de disco duro, tambin corre cientos de otras pruebas en reas especificas del computador. Los test Synthetic continan en el estado de medicin del rendimiento es por eso que winbench usa las pruebas de procesadores. Los test de inspeccin tienen su lugar verificando el comportamiento libre de fallas y midiendo rendimiento operacin por operacin, por esto se incluye el test de inspeccin en el winbench. La aritmtica del entero simple, decisiones lgicas, y accesos de memoria son las actividades dominantes de la CPU en la mayora de los programas Windows. El Dhrystone benchmark hace un uso intensivo de estas reas. Por lo tanto el Dhrystone no tiene suficiente cdigo de programa o acceso suficiente a las locaciones de memoria para simular la actividad de la mayora de los programas reales. Su lugar de trabajo de cdigo y datos puede generalmente ser mantenido en el cache de la CPU, con lo cual resulta con un alto rendimiento. Whetstone Whetstone es una medida de rendimiento de la CPU en punto flotante, expresado en Millones de operaciones de punto flotante por segundo (MFLOPS). El Whetstone benchmark es ampliamente usado en la industria de la computacin como una medida de rendimiento, Wintune usa una versin modificada del Whetstone que mantiene sus datos en el programa de almacenamiento. Esto permite al benchmarks trabajar apropiadamente en mltiples threads en Windows Usando el rendimiento para elegir el sistema correcto Porqu considerar el Rendimiento? Juzgar el rendimiento de un sistema cuando se estn tomando decisiones de compra es algo crtico a fin de retardar la obsolescencia y proteger su inversin. Parte de esto consiste en asegurarse que el sistema que elige le permite hacer lo que desea durante toda la vida del sistema. Esto significa que no solo va a gestionar el software de hoy sino que dispone de los recursos necesarios para ejecutar los mas complejos programas del da de maana. Factores del rendimiento de una computadora El rendimiento global que se puede obtener de su PC depende de cmo cada uno de sus componentes trabajan juntos para realizar una tarea. El efecto de cada componente individual puede variar dependiendo de en cuanto est interviniendo en ejecutar una aplicacin particular. Como se muestra ms abajo, el 54% del rendimiento del sistema depende de su procesador , o CPU, cuando se ejecutan aplicaciones Windows* tpicas. Otros componentes tales como memoria, vdeo y disco tambin juegan un papel. Una "conexin dbil" en el sistema puede reducir significativamente la velocidad y el tiempo de respuesta que se experimente. Qu es lo que se tiene que tener en cuenta acerca del rendimiento? Una manera de diferenciar estos productos consiste en saber cmo su rendimiento se ve afectado con los trabajos de los que se est interesado en obtener un mejor rendimiento, a fin de ganar tiempo de respuesta en las actividades que diariamente realiza, tales como crear un documento o trabajar sobre el ltimo programa multimedia. Tambien se puede precisar de un rendimiento que le posibilite la opcin de ejecutar el software cada vez ms complejo de hoy dia. MHz - Rendimiento Un error frecuente es medir el rendimiento entre PCs estableciendo la comparacin entre la velocidad del procesador en MHz o velocidad del reloj. Es algo as como utilizar RPM para medir la velocidad de su automvil. TRABAJO PRACTICO Leer est material, buscar otras fuentes y luego: 1. Indicar qu tipo de medidas sueles tomar para medir las prestaciones de un ordenador (5 como mnimo cada uno en su sistema operativo) demostrar las medidas. 2. Indicar en qu casos de los que te encuentras en tu trabajo diario necesitars medir las prestaciones del ordenador(3 como mnimo). 3. Indicar en qu casos percibes una falta de prestaciones de los ordenadores que sueles manejar(5 como mnimo). 4. Mirar qu servicios hay activos en nuestro ordenador personal y en algn otro ordenador al que tengamos acceso luego (Cada uno en sistema operativo): a - Qu usas para saber los servicios que hay activos? b - Sabes lo que hacen? Explica por lo menos 5. c - Si suprimes alguno de ellos, qu pasa? Explica por lo menos 5. 5. Medir las prestaciones de la maquina virtual montada utilizando las herramientas del sistema operativo como los monitores o benchmark externos etc. 6. Buscar sistemas gratuitos de simulacin, especialmente para hardware, utilizarlo y documentar la simulacin y uso y justificar las prestaciones configuradas. 7. Buscar y usar un profiler sobre un programa propio, en el lenguaje de programacin que sea. Indicar qu es necesario para usarlo, y, una vez aplicado sobre un programa, mencionar qu mejoras se pueden hacer sobre el mismo. 8. Bibliografa