
Rendimiento




-
Introducción
a la Medición, Control y Evaluación del Rendimiento
-
Tendencias
Importantes que Afectan a los Aspectos del Rendimiento
-
Necesidad del
Control y de la Evaluación del Rendimiento
-
Mediciones del
Rendimiento
-
Técnicas
de Evaluación del Rendimiento
-
Embotellamientos
y Saturación
-
Ciclos de Retroalimentación
-
Fin
Introducción
a la Medición, Control y Evaluación 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 [7,
Deitel].
Generalmente hay un gran potencial de mejora en el uso de los
recursos existentes, pero:
-
Muchas instalaciones realizan muy poco o ningún control y evaluación.
-
Cuando se hacen controles específicos se generan grandes cantidades
de datos que muchas veces no se sabe cómo interpretar.
Las instalaciones rara vez cuentan con personal versado en las técnicas
de análisis de rendimiento.
Durante los primeros años 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 según la tendencia apreciable:
-
El software representa una porción cada vez mayor de los presupuestos
informáticos.
-
El software incluye el S. O. de multiprogramación / multiproceso,
sistemas de comunicaciones de datos, sistemas de administración
de bases de datos, sistemas de apoyo a varias aplicaciones, etc.
-
El software frecuentemente oculta el hardware al usuario creando una máquina
virtual, que está definida por las características operativas
del software.
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.
Inicio:
Fin:
Tendencias
Importantes que Afectan a los Aspectos del Rendimiento
Con los avances en la tecnología de hardware los costos
del mismo han decrecido drásticamente y todo hace suponer
que esta tendencia continuará [7, Deitel].
Los costos de trabajo (personal) han ido aumentando:
-
Significan un porcentaje importante del costo de los sistemas informáticos.
-
Se debe reformular el aspecto del rendimiento del hardware base y medirlo
de manera más adaptada a la productividad humana.
El advenimiento del microprocesador en la década de 1.970:
-
Ha permitido bajar considerablemente el costo de los ciclos de cpu.
-
Ha desplazado el foco de atención de la evaluación del rendimiento
a otras áreas donde los costos no disminuyeron proporcionalmente;
ej.: utilización de dispositivos de entrada / salida.
También influyen en los puntos de vista sobre la evaluación
del rendimiento aspectos tales como:
-
Construcción de redes.
-
Procesamiento distribuido.
Las conexiones se hacen con redes y no solo con computadoras específicas:
-
Se puede disponer de cientos o miles de sistemas de computación.
-
Se puede acceder a complejos sistemas de comunicaciones de datos [21,
Stallings].
Inicio:
Fin:
Necesidad
del Control y de la Evaluación del Rendimiento
Los objetivos corrientes en la evaluación del rendimiento
generalmente son [7, Deitel]:
-
Evaluación de selección:
-
El evaluador debe decidir si la adquisición de un sistema de computación
es apropiada.
-
Proyección 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 estratégicas.
En las primeras fases del desarrollo de un nuevo sistema se intenta
predecir:
-
La naturaleza de las aplicaciones que correrán en el sistema.
-
Las cargas de trabajo que las aplicaciones deberán manejar.
Durante el desarrollo e implementación de un nuevo sistema
se intenta determinar:
-
La mejor organización del hardware.
-
Las estrategias de administración de recursos que deberán
implantarse en el S. O.
-
Si el sistema cumple o no con sus objetivos de rendimiento.
Frecuentemente son necesarios procesos de configuración de
los sistemas para que puedan servir a las necesidades.
Los procesos de sintonización del sistema tienden a mejorar
el rendimiento en base a ajustar el sistema a las características
de la instalación del usuario.
Inicio:
Fin:
Mediciones
del Rendimiento
El rendimiento expresa la manera o la eficiencia con que un sistema
de computación cumple sus metas [7, Deitel].
El rendimiento es una cantidad relativa más que absoluta
pero suele hablarse de medidas absolutas de rendimiento, ej.: número
de trabajos atendidos por unidad de tiempo.
Algunas mediciones son difíciles de cuantificar, ej.:
facilidad de uso.
Otras mediciones son fáciles de cuantificar, ej.: accesos
a un disco en la unidad de tiempo.
Las mediciones de rendimiento pueden estar:
-
Orientadas hacia el usuario, ej.: tiempos de respuesta.
-
Orientadas hacia el sistema, ej.: utilización de la cpu.
Algunas mediciones del rendimiento comunes son:
-
Tiempo de regreso:
-
Tiempo desde la entrega del trabajo hasta su regreso al usuario (para procesamiento
por lotes).
-
Tiempo de respuesta:
-
Tiempo de regreso de un sistema interactivo.
-
Tiempo de reacción del sistema:
-
Tiempo desde que el usuario presiona “enter” hasta que se da la
primera sección de tiempo de servicio.
Las anteriores son cantidades probabilísticas y se consideran
como variables aleatorias en los estudios de:
-
Simulación.
-
Modelado de sistemas.
Otras medidas del rendimiento utilizadas son:
-
Varianza de los tiempos de respuesta (o de otra de las variables
aleatorias consideradas):
-
Es una medida de dispersión.
-
Si es pequeña indica tiempos próximos a la media.
-
Si es grande indica tiempos alejados de la media.
-
Es una medida de la predecibilidad.
-
Capacidad de ejecución:
-
Es la medida de la ejecución de trabajo por unidad de tiempo.
-
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.
-
Capacidad:
-
Es la medida de la capacidad de rendimiento máxima que un sistema
puede tener siempre que:
-
El sistema esté listo para aceptar más trabajos.
-
Haya alguno inmediatamente disponible.
-
Utilización:
-
Es la fracción de tiempo que un recurso está en uso.
-
Es deseable un gran porcentaje de utilización 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 aplicación.
-
Uso en sobrecarga del sistema.
Inicio:
Fin:
Técnicas
de Evaluación del Rendimiento
Tiempos
Los tiempos proporcionan los medios para realizar comparaciones rápidas
del hardware [7, Deitel].
Una posible unidad de medida es el “mips”: millón
de instrucciones por segundo.
Los tiempos se usan para comparaciones rápidas; se utilizan operaciones
básicas de hardware.
Mezclas de instrucciones
Se usa un promedio ponderado de varios tiempos de las instrucciones
más apropiadas para una aplicación determinada; los equipos
pueden ser comparados con mayor certeza de la que proporcionan los tiempos
por sí solos.
Son útiles para comparaciones rápidas del hardware.
Programas del núcleo
Un programa núcleo es un programa típico que puede
ser ejecutado en una instalación.
Se utilizan los tiempos estimados que suministran los fabricantes para
cada máquina para calcular su tiempo de ejecución.
Se corre el programa típico en las distintas máquinas
para obtener su tiempo de ejecución.
Pueden ser útiles para la evaluación de ciertos componentes
del software, por ej. compiladores; pueden ayudar a determinar qué
compilador genera el código más eficiente.
Modelos analíticos
Son representaciones matemáticas de sistemas de computación
o de componentes de sistemas de computación.
Generalmente se utilizan los modelos de:
-
Teoría de colas.
-
Procesos de Markov.
Requieren un gran nivel matemático 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 comparación
del rendimiento)
Son programas reales que el evaluador ejecuta en la máquina
que se está evaluando.
Generalmente es un programa de producción:
-
Típico de muchos trabajos de la instalación.
-
Que se ejecuta con regularidad.
El programa completo se ejecuta en la máquina real con datos
reales.
Se deben seleccionar cuidadosamente los puntos de referencia
para que sean representativos de los trabajos de la instalación.
Los efectos del software pueden experimentarse directamente en vez de
estimarse.
Programas sintéticos
Combinan las técnicas de los núcleos y los puntos de
referencia.
Son programas reales diseñados para ejercitar características
específicas de una máquina.
Simulación
Es una técnica 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 cómo se comportaría en ciertas circunstancias; se
puede evitar la construcción de sistemas mal diseñados.
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 según
distribuciones probabilísticas.
-
Manejados por libreto:
-
Son controlados por datos obtenidos de forma empírica y manipulados
cuidadosamente para reflejar el comportamiento anticipado del sistema simulado.
Control del rendimiento
Es la recolección y análisis de información
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 distribución de trabajos
de varios tipos; permitiría aconsejar el uso de compiladores
optimizadores o compiladores rápidos y sucios.
El control del rendimiento puede hacerse por medio de técnicas
de hardware o de software.
Los monitores de software:
-
Generalmente son económicos.
-
Pueden distorsionar las lecturas del rendimiento debido a que consumen
recursos del sistema.
Los monitores de hardware:
-
Generalmente son más costosos.
-
Su influencia sobre la operación del sistema es mínima.
Los monitores:
-
Producen grandes cantidades de datos que deben ser analizados manualmente
o por sistema.
-
Indican con precisión cómo está funcionando un sistema.
-
Son de mucha ayuda para evaluar sistemas en desarrollo y tomar las decisiones
de diseño adecuadas.
Los rastreos de ejecución de instrucciones (trace) o rastreos
de ejecución de módulos pueden revelar embotellamientos.
Un rastreo de ejecución de módulos puede mostrar
que se está ejecutando un pequeño subconjunto de módulos
durante gran parte del tiempo:
-
Los diseñadores deberán optimizarlos para mejorar en gran
medida el rendimiento del sistema.
-
Se podría eliminar el costo de optimización de los módulos
poco usados.
Inicio:
Fin:
Embotellamientos
y Saturación
Los recursos administrados por los S. O. se acoplan e interactúan
de maneras complejas para afectar al total de la operación del sistema
[7,
Deitel].
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 tráfico
de trabajos o procesos de ese recurso comienza a alcanzar su capacidad
límite:
-
El recurso se encuentra saturado.
-
Los procesos que compiten por el recurso comienzan a interferirse unos
a otros.
-
Ej.: problema de la hiperpaginación:
-
Ocurre cuando el almacenamiento principal está lleno.
-
Los conjuntos de trabajo de los distintos procesos activos no pueden ser
mantenidos simultáneamente en el almacenamiento principal.
Para detectar los embotellamientos se debe controlar cada cola
de peticiones de los recursos; cuando una cola crece rápidamente
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 “afinación” de la “sintonización” del sistema.
Los embotellamientos pueden eliminarse:
-
Aumentando la capacidad de los recursos.
-
Añadiendo más recursos de ése tipo en ése punto
del sistema.
Inicio:
Fin:
Ciclos de
Retroalimentación
El rendimiento de un S. O. puede ser sensible al estado actual del sistema
[7,
Deitel].
Un ciclo de retroalimentación es una situación
en la cual la información del estado actual del sistema se pone
a disposición de las peticiones entrantes.
La ruta de las peticiones puede modificarse, si la retroalimentación
indica que puede haber dificultad de darles servicio.
Retroalimentación negativa
La tasa de llegadas de nuevas peticiones puede decrecer como resultado
de la información 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.
Retroalimentación positiva
La información retroalimentada provoca un incremento en
vez de un decremento de algún parámetro.
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 más trabajos
en la mezcla de multiprogramación:
-
Con esto se incrementaría el uso de cpu.
-
Al incrementarse la mezcla de multiprogramación:
-
Decrece la cantidad de memoria que se puede asignar a cada trabajo.
-
El número de fallos de página puede incrementarse.
-
La utilización de cpu puede decrecer.
Puede producir inestabilidades:
-
Debe diseñarse 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 podría estar
operando en un rango inestable.
Inicio:
Fin:

Número de visitas efectuadas desde el 17/12/2001:
Estadísticas diarias desde el 10/07/2002:
Número de visitantes actuales disponible
desde el 14/07/2002:

Autor: lrmdavid@exa.unne.edu.ar
Ó FACENA - http://exa.unne.edu.ar
Servicios WEB: webmaster@exa.unne.edu.ar