Sei sulla pagina 1di 51

Modelos y Sistemas de Optimizacin

Prof. Ing. Jos David Ruz Daz Gamba


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

Potrebbero piacerti anche