analisis y diseÑo de sistemas informaticospersonales.upv.es/igil/adsi.pdf · analisis y diseÑo de...

43
1 ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN Evaluación del rendimiento de un sistema informático. Intenta determinar de qué forma un conjunto de programas está utilizando un hardware. El conjunto de programas es la carga que está procesando el hardware. Según sea la utilización se obtendrán unas prestaciones. El concepto de prestaciones no se puede desligar de la carga. Se debe evaluar la potencia del ordenador para realizar un conjunto de tareas. Sin embargo es necesario poder emitir un juicio sobre la eficacia de un sistema en muchas situaciones en las que nos podemos encontrar. Dificultades - La carga no es estática. - Los índices que se utilizan para medir las prestaciones son diferentes según el tipo de estudio o sistema informático. - Siempre se intenta mejorar las prestaciones. Se debe negociar un nivel de servicio. Las prestaciones son fundamentales en el diseño, selección, compra y utilización del sistema informático. Uno de los principales problemas en el análisis de prestaciones es asegurar que los experimentos, se efectúan con la misma carga. La carga real es difícil de repetir, por tanto deberemos ser capaces de repetir esa carga. Pero surge otro problema, y es que la carga que utilicemos debe representar una carga hipotética. Si lo que pretendemos es comparar diferentes equipos, además de los problemas anteriores nos encontraremos que los instrumentos de medida y los índices que estamos utilizando pueden no ser exactamente los mismos. Motivos de un trabajo de evaluación - Un trabajo de evaluación de prestaciones arranca de unas necesidades. No se empieza el trabajo sin unos objetivos. - Se puede aplicar en todas las fases del ciclo de vida de un sistema informático: . en el diseño de una máquina . en el diseño del sistema informático . en la ampliación o configuración de un sistema informático . sintonización o ajuste. Sintonizar es equilibrar el consumo de recursos. . caracterización y predicción de la carga En general los estudios de prestaciones serán necesarios cuando se necesite predecir el comportamiento o mejorarlo.

Upload: vudiep

Post on 01-Apr-2018

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

1

ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS

TEMA 1 INTRODUCCIÓN

Evaluación del rendimiento de un sistema informático.

Intenta determinar de qué forma un conjunto de programas está utilizando un hardware.El conjunto de programas es la carga que está procesando el hardware. Según sea la utilizaciónse obtendrán unas prestaciones.

El concepto de prestaciones no se puede desligar de la carga. Se debe evaluar la potencia delordenador para realizar un conjunto de tareas.Sin embargo es necesario poder emitir un juicio sobre la eficacia de un sistema en muchassituaciones en las que nos podemos encontrar.

Dificultades

- La carga no es estática.- Los índices que se utilizan para medir las prestaciones son diferentes según el tipo de estudio o sistema informático.- Siempre se intenta mejorar las prestaciones. Se debe negociar un nivel de servicio.Las prestaciones son fundamentales en el diseño, selección, compra y utilización del sistemainformático.

Uno de los principales problemas en el análisis de prestaciones es asegurar que losexperimentos, se efectúan con la misma carga.La carga real es difícil de repetir, por tanto deberemos ser capaces de repetir esa carga. Perosurge otro problema, y es que la carga que utilicemos debe representar una carga hipotética.Si lo que pretendemos es comparar diferentes equipos, además de los problemas anteriores nosencontraremos que los instrumentos de medida y los índices que estamos utilizando pueden noser exactamente los mismos.

Motivos de un trabajo de evaluación

- Un trabajo de evaluación de prestaciones arranca de unas necesidades. No se empieza el trabajo sin unos objetivos.- Se puede aplicar en todas las fases del ciclo de vida de un sistema informático: . en el diseño de una máquina . en el diseño del sistema informático . en la ampliación o configuración de un sistema informático . sintonización o ajuste. Sintonizar es equilibrar el consumo de recursos. . caracterización y predicción de la carga

En general los estudios de prestaciones serán necesarios cuando se necesite predecir elcomportamiento o mejorarlo.

Page 2: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

2

Magnitudes a medir

- Tanto el usuario como el responsable de un sistema tienen su idea sobre las prestaciones o rendimiento.- Esta idea se basa en magnitudes o parámetros los cuales pueden tener relación con: . consumo de tiempos . utilización de recursos . trabajo realizado por el sistema o por partes del mismo

Por ejemplo para los usuarios una cosa determinante suele ser el tiempo de respuesta ante uncomando interactivo ligero. Para el responsable del sistema podría ser la velocidad con la quese procesan grandes trabajos batch.

Hay tres tipos de medidas a partir de las cuales se calculan índices de rendimiento:1.- Características físicas del sistema.2.- Condiciones operativas del sistema durante el tiempo que se está haciendo el estudio.3.- Indices de prestaciones del sistema.

Variables perceptibles por el usuario (Variables o índices externos)

- Productividad (throughput). Para una carga dada es el trabajo útil por unidad de tiempo- Capacidad: máxima cantidad de trabajo útil por unidad de tiempo (máxima productividad que puede obtenerse).- Tiempo de respuesta: tiempo en procesar un trabajo. Trabajo puede significar cosas diferentes: transacciones, procesos, instrucciones...

Variables internas o del sistema

a) Factor de utilización: tiempo en el que un componente ha sido realmente utilizado.b) Solapamiento de los componentes: tiempo en el que varios componentes se han utilizado a la vez.c) Sobrecarga (overhead): carga que se ha procesado y que no ha sido pedida explícitamente por los usuarios.d) Factor de carga de multiprogramación: relación entre el tiempo de respuesta de un trabajo en un entorno de multiprogramación y en uno monoprogramado.e) Factor de ganancia de multiprogramación: relación entre el tiempo total de ejecutar un grupo de trabajos en multiprogramación y monoprogramación.f) Frecuencia de fallo de página: número de fallos de página que se producen por unidad de tiempo en un sistema de memoria virtual paginada.g) Frecuencia de swapping: número de programas expulsados de memoria por unidad de tiempo.

Magnitudes no relacionadas directamente con las prestaciones

- Fiabilidad: probabilidad de funcionamiento correcto en un intervalo de tiempo.- Disponibilidad: probabilidad de que en un instante pueda estar funcionando.- Seguridad: que funcione correctamente sin perjudicar a nadie o sufra averías en las que no

Page 3: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

3

se comprometa a nadie.- Performabilidad: en sistemas que siguen funcionando con fallos, probabilidad de mantener un nivel de prestaciones.- Facilidad para el mantenimiento.

Carga de prueba

- Para evaluar el sistema hay que hacerlo funcionar bajo una carga.- Esta carga debe representar la carga real (el problema que tiene es que es muy variable, quieres hacer unas modificaciones y la carga real que tienes en un momento no la tienes en otro).- Carga de prueba: la utilizada para tomar las medidas. Debe ser representativa y reproducible, puede ser real o sintética.- La carga de prueba o de test suele formarse por componentes de carga.

En realidad se suele usar carga sintética porque permite poder experimentar y reproducirsituaciones a nuestro gusto y sin tener que modificar el sistema real. En cambio en muchoscasos hay que preocuparse de justificar si esa carga sintética es representativa de la situación ocarga que queremos reproducir.Para comprobar esto último habrá que medir unas magnitudes para que podamos compararlascon las obtenidas bajo carga sintética.

Magnitudes para los componentes de la carga

- Tiempo de CPU por trabajo.- Número de operaciones de E/S por trabajo. Conviene desglosarlo por tipo de dispositivos.- Prioridad.- Memoria.- Localidad de referencias: tiempo en el que las referencias permanecen en una página.

Magnitudes para el conjunto de la carga

- Tiempo ente llegadas, entre dos peticiones.- Frecuencia de llegada, inversa del tiempo entre llegadas.- Distribución de los trabajos: proporción de los diferentes componentes de carga.- Para cargas conversacionales: -tiempo de reflexión del ususario: tiempo que el usuario de un terminal de un sistema interactivo necesita para generar una nueva petición al sistema. - número de usuarios: número de usuarios interactivos que trabajan simultáneamente sobre el mismo sistema en un instante dado. - intensidad del usuario: relación entre el tiempo de proceso de una petición y su tiempo de reflexión.

Proposición de soluciones

Para solucionar problemas de malas prestaciones: - Ajustar parámetros del S.O. - Modificar políticas de gestión del S.O. Puede que partes del S.O. adquirido no se adapten a una carga en particular. - Equilibrado de la carga: el objetivo es que se utilice el máximo de recursos al mismo

Page 4: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

4

tiempo. - Modificación o sustitución de componentes hardware. Debe perseguir el recurso más cargado. - Modificación de programas. A efectuar por los usuarios, normalmente escapa al responsable del sistema.

De lo que se trata es de mejorar el funcionamiento. Para ello habrá que determinar dónde estáel problema. Luego habrá que evaluar si se puede solucionar sin cambiar componenteshardware o si hay que adquirir nuevo software.Si se puede solucionar sin nuevas adquisiciones, intentar modificar la carga desde el punto devista de la explotación para intentar quitar trabajo a los elementos más solicitados.

Algunos parámetros del S.O.

- Tamaño del quantum.- Prioridad.- Factor de multiprogramación: número máximo de trabajos que están simultáneamente en memoria principal.- Tamaño de la partición de memoria: cantidad fija de memoria principal asignada a una cola de trabajos.- Máxima frecuencia de fallo de página. Si se sobrepasa este índice se manda el proceso a disco para que no aumente la sobrecarga.- Indice de supervivencia de páginas. Si una página no se ha utilizado un tiempo, se puede devolver a disco.

Técnicas en la evaluación de sistemas

- Monitorización: utilización de herramientas de medición sobre el sistema informático.- Modelado: para evaluar el comportamiento de un sistema en el que hay elementos que no están instalados. Se suelen implementar sobre la teoría de colas y resolver mediante métodos analíticos o simulación (programa que representa el comportamiento de un sistema. Se debe estar seguro de que se ha modelado bien el sistema y de que el programa funciona bien. Se utiliza cuando no se conoce otro método).- Benchmark: se trata de cargas utilizadas para la comparación de sistemas o configuraciones.

Los métodos analíticos se basan en leyes que relacionan distintas partes del modelo. Se llega acrear un modelo matemático. En cambio estos modelos normalmente están limitados paramodelar comportamientos extraños.En los modelos de simulación en principio se puede modelar cualquier cosa, pero suelenexigir mucho tiempo de desarrollo y ejecución. Además son muy difíciles de validar.Las técnicas de benchmarking suelen ser las más sencillas y unas de las utilizadas, aunquemuchas veces los resultados obtenidos no dependen únicamente del benchmark, o elbenchmark puede no ser representativo de una carga real.

Page 5: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

5

TEMA 2 HERRAMIENTAS DE MEDIDA

Monitor: herramienta utilizada para observar la actividad de un sistema informático mientrasestá procesando carga. - Observan el comportamiento. - Recogen datos estadísticos de la ejecución de los programas. - Analizan los datos captados. - Presentan resultados.El resultado de una medición será distinto unas veces de otras, ya que, normalmente, no esposible repetir las mismas condiciones de carga y en los mismos instantes. Por ello se habla demonitorización y no de medición ya que lo que estrictamente se efectúa es un seguimiento de laactividad realizada.

Utilidad:

- Un administrador puede conocer la utilización de los recursos. Puede intentar soluciones y comprobar el resultado.- Un usuario puede adaptar su carga a la del sistema.- Un analista de sistemas puede utilizarlo para caracterizar la carga, y crear cargas de pruebas. También puede servir para planificar el crecimiento de la carga. Sirve para extraer los parámetros de los modelos.- También hay sistemas adaptativos según las condiciones de la carga.

Características del monitor

- Sobrecarga o interferencia: consumo de los recursos necesarios para el propio monitor.- Precisión: nivel de error que pueden llevar los datos.- Resolución: máxima frecuencia a la que se pueden detectar y registrar los datos.- Ambito o dominio de medida: características que es capaz de medir.- Anchura de entrada: número máximo de unidades de información que el monitor puede extraer en paralelo.- Capacidad de reducción de datos: capacidad para analizar, procesar y empaquetar los datos.- Compatibilidad: facilidad para adaptarse a otros entornos o requerimientos.- Precio: adquisición, instalación, mantenimiento, operación.- Facilidad de instalación: fácil de instalar y retirar.- Facilidad de utilización: sencillo, completo y agradable.

La sobrecarga hace que el monitor consuma recursos de lo que está midiendo. Esto hace quemodifique los resultados de lo que está midiendo. Ej. el programa top suele aparecer el mismocomo gran consumidor entre los procesos que enseña.

Clasificación

Según su implantación:- Monitores software, que son programas o ampliaciones del sistema operativo que acceden al estado del sistema, informando al usuario sobre dicho estado.- Monitores hardware, que son dispositivos electrónicos que se conectan a determinados puntos del sistema.

Page 6: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

6

- Monitores híbridos, que son una combinación de las dos técnicas anteriores.

Según su mecanismo de activación se clasifican en:- Monitores de eventos o acontecimientos, son aquellos que se activan por la aparición de ciertos eventos. Si el evento ocurre con frecuencia producen más sobrecarga. Se puede hacer una traza de lo que está ocurriendo.- Monitores de muestreo, son aquellos que se activan a intervalos mediante interrupciones de reloj. Según la frecuencia de muestreo se llega a un compromiso entre resolución y sobrecarga. Para evitar el sincronismo entre la evolución de los estados y los intervalos de medida se utilizan intervalos aleatorios.

Y según su forma de presentar los resultados se clasifican en:- Monitores en línea, van presentando datos parciales.- Monitores batch, los datos se analizan cuando termina la ejecución del programa.

Esquema conceptual

Sistema a medir ⇓⇓⇓⇓⇓ Interface instrumentación ⇓ Filtro ⇓ Procesador ⇓ Registrador ⇓ Interpretador

La interfaz de instrumentación es lo que conecta al monitor con lo que está observando. Porejemplo si al S.O. se añaden interrupciones software para detectar determinadas acciones, esasinterrupciones serían la interfaz.El selector permite hacer un registro selectivo de las muestras o variables que nos interesan.El procesador trata las muestras seleccionadas para poderlas registrar en el formato y con lainformación adecuada que necesitará la memoria a que se destine y para que se puedainterpretar o analizar.En algunos casos el analizador trabaja al mismo tiempo que el resto de elementos (on line) y enotros trabaja en diferido.

Monitores software

La activación del monitor implica la ejecución de instrucciones. Pueden ser guiados porsucesos, por muestreo o una mezcla de ambas técnicas.

Inserción del código del monitor:- Adición de un nuevo programa, fácil de instalar y eliminar.- Modificación del software a medir, basado en el uso de sondas software.- Modificación del S.O., se suele utilizar para acceder a datos visibles desde el S.O.

Son programas que se ejecutan junto con los programas y en el sistema que miden.

Page 7: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

7

Las sondas software son conjuntos de instrucciones que se insertan en puntos clave de unprograma.La prioridad de los monitores software deberá ser mayor que la de los elementos que debamedir. Suelen escribirse en el mismo lenguaje que el sistema operativo.

Monitor software por muestreo:1º) Un temporizador indica el momento del muestreo.2º) Se inhiben las interrupciones.3º) Se toman datos sobre las actividades suspendidas o sobre el estado de ciertos elementos.4º) Almacenar los datos.5º) Arrancar el temporizador.6º) Habilitar las interrupciones.La utilización de registros temporales permite reducir el número de muestras.

La interferencia introducida se pude controlar fijando el periodo de muestreo. Este parámetrose debe establecer de forma que los datos obtenidos sean fiables para el objetivo del estudiopero que no sea tan pequeño que la interferencia introducida sea grande.En algunos casos se pueden producir efectos de sincronismo entre fenómenos que se estánmidiendo y la frecuencia de muestreo. Para evitar este peligro se puede utilizar un periodo demuestreo generado aleatoriamente pero donde se puede fijar la media.

Monitores software dirigidos por sucesos:- Por traps: código que se inserta en partes del programa para extraer información cuando se llega a esas partes.- Por interceptación de interrupciones: se desvía el tratamiento de una interrupción a código del monitor donde se registran datos sobre el estado en ese momento y luego se sigue el tratamiento de la interrupción.

Monitores hardware

Se conectan al sistema a través de sondas electrónicas.Suelen utilizarse para índices de prestaciones de bajo nivel.Su principal característica es que son externos al sistema que van a medir, lo que implica que: - no utilizan recursos del sistema - no producen interferencias - son rápidosInconvenientes: - difíciles de instalar y utilizar - hay magnitudes que solo puede acceder el software - pueden producir errores en el hardware

Esquema sencillo monitor hardware:

reloj

módulo contadores almacenamiento lógico

Page 8: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

8

Los monitores pueden hacerse más complejos, con procesadores y memorias RAM paraprocesar y grabar los datos. A su vez estos procesadores pueden tener unidades de E/S comopantallas, teclado, etc.El caso más sencillo es una señal de reloj y una variable a medir conectadas a una puerta and, yla salida enviada a un contador. Se medirá la cantidad de pulsos que la señal está activada.Un ejemplo de un monitor hardware puede ser una analizador lógico.

Monitores híbridos

Suelen ser software que captan acontecimientos en el sistema operativo y los envía a unmódulo hardware que está conectado al bus del sistema. El envío puede ser una instrucción deE/S.El módulo hw puede ser un procesador que graba el suceso recibido con una marca de tiempo.La información se va procesando y se puede ir representando en una pantalla conectada alprocesador del monitor.Así se disminuye la sobrecarga ya que el tratamiento del monitor se hace en otro sistema y seaumenta la rapidez gracias a tener un hw dedicado.Se suelen usar en el diseño de nuevas arquitecturas. Algunas arquitecturas paralelas los llevanincorporados.

Comparación

Los monitores hardware: - más caros. - más difíciles de utilizar. - no sobrecargan el sistema. - tienen más resolución. - son más portables. - si el sistema falla pueden seguir midiendo y detectar la causa.Dato que un monitor hardware no pude acceder: contenido de una posición de memoria.Dato que un monitor software no pude acceder: cantidad de instrucciones máquina ejecutadas.

Los monitores software: - pueden acceder a datos de más alto nivel. - en principio no hay límite al tipo de datos a los que pueden acceder (mayor ámbito de medida). - suelen ser más baratos.

TEMA 3 REPRESENTACIÓN DE RESULTADOS

Page 9: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

9

Introducción

- Toma de datos ⇒ presentación de resultados.- Para facilitar la interpretación ⇒ forma gráfica.- La representación debe ser clara, concisa, simple y fácil de utilizar.- Se puede utilizar todo tipo de gráficos, según los datos a representar.

Tipos de variables

Cualitativas: se definen por un conjunto de subclases mutuamente exclusivas que se expresannormalmente con palabras. Pueden estar ordenadas (superordenador, miniordenador,microordenador) o no (carga científica, de ingeniería).

Cuantitativas: sus distintos niveles se expresan numéricamente. Pueden ser de dos tipos: . Discretas: toman valores contables (ej. número de procesadores en un sistema). . Continuas: toman valores no contables (ej. tiempo de respuesta de una operación).

Si en el eje de abcisas (x) tenemos variables cualitativas o cuantitativas discretas, conviene usargráficos de barras.

Recomendaciones para la construcción de gráficos

- Minimizar el esfuerzo del lector.- Maximizar la información.- Evitar la información innecesaria.- Seguir las pautas habituales.- Evitar ambigüedad: identificar los datos y no mezclar muchos datos en la misma gráfica.

No se deben poner curvas de diferentes unidades y con diferentes escalas en un mismo gráfico.La información debe evitar explicaciones.

Diagramas de Gantt

En un sistema se busca la utilización máxima de los recursos.Para que esté bien aprovechado, los recursos se deben utilizar a la vez.Los diagramas de Gantt permiten ver la utilización de los recursos y el solapamiento en suutilización.

Es un tipo de gráficas que es interesante para el análisis del funcionamiento de un sistemainformático. En general se utiliza para visualizar temporalmente los valores que toman ungrupo de variables booleanas.

CPU 60

Page 10: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

10

E/S 20 20

Red 30 10 5 15

0% 20% 40% 60% 80% 100%

Gráficos de Kiviat

Permite caracterizar los problemas de forma rápida.Se trata de un círculo donde los radios representan índices de prestaciones.La intersección entre el radio y el círculo representa el 100%.

Normalmente el funcionamiento ideal tiene una forma determinada. De forma que al ver elgráfico se identifica rápidamente lo bien o mal que está funcionando el sistema y cuales son laspartes causantes.Normalmente se diferencian índices beneficiosos (que es bueno que tengan valores altos) devalores perniciosos como puede ser el índice de paginación el desaprovechamiento de algúnrecurso.

Gráfico de Kiviat, versión de Kent:

1º) Seleccionar un número par de variables a estudiar la mitad buenos índices (a mayor valor,mejores prestaciones) y la otra mitad malos índices (mejores prestaciones a menor valor).2º) Se subdivide el círculo en tantos sectores como variables hay que representar.3º) Se numeran los radios en sentido horario.4º) Se asocian los buenos índices a los radios impares y los malos a los pares.

CPU ocupada CPU supervisor Solo CPU

CPU y cualquier canal CPU usuario

Al menos un canal activo sin solape con CPU CPU en espera

Al menos un canal activo

En un sistema ideal, todos los índices buenos tendrían valores altos y los malos, valores muybajos. El gráfico de Kiviat de ese sistema, tendría forma de estrella.

TEMA 4 CARACTERIZACIÓN DE LA CARGA

Page 11: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

11

Introducción

Carga: demandas que realizan los usuarios de un sistema en un intervalo de tiempo.- No se puede hablar de prestaciones sin hablar de la carga con la que se han tomado las medidas.- Para poder comparar diferentes sistemas y configuraciones, será imprescindible aplicarles una carga.

Necesidad de caracterizar la carga:- Tarea difícil debido a qué cambia con el tiempo • Realimentación interna: sistemas adaptativos. • Realimentación externa: introducidas por los usuarios.

Caracterización de la carga

Descripción cuantitativa según unos parámetros.Los parámetros que describe la carga se seleccionan según los objetivos de la caracterización.Objetivos ⇒ técnica de estudio e instrumentos de medida de parámetros para describir lacarga.

Ejemplo de parámetros para describir la carga:

- tiempo de CPU.- operaciones de E/S.- espacio en memoria requerido- ficheros en disco.- mezcla de instrucciones.- tiempo medido de CPU entre operaciones de E/S.- número de usuarios

Carga de prueba

Carga que se procesa durante el periodo de medida.Para hacer estudios de comparación o de sintonización necesitaremos reproducir la mismacarga. Reproducir la misma carga es difícil aunque se ejecuten los mismos programas.

Se utilizan modelos de carga:- Más difíciles de repetir.- A veces la carga que se modela no existe (predicciones).

Características de los modelos de carga:

- Repetible o reproducible.- Compacto, para reducir el tiempo de ejecución.- Compatible con el tipo de estudio y con máquinas diferentes si es un modelo de carga ejecutable.- Permite evitar problemas de privacidad o seguridad.- Si no es carga real, deben ser representativos.- Flexible, fácil de modificar para ajustarlo a variaciones de la carga a la que representa.

Page 12: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

12

- Independiente del sistema; que la representatividad del modelo no varíe al cambiarlo de sistema.

Sesión de medida

Intervalo de tiempo en el que se forman las medidas. No tiene porque ser continuo.Normalmente habrá varias sesiones de medida. En general unas medidas estarán destinadas adatos para ajustar la carga de prueba y otras serán las medidas realmente aplicando la carga deprueba.Utilizando varias sesiones de medida se intenta evitar que particularidades en una medida setomen como un comportamiento general.

Representatividad de un modelo de carga

Es la precisión con que un modelo representa una carga. La carga puede representarse adistintos niveles: nivel físico, nivel virtual, nivel funcional.El modelo deberá ser representativo atendiendo al nivel al que está asignado.

Representatividad a nivel físico

- Los modelo se caracterizan por el consumo de recursos físicos.- Orientado al consumo de recursos físicos.- Muy dependiente del sistema.- Datos para el modelo fáciles de conseguir (S.O., monitores, hardware).Las mayores aplicaciones de estos modelos son: - estudio de sintonización. - planificación de capacidad residual. - diseño.Representatividad a nivel virtual

- Consumos de recursos lógicos.- Menor dependencia del sistema que en el modelo anterior.- Más cercanos al usuario.- Parámetros más difíciles de obtener.- Se utilizan en estudios de ampliación.- Ej. de componentes: sentencias de lenguaje de alto nivel, número de ficheros utilizados, ordenes interactivas, espacio de memoria virtual.

Representatividad a nivel funcional

- Se trata de modelos que realizan las mismas aplicaciones que la carga a la que representan.- Son bastante independientes del sistema.- Es difícil diseñarlo de forma sistemática. A veces son bastante subjetivos.- Aplicaciones: selección de equipos, planificación de la capacidad.

Cargas de test

Page 13: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

13

- Real- Sintética: utilizan extractos de carga real. Natural o híbrida.- Artificial: no utilizan extractos de carga real

Ejecutables: Mix, Kernels, Programas sintéticos, BenchmarksNo ejecutables: Distribuciones, Modelos de colas

Carga de test real

- Barata- Representativa- Las sesiones de medida se deben seleccionar para que sean representativas del funcionamiento normal o de la situación de estudio.- La situación que se quiere reproducir puede no darse en el instante deseado.- Poco reproducible porque es difícil que volvamos a crear la misma situación a voluntad.- Poco flexible. (No se puede modificar la carga).- Puede haber problemas de confidencialidad.- No se puede usar en problemas de selección.

Se trata de la carga que realmente se está ejecutando en un sistema con todos sus usuarios ysus aplicaciones. Lo único que se tiene que seleccionar es durante cuánto tiempo se estámidiendo.

Carga de test sintéticas naturales

- Subconjunto de programas extraídos de la carga real.- Se suelen usar en estudios de ampliación, reposición y selección.- Dificultades en la utilización de carga sintética:

Prioridades de ejecuciónParámetros diferentes en las monitorizacionesParámetros o ampliaciones de sistemas operativos y programas como compiladores

También se les llama benchmarks, aunque normalmente se llama benchmark a cualquier cargade test. Son programas extraídos de la carga real pero no es carga real porque los usuarios nolos están utilizando para realizar trabajo útil.

Cargas de test sintéticas híbridas

- Son una mezcla de programas extraídos de la carga real y de carga artificial.- Permiten modelar parte de carga existente y parte inexistente (ej. ampliaciones de carga, programas confidenciales).

Un ejemplo de esta situación puede ser que se estudia la adquisición de un nuevo softwarepero se quiere preveer cómo responderá el sistema, el cual ya se está utilizando para una seriede tareas.

Cargas artificiales

- Pueden servir para cargar el sistema real o modelos de sistemas.- No utilizan componentes de la carga real.

Page 14: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

14

Se les llaman artificiales porque están construidas para ser modelos de carga. No sonextracciones de la carga real. Hay carga artificial que es ejecutable, es decir que sonprogramas.

MIX (mezcla) de instrucciones

Se trata de medir la frecuencia de aparición de las diferentes instrucciones. Así pues hacer unmodelo representativo será hacer una secuencia de instrucciones en las que la proporción yfrecuencia de aparición sean las mismas.El problema de esta técnica es que es difícil aplicarla de forma que solo evaluemos elprocesador y no otros aspectos como la gestión de memoria. Otro problema es que lacomparación sólo sería válida para procesadores con el mismo juego de instrucciones.

MIX de instrucciones

- Las frecuencias dependen de la carga.- Los tiempos dependen del procesador.- El sumatorio de la frecuencia por la carga dará el tiempo del MIX.- El en sumatorio según el tipo de instrucción y carga se pueden dar pesos.- Se usaron para comparar procesadores.- Son muy dependientes del sistema:

gestión de memoriasecuenciamiento de las instruccionesmanejo de direcciones

MIX de sentencias

- Compuesto por sentencias de lenguajes de alto nivel.- Son más independientes del sistema pero muy dependientes del compilador.- La frecuencia de aparición de las sentencias se puede medir:

a) Estáticamente: medir la frecuencia de aparición en los listados de los programas.b) Dinámicamente: frecuencia con la que realmente se están ejecutando las sentencias.

- La forma dinámica es más fiable pero más costosa.

En caso de utilizarlos habría que controlar dos cosas: el grado de optimización del compiladory el tipo de librerías que se utilizan.El problema de la medición estática es que puede haber partes de un software que seanimportantes en talla pero que se ejecuten pocas veces.La medición dinámica es más complicada porque hay que conocer las partes del programa quemás se utilizan utilizando el software con diferentes datos para no representar uncomportamiento muy particular.

Kernels (núcleo)

- Fragmento de un programa que representa su parte más característica.- Son programas cerrados que tienen un consumo de recursos conocido.- Ej. función de Ackermann, Sieve, inversión de matrices, programas de ordenación.- Se seleccionan según su similitud con los programas de la carga real.

Page 15: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

15

Hay que tener una precaución al utilizarlos. Como son una parte de una aplicación, puede quequepan enteros en una cache, con lo que los resultados pueden ser muy buenos, pero si seprobase la aplicación entera serían completamente diferentes.

Programas sintéticos

- No realizan trabajo útil. Sólo consumen recursos.- La cantidad de recursos consumidos se fija con parámetros de control:

for i:=1 to N1 do “Consume CPU”for i:=1 to N2 do “Consume E/S”

- Hay parámetros de corrección y calibrado para corregir el consumo que una parte del programa introduce en otra.

Secuencias conversacionales

- Para cargas transaccionales o conversacionales se utilizan ordenadores que simulan las peticiones.- Se suele utilizar el propio sistema a medir para simular esa carga.- En una carga conversacional se suele hacer un guión que representa el comportamiento de un usuario.

Ej. de guión:1- Conexión al sistema2- Editar un fichero y añadir líneas3- Compilar4- Editar5- Compilar6- Ejecutar

Tendríamos dos sistemas conectados. Uno generaría las peticiones como si fuesen los usuarios.El otro sería el sistema bajo estudio y que se estaría monitorizando para tomar las medidas.

Benchmarks

- Son programas construidos con alguna de las técnicas anteriores que producen una carga genérica.- Se utilizan para la comparación entre ordenadores.- No representan una carga específica.

La ventaja de estas cargas de prueba es que se suele tomar como una carga de prueba estandar.Los fabricantes y vendedores suelen apoyar su producto con resultados al aplicar alguno deestos benchmarks.El gran inconveniente es que estas cargas de prueba pueden ser muy poco representativas denuestra carga.

Cargas artificiales no ejecutables

- Suelen basarse en medidas o procedimientos estadísticos que se utilizan en modelos basados en redes de colas.- Se resuelven mediante simulaciones y mediante modelos analíticos.

Page 16: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

16

Por ejemplo en un modelo de redes de colas, la carga se caracterizará con datos como las tasasde llegadas, tiempos de utilización de cada recurso, qué recursos necesita cada cliente ycuántas veces lo visita, ....

Implementación

- Especificación: viene marcada por los objetivos del estudio de prestaciones. La especificación dará el nivel de detalle de los componentes de la carga de test.- Construcción: tendrá una parte de extracción de datos de la carga a representar y otra parte de diseño en la que realmente se construye la carga de prueba.- Validación: debe comprobar la representatividad de la carga de prueba y su validez para los objetivos iniciales. Al realizar la carga de prueba debemos pensar de qué forma podemos comprobar su es útil para nuestro estudio o no.

Fase de especificaciones

- Previsión del uso del modelo.- Sesión de medida.- Nivel de modelización.- Componente básico de carga. La unidad de trabajo más pequeña que es considerada.- Parámetros a utilizar. (Según el nivel de detalle y según su disponibilidad).- Criterio para evaluar su representatividad.

Construcción

- Análisis de los parámetros. (Medidas sobre el sistema).- Extracción de los valores representativos. De la cantidad de valores extraídos en el punto anterior, hacer una selección.

Mediante técnicas estadísticasAlgoritmos de agrupamientoModelos markovianos

- Asignación de valores a los componentes del modelo. De valores representativos a componentes ejecutables. El número de componentes aumenta la representatividad y disminuye la compacidad.- Reconstrucción de mezclas de componentes significativos. Reproducir situaciones que se producen en la carga real.

Muestreo de distribuciones de cada parámetro

- Se calcula la función de distribución de cada parámetro que se haya medido.- Se generan los componentes de la carga de test, generando una variable aleatoria que sigue cada una de las distribuciones.

Este método de extracción de valores representativos es sencillo, en cambio presenta elinconveniente de perder la relación que hay entre los parámetros. Los diferentes parámetros lostrata como distribuciones independientes pero esto es falso y se pueden generar modelos decarga poco representativos.

Muestreo de los componentes de la carga real

- Se muestrea la carga real y los parámetros de los componentes muestreados se incluyen en

Page 17: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

17

el modelo de carga.- Un inconveniente es que la probabilidad de ser muestreado es proporcional al tiempo de ejecución.- Se puede corregir tomando una muestra cada n componentes ejecutados.

Esta es una forma sencilla de decidir los componentes que estarán en el modelo de carga deprueba. Para que sea representativo debe haber bastantes muestras.Los componentes del modelo se pueden construir con métodos artificiales.

Métodos de agrupamiento

- Agrupar las muestras según criterios de similitud para formar los componentes básicos de la carga.- Se basan en las distancias entre los elementos.- Una nube de puntos la convertimos en un número de puntos donde cada uno de ellos representa un grupo de muestras.- Un paso previo a estos algoritmos consiste en normalizar los parámetros que caracterizan cada punto de la nube:

• A partir de la media y la desviación típica:p’ik = (pik - mk)/σk i = 1...m (número de valores), k = 1...n (número de parámetros).

Media del parámetro Desviación típica

k

iki

n

mx

n= =

∑1

k

iki

m

iki

m

x xm m mσ =

−−

−= =∑ ∑2

1

2

1

1 1( )

• Normalización entre 0 y 1, se realiza para que con la misma escala se vean las distancias en cada uno de los parámetros.

p’ik = (pik - min(pk)) / (max(pk) - min(pk))• A partir de una ponderación:p’ik = pik * wk

- Permite destacar un parámetro. Se puede combinar con las anteriores.

Algoritmos de agrupamiento jerárquicos

- En cada paso agrupan los dos componentes que están más cerca entre sí.- Se calcula la distancia de cada punto a todos los demás.- Un problema es que al fundir dos puntos, uno de ellos puede representar un gran número de ellos y debería tener más peso en la fusión.

Fusión de puntos2- Encadenamiento simple

dc,(a,b) = min (dc,a, dc,b)- Encadenamiento completo

dc,(a,b) = max (dc,a, dc,b)

Algoritmo del árbol de expansión mínimo

(algoritmo jerárquico):

Page 18: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

18

1- Obtener la matriz de distancias.2- Determinar la distancia mínima.3- Fundir los elementos de distancia mínima, calcular la nueva distancia al resto de puntos.4- Generar la nueva matriz de distancias.5- Volver hasta 2 hasta que:

- Sólo haya un grupo.- Haya un número de grupos determinado.- La distancia de agrupamientos sea superior a un valor.

Métodos de agrupamiento no jerárquicos

- El espacio inicial se divide en k clases.- Iterativamente se va mejorando la asignación a esas clases.- Termina cuando no hay componentes que cambian de grupo.- Mejorar el índice:

2

111ik ck xa y X

k

n

i

m

c

k

ic( )−∑∑∑

===

yck es el centro de masas de un grupo: yck = 1

cik

i cm a∈∑

xic variable booleana. 1 si ai pertenece a C, 0 si no.

Los métodos no jerárquicos buscan minimizar la suma de distancias al centro de masas:SUMc SUMm SUMn (pik-yck)2*xic

c clusters, m muestras, n parámetros. yck es el centro de masas y x es cierto o false según elelemento pertenezca a la clase o no.

Algoritmo de las nubes dinámicas

Algoritmo de agrupamiento no jerárquico.1- Se fijan k puntos de forma aleatoria, que representan los centros iniciales.2- Cada punto se asigna al centro que esté más próximo.3- Se recalculan los centros de masas de los nuevos grupos.4- Ir a 2 hasta obtener una clasificación estable.5- Se repite todo el procedimiento con nuevos centros al azar.6- Se usa la intersección de las clasificaciones obtenidas.

Esquema global

Fases en la construcción de un modelo de carga

Fase de especificación

Fase de construcción

Fase de validación

Page 19: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

19

Fase de especificación

- Uso previsto del modelo- Sesión de medida- Nivel de modelización- Componente básico de la carga- Parámetros a utilizar- Criterio para evaluar la representatividad

Fase de construcción

- Análisis de los parámetros- Extracción de valores representativos- Asignación de valores a los componentes del modelo- Reconstrucción de mezclas de componentes significativos

Fase de validación

- Ejecución del modelo- Aplicación del criterio de representatividad

{ Modelo listo para el uso- Es representativo { { Modificación de parámetros o mezclas en el modelo

TEMA 5 TECNICAS ANALITICAS

Introducción

- Mediante la teoría de colas se intenta determinar el tiempo que los trabajos pasan en las colas de los recursos.- Red de colas: servidores y clientes:

Los servidores son los recursosLos clientes son los usuarios o los trabajos

- El análisis operacional intenta deducir los índices de prestaciones a partir de parámetros cuantificables en el sistema y de relaciones entres esos parámetros.- Las relaciones entre ellos son las leyes operacionales (verificables mediante mediciones).

Estación de servicio

Llegadas (A) Terminaciones (C)

Cola Servidor

Una red de colas de espera será un conjunto de estaciones como ésta donde las salidas deunas estaciones están conectadas a las entradas de otras.

Page 20: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

20

Cuando llega un cliente, pasará a servirse en la estación si está desocupada o se añadirá a lacola en caso contrario.En el caso más simple esta estación la podríamos caracterizar con dos parámetros: la tasa dellegadas de clientes y el tiempo que cada cliente necesita para servirse.

Definiciones

- Intensidad de carga, tasa de llegada de los clientes.- Demanda de servicio, promedio del tiempo de recurso que necesita cada petición.- Utilización, proporción de tiempo que el servidor está ocupado.- Tiempo de residencia, tiempo que un cliente pasa en el servidor: cola + servicio.- Longitud de la cola, número medio de clientes en la estación.- Productividad, tasa de salidad de clientes.

Supongamos el ejemplo anterior con una tasa de llegadas S=0’5 clientes/sg y una demanda deservicio D=1’25.La utilización sería U=B/T = (C*S)/T, como A=C por la ley del equilibrio de flujo y0’5 = A/T, U = (0’5*T*1’25)/T = 0’625

Variables operacionales básicas

Son las que se pueden medir directamente sobre el sistema durante un tiempo de observaciónfinito.- T (time), intervalo de observación.- A (arrivals), peticiones durante T.- C (completions), peticiones servidas durante T.- B (busy), tiempo en el que el servidor está ocupado durante T.

Variables operacionales deducidas

- λ, tasa de llegada. λ = A/T- X, productividad. X = C/T- U, utilización. U= B/T- S, tiempo medio de servicio. S= B/C

U = X * S (ley operacional de la utilización)Por el equilibrio de flujo, A=C, λ=X, U=λ*S. Esto se debe cumplir para periodos de T muygrandes.

Redes de colas

- Con algunos parámetros como llegada de demandas y demanda de servicio de cada cliente a cada estación podremos deducir el funcionamiento (tiempo de respuesta, utilizaciones, ...).- Las redes de colas pueden ser abiertas o cerradas, pero como las tasas de llegada y de salida son iguales, se pueden tratar de la misma forma.

Supuestos

- Todos los índices de los que se parte son valores medios.- Una petición está únicamente en un servidor.

Page 21: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

21

- El tiempo que una petición está en una estación no depende del tamaño de las colas en otras estaciones. (Supuesto del tiempo de servicio homogéneo).- El número de peticiones que llegan a una estación es independiente del tamaño de las colas en otras estaciones. (Supuesto de llegadas homogéneo).- Las redes que cumplen estos supuestos se llaman redes de colas separadas u homogéneas.

Variables operacionales básicas en redes

Durante un periodo de medida T se han obtenido las siguientes medidas para cada estación i:- Ai

- Bi

- Cik trabajos que piden servicio en la estación k inmediatamente después de servirse en i.- A0k trabajos cuya primera petición es a estación i.- Ci0 trabajos cuya última petición es a estación i.- Ci suma de todos los Cik

0 significará el exterior del modelo, es decir, en los sistemas abiertos será la fuente de clientes ydonde van a parar los clientes que han terminado trabajos.

Variables operacionales deducidas

- Ui = Bi / T- Si = Bi / Ci

- Xi = Ci / T- qik = Cik / Ci representa los trabajos que después de servirse en el recurso i piden elservidor j (representa una probabilidad o una frecuencia de encaminamiento).

Leyes operacionales

a) Ley de la utilización:Bi / T = (Ci / T)*(Bi / Ci) ⇒ Ui = Xi * Si

La utilización es igual al flujo de clientes por el servicio medio que pide cada uno.

b) Ley de Little:W, tiempo acumulado en el sistema. Peticiones * unidad de tiempo.N = W / T, número medio de peticiones en el sistema.R = W / C, tiempo medio de residencia en el sistema por petición.W / T = (C / T)*(W / C) ⇒ N = X * R, el número medio de peticiones en el sistema

es la productividad por el tiempo medio de residencia de cada petición en ese sistema.- La ley de Little se aplica a diferentes niveles. Cada nivel tendrá sus parámetros.

Ejemplo

- 10 terminales.- 7.5 terminales trabajando por término medio.- Productividad del sistema 0.5 interacciones/sg.- Disco del nivel 1:

Sirve 40 peticiones/Sg.Tiempo de servicio por petición 0.0225Sg.Número medio de peticiones presentes 4.

a) Número medio de peticiones recibiendo servicio en el disco 1:U = S * X ⇒ 40 * 0.025 = 0.9, que también será el número medio de peticiones sirviéndose.

Page 22: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

22

b) Tiempo medio de residencia de una petición en el disco 1:R = N / X ⇒ 4 / 40 = 0.1 Sg.

c) Tiempo medio de espera en cola de una petición en el disco 1:0.1 = t. cola + 0.0225 ⇒ t. cola = 0.1 - 0.0225 = 0.0775 Sg.

d) Número medio de peticiones en cola de espera del disco 1:Peticiones en cola + peticiones en servicio = 4 Hay una media de 0.9 peticiones en servicioNumero medio de peticiones en cola = 4 - 0.9 = 3.1

e) Tiempo medio de respuesta percibido por el usuario:R = N / X = 7.5 / 0.5 = 15 Sg. En este caso N = 7.5 representa la media de usuarios trabajando.

f) Tiempo de reflexión de los usuarios (Z):Aplicamos Little a todo el sistema. La población será el número total de usuarios (10 terminales).R = (N / X)-Z ⇒ Z = (N / X)-R = (10 / 0.5) - 15 = 5 Sg.

Leyes operacionales

c) Ley del flujo forzado:- Relaciona la productividad del sistema con las productividades de los recursos individuales.- Todas las productividades deben ser proporcionales en todas las partes del sistema.- Razón de visita de un recurso: relación entre el número de terminaciones en un recurso y las terminaciones en el sistema.

- Se puede ver como el número de peticiones de un recurso que hace una interacción del sistema. Vk = Ck / C, recurso k. C son las interacciones a nivel de sistema. ⇒ Xk = Vk * XDemanda de servicio a un recurso: Dk = Vk * Sk

La ley del flujo forzado relaciona los parámetros de todas las partes del sistema.- Xk = Ck / T = (Ck / C)*(C / T) = X * Vk

- Xk = X * Vk, es una relación entre la productividad total y la de un recurso.

Ejemplo:

- En un sistema batch cada trabajo requiere una media de 6 accesos a un disco específico.- Ese disco atiende 12 peticiones/sg.- ¿La productividad del sistema?

X = Xk / Vk = 12 / 6 = 2 trabajo / sg.- Si otro disco sirve 18 peticiones/Sg. ¿Cuántos accesos requiere un trabajo a ese disco?

Vk = Xk / X = 18 / 2 = 9 accesos

Supuesto del equilibrio de flujo

- Para que un sistema funcione las llegadas deben ser igual a las salidas: A = C- Por tanto podemos decir que las tasas de llegada y salida también son iguales: λ = X

TEMA 6 CUELLOS DE BOTELLA

Introducción

- Las prestaciones no son las esperadas.- Uno o varios servidores no son capaces de abastecer las peticiones que les llegan.- Su utilización es del 100%.- Las peticiones que les llegan pierden tiempo esperando.

Page 23: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

23

- Mejoras en el sistema que no afectan al recurso responsable del cuello de botella no mejorarán las prestaciones.

Cuellos de botella

- Al tratar un CB pueden aparecer otros. Habrá que ir tratándolos hasta que el sistema quede equilibrado.- Los CB no dependen únicamente de la configuración. Son función también de la carga.- Hay CB temporales que aparecen un corto periodo de tiempo respecto a la sesión de medida.- Los CB temporales es difícil eliminarlos analizando, en diferido, los datos registrados anteriormente.- Para los CB temporales se recomiendan métodos de monitorización y toma de decisiones en tiempo real (on-line).

Terapias

- Al detectar un CB hay que evaluar las consecuencias y coste de las posibles terapias.- Modificaciones HW. Reemplazar o ampliar componentes HW. Terapias de reposición (upgrading).- Modificaciones que tienen efecto en la organización del sistema. Terapias de sintonización (tuning).- Las sintonizaciones suelen ser más baratas.- En las reposiciones deberíamos tener alguna garantía sobre el resultado ⇒ utilización de modelos simulados o analíticos.

Los modelos analíticos permiten por un lado detectar los Cbs y por otro predecir las mejorasque se obtendrían con diferentes soluciones.

Límites asintóticos

- Método analítico que permite ver los límites de productividad y tiempo de respuesta del sistema en función de la intensidad de la carga.- Recomendable para evaluar diferentes configuraciones o posibles reposiciones.- Se basan en la teoría de redes de colas.- Nos limitaremos a una sola clase de clientes.- Suponemos que la demanda de servicio de un cliente a una estación no depende de las demandas a esa estación ni a otras.Se busca un límite superior e inferior de las prestaciones que obtendrá el sistema. Al aplicaruna terapia veremos como se modifican estos límites y por tanto qué impacto pueden tener lasmejoras que vamos a aplicar.

Parámetros

- K, número de estaciones de servicio.- Dmax, la mayor de las demandas de servicio de entre las diferentes estaciones.- D, la suma de las demandas de servicio en las estaciones. (suma de las demandas de un cliente a todas las estaciones).- Z, tiempo medio de pensar (sistemas interactivos).El dispositivo que tenga la máxima demanda será el candidato a ser el CB. Será el que antesllegará a una utilización del 100% (saturación).

Page 24: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

24

Límites asintóticos en cargas transaccionales

a) Productividad:- El límite de la productividad indica la tasa máxima de llegada de clientes que el

sistema puede procesar satisfactoriamente. A partir de ese punto el sistema está saturado.

- Para la estación k, Uk = XkSk (Ley de la utilización).- Xk = λDk

- Si una Uk = 1 ⇒ no podremos procesar una carga mayor.- La estación k, con Uk = 1 será el CB.- X se limita a la λ que satura alguna estación.- Umax(λ) = λDmax ≤ 1, si Umax(λ) = 1 ⇒ λsat = 1 / Dmax

Los parámetros que utilizaremos para evaluar las prestaciones serán la productividad y eltiempo de respuesta.La tasa de llegadas que satura el sistema es 1 / Dmax

Esta tasa de llegadas dará la productividad máxima alcanzable con una determinada carga,recursos y configuración.

b) Tiempo de respuesta:- El caso más favorable, sólo hay un trabajo en el sistema. El tiempo de respuesta es la

suma de las demandas de servicio D.- Pero caso (cuando se sobrepasa la saturación), a partir de este momento no hay

límite en el tiempo de respuesta.

Límites asintóticos en cargas interactivas

a) Productividad:- Uk(N) = X(N) Dk ≤ 1, los recursos dan una utilización para un número de clientes.- X(N) ≤ 1 / Dmax, (límite para carga pesada).- Si sólo hay un cliente. La productividad será 1 /(D+Z) donde D es la suma de las demandas de servicio en las diferentes estaciones. Con N clientes, N / (D+Z).- Los siguientes clientes que van llegando esperan (N-1) D unidades en las colas.- La productividad será N / (ND+Z), se procesan N clientes con tiempo (ND+Z).- (N / (ND+Z)) ≤ X(N) ≤ min(1/Dmax, N / (D+Z)).- N * /(D+Z) = 1 / Dmax ⇒ N* = (D+Z) / Dmax, N* punto de saturación.

(N/(ND+Z) ≤ X(N) ⇒ Caso en el que todos los clientes piden el mismo recurso a la vez.X(N) ≤ N/(D+Z) ⇒ Es el caso más óptimo en el que todas las peticiones a los recursos sesolapan completamente. No se hace ninguna cola.X(N) ≤ 1/Dmax ⇒ Un recurso se ha saturado. La productividad no podrá crecer más. A partirde esta carga empiezan a producirse colas (al menos en el recurso saturado).

b) Tiempo de respuesta:- Ley de Little N = XR: (N/(ND+Z) ≤ (N/(R(N)+Z)) ≤ min(1/Dmax, N/(D+Z))

- max (Dmax, (D+Z)/N) ≤ ((R(N)+Z)/N) ≤ ((ND+Z)/N)- max (D, NDmax-Z) ≤ R(N) ≤ ND- Con Z=0 tenemos los límites para cargas Batch.- D ≤ R(N) ⇒ Si no hubiese colas.- (NDmax-Z) ≤ R(N) ⇒ Si solamente limitase la velocidad el recurso cuello de botella- R(N) ≤ ND ⇒ Se sirven con anterioridad todos los demás clientes.

Page 25: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

25

TEMA 7 SELECCION Y CONFIGURACION DE COMPUTADORES. BENCHMARKING

Benchmark

- Se utiliza como sinónimo de carga de test (kernels, carga sintética, carga sintética natural...)- Programas utilizados para cargar el sistema y medir el rendimiento del sistema o de partes de éste.- Benchmarking: comparar sistemas mediante la obtención de medidas.- Aplicaciones muy variadas:

- Comparar sistemas.- Problemas de sintonización.- Planificación de capacidad.- Comparación de compiladores.

Pasos en el benchmarking

- Objetivos de las mediciones.- Selección de los componentes apropiados para cubrir la finalidad.- Comprobar los aspectos del sistema que se va a estudiar y que pueden influir en las prestaciones.- Toda la información anterior, así como la fecha de aplicación debe presentarse en los resultados.- Análisis de los resultados llegando a comprender las razones de los índices obtenidos.Aspectos que pueden influir de forma no intencionada en los resultados: versiones de laslibrerías, opciones de los compiladores, hardware específico, ...

Utilización de los benchmarks

- Para la adquisición de equipos. El benchmark deberá reflejar las necesidades del comprador.- Sintonización. Se deben conocer muy bien los bench. para conocer las causas de los diferentes resultados.- Planificación de la capacidad. Se va aumentado la carga para conocer la capacidad que queda disponible.- Comparación de compiladores.- Diseño de sistemas informáticos o procesadores. Los bench. se suelen tomar como entrada para simuladores.

Factores que influyen en el benchmarking

- Tipo y versión del sistema operativo.- Compilador. Versión y directivas de compilación.- Lenguajes de programación.- Librerías. Pueden ir más rápido con menos precisión. IEEE dicta un estándar para las librerías.- Antememoria (memoria caché).- Verificación de ejecución correcta del bench. (los resultados son los apropiados).Es importante comprobar que el benchmark realiza alguna tarea y que se ha resulto bien.

Page 26: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

26

Errores comunes

- Representar en la carga de test sólo comportamientos medios. Si se representan valores medios se pueden dar sincronizaciones en los consumos que no son reales.- Controlar de manera inadecuada el nivel de carga. Modificamos ciertos parámetros esperando que los resultados no cambien.- Ignorar los efectos de la caché. Las prestaciones de las cachés son muy sensibles al orden en el que se hace las peticiones. En los estudios de caracterización de la carga se suele perder información relativa al orden en que se producen los consumos.- Ignorar la sobrecarga introducida en la monitorización.- No validar las medidas. Errores en la medida suelen pasar inadvertidos.- No asegurar las mismas condiciones iniciales. Por ejemplo, ejecutar dos veces el benchmark.- No medir las prestaciones del transitorio. Se suelen tomar las medidas una vez el sistema funciona de forma estable. A veces interesa medir el coste de las operaciones de inicio.- Almacenar muchos datos pero realizar poco análisis. Normalmente la toma de datos y la experimentación ocupan la mayor parte del tiempo del proyecto. Se debe planificar para que el análisis sea el adecuado.

Benchmarking games

- Falsear intencionadamente los resultados:- Utilizar configuraciones diferentes para ejecutar la misma carga en dos sistemas.- Compiladores diseñados para optimizar la carga.- Utilizar una secuencia de trabajos sincronizada.- Selección de la carga de forma parcial (sin verificar su representatividad de la carga

real).- Utilizar benchmarks muy pequeños. Caben en la caché y no enseñan problemas con la memoria.- Traducciones manuales de los benchmarks para mejorar las prestaciones.

Descripción de algunos benchmarks

- Linpack. Argone National Laboratory. Jack Dongarra 1976. Usados para sistemas científicos y de ingeniería. Resuelven sistemas densos de ecuaciones lineales. Muy vectorizable y dependiente de las operaciones en coma flotante y de las librerías de álgebra.- BYTE, PCW, EDN. Propuestos por estas publicaciones. Suelen ser pequeños. Las operaciones que realizan suelen ser variadas:

- Función de Ackermann: programa recursivo. Sirve para evaluar la facilidad de los lenguajes en las llamadas a subprogramas.

- Sieve: calcula números primos. Se usa para comparar procesadores, pc y lenguajes de alto nivel.- Dhrystone: R.P. Weicker Siemens-Nixdorf Information System. No tiene instrucciones en coma flotante ni llamadas al sistema, gran cantidad de instrucciones de manejo de tiras, pocos bucles (tamaño de caché muy importante). Unidades en Dhrystone/Sg.- Whetstone: H.J. Curnow, B.A. Wichmann National Physical Laboratory (G.B.) 1979. Actualmente en Fortran. Compuesto por módulos con diferentes tipos de consumos. El peso de los módulos se puede ajustar fijando los límites de los bucles. Resultados en MegaWhetstones/Sg. Usa muchas operaciones en coma flotante, muy dependiente de librerías matemáticas, pequeño tamaño, pocas variables locales.- SSBA1.21E: paquete para la evaluación de sistemas UNIX. Diseñado por la asociación francesa de usuarios de UNIX. Compuesto por 12 programas. Testean los siguientes aspectos:

Page 27: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

27

- Potencia CPU.- Implementación del sistema en general y del sistema de ficheros.- Compiladores de C y Fortran.- Manejo de memoria y rendimiento de las cachés.- E/S de disco y rendimiento del controlador.- Rendimiento multiusuario frente a tareas significativas.

- SPEC (Systems Performance Evaluation Cooperative). Hecho por un grupo de marcas comerciales, intenta ser representativo de la carga actual. Compuesto por 10 programas:

- gcc (compilador).- Espresso (herramienta de automatización de diseño electrónico).- Spice 2g6 (herramienta EDA).- Docuc (programa extraído de un simulador Monte Carlo de reactores nucleares).- NASA7 (operaciones matriciales en coma flotante).- LI (programa de las “ocho reinas” usando LISP).- Eqntott (representar ecuaciones lógicas en tablas de verdad).- Matrix300 (operaciones con matrices usando rutinas de Linpack en coma flotante) muy vectorizable.- Fpppp (benchmark de química) poco vectorizable.- Tomcatv (programa de generación de red vectorizada) muy vectorizable.

Formas de aplicar los benchmarks

- Uno detrás de otro. Para ver cuanto tarda un ordenador en ejecutar una colección de programas.- Como los ladrillo en un muro. Para comprobar el comportamiento en multitarea.- Lanzando peticiones desde otro equipo. Comprobar el funcionamiento en carga interactiva.

Resumen de cosas a comprobar

- Optimizaciones del compilador.- Comprobar la talla de memoria para estar seguros de lo que se mide.- Vigilar otros procesos que se están ejecutando.- Comprobar el tiempo que tarda en ejecutarse y el tiempo que realmente está consumiendo recursos.- Asegurarse que los resultados son los esperados y con la misma precisión.- Analizar los resultados en el ordenador actual.Se pueden descubrir mejoras en el propio ordenador y dará una idea de las mejoras que sepueden obtener.

MIPS

- Millones de instrucciones por segundo.- El ordenador que se toma como referencia es el DEC VAX 11/780 (1978). A veces se le llama VAX MIPS.- VAX sacaba 470000 instrucciones /sg y apuradito.Por convenio 1657 dhrystones/sg = 1 MIPS.

MFLOPS

- Millón de operaciones coma flotante /sg.- Son operaciones realizables por hardware.- Suelen medirse con programas que son mezclas de sumas y multiplicaciones.

Page 28: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

28

En algunas ocasiones se habla de picos de megaflops mayores que la frecuencia delprocesador. En cambio ojo con estos valores pico ya que se obtienen bajo cargas muyapropiadas a las características.

Creando benchmarks

- Tiempo de ejecución.- Memoria.- Utilización de kernels.- Forma de aplicar los benchmarks.- Portabilidad.

TEMA 8 COMPILADORES

Qué hace un compilador

- Traduce de un lenguaje de alto nivel a lenguaje máquina.- Esta traducción debe ser lo más eficiente posible.- En algunas partes críticas la traducción se optimiza a mano y no se utilizan compiladores.- El resultado del compilador está encaminado a una arquitectura específica.- El compilador intentará reorganizar el código para que sea más eficiente.- En RISC, intentar que varios encaminamientos trabajen a partir de una mezcla de instrucciones diferentes.En las mejoras que introduce el compilador suele ocurrir que el tamaño del fichero aumentaaunque la ejecución es más rápida.

Lenguaje intermedio

- El compilador traduce el fuente a un lenguaje parecido a ensamblador, permite manejar variables. Tras el análisis sintáctico se traduce el programa a éste lenguaje.- Hay instrucciones que en el fuente no aparecen y deben aparecer en este lenguaje.- Ejemplo:

- Todas las instrucciones tienen un código de operación y 2 operandos.- Las instrucciones tienen la forma X:=Y op Z.- Todas las referencias a memoria son lecturas o escrituras explícitas.- Los valores lógicos utilizados para saltos se calculan aparte.- Los saltos son a direcciones absolutas.

Bloques básicos

- Esto facilita el análisis del código. Sabemos que todas las instrucciones en un bloque se ejecutan una detrás de otra.- Las flechas entre bloques forman un diagrama de flujo.- Podemos saber las variables que se usan en cada bloque y las que se modifican.- Nos permite concentrarnos en las interacciones entre bloques.

Page 29: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

29

Identificar bloques básicos

A:: t1 := j Sabemos que cuando se entra en un bloque set2 :=n ejecutan todas sus instrucciones.t3 :=t1<t2jmp (B) t3 El resultado es un grafo dirigido. Las flechas

apuntan a los bloques a los que se puede saltar.

jmp (C) TRUE Ahora se puede hacer un análisis de loselementos que son internos a cada bloque y loselementos o variables que comparten.

B:: t4 :=kt5 :=jt6 :=t5*2t7 :=t4+t6k :=t7t8 :=jt9 :=t8*2m :=t9t10 :=jt11 :=t10+1j := t11jmp (A) TRUE

Directed Acyclic Graph (análisis de un bloque)

- Sirve para representar los cálculos y relaciones entre variables.- Se realiza un grafo acíclico, arriba se toman las variables de entrada, que se van uniendo con operaciones, también se ponen líneas que indican que una operación debe realizarse antes que otra.

B: t4 :=k t5 :=j “2” j,t5,t8,t10 k,t4 “1” t6 :=t5*2 t7 :=t4+t6 k :=t7 t8 :=j t9 :=t8*2 t6,t9,m * m :=t9 t10 :=j t11 :=t10+1 j :=t11 jmp (A) TRUE t7,k t11,j

Como se puede observar en el bloque básico hay operaciones y almacenamientos temporalesrepetidos. Por ejemplo t6 y t9 son lo mismo.El arco en trazo discontinuo representa una dependencia. La variable j se debe asignar despuésde haber calculado la variable m.

Análisis de flujo de datos

- Si ahora queremos optimizar el funcionamiento entre bloques, hay que mirar las variables

Page 30: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

30

que cada bloque utiliza y/o modifica.- En el bloque anterior las variables que se modifican son k,j y m. Las que toma como entrada son k y j.- Con esto el compilador detectará las variables que se usan con fines diferentes, las que no se utilizan en otros bloques, y se podrá asignar de forma más eficiente los registros a las variables.- Otras cosas que se pueden detectar es la repetición de cálculos en diferentes bloques o asignar cálculos a bloques más apropiados.

Bucles

- En el diagrama de flujo de datos se puede identificar bucles (incluso si en el fuente que las genera no aparece).- Si llegamos a identificarlos podemos encontrar expresiones que no se modifican con las iteraciones del bucle o expresiones que evolucionan de manera previsible con las iteraciones.- Cómo se detecta un bucle:

- Encontrar un nodo por el que es imprescindible pasar para llegar a los otros nodos en el bucle. (Nodo dominante).- Debe haber un camino de vuelta desde los nodos del bucle al nodo dominante

Generación de código objeto

- Esta parte es específica para cada procesador.- Todo lo que no sea gestionado por el hardware deberá tenerlo en cuenta el compilador. (Hay procesadores en los que el compilador debe preocuparse de la gestión de los recursos y hay otros en los que no).- En los procesadores RISC el compilador intenta optimizar la ejecución enviando instrucciones a varias unidades.

Optimizaciones

- Estas optimizaciones persiguen objetivos concretos, no son excluyentes:- Propagación de copias:

X = YZ = 1 + X

La segunda instrucción es dependiente de la primera.X = YZ = 1 + Y

Se pueden ejecutar a la vez, son independientes.- Desplegar las constantes:

e = 200;j = 100;k = e + k;

El compilador lo pondría todo como constantes. Esto se sabe analizando el flujo de datos para cada variable.- Eliminar código muerto:

- Se trata de código que no tiene efecto en las respuestas.- Puede haberlo introducido el programador o el propio compilador como efecto de otras optimizaciones.- Dos clases:

Page 31: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

31

Instrucciones que no se pueden alcanzarInstrucciones cuyo resultado no se utiliza más tarde

- Reducción de complejidad:Y = X**2 ⇒ Y = X*XJ = K*2 ⇒ J = K+K

- Rebautizar variables. Se intenta romper dependencias:x = y*z; x0=y*z;q = r+x+x; Quedaría q = r+x0+x0;x = a+b; x = a+b;

Rebautizar variables aumenta el paralelismo del código, lo cual facilita la ejecución en procesadores RISC.- Eliminar subexpresiones comunes:

d = c*(a+b)c = (a+b)/2 (a+b) es común a las dos expresiones,temp = a+bd = c*tempe = temp/2

- Sacar código invariante de bucles:for (i...) {

a[i] = b[i]*c*d;e = g[k];

}Quedaría:

temp = c*d;for (i...) {

a[i] = b[i]+temp};e = g[k];

- Simplificación de variables inducidas: Se trata de identificar expresiones que se calculan de una forma regular en un bucle. Es muy interesante en el cálculo de direcciones de un vector:

bucledireccion = direccionbase(A) + (I-1)*tallaelementos(A)Quedaría:direccion = direccionbase(A) - (1*tallaelementos(A))bucle direccion = direccion + tallaelementos(A)

Como nos pueden cambiar el benchmark

- Escoger las mejores optimizaciones.- Un precompilador reemplaza partes del programa por llamadas a librerías.- Optimizaciones específicas de una arquitectura.- El linker emplaza los subprogramas para minimizar fallos de página.- Decisiones en tiempo de ejecución (por hardware) cambian elecciones del compilador.- Ignorar los resultados.

Page 32: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

32

TEMA 9 MEJORA DE LAS PRESTACIONES DE UN SISTEMA

Etapas en la mejora de prestaciones

• Definición de los objetivos.• Caracterización de la carga.• Selección de la instrumentación.• Diseño del experimento.• Validación.

Selección de la instrumentación de medida

• Con los objetivos se deducen parámetros que interesa medir. Deberemos seleccionar instrumentación y comprobar que podemos acceder a esas variables.• Mediciones sobre el hardware: interesa conocer su utilización (cuellos de botella, recursos infrautilizados, capacidad sin utilizar).• Mediciones sobre el hardware.• Mediciones de la carga.

Variables sobre utilización del HW

• Parámetros típicos CPU:1) CPU ocupada, monitores HW, SW, rutinas de contabilidad.2) Sólo CPU, monitores HW, SW.3) CPU ocupada en estado supervisor, monitores HW, SW.4) CPU usuario, monitores HW, SW.5) Ocupación de la CPU por usuario, monitores SW, rutinas de contabilidad.

Variables sobre utilización del Software

- Sistema operativo. Puede influir mucho en las prestaciones. La forma en que tenga configurada la memoria es importante. Sus parámetros ajustables también son de importancia.- Programas de sistema y de usuario. Estos programas se suelen poder modificar si se detectan problemas. Interesará la utilización de CPU, E/S, llamadas al sistema. Se puede analizar por módulos. HW, SW, rutinas de contabilidad.

Medición de la carga, rutinas de contabilidad

- Son rutinas que se ejecutan periódicamente y permiten la obtención de informes sobre la utilización. Estas rutinas suelen muestrear tablas del S.O. y almacenan información. Esos ficheros son tratados periódicamente y se crean informes sobre los consumos. Informaciones que suelen facilitar:

• Actividad de los componentes durante periodos.• Existencia de picos de carga.• Operaciones E/S realizadas por cada programa.• Carga introducida por los dispositivos batch e interactivos.

Page 33: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

33

• Paginación causada por los usuarios.

Ejemplo 1 discos y canales

• Sistema batch. Memoria en 7 particiones (5 para trabajos normales, 1 sistema, 1 trabajos prioritarios).• Se quiere revisar las utilizaciones para posibles reposiciones.• Se midieron sesiones de 3 horas cuando había descensos en la productividad y cuando había carga alta (gráficos de Gantt y Kiviat).

- Se comprueba un desequilibrio en los canales 3 y 4.- Disco 4 muy utilizado. Tiene bibliotecas del sistema.

• Sintonizaciones:- Replanteamiento de módulos residentes.- Reubicación de archivos en el disco 4.- Equilibrio entre los canales 3 y 4.

• Mejora obtenida: aumentar la productividad un 10% al reducir tiempos de espera en D4, C3 y C4 y disminuir la CPU para el sistema.

TEMA 10 PROCESADORES RISC Y CISC

Introducción

• RISC: Reduced Instruction Set Computer.• CISC: Complex Instruction Set Computer.• Ambas son formas de diseñar procesadores.• Las arquitecturas definen el juego de instrucciones que ofrece el procesador.• Hoy muchos procesadores son una mezcla de ambos tipos de diseño.• Tendencia CISC ⇒ instrucciones que resuelven operaciones complejas próximas a los lenguajes de alto nivel.• Tendencia RISC ⇒ instrucciones sencillas pero con la esperanza de poderlas manipular más fácilmente para optimizar la ejecución.

Direccionamiento de memoria

• Los programadores necesitan utilizar una abstracción de memoria.• Se hace necesario funciones para calcular la posición física de las referencias (cálculo de direcciones) y hardware para facilitar estas operaciones (modo de direccionamiento).• CISC: muchos modos de direccionamiento (para ayudar a los programadores).• RISC: intentan disminuir la cantidad y complejidad ya que esto complica mucho el juego de instrucciones.

Microcódigo

• Si hay muchas operaciones y algunas pueden usar direccionamientos muy variados ⇒ decodificador de instrucciones y unidad de control muy complicados.• Además, la cantidad de accesos a memoria por cada instrucción puede ser variable.• Para reducir la complejidad de diseño hardware de estas unidades ⇒ microcódigo.

Page 34: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

34

• Las partes de control hardware se sustituyeron por conjuntos de microinstrucciones y secuenciadores.Microcódigo es la forma que se encontró para desarrollar instrucciones complejas. Codifica lassecuencias de control que permiten ejecutar la instrucción.

Pipelines

• Si queremos paralelizar dos operaciones tenemos dos formas de actuar:a) Duplicar las unidades donde se ejecutan y hacerlas a la vez.b) Ejecutarlas en las mismas unidades pero desfasadas.

• La segunda forma aprovecha que muchas operaciones se pueden separar en fases. Es másbarata, obtiene buenos resultados y como las fases son más simples se puede ir a mayorvelocidad.• Esta técnica se aplica principalmente a 3 áreas:

- Procesamiento de instrucciones.- Referencias a memoria.- Operaciones aritméticas en coma flotante.

Los procesadores CISC también pueden utilizar tuberías pero suele ser más difícil suaprovechamiento.

Fases en el procesamiento de instrucciones

- Traer la instrucción de memoria.- Decodificar la instrucción.- Acceder memoria para traer los operandos.- Ejecutar la instrucción.- Devolver los resultados.

• Inconvenientes:- Coordinar las fases.- Si una fase se tiene que retrasar, paralizaremos el pipeline.- Si hay saltos, las instrucciones que hay en fases precedentes no son correctas.

Juego de instrucciones optimizado

• Podemos estudiar la carga para deducir las operaciones más utilizadas.• Más tarde podemos observar cómo descomponer esas instrucciones en instrucciones sencillas.• Estas operaciones sencillas se ejecutarían por hardware.• Esta forma de proceder facilita la utilización de pipelines.Tendremos las instrucciones más utilizadas ejecutadas de forma óptima y por hardware (lo cualnos permite eliminar el microcódigo).Si se quiere utilizar microcódigo se puede hacer como si fuesen saltos a subprogramas.

Modos de direccionamiento sencillos

• Simplificar los modos de direccionamiento y hacerlos eficaces implementándolos por hardware.• Esto facilita la utilización de pipelines.• El compilador se encargará de organizar operaciones complejas en memoria.• Puede que se necesiten más operaciones, pero se ejecutan a más velocidad.

Page 35: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

35

Saltos retardados

• Es lo que se propone para minimizar los vaciados de pipeline a causa de saltos. (Operaciones muy frecuentes durante la ejecución de programas).• Cuando el procesador detecta un salto ya ha cargado otras instrucciones.• Para solucionarlo los compiladores intentan poner operaciones que se van a ejecutar de todas formas (se salte o no) después de la instrucción de salto.• Si no encuentra instrucciones que pueda poner, inserta operaciones que no hacen nada.Otra posibilidad es poner instrucciones antes del salto y anularlas al evaluar el salto si estasinstrucciones no se deberían haber ejecutado.

Procesadores con varias instrucciones/ciclo

- Si los conductos están siempre ocupados obtendremos una instrucción máquina por ciclo.- Hay procesadores que pueden terminar más de una instrucción por ciclo.- Una forma de hacer esto es tener varios conductos y enviar operaciones (que sean independientes) a través de ellos.- La posibilidad de explotar estas características dependerá de los programas que se ejecuten.- Principalmente hay tres tipos de procesadores RISC:

• Superescalares.• Superpipelined.• Long Instruction Word.

Sacar una instrucción por ciclo ya es un logro cuando cada instrucción necesita al menos 5ciclos. Los procesadores que pueden ejecutar más de una instrucción por ciclo deben utilizarvarias tuberías para ello. En cambio deben tener mecanismos que resuelvan posiblesdependencias entre las operaciones que se ejecutan a la vez. Es decir que una instrucciónnecesite algo que se deba haber producido en instrucciones anteriores.

Long Instruction Word

• Se trata de poner conductos en paralelo, pero la decisión de encaminar las instrucciones no se hace en tiempo de ejecución sino que se deja en manos del compilador.• La unidad de control para gestionarlo será más simple, pero lo compiladores son más complejos y lentos.• Las instrucciones que pueden ir en paralelo se pegan en una sola instrucción en tiempo de compilación.

Técnicas para mejorar la utilización de pipelines

• Circunvalación de registros ⇒ si el resultado de una operación lo va a utilizar otra que está cerca, se le pasa directamente sin escribir en un registro.• Rebautizar registros ⇒ detectan en tiempo de ejecución que un registro se usa mucho para dos fines diferentes y los sustituye por otro.• Reducir los retardos por saltos:

- Insertar operaciones que se pueden anular. Ejecuciones especulativas.- Asignaciones condicionales. Por ej. a=b<c?d:e, permiten ahorrar saltos.- Buffers para saltos (branch tarjet buffers). Guarda información sobre saltos anteriores y dónde se ha saltado.- Predicción de saltos según el compilador o hardware.

Page 36: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

36

INTRODUCCION A LA TEORIA DE COLAS

Introducción

Técnicas de evaluación:- Basadas en la monitorización- Basadas en el modelado:

• simular el comportamiento del sistema ⇒ implementarlo de forma virtual• técnicas analíticas ⇒ relaciones matemáticas

Las técnicas de monitorización se basan en deducciones sobre los resultados de mediciones. Enmuchos casos estas mediciones pueden estar sesgadas o no se pueden realizar.Si se desarrolla un modelo en forma de red de colas existen diferentes posibilidades desolucionarlo:- Simulación. Nos ofrece una solución numérica y poco exacta. El tiempo para desarrollar la simulación puede ser muy alto y es muy difícil saber si los resultados son correctos. En cambio el modelo está libre de restricciones.- Técnicas analíticas. Hay restricciones en el modelo. El modelo puede estar lejos del funcionamiento real. La realización puede ser poco costosa. El modelo se soluciona aplicando reglas matemáticas. Se puede solucionar mediante el análisis operacional o mediante la teoría de colas.

Teoría de colas de espera

• El sistema se ve como una red de recursos que son visitados por una población de clientes.• Se pueden resolver:

- análisis operacional- teoría de colas- markov

Estación de servicio

• Proceso de llegada• Distribución de tiempos de servicio• Número de servidores• Capacidad del sistema• Tamaño de la población

Políticas de servicio

• First Come, First Served (FCFS) o FIFO.• Last Come, First Served (LCFS) o LIFO.• Round-Robin (RR).• Processor Sharing (PS). Como Round Robin con unas ráfagas de servicio muy pequeñas.• Service In Random Order (SIRO).• Prioridad

Page 37: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

37

Trabajo con prioridades

• No expulsiva, (Non preemptive)• Expulsiva con reanudación, (Preemptive-resume)• Expulsiva con reinicialización, (Preemptive-restart)

Notación de Kendall

• A/S/m/B/K/DS- [A] distribución del tiempo entre llegadas- [S] distribución del tiempo de servicio- [m] número de servidores- [B] capacidad del sistema (valor por defecto ∞)- [K] tamaño de la población (valor por defecto ∞)- [DS] política de servicio (valor por defecto: FCFS)

Distribución de probabilidad

• M exponencial (o markoviana)• Ek erlang con parámetro k• Hk hiperexponencial con parámetro k• D determinista• G generalSe supone:

- que las llegadas se producen individualmente- que cada servidor atiende un solo cliente en cada instante

Variables que caracterizan el comportamiento

T = tiempo entre llegadas, (v.a.)λ = Tasa media de llegada = 1/E[T]S = v.a. que representa el tiempo de servicio de cada trabajo.µ = Tasa media de servicio = 1/E[S] de cada servidor. En un sistema con m servidores la tasa total de servicio es µ/m.N = Número de trabajos en la estación de servicio (v.a. discreta).Nq = Número de trabajos en espera de recibir servicio (v.a. discreta). No incluye a los trabajos que están recibiendo servicio.Ns = Número de trabajos recibiendo servicio (v.a. discreta).R = Tiempo de respuesta del sistema (v.a.). Incluye tanto el tiempo de espera como el de servicio.W = Tiempo de espera en cola (v.a.).

Relaciones entre las variables

- Condición de estabilidad: Si el número de trabajos en el sistema crece continuamente, tendiendo a infinito, se dice que el sistem es inestable. Para que el sistema sea estable, la tasa media de llegadas debe ser menor que la tasa media de servicio: λ < µ/m donde m es el número de servidores.- Ecuación del número de trabajos: N = Nq + Ns donde N, Nq y Ns son v.a. También se

Page 38: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

38

cumple para las medias: E[N] = E[Nq] + E[Ns]- Ecuación del tiempo: El tiempo que pasa un trabajo en la estación de servicio es igual a la suma del tiempo de espera en la cola más el tiempo de servicio: R = W + S donde R, W y S son v.a. También se puede aplicar a los valores medios: E[R] = E[W] + E[S]- Ley de Little: Permite relacionar el número de trabajos en un sistema con el tiempo que pasa un trabajo en el sistema.

• Número medio de trabajos en el sistema = tasa de llegada * tiempo medio de respuesta. E[N] = λ E[R]

Proceso estocástico

• Familia de variables aleatorias {X(t) / t ∈ T}• Toman valores en un espacio de etados.• Están ordenadas en el conjunto T, normalmente el tiempo.• El espacio de estados y T pueden ser continuos o discretos.Un proceso estocástico sobre un espacio discreto puede ser la cantidad de clientes en elsistema. Uno sobre un espacio continuo podría ser el tiempo que pasan los clientes en las colas.

El proceso de Poisson

• Proceso estocástico de tiempo continuo sobre un espacio de estados discreto.• Se utiliza para contar el número de sucesos N(t) que ocurren en el intervalo de tiempo [0,t].• Por ejemplo en número de llegadas que se pueden dar a un sistema hasta el tiempo t.

Tipos de procesos estocásticos que se suelen utilizar en la teoría de colas:a) Si el espacio de estados es finito o contable, cadena estocástica o proceso de estado discreto.b) Si el espacio de estados puede tener infinitos valores (es real), proceso de estado continuo.c) Procesos de Markov. Los estados en el futuro no dependen del pasado sino únicamente del presente. Su análisis es más sencillo porque el pasado se puede olvidar. En cambio si esto ocurre el tiempo que ya se ha pasado en un estado tampoco cuenta, por tanto el tiempo en un estado se debe regir mediante una distribución exponencial. Esto es una restricción.d) Si se trata de procesos de Markov con estados discretos, cadenas de Markov.e) Procesos de nacimiento y muerte. Se trata de cadenas de Markov donde las transiciones están restringidas a los estados vecinos.f) Procesos de Poisson. Los tiempos de llegadas o de ocurrencias de un evento están distribuidos idéntica e independientemente mediante una exponencial. El número de llegadas en un periodo de tiempo sigue una distribución exponencial. Son procesos de llegadas de Poisson.

Propiedades función de densidad de Poisson

• La distribución del tiempo entre llegadas es exponencial.• Superposición de procesos de POISSON.• Descomposición de un proceso de POISSON.La superposición y descomposición de procesos de Poisson también son procesos de Poisson.Las salidas de una cola M/M/1 donde la tasa de llegadas e s menor que la tasa de serviciotambién es un proceso de Poisson.

Procesos de Nacimiento-Muerte

Page 39: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

39

- Análisis general para calcular el comportamiento en función del tiempo (Régimen transitorio).- Análisis en régimen permanente (Cuando t → ∞)Sirven para modelar parte de un sistema donde los clientes llegan de uno en uno.Hay dos tipos de análisis: el comportamiento desde el arranque del sistema y elcomportamiento en la estabilización.En la estabilización tendremos una probabilidad de estar en cada estado.Con el análisis operacional sólo podemos estudiar el sistema cuando se ha estabilizado.A partir del estudio de los procesos de nacimiento y muerte podremos estudiar las colasM/M/m/B/k para cualquier valor de m, B y k.

Page 40: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

40

Practica 1

TimeSaca como resultado el tiempo de ejecución de otro comando. Este tiempo se da en tres cifras:tiempo total desde que se lanzó la ejecución hasta que la terminó, tiempo de CPU en estadousuario y tiempo de CPU en estado sistema. Estado usuario es el estado normal de unprograma que ejecutemos. Estado sistema se trata de llamadas que el programa puede hacer alS.O., rutinas del S.O. para servir fallos de página, excepciones, ...Lo normal es que el tiempo en estado usuario sea mayor que en sistema. Lo contrario puedeindicar problemas del programa en los accesos a memoria o repetidas condiciones deexcepción.

TimesSe trata de una función que se puede utilizar desde programas en C. Devuelve una estructuracon tiempos sobre la ejecución. #include <sys/times.h>

ProfSirve para analizar el tiempo que los programas pasan en sus diferentes subprogramas.Funciona muestreando periódicamente el contador del programa. Para utilizarlo hay quecompilar el programa con una opción adicional -p. Luego al ejecutarse el programa se vagenerando un fichero con datos de la ejecución.Los datos que se muestran en pantalla son:

- % Time: porcentaje de tiempo de CPU consumido por la rutina.- Seconds: tiempo de CPU consumido por esta rutina.- Cumsecs: tiempo de ejecución total consumido por esta y todas las rutinas anteriores.- Calls: número de veces que la rutina ha sido llamada.- msec/call: segundos dividido por el número de llamadas. Da la media del tiempo empleado en cada llamada (en ms.)- Name: nombre de la rutina.

GprofAdemás de la información que proporciona prof, gprof nos indica como se llaman lossubprogramas entre sí (grafo de llamadas).También aporta las veces que un subprograma llamaa otro y las que lo llaman sus padres.También necesita un compilado especial, la opción -G.La salida de gprof está dividida en tres secciones:

- Grafo de llamadas- Tiempos, da una lista de las funciones, porcentaje de tiempo empleado por cada una, número de llamadas, ... (similar a prof).- Indice, es una mezcla de referencias para poder localizar funciones por número en lugar de por nombre.

Practica 3

Page 41: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

41

AWK

- Es un lenguaje interpretado, por lo que no es muy eficiente pero suele ser suficiente para el tipo de tareas que suele resolver.- Está orientado al procesamiento de informes con un formato fijo.- El lenguaje tiene una sinstaxis parecida a C.- No es necesario la declaración de variables. Reserva espacio y las inicializa en el momento de utilizarlas.

Estructura de las órdenes

- Un programa awk es una secuencia de unidades con dos partes:- Patrón: debo realizar las acciones?- Acciones: como un subprograma en C

- El funcionamiento del programa: toma un fichero de entrada y para cada línea comprueba cada uno de los patrones que tiene el programa. Si el patrón se cumple en la línea se ejecutan las operaciones asociadas.Es decir que los patrones son condiciones lógicas que se evalúan en cada línea del fichero quese está procesando. Si esta condición se cumple se ejecuta el subprograma que tiene asociado.

Ejemplo

awk ‘$3>0 {printf $1,$2*$3}’ fichero.datos- El patrón: $3>0 será cierto en todas las líneas donde el tercer campo (secuencia de caracteres separadas por blancos) sea mayor que 0.- La acción: {printf $1,$2*$3} sacará por la salida estándar el primer campo de la línea y la multiplicación de los campos 2 y 3.- $0 indica toda la línea que está procesando.

-Al procesar una línea $n indica el campo n.- La variable predefinida NF indica el número de campos que tiene la línea que se está tratando.- La variable pedefinida NR indica el número de líneas que ya han sido procesadas.

Patrones y acciones

- En los patrones no es necesario escribir if (patron).- Los patrones son opcionales: si una parte del programa no tiene patrón, se supone cierto.- Las acciones son opcionales: la acción por defecto es imprimir la línea entera.- El programa se puede escribir en un fichero:

awk -f programa.awk fichero.datos

Programa.awk

Todas las partes son opcionales.Las acciones pueden ser conjuntos de instrucciones, secuencias de control, etc.

Page 42: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

42

- Tiene la forma siguiente:BEGIN {acción 1

acción 2 acción n}

patrón 1 {acción 1 acción n}

patrón n {acción 1; acción n}END {acción1; acción n}

Patrones predefinidos

- Hay dos patrones predefinidos:BEGIN Es cierto antes de procesar ninguna línea. Sirve para hacer inicializaciones.END Es cierto después de haber procesado la última línea. Sirve para tratar datos que se han ido almacenando al recorrer el fichero.

Formato de salida

- La forma más simple es print.- Se puede utilizar printf como en C:

{printf(”paga total de %s es %.2f\n”,$1,$2*$3)}{printf(“%-8s pesetas %6.2f\n”,$1,$2*$3)}

Patrones

- $2 >= 5- $2*$3 > 5- $1 == “Pepe”- Expresiones regulares.- Combinación lógica de los anteriores (&&,||, !).- (($2 >= 5) && ($2*$3 > 5)) || !($1==“Pepe”)

Variables

- No hay que definirlas.- Se ponen “a pelo” donde se van a utilizar.- Se inicializan automáticamente a 0.- El contexto da el tipo.

- frase = $0 #La variable frase será una cadena de caracteres que contiene toda una línea del fichero de datos.

- vector[20]=1 #Creará un vector de 21 componentes. Todas las componentes a 0 menos la 20 que valdrá 1.

- tabla[10,20] = 1Los comentarios se preceden de #.

Funciones pedefinidas

- Aritméticas:- Raíces, potencias, logaritmos, números aleatorios, ...

- Funciones sobre tiras de caracteres:- Longitud, concatenar, sustituir, ...

Page 43: ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOSpersonales.upv.es/igil/Adsi.pdf · ANALISIS Y DISEÑO DE SISTEMAS INFORMATICOS TEMA 1 INTRODUCCIÓN ... El concepto de prestaciones no se

43

- Funciones definidas por el usuario:function max(m,n) { return m > n ? m : n

}

Instrucciones de control

- Igual que en C.- if - else- while- for- Admite argumentos (argc y argv).- Se pueden ejecutar comandos de UNIX a través de la función syntax.

Parámetros de entrada

- awk -f prog.awk a v=1 b ficherodatos- ARGC = 4- ARGV[0] = awk- ARGV[1] = a- ARGV[2] = v=1- ARGV[3] = b- ARGV[4] = ficherodatos

La variable v ya se puede utilizar en el programa.