You are on page 1of 43

1

ANALISIS Y DISEO DE SISTEMAS INFORMATICOS


TEMA 1 INTRODUCCIN
Evaluacin del rendimiento de un sistema informtico.
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. Segn sea la utilizacin
se obtendrn 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 esttica.
- Los ndices que se utilizan para medir las prestaciones son diferentes segn el tipo de
estudio o sistema informtico.
- Siempre se intenta mejorar las prestaciones. Se debe negociar un nivel de servicio.
Las prestaciones son fundamentales en el diseo, seleccin, compra y utilizacin del sistema
informtico.
Uno de los principales problemas en el anlisis de prestaciones es asegurar que los
experimentos, se efectan con la misma carga.
La carga real es difcil 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 hipottica.
Si lo que pretendemos es comparar diferentes equipos, adems 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 evaluacin
- Un trabajo de evaluacin 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 informtico:
. en el diseo de una mquina
. en el diseo del sistema informtico
. en la ampliacin o configuracin de un sistema informtico
. sintonizacin o ajuste. Sintonizar es equilibrar el consumo de recursos.
. caracterizacin y prediccin de la carga
En general los estudios de prestaciones sern necesarios cuando se necesite predecir el
comportamiento o mejorarlo.
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 parmetros los cuales pueden tener relacin con:
. consumo de tiempos
. utilizacin 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 un
comando interactivo ligero. Para el responsable del sistema podra ser la velocidad con la que
se procesan grandes trabajos batch.
Hay tres tipos de medidas a partir de las cuales se calculan ndices de rendimiento:
1.- Caractersticas fsicas 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: mxima cantidad de trabajo til por unidad de tiempo (mxima 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 utilizacin: 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 explcitamente
por los usuarios.
d) Factor de carga de multiprogramacin: relacin entre el tiempo de respuesta de un
trabajo en un entorno de multiprogramacin y en uno monoprogramado.
e) Factor de ganancia de multiprogramacin: relacin entre el tiempo total de ejecutar un
grupo de trabajos en multiprogramacin y monoprogramacin.
f) Frecuencia de fallo de pgina: nmero de fallos de pgina que se producen por unidad de
tiempo en un sistema de memoria virtual paginada.
g) Frecuencia de swapping: nmero 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 averas en las que no
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 sinttica.
- La carga de prueba o de test suele formarse por componentes de carga.
En realidad se suele usar carga sinttica porque permite poder experimentar y reproducir
situaciones a nuestro gusto y sin tener que modificar el sistema real. En cambio en muchos
casos hay que preocuparse de justificar si esa carga sinttica es representativa de la situacin o
carga que queremos reproducir.
Para comprobar esto ltimo habr que medir unas magnitudes para que podamos compararlas
con las obtenidas bajo carga sinttica.
Magnitudes para los componentes de la carga
- Tiempo de CPU por trabajo.
- Nmero 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 pgina.
Magnitudes para el conjunto de la carga
- Tiempo ente llegadas, entre dos peticiones.
- Frecuencia de llegada, inversa del tiempo entre llegadas.
- Distribucin de los trabajos: proporcin de los diferentes componentes de carga.
- Para cargas conversacionales:
-tiempo de reflexin del ususario: tiempo que el usuario de un terminal de un sistema
interactivo necesita para generar una nueva peticin al sistema.
- nmero de usuarios: nmero de usuarios interactivos que trabajan simultneamente
sobre el mismo sistema en un instante dado.
- intensidad del usuario: relacin entre el tiempo de proceso de una peticin y su tiempo
de reflexin.
Proposicin de soluciones
Para solucionar problemas de malas prestaciones:
- Ajustar parmetros del S.O.
- Modificar polticas de gestin 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 mximo de recursos al mismo
4
tiempo.
- Modificacin o sustitucin de componentes hardware. Debe perseguir el recurso ms
cargado.
- Modificacin 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 dnde est
el problema. Luego habr que evaluar si se puede solucionar sin cambiar componentes
hardware o si hay que adquirir nuevo software.
Si se puede solucionar sin nuevas adquisiciones, intentar modificar la carga desde el punto de
vista de la explotacin para intentar quitar trabajo a los elementos ms solicitados.
Algunos parmetros del S.O.
- Tamao del quantum.
- Prioridad.
- Factor de multiprogramacin: nmero mximo de trabajos que estn simultneamente en
memoria principal.
- Tamao de la particin de memoria: cantidad fija de memoria principal asignada a una cola
de trabajos.
- Mxima frecuencia de fallo de pgina. Si se sobrepasa este ndice se manda el proceso a
disco para que no aumente la sobrecarga.
- Indice de supervivencia de pginas. Si una pgina no se ha utilizado un tiempo, se puede
devolver a disco.
Tcnicas en la evaluacin de sistemas
- Monitorizacin: utilizacin de herramientas de medicin sobre el sistema informtico.
- Modelado: para evaluar el comportamiento de un sistema en el que hay elementos que no
estn instalados. Se suelen implementar sobre la teora de colas y resolver mediante
mtodos analticos o simulacin (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 mtodo).
- Benchmark: se trata de cargas utilizadas para la comparacin de sistemas o configuraciones.
Los mtodos analticos se basan en leyes que relacionan distintas partes del modelo. Se llega a
crear un modelo matemtico. En cambio estos modelos normalmente estn limitados para
modelar comportamientos extraos.
En los modelos de simulacin en principio se puede modelar cualquier cosa, pero suelen
exigir mucho tiempo de desarrollo y ejecucin. Adems son muy difciles de validar.
Las tcnicas de benchmarking suelen ser las ms sencillas y unas de las utilizadas, aunque
muchas veces los resultados obtenidos no dependen nicamente del benchmark, o el
benchmark puede no ser representativo de una carga real.
5
TEMA 2 HERRAMIENTAS DE MEDIDA
Monitor: herramienta utilizada para observar la actividad de un sistema informtico mientras
est procesando carga.
- Observan el comportamiento.
- Recogen datos estadsticos de la ejecucin de los programas.
- Analizan los datos captados.
- Presentan resultados.
El resultado de una medicin ser distinto unas veces de otras, ya que, normalmente, no es
posible repetir las mismas condiciones de carga y en los mismos instantes. Por ello se habla de
monitorizacin y no de medicin ya que lo que estrictamente se efecta es un seguimiento de la
actividad realizada.
Utilidad:
- Un administrador puede conocer la utilizacin 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.
Tambin puede servir para planificar el crecimiento de la carga. Sirve para extraer los
parmetros de los modelos.
- Tambin hay sistemas adaptativos segn las condiciones de la carga.
Caractersticas del monitor
- Sobrecarga o interferencia: consumo de los recursos necesarios para el propio monitor.
- Precisin: nivel de error que pueden llevar los datos.
- Resolucin: mxima frecuencia a la que se pueden detectar y registrar los datos.
- Ambito o dominio de medida: caractersticas que es capaz de medir.
- Anchura de entrada: nmero mximo de unidades de informacin que el monitor puede
extraer en paralelo.
- Capacidad de reduccin de datos: capacidad para analizar, procesar y empaquetar los datos.
- Compatibilidad: facilidad para adaptarse a otros entornos o requerimientos.
- Precio: adquisicin, instalacin, mantenimiento, operacin.
- Facilidad de instalacin: fcil de instalar y retirar.
- Facilidad de utilizacin: sencillo, completo y agradable.
La sobrecarga hace que el monitor consuma recursos de lo que est midiendo. Esto hace que
modifique los resultados de lo que est midiendo. Ej. el programa top suele aparecer el mismo
como gran consumidor entre los procesos que ensea.
Clasificacin
Segn su implantacin:
- 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 electrnicos que se conectan a determinados
puntos del sistema.
6
- Monitores hbridos, que son una combinacin de las dos tcnicas anteriores.
Segn su mecanismo de activacin se clasifican en:
- Monitores de eventos o acontecimientos, son aquellos que se activan por la aparicin de
ciertos eventos. Si el evento ocurre con frecuencia producen ms 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. Segn la frecuencia de muestreo se llega a un compromiso entre resolucin y
sobrecarga. Para evitar el sincronismo entre la evolucin de los estados y los intervalos de
medida se utilizan intervalos aleatorios.
Y segn su forma de presentar los resultados se clasifican en:
- Monitores en lnea, van presentando datos parciales.
- Monitores batch, los datos se analizan cuando termina la ejecucin del programa.
Esquema conceptual
Sistema a medir

Interface instrumentacin

Filtro

Procesador

Registrador

Interpretador
La interfaz de instrumentacin es lo que conecta al monitor con lo que est observando. Por
ejemplo si al S.O. se aaden interrupciones software para detectar determinadas acciones, esas
interrupciones seran 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 la
informacin adecuada que necesitar la memoria a que se destine y para que se pueda
interpretar o analizar.
En algunos casos el analizador trabaja al mismo tiempo que el resto de elementos (on line) y en
otros trabaja en diferido.
Monitores software
La activacin del monitor implica la ejecucin de instrucciones. Pueden ser guiados por
sucesos, por muestreo o una mezcla de ambas tcnicas.
Insercin del cdigo del monitor:
- Adicin de un nuevo programa, fcil de instalar y eliminar.
- Modificacin del software a medir, basado en el uso de sondas software.
- Modificacin 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.
7
Las sondas software son conjuntos de instrucciones que se insertan en puntos clave de un
programa.
La prioridad de los monitores software deber ser mayor que la de los elementos que deba
medir. 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 utilizacin de registros temporales permite reducir el nmero de muestras.
La interferencia introducida se pude controlar fijando el periodo de muestreo. Este parmetro
se debe establecer de forma que los datos obtenidos sean fiables para el objetivo del estudio
pero que no sea tan pequeo que la interferencia introducida sea grande.
En algunos casos se pueden producir efectos de sincronismo entre fenmenos que se estn
midiendo y la frecuencia de muestreo. Para evitar este peligro se puede utilizar un periodo de
muestreo generado aleatoriamente pero donde se puede fijar la media.
Monitores software dirigidos por sucesos:
- Por traps: cdigo que se inserta en partes del programa para extraer informacin cuando se
llega a esas partes.
- Por interceptacin de interrupciones: se desva el tratamiento de una interrupcin a cdigo
del monitor donde se registran datos sobre el estado en ese momento y luego se sigue el
tratamiento de la interrupcin.
Monitores hardware
Se conectan al sistema a travs de sondas electrnicas.
Suelen utilizarse para ndices de prestaciones de bajo nivel.
Su principal caracterstica es que son externos al sistema que van a medir, lo que implica que:
- no utilizan recursos del sistema
- no producen interferencias
- son rpidos
Inconvenientes:
- difciles de instalar y utilizar
- hay magnitudes que solo puede acceder el software
- pueden producir errores en el hardware
Esquema sencillo monitor hardware:
reloj
mdulo contadores almacenamiento
lgico
8
Los monitores pueden hacerse ms complejos, con procesadores y memorias RAM para
procesar y grabar los datos. A su vez estos procesadores pueden tener unidades de E/S como
pantallas, teclado, etc.
El caso ms sencillo es una seal de reloj y una variable a medir conectadas a una puerta and, y
la salida enviada a un contador. Se medir la cantidad de pulsos que la seal est activada.
Un ejemplo de un monitor hardware puede ser una analizador lgico.
Monitores hbridos
Suelen ser software que captan acontecimientos en el sistema operativo y los enva a un
mdulo hardware que est conectado al bus del sistema. El envo puede ser una instruccin de
E/S.
El mdulo hw puede ser un procesador que graba el suceso recibido con una marca de tiempo.
La informacin se va procesando y se puede ir representando en una pantalla conectada al
procesador del monitor.
As se disminuye la sobrecarga ya que el tratamiento del monitor se hace en otro sistema y se
aumenta la rapidez gracias a tener un hw dedicado.
Se suelen usar en el diseo de nuevas arquitecturas. Algunas arquitecturas paralelas los llevan
incorporados.
Comparacin
Los monitores hardware:
- ms caros.
- ms difciles de utilizar.
- no sobrecargan el sistema.
- tienen ms resolucin.
- son ms portables.
- si el sistema falla pueden seguir midiendo y detectar la causa.
Dato que un monitor hardware no pude acceder: contenido de una posicin de memoria.
Dato que un monitor software no pude acceder: cantidad de instrucciones mquina ejecutadas.
Los monitores software:
- pueden acceder a datos de ms alto nivel.
- en principio no hay lmite al tipo de datos a los que pueden acceder (mayor mbito de
medida).
- suelen ser ms baratos.
TEMA 3 REPRESENTACIN DE RESULTADOS
9
Introduccin
- Toma de datos presentacin de resultados.
- Para facilitar la interpretacin forma grfica.
- La representacin debe ser clara, concisa, simple y fcil de utilizar.
- Se puede utilizar todo tipo de grficos, segn los datos a representar.
Tipos de variables
Cualitativas: se definen por un conjunto de subclases mutuamente exclusivas que se expresan
normalmente con palabras. Pueden estar ordenadas (superordenador, miniordenador,
microordenador) o no (carga cientfica, de ingeniera).
Cuantitativas: sus distintos niveles se expresan numricamente. Pueden ser de dos tipos:
. Discretas: toman valores contables (ej. nmero de procesadores en un sistema).
. Continuas: toman valores no contables (ej. tiempo de respuesta de una operacin).
Si en el eje de abcisas (x) tenemos variables cualitativas o cuantitativas discretas, conviene usar
grficos de barras.
Recomendaciones para la construccin de grficos
- Minimizar el esfuerzo del lector.
- Maximizar la informacin.
- Evitar la informacin innecesaria.
- Seguir las pautas habituales.
- Evitar ambigedad: identificar los datos y no mezclar muchos datos en la misma grfica.
No se deben poner curvas de diferentes unidades y con diferentes escalas en un mismo grfico.
La informacin debe evitar explicaciones.
Diagramas de Gantt
En un sistema se busca la utilizacin mxima de los recursos.
Para que est bien aprovechado, los recursos se deben utilizar a la vez.
Los diagramas de Gantt permiten ver la utilizacin de los recursos y el solapamiento en su
utilizacin.
Es un tipo de grficas que es interesante para el anlisis del funcionamiento de un sistema
informtico. En general se utiliza para visualizar temporalmente los valores que toman un
grupo de variables booleanas.
CPU 60
10
E/S 20 20
Red 30 10 5 15
0% 20% 40% 60% 80% 100%
Grficos de Kiviat
Permite caracterizar los problemas de forma rpida.
Se trata de un crculo donde los radios representan ndices de prestaciones.
La interseccin entre el radio y el crculo representa el 100%.
Normalmente el funcionamiento ideal tiene una forma determinada. De forma que al ver el
grfico se identifica rpidamente lo bien o mal que est funcionando el sistema y cuales son las
partes causantes.
Normalmente se diferencian ndices beneficiosos (que es bueno que tengan valores altos) de
valores perniciosos como puede ser el ndice de paginacin el desaprovechamiento de algn
recurso.
Grfico de Kiviat, versin de Kent:
1) Seleccionar un nmero 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 crculo 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 tendran valores altos y los malos, valores muy
bajos. El grfico de Kiviat de ese sistema, tendra forma de estrella.
TEMA 4 CARACTERIZACIN DE LA CARGA
11
Introduccin
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 difcil debido a qu cambia con el tiempo
Realimentacin interna: sistemas adaptativos.
Realimentacin externa: introducidas por los usuarios.
Caracterizacin de la carga
Descripcin cuantitativa segn unos parmetros.
Los parmetros que describe la carga se seleccionan segn los objetivos de la caracterizacin.
Objetivos tcnica de estudio e instrumentos de medida de parmetros para describir la
carga.
Ejemplo de parmetros 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.
- nmero de usuarios
Carga de prueba
Carga que se procesa durante el periodo de medida.
Para hacer estudios de comparacin o de sintonizacin necesitaremos reproducir la misma
carga. Reproducir la misma carga es difcil aunque se ejecuten los mismos programas.
Se utilizan modelos de carga:
- Ms difciles de repetir.
- A veces la carga que se modela no existe (predicciones).
Caractersticas de los modelos de carga:
- Repetible o reproducible.
- Compacto, para reducir el tiempo de ejecucin.
- Compatible con el tipo de estudio y con mquinas diferentes si es un modelo de carga
ejecutable.
- Permite evitar problemas de privacidad o seguridad.
- Si no es carga real, deben ser representativos.
- Flexible, fcil de modificar para ajustarlo a variaciones de la carga a la que representa.
12
- Independiente del sistema; que la representatividad del modelo no vare al cambiarlo de
sistema.
Sesin 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 estarn destinadas a
datos para ajustar la carga de prueba y otras sern las medidas realmente aplicando la carga de
prueba.
Utilizando varias sesiones de medida se intenta evitar que particularidades en una medida se
tomen como un comportamiento general.
Representatividad de un modelo de carga
Es la precisin con que un modelo representa una carga. La carga puede representarse a
distintos niveles: nivel fsico, nivel virtual, nivel funcional.
El modelo deber ser representativo atendiendo al nivel al que est asignado.
Representatividad a nivel fsico
- Los modelo se caracterizan por el consumo de recursos fsicos.
- Orientado al consumo de recursos fsicos.
- Muy dependiente del sistema.
- Datos para el modelo fciles de conseguir (S.O., monitores, hardware).
Las mayores aplicaciones de estos modelos son:
- estudio de sintonizacin.
- planificacin de capacidad residual.
- diseo.
Representatividad a nivel virtual
- Consumos de recursos lgicos.
- Menor dependencia del sistema que en el modelo anterior.
- Ms cercanos al usuario.
- Parmetros ms difciles de obtener.
- Se utilizan en estudios de ampliacin.
- Ej. de componentes: sentencias de lenguaje de alto nivel, nmero 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 difcil disearlo de forma sistemtica. A veces son bastante subjetivos.
- Aplicaciones: seleccin de equipos, planificacin de la capacidad.
Cargas de test
13
- Real
- Sinttica: utilizan extractos de carga real. Natural o hbrida.
- Artificial: no utilizan extractos de carga real
Ejecutables: Mix, Kernels, Programas sintticos, Benchmarks
No 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 situacin de estudio.
- La situacin que se quiere reproducir puede no darse en el instante deseado.
- Poco reproducible porque es difcil que volvamos a crear la misma situacin a voluntad.
- Poco flexible. (No se puede modificar la carga).
- Puede haber problemas de confidencialidad.
- No se puede usar en problemas de seleccin.
Se trata de la carga que realmente se est ejecutando en un sistema con todos sus usuarios y
sus aplicaciones. Lo nico que se tiene que seleccionar es durante cunto tiempo se est
midiendo.
Carga de test sintticas naturales
- Subconjunto de programas extrados de la carga real.
- Se suelen usar en estudios de ampliacin, reposicin y seleccin.
- Dificultades en la utilizacin de carga sinttica:
Prioridades de ejecucin
Parmetros diferentes en las monitorizaciones
Parmetros o ampliaciones de sistemas operativos y programas como compiladores
Tambin se les llama benchmarks, aunque normalmente se llama benchmark a cualquier carga
de test. Son programas extrados de la carga real pero no es carga real porque los usuarios no
los estn utilizando para realizar trabajo til.
Cargas de test sintticas hbridas
- Son una mezcla de programas extrados 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 situacin puede ser que se estudia la adquisicin de un nuevo software
pero se quiere preveer cmo responder el sistema, el cual ya se est utilizando para una serie
de tareas.
Cargas artificiales
- Pueden servir para cargar el sistema real o modelos de sistemas.
- No utilizan componentes de la carga real.
14
Se les llaman artificiales porque estn construidas para ser modelos de carga. No son
extracciones de la carga real. Hay carga artificial que es ejecutable, es decir que son
programas.
MIX (mezcla) de instrucciones
Se trata de medir la frecuencia de aparicin de las diferentes instrucciones. As pues hacer un
modelo representativo ser hacer una secuencia de instrucciones en las que la proporcin y
frecuencia de aparicin sean las mismas.
El problema de esta tcnica es que es difcil aplicarla de forma que solo evaluemos el
procesador y no otros aspectos como la gestin de memoria. Otro problema es que la
comparacin slo sera vlida 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 segn el tipo de instruccin y carga se pueden dar pesos.
- Se usaron para comparar procesadores.
- Son muy dependientes del sistema:
gestin de memoria
secuenciamiento de las instrucciones
manejo de direcciones
MIX de sentencias
- Compuesto por sentencias de lenguajes de alto nivel.
- Son ms independientes del sistema pero muy dependientes del compilador.
- La frecuencia de aparicin de las sentencias se puede medir:
a) Estticamente: medir la frecuencia de aparicin en los listados de los programas.
b) Dinmicamente: frecuencia con la que realmente se estn ejecutando las sentencias.
- La forma dinmica es ms fiable pero ms costosa.
En caso de utilizarlos habra que controlar dos cosas: el grado de optimizacin del compilador
y el tipo de libreras que se utilizan.
El problema de la medicin esttica es que puede haber partes de un software que sean
importantes en talla pero que se ejecuten pocas veces.
La medicin dinmica es ms complicada porque hay que conocer las partes del programa que
ms se utilizan utilizando el software con diferentes datos para no representar un
comportamiento muy particular.
Kernels (ncleo)
- Fragmento de un programa que representa su parte ms caracterstica.
- Son programas cerrados que tienen un consumo de recursos conocido.
- Ej. funcin de Ackermann, Sieve, inversin de matrices, programas de ordenacin.
- Se seleccionan segn su similitud con los programas de la carga real.
15
Hay que tener una precaucin al utilizarlos. Como son una parte de una aplicacin, puede que
quepan enteros en una cache, con lo que los resultados pueden ser muy buenos, pero si se
probase la aplicacin entera seran completamente diferentes.
Programas sintticos
- No realizan trabajo til. Slo consumen recursos.
- La cantidad de recursos consumidos se fija con parmetros de control:
for i:=1 to N1 do
Consume CPU
for i:=1 to N2 do
Consume E/S
- Hay parmetros de correccin 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 guin que representa el comportamiento de
un usuario.
Ej. de guin:
1- Conexin al sistema
2- Editar un fichero y aadir lneas
3- Compilar
4- Editar
5- Compilar
6- Ejecutar
Tendramos dos sistemas conectados. Uno generara las peticiones como si fuesen los usuarios.
El otro sera el sistema bajo estudio y que se estara monitorizando para tomar las medidas.
Benchmarks
- Son programas construidos con alguna de las tcnicas anteriores que producen una carga
genrica.
- Se utilizan para la comparacin entre ordenadores.
- No representan una carga especfica.
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 de
estos benchmarks.
El gran inconveniente es que estas cargas de prueba pueden ser muy poco representativas de
nuestra carga.
Cargas artificiales no ejecutables
- Suelen basarse en medidas o procedimientos estadsticos que se utilizan en modelos basados
en redes de colas.
- Se resuelven mediante simulaciones y mediante modelos analticos.
16
Por ejemplo en un modelo de redes de colas, la carga se caracterizar con datos como las tasas
de llegadas, tiempos de utilizacin de cada recurso, qu recursos necesita cada cliente y
cuntas veces lo visita, ....
Implementacin
- Especificacin: viene marcada por los objetivos del estudio de prestaciones. La
especificacin dar el nivel de detalle de los componentes de la carga de test.
- Construccin: tendr una parte de extraccin de datos de la carga a representar y otra parte
de diseo en la que realmente se construye la carga de prueba.
- Validacin: 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
- Previsin del uso del modelo.
- Sesin de medida.
- Nivel de modelizacin.
- Componente bsico de carga. La unidad de trabajo ms pequea que es considerada.
- Parmetros a utilizar. (Segn el nivel de detalle y segn su disponibilidad).
- Criterio para evaluar su representatividad.
Construccin
- Anlisis de los parmetros. (Medidas sobre el sistema).
- Extraccin de los valores representativos. De la cantidad de valores extrados en el punto
anterior, hacer una seleccin.
Mediante tcnicas estadsticas
Algoritmos de agrupamiento
Modelos markovianos
- Asignacin de valores a los componentes del modelo. De valores representativos a
componentes ejecutables. El nmero de componentes aumenta la representatividad y
disminuye la compacidad.
- Reconstruccin de mezclas de componentes significativos. Reproducir situaciones que se
producen en la carga real.
Muestreo de distribuciones de cada parmetro
- Se calcula la funcin de distribucin de cada parmetro 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 mtodo de extraccin de valores representativos es sencillo, en cambio presenta el
inconveniente de perder la relacin que hay entre los parmetros. Los diferentes parmetros los
trata como distribuciones independientes pero esto es falso y se pueden generar modelos de
carga poco representativos.
Muestreo de los componentes de la carga real
- Se muestrea la carga real y los parmetros de los componentes muestreados se incluyen en
17
el modelo de carga.
- Un inconveniente es que la probabilidad de ser muestreado es proporcional al tiempo de
ejecucin.
- Se puede corregir tomando una muestra cada n componentes ejecutados.
Esta es una forma sencilla de decidir los componentes que estarn en el modelo de carga de
prueba. Para que sea representativo debe haber bastantes muestras.
Los componentes del modelo se pueden construir con mtodos artificiales.
Mtodos de agrupamiento
- Agrupar las muestras segn criterios de similitud para formar los componentes bsicos de la
carga.
- Se basan en las distancias entre los elementos.
- Una nube de puntos la convertimos en un nmero de puntos donde cada uno de ellos
representa un grupo de muestras.
- Un paso previo a estos algoritmos consiste en normalizar los parmetros que caracterizan
cada punto de la nube:
A partir de la media y la desviacin tpica:
p
ik
= (p
ik
- m
k
)/
k
i = 1...m (nmero de valores), k = 1...n (nmero de parmetros).
Media del parmetro Desviacin tpica

k
ik
i
n
m
x
n
=
=

1

k
ik
i
m
ik
i
m
x x
m m m

= =

2
1
2
1
1 1 ( )
Normalizacin entre 0 y 1, se realiza para que con la misma escala se vean las
distancias en cada uno de los parmetros.
p
ik
= (p
ik
- min(p
k
)) / (max(p
k
) - min(p
k
))
A partir de una ponderacin:
p
ik
= p
ik
* w
k
- Permite destacar un parmetro. Se puede combinar con las anteriores.
Algoritmos de agrupamiento jerrquicos
- En cada paso agrupan los dos componentes que estn ms cerca entre s.
- Se calcula la distancia de cada punto a todos los dems.
- Un problema es que al fundir dos puntos, uno de ellos puede representar un gran nmero de
ellos y debera tener ms peso en la fusin.
Fusin de puntos
2
- Encadenamiento simple
d
c,(a,b)
= min (d
c,a
, d
c,b
)
- Encadenamiento completo
d
c,(a,b)
= max (d
c,a
, d
c,b
)
Algoritmo del rbol de expansin mnimo
(algoritmo jerrquico):
18
1- Obtener la matriz de distancias.
2- Determinar la distancia mnima.
3- Fundir los elementos de distancia mnima, calcular la nueva distancia al resto de puntos.
4- Generar la nueva matriz de distancias.
5- Volver hasta 2 hasta que:
- Slo haya un grupo.
- Haya un nmero de grupos determinado.
- La distancia de agrupamientos sea superior a un valor.
Mtodos de agrupamiento no jerrquicos
- El espacio inicial se divide en k clases.
- Iterativamente se va mejorando la asignacin a esas clases.
- Termina cuando no hay componentes que cambian de grupo.
- Mejorar el ndice:
2
1 1 1
ik ck
x a y
X
k
n
i
m
c
k
ic
(
)
= = =
y
ck
es el centro de masas de un grupo: y
ck
=
1
c
ik
i c
m
a

x
ic
variable booleana. 1 si a
i
pertenece a C, 0 si no.
Los mtodos no jerrquicos buscan minimizar la suma de distancias al centro de masas:
SUMc SUMm SUMn (p
ik
-y
ck
)2*x
ic
c clusters, m muestras, n parmetros. y
ck
es el centro de masas y x es cierto o false segn el
elemento pertenezca a la clase o no.
Algoritmo de las nubes dinmicas
Algoritmo de agrupamiento no jerrquico.
1- Se fijan k puntos de forma aleatoria, que representan los centros iniciales.
2- Cada punto se asigna al centro que est ms prximo.
3- Se recalculan los centros de masas de los nuevos grupos.
4- Ir a 2 hasta obtener una clasificacin estable.
5- Se repite todo el procedimiento con nuevos centros al azar.
6- Se usa la interseccin de las clasificaciones obtenidas.
Esquema global
Fases en la construccin de un modelo de carga
Fase de especificacin
Fase de construccin
Fase de validacin
19
Fase de especificacin
- Uso previsto del modelo
- Sesin de medida
- Nivel de modelizacin
- Componente bsico de la carga
- Parmetros a utilizar
- Criterio para evaluar la representatividad
Fase de construccin
- Anlisis de los parmetros
- Extraccin de valores representativos
- Asignacin de valores a los componentes del modelo
- Reconstruccin de mezclas de componentes significativos
Fase de validacin
- Ejecucin del modelo
- Aplicacin del criterio de representatividad
{ Modelo listo para el uso
- Es representativo {
{ Modificacin de parmetros o mezclas en el modelo
TEMA 5 TECNICAS ANALITICAS
Introduccin
- Mediante la teora 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 recursos
Los clientes son los usuarios o los trabajos
- El anlisis operacional intenta deducir los ndices de prestaciones a partir de parmetros
cuantificables en el sistema y de relaciones entres esos parmetros.
- Las relaciones entre ellos son las leyes operacionales (verificables mediante mediciones).
Estacin de servicio
Llegadas (A) Terminaciones (C)
Cola Servidor
Una red de colas de espera ser un conjunto de estaciones como sta donde las salidas de
unas estaciones estn conectadas a las entradas de otras.
20
Cuando llega un cliente, pasar a servirse en la estacin si est desocupada o se aadir a la
cola en caso contrario.
En el caso ms simple esta estacin la podramos caracterizar con dos parmetros: la tasa de
llegadas 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 peticin.
- Utilizacin, proporcin de tiempo que el servidor est ocupado.
- Tiempo de residencia, tiempo que un cliente pasa en el servidor: cola + servicio.
- Longitud de la cola, nmero medio de clientes en la estacin.
- Productividad, tasa de salidad de clientes.
Supongamos el ejemplo anterior con una tasa de llegadas S=05 clientes/sg y una demanda de
servicio D=125.
La utilizacin sera U=B/T = (C*S)/T, como A=C por la ley del equilibrio de flujo y
05 = A/T, U = (05*T*125)/T = 0625
Variables operacionales bsicas
Son las que se pueden medir directamente sobre el sistema durante un tiempo de observacin
finito.
- T (time), intervalo de observacin.
- 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, utilizacin. U= B/T
- S, tiempo medio de servicio. S= B/C
U = X * S (ley operacional de la utilizacin)
Por el equilibrio de flujo, A=C, =X, U=*S. Esto se debe cumplir para periodos de T muy
grandes.
Redes de colas
- Con algunos parmetros como llegada de demandas y demanda de servicio de cada cliente a
cada estacin 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 peticin est nicamente en un servidor.
21
- El tiempo que una peticin est en una estacin no depende del tamao de las colas en otras
estaciones. (Supuesto del tiempo de servicio homogneo).
- El nmero de peticiones que llegan a una estacin es independiente del tamao de las colas
en otras estaciones. (Supuesto de llegadas homogneo).
- Las redes que cumplen estos supuestos se llaman redes de colas separadas u homogneas.
Variables operacionales bsicas en redes
Durante un periodo de medida T se han obtenido las siguientes medidas para cada estacin i:
- A
i
- B
i
- C
ik
trabajos que piden servicio en la estacin k inmediatamente despus de servirse en i.
- A
0k
trabajos cuya primera peticin es a estacin i.
- C
i0
trabajos cuya ltima peticin es a estacin i.
- C
i
suma de todos los C
ik
0 significar el exterior del modelo, es decir, en los sistemas abiertos ser la fuente de clientes y
donde van a parar los clientes que han terminado trabajos.
Variables operacionales deducidas
- U
i
= B
i
/ T
- S
i
= B
i
/ C
i
- X
i
= C
i
/ T
- q
ik
= C
ik
/ C
i
representa los trabajos que despus de servirse en el recurso i piden el
servidor j (representa una probabilidad o una frecuencia de encaminamiento).
Leyes operacionales
a) Ley de la utilizacin:
B
i
/ T = (C
i
/ T)*(B
i
/ C
i
) U
i
= X
i
* S
i
La utilizacin 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, nmero medio de peticiones en el sistema.
R = W / C, tiempo medio de residencia en el sistema por peticin.
W / T = (C / T)*(W / C) N = X * R, el nmero medio de peticiones en el sistema
es la productividad por el tiempo medio de residencia de cada peticin en ese sistema.
- La ley de Little se aplica a diferentes niveles. Cada nivel tendr sus parmetros.
Ejemplo
- 10 terminales.
- 7.5 terminales trabajando por trmino medio.
- Productividad del sistema 0.5 interacciones/sg.
- Disco del nivel 1:
Sirve 40 peticiones/Sg.
Tiempo de servicio por peticin 0.0225Sg.
Nmero medio de peticiones presentes 4.
a) Nmero medio de peticiones recibiendo servicio en el disco 1:
U = S * X 40 * 0.025 = 0.9, que tambin ser el nmero medio de peticiones sirvindose.
22
b) Tiempo medio de residencia de una peticin en el disco 1:
R = N / X 4 / 40 = 0.1 Sg.
c) Tiempo medio de espera en cola de una peticin en el disco 1:
0.1 = t. cola + 0.0225 t. cola = 0.1 - 0.0225 = 0.0775 Sg.
d) Nmero 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 servicio
Numero 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 reflexin de los usuarios (Z):
Aplicamos Little a todo el sistema. La poblacin ser el nmero 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.
- Razn de visita de un recurso: relacin entre el nmero de terminaciones en un recurso y las
terminaciones en el sistema.
- Se puede ver como el nmero de peticiones de un recurso que hace una interaccin del sistema.
V
k
= C
k
/ C, recurso k. C son las interacciones a nivel de sistema. X
k
= V
k
* X
Demanda de servicio a un recurso: D
k
= V
k
* S
k
La ley del flujo forzado relaciona los parmetros de todas las partes del sistema.
- X
k
= C
k
/ T = (C
k
/ C)*(C / T) = X * V
k
- X
k
= X * V
k
, es una relacin 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 especfico.
- Ese disco atiende 12 peticiones/sg.
- La productividad del sistema?
X = X
k
/ V
k
= 12 / 6 = 2 trabajo / sg.
- Si otro disco sirve 18 peticiones/Sg. Cuntos accesos requiere un trabajo a ese disco?
V
k
= X
k
/ 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 tambin son iguales: = X
TEMA 6 CUELLOS DE BOTELLA
Introduccin
- Las prestaciones no son las esperadas.
- Uno o varios servidores no son capaces de abastecer las peticiones que les llegan.
- Su utilizacin es del 100%.
- Las peticiones que les llegan pierden tiempo esperando.
23
- Mejoras en el sistema que no afectan al recurso responsable del cuello de botella no
mejorarn las prestaciones.
Cuellos de botella
- Al tratar un CB pueden aparecer otros. Habr que ir tratndolos hasta que el sistema quede
equilibrado.
- Los CB no dependen nicamente de la configuracin. Son funcin tambin de la carga.
- Hay CB temporales que aparecen un corto periodo de tiempo respecto a la sesin de medida.
- Los CB temporales es difcil eliminarlos analizando, en diferido, los datos registrados
anteriormente.
- Para los CB temporales se recomiendan mtodos de monitorizacin 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 reposicin
(upgrading).
- Modificaciones que tienen efecto en la organizacin del sistema. Terapias de sintonizacin
(tuning).
- Las sintonizaciones suelen ser ms baratas.
- En las reposiciones deberamos tener alguna garanta sobre el resultado utilizacin de
modelos simulados o analticos.
Los modelos analticos permiten por un lado detectar los Cbs y por otro predecir las mejoras
que se obtendran con diferentes soluciones.
Lmites asintticos
- Mtodo analtico que permite ver los lmites de productividad y tiempo de respuesta del
sistema en funcin de la intensidad de la carga.
- Recomendable para evaluar diferentes configuraciones o posibles reposiciones.
- Se basan en la teora de redes de colas.
- Nos limitaremos a una sola clase de clientes.
- Suponemos que la demanda de servicio de un cliente a una estacin no depende de las
demandas a esa estacin ni a otras.
Se busca un lmite superior e inferior de las prestaciones que obtendr el sistema. Al aplicar
una terapia veremos como se modifican estos lmites y por tanto qu impacto pueden tener las
mejoras que vamos a aplicar.
Parmetros
- K, nmero de estaciones de servicio.
- D
max
, 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 mxima demanda ser el candidato a ser el CB. Ser el que antes
llegar a una utilizacin del 100% (saturacin).
24
Lmites asintticos en cargas transaccionales
a) Productividad:
- El lmite de la productividad indica la tasa mxima de llegada de clientes que el
sistema puede procesar satisfactoriamente. A partir de ese punto el sistema est
saturado.
- Para la estacin k, U
k
= X
k
S
k
(Ley de la utilizacin).
- X
k
= D
k
- Si una U
k
= 1 no podremos procesar una carga mayor.
- La estacin k, con U
k
= 1 ser el CB.
- X se limita a la que satura alguna estacin.
- U
max
() = D
max
1, si U
max
() = 1
sat
= 1 / D
max
Los parmetros que utilizaremos para evaluar las prestaciones sern la productividad y el
tiempo de respuesta.
La tasa de llegadas que satura el sistema es 1 / D
max
Esta tasa de llegadas dar la productividad mxima alcanzable con una determinada carga,
recursos y configuracin.
b) Tiempo de respuesta:
- El caso ms favorable, slo 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 saturacin), a partir de este momento no hay
lmite en el tiempo de respuesta.
Lmites asintticos en cargas interactivas
a) Productividad:
- U
k
(N) = X(N) D
k
1, los recursos dan una utilizacin para un nmero de clientes.
- X(N) 1 / D
max
, (lmite para carga pesada).
- Si slo 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/D
max
, N / (D+Z)).
- N * /(D+Z) = 1 / D
max
N* = (D+Z) / D
max
, N* punto de saturacin.
(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 ms ptimo en el que todas las peticiones a los recursos se
solapan completamente. No se hace ninguna cola.
X(N) 1/D
max
Un recurso se ha saturado. La productividad no podr crecer ms. A partir
de 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/D
max
, N/(D+Z))
- max (D
max
, (D+Z)/N) ((R(N)+Z)/N) ((ND+Z)/N)
- max (D, ND
max
-Z) R(N) ND
- Con Z=0 tenemos los lmites para cargas Batch.
- D R(N) Si no hubiese colas.
- (ND
max
-Z) R(N) Si solamente limitase la velocidad el recurso cuello de botella
- R(N) ND Se sirven con anterioridad todos los dems clientes.
25
TEMA 7 SELECCION Y CONFIGURACION DE
COMPUTADORES. BENCHMARKING
Benchmark
- Se utiliza como sinnimo de carga de test (kernels, carga sinttica, carga sinttica natural...)
- Programas utilizados para cargar el sistema y medir el rendimiento del sistema o de partes
de ste.
- Benchmarking: comparar sistemas mediante la obtencin de medidas.
- Aplicaciones muy variadas:
- Comparar sistemas.
- Problemas de sintonizacin.
- Planificacin de capacidad.
- Comparacin de compiladores.
Pasos en el benchmarking
- Objetivos de las mediciones.
- Seleccin 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 informacin anterior, as como la fecha de aplicacin debe presentarse en los
resultados.
- Anlisis 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 las
libreras, opciones de los compiladores, hardware especfico, ...
Utilizacin de los benchmarks
- Para la adquisicin de equipos. El benchmark deber reflejar las necesidades del comprador.
- Sintonizacin. Se deben conocer muy bien los bench. para conocer las causas de los
diferentes resultados.
- Planificacin de la capacidad. Se va aumentado la carga para conocer la capacidad que
queda disponible.
- Comparacin de compiladores.
- Diseo de sistemas informticos o procesadores. Los bench. se suelen tomar como entrada
para simuladores.
Factores que influyen en el benchmarking
- Tipo y versin del sistema operativo.
- Compilador. Versin y directivas de compilacin.
- Lenguajes de programacin.
- Libreras. Pueden ir ms rpido con menos precisin. IEEE dicta un estndar para las
libreras.
- Antememoria (memoria cach).
- Verificacin de ejecucin correcta del bench. (los resultados son los apropiados).
Es importante comprobar que el benchmark realiza alguna tarea y que se ha resulto bien.
26
Errores comunes
- Representar en la carga de test slo 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 parmetros
esperando que los resultados no cambien.
- Ignorar los efectos de la cach. Las prestaciones de las cachs son muy sensibles al orden en
el que se hace las peticiones. En los estudios de caracterizacin de la carga se suele perder
informacin relativa al orden en que se producen los consumos.
- Ignorar la sobrecarga introducida en la monitorizacin.
- 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 anlisis. Normalmente la toma de datos y la
experimentacin ocupan la mayor parte del tiempo del proyecto. Se debe planificar para
que el anlisis sea el adecuado.
Benchmarking games
- Falsear intencionadamente los resultados:
- Utilizar configuraciones diferentes para ejecutar la misma carga en dos sistemas.
- Compiladores diseados para optimizar la carga.
- Utilizar una secuencia de trabajos sincronizada.
- Seleccin de la carga de forma parcial (sin verificar su representatividad de la carga
real).
- Utilizar benchmarks muy pequeos. Caben en la cach y no ensean problemas con
la memoria.
- Traducciones manuales de los benchmarks para mejorar las prestaciones.
Descripcin de algunos benchmarks
- Linpack. Argone National Laboratory. Jack Dongarra 1976. Usados para sistemas
cientficos y de ingeniera. Resuelven sistemas densos de ecuaciones lineales. Muy
vectorizable y dependiente de las operaciones en coma flotante y de las libreras de lgebra.
- BYTE, PCW, EDN. Propuestos por estas publicaciones. Suelen ser pequeos. Las
operaciones que realizan suelen ser variadas:
- Funcin de Ackermann: programa recursivo. Sirve para evaluar la facilidad de los lenguajes en las
llamadas a subprogramas.
- Sieve: calcula nmeros 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 (tamao 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 mdulos con diferentes tipos de consumos. El peso
de los mdulos se puede ajustar fijando los lmites de los bucles. Resultados en
MegaWhetstones/Sg. Usa muchas operaciones en coma flotante, muy dependiente de
libreras matemticas, pequeo tamao, pocas variables locales.
- SSBA1.21E: paquete para la evaluacin de sistemas UNIX. Diseado por la asociacin
francesa de usuarios de UNIX. Compuesto por 12 programas. Testean los siguientes
aspectos:
27
- Potencia CPU.
- Implementacin del sistema en general y del sistema de ficheros.
- Compiladores de C y Fortran.
- Manejo de memoria y rendimiento de las cachs.
- 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 automatizacin de diseo electrnico).
- Spice 2g6 (herramienta EDA).
- Docuc (programa extrado 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 lgicas en tablas de verdad).
- Matrix300 (operaciones con matrices usando rutinas de Linpack en coma flotante) muy vectorizable.
- Fpppp (benchmark de qumica) poco vectorizable.
- Tomcatv (programa de generacin de red vectorizada) muy vectorizable.
Formas de aplicar los benchmarks
- Uno detrs de otro. Para ver cuanto tarda un ordenador en ejecutar una coleccin 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 estn 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 precisin.
- Analizar los resultados en el ordenador actual.
Se pueden descubrir mejoras en el propio ordenador y dar una idea de las mejoras que se
pueden 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
- Milln de operaciones coma flotante /sg.
- Son operaciones realizables por hardware.
- Suelen medirse con programas que son mezclas de sumas y multiplicaciones.
28
En algunas ocasiones se habla de picos de megaflops mayores que la frecuencia del
procesador. En cambio ojo con estos valores pico ya que se obtienen bajo cargas muy
apropiadas a las caractersticas.
Creando benchmarks
- Tiempo de ejecucin.
- Memoria.
- Utilizacin de kernels.
- Forma de aplicar los benchmarks.
- Portabilidad.
TEMA 8 COMPILADORES
Qu hace un compilador
- Traduce de un lenguaje de alto nivel a lenguaje mquina.
- Esta traduccin debe ser lo ms eficiente posible.
- En algunas partes crticas la traduccin se optimiza a mano y no se utilizan compiladores.
- El resultado del compilador est encaminado a una arquitectura especfica.
- El compilador intentar reorganizar el cdigo para que sea ms 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 tamao del fichero aumenta
aunque la ejecucin es ms rpida.
Lenguaje intermedio
- El compilador traduce el fuente a un lenguaje parecido a ensamblador, permite manejar
variables. Tras el anlisis sintctico 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 cdigo de operacin y 2 operandos.
- Las instrucciones tienen la forma X:=Y op Z.
- Todas las referencias a memoria son lecturas o escrituras explcitas.
- Los valores lgicos utilizados para saltos se calculan aparte.
- Los saltos son a direcciones absolutas.
Bloques bsicos
- Esto facilita el anlisis del cdigo. Sabemos que todas las instrucciones en un bloque se
ejecutan una detrs 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.
29
Identificar bloques bsicos
A:: t1 := j Sabemos que cuando se entra en un bloque se
t2 :=n ejecutan todas sus instrucciones.
t3 :=t1<t2
jmp (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 anlisis de los
elementos que son internos a cada bloque y los
elementos o variables que comparten.
B:: t4 :=k
t5 :=j
t6 :=t5*2
t7 :=t4+t6
k :=t7
t8 :=j
t9 :=t8*2
m :=t9
t10 :=j
t11 :=t10+1
j := t11
jmp (A) TRUE
Directed Acyclic Graph (anlisis de un bloque)
- Sirve para representar los clculos y relaciones entre variables.
- Se realiza un grafo acclico, arriba se toman las variables de entrada, que se van uniendo con
operaciones, tambin se ponen lneas que indican que una operacin 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 bsico hay operaciones y almacenamientos temporales
repetidos. Por ejemplo t6 y t9 son lo mismo.
El arco en trazo discontinuo representa una dependencia. La variable j se debe asignar despus
de haber calculado la variable m.
Anlisis de flujo de datos
- Si ahora queremos optimizar el funcionamiento entre bloques, hay que mirar las variables
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 ms eficiente los registros a las
variables.
- Otras cosas que se pueden detectar es la repeticin de clculos en diferentes bloques o
asignar clculos a bloques ms 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.
- Cmo 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
Generacin de cdigo objeto
- Esta parte es especfica 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 gestin de los recursos y hay
otros en los que no).
- En los procesadores RISC el compilador intenta optimizar la ejecucin enviando
instrucciones a varias unidades.
Optimizaciones
- Estas optimizaciones persiguen objetivos concretos, no son excluyentes:
- Propagacin de copias:
X = Y
Z = 1 + X
La segunda instruccin es dependiente de la primera.
X = Y
Z = 1 + Y
Se pueden ejecutar a la vez, son independientes.
- Desplegar las constantes:
e = 200;
j = 100;
k = e + k;
El compilador lo pondra todo como constantes. Esto se sabe analizando el flujo de datos
para cada variable.
- Eliminar cdigo muerto:
- Se trata de cdigo que no tiene efecto en las respuestas.
- Puede haberlo introducido el programador o el propio compilador como efecto de
otras optimizaciones.
- Dos clases:
31
Instrucciones que no se pueden alcanzar
Instrucciones cuyo resultado no se utiliza ms tarde
- Reduccin de complejidad:
Y = X**2 Y = X*X
J = K*2 J = K+K
- Rebautizar variables. Se intenta romper dependencias:
x = y*z; x
0
=y*z;
q = r+x+x; Quedara q = r+x
0
+x
0
;
x = a+b; x = a+b;
Rebautizar variables aumenta el paralelismo del cdigo, lo cual facilita la ejecucin en
procesadores RISC.
- Eliminar subexpresiones comunes:
d = c*(a+b)
c = (a+b)/2 (a+b) es comn a las dos expresiones,
temp = a+b
d = c*temp
e = temp/2
- Sacar cdigo invariante de bucles:
for (i...) {
a[i] = b[i]*c*d;
e = g[k];
}
Quedara:
temp = c*d;
for (i...) {
a[i] = b[i]+temp
};
e = g[k];
- Simplificacin de variables inducidas:
Se trata de identificar expresiones que se calculan de una forma regular en un bucle. Es muy
interesante en el clculo de direcciones de un vector:
bucle
direccion = direccionbase(A) + (I-1)*tallaelementos(A)
Quedara:
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 libreras.
- Optimizaciones especficas de una arquitectura.
- El linker emplaza los subprogramas para minimizar fallos de pgina.
- Decisiones en tiempo de ejecucin (por hardware) cambian elecciones del compilador.
- Ignorar los resultados.
32
TEMA 9 MEJORA DE LAS PRESTACIONES DE UN SISTEMA
Etapas en la mejora de prestaciones
Definicin de los objetivos.
Caracterizacin de la carga.
Seleccin de la instrumentacin.
Diseo del experimento.
Validacin.
Seleccin de la instrumentacin de medida
Con los objetivos se deducen parmetros que interesa medir. Deberemos seleccionar
instrumentacin y comprobar que podemos acceder a esas variables.
Mediciones sobre el hardware: interesa conocer su utilizacin (cuellos de botella, recursos
infrautilizados, capacidad sin utilizar).
Mediciones sobre el hardware.
Mediciones de la carga.
Variables sobre utilizacin del HW
Parmetros tpicos CPU:
1) CPU ocupada, monitores HW, SW, rutinas de contabilidad.
2) Slo CPU, monitores HW, SW.
3) CPU ocupada en estado supervisor, monitores HW, SW.
4) CPU usuario, monitores HW, SW.
5) Ocupacin de la CPU por usuario, monitores SW, rutinas de contabilidad.
Variables sobre utilizacin del Software
- Sistema operativo. Puede influir mucho en las prestaciones. La forma en que tenga
configurada la memoria es importante. Sus parmetros ajustables tambin son de
importancia.
- Programas de sistema y de usuario. Estos programas se suelen poder modificar si se detectan
problemas. Interesar la utilizacin de CPU, E/S, llamadas al sistema. Se puede analizar por
mdulos. HW, SW, rutinas de contabilidad.
Medicin de la carga, rutinas de contabilidad
- Son rutinas que se ejecutan peridicamente y permiten la obtencin de informes sobre la
utilizacin.
Estas rutinas suelen muestrear tablas del S.O. y almacenan informacin. Esos ficheros son
tratados peridicamente 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.
33
Paginacin 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 haba descensos en la productividad y cuando
haba carga alta (grficos 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 mdulos residentes.
- Reubicacin 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
Introduccin
RISC: Reduced Instruction Set Computer.
CISC: Complex Instruction Set Computer.
Ambas son formas de disear procesadores.
Las arquitecturas definen el juego de instrucciones que ofrece el procesador.
Hoy muchos procesadores son una mezcla de ambos tipos de diseo.
Tendencia CISC instrucciones que resuelven operaciones complejas prximas a los
lenguajes de alto nivel.
Tendencia RISC instrucciones sencillas pero con la esperanza de poderlas manipular
ms fcilmente para optimizar la ejecucin.
Direccionamiento de memoria
Los programadores necesitan utilizar una abstraccin de memoria.
Se hace necesario funciones para calcular la posicin fsica de las referencias (clculo 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.
Microcdigo
Si hay muchas operaciones y algunas pueden usar direccionamientos muy variados
decodificador de instrucciones y unidad de control muy complicados.
Adems, la cantidad de accesos a memoria por cada instruccin puede ser variable.
Para reducir la complejidad de diseo hardware de estas unidades microcdigo.
34
Las partes de control hardware se sustituyeron por conjuntos de microinstrucciones y
secuenciadores.
Microcdigo es la forma que se encontr para desarrollar instrucciones complejas. Codifica las
secuencias de control que permiten ejecutar la instruccin.
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 ms
barata, obtiene buenos resultados y como las fases son ms simples se puede ir a mayor
velocidad.
Esta tcnica se aplica principalmente a 3 reas:
- Procesamiento de instrucciones.
- Referencias a memoria.
- Operaciones aritmticas en coma flotante.
Los procesadores CISC tambin pueden utilizar tuberas pero suele ser ms difcil su
aprovechamiento.
Fases en el procesamiento de instrucciones
- Traer la instruccin de memoria.
- Decodificar la instruccin.
- Acceder memoria para traer los operandos.
- Ejecutar la instruccin.
- 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 ms utilizadas.
Ms tarde podemos observar cmo descomponer esas instrucciones en instrucciones
sencillas.
Estas operaciones sencillas se ejecutaran por hardware.
Esta forma de proceder facilita la utilizacin de pipelines.
Tendremos las instrucciones ms utilizadas ejecutadas de forma ptima y por hardware (lo cual
nos permite eliminar el microcdigo).
Si se quiere utilizar microcdigo se puede hacer como si fuesen saltos a subprogramas.
Modos de direccionamiento sencillos
Simplificar los modos de direccionamiento y hacerlos eficaces implementndolos por
hardware.
Esto facilita la utilizacin de pipelines.
El compilador se encargar de organizar operaciones complejas en memoria.
Puede que se necesiten ms operaciones, pero se ejecutan a ms velocidad.
35
Saltos retardados
Es lo que se propone para minimizar los vaciados de pipeline a causa de saltos.
(Operaciones muy frecuentes durante la ejecucin 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) despus de la instruccin 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 estas
instrucciones no se deberan haber ejecutado.
Procesadores con varias instrucciones/ciclo
- Si los conductos estn siempre ocupados obtendremos una instruccin mquina por ciclo.
- Hay procesadores que pueden terminar ms de una instruccin por ciclo.
- Una forma de hacer esto es tener varios conductos y enviar operaciones (que sean
independientes) a travs de ellos.
- La posibilidad de explotar estas caractersticas depender de los programas que se ejecuten.
- Principalmente hay tres tipos de procesadores RISC:
Superescalares.
Superpipelined.
Long Instruction Word.
Sacar una instruccin por ciclo ya es un logro cuando cada instruccin necesita al menos 5
ciclos. Los procesadores que pueden ejecutar ms de una instruccin por ciclo deben utilizar
varias tuberas para ello. En cambio deben tener mecanismos que resuelvan posibles
dependencias entre las operaciones que se ejecutan a la vez. Es decir que una instruccin
necesite algo que se deba haber producido en instrucciones anteriores.
Long I nstruction Word
Se trata de poner conductos en paralelo, pero la decisin de encaminar las instrucciones no
se hace en tiempo de ejecucin sino que se deja en manos del compilador.
La unidad de control para gestionarlo ser ms simple, pero lo compiladores son ms
complejos y lentos.
Las instrucciones que pueden ir en paralelo se pegan en una sola instruccin en tiempo de
compilacin.
Tcnicas para mejorar la utilizacin de pipelines
Circunvalacin de registros si el resultado de una operacin lo va a utilizar otra que est
cerca, se le pasa directamente sin escribir en un registro.
Rebautizar registros detectan en tiempo de ejecucin 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 informacin sobre saltos anteriores y dnde se ha
saltado.
- Prediccin de saltos segn el compilador o hardware.
36
INTRODUCCION A LA TEORIA DE COLAS
Introduccin
Tcnicas de evaluacin:
- Basadas en la monitorizacin
- Basadas en el modelado:
simular el comportamiento del sistema implementarlo de forma virtual
tcnicas analticas relaciones matemticas
Las tcnicas de monitorizacin se basan en deducciones sobre los resultados de mediciones. En
muchos 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 de
solucionarlo:
- Simulacin. Nos ofrece una solucin numrica y poco exacta. El tiempo para desarrollar la
simulacin puede ser muy alto y es muy difcil saber si los resultados son correctos. En
cambio el modelo est libre de restricciones.
- Tcnicas analticas. Hay restricciones en el modelo. El modelo puede estar lejos del
funcionamiento real. La realizacin puede ser poco costosa. El modelo se soluciona
aplicando reglas matemticas. Se puede solucionar mediante el anlisis operacional o
mediante la teora de colas.
Teora de colas de espera
El sistema se ve como una red de recursos que son visitados por una poblacin de clientes.
Se pueden resolver:
- anlisis operacional
- teora de colas
- markov
Estacin de servicio
Proceso de llegada
Distribucin de tiempos de servicio
Nmero de servidores
Capacidad del sistema
Tamao de la poblacin
Polticas 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 rfagas de servicio muy pequeas.
Service In Random Order (SIRO).
Prioridad
37
Trabajo con prioridades
No expulsiva, (Non preemptive)
Expulsiva con reanudacin, (Preemptive-resume)
Expulsiva con reinicializacin, (Preemptive-restart)
Notacin de Kendall
A/S/m/B/K/DS
- [A] distribucin del tiempo entre llegadas
- [S] distribucin del tiempo de servicio
- [m] nmero de servidores
- [B] capacidad del sistema (valor por defecto )
- [K] tamao de la poblacin (valor por defecto )
- [DS] poltica de servicio (valor por defecto: FCFS)
Distribucin de probabilidad
M exponencial (o markoviana)
E
k
erlang con parmetro k
H
k
hiperexponencial con parmetro k
D determinista
G general
Se 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 = Nmero de trabajos en la estacin de servicio (v.a. discreta).
N
q
= Nmero de trabajos en espera de recibir servicio (v.a. discreta). No incluye a los trabajos
que estn recibiendo servicio.
N
s
= Nmero 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
- Condicin de estabilidad: Si el nmero 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
nmero de servidores.
- Ecuacin del nmero de trabajos: N = N
q
+ N
s
donde N, N
q
y N
s
son v.a. Tambin se
38
cumple para las medias: E[N] = E[N
q
] + E[N
s
]
- Ecuacin del tiempo: El tiempo que pasa un trabajo en la estacin de servicio es igual a la
suma del tiempo de espera en la cola ms el tiempo de servicio: R = W + S donde R, W y S
son v.a. Tambin se puede aplicar a los valores medios: E[R] = E[W] + E[S]
- Ley de Little: Permite relacionar el nmero de trabajos en un sistema con el tiempo que
pasa un trabajo en el sistema.
Nmero medio de trabajos en el sistema = tasa de llegada * tiempo medio de
respuesta. E[N] = E[R]
Proceso estocstico
Familia de variables aleatorias {X(t) / t T}
Toman valores en un espacio de etados.
Estn ordenadas en el conjunto T, normalmente el tiempo.
El espacio de estados y T pueden ser continuos o discretos.
Un proceso estocstico sobre un espacio discreto puede ser la cantidad de clientes en el
sistema. Uno sobre un espacio continuo podra ser el tiempo que pasan los clientes en las colas.
El proceso de Poisson
Proceso estocstico de tiempo continuo sobre un espacio de estados discreto.
Se utiliza para contar el nmero de sucesos N(t) que ocurren en el intervalo de tiempo [0,t].
Por ejemplo en nmero de llegadas que se pueden dar a un sistema hasta el tiempo t.
Tipos de procesos estocsticos que se suelen utilizar en la teora de colas:
a) Si el espacio de estados es finito o contable, cadena estocstica 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 anlisis es ms 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 distribucin exponencial. Esto es una restriccin.
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
estn restringidas a los estados vecinos.
f) Procesos de Poisson. Los tiempos de llegadas o de ocurrencias de un evento estn
distribuidos idntica e independientemente mediante una exponencial. El nmero de
llegadas en un periodo de tiempo sigue una distribucin exponencial. Son procesos de
llegadas de Poisson.
Propiedades funcin de densidad de Poisson
La distribucin del tiempo entre llegadas es exponencial.
Superposicin de procesos de POISSON.
Descomposicin de un proceso de POISSON.
La superposicin y descomposicin de procesos de Poisson tambin son procesos de Poisson.
Las salidas de una cola M/M/1 donde la tasa de llegadas e s menor que la tasa de servicio
tambin es un proceso de Poisson.
Procesos de Nacimiento-Muerte
39
- Anlisis general para calcular el comportamiento en funcin del tiempo (Rgimen
transitorio).
- Anlisis en rgimen permanente (Cuando t )
Sirven para modelar parte de un sistema donde los clientes llegan de uno en uno.
Hay dos tipos de anlisis: el comportamiento desde el arranque del sistema y el
comportamiento en la estabilizacin.
En la estabilizacin tendremos una probabilidad de estar en cada estado.
Con el anlisis operacional slo podemos estudiar el sistema cuando se ha estabilizado.
A partir del estudio de los procesos de nacimiento y muerte podremos estudiar las colas
M/M/m/B/k para cualquier valor de m, B y k.

40
Practica 1
Time
Saca como resultado el tiempo de ejecucin de otro comando. Este tiempo se da en tres cifras:
tiempo total desde que se lanz la ejecucin hasta que la termin, tiempo de CPU en estado
usuario y tiempo de CPU en estado sistema. Estado usuario es el estado normal de un
programa que ejecutemos. Estado sistema se trata de llamadas que el programa puede hacer al
S.O., rutinas del S.O. para servir fallos de pgina, excepciones, ...
Lo normal es que el tiempo en estado usuario sea mayor que en sistema. Lo contrario puede
indicar problemas del programa en los accesos a memoria o repetidas condiciones de
excepcin.
Times
Se trata de una funcin que se puede utilizar desde programas en C. Devuelve una estructura
con tiempos sobre la ejecucin. #include <sys/times.h>
Prof
Sirve para analizar el tiempo que los programas pasan en sus diferentes subprogramas.
Funciona muestreando peridicamente el contador del programa. Para utilizarlo hay que
compilar el programa con una opcin adicional -p. Luego al ejecutarse el programa se va
generando un fichero con datos de la ejecucin.
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 ejecucin total consumido por esta y todas las rutinas anteriores.
- Calls: nmero de veces que la rutina ha sido llamada.
- msec/call: segundos dividido por el nmero de llamadas. Da la media del tiempo
empleado en cada llamada (en ms.)
- Name: nombre de la rutina.
Gprof
Adems de la informacin que proporciona prof, gprof nos indica como se llaman los
subprogramas entre s (grafo de llamadas).Tambin aporta las veces que un subprograma llama
a otro y las que lo llaman sus padres.
Tambin necesita un compilado especial, la opcin -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,
nmero de llamadas, ... (similar a prof).
- Indice, es una mezcla de referencias para poder localizar funciones por nmero en
lugar de por nombre.
Practica 3
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 declaracin 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:
- Patrn: debo realizar las acciones?
- Acciones: como un subprograma en C
- El funcionamiento del programa: toma un fichero de entrada y para cada lnea comprueba
cada uno de los patrones que tiene el programa. Si el patrn se cumple en la lnea se
ejecutan las operaciones asociadas.
Es decir que los patrones son condiciones lgicas que se evalan en cada lnea del fichero que
se est procesando. Si esta condicin se cumple se ejecuta el subprograma que tiene asociado.
Ejemplo
awk $3>0 {printf $1,$2*$3} fichero.datos
- El patrn: $3>0 ser cierto en todas las lneas donde el tercer campo (secuencia de
caracteres separadas por blancos) sea mayor que 0.
- La accin: {printf $1,$2*$3} sacar por la salida estndar el primer campo de la lnea y la
multiplicacin de los campos 2 y 3.
- $0 indica toda la lnea que est procesando.
-Al procesar una lnea $n indica el campo n.
- La variable predefinida NF indica el nmero de campos que tiene la lnea que se est
tratando.
- La variable pedefinida NR indica el nmero de lneas 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 patrn, se supone cierto.
- Las acciones son opcionales: la accin por defecto es imprimir la lnea 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.
42
- Tiene la forma siguiente:
BEGIN {accin 1
accin 2
accin n}
patrn 1 {accin 1
accin n}
patrn n {accin 1; accin n}
END {accin1; accin n}
Patrones predefinidos
- Hay dos patrones predefinidos:
BEGIN Es cierto antes de procesar ninguna lnea. Sirve para hacer inicializaciones.
END Es cierto despus de haber procesado la ltima lnea. Sirve para tratar datos que se
han ido almacenando al recorrer el fichero.
Formato de salida
- La forma ms 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.
- Combinacin lgica 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 automticamente a 0.
- El contexto da el tipo.
- frase = $0 #La variable frase ser una cadena de caracteres que contiene toda una
lnea 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] = 1
Los comentarios se preceden de #.
Funciones pedefinidas
- Aritmticas:
- Races, potencias, logaritmos, nmeros aleatorios, ...
- Funciones sobre tiras de caracteres:
- Longitud, concatenar, sustituir, ...
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 travs de la funcin syntax.
Parmetros 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.

You might also like