miércoles, 25 de julio de 2012

Evaluación y Control de Rendimiento en el Sistema Operativo

Mediciones del Rendimiento.


El rendimiento expresa la manera o la eficiencia con que un sistema de computación cumple sus metas, también se podría decir que es una cantidad relativa mas no absoluta pero suele hablarse de medidas absolutas de rendimientos como por ejemplo el 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.


Técnicas de Evaluación del Rendimiento
  • Tiempos: los tiempos proporcionan los medios para realizar comparaciones rápidas del hardware. Una posible unidad de medida es el “mips”: millón de instrucciones por segundo.

  • 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: 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 y generalmente se utilizan los modelos de teoría de colas o 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.
  • Programas sintéticos: Combinan las técnicas de los núcleos y los puntos de referencia.
  • 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. 

  • 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 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.
  • Los monitores de software: Generalmente son económicos y 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. 

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. Ciertos recursos pueden sufrir embotellamientos que limitan el rendimiento del sistema impidiendo realizar parte del trabajo o 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 es decir el recurso se encuentra saturado y por consiguiente 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 y 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.


Sin embrago los embotellamientos pueden eliminarse aumentando la capacidad de los recursos o añadiendo más recursos de ese tipo en ese punto del sistema.

Ciclos de Retroalimentación:
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 esto contribuye a la estabilidad de los sistemas de colas, puesto que impide que las colas crezcan indefinidamente.


Retroalimentación positiva
La información retroalimentada provoca un incremento en vez de un decremento de algún parámetro es por ello que se deben evitar situaciones similares a las siguientes:


Se deben evitar situaciones similares a la siguiente:
  1. El S. O. detecta capacidad disponible de cpu.
  2. 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.
  3. 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.
Sin embargo esta puede producir inestabilidades es por ello que:
  • 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.
Moldeado Analítico y teoría de colas:


Los modelos analíticos: Son las representaciones matemáticas de los sistemas y le permiten al evaluador del rendimiento sacar conclusiones acerca del comportamiento del sistema.


Ahora bien cuando nos referimos a teorías de colas nos referimos a las líneas de espera, si estas no existieran se podría recibir un servicio de inmediato que sería lo deseable sin embargo el costo de disponer una suficiente capacidad de servicio para no tener que esperar sería muy elevado. Es por ello que se consume cierta cantidad de tiempo en líneas de espera por servicio.

Algunas colas son:
  • Ilimitadas: pueden crecer tanto como sea necesario para contener a los clientes que esperan.
  • Limitadas: solo pueden contener un número fijo de clientes en espera y quizás hasta ninguno.

En esta teoría se deben tener en cuenta variables aleatorias que pueden ser descritas por distribuciones probabilísticas las cuales son:


Fuente, Llegadas y Llegadas de Poisson


  • Fuente: Los clientes son proporcionados a un sistema de colas desde una fuente que puede ser infinita o finita.
  • Llegadas: Los clientes llegan a un sistema de colas en n cantidad de tiempos estos llegan de uno en uno y nunca hay una colisión.
Las variables aleatorias “ tk” miden los tiempos entre las llegadas sucesivas (arbitrario) y se denominan tiempos entre llegadas:
  
Llegadas de Poisson


Las llegadas pueden seguir distintos patrones arbitrarios pero suele suponerse que forman un proceso de llegadas de Poisson. Los tiempos entre llegadas están distribuidos exponencialmente.


Tiempos de Servicio, Capacidad de la Cola y Número de Servidores en el Sistema.


Tiempos de servicio: los tiempos de servicio son aleatorios “ sk” es el tiempo de servicio que el k-ésimo cliente requiere del sistema.

Capacidad de la cola
  • Capacidad infinita: cada cliente que llegue puede entrar en el sistema de colas y esperar, independientemente de cuántos clientes hay en espera.
  • Capacidad cero (o sistemas de pérdidas): los clientes que llegan cuando la instalación de servicio está ocupada no podrán ser admitidos al sistema.
  • Capacidad positiva: los clientes que llegan solo esperan si hay lugar en la cola.

Número de servidores en el sistema:
  • Sistemas de un solo servidor: Tienen un solo servidor y nada más pueden darle servicio a un solo cliente a la vez.

  • Sistemas de servidores múltiples: Tienen “c” servidores con idéntica capacidad y pueden dar servicio a “c” clientes a la vez.
Disciplinas de Colas: Son las reglas usadas para elegir al siguiente cliente de cola que va a ser servido. La más conocida es la “FCFS” o primero en llegar, primero en ser servido. Sus notaciones son:
Notación Kendall (A/B/c/K/m/Z):
  • A: distribución de tiempos entre llegadas.
  • B: distribución de tiempos de servicio.
  • c: número de servidores.
  • K: capacidad de cola del sistema.
  • m: número de clientes en la fuente.
  • Z: disciplina de cola.
Notación Kendall abreviada (A/B/c):


  • No hay límite en la longitud de la cola.
  • La fuente es infinita.
  • A” y “B” pueden ser:
  • GI: para tiempo entre llegadas general independiente.
  • G: para tiempo de servicio general.
  • Ek: para las distribuciones de tiempos entre llegadas o de servicio Erlang-k.
  • M: para las distribuciones de tiempos entre llegadas o de servicio exponenciales.
  • D: para las distribuciones de tiempos entre llegadas o de servicio determinísticos.
  • Hk: para las distribuciones de tiempos entre llegadas o de servicio hiperexponenciales (con “k” estados).

Intensidad de tráfico: Es una medida de la capacidad del sistema para dar servicio efectivo a sus clientes. Se define como la razón de la media del tiempo de servicio “E(s)” y la media del tiempo entre llegadas “E( t)”.
Es útil para determinar el número mínimo de servidores idénticos que necesitará un sistema para dar servicio a sus clientes:
  • Sin que las colas se hagan indefinidamente largas.
  • *Sin tener que rechazar clientes.
Ej.: si E(s) = 17 segundos y E( t) = 5 segundos, u = 17 / 5 = 3,4:
o El sistema deberá tener un mínimo de 4 servidores.

Utilización del servidor: Se define como la intensidad de tráfico por servidor: Es decir la probabilidad de que un servidor determinado se encuentre ocupado.
Según la ley de los grandes números esta probabilidad es aproximadamente la fracción de tiempo que cada servidor está en uso.

Resultado de Little: Es una de las mediciones más sencillas y útiles del rendimiento de un sistema de colas. Relaciona las siguientes cantidades:
  • Wq: tiempo medio que emplea un cliente en una cola.
  • l: tasa de llegadas.
  • Lq: número de clientes en la cola.
  • W: tiempo medio que emplea un cliente en el sistema.
  • L: número de clientes en el sistema.
El resultado de Little se expresa como:
Lq = lWq
L = lW



Procesos de Markov
Es un modelo adecuado para describir el comportamiento de sistemas donde el sistema está situado en uno de un conjunto de estados discretos mutuamente excluyentes y colectivamente exhaustivos. El estado presente del sistema y las probabilidades de transición entre varios estados del sistema, caracterizan el comportamiento futuro del sistema. Dado que un proceso de Markov se encuentra en un estado determinado, su comportamiento futuro no depende de su historia anterior a su entrada a ese estado.
Se dice que un estado “Sj ” es transitorio si desde un estado “Sk” que puede ser alcanzado desde “Sj ”, el sistema no puede regresar a “Sj ”.
Se dice que un estado “Sj ” es recurrente si desde cada estado “Sk” alcanzable desde “Sj ”, el sistema puede regresar a “Sk”.

Una cadena sencilla es una serie de estados recurrentes tal que el sistema puede llegar a cualquier estado de la cadena desde cualquier otro estado de esta.

Un cambio de estado en un proceso de Markov de transición continua puede producir cambios de estado en cualquier instante de una escala de tiempo continua.