apuntes de dec

166
APUNTES DE DISEÑO Y EVALUACION DE CONFIGURACIONES Asignatura Optativa de 3 er Curso (2º cuatrimestre) Ingeniería Técnica en Informática de Sistemas U.N.E.D mayo 2003

description

diseño y evaluación de configuraciones

Transcript of apuntes de dec

Page 1: apuntes de dec

APUNTES DE DISEÑO Y EVALUACION

DE CONFIGURACIONES

Asignatura Optativa de 3er Curso (2º cuatrimestre)Ingeniería Técnica en Informática de Sistemas

U.N.E.D

mayo 2003

Page 2: apuntes de dec
Page 3: apuntes de dec

Prefacio

Estos apuntes son un resumen del libro Evaluación y explotación de sistemas informáticos.

Puigianer, R.; Serrano, J. J. y Rubio, A., Ed. Síntesis. Madrid, 1995 libro recomendado para el

estudio de la asignatura optativa Diseño y Evaluación de Configuraciones que se imparte en

el 3er Curso (2º Cuatrimestre) de la Ingeniería Técnica en Informática de Sistemas.

Indicar que la sección 3.5 de estos apuntes también es materia de examen , a pesar de

que la reducción de grafos de carga no se explica en el libro recomendado de la asignatura.

Esperamos que estos apuntes le sirvan de ayuda en el estudio de la asignatura, sin otro

particular reciba un afectuoso saludo.

El equipo docente de la asignatura

Page 4: apuntes de dec
Page 5: apuntes de dec

INDICE

TEMA 1: INTRODUCCION

1.1 EVALUACION DEL RENDIMIENTO DE UN SISTEMA INFORMATICO.......................1

1.2 NECESIDAD DE LA EVALUACION DE LAS PRESTACIONES..................................1

1.3 MAGNITUDES QUE SE DEBEN MEDIR......................................................................2

1.3.1 Variables externas o perceptibles por el usuario..............................................31.3.2 Variables internas o del sistema.......................................................................31.3.3 Otras magnitudes relativas al comportamiento................................................4

1.4 MAGNITUDES QUE CARACTERIZAN LA CARGA......................................................5

1.4.1 Magnitudes que caracterizan cada componente de la carga...........................61.4.2 Magnitudes que caracterizan el conjunto de la carga. .....................................61.4.3 Magnitudes que caracterizan las cargas conversacionales ............................6

1.5 MAGNITUDES PARA CONTROLAR EL COMPORTAMIENTO ..................................6

1.6 SISTEMAS DE REFERENCIA......................................................................................8

1.6.1 Sistema por lotes o batch .................................................................................81.6.2 Sistema transaccional.......................................................................................91.6.3 Sistema interactivo o por demanda..................................................................9

1.7 TECNICAS DE EVALUACION DE UN SISTEMA INFORMATICO .............................10

TEMA 2: TECNICAS DE MEDIDA Y DE PRESENTACION DE LOS RESULTADOS

2.1 HERRAMIENTAS DE MEDIDA MONITORES............................................................13

2.1.1 Introducción.....................................................................................................132.1.2 Características ................................................................................................14

2.2 CONCEPTOS DE MEDIDA........................................................................................15

2.2.1 Detección de acontecimientos........................................................................152.2.2 Muestreo .........................................................................................................16

2.3 ESTRUCTURA DEL MONITOR.................................................................................17

2.4 CLASIFICACION DE LOS MONITORES ...................................................................18

2.4.1 Monitores software ..........................................................................................20

Page 6: apuntes de dec

Indice

2.4.2 Monitores hardware.........................................................................................262.4.3 Monitores híbridos ...........................................................................................282.4.4 Comparación entre monitores ........................................................................292.4.5 Monitores de ejecución de programas ...........................................................322.4.6 Monitor de contabilidad ...................................................................................32

2.5 PRESENTACIÓN DE LOS RESULTADOS...............................................................33

2.5.1 Tipos de variables ...........................................................................................332.5.2 Diagramas de Gantt........................................................................................332.5.3 Gráficos de Kiviat............................................................................................37

2.6 MONITORES DE REDES DE AREA LOCAL (LAN) ..................................................41

2.6.1 Tipos de monitores de LAN ............................................................................41

TEMA 3: CARACTERIZACION DE LA CARGA

3.1 INTRODUCCION........................................................................................................45

3.2 REPRESENTATIVIDAD DE UN MODELO DE CARGA ............................................47

3.2.1 Representatividad a nivel físico ......................................................................473.2.2 Representatividad a nivel virtual .....................................................................483.2.3 Representatividad a nivel funcional ................................................................493.2.4 Representatividad a nivel de comportamiento ...............................................50

3.3 CARGAS DE TEST O DE PRUEBA..........................................................................50

3.3.1 Cargas de test reales ......................................................................................513.3.2 Cargas de test sintéticas o reducidas ............................................................523.3.3 Cargas de test artificiales ejecutables ............................................................533.3.4 Cargas de test artificiales no ejecutables .......................................................59

3.4 TECNICAS DE IMPLANTACION DE LOS MODELOS DE LA CARGA.....................60

3.4.1 Fase de especificación ...................................................................................613.4.2 Fase de construcción......................................................................................613.4.3 Fase de validación ..........................................................................................62

3.5 ESTIMACION DE LA CARGA DE NUEVAS APLICACIONES....................................63

3.5.1 Modelo de grafos para nuevas aplicaciones ..................................................633.5.2 Simplificación de grafos de carga...................................................................64

TEMA 4: INTRODUCCION A LAS TECNICAS ANALITICAS: ANALISISOPERACIONAL

4.1 INTRODUCCION........................................................................................................71

4.2 ESTACION DE SERVICIO: VARIABLES OPERACIONALES ...................................72

4.2.1 Variables operacionales en una estación de servicio ....................................73

Page 7: apuntes de dec

Indice

4.3 REDES DE COLAS....................................................................................................74

4.3.1 Redes cerradas...............................................................................................754.3.2 Redes abiertas (Sistema transaccional) ........................................................774.3.3 Redes mixtas ..................................................................................................774.3.4 Resumen comparativo....................................................................................784.3.5 Medidas operacionales en redes....................................................................78

4.4 LEYES OPERACIONALES ........................................................................................80

4.4.1 Ley del flujo de salida ......................................................................................804.4.2 Ley de la utilización .........................................................................................814.4.3 Ley del equilibrio del flujo de trabajos..............................................................814.4.4 Ley de Little .....................................................................................................824.4.5 Ley del flujo forzado.........................................................................................87

TEMA 5: ANALISIS DE LOS CUELLOS DE BOTELLA

5.1 INTRODUCCION........................................................................................................97

5.2 DETECCION Y ELIMINACION DE CUELLOS DE BOTELLA....................................98

5.3 ANALISIS DE LOS CUELLOS DE BOTELLA............................................................99

5.3.1 Carga transaccional ......................................................................................1005.3.2 Carga batch o conversacional ......................................................................102

TEMA 6: SELECCIÓN Y CONFIGURACION DE COMPUTADORES:BENCHMARKING

6.1 INTRODUCCION......................................................................................................119

6.2 DEFINICIONES Y NECESIDAD DE LOS BENCHMARKS......................................120

6.3 FACTORES QUE INFLUYEN EN EL BENCHMARKING .........................................121

6.4 ERRORES COMUNES EN EL BENCHMARKING...................................................122

6.5 BENCHMARKING GAMES........................................................................................124

6.6 DESCRIPCION DE ALGUNOS BENCHMARKS......................................................125

6.6.1 Programas LINPACK....................................................................................1256.6.2 DHRYSTONE...............................................................................................1266.6.3 WHETSTONE...............................................................................................127

6.7 UNIDADES UTILIZADAS EN BENCHMARKING.......................................................128

6.8 UN EJEMPLO DE BENCHMARK: PCW ..................................................................129

Page 8: apuntes de dec

Indice

TEMA 7: MEJORA DE LAS PRESTACIONES DE UN SISTEMA: SINTONIZACION

7.1 INTRODUCCION......................................................................................................133

7.2 DEFINICION DE OBJETIVOS..................................................................................134

7.3 CARACTERIZACION DE LA CARGA.......................................................................136

7.4 SELECCION DE LA INSTRUMENTACION..............................................................136

7.4.1 Hardware .......................................................................................................1377.4.2 Software.........................................................................................................1407.4.3 Carga.............................................................................................................141

7.5 DISEÑO Y PLANIFICACIÓN DE LA SESIÓN DE MEDIDA......................................142

7.6 VALIDACION.............................................................................................................143

7.7 ESTUDIOS DE SINTONIZACION.............................................................................144

7.7.1 Equilibrar un sistema multiprogramado........................................................1447.7.2 Sintonización de un sistema interactivo........................................................152

.

Page 9: apuntes de dec

Tema 1

INTRODUCCION

1

1.1 EVALUACION DEL RENDIMIENTO DE UN SISTEMA

INFORMATICO

Se define evaluación del rendimiento de un sistema informático como la medida de

como un software determinado está utilizando el hardware con una determinada carga del

sistema. Por ejemplo, para un computador se entiende por carga del sistema a una

determinada combinación de programas.

La mayor dificultad que tiene la evaluación de las prestaciones de un sistema informático

se atribuye al hecho de que la carga real de un sistema informático cambia continuamente lo

que impide poder repetir la medida al no ser que se trabaje en un entorno controlado de

carga.

Todas las actividades que forman parte del estudio del comportamiento de un sistema

se denominan de evaluación de sus prestaciones.

1.2 NECESIDAD DE LA EVALUACION DE LAS PRESTACIONES

La necesidad de evaluar las prestaciones de un sistema informático ha surgido como

una consecuencia natural del aumento de la potencia y de la complejidad de los sistemas.

Esta evaluación no es una tarea sencilla, ya que ha de tener en cuenta muchos y variados

aspectos del hardware, del software y de las aplicaciones que se han de llevar a cabo en el

sistema informático.

La evaluación de un sistema informático sirve para:

• Comprobar que el funcionamiento del sistema es el correcto. Detección y

eliminación de los denominados “cuellos de botella”.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 10: apuntes de dec

TEMA 1: Introducción

2

• Influir en las decisiones de diseño, implantación, compra y modificación de los

sistemas informáticos. Es decir en todas las etapas de su ciclo de vida.

• Comparar un cierto número de diseños alternativos del sistema (diseñador de

sistemas).

• Análisis del sistema más adecuado para ejecutar un determinado número de

aplicaciones (administrador de sistemas).

• Planificación de la capacidad, es decir, predicción del comportamiento del

sistema con nuevas cargas.

Por lo tanto es necesario evaluar un sistema informático cuando se quiere:

n Diseñar una máquina.

n Diseñar un sistema informático.

n Seleccionar y configurar un sistema informático.

n Planificar la capacidad de un sistema informático.

n Sintonizar o ajustar un sistema informático.

n Caracterizar y predecir la carga.

El comportamiento de un sistema es muy dependiente de la carga aplicada al mismo.

Debido al crecimiento vegetativo de la carga de un sistema informático se produce una

disminución de las prestaciones del mismo. Para evitar esta disminución es necesario

ajustar o cambiar algunos de los parámetros del sistema operativo. En ciertos casos si el

sistema no se puede cambiar hay que intentar mejorar el comportamiento mediante la

modificación de la carga (programas).

1.3 MAGNITUDES QUE SE DEBEN MEDIR

Para evaluar el comportamiento de un sistema es necesario disponer de una serie de

medidas cuantitativas o parámetros que:

1) Caracterizan el comportamiento tanto del hardware como del software del

computador.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Underline
Page 11: apuntes de dec

Diseño y evaluación de configuraciones

3

2) Hacen referencia a cómo el usuario (visión externa) y el responsable del

sistema (visión interna) ven su comportamiento.

Estas magnitudes o parámetros están relacionadas con tres tipos de medidas

correspondientes a:

• Consumo de tiempos.

• Utilización de recursos o dispositivos.

• Trabajo realizado por el sistema o componentes del mismo.

1.3.1 Variables externas o perceptibles por el usuario.

Productividad (Throughput), es la cantidad de trabajo útil ejecutado por unidad de

tiempo1 (u.t.) en un entorno de carga determinado. Normalmente se mide en (trabajos/hora)

o en (transacciones/segundo).

Capacidad, es la máxima cantidad de trabajo útil que se puede realizar por u.t. en un

entorno de carga determinado.

Tiempo de respuesta, es el tiempo transcurrido entre la entrega de un trabajo o una

transacción al sistema y la recepción del resultado o la respuesta.

1.3.2 Variables internas o del sistema

Factor de utilización de un componente, es el porcentaje de tiempo durante el cual un

componente del sistema informático (CPU, dispositivo de E/S, canal, etc.) ha sido realmente

usado.

Solapamiento de componentes, es el porcentaje de tiempo durante el cual dos o más

componentes del sistema han sido utilizados simultáneamente.

Overhead, es el porcentaje de tiempo que los distintos dispositivos del sistema (CPU,

disco, memoria, etc) han sido utilizados en tareas del sistema no directamente imputables a

ninguno de los trabajos en curso.

1 Por unidad de tiempo u.t. se puede entender µs, ms, s u hora.

mio
Underline
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 12: apuntes de dec

TEMA 1: Introducción

4

Factor de carga de multiprogramación, es la relación entre el tiempo de respuesta de un

trabajo en un determinado entorno de multiprogramación y su tiempo de respuesta en

monoprogramación.

Factor de ganancia de multiprogramación, es la relación entre el tiempo total necesario

para ejecutar un conjunto de programas secuencialmente en monoprogramación y en

multiprogramación.

Frecuencia de fallo de página, es el número de fallos de página que se producen por

unidad de tiempo en un sistema de memoria virtual paginada.

Frecuencia de swapping, es el número de programas expulsados de memoria por unidad

de tiempo a causa de falta de espacio o con el fin de permitir su reorganización para

recuperar espacio en ella o para disminuir la paginación.

1.3.3 Otras magnitudes relativas al comportamiento

Fiabilidad es una función del tiempo definida como la probabilidad que el sistema trabaje

correctamente a lo largo de un intervalo de tiempo dado. Se mide por la probabilidad de fallos

por unidad de tiempo, o por el tiempo medio entre fallos.

Disponibilidad, es una función del tiempo definida como la probabilidad que el sistema

esté trabajando correctamente y por lo tanto se encuentre disponible para realizar sus

funciones en el instante considerado t.

Seguridad, es la probabilidad que el sistema esté realizando correctamente sus

funciones o parado de forma tal que no perturbe el funcionamiento de otros sistemas ni

comprometa la seguridad de las personas relacionadas con él.

Performabilidad, es una función del tiempo definida como la probabilidad que las

prestaciones del sistema estén por encima de un cierto nivel en un instante determinado.

Mantenibilidad, es la probabilidad que un sistema averiado pueda ser reparado y devuelto

al estado operacional dentro de un periodo de tiempo determinado.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 13: apuntes de dec

Diseño y evaluación de configuraciones

5

1.4 MAGNITUDES QUE CARACTERIZAN LA CARGA

Se denomina carga de prueba a la carga usada en el estudio de las prestaciones de un

sistema informático. Se distinguen dos tipos de carga:

• Carga real, se observa en un sistema durante su funcionamiento normal. Su

principal inconveniente es que no permite repeticiones para eliminar los errores

de medición, por lo que es difícilmente utilizable como carga de prueba.

• Carga sintética esta constituida por un conjunto de programas extraídos o no

de la carga real del sistema informático que la reproduce de forma compacta.

Puede utilizarse repetidamente y puede modificarse sin afectar a la

operatividad del sistema.

En muchos sistemas la evaluación se suele realizar en un sistema distinto (pero

equivalente) al real, es decir, creándose dos sistemas paralelos.

1.4.1 Magnitudes que caracterizan cada componente de la carga.

Tiempo de CPU por trabajo, es el tiempo total de CPU necesario para ejecutar un trabajo

(programa, transacción, etc) en un sistema determinado. Es una función directa del número

de instrucciones que se ejecutan para realizar ese trabajo, del volumen de datos procesados

y de la velocidad del procesador.

Número de operaciones de E/S por trabajo, es el número total de operaciones de E/S

que requiere la ejecución de un trabajo.

Características de las operaciones de E/S por trabajo, hacen referencia al soporte (cinta,

disco, etc.) y, en el caso de discos, a la posición que ocupa el archivo sobre el que se

efectúan.

Prioridad, es la que el usuario asigna a cada uno de los trabajos que procesa el sistema.

Memoria, es la que requiere ocupar, para su ejecución, un trabajo determinado. Puede

ser constante o variable.

Localidad de las referencias, es el tiempo en que todas las referencias hechas por un

trabajo permanecen dentro de una página (segmento) o conjunto de páginas (segmentos).

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 14: apuntes de dec

TEMA 1: Introducción

6

1.4.2 Magnitudes que caracterizan el conjunto de la carga.

Tiempo entre llegadas, es el tiempo entre dos requerimientos sucesivos para un servicio

(ejecución de un trabajo o transacción) del sistema.

Frecuencia de llegada, es el número medio de llegadas de nuevas peticiones de

ejecución que se producen por unidad de tiempo. Es la inversa del tiempo entre llegadas.

Distribución de trabajos, define la proporción existente entre las ejecuciones de los

distintos trabajos que constituyen la carga.

1.4.3 Magnitudes que caracterizan las cargas conversacionales

Tiempo de reflexión del usuario, es el tiempo que el usuario de un terminal de un sistema

interactivo necesita para generar una nueva petición al sistema (tiempo de leer la respuesta

previa, de pensar en la nueva acción que se vaya a formar y de teclearla).

Número de usuarios simultáneos, es el número de usuarios interactivos que trabajan

simultáneamente sobre el sistema en un instante dado.

Intensidad del usuario, es la relación entre el tiempo de respuesta de una petición y el

tiempo de reflexión del usuario.

1.5 MAGNITUDES PARA CONTROLAR EL COMPORTAMIENTO

Algunas de las modificaciones que se pueden introducir en un sistema para mejorar su

comportamiento son:

n Ajuste de los parámetros del sistema operativo

• Tamaño del quantum, es la cantidad de tiempo de uso ininterrumpido de la

CPU que un sistema de tiempo compartido asigna a los diferentes trabajos.

Si el quantum es demasiado grande se favorece a los trabajos con mucho

uso de la CPU, mientras que si es demasiado pequeño se puede introducir

un overhead importante debido a los continuos cambios de contexto de un

programa a otro cada vez que se agota el quantum.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 15: apuntes de dec

Diseño y evaluación de configuraciones

7

• Prioridad interna, es el nivel inicial de prioridad interna que recibe un

programa en función de la prioridad externa asignada.

• Factor de multiprogramación, es el número máximo de trabajos que están

simultáneamente en memoria principal y, por lo tanto, que tienen opción a

utilizar la CPU y los demás recursos activos del sistema. Cuanto mayor

sea este valor tanto mejor será el aprovechamiento de todos los recursos

del sistema, aunque también aumentará el overhead.

• Tamaño de la partición de memoria, es la cantidad fija de memoria principal

asignada a una cola de trabajos.

• Tamaño de la ventana, es el intervalo de tiempo durante el cual el sistema

toma medidas para determinar el conjunto de trabajo de un programa en un

entorno de memoria virtual paginada que use esa política.

• Máxima frecuencia de fallo de página, es el valor de la frecuencia de fallo

de pagina por encima del cual se produce un excesivo overhead. A partir de

este valor de frecuencia se efectúa la suspensión o swapping de alguno de

los trabajos en curso.

• Número máximo de usuarios simultáneos

n Modificación de las políticas de gestión del sistema operativo, como por ejemplo

cambiar las prioridades de las diferentes tipos de tareas.

n Equilibrado de la distribución de cargas, se pretende utilizar de la forma más

uniforme posible todos los dispositivos del sistema informático. Cuando el uso de

los mismos está desequilibrado se deben disponer los cambios necesarios para

lograr el equilibrio deseado. Este tipo de corrección acostumbra, en muchos

casos, a proporcionar mejoras espectaculares en el comportamiento del sistema.

n Sustitución o ampliación de los componentes del sistema, cuando los métodos

anteriores no funcionan se debe modificar la configuración del sistema, bien sea

sustituyendo determinados elementos por otros de mayor capacidad o rapidez, o

bien sea por aumento del número de dispositivos que constituyen la configuración

del sistema. Es importante darse cuenta de que la ampliación de la configuración

debe hacerse de tal forma que se despeje el posible cuello de botella que se pueda

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 16: apuntes de dec

TEMA 1: Introducción

8

haber detectado, ya que de lo contrario el comportamiento conjunto del sistema

ampliado no variará de forma significativa.

n Modificación de los programas, de tal forma que su ejecución promedio requiera

de menos recursos. Esto se puede conseguir bien mediante recodificación de los

caminos del programa recorridos con mayor asiduidad, o bien por un montaje que

agrupe en la misma página o segmento aquellos módulos del programa que deben

coexistir en memoria para la ejecución del programa, etc. Hay que destacar que

este método provoca la modificación de la carga del sistema, normalmente se

considera la carga como un dato del problema que no se puede modificar.

1.6 SISTEMAS DE REFERENCIA

Se distinguen tres tipos de sistemas de referencia o tipos de funcionamiento de un

sistema informático a la hora del estudio de las prestaciones y su evaluación:

n Sistema por lotes (batch).

n Sistema transaccional.

n Sistema interactivo o por demanda.

1.6.1 Sistema por lotes o batch

Básicamente consiste en que el computador ejecuta una serie de programas que

previamente el responsable del sistema deja almacenados en memoria, es dicha persona

quién decide los trabajos que deben estar en ejecución en cada instante. Por lo tanto la

planificación interna del sistema operativo está ayudada por la externa humana.

Estos trabajos realizan ciclos de uso de la CPU y de los discos de forma continua hasta

que finalizan. Algunos índices de las prestaciones de estos sistemas son los siguientes:

n Tiempo de respuesta (Turnaround time), es el tiempo que transcurre desde

que se lanza la ejecución de un trabajo hasta que se termina.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 17: apuntes de dec

Diseño y evaluación de configuraciones

9

n Productividad medida en trabajos por u.t.

1.6.2 Sistema transaccional

Un sistema transaccional es aquél en que un conjunto de terminales remotos

conectados al sistema interaccionan con un conjunto determinado de programas, cada una

de las interacciones constituye lo que se denomina una transacción. Ejemplos: el sistema

informático de un banco, o de reserva de billetes o el que recibe medidas de un satélite.

En sistemas de este tipo, el sistema de planificación interna del sistema operativo ha de

ser capaz de gestionar las peticiones que le llegan al sistema no estando ayudado en forma

alguna por la planificación humana externa ya que desde cada terminal se tiene la sensación

de ser el dueño absoluto del sistema y se tiene la posibilidad de lanzar cualquier transacción

en cualquier instante.

Un sistema de este tipo queda definido por el flujo de transacciones que le llega, siendo

su índice de prestaciones característico el tiempo de respuesta tr

tr = tra + ten + tro

Donde:

• tra es el tiempo de reacción, que se define como el tiempo que transcurre

desde que la transacción llega al sistema hasta que comienza su

ejecución.

• ten es el tiempo de ejecución, que se define como el tiempo que transcurre

desde que el sistema comienza la ejecución de la transacción hasta que

termina.

• tro es el tiempo de retorno, que se define como el tiempo que transcurre

desde que finaliza la ejecución hasta que, eventualmente, se completa la

respuesta hacia el usuario.

1.6.3 Sistema interactivo o por demanda

Un sistema interactivo es aquél en que los usuarios acceden a él desde terminales

remotos teniendo acceso a la totalidad del sistema operativo. En estos sistemas, un usuario

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 18: apuntes de dec

TEMA 1: Introducción

10

desde un terminal, da una orden al terminal que pasa a procesarse por el conjunto

CPU+discos y transcurrido un cierto tiempo produce una respuesta en el terminal. Se

trabajará de modo interactivo de acuerdo con el siguiente ciclo:

ORDEN→RESPUESTA→ ORDEN→RESPUESTA→ ORDEN→RESPUESTA→....

En estos sistemas no existe planificación humana que ayude a la planificación del

sistema operativo, además queda definido por los siguientes índices:

n Número de usuarios que tiene conectados.

n Tiempo de reflexión de los usuarios, es el tiempo que transcurre desde que

el usuario recibe la respuesta y envía otra nueva orden.

Además los índices de prestaciones característicos son: el tiempo de respuesta y la

productividad, medida esta última en peticiones por u.t.

1.7 TECNICAS DE EVALUACION DE UN SISTEMA INFORMATICO

Se denominan técnicas de evaluación a los métodos y herramientas que permiten

obtener los índices de prestaciones de un sistema que está ejecutando una carga dada con

unos valores determinados de parámetros del sistema. Se distinguen tres tipos de técnicas:

n Monitorización. Los monitores son unas herramientas de medición que

permiten seguir el comportamiento de los principales elementos de un

sistema informático cuando éste se haya sometido a una carga de trabajo

determinada. Estas herramientas hacen un seguimiento de lo que sucede

en el sistema, es lo que se denomina como monitorización.

n Modelado. Es la herramienta que hay que utilizar cuando se trata de evaluar

el comportamiento de un sistema en el que hay algún elemento que no está

instalado. El modelado se puede realizar de dos formas:

• Métodos analíticos que proporcionan las teorías de colas. Se basan

en la resolución mediante algoritmos aproximados de las

ecuaciones matemáticas que representan el equilibrio existente en

los eventos que se producen en el sistema. Su principal

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 19: apuntes de dec

Diseño y evaluación de configuraciones

11

inconveniente es la limitación para tratar determinadas estructuras

de colas que existen en los sistemas informáticos.

• Simulación. Consiste en la construcción de un programa que

reproduce el comportamiento temporal del sistema, basándose en

sus estados y sus transiciones. Los resultados se obtienen por

extracción de estadísticas del comportamiento simulado del

sistema. Requieren de más tiempo de cálculo y esfuerzo de puesta

a punto que los métodos analíticos.

La principal dificultad del modelado reside en la obtención de datos lo

suficientemente precisos para ejecutar el modelo y obtener resultados con

un grado de aproximación adecuado.

n Benchmarking. Se trata de un método bastante frecuente de comparar

sistemas informáticos frente a una carga característica de una instalación

concreta. La comparación se realiza básicamente a partir del tiempo de

ejecución. Las principales dificultades que plantea este método están

relacionadas con la utilización de una carga que sea lo suficientemente

reducida para ser manejable y lo suficientemente extensa para ser

representativa.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 20: apuntes de dec

TEMA 1: Introducción

12

Page 21: apuntes de dec

Tema 2 TECNICAS DE MEDIDA Y DEPRESENTACION DE LOS RESULTADOS

13

2.1 HERRAMIENTAS DE MEDIDA MONITORES

Como se ha visto en el primer tema, una de las tareas más importantes en el proceso

de evaluación y/o diseño de un sistema informático es la obtención de datos que

“representen” al sistema (actual y futuro). Para ello se hace necesario el uso de

herramientas de medida denominadas monitores.

2.1.1 Introducción

Un monitor es una herramienta utilizada para observar la actividad de un sistema

informático mientras es utilizado por los usuarios y para cuantificar los resultados de dicha

observación.

En general, los monitores observan el comportamiento del sistema, recogen datos

estadísticos de la ejecución de los programas, analizan los datos recogidos y presentan los

resultados.

Se define monitorización como el seguimiento de la actividad realizada por un sistema

informático. Se ha de tener en cuenta, que en informática, puesto que no es posible repetir

las mismas condiciones de carga en los mismos instantes el resultado de una medición será

distinto unas veces de otras, es decir, no se da la repetibilidad de la medida.

La información aportada por el monitor puede ser útil para:

• El usuario y el administrador, ya que les permite conocer toda una serie de

características del sistema (capacidad, posibilidad de ampliación,

planificación, etc.).

• El propio sistema, para la realización de la adaptación dinámica de la carga.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 22: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

14

2.1.2 Características

Se distinguen dos tipos de monitores:

n Monitores software pueden ser programas o conjuntos de instrucciones

(sondas software), capaces ambos de detectar acontecimientos y estados

del sistema.

n Monitores hardware son dispositivos electrónicos que deben conectarse a

puntos específicos del sistema (mediante sondas electrónicas) para

detectar señales que caracterizan los fenómenos que deben observarse.

La calidad de un monitor viene determinada por las siguientes características:

• Sobrecarga o interferencia. La energía del sistema consumida por el

instrumento de medida debe ser tan poca como sea posible de forma que

la perturbación introducida por el instrumento no altere los resultados de la

observación. Los monitores hardware presentan este peligro en sus puntos

de conexión, para evitarlo utilizan sondas electrónicas de muy alta

impedancia. Por otro lado los monitores software aumentan la carga del

sistema y alteran por consiguiente su comportamiento, por lo que se debe

tratar de minimizar al máximo este efecto.

• Precisión. Es el error que puede afectar al valor de los datos recogidos.

Estos errores son debidos a diferentes causas: la interferencia del propio

monitor, una incorrecta instalación o utilización, el número de dígitos para

representar la medición, etc.

• Resolución. Es la capacidad de la herramienta de separar dos

acontecimientos consecutivos en el tiempo. También se define como la

máxima frecuencia a la que se pueden detectar y registrar correctamente

los datos.

• Ambito o dominio de medida, hace referencia al tipo de acontecimientos

que puede detectar, es decir, a las características que puede observar y

medir.

• Anchura de entrada. Es el número máximo de bits que el monitor puede

extraer en paralelo y procesar cuando se produce un acontecimiento.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 23: apuntes de dec

Diseño y evaluación de configuraciones

15

• Capacidad de reducción de datos. Es la capacidad que puede tener el

monitor de analizar, procesar y empaquetar datos durante la monitorización

para un mejor tratamiento y compresión de los mismos y para reducir el

espacio necesario para almacenar los resultados.

• Compatibilidad. El hardware y el software de monitorización debe ser

fácilmente adaptable a cualquier entorno y requerimiento de la aplicación.

• Coste (adquisición, instalación, mantenimiento, formación y operación).

• Facilidad de instalación y de utilización

2.2 CONCEPTOS DE MEDIDA

La mesurabilidad de un sistema informático se puede definir como una función de la

información que se puede obtener con un monitor y del coste de las mediciones. La

mesurabilidad de un sistema puede variar entre dos extremos, el primero la posibilidad de

poder medir cada componente individual del sistema con el nivel de detalle deseado y el

segundo la total inaccesibilidad del sistema.

Un acontecimiento es un cambio del estado del sistema, una forma de recoger datos de

determinadas actividades del sistema es capturar todos los acontecimientos asociados a los

cambios de estado y registrarlos en el mismo orden en que se producen. En este caso la

medición (observación) se efectúa por detección de acontecimientos.

Otra técnica de medición que interfiere menos en el comportamiento del sistema es la

del muestreo, que consiste en interrumpir el sistema a intervalos regulares o aleatorios para

detectar el estado de algunos de sus componentes.

2.2.1 Detección de acontecimientos

Se define el estado de un sistema informático como el establecido por los valores de

todas sus memorias, normalmente se restringe el estado a un conjunto limitado de

memorias del sistema.

Por otra parte se ha definido un acontecimiento como un cambio de estado del sistema.

En general se distinguen dos tipos de acontecimientos:

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 24: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

16

• Acontecimiento software, si el acontecimiento está asociado con una

función de un programa. Ejemplo: un programa inicia una operación de E/S.

• Acontecimiento hardware, consiste en la aparición de una o más señales

en los circuitos de un componente del sistema y es independiente del

programa que se esté ejecutando en ese momento. Ejemplo: los

movimientos del brazo de un disco. Muchos acontecimientos hardware

llevan asociados un acontecimiento software.

La técnica de detección de acontecimientos se basa en la intercepción y registro de

todos los acontecimientos de tipos determinados. Por lo tanto está técnica sólo se deberá

utilizar si es necesario conocer la secuencia de estos acontecimientos o el número de veces

que se han producido en un intervalo determinado.

El principio de detección de acontecimientos software es el de insertar un código

suplementario (traps) en lugares determinados del sistema operativo. Es decir se trata de

interrupciones controladas por programa.

Cuando se produce un acontecimiento que debe detectarse, este código transferirá el

control a la rutina de tratamiento, que almacenará sus datos significativos, junto con el

instante de aparición, en un área tampón, para posteriormente grabarlos en disco y devolver

el control al sistema operativo. El conjunto de todos los datos registrados de esta forma se

denomina una traza de acontecimientos.

En sistemas conducidos por interrupciones, la dirección de la rutina de tratamiento de

una interrupción determinada debe sustituirse por la dirección de inicio de la rutina de

medición. De esta forma, cada vez que se produce una interrupción, está se detecta y se

leen los contenidos de determinadas posiciones de memoria o tablas. Estos datos, junto con

el instante de aparición, se registrarán en cinta o disco antes de devolver el control al sistema

operativo para el tratamiento de la interrupción.

2.2.2 Muestreo

El muestreo es una técnica estadística que consiste en examinar una parte de la

población denominada muestra. A partir de ella, es posible estimar con un grado de precisión

elevado, algunos de los parámetros estadísticos que caracterizan a la población.

Esta técnica presenta las siguientes ventajas:

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 25: apuntes de dec

Diseño y evaluación de configuraciones

17

• Produce un volumen de datos mucho más pequeño que la técnica de

detección de acontecimientos, por lo que se reduce y simplifica el análisis

de los datos.

• El proceso de recogida de datos perturba menos al sistema

El muestreo puede usarse con dos objetivos distintos:

1) Evaluar las fracciones de un intervalo de tiempo dado que cada

componente del sistema ha permanecido en distintos estados. Se ha de

tener en cuenta la precisión de los resultados viene determinada por el

tamaño de la muestra. Además, se supone que la carga es estacionaria

durante largos periodos de tiempo.

2) Seguir la evolución de un sistema y predecir su comportamiento futuro.

2.3 ESTRUCTURA DEL MONITOR

En la Figura 2.1 se representa el esquema conceptual del monitor de un sistema

informático.

Sistema informático

Interfaz deinstrumentación

Selector o filtro

Procesador

Registrador

Analizador

Figura 2.1: Esquema conceptual del monitor de un sistema informático

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 26: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

18

En dicho esquema se distinguen los siguientes elementos:

• Interfaz de instrumentación, implementa la conexión entre el monitor y el

sistema, permite acceder a los puntos del sistema que contienen

información relevante para la monitorización.

• Selector o filtro, permite realizar una captura selectiva de las actividades

sondeadas de acuerdo con los diferentes intereses del usuario. Además

genera variables indirectas a partir de las variables medidas.

• Procesador tiene como misión realizar las comprobaciones de los

elementos del sistema que van a ser analizados o medidos.

• Registrador el resultado de las comprobaciones se graba en un medio de

almacenamiento para poder ser analizado e interpretado y así obtener los

resultados deseados.

• Analizador se encarga de analizar los datos almacenados.

Algunas veces la fase de análisis se realiza en paralelo con la detección y captura de

eventos, en ese caso se tiene un sistema de medida en tiempo real.

2.4 CLASIFICACION DE LOS MONITORES

Los monitores se pueden clasificar atendiendo a tres aspectos: forma de implantación,

mecanismo de activación y forma de mostrar los resultados:

Según su implantación se clasifican en:

n Monitores software que son programas o ampliaciones del sistema

operativo que acceden al estado del sistema, informando al usuario sobre

dicho estado.

n Monitores hardware, son dispositivos electrónicos que se conectan a

determinados puntos del sistema, donde se encargan de detectar

determinados niveles o señales eléctricas que caracterizan la evolución del

sistema.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 27: apuntes de dec

Diseño y evaluación de configuraciones

19

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

intentando combinar las ventajas de una y otra.

Según su mecanismo de activación se clasifican en:

n Monitores de eventos o acontecimientos son aquellos que se activan por la

aparición de ciertos eventos. Si el evento se da con frecuencia la

sobrecarga que se produce es elevada.

n Monitores de muestreo, son aquellos que se activan a intervalos de tiempo

fijos o aleatorios mediante interrupciones de reloj. La frecuencia de

muestreo viene determinada por la frecuencia del estado que se desea

analizar y por la resolución que se desee conseguir.

Según su forma de mostrar los resultados se clasifican en:

n Monitores en tiempo real que constan de un módulo analizador que

procesa los datos a medida que los recibe.

n Monitores batch, que primero recogen la totalidad de la información para

posteriormente analizarla.

Las tres clasificaciones pueden utilizarse de manera conjunta, así pues, un monitor

puede clasificarse como software, conducido por muestreo y con análisis en batch de los

resultados.

Aunque hay que indicar que la clasificación de los monitores según su implantación es la

más habitual. En la Tabla 2.1 se muestra cómo realizan cada una de las funciones los

monitores software, hardware e híbrido.

Función Monitor software Monitor Hardware Monitor HíbridoInstrumentación Traps

InterceptaciónMuestreo

SondasConexión permanente

TrapsSondas

Selector Programa ProgramaLógica

ProgramaLógica

Procesador Programa LógicaPrograma

LógicaPrograma

Registrador MemoriaDisco

ContadorMemoriaDisco

ContadorMemoriaDisco

Analizador Programa Programa Programa

Tabla 2.1: Forma de realización de las funciones según el tipo de monitor

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 28: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

20

2.4.1 Monitores software

Son los más adecuados para monitorizar los sistemas operativos, las redes y las bases

de datos, así como las aplicaciones que las utilizan.

Cada activación del monitor implica la ejecución de varias instrucciones por parte de la

CPU del sistema que está analizando, lo que puede provocar una gran sobrecarga en el

sistema si la causa de la activación se produce con gran frecuencia.

La aportación de código que necesitan los monitores software se puede realizar de tres

formas distintas:

1) Por adición de un nuevo programa, es el más fácil de utilizar y de eliminar

cuando ya no se necesite. Además se garantiza la integridad del sistema

operativo y del propio programa que se va a medir.

2) Por modificación del software que se va a medir, se basa en la utilización

de sondas software, que son conjuntos de instrucciones insertadas en

puntos clave del programa que debe observarse. Cada sonda debe

detectar la llegada del flujo de control al punto crítico donde está situada,

con lo que se puede determinar el número de veces y los instantes que se

pasa por ese lugar, a la vez que el contenido de ciertas variables cuando se

está ejecutando esa zona de código.

3) Por modificación del sistema operativo, se utiliza cuando determinadas

variables que se deben medir sólo están disponibles para el sistema

operativo, como pueden ser relojes de tiempo real, estado de colas del

planificador, etc.

Puesto que el monitor software necesita recursos del sistema (consume tiempo de

CPU, ocupa memoria y realiza operaciones de E/S), se debe vigilar el cumplimiento de los

siguientes requerimientos:

• La extracción de datos del sistema debe realizarse de forma cualitativa y

cuantitativa.

• Las modificaciones del sistema operativo deben ser las mínimas posibles.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 29: apuntes de dec

Diseño y evaluación de configuraciones

21

• La alteración de las características y de las prestaciones de la carga no

debe ser apreciable.

Se debe llegar a un compromiso entre la precisión de las medidas y la interferencia que

éstas pueden ocasionar en el sistema, ya que en general si se necesita una gran precisión

en los resultados, se tendrán que realizar un gran número de observaciones, lo que

provocará una sobrecarga del sistema que hará que las medidas obtenidas no sean fiables.

Por el contrario un número de medidas reducido pueden no llegar a ser fiables.

Una característica deseable en un monitor es la posibilidad de ser

habilitado/deshabilitado según convenga, de tal forma que se evite sobrecargar al sistema

cuando no se utilice.

En general la prioridad del monitor debe ser superior a la de los acontecimientos que

debe observar.

Puesto que para el funcionamiento de un monitor software se requiere la ejecución de

instrucciones del propio código del sistema analizado, el monitor no podrá detectar

acontecimientos que se produzcan por debajo del tiempo de ejecución de una instrucción ni

acceder a acontecimientos que no se reflejen en alguna posición de memoria del sistema

que sea accesible por la ejecución de una instrucción.

La mayoría de los monitores están escritos en lenguajes de programación de bajo nivel,

tales como ensamblador o C, para mantener al mínimo la sobrecarga. En general es

conveniente que el monitor software y el sistema operativo estén escritos en el mismo

lenguaje de programación.

2.4.1.1 Monitores software conducidos por acontecimientos

Existen dos tipos de instrumentación en los monitores conducidos por acontecimientos

o eventos:

• Por Traps o segmentos de código que se insertan en determinadas partes

del programa. Cuando el flujo de control llega a ellos, se ejecutan,

realizando determinadas acciones encaminadas a señalar la aparición de

ese evento y a extraer la información que lleva asociada.

• Por interceptación de las interrupciones, que desvían el tratamiento de la

interrupción, redireccionando dicho tratamiento a una zona de código donde

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 30: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

22

se halla el monitor, el cual contabiliza el tipo de interrupción y recopila la

información asociada al acontecimiento que ha provocado la interrupción.

2.4.1.2 Monitores software de muestreo

Un monitor de muestreo interfiere mucho menos en el funcionamiento del sistema que

un monitor conducido por eventos. En este tipo de monitores es posible variar la frecuencia

de muestreo y el número de variables que hay que medir en cada instante de muestreo.

El procedimiento de extracción de datos utiliza un reloj interno que provoca una

interrupción del sistema a intervalos regulares de tiempo para extraer los datos del estado del

mismo.

En ocasiones los datos se recogen a intervalos aleatorios aunque con una longitud

media fija. En general se debe evitar un sincronismo entre muestreo y eventos que impida al

monitor detectar todos los estados del sistema.

El programa de extracción de datos debe ser el de mayor prioridad y se debe ejecutar

con las interrupciones inhibidas. En consecuencia, dicho programa debe ser muy rápido

(poca demanda de CPU), con el fin de no interferir en las prestaciones del sistema.

Los datos que se deben tomar son de dos tipos:

• Acerca de las actividades suspendidas cuando se provocó el disparo del

temporizador.

• Acerca de las actividades en progreso, como el estado de los canales,

contenido de ciertas áreas de memoria, etc.

Los datos recolectados se deben almacenar de la forma más compacta posible,

generalmente se subdividen en grupos temporales, formando los que se denominan

registros lógicos, que son un conjunto de datos recogidos durante un determinado periodo de

tiempo.

♦ Ejemplo 2.1: Se desea conocer el estado de la CPU y del canal de un determinado sistema

informático cada 333 ms, suponiendo un periodo de extracción de 8 horas (un día), (a) ¿Cuál sería el

número de muestras recogidas durante el periodo de extracción?. (b) Por otra parte si se consideran

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 31: apuntes de dec

Diseño y evaluación de configuraciones

23

registros lógicos de 5 minutos ¿Cuantos registros se necesitarían para almacenar la información

recogida en el periodo de extracción y cuantas muestras tendría cada registro lógico?

Solución:

(a) El periodo de extracción es Te=8 horas= 8·60·60·1000 ms=2.88·105 ms. Puesto que el periodo de

muestreo es de T=333 ms, el número de muestras recogidas durante el periodo de extracción Ne sería:

86486333

10·88.2 5

===T

TN e

e muestras

(b) El número de registros lógicos R necesarios es:

96)(5

)/(60)·(8 ===minutos

horaminutoshorasTT

RR

e registros lógicos

El número de muestras NR de cada registro lógico es:

900)/(333

)(1000·60·5 ===muestrams

msTT

N RR muestras

Un monitor software debe ser capaz de dar una duración de los fenómenos observados,

es decir, de dar medidas temporales. Esto lo puede realizar una herramienta software de dos

formas:

1) Por muestreo. Que da medidas estadísticas en cuanto a tiempos medios

de utilización de recursos, a partir de los cuales se pueden realizar

medidas indirectas de otro fenómenos.

2) Realizando medidas directas. Con este método se puede dar la duración

“exacta” de los fenómenos, así como la traza de acontecimientos del

sistema, presenta el inconveniente de ser más difícil de implantar.

Ambos tipos de monitores software necesitan de un reloj en el sistema. Una forma muy

usual de realizar este reloj es utilizar una posición de la memoria principal o un registro

interno del procesador como un contador binario que es incrementado (o decrementado) por

un dispositivo hardware capaz de generar pulsos a intervalos regulares (generalmente un

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 32: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

24

cristal de cuarzo). La frecuencia de este reloj da la resolución del sistema, es decir, la

mínima cantidad de tiempo medible por él.

Muchas veces existen relojes paralelos que se inicializan cuando se arranca un proceso,

salvando el estado de estos relojes cuando el proceso se suspende y recargándolo cuando

éste se carga de nuevo. Cuando el proceso concluye, en este reloj se tiene el tiempo de

ejecución del mismo. Lógicamente, el manejo de estos relojes corre a cargo del sistema

operativo. Existen algunas causas que hacen que este método no sea del todo exacto:

n Existe un retardo variable entre el comienzo y el final de la actividad y el

arranque y la parada del reloj lógico asociado.

n El sistema operativo puede no ser totalmente honesto en cuanto a la

adjudicación de los tiempos, y así el tiempo de tratamiento de determinadas

interrupciones es cargado al proceso que tiene la CPU en ese momento.

n El acceso al reloj es normalmente una tarea del supervisor, y el tiempo de

entrada de éste es aleatorio, cargando este tiempo al reloj lógico del

proceso.

Otro elemento importante en la precisión de las medidas directas es la resolución del

reloj. Si la resolución es demasiado pequeña (el tiempo entre dos ticks es demasiado

grande), es posible que el reloj no sea adecuado para la medida de la duración de

determinadas actividades, o bien que los resultados no tengan la precisión necesaria.

De manera general (ver Figura 2.2) se consulta el valor del reloj cuando comienza la

actividad (instante Ti), se supone que el valor en ese instante es Ta, y que T es la duración

del intervalo entre dos ticks del reloj. Si la actividad termina en Tf y se consulta el reloj en ese

momento, éste contendrá el valor Tb.

Ta

Ti Tf

Tb

Figura 2.2

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 33: apuntes de dec

Diseño y evaluación de configuraciones

25

La duración real de la actividad es:

Treal = Tf -Ti

Mientras que el valor medido es de:

Tmedido = Tb -Ta

El error en la medida se obtiene de la siguiente forma:

Error = Treal -Tmedido= (Tf -Ti)-(Tb -Ta)= (Tf - Tb) - (Ti - Ta)

Tanto (Tf - Tb) como (Ti - Ta) pueden variar entre 0 y T, por lo que el error podrá variar

entre -T y T, o lo que es lo mismo:

0 ≤ |Error|≤ T

Es decir, el error depende de T, por lo que la resolución debe ser grande para que el

error cometido en las medidas sea pequeño. Un aumento de la resolución producirá también

un aumento de la sobrecarga.

♦ Ejemplo 2.2: A partir del diagrama temporal que se muestra en la Figura 2.3 deducir el tiempo real y

el tiempo medido de duración de las tareas W1, W2 y W3. El tiempo transcurrido entre dos ticks de reloj

consecutivos es s.

t0 t1 t2 t3 t4

τ0 τ1 τ2 τ3

W1 W2 W3

Real

Relojs s s s

Figura 2.3

Solución:

W1, tiene una duración real de Tr1=τ1-τ0, mientras que su duración desde el punto de vista de la medida

que se realiza es Tm1=t1-t0=s.

mio
Highlight
Page 34: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

26

W2, tiene una duración real de Tr2=τ2-τ1, mientras que su duración desde el punto de vista de la medida

que se realiza es Tm2=t1-t1=0.

W3, tiene una duración real de Tr3=τ3-τ2, mientras que su duración desde el punto de vista de la medida

que se realiza es Tm2=t3-t1=2s.

2.4.2 Monitores hardware

Son dispositivos para medir las prestaciones de sistemas informáticos que se conectan

al hardware del sistema que se va a monitorizar por medio de sondas electrónicas, que son

elementos capaces de detectar eventos de tipo eléctrico.

Un monitor hardware podrá reconocer todos aquellos acontecimientos que se reflejen en

puntos fijos del sistema.

Su principal característica es que son externos al sistema que van a medir, lo que

implica:

n No utilizan recursos del sistema que van a monitorizar.

n No producen interferencias con éste.

n Son muy rápidos.

Sus principales desventajas:

• Son más difíciles de instalar.

• Existen magnitudes a las que no se puede acceder.

• Requieren para su operación y análisis de resultados de personal

especializado.

• Puede interactuar a nivel eléctrico con el sistema que se va a monitorizar,

provocando perturbaciones que resulten en un funcionamiento anómalo del

sistema monitorizado.

En la Figura 2.4 se representa el esquema más simple de un monitor hardware.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 35: apuntes de dec

Diseño y evaluación de configuraciones

27

Contadores AlmacenamientoMódulo lógico

Reloj

Figura 2.4: Esquema simple de un monitor hardware

En este esquema, los módulos lógicos se encargan de filtrar las señales, de forma que

sólo se obtengan disparos cuando se produce una determinada combinación de las señales

de entrada, lo que es equivalente a decir que se está produciendo un determinado evento.

Los contadores se encargan de registrar el número de veces que se produce un

determinado fenómeno. Mientras que la parte de almacenamiento tiene la misión de

memorizar de forma permanente el valor de los contadores. Por otro lado el reloj se encarga

de dar la señal de sincronismo con la que se deben capturar los eventos.

♦ Ejemplo 2.3: Una realización muy simple del esquema anterior de un monitor hardware se puede ver

en la Figura 2.5. Con este monitor se pretende determinar el tiempo de utilización de un determinado

recurso.

Reloj

Biestable

Contador

Reloj

Biestable

Contador

Figura 2.5

mio
Highlight
mio
Highlight
Page 36: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

28

Este tiempo de utilización de un determinado recurso se caracteriza por un nivel alto en la salida de un

biestable. La salida del biestable es interceptada por las sondas, las cuales llevan el nivel lógico de

salida al módulo lógico, que en este ejemplo es una puerta AND, cuya otra entrada está conectada a la

señal de reloj del monitor. De esta forma la salida del módulo lógico será un tren de pulsos si la entrada

está a un nivel alto.

La salida de la puerta AND se lleva a un contador para que registre el número de pulsos recibidos. En

otro contador se tiene directamente la señal de reloj.

La salida del monitor son las cuentas de los contadores, ya que la razón entre éstas da directamente el

tanto por ciento de ocupación del dispositivo, que es lo que se pretendía conocer

Actualmente una tendencia muy extendida es sustituir la mayor parte de los módulos de

que consta un monitor hardware por un microprocesador, ya que se puede encargar de

realizar las operaciones de filtrado, cuenta y memorización. Los contadores son ahora

actualizados y almacenados por el propio microprocesador, que, además, puede interpretar

los resultados y visualizarlos. Por otra parte los contadores puede también ser sustituidos

por una memoria RAM.

La ventaja de utilizar un microprocesador es evidente ya que los módulos lógicos, que en

un principio eran cableados, pasan a ser programados. Su principal inconveniente es que la

frecuencia de muestreo se ralentiza, con lo que se está perdiendo una de las principales

ventajas de los monitores software, su rapidez.

2.4.3 Monitores híbridos

Los monitores híbridos (ver Figura 2.6) son una mezcla de los monitores software y

hardware que tratan de aunar las ventajas de ambos monitores y evitar sus inconvenientes.

Estos monitores añaden al sistema operativo una parte muy pequeña de código que envía

información al monitor hardware que está observando de forma continua la ejecución del

procesador principal.

La parte de código que se añade puede consistir en la ejecución de una instrucción de

entrada/salida a la que se añade una palabra de 16 ó 32 bits que hace referencia al suceso

que se desea monitorizar.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 37: apuntes de dec

Diseño y evaluación de configuraciones

29

CPU Memoria E/S

Sistema

Captador de eventos

Base detiempos

CPU Memoria E/S

Figura 2.6: Monitor Híbrido

La parte de hardware de un monitor híbrido es un sistema con microprocesador con una

base de tiempos que cada vez que la parte software envía una información añade el tiempo

en que tiene lugar la captura. El tiempo y la información que se captura son almacenados y

procesados por el procesador del monitor. Finalmente toda la información monitorizada se

representa al final por pantalla en forma de tablas o gráficos, además de almacenarse en un

archivo.

Al reducirse generalmente la parte software a la ejecución de una instrucción de E/S, y al

procesarse y almacenarse en otro computador, se elimina una parte de la sobrecarga que

tenía un monitor software.

Los monitores híbridos son los más usados en el diseño de nuevas arquitecturas de

computadores, y vienen integrados en algunos computadores modernos. También son muy

usados en el estudio del comportamiento de prototipos de nuevas máquinas.

2.4.4 Comparación entre monitores

En general dado un problema de monitorización, la elección del tipo de monitor que se

debe utilizar no es difícil de resolver ya que normalmente sólo uno de ellos es el adecuado.

mio
Highlight
Page 38: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

30

Las principales características de un monitor que se deben de considerar a la hora de

seleccionarlo son:

n Dominio de medición: El monitor hardware sólo es capaz de seguir el

comportamiento de acontecimientos que se reflejen en posiciones fijas de

memoria o provoquen transferencias de control a direcciones fijas o la

ejecución de instrucciones determinadas. Por otro lado, el monitor software

puede seguir los acontecimientos que se reflejen en posiciones de

memoria susceptibles de ser leídas por la ejecución de una instrucción.

n Resolución: Los monitores hardware tienen una capacidad para resolver

acontecimientos a frecuencias elevadas (de 10 a 50 MHz), se trata de una

magnitud absoluta determinada por la velocidad de las sondas y la lógica

del monitor. En el caso de un monitor software la máxima frecuencia de

entrada del monitor software viene fijada por la máxima frecuencia de

ejecución de instrucciones. Se trata por tanto de una magnitud relativa.

Ahora bien el monitor software es capaz de “parar” el sistema aunque ello

produzca una distorsión de las medidas.

n Anchura de entrada. Un monitor software sólo puede detectar los

acontecimientos secuencialmente. Sin embargo, es capaz de “parar” el

sistema hasta extraer toda la información necesaria. En este sentido la

anchura de entrada es, teóricamente ilimitada. El monitor hardware permite

la detección de acontecimientos en paralelo, pero su anchura está limitada

por el número de sondas disponibles.

n Interferencia, el monitor hardware prácticamente no introduce ninguna

perturbación en el sistema observado, mientras que el monitor software

provoca una perturbación que puede ser apreciable, ya que utiliza los

propios recursos del sistema.

n Facilidad de uso, un monitor hardware requiere un buen conocimiento del

hardware del sistema y, por tanto, un mayor grado de especialización que

el monitor software, que de hecho es una extensión del sistema operativo

utilizado.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 39: apuntes de dec

Diseño y evaluación de configuraciones

31

n Coste. Los monitores hardware son más caros que los software tanto de

instalación como de funcionamiento.

n Cantidad de datos. En general si la cantidad de datos que se espera

obtener es muy elevada, lo apropiado es utilizar un monitor hardware que

incorpore almacenamiento secundario, para evitar la sobrecarga del

sistema.

n Consumo de recursos. Los monitores software consumen recursos del

sistema que deberían estar disponibles para los usuarios. Por contra los

monitores hardware consumen muy pocos recursos, siendo incluso

invisibles al sistema.

n Portabilidad. Los monitores hardware suelen diseñarse para realizar

medidas sobre diferentes sistemas, es decir son portables. Por el contrario,

los monitores software se desarrollan para un hardware y software

particular, luego no son portables.

n Mal funcionamiento. En caso de un mal funcionamiento del sistema, el

monitor hardware sigue tomando medidas del sistema, mientras que un

monitor software puede no funcionar correctamente.

En la Tabla 2.2 se muestra de forma resumida la comparación entre los diferentes tipos

de monitores.

Característica Monitor hardware Monitor Software Monitor HíbridoDominio Bajo nivel (Fijo) Lógico TodosResolución Alta (Fija) Baja (variable) AltaAnchura Finita Infinita InfinitaInterferencia Baja Alta MediaCoste Alto Bajo AltoReducción No Si No/SiPortabilidad Si No No

Tabla 2.2: Tabla resumen de las características de los diferentes tipos de monitores

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 40: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

32

2.4.5 Monitores de ejecución de programas

Estos monitores proporcionan información de un programa durante su ejecución y sirven

para saber:

• Donde pasa un programa su tiempo de ejecución.

• Cuántas veces se ejecuta una línea de código del programa.

• Cuántas veces se llama a un procedimiento y desde donde.

• A cuantos archivos accede un programa y durante cuanto tiempo.

En definitiva proporcionan Información de suma importancia para optimizar y mejorar el

comportamiento y tiempo de ejecución de un programa.

2.4.6 Monitor de contabilidad

El objetivo de un monitor de contabilidad es obtener el consumo de recursos del sistema

que realiza cada usuario. Este tipo de monitores permiten las siguientes operaciones:

• Monitorizar la utilización del espacio de disco para usuarios individuales,

como número de escrituras y lecturas, números de bytes escritos y leídos,

etc.

• Registrar datos de sesiones y su duración.

• Generar resúmenes de informes y archivos que pueden ser utilizados para

analizar el trabajo del sistema y el consumo de recursos de cada usuario.

Para realizar estas operaciones, el monitor de contabilidad proporciona una serie de

órdenes que permiten crear datos, borrarlos, visualizarlos, mezclarlos, resumirlos y crear

informes.

Los monitores de contabilidad también registran la información referente a condiciones

anormales, como violaciones de seguridad, terminación anormal de trabajos, errores en

dispositivos, rearranques del sistema, etc.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 41: apuntes de dec

Diseño y evaluación de configuraciones

33

La unidad de trabajo de un monitor de contabilidad es el programa y la información

registrada se realiza para cada usuario y para programa ejecutado.

2.5 PRESENTACIÓN DE LOS RESULTADOS

2.5.1 Tipos de variables

Las variables pueden ser de dos tipos:

n Variables cualitativas o categóricas. Se definen como un conjunto de

subclases mutuamente exclusivas que se expresan normalmente con

palabras. Pueden ser de dos tipos:

• Ordenadas, como por ejemplo el tipo de computador

(supercomputador, minicomputador, microcomputador,...).

• No Ordenadas, como por ejemplo los tipos de carga (científica, de

ingeniería, de educación,...).

n Variables cuantitativas. Sus distintos niveles se expresan numéricamente.

Pueden ser de dos tipos:

• Discretas. Pueden adoptar un número finito o infinito de valores,

pero en todo caso será numerable. Por ejemplo: El número de

procesadores de un sistema informático, el tamaño del bloque de

datos.

• Continuas. Pueden adoptar un número infinito y no contable de

valores diferentes, como el tiempo de respuesta de un trabajo en un

sistema.

2.5.2 Diagramas de Gantt

Para una utilización adecuada de todos los recursos del sistema, la carga debe constar

de una mezcla de trabajos que haga uso de ellos y que exista solapamiento en su utilización.

Los diagramas de Gantt permiten representar este solapamiento en la utilización de los

recursos, Generalmente este tipo de diagramas se utiliza para mostrar la duración relativa de

cualquier condición booleana (que puede tomar los valores verdadero o falso). Ejemplos de

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 42: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

34

tales condiciones booleanas son la utilización de un recurso o el solapamiento en la

utilización de dos recursos (CPU y Canal).

Los diagramas de Gantt se suelen utilizar para observar como varían las utilizaciones de

los recursos a medida que evoluciona la carga en el sistema.

♦ Ejemplo 2.4: Discutir las características del sistema informático que presenta el diagrama de Gantt

de la Figura 2.7.

CPU

Canal E/S

Red

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

10 10 5 15

Utilización

Figura 2.7

Solución:

A partir de este diagrama de Gantt se observa que la CPU estuvo ocupada durante el 60% del intervalo

de observación, el canal durante un 40% y la red durante un 60 %.

También se puede deducir el solapamiento en la actividad de los distintos recursos: la CPU y el canal

estuvieron ocupados simultáneamente durante un 20 % de la sesión. La CPU y la red durante un 40 % ;

el canal y la red durante un 15 %.

Además se observa que el sistema estuvo desocupado durante un 5%.

♦ Ejemplo 2.5: Para un sistema con cuatro recursos: CPU, dos canales de E/S y un enlace de red,

etiquetados como A, B, C y D respectivamente se ha observado el % de tiempo de utilización de los

recursos. En la Tabla 2.3 se representa dicha utilización con un 1 y con un 0 la no utilización de los

mismos. Construir el diagrama de Gantt asociado al sistema.

mio
Highlight
Page 43: apuntes de dec

Diseño y evaluación de configuraciones

35

A B C D Tiempo utilizado (%)0 0 0 0 5 i00 0 0 1 5 i10 0 1 0 0 i20 0 1 1 5 i30 1 0 0 10 i40 1 0 1 5 i50 1 1 0 10 i60 1 1 1 5 i71 0 0 0 10 i81 0 0 1 5 i91 0 1 0 0 i10

1 0 1 1 5 i11

1 1 0 0 10 i12

1 1 0 1 10 i13

1 1 1 0 5 i14

1 1 1 1 10 i15

Tabla 2.3

Solución

La forma de construir el diagrama de Gantt es la siguiente:

1) Se dedica una línea horizontal a cada uno de los cuatro recursos A, B, C y D.

2) La línea horizontal asociada al recurso A se divide en dos partes, una asignada a la utilización del

recurso A y otra a su no utilización A .

3) La línea horizontal asociada al recurso B se divide en cuatro partes: BBBB .

4) La línea horizontal asociada al recurso C se divide en ocho partes:

CCCCCCCC

5) La línea horizontal asociada al recurso D se divide en 16 partes:

DDDDDDDDDDDDDDDD

6) Para cada una de los recursos se asigna a cada parte en el diagrama de Gantt el porcentaje de

tiempo de utilización o de no utilización de acuerdo con lo indicado en la Tabla. (Ver Figura 2.8)

Page 44: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

36

Par el recurso A, hay dos partes: AA la suma de los porcentajes de utilización y de no utilización es:

)()( 7654321015141312111098 iiiiiiiiAiiiiiiiiA ++++++++++++++

)5105105055()105101050510( ++++++++++++++ AA

)45()55( AA

En el caso del recurso B, hay cuatro partes: BBBB , la suma de los porcentajes para cada una de

las cuatro partes es:

)()()()( 3210765415141312111098 iiiiBiiiiBiiiiBiiiiB ++++++++++++

)5055()510510()1051010()50510( ++++++++++++ BBBB

)15()30()35()20( BBBB

En el caso del recurso C, hay ocho partes CCCCCCCC , la suma de los porcentajes para

cada una es:

)()()()()()()()( 1032765413121514111098 iiCiiCiiCiiCiiCiiCiiCiiC ++++++++

)55()50()510()510()1010()105()50()510( ++++++++ CCCCCCCC

)10()5()15()15()20()15()5()15( CCCCCCCC

Finalmente, en el caso del recurso D, hay 16 partes, la suma de los porcentajes para cada una es:

)()()()()()()()()()()()()()()()( 0132675412131514101198 iDiDiDiDiDiDiDiDiDiDiDiDiDiDiDiD

)5()5()5()0()10()5()5()10()10()10()10()5()0()5()5()10( DDDDDDDDDDDDDDDD

Page 45: apuntes de dec

Diseño y evaluación de configuraciones

37

A

B

C

D

)55(A )45(A

)20(B )35(B )30(B )15(B

)15(C )5(C )15(C )20(C )15(C )15(C )5(C )10(C

)10(D )5(D )5(D)0(D )5(D )10(D )10(D

)10(D )10(D )5(D )5(D)10(D )0(D )5(D )5(D

)5(D)10(D )5(D )5(D)0(D )5(D )10(D )10(D

)10(D )10(D )5(D )5(D)10(D )0(D )5(D )5(D

)5(D

Figura 2.8

7) Con los resultados obtenidos se procede a unir en el diagrama de Gantt las partes de utilización de

cada recurso (Ver Figura 2.9).

A

B

C

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

Utilización

D

55

35 30

15 5 5

5 5 5 5 5 10 10

15

5

Figura 2.9

2.5.3 Gráficos de Kiviat

Se trata de un gráfico circular en cuyos ejes radiales se representan diferentes índices

de prestaciones. Las intersecciones entre los radios y la circunferencia representan los

valores máximos que pueden alcanzar las variables representadas en los mismos.

Aunque en principio, el número de ejes que puede tener un gráfico de este tipo es

arbitrario y depende de los datos que se van a representar, se suelen seguir unos convenios

mio
Highlight
mio
Highlight
Page 46: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

38

de representación. El más popular de ellos es el conocido como la versión de Kent. Basado

en las siguientes convenciones:

1) Se selecciona un número par de variables que hay que estudiar,

frecuentemente ocho, la mitad de ellas deben ser buenos índices de

prestaciones (a mayor valor, mejores prestaciones) y la otra mitad malos

(mejores prestaciones a menor valor de los mismos).

2) Se divide el círculo en tantos sectores como variables hay que representar.

3) Se numeran los semiejes secuencialmente, normalmente en sentido

horario, comenzando por el semieje vertical superior.

4) Se asocian los buenos índices de prestaciones a los semiejes impares y

los malos a los pares.

De acuerdo con esta convención, en un sistema ideal todos los índices buenos tendrían

valores altos y los malos valores muy bajos, por lo que el gráfico de Kiviat tendría forma de

estrellla.

Los gráficos de Kiviat se utilizan para realizar un reconocimiento visual de un sistema.

♦ Ejemplo 2.6: Construcción de un gráfico de Kiviat, según la versión de Kent para una instalación

informática de gestión normal.

Se consideran la siguiente asignación de índices de prestaciones:

1) CPU ocupada o activa (CPU ). Este índice es bueno en el sentido de que se está utilizando el

recurso y no se desperdicia.

2) Sólo CPU ocupada ( CHCPU * ). Es preferible que estén simultáneamente ocupados cuantos más

recursos mejor para que exista un elevado paralelismo en la utilización de los mismos. Por ello este

índice no es bueno porque indica que no existe solapamiento con los canales y por lo tanto su valor

debe ser bajo.

3) Solapamiento de CPU y Canal.( CHCPU* ) Se trata de un índice bueno que interesa que tenga un

valor alto.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 47: apuntes de dec

Diseño y evaluación de configuraciones

39

4) Sólo canal ocupado sin solape en la CPU. ( CHCPU * ) Indice malo interesa que su valor sea bajo.

5) Cualquier Canal ocupado.(CH ) Se trata de un índice bueno que interesa que tenga un valor alto.

6) CPU en estado de espera. (CPU ) Indice malo interesa que su valor sea bajo, ya que se está

malgastando el recurso.

7) CPU en estado usuario o atendiendo a programas de usuario.( usuarioCPU ) Se trata de un índice

bueno que interesa que tenga un valor alto.

8) CPU en estado supervisor. ( ervisorCPU sup ) Indice malo interesa que su valor sea bajo, ya que se

está ejecutando código del sistema operativo Este índice representa el overhead del sistema operativo.

El gráfico de Kiviat para una instalación de gestión normal se representa en la Figura 2.10

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

Figura 2.10

Con el conjunto de índices enunciado en el apartado anterior se han identificado una serie de formas

típicas correspondientes a determinadas situaciones (ver Tabla 2.4)

Page 48: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

40

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

(A) Estrella de Kiviat. Corresponde a una situaciónideal

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

(B) Vela de barco. Corresponde a sistemaslimitados por la CPU, es decir sistemas conmucha demanda de CPU y relativamente pocautilización de los canales.

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

(C) Cuña o iceberg, corresponde a sistemaslimitados (mal dimensionados) por la E/S. Poseenuna elevada utilización de los recursos de E/S ybaja de la CPU.

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

(D) Flecha de E/S. Sistemas limitados por laE/S que además tienen una elevada utilización dela CPU

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

CPUocupada

Sólo CPU

CPUy cualquier canal

Al menos un canalactivo sin solape

con la CPUAl menos uncanal activo

CPU en espera

CPUusuario

CPUsupervisor

(E) Thashing. Sistema saturado por la paginación.

Tabla 2.4

Page 49: apuntes de dec

Diseño y evaluación de configuraciones

41

2.6 MONITORES DE REDES DE AREA LOCAL (LAN)

La organización OSI define cinco dominios de administración de una red de área local

(LAN):

1) Manejo de fallos. Hace referencia al esfuerzo para minimizar el tiempo

medio requerido para detectar y reparar un problema en la red.

2) Administración de cuentas. Se lleva a cabo mediante un tipo de monitor

conocido como monitor de contabilidad, que informa de los recursos

utilizados por los usuarios del sistema con el fin entre otras cosas, de

proceder a la facturación de estos consumos.

3) Manejo de configuraciones. Hace referencia al esfuerzo para definir y

monitorizar las configuraciones física y lógica de la red.

4) Manejo de las prestaciones. Hace referencia al esfuerzo para mejorar las

prestaciones de la red y detectar prestaciones degradadas por colección y

análisis de estadísticas de la red, y modificación de los parámetros

apropiados de la red.

5) Manejo del control de acceso.

2.6.1 Tipos de monitores de LAN

En general se pueden considerar tres tipos de monitores de LANs: centralizados,

distribuidos e híbridos.

2.6.1.1 Monitores centralizados

Los monitores centralizados (ver Figura 2.11) son simples, baratos y dan toda la

información deseada. Es el tipo de monitor más usual en las redes de difusión (broadcast).

Existen dos tipos:

n Monitor de prueba que inyecta paquetes a la red a intervalos específicos y

puede grabar parámetros de la red para cada paquete inyectado, tales

como retraso en la adquisición del canal y número de colisiones. Se trata

de un monitor activo que produce una sobrecarga en la red.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 50: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

42

n Monitor espía, es un nodo especial dedicado a la monitorización de la red

de modo pasivo, por lo que no introduce ninguna sobrecarga. Este monitor

debe ser capaz de procesar los paquetes a medida que los ve pasar, por lo

que este monitor debe estar equipado con suficiente potencia de progreso y

espacio de almacenamiento.

NODO NODO NODO

MONITOR

Figura 2.11: Monitor Centralizado

2.6.1.2 Monitores Distribuidos

Con los monitores distribuidos (ver Figura 2.12) se tiene información de todos los nodos

de la red. Cada nodo captura datos y periódicamente transmite esta información al

analizador central. Dicho analizador central sólo analiza los datos recibidos desde los

monitores distribuidos, puesto que éste no monitoriza la red.

NODO NODO NODO

NODO

MONITOR MONITOR MONITOR

MONITOR

Figura 2.12: Monitor Distribuido

mio
Highlight
mio
Highlight
Page 51: apuntes de dec

Diseño y evaluación de configuraciones

43

Los monitores distribuidos presentan ciertos inconvenientes:

• Existe una gran sobrecarga de comunicación cuando se envían grandes

cantidades de datos a la estación central, a no ser que se utilice un canal

dedicado para pasar la información recogida por los nodos.

• Cada nodo debe de enviar datos sobre la red al analizador central, lo que

introduce interferencias.

• El utilizar la red a medir como parte integral del sistema de monitorización

puede causar pérdidas de las funciones de monitorización si la red falla.

Se distinguen dos tipos de monitores distribuidos:

n Monitores hardware, requiere que cada nodo monitorice el tráfico. Este

método es más factible en los diseños de redes futuras, puesto que es

caro modificar los interfaces de los nodos actuales.

n Monitores software, son más flexibles que los monitores hardware al ser

modificable. Sin embargo se necesita distinto software para cada nodo.

Además pueden producir una sobrecarga en el procesador del nodo, así

como unos mayores requerimientos de memoria.

2.6.1.3 Monitores Híbridos

Los monitores híbridos (ver Figura 2.13) combinan las características esenciales de los

monitores centralizados y distribuidos. Este método permite medidas precisas y

compresivas mientras necesita menos modificaciones en las interfaces de los nodos y

reduce la información que hay que enviar al monitor central.

Ahora el monitor central directamente observa la red para recoger sus propios datos y

también recibe datos desde las interfaces de cada nodo. Así el monitor central analiza todos

los datos para calcular los parámetros de interés.

En los monitores híbridos también se introducen interferencias en la red si no se utiliza

un canal dedicado. Aunque las interferencias son menores que en el método distribuido

puesto que el monitor central recoge localmente algunos de los datos necesarios.

mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
mio
Highlight
Page 52: apuntes de dec

TEMA 2: Técnicas de medida y de presentación de los resultados

44

NODO NODO NODO

MONITOR

MONITOR MONITOR MONITOR

Figura 2.13: Monitor Híbrido

Page 53: apuntes de dec

Tema 3

CARACTERIZACION DE LA CARGA

45

3.1 INTRODUCCION

Se denomina carga a todas las demandas que realizan los usuarios de un sistema

(programas, datos, órdenes, etc.) durante un intervalo de tiempo.

El resultado de las medidas de las prestaciones de un sistema es función de la carga

bajo la cual fue determinado. De esta forma, la comparación entre diferentes sistemas o

configuraciones sólo se puede realizar si las cargas procesadas para su comparación son

las mismas.

Aspectos importantes de la carga son:

n La carga varía con el tiempo, lo que va a dificultar su modelización.

n La carga interacciona con el sistema que la procesa, produciéndose dos

realimentaciones (ver Figura 3.1):

• Realimentación interna, debida a las variaciones que las

modificaciones de parámetros del sistema operativo inducen en la

carga.

• Realimentación externa, asociada a la incidencia que el

comportamiento del sistema tiene sobre los hábitos y

comportamientos de los usuarios que son los que provocan la

carga.

Page 54: apuntes de dec

TEMA 3: Caracterización de la carga

46

Usuarios CargaSistema

InformáticoPrestaciones

Figura 3.1: Interacción de la carga con su entorno

Es por lo tanto necesario establecer un modelo de la carga, que permitan definir

cuantitativamente la carga del sistema. A la hora de elegir este modelo hay que considerar en

primer lugar el uso que se le va a dar, es decir, los objetivos que se pretenden conseguir. Y

en segundo lugar las herramientas (modelos analíticos, simulación, el sistema real, etc.) que

manipularán el modelo de la carga. Algunos de los parámetros que se utilizan en la

caracterización de la carga son:

• Tiempo total de CPU, tiempo medio de CPU entre dos E/S y sus

distribuciones.

• Número de operaciones de E/S.

• Características de operaciones de E/S y sus distribuciones.

• Espacio en memoria.

• Ficheros en disco.

• Líneas impresas.

• Cintas leídas.

• Número de usuarios.

• Tiempo de reflexión y su distribución.

• Frecuencia de llegada.

Page 55: apuntes de dec

Diseño y evaluación de configuraciones

47

Se define la carga de prueba o de test (modelo de la carga) como la carga que debe

procesar un sistema mientras se está realizando un experimento de medición determinado.

Las características más importantes que debe poseer la carga de prueba son:

• Reproductibilidad de los experimentos.

• Compacidad, es decir, reducir sustancialmente la duración de cada sesión

de medición con respecto a los que se requeriría para ejecutar la carga real

total.

• Compatibilidad, obtener una representación de la carga consistente con su

uso.

• Representatividad, hace referencia a los aspectos de la carga real

retenidos en el modelo.

• Flexibilidad, que indica si es posible y poco costoso variar el modelo para

ajustarlo a las variaciones que se produzcan en la carga real.

• Independencia del sistema.

Se define sesión de medida como el intervalo de tiempo en que se realiza un

experimento. Una sesión de medida no tiene porque ser continua en el tiempo, sino que

puede estar compuesta de varias subsesiones que se realicen en distintos días y horas.

3.2 REPRESENTATIVIDAD DE UN MODELO DE CARGA

El criterio que se utiliza para evaluar la representatividad de un modelo de carga es

función del nivel de modelado adoptado: físico, virtual, funcional, de comportamiento.

3.2.1 Representatividad a nivel físico

A un nivel de modelado físico, se dice que un modelo de la carga W’ representa

perfectamente a la carga W si solicita los mismos recursos físicos (CPU, E/S, etc) en las

mismas proporciones que W.

Por ejemplo, cada componente básico de la carga puede caracterizarse por el tiempo de

CPU consumido o por el número de instrucciones máquinas ejecutadas, por los espacios

Page 56: apuntes de dec

TEMA 3: Caracterización de la carga

48

requeridos de memoria principal y secundaria, por el tiempo total de E/S consumido, por el

número de archivos utilizados, por el número y duración de los accesos físicos de E/S a

canal y disco.

Un modelo W’ conforme a este criterio es muy fácil de construir utilizando un método de

proporcionalidad. Las características de estos modelos son:

• Orientación al consumo de recursos físicos.

• Gran dependencia del sistema.

• Relativamente fáciles de construir, ya que los datos que se necesitan para

construir estos modelos se pueden obtener fácilmente de los sistemas

operativos (rutinas de contabilidad) de los equipos o mediante el uso de

monitores.

Estos se aplican para:

• Sintonización del sistema, modificación del consumo de recursos para un

mejor funcionamiento del sistema.

• Planificación de la capacidad residual, es decir, cálculo del porcentaje de la

potencia del equipo que no está siendo utilizada.

• Diseño.

3.2.2 Representatividad a nivel virtual

A un nivel de modelado virtual, se dice que un modelo de la carga W’ representa

perfectamente a la carga W si solicita los mismos recursos físicos con la misma frecuencia

que W. Es decir, con este criterio de representatividad, el modelo de la carga deberá

provocar por unidad de tiempo el mismo número de ráfagas1 de CPU y de E/S de la misma

duración que el sistema real.

1 Por ráfaga se entiende un intervalo de tiempo de utilización del recurso.

Page 57: apuntes de dec

Diseño y evaluación de configuraciones

49

Por ejemplo, cada componente básico de la carga puede caracterizarse por el número

de sentencias de cada tipo del lenguaje de alto nivel, el número de accesos lógicos a cada

archivo o base de datos, el número y tipo de órdenes interactivas, etc.

Las principales características de estos modelos son:

• Orientación a recursos lógicos.

• Menor dependencia del sistema que el modelo anterior.

• Mayor proximidad al punto de vista del usuario que el modelo anterior.

• Mayor dificultad para obtener los parámetros para la construcción del

modelo que en el modelo anterior.

Estos modelos son adecuados para:

• Estudios de ampliación del sistema.

3.2.3 Representatividad a nivel funcional

A un nivel de modelado funcional, se dice que un modelo de la carga W’ representa

perfectamente a la carga W si realiza las mismas funciones con las mismas proporciones

que W.

Por ejemplo, si un determinado sistema realiza 400 horas de compilaciones, 250 horas

de pruebas de trabajos, 700 horas de explotación de trabajos y 300 horas de cálculo

científico, un modelo funcional de la carga sería el que usara 40 minutos de compilaciones,

25 minutos de pruebas de trabajos, 70 minutos de explotación de trabajos y 30 minutos de

cálculo científico.

Las principales características de estos modelos son:

• Orientación a aplicaciones.

• Independencia del sistema.

• Dificultad de diseñar sistemáticamente.

Page 58: apuntes de dec

TEMA 3: Caracterización de la carga

50

Estos modelos son adecuados para:

• Selección de un computador.

• Planificación de la capacidad.

3.2.4 Representatividad a nivel de comportamiento

A un nivel de modelado de comportamiento, se dice que un modelo de la carga W’

representa perfectamente a la carga W si produce los mismos valores de los índices de

comportamiento que W, cuando se ejecuta en el mismo sistema

La principales característica de estos modelos son su dependencia del sistema.

Estos modelos son adecuados para:

• Evaluar la validez del modelo por los efectos que produce en el sistema y

no solamente por sus posibles causas.

3.3 CARGAS DE TEST O DE PRUEBA

Durante una sesión de medida se puede utilizar o bien la carga real o bien un modelo de

dicha carga. En la Tabla 3.1 siguiente se resumen los principales tipos de cargas de test:

Real

Sintética o Reducida NaturalHíbrida

Cargas de prueba Artificial Ejecutable MixKernelPrograma sintéticoSecuencias transaccionalesSecuencias conversacionalesBenchmarks

No ejecutable Distribuciones estadísticasTrazas para simulación

Tabla 3.1

Page 59: apuntes de dec

Diseño y evaluación de configuraciones

51

La Tabla 3.2 siguiente resume la comparación de las principales características de los

modelos de carga reales y artificiales.

Característica Carga real Carga artificial

Representatividad Potencialmente alta Usualmente baja

Coste de realización Bajo Alto

Coste de uso Bajo Alto

Flexibilidad Baja Alta

Reproductibilidad Baja Alta

Compacidad Baja Alta

Independencia del sistema Baja Alta

Coste de recoger y reducir datos Alto Bajo

Aplicaciones Sintonización Diseño

Sintonización

Adquisición

Tabla 3.2

3.3.1 Cargas de test reales

La carga de test que se utiliza durante una sesión de medición es la carga real del

sistema. Se trata de la carga más representativa y barata de implantar.

Una de las principales dificultades de usar cargas de test reales es la de reproducir

situaciones cuando se quiere repetir un experimento, debido a los imponderables

(especialmente humanos) que influyen en la dinámica del sistema.

Las principales razones que limitan el uso de cargas de test reales en experimentos que

deban repetirse en las mismas condiciones son:

• Falta de flexibilidad, debido a la imposibilidad de modificar los programas y sus

consumos de recursos.

• Necesidad de reutilizar los datos originales.

• Confidencialidad de ciertos programas y datos, que pueden llegar a prohibir su

duplicación.

Page 60: apuntes de dec

TEMA 3: Caracterización de la carga

52

• Diferencias en la organización del hardware y el software de los distintos sistemas

3.3.2 Cargas de test sintéticas o reducidas

Se distinguen dos tipos de cargas sintéticas o reducidas: las naturales y las híbridas.

3.3.2.1 Cargas de prueba sintéticas naturales

Se dice que una carga de test es sintética natural, o un benchmark si consta de un

conjunto de programas extraídos de la carga real. El benchmark se suele aplicar en estudios

de selección y ampliación. Algunas dificultades que se encuentran en la práctica al utilizar

este tipo de cargas son:

n Prioridad de ejecución, cada sistema trata las prioridades de forma distinta,

además la prioridad asignada a un programa por el planificador se altera

según distintas políticas durante la ejecución.

n Máximo factor de multiprogramación, que varía de un sistema a otro.

n Rutinas de contabilidad, cada sistema tiene sus propias rutinas de

contabilidad y sucede con frecuencia que bajo un mismo nombre se

esconden conceptos y variables distintas, por lo que es conveniente

asegurar el significado de cada valor para poder darle el significado

correcto.

n Parámetros de generación del sistema operativo. Cada sistema operativo

tiene diversos parámetros de generación, que afectan al comportamiento

del sistema.

n Lenguajes de programación, es conveniente que los programas que

constituyen el benchmark estén escritos en forma tal que se respete la

definición estándar del lenguaje de programación.

Una forma razonablemente eficaz de plantear el benchmark consiste en confiar su

realización completamente a los fabricantes y solicitar una copia en soporte magnético de

los componentes del benchmark, para, una vez efectuada la selección y con el sistema

instalado, comprobar la veracidad de las pruebas realizadas.

Page 61: apuntes de dec

Diseño y evaluación de configuraciones

53

3.3.2.2 Cargas de prueba sintéticas híbridas

En numerosas ocasiones, la carga que se pretende modelar no existe completamente

(incorporación de nuevas aplicaciones todavía no desarrolladas, crecimiento vegetativo de

las existentes, etc). Se dice que una carga de test es sintética híbrida, si representa la carga

conocida o real por un conjunto de programas extraídos de ella y la carga no existente

mediante elementos artificiales.

3.3.3 Cargas de test artificiales ejecutables

Una carga de test artificial no contiene ningún componente de la carga real. Sus

componentes están diseñados con el propósito de cargar un modelo matemático de la carga

real.

3.3.3.1 Instrucción de suma

Históricamente fue la primera carga de test utilizada. En un principio, el procesador era

la parte más importante y cara de un computador, ya que su velocidad determinaba las

prestaciones del sistema. En este contexto, la instrucción de suma era la más utilizada y

tenía sentido emplearla como carga de test para la evaluación de las prestaciones del

sistema.

3.3.3.2 Mix de instrucciones o de sentencias.

El análisis de las frecuencias de ejecución de las instrucciones máquina en una carga

real proporciona una información útil para su caracterización. Si un programa A tiene la

misma frecuencia de ejecución de instrucciones que otro programa B, entonces A puede

considerarse como un modelo preciso de B con respecto al consumo de CPU.

Un modelo de este tipo, un mix de instrucciones, puede constar de un único o de varios

programas cuyas frecuencias de ejecución de instrucciones coincidan con las de la carga

total que se está modelando.

Page 62: apuntes de dec

TEMA 3: Caracterización de la carga

54

♦ Ejemplo 3.1: Calcular el tiempo medio de ejecución del mix de instrucciones de la Tabla 3.3.

Tipo de instrucción fi ti (u.t.) fi · ti

Rx ← Ry 0.15 15 2.25

Rx← M 0.11 10 1.10

/ , * 0.05 20 1.00

+ , - 0.09 18 1.62

salto condicional 0.30 15 4.50

salto incondicional 0.15 15 2.25

otras 0.15 25 3.75

Tabla 3.3

Solución:

La primera columna de la tabla (Tipo de instrucción) es función de la carga. La segunda columna es la

frecuencia de ejecución de cada tipo de instrucción, y es función del procesador (sistema) que se esté

estudiando. La tercera columna define una medida del tiempo que se emplea en realizar cada uno de los

diferentes tipos de instrucciones en ese sistema bajo esa carga.

El tiempo medio de ejecución t de este mix de instrucciones se calcula como:

∑ ⋅=i

ii tft

Luego t= 16.47 u.t.

El valor de t puede utilizarse para comparar el poder computacional de diferentes CPUs o la eficiencia de

diferentes compiladores.

La simplicidad de los mix de instrucciones, es también su principal defecto, ya que,

aparte de modelar únicamente los aspectos de consumo de CPU, sólo puede usarse para

comparar sistemas con la misma arquitectura (juego de instrucciones), que usen el mismo

sistema operativo y los mismos compiladores, ya que de lo contrario se puede caer en

diferencias muy notables en la representación de la carga. Es decir, se trata de una

representación extraordinariamente ligada a un sistema.

Page 63: apuntes de dec

Diseño y evaluación de configuraciones

55

Entre los más famosos mix de instrucciones destaca el Gibson-Mix. Todas ellas deben

considerarse como orientativas de la velocidad de la CPU de los distintos sistemas y nunca

deben tomarse como elemento decisivo en la selección de un equipo o en cualquier otra

comparación.

Los mix de sentencias son una extensión a lenguajes de alto nivel de los mix de

instrucciones, básicamente se construyen programas que tengan la misma frecuencia de

aparición de las distintas sentencias del lenguaje de alto nivel considerado que la carga que

se está modelando.

Los mix de sentencias son más independientes del sistema, su principal inconveniente

es que se hace más dependiente del compilador, ya que según lo optimizado que este el mix

de sentencias, cada sentencia generará un número distinto de instrucciones máquina y, por

tanto, tendrá un tiempo de ejecución distinto.

Tanto en un mix de instrucciones como en un mix de sentencias la frecuencia de

aparición puede medirse de dos formas:

• Estadísticamente, se mide la frecuencia de aparición de las sentencias en

los listados (fuente) de los programas que componen la carga.

• Dinámicamente, se calcula la frecuencia con que realmente se están

ejecutando las sentencias.

Evidentemente es más exacto el segundo método, aunque también es más difícil

obtener los datos acerca de las frecuencias de aparición.

3.3.3.3 Kernels

Un kernel es un programa o fragmento que representa lo más característico de la carga.

Sus principales características son:

• Se trata de programas cerrados.

• No se pueden realizar ajustes en dichos programas.

• Tienen un consumo de recursos conocido y no modificable.

• Son programas no paramétricos.

Page 64: apuntes de dec

TEMA 3: Caracterización de la carga

56

• Son proporcionados por asociaciones de usuarios o agencias

gubernamentales.

Ejemplos de kernels son: la función de Ackerman, Sieve, programas de inversión de

matrices, programas de ordenación.

La selección de los kernels a utilizar debe realizarse en función de su similitud con los

programas que constituyen la carga del sistema. Se ha de tener en cuenta que estos

programas debido a que ocupan poco espacio de memoria pueden almacenarse en la

memoria caché, lo que provoca unos tiempos de ejecución muy pequeños, con lo cual los

resultados son poco significativos y pueden inducir a incorrectas interpretaciones.

3.3.3.4 Programas sintéticos

Los programas artificiales sintéticos no realizan ningún trabajo útil, sino que simplemente

se limitan a consumir recursos del sistema de acuerdo con los parámetros de control de

dicho programas configurados por el usuario. Normalmente estos parámetros determinan

necesidades de recursos tales como el tiempo total de CPU, el número de operaciones de

E/S, la cantidad de memoria requerida, etc.

Por medio de bucles anidados, se pueden simular los ciclos CPU-E/S de un programa

real especificando el número y tipo de instrucciones que debe ejecutar la CPU y controlando

el número de operaciones de E/S que se han de efectuar.

♦ Ejemplo 3.2: Ejemplo de programa sintético que permite modelar el consumo de CPU y de E/S:

for i :=1 to N1 do “ consumir CPU”

for i :=1 to N” do “ consumir E/S”

Una de las principales características de los programas sintéticos es su flexibilidad, que

les permite simular un amplio espectro de programas reales desde el punto de vista del

consumo de recursos.

Los programas sintéticos, además de tener el conjunto inicial de parámetros de control

ya mencionado, tienen uno o dos conjuntos suplementarios de parámetros:

Page 65: apuntes de dec

Diseño y evaluación de configuraciones

57

n Parámetros de corrección, son parámetros internos del programa sintético,

se usan para eliminar o reducir las distorsiones no deseadas de algunos

consumos de recursos debido a los cambios en los parámetros de control

que, idealmente, no deberían influir en otros consumos. La modificación de

estos parámetros es difícil.

n Parámetros de calibración, pueden usarse para un ajuste fino del programa

sintético durante la fase de calibración.

3.3.3.5 Secuencias transaccionales

Un entorno conversacional o transaccional era aquel donde un conjunto de usuarios

remotos creen tener, cada uno de ellos, el sistema informático a su exclusiva disposición.

Cuando se pretende construir un modelo de la carga para este tipo de entornos se plantean

varias dificultades. Quizás la más importante sea la de conseguir movilizar un conjunto

importante de personas, las cuales difícilmente actuarán de forma idéntica en cada uno de

los experimentos que se repitan.

Sistema operativo

Monitor decomunicaciones

Monitor detransacciones

Transacciones

Sistema operativo

Monitor decomunicaciones

Simulador de la red

Figura 3.2

Para evitar estos efectos resulta preferible disponer de un esquema como el que se

muestra en la Figura 3.2, en el que el sistema informático, cuyo comportamiento se quiere

evaluar contiene:

n El software del sistema (sistema operativo, monitor de comunicaciones,

etc.).

n El software de ayuda a la programación (monitor de transacciones o

conversacional, sistema de gestión de base de datos, etc.).

n El software de aplicación.

Page 66: apuntes de dec

TEMA 3: Caracterización de la carga

58

El segundo sistema simula el comportamiento de la red y de los usuarios de las

terminales conectados a ella. La simulación de cada uno de estos usuarios puede hacerse

mediante un archivo que contenga los mensajes que enviaría sucesivamente el sistema de

proceso con los tiempos de reflexión asociados a cada uno de los mensajes.

La conexión entre ambos sistemas se efectúa con tantas líneas como las que tendría

realmente el sistema cuyo comportamiento se está evaluando.

El montaje de la Figura 3.2 puede considerarse como muy caro, y en ocasiones es

imposible de realizar por no disponerse del hardware suficiente. Por estos motivos se

recurre a la simplificación de la Figura 3.3.

Simulador de la red

Sistema operativo

Monitor detransacciones

Transacciones

Figura 3.3

Ahora el propio sistema se encarga de la generación y del tratamiento de los mensajes,

admitiendo, de forma gratuita, que el consumo de recursos en la simulación de los usuarios

de la red será equivalente al del monitor de comunicaciones. Este esquema de trabajo

resulta mucho más fácil de implantar.

Cuando el entorno de trabajo es de tipo transaccional. La simulación del comportamiento

de los usuarios puede hacerse conservando la traza de mensajes que se envía desde cada

canal con su temporización. Dicha traza sería la que inyecta el simulador de la red al sistema

para su tratamiento.

Una simplificación muy utilizada en el simulador es considerar que sólo existe un sólo

terminal que envía mensajes sin esperar respuesta, variando de forma proporcional los

intervalos entre mensajes se consigue simular con facilidad los aumentos de carga del

sistema.

Page 67: apuntes de dec

Diseño y evaluación de configuraciones

59

El monitor de transacciones puede obtener la traza de lo que se envía desde cada

terminal con su tiempo asociado. Esta traza es la que puede utilizarse en el simulador de la

red.

3.3.3.6 Secuencias conversacionales

Cuando se trata de establecer el modelo de un entorno de trabajo, normalmente

orientado a la programación, no puede usarse el método de la traza que se acaba de

exponer para los sistemas transaccionales, puesto que los mensajes, que incluyen órdenes

de control dirigidas al sistema operativo, no son directamente transportables de un sistema

informático a otro.

Para evitar este problema, es preciso describir a nivel funcional el guión de trabajo de

cada uno de los usuarios, denominado secuencia o guión conversacional. Cada uno de ellos

debe adaptarse a cada uno de los entornos de trabajo ofrecidos por los distintos sistemas

operativos, determinado la secuencia de mensajes que deberán enviarse desde cada

terminal, con la temporización correspondiente.

3.3.3.7 Benckmarks

Se conoce con el nombre de benchmarks, a unos programas o conjuntos de

programas, construidos con alguno de los métodos anteriormente descritos, que simulan

una carga genérica.

3.3.4 Cargas de test artificiales no ejecutables

3.3.4.1 Distribuciones estadísticas

En una carga de test probabilística, los parámetros se consideran usualmente como

variables aleatorias independientes cuyas distribuciones pueden estimarse a partir de las

distribuciones medidas en la carga real o aproximadas mediante funciones analíticas

Page 68: apuntes de dec

TEMA 3: Caracterización de la carga

60

3.3.4.2 Trazas para simulación

Una traza consiste en una secuencia cronológica, registrada en un soporte adecuado

que representa la información referente a determinados tipos de acontecimientos que han

sucedido en un sistema durante una sesión de medida.

Ejemplos de acontecimientos (cambio de estado) orientados a la conducción de una

simulación son los siguientes:

• La conexión de un usuario.

• La llegada de un programa.

• La iniciación de un programa.

• La asignación de un dispositivo.

• Las peticiones de operaciones de E/S.

Variando proporcionalmente los intervalos entre acontecimientos consecutivos puede

simularse fácilmente la variación de la carga.

La representatividad de la traza es bastante alta. Sin embargo, la recogida de datos para

una traza puede provocar un overhead importante que distorsione su calidad.

3.4 TECNICAS DE IMPLANTACION DE LOS MODELOS DE LA

CARGA

La implantación de modelos de la carga consta de tres fases:

• Formulación o especificación.

• Construcción

• Validación

Page 69: apuntes de dec

Diseño y evaluación de configuraciones

61

3.4.1 Fase de especificación

Esta fase consiste básicamente en tomar toda una serie de decisiones en función de los

objetivos del estudio que se pretende realizar:

n Definición de los componentes básicos de la carga, es decir, la

identificación del menor nivel de detalle que debe modelarse (aplicaciones,

trabajos, programas, guiones, órdenes, instrucciones de alto nivel,

instrucciones maquina, etc.). Cuanto mayor sea el nivel del componente

básico, tanto menor es el detalle con el que se describirá la carga.

n Definición del conjunto de parámetros que debe usarse en la descripción de

la carga en función de su disponibilidad. Si el modelo de la carga se

construye a nivel de recursos físicos pueden usarse parámetros tales

como el tiempo de CPU, la memoria ocupada, el número de operaciones

de E/S, etc. Si por el contrario el modelo debe implantarse a un nivel

funcional, sus parámetros serán: el número de compilaciones, el número

de ejecuciones de programas de FORTRAN, de COBOL, de servicio del

sistema, de rutinas de clasificación, etc.

3.4.2 Fase de construcción

Esta fase consta de las cuatro operaciones básicas siguientes:

1) Análisis de los parámetros. Se realiza la operación de medida sobre el

sistema. El resultado de esta medida es un conjunto enorme de datos que

puede considerarse como un conjunto de vectores en un espacio con un

número de dimensiones igual al número de parámetros de la carga. El

objetivo de su análisis es identificar grupos de componentes con

características similares. Este análisis se lleva a cabo mediante técnicas

estadísticas para muestras multidimensionales.

2) Extracción de valores representativos. Para la extracción de valores

significativos de entre la gran cantidad de datos se utilizan técnicas

estadísticas, de entre las cabe destacar:

• Muestreo de las distribuciones de probabilidad de cada parámetro.

Page 70: apuntes de dec

TEMA 3: Caracterización de la carga

62

• Muestreo de la distribución de probabilidad conjunta.

• Muestreo de las componentes de la carga.

• Análisis de los componentes principales.

• Algoritmos de agrupamiento.

• Modelos markovianos.

3) Asignación de los valores a los componentes del modelo. Consiste en

transformar los valores representativos en componentes ejecutables. El

número de componentes que constituirán el modelo influye directamente en

su representatividad e, indirectamente, en su compacidad. Si se van a

utilizar programas kernel, se tendrán que buscar aquéllos cuyos

parámetros sean próximos a los valores de los componentes

representativos. Si por el contrario se usan programas sintéticos, se

asignarán a sus parámetros de control los valores correspondientes de los

componentes representativos y se deberá calibrar el modelo modificando

los parámetros de calibración de los modelos sintéticos.

4) Reconstrucción de mezclas de los componentes significativos. El objetivo

consiste en reproducir en el modelo situaciones similares a las que se

producen en la carga real. Por ejemplo, si nuestro objetivo es reproducir el

comportamiento del sistema en las horas de mayor actividad, es preciso

lograr, mediante el modelo de la carga, mezclas de programas en

ejecución similares a las que se dan en esas horas.

3.4.3 Fase de validación

La fase de validación está destinada a establecer la validez del modelo implantado, para

lograrlo se procede a la evaluación del criterio de representatividad del modelo. También es

importante determinar el dominio de validez del modelo, lo cual no es nada sencillo.

La validación del modelo debe realizarse comparando su comportamiento con el de la

carga real en aquellos puntos en que se conozca por haberse efectuado algún tipo de

medición.

Page 71: apuntes de dec

Diseño y evaluación de configuraciones

63

3.5 ESTIMACION DE LA CARGA DE NUEVAS APLICACIONES

Para realizar el análisis de la carga son necesarias dos actividades:

1) Caracterización de la carga.

2) Previsión de la carga producida por las nuevas aplicaciones.

Las nuevas aplicaciones a su vez pueden subdividirse en dos grupos:

• Aplicaciones similares a las que ya existen, y por tanto producen una carga

fácil de evaluar.

• Aplicaciones que realizan funciones completamente nuevas y que producen

una carga de características desconocidas.

En este último caso no hay datos históricos a los que referirse, ni puede probarse su

similitud con otras aplicaciones, ni pueden extrapolarse valores de la carga del sistema antes

de la introducción de la nueva aplicación. Una aproximación al problema consiste en

construir un modelo de la nueva aplicación. Normalmente este modelo es un grafo que puede

ser construido a partir del diseño y estructura de la nueva aplicación.

3.5.1 Modelo de grafos para nuevas aplicaciones

El modelo de grafos se construye de la siguiente forma:

n Aquellos puntos del organigrama en que se producen uniones o decisiones

pueden considerarse como nodos de un grafo cuyas aristas son las líneas

que conectan los nodos. Los nodos pueden estar conectados en serie, en

paralelo y en lazo.

n El grafo original puede ser reducido por eliminaciones iterativas de nodos.

n Las operaciones realizadas en una carga (o conjunto de instrucciones) son

reemplazadas por los valores de los parámetros o pesos, seleccionados de

acuerdo con los objetivos de estudio. Por ejemplo, si el objetivo de estudio

es evaluar el tiempo de ejecución de una aplicación, los pesos de las

aristas serán los tiempos medios de ejecución de las instrucciones que

representan.

Page 72: apuntes de dec

TEMA 3: Caracterización de la carga

64

n Para cada nodo de decisión hay que asignar probabilidades de ejecución o

bifurcación a cada una de las aristas (o alternativas) que de él salen. Se

trata de uno de los aspectos más delicados de esta técnica. Hay tres tipos

de probabilidades de bifurcación:

1) Probabilidades que pueden evaluarse en base a aplicaciones

externas a la aplicación. Estas probabilidades son asignadas

después de examinar las características funcionales de la

aplicación.

2) Probabilidades cuyos valores dependen de la estructura de la

aplicación. Es el caso por ejemplo de determinar si un registro está

o no en un fichero, la validez de un dato de entrada.

3) Probabilidades cuyos valores son función de los datos de entrada.

Se pueden dividir en dos grupos:

a) Aquellas cuyos valores sólo dependen de los datos de

entrada.

b) Aquellas para los que no se encuentra cual pudo ser dicha

realización. En estos casos conviene modificar el grafo o

reducirlo a uno más simple.

3.5.2 Simplificación de grafos de carga

El grafo original puede ser reducido por eliminaciones iterativas de nodos. Los nodos, al

igual que las instrucciones en un lenguaje de alto nivel, pueden estar conectados con tres

tipos de estructuras: en serie o secuencia, en paralelo o mediante una selección, en lazos.

A continuación se muestra la reducción o cálculo de la carga equivalente de estos tres

tipos de estructuras. La reducción deberá realizarse de forma iterativa hasta que el modelo

de carga haya quedado reducido a un nodo de inicio y otro de final. La probabilidad de la

rama que los une deberá ser obviamente 1 y el valor importante es el peso total obtenido.

Puede suceder que una aplicación tenga varios puntos de inicio, y/o varios puntos de

finalización. En estos casos, la reducción final no podrá prescindir de ellos y el grafo reducido

Page 73: apuntes de dec

Diseño y evaluación de configuraciones

65

tendrá tantos puntos de inicio y/o final como tuviese el grafo original. Obviamente las

probabilidades en estos casos pueden no ser 1.

En las figuras y ejemplos que vienen a continuación se muestran los nodos de los que

sale una única rama con lo que cabría pensar que la probabilidad de la misma es 1 y no es

necesario hacer el cálculo. Sin embargo debe tenerse en cuanta la probabilidad de que no

sea la única rama que abandona el nodo y por lo tanto hay que considerar una probabilidad

menor que 1. En las figuras, por sencillez, se ha eliminado esta posibilidad, pero hay que

tener en cuenta, que en cualquier caso, la suma de las probabilidades de todas las ramas

que salen de un mismo nodo debe ser, obviamente, 1.

Se definen las siguientes magnitudes:

• phk, es la probabilidad de que el flujo del programa pase por la rama que une

los nodos h y k.

• µhk, es el peso correspondiente a esa misma rama.

3.5.2.1 Eliminación de nodos en serie

Supóngase que se tiene un grafo de tres nodos h, k y m conectados en serie (ver Figura

3.4) en ese caso es posible reducir el grafo a uno de dos nodos.

h k mphk

µhk

pkm

µkmh m

phm

µhm

Figura 3.4

Al eliminar el nodo k la probabilidad entre los nodos h y m será el producto de las

probabilidades de las ramas anteriores y su contribución a la carga o peso, será la suma de

los pesos de ambas ramas:

kmhkhm

kmhkhm ppp

µµµ +== ·

Puede suceder que un mismo nodo esté en serie con varias ramas. En este caso

podemos eliminarlo dejando el resto de ramas en forma paralela. Supóngase el grafo de la

Figura 3.5, es posible eliminar el nodo k conectado en serie con los nodos h, i, j y m.

Page 74: apuntes de dec

TEMA 3: Caracterización de la carga

66

j k ipik

µik

pik

µik

h

m

phk

pkmµkm

µhk

j i

m

h

phmµhm

pimµim

pjm

µjm

Figura 3.5

Donde

kmikimkmjkjmkmhkhm

kmikimkmjkjmkmhkhm ppppppppp

µµµµµµµµµ +=+=+=

=== ···

3.5.2.2 Eliminación de nodos en paralelo

Supóngase que se tiene un grafo de dos nodos h y k conectados en paralelo (ver Figura

3.6) por dos aristas en ese caso es posible reducir el grafo a dos nodos y una sola arista.

k

h

p’’hk

µ’’hk

p’hk

µ’hk

k

h

phk

µ hk

Figura 3.6

Se tienen las siguientes relaciones:

hkhk

hkhkhkhkhkhkhkhk pp

ppuppp

'''''''''

'''+

⋅+⋅=+=

µµ

Page 75: apuntes de dec

Diseño y evaluación de configuraciones

67

3.5.2.3 Eliminación de nodos en lazo

Supóngase que se tiene un grafo de dos nodos h y k, el nodo h presenta inicialmente un

lazo, es posible eliminar dicho lazo de la forma indicada en la Figura 3.7.

h kphk

µhkh k

p’hk

µ’hk

phh

µhh

Figura 3.7

Se tienen las siguientes relaciones:

hh

hhhhhkhk

hh

hkhk p

pp

pp

−⋅

+=−

=1

'1

' µµµ

♦ Ejemplo 3.3: Calcular la carga de CPU del sistema representada en la siguiente figura mediante la

reducción del grafo adjunto.

Inicio

Fin

1

2

3

4

CPU=40 u.t

CPU=10 u.t

P=0.5CPU=10 u.t

CPU=10 u.tP=0.5CPU= 0 u.t

P=0.5CPU= 0 u.t

P=0.5CPU=10 u.t

Figura 3.8

Page 76: apuntes de dec

TEMA 3: Caracterización de la carga

68

Solución:

Paso 1: Eliminación del nodo 3

Inicio

Fin

1

2

4

CPU=40 u.t

CPU=10 u.t

P=0.5CPU=20 u.t

P=0.5CPU= 10 u.t

P=0.5CPU= 0 u.t P=0.5

CPU=10 u.t

La eliminación del nodo 3 implica un doble

calculo:

201010

5.015.0·

342324

342324

=+=+====

µµµxppp

10100

5.015.0·

344344

344344

=+=+====

µµµxppp

Paso 2: Eliminación del bucle

Inicio

Fin

1

2

4

CPU=40 u.t

CPU=10 u.t

P=0.5CPU=20 u.t

P=0.5CPU= 0 u.t P=1

CPU=20 u.t

205.01

105.010

1'

15.01

5.01

'

44

44444141

44

4141

=−

+=−

⋅+=

=−

=−

=

xp

p

pp

p

µµµ

Page 77: apuntes de dec

Diseño y evaluación de configuraciones

69

Paso 3: Eliminación del nodo 4

Inicio

Fin

1

2

CPU=40 u.t

CPU=10 u.t

P=0.5CPU= 0 u.t

P=0.5CPU=40 u.t

402020

5.015.0·

412421

412421

=+=+====

µµµxppp

Paso 4: Eliminación del nodo 1

Inicio

Fin 2

CPU=50 u.t

P=0.5CPU= 0 u.t P=0.5

CPU=50 u.t

501040

111·

1212

1212

=+=+====

µµµ ii

ii xppp

501040

5.015.0·

122122

122122

=+=+====

µµµxppp

Paso 5: Eliminación del bucle

Inicio

Fin 2

CPU=50 u.t

CPU= 50 u.t

505.01

505.00

1'

15.01

5.0

1

'

22

222222

22

22

=−

+=−

⋅+=

=−

=−

=

xp

p

p

pp

ff

ff

µµµ

Page 78: apuntes de dec

TEMA 3: Caracterización de la carga

70

Paso 6: Eliminación del nodo 2

Inicio

Fin

CPU=100 u.t

1005050

111·

22

22

=+=+=

===

fiif

fiif xppp

µµµ

Tras la reducción del grafo, la carga de CPU es equivalente a 100 unidades de tiempo.

♦ ♦

Page 79: apuntes de dec

Tema 4

INTRODUCCION A LAS TECNICAS

ANALITICAS: ANALISIS OPERACIONAL

71

4.1 INTRODUCCION

La teoría de colas permite determinar el tiempo que un trabajo pasa esperando en las

distintas colas de un sistema. Una red de colas es un conjunto de estaciones de servicio y

de clientes. Las estaciones de servicio representan los recursos del sistema y los clientes,

usualmente representan a los usuarios.

Una estación de servicio consta de un servidor más una cola de espera asociada. Se

establece por tanto la siguiente relación entre los modelos y los sistemas reales:

Servidor (modelo) <=> Recurso del sistema (hardware)

Cola (modelo) <=> Cola (software) asociada al recurso

Se denomina resolución o evaluación analítica a la obtención de los índices de

prestaciones del sistema a partir de un modelo de colas. Básicamente consiste en la

resolución de un conjunto de ecuaciones que se deducen a partir del modelo y de sus

parámetros.

El objetivo del análisis operacional es llegar a establecer relaciones entre las variables

que caracterizan la carga y las que miden el comportamiento. El término operacional implica

que el sistema es directamente medible. Por tanto, una suposición o hipótesis operacional

será aquella que puede ser comprobada o verificada mediante la medida

Page 80: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

72

4.2 ESTACION DE SERVICIO: VARIABLES OPERACIONALES

En la Figura 4.1 se muestra un esquema de una estación de servicio.

Estación de servicio

Cola Servidor

Salidas (C)Llegadas (A)

Manantial

Figura 4.1: Esquema de una estación de servicio

Cuando un cliente llega a la estación de servicio, si el servidor esta ocupado atendiendo

a otro cliente, tendrá que esperar en la cola hasta que el servidor quede libre. Una vez que un

cliente recibe servicio abandona la estación.

El conjunto (Estación de servicio + clientes) constituye la versión más simple de un

modelo de red de colas. Básicamente este modelo tendrá dos parámetros:

• La intensidad de carga o tasa de llegada de los clientes se mide en

(peticiones/segundo).

• La demanda de servicio, que es el tiempo medio de servicio de un cliente,

se mide en (segundos)

Los clientes en una estación de cola compiten por el servidor. Por ello el tiempo de

residencia estará compuesto por un posible tiempo de espera y un tiempo de servicio. Se

utilizan para representar recursos del sistema en los cuales los clientes compiten por el

servicio (CPU, dispositivos de E/S,...)

Page 81: apuntes de dec

Diseño y evaluación de configuraciones

73

4.2.1 Variables operacionales en una estación de servicio

4.2.1.1 Variables operacionales básicas

Las variables operacionales básicas son las que se pueden medir directamente sobre el

sistema durante un intervalo de observación finito.

• T (seg), intervalo de observación o de medida del sistema.

• A (peticiones o clientes), número de peticiones llegadas o clientes durante

el intervalo T.

• C (peticiones o clientes), número de peticiones completadas o servidas

durante el intervalo T.

• B (seg), tiempo durante el cual el recurso observado (la estación de

servicio) ha estado ocupado.

4.2.1.2 Variables operacionales deducidas

Las variables operacionales deducidas se deducen a partir de las básicas y son:

n Tasa de llegada λ (peticiones/segundo), mide las llegadas al sistema o a la

estación de los clientes o peticiones por unidad de tiempo.

TA=λ (4.1)

n Productividad X (peticiones/segundo), es el número de peticiones

completadas por unidad de tiempo.

TC

X = (4.2)

n Utilización U (adimensional), mide la proporción de tiempo durante el cual el

servidor ha estado ocupado.

TB

U = (4.3)

Page 82: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

74

n Tiempo medio de servicio S (segundos/petición), mide el tiempo durante el

cual un cliente ocupa el servidor.

CB

S = (4.4)

4.2.1.3 Leyes y teoremas operacionales

La ley operacional de la utilización, dice que la utilización de la estación de servicio viene

definida por el producto de la productividad del sistema y el tiempo medio de servicio.

SXCB

TC

TB

U ⋅=⋅== (4.5)

El teorema del equilibrio del flujo de trabajos dice que el número de llegadas es igual al

número de salidas durante el intervalo de observación.

XCA =⇔= λ (4.6)

De acuerdo con la ecuación anterior la ley de utilización se puede reescribir como:

SU ⋅= λ (4.7)

4.3 REDES DE COLAS

Para representar o modelar un sistema o subsistema informático se suele utilizar un

conjunto de estaciones de servicio relacionadas entre sí, constituyendo lo que se denomina

una red de colas.

En la siguiente discusión se va a trabajar con valores medios, lo que es equivalente a

considerar que todos los trabajos son del mismo tipo, es decir, solicitan los mismos

recursos el mismo número de veces por trabajo y cada vez solicitan el mismo servicio del

recurso.

Otra hipótesis de trabajo es considerar que en un instante dado, un cliente puede estar

presente únicamente en una estación de servicio.

Page 83: apuntes de dec

Diseño y evaluación de configuraciones

75

Se distinguen tres tipos de redes:

• Cerradas, se utilizan para representar sistemas batch y sistemas

interactivos.

• Abiertas, se utilizan para representar sistemas transaccionales.

• Mixtas

4.3.1 Redes cerradas

No tienen ni llegadas ni salidas externas, por lo que el número de trabajos o clientes en el

sistema permanece constante.

En el estudio de las redes cerradas se toma como dato el número de trabajos N y se

pretende determinar la productividad X a la cual se completan los trabajos.

4.3.1.1 Sistemas BATCH

Disco 1

Disco 2

Disco 3

Disco 4

Disco 5

Disco 6

CPU

Figura 4.2: Modelo de redes de colas para un sistema batch.

Page 84: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

76

En un sistema batch cuando se termina un trabajo es inmediatamente reemplazado por

otro. Para especificar la intensidad de carga bastará con indicar el número medio de trabajos

activos N o, lo que es lo mismo, el factor de multiprogramación.

4.3.1.2 Sistemas Interactivos

Disco 1

Disco 2

Disco 3

Disco 4

Disco 5

Disco 6

CPU

Estaciónde retardo

Figura 4.3: Modelo de redes de colas para un sistema interactivo.

En los sistemas interactivos para especificar la intensidad de carga se tendrán que

especificar dos parámetros:

• N que es el número de terminales activos (clientes).

• Z que es el tiempo de reflexión, es decir, tiempo que por término medio, los

usuarios utilizan los terminales entre dos interacciones consecutivas.

Se puede decir que cada terminal está manejada por un usuario que alterna períodos de

reflexión y de espera. En un periodo de reflexión, el usuario contempla el resultado de la

interacción anterior y prepara la siguiente y, por tanto, el subsistema central (formado por la

CPU y las unidades de E/S) no efectúa ningún trabajo para él. Por otro lado cuando transmite

una petición, el usuario entra en un periodo de espera en el que permanece mientras el

subsistema central efectúa el trabajo solicitado

Para modelar las terminales, se introduce un tipo de estación de servicio denominada

estación de retardo.

Page 85: apuntes de dec

Diseño y evaluación de configuraciones

77

4.3.2 Redes abiertas (Sistema transaccional)

Poseen llegadas y salidas externas. En consecuencia el número de trabajos en el

sistema varía a lo largo del tiempo.

Disco 1

Disco 2

Disco 3

Disco 4

Disco 5

Disco 6

CPU

Llegadas

Salidas

Figura 4.4: Modelo de redes de colas para un sistema transaccional.

Para el análisis de los sistemas representados por este tipo de redes se parte de una

productividad conocida, a partir de la cual se trata de obtener los índices de prestaciones

tales como el tiempo de respuesta.

El número de clientes en un sistema transaccional varia con el tiempo. Los clientes que

completan su servicio abandonan el sistema.

4.3.3 Redes mixtas

Se trata de modelos abiertos para unos tipos de cargas y cerrados para otros. En el

esquema de la Figura 4.5 el sistema es cerrado para trabajos interactivos y abierto para

trabajos de tipo transaccional.

Page 86: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

78

Subsistemacentral

Transacciones concluidas

Trabajos transaccionales

Terminales

Trabajos interactivos

Figura 4.5

4.3.4 Resumen comparativo

Las cargas interactivas y batch tienen una población total fija (número de clientes en el

sistema). Una carga interactiva con un tiempo de reflexión Z=0 será totalmente equivalente a

una carga batch.

Tanto en los sistemas interactivos como en los transaccionales, la población en el

subsistema central (sistema sin terminales) varía, siempre que en el sistema interactivo se

cumpla Z ≠ 0. El número total de clientes en el subsistema central de un sistema interactivo

estará limitado por N, el número de terminales activos. En los sistemas transaccionales no

existe este límite superior.

4.3.5 Medidas operacionales en redes.

4.3.5.1 Variables operacionales básicas

Se supone una red de colas de K dispositivos o estaciones de servicio. Para un periodo

de observación T se obtienen las siguientes medidas para cada estación i, para i=1, 2,...,K:

• Ai número de llegadas a la estación i.

• Bi tiempo de ocupación de la estación i.

Page 87: apuntes de dec

Diseño y evaluación de configuraciones

79

• Ci j número de veces que un trabajo requiere servicio del

dispositivo/estación j inmediatamente después de terminar el servicio en el

dispositivo/estación i.

Considerando el mundo exterior como estación o servicio 0 se pueden definir:

• A0j número de trabajos cuya primera petición de servicio se produce en la

estación j.

• Ci0 número de trabajos cuya última petición de servicio se produce en la

estación i. Se supone que C00=0.

El número de trabajos terminados en un dispositivo o estación i será:

KiCCK

jiji ...,,2,1

1

== ∑=

(4.8)

El números de llegadas al sistema es:

∑=

=K

jjAA

100 (4.9)

Mientras que el número de salidas del sistema es:

∑=

=K

iiCC

100 (4.10)

En un sistema cerrado se cumple que A0 = C0.

4.3.5.2 Variables operacionales deducidas

La utilización del dispositivo i viene dada por:

TB

U ii = (4.11)

El tiempo medio de servicio del dispositivo i viene dado por:

Page 88: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

80

i

ii C

BS = (4.12)

La productividad o tasa de salida del dispositivo i viene dada por:

TC

X ii = (4.13)

Finalmente, la frecuencia de encaminamiento qi j se define como la fracción de trabajos

que se dirigen al dispositivo j al terminar el servicio en el dispositivo i

=

==

0

...,,2,1

0

0 iA

A

KiC

C

qj

i

ij

ij (4.14)

Se cumple que

10

=∑=

K

jijq (4.15)

4.4 LEYES OPERACIONALES

4.4.1 Ley del flujo de salida

La productividad o frecuencia de salida del sistema viene dada por la siguiente

expresión:

TC

X 00 = (4.16)

Por la ecuación (4.14)

iiii

ii CqC

CC

q ⋅=⇒= 000

0 (4.17)

Page 89: apuntes de dec

Diseño y evaluación de configuraciones

81

Por otro lado sustituyendo (4.17) en la ecuación (4.10)

∑=

⋅=K

iii CqC

100 (4.18)

Así finalmente sustituyendo (4.18) en (4.16) se obtiene:

∑∑==

⋅=⋅=K

iii

K

i

ii Xq

TC

qX1

01

00 (4.19)

4.4.2 Ley de la utilización

Dado el número de terminaciones Ci y el tiempo de ocupación Bi de una estación o

dispositivo i durante un periodo de observación T. La utilización Ui de dicha estación o

dispositivo i se puede expresar de la siguiente forma:

i

iiii C

BTC

TB

U ⋅== (4.20)

Luego:

iii SXU ⋅= (4.21)

La utilización de un dispositivo es igual al producto de su productividad por el tiempo

medio de servicio.

♦ Ejemplo 4.1: Un disco sirve 40 accesos/seg, y cada acceso requiere un servicio medio de 0.0225 s.

Calcular la utilización del disco

El enunciado dice que XD=40 accesos/ seg y SD=0.0225 seg. Luego aplicando la ley de utilización (4.21)

se obtiene UD=40 x 0.0225=0.9 →90%.

4.4.3 Ley del equilibrio del flujo de trabajos

La hipótesis de flujo de trabajos equilibrados, consiste en suponer que para cada

estación todo lo que entra en ella debe salir, es decir:

Page 90: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

82

KjCACK

iijjj ,...,1,0

0

=== ∑=

(4.22)

Por la ecuación (4.14)

iijiji

ijij CqC

C

Cq ⋅=⇒= (4.23)

Realizando la siguiente suma:

∑∑==

⋅=K

iiij

K

iij CqC

00

y dividiendo ambos miembros de la ecuación por el periodo de observación T se obtiene:

T

Cq

T

Ci

K

iij

j ∑=

⋅=0

(4.24)

Que es equivalente a:

∑=

=⋅=K

iijij KjqXX

0

...,,2,1 (4.25)

Que son las ecuaciones que describen el equilibrio del flujo de trabajos.

Se pueden presentar dos casos:

• Si la red es abierta, el valor de X0 se especifica externamente y las

ecuaciones tienen una solución única para las incógnitas Xi.

• Si la red es cerrada, X0 es inexistente y las ecuaciones no tienen una

solución única, puesto que puede comprobarse que hay K ecuaciones

independientes con K+1 incógnitas.

4.4.4 Ley de Little

La ley de Little dice que el número medio de peticiones Ni en el sistema es igual a la

productividad del sistema Xi por el tiempo medio de residencia Ri

Page 91: apuntes de dec

Diseño y evaluación de configuraciones

83

iii RXN ⋅= (4.26)

En un sistema informático esta ley puede aplicarse a distintos niveles (ver Figura 4.6):

1) A un solo recurso (sin incluir su cola).

2) A un solo recurso (incluyendo su cola).

3) A un subsistema.

4) A todo el sistema en conjunto.

Disco 1

Disco 2

Disco 3

Disco 4

Disco 5

Disco 6

CPU

Estaciónde retardo

1234

Figura 4.6

Page 92: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

84

4.4.4.1 Nivel 1: Aplicación de la ley de Little a un único recurso sin incluir la cola

del mismo.

En este nivel, el recurso es utilizado siempre que haya una petición presente. Por ello la

utilización es la proporción de tiempo durante la cual está presente una petición. Por ello en

este nivel la aplicación de la ley de Little constituye una derivación alternativa de la ley de

utilización.

• Población Ni, utilización del recurso.

• Productividad Xi (peticiones/seg).

• Tiempo de residencia Ri (seg), es el tiempo medio de servicio requerido

por una petición en el recurso.

4.4.4.2 Nivel 2: Aplicación de la ley de Little a un único recurso incluyendo su

cola de espera

A este nivel corresponde la aplicación típica de la ley de Little a un dispositivo.

• Población Ni (peticiones), número total de peticiones en la cola o en

servicio.

• Productividad Xi(peticiones/seg), tasa de terminación de servicios o

peticiones.

• Tiempo de residencia Ri (seg), es el tiempo medio que una petición pasa en

el recurso (tiempo medio de espera en cola + tiempo de servicio)

4.4.4.3 Nivel 3: Aplicación de la ley de Little al subsistema central (el sistema sin

los terminales)

A este nivel ya no se habla de peticiones sino de interacciones

• Población N(usuarios), número de usuarios en el subsistema central

(aquellos que no están pensando).

• Productividad X(interacciones/seg), tasa a las que la interacciones fluyen

entre los terminales y el subsistema central.

Page 93: apuntes de dec

Diseño y evaluación de configuraciones

85

• Tiempo de residencia R(seg), es el tiempo de respuesta, es decir, el

periodo de tiempo desde que un usuario envía una petición hasta que la

respuesta es devuelta al usuario

4.4.4.4 Nivel 4:Aplicación de la ley de Little a todo el sistema (incluyendo los

terminales)

A este nivel ya no se habla de peticiones sino de interacciones entre sistema y

terminales.

• Población N(usuarios), número total de usuarios interactivos.

• Productividad X(interacciones/seg), tasa a la que las interacciones fluyen

entre los terminales y el sistema.

• Tiempo de residencia [R+Z] (seg), suma del tiempo de respuesta R más el

tiempo de reflexión Z de los usuarios

Luego a este nivel la ley de Little se suele expresar de la siguiente forma:

)( ZRXN +⋅= (4.27)

A partir de la cual se suele expresar la ley del tiempo de respuesta de un sistema

interactivo:

ZXN

R −= (4.28)

♦ Ejemplo 4.2: En un entorno interactivo como el de la Figura 4.6 se dispone de las siguientes

medidas:

n Hay 10 terminales activos.

n Por término medio hay 7.5 trabajando

n La productividad del sistema es igual 0.5 interacciones/seg

n Datos del disco 6(A): Sirve 40 peticiones/seg y cada petición requiere una media de

0.0225 s de servicio. Además el número de peticiones presentes es 4.

Page 94: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

86

Calcular:

a) La utilización en el disco A (número de peticiones recibiendo servicio).

b) Tiempo medio de residencia de una petición al disco A.

c) Tiempo medio de espera en la cola de una petición al disco A.

d) Número medio de peticiones en la cola de espera del disco A.

e) Tiempo de reflexión.

Solución:

a) De los datos del enunciado se conoce que la productividad del disco A es XA=40 peticiones/seg.

Además el tiempo medio de servicio es SA=0.0225 seg. Aplicando la ley de utilización se obtiene la

utilización del disco A

%909.00225.040 ⇒=⋅=⋅= AAA SXU

b) Despejando RA de la ley de Little aplicada al disco A, y puesto que se conoce del enunciado que

XA=40 peticiones/seg y que el número medio de peticiones presentes en el disco A es NA=4 se obtiene:

segXN

RA

AA 1.0

404 ===

c) El tiempo medio de residencia de una petición al disco A es igual a la suma del tiempo medio de

servicio más el tiempo de espera en la cola. Puesto que se conoce del enunciado que SA=0.0225 seg y

se ha calculado en el apartado anterior que RA=0.1 seg, entonces el tiempo medio de espera en la cola

es:

segSRt AACA 0775.00225.01.0 =−=−=

d) En el apartado A se ha calculado la utilización del disco A, UA=90%, es decir 0.9 peticiones están en

servicio. Por otro lado del enunciado se sabe que el número de peticiones presentes (cola+servicio) en A

es 4. Luego el número de trabajos en la cola de A es:

peticionesNNN SAACA 1.39.04 =−=−=

e) Despejando R de la ley de Little aplicada al subsistema central, y conocido del enunciado que X=0.5

interacciones/seg y que N=7.5 interacciones.

Page 95: apuntes de dec

Diseño y evaluación de configuraciones

87

segXN

R 155.05.7 ===

Despejando Z de la ley de Little aplicada al sistema incluyendo los terminales, y conocido del enunciado

que X=0.5 interacciones/seg, que N=10 terminales, además R se ha obtenido en el apartado anterior.

Luego:

segRXN

Z 5155.0

10 =−=−=

4.4.5 Ley del flujo forzado

Esta ley relaciona la productividad del sistema con las productividades individuales de

los dispositivos que lo componen. Es decir, establece que los flujos (productividades) tienen

que ser proporcionales unos respectos a otros en todas las partes del sistema

En un modelo abierto, el número de trabajos que abandonan el sistema por unidad de

tiempo define la productividad del mismo.

En un modelo cerrado, ningún trabajo abandona el sistema. No obstante, se puede

considerar que atravesar el enlace exterior equivale a abandonar el sistema e

inmediatamente volver a entrar en el mismo. Por lo tanto, la productividad se define entonces

como el número de trabajos que atraviesan ese enlace por unidad de tiempo.

Se define la tasa de visita a un recurso k, Vk como la relación entre el número de

terminaciones en ese recurso y las que ha habido en el sistema en el mismo periodo de

tiempo.

CC

V kk = (4.29)

Es decir, la tasa de visitas Vk es el número medio de peticiones que una interacción a

nivel de sistema hace a ese recurso.

Despejando Ck de la ecuación (4.29) y dividiendo ambos términos por el periodo de

observación se obtiene la denominada ley del flujo forzado.

Page 96: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

88

kkkk VXXV

TC

TC

⋅=→= · (4.30)

La ley del equilibrio del flujo de trabajos viene definida por la ecuación (4.25),

sustituyendo en ella la ley del flujo forzado, se obtienen las ecuaciones que permiten

determinar las tasas de visita a partir del conocimiento del comportamiento del sistema.

∑=

=⋅+=

=K

iijij KjqVVV

V

10

0

...,,2,1

1

(4.31)

Se trata de K ecuaciones con K incógnitas de las que siempre se puede obtener una

solución única y en las que siempre se puede considerar que V0=1, ya que en el punto donde

se mide el flujo de trabajos se tendrá forzosamente una visita por trabajo.

Por otra parte, se define la demanda de servicio de un recurso k, Dk, como el producto

de la tasa de servicio del recurso por el tiempo medio de utilización del mismo.

kkk SVD ⋅= (4.32)

En definitiva la demanda de servicio Dk expresa la cantidad total de tiempo de servicio

del recurso k que requiere por termino medio una interacción. Las unidades de Dk son por

tanto (seg/ interacción).

Por otra parte, la demanda de servicio D de un trabajo en todos los recursos del sistema

se define

∑=

=N

KkDD

1

(4.33)

Combinando la ley de utilización y la ley del flujo forzado se deduce la siguiente ley:

)()( kkkkkkk SVXSVXSXU ⋅⋅=⋅⋅=⋅= (4.34)

kk DXU ⋅= (4.35)

♦ Ejemplo 4.3: En un sistema batch, cada trabajo requiere una media de 6 accesos a un disco

especifico, y el disco atiende 12 peticiones de los trabajos batch por segundo, entonces:

Page 97: apuntes de dec

Diseño y evaluación de configuraciones

89

a) ¿Cual será la productividad de trabajos batch del sistema?.

b) Otro disco sirve 18 peticiones de trabajo batch por segundo. ¿Cuantos accesos requiere un

trabajo batch, por término medio, a ese segundo disco?

Solución:

a) El enunciado está dando los siguientes datos VD1=6 accesos/trabajo y XD1=12 peticiones/seg. Luego

aplicando la ley del flujo forzado definida en la ecuación (4.30), es inmediato calcular la productividad X

del sistema.

segtrabajosVX

XD

D /2612 ===

b) Ahora se pide calcular VD2, dando como dato XD2=18 peticiones/seg. Puesto que la productividad X del

sistema se ha calculado en el apartado anterior, nuevamente aplicando la ley del flujo forzado es posible

obtener VD2.

trabajopeticionesX

XV D

D /92

1822 ===

♦ Ejemplo 4.4: Determinar el tiempo medio de respuesta para un sistema interactivo con las

siguientes características:

n N=25 terminales

n Tiempo medio de reflexión Z=18 seg.

n Se realizan VD=20 peticiones a un disco especifico por interacción.

n El disco presenta una utilización UD=30 %.

n El tiempo medio de servicio por petición a ese disco es de SD=0.025

Solución:

El tiempo medio de servicio R del sistema se obtendrá a partir de la ley de Little.

Page 98: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

90

ZXN

R −=

Para poder aplicarla es necesario calcular primeramente la productividad X del sistema. Para ello, de la

ley de utilización es posible obtener la productividad XD del disco

)/(12025.03.0

segpeticionesSU

XD

DD ===

Por otra parte, de la ley del flujo forzado es posible obtener la productividad del sistema.

6.02012 ===

D

D

VX

X interacciones/seg

Con lo que finalmente se obtiene:

7.23186.0

25 =−=R seg

♦ Ejemplo 4.5: Si un trabajo hace una media de 20 peticiones a disco y requiere una media de 0.025

seg de servicio en cada visita. ¿Cuál es la demanda se servicio de dicho disco?

El enunciado dice que VD=20 peticiones/trabajo y SD=0.025 seg/petición. Luego aplicando la definición

de demanda de servicio se obtiene DD=0.5 seg.

♦ Ejemplo 4.6: En el sistema en tiempo compartido (Figura 4.7) se han realizado diferentes medidas,

que han permitido determinar que cada programa requiere una media de 5 seg de tiempo de CPU y hace

80 peticiones de E/S al disco A y 100 peticiones al disco B. Por otra parte el tiempo medio de reflexión

de los usuarios es de 18 seg. De las especificaciones de los dispositivos se sabe que el disco A

requiere 50 ms para satisfacer un acceso de E/S y el disco B 30ms por acceso. Además con 17

terminales activos, la productividad del disco A es de 15.7 accesos de E/S por segundo. Calcular la

productividad del sistema y la utilización de los distintos dispositivos..

Page 99: apuntes de dec

Diseño y evaluación de configuraciones

91

Disco A

Disco BCPU

Terminales

Figura 4.7

Solución:

El enunciado proporciona los siguientes datos:

DCPU=5 seg/trabajo

VA= 80 peticiones/trabajo

VB= 100 peticiones/trabajo

Z= 18 seg

SA=50 ms/acceso

SB=30 ms/acceso

N=17 →XA=15.7 peticiones/seg

Según el esquema hay tres recursos la CPU, el disco A y el disco B. Los trabajos deben visitar la CPU,

antes de ir a uno de los discos o volver al terminal. Por ello, la tasa de visita a la CPU es:

1811100801 =++=++= BACPU VVV peticiones/trabajo

El primer paso en el análisis operacional suele ser calcular la demanda de servicio de cada uno de los

dispositivos que constituyen el sistema (CPU, disco A y disco B), la demanda de la CPU es un dato del

problema DCPU= 5 s/trabajo. Mientras que DA y DB se pueden calcular a partir de la definición de

demanda de servicio:

405.080 =⋅=⋅= AAA SVD s/trabajo

Page 100: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

92

303.0100 =⋅=⋅= BBB SVD s/trabajo

Aplicando la ley del flujo forzado al disco A es posible obtener la productividad del sistema ya que se

conocen XA y VA.

1963.080

7.15 ===A

A

VX

X trabajos/s

Con lo que la utilización de cada dispositivo se puede calcular a partir de la ley de utilización UK=X·DK.

%9898.051963.0 ⇒=⋅=⋅= CPUCPU DXU

%5.78785.041963.0 ⇒=⋅=⋅= AA DXU

%9.58589.031963.0 ⇒=⋅=⋅= BB DXU

♦ Ejemplo 4.7: En la Figura 4.8 se representa un sistema en tiempo compartido con una restricción de

memoria, es decir, se puede dar una acción de swapping entre dos interacciones. Así una petición

puede ser forzada a estar en cola para conseguir una partición de memoria antes de competir por los

recursos del subsistema central. Se obtuvieron los siguientes datos medidos observando la carga de

tiempo compartido de un sistema con diferentes cargas:

Discos

CPU

Terminales

Cola de lamemoria

1

23

4

Figura 4.8

Page 101: apuntes de dec

Diseño y evaluación de configuraciones

93

n Número medio de usuarios de tiempo compartido N=23.

n Tiempo medio de respuesta percibido por el usuario R=30 s.

n Productividad de los usuarios de tiempo compartido X=0.45 interacciones/s.

n Número medio de peticiones de tiempo compartido ocupando memoria NenM=1.9

n Tiempo medio de servicio de CPU requerido por interacción DCPU=0.63 s.

Contestar las siguientes preguntas

a) ¿Cuál fue el tiempo medio de reflexión de un usuario de tiempo compartido?.

b) ¿Cuantos usuarios como media, estuvieron intentando obtener servicio?, es decir, ¿Cuantos

usuarios no estaban “pensando” en sus terminales?

c) ¿Cuanto tiempo, como media, pasaba entre la adquisición de memoria y la terminación de la

interacción?

d) ¿Cual es la contribución a la utilización de la CPU de la carga en tiempo compartido?

Solución:

a) Despejando el tiempo de reflexión Z de la ley de Little aplicada al sistema completo (Nivel 4) se

obtiene:

1.213045.023 =−=−= R

XN

Z s

b) Aplicando la ley de Little al Nivel 3, se obtiene:

5.133045.0 =⋅=⋅= RXNquierenM usuarios

El número de usuarios en memoria es NenM=1.9, luego en promedio el número de usuarios que debían

estar en la cola es Ncola=NquierenM -NenM=13.5-1.9=11.6 usuarios

c) Se pide calcular el tiempo de residencia en memoria RenM, aplicando la ley de Little al nivel 2 se

obtiene:

2.445.09.1 ===

XN

R enMenM s

Page 102: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

94

Es decir, de los 30 s de tiempo de respuesta percibidos por el usuario, cerca de 26 s transcurren en

espera de acceder a la memoria.

d) Aplicando la ley de utilización a la CPU se obtiene:

%3.28283.063.045.0 ⇒=⋅=⋅= CPUCPU DXU

♦ Ejemplo 4.8: El modelo de colas del sistema transaccional de la figura tiene 3 dispositivos (una

CPU y dos discos) y 3 clases de transacciones con las características indicadas en la siguiente tabla.

¿Cuál será la utilización de la CPU de este sistema?

Tipo de transacción Frecuencia dellegada (trans/h)

DCPU (s/trans) D disco A(s/trans) Ddisco B (s/trans)

Compilación 480 2.0 0.75 0.25Ejecución 120 11.9 5.00 5.70Sesión de edición 600 0.5 0.20 0.60

Tabla 4.1

Disco A

Disco BCPUEntradas:

-Compilaciones-Ejecuciones-Sistemas de edición

Salidas:

-Compilaciones-Ejecuciones-Sistemas de edición

Figura 4.9

Page 103: apuntes de dec

Diseño y evaluación de configuraciones

95

Solución:

La Tabla 4.1 da la frecuencia de llegada y las utilizaciones de los dispositivos distinguiendo el tipo de

transacción así para calcular la utilización de la CPU, hay que aplicar la ley de utilización sobre la CPU

para cada tipo de interacción y posteriormente sumar los porcentajes resultantes:

%6.26266.00.23600480 ⇒=⋅=⋅⋅= comp

CPUcompcomp

CPU DU λ s

%6.39396.09.113600120 ⇒=⋅=⋅⋅= ejec

CPUejecejec

CPU DU λ

%3.8083.05.03600600 ⇒=⋅=⋅⋅= ses

CPUsesses

CPU DU λ

Luego UCPU=26.6+39.6+8.3= 74.5 %

Page 104: apuntes de dec

TEMA 4: Introducción a las técnicas analíticas: Análisis operacional

96

Page 105: apuntes de dec

Tema 5

ANALISIS DE LOS CUELLOS DE BOTELLA

97

5.1 INTRODUCCION

Un cuello de botella es una limitación de las prestaciones del sistema provocada por

diversas causas: un componente hardware, un componente software o la organización del

sistema.

Un cuello de botella produce una relantización considerable del tráfico de los procesos

en un área del sistema. Así, cuando la demanda de servicio de un determinado componente

excede en frecuencia e intensidad a la capacidad de servicio de ese componente, se dan las

condiciones para la aparición de un cuello de botella.

El término cuello de botella sólo es apropiado cuando el problema en las prestaciones

puede ser atribuido a uno o dos recursos del sistema, ya que en un sistema donde todos o

casi todos los componentes están sobrecargados no se pueden encontrar cuellos de botella

concretos y se habla de un sistema sobrecargado o saturado.

En ocasiones, la eliminación de un cuello de botella hace que aparezca otro distinto, se

dice en ese caso que un cuello de botella esconde otro. Se deben eliminar todos los cuellos

de botella hasta conseguir que el sistema se encuentre equilibrado (balanced).

Por otra parte, los cuellos de botella no están directamente ligados a una configuración

dada, sino que son función, en gran medida, de la carga. Además como la carga en los

sistemas suele variar con el tiempo, pueden aparecer cuellos de botella temporales, que son

aquellos que aparecen por un espacio de medida relativamente corto respecto a la sesión de

medida. Por ello para su detección se suele utilizar un método de interpretación de las

medidas en tiempo real (on line).

Page 106: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

98

5.2 DETECCION Y ELIMINACION DE CUELLOS DE BOTELLA

Existen diversas aproximaciones para la detección de los cuellos de botella,

conceptualmente todas ellas son bastante similares, aunque están basados en técnicas

diferentes (simulación, modelos analíticos, medidas sobre el sistema, ...). El método más

común es el basado en la interpretación a posteriori (off-line) de las medidas realizadas

sobre el sistema. El procedimiento que sigue cualquiera de estos métodos es el siguiente:

1) Debido a síntomas de ineficiencia o algunos de los estudios de evaluación

que se realizan al sistema se sospecha de la existencia de un cuello de

botella. Se debe formular una hipótesis acerca de la localización y causa de

dicho cuello de botella.

2) Se procede a la validación de la hipótesis acerca de la causa del cuello de

botella, para ello se recurre a los datos medidos sobre el sistema, o si

éstos son insuficientes a la recogida de más datos y a su análisis.

3) Una vez confirmada la hipótesis se plantea el problema de eliminar el cuello

de botella o de reducir sus efectos al menos. Para ello hay que determinar

el método más eficaz para eliminarlo. En general se pueden distinguir dos

tipos de modificaciones del sistema para la eliminación de cuellos de

botella:

n Terapias de reposición (upgradding), hacen referencia a

modificaciones del hardware: añadir, reemplazar o incluso eliminar

en ocasiones uno o más componentes hardware.

n Terapias de sintonización (tunning), se trata de modificaciones que

no alteran la configuración pero de alguna manera tienen efecto

sobre la organización del sistema. Como por ejemplo, cambiar

ficheros de un disco a otro, cambiar un disco de canal, etc. Este tipo

de terapias son, en general, más económicas y menos radicales

que las terapias de reposición.

4) Se procede a la modificación del sistema de acuerdo con el método

seleccionado.

Page 107: apuntes de dec

Diseño y evaluación de configuraciones

99

5.3 ANALISIS DE LOS CUELLOS DE BOTELLA

La técnica analítica del análisis de límites asintóticos permite obtener, con muy poco

cálculo, los límites superior e inferior de la productividad y del tiempo de respuesta del

sistema como funciones de la intensidad de carga (número o frecuencia de llegada de

clientes al sistema). Se trata por tanto, de una aproximación de gran utilidad para el análisis

de sistemas informáticos mediante modelos de redes de colas.

Esta técnica se utiliza sobre todo en estudios preliminares que conllevan la

consideración de un gran número de configuraciones candidatas.

Las gráficas de límites proporcionan una idea de que reducción de la demanda de

servicio en la estación cuello de botella es necesaria para alcanzar unos determinados

objetivos de prestaciones. La demanda de servicio en una estación puede reducirse bien

desplazando algún trabajo de estación o sustituyendo el servidor por uno más rápido.

Los modelos que se van a considerar se pueden describir según los siguientes

parámetros:

• K, número de estaciones de servicio.

• Dmax, la mayor de las demandas de servicio en las estaciones del sistema.

• D, la suma de las demandas de servicio en las estaciones.

• El tipo de clientes (batch, conversacional o transaccional)

• Z, el tiempo medio de reflexión (tipo conversacional).

Para modelos con carga transaccional, los límites de la productividad indican la

frecuencia de llegada máxima que puede procesar el sistema, mientras que los límites del

tiempo de respuesta reflejan el tiempo máximo y mínimo posible que esos clientes pueden

experimentar como función de la tasa de llegada al sistema.

Para modelos con un tipo de carga batch o conversacional, los límites indican la

productividad y el tiempo de respuesta máximos y mínimos posibles como función del

número de clientes en el sistema.

Page 108: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

100

Se denominan límites optimistas a los límites superior de la productividad e inferior del

tiempo de respuesta, ya que son los que indican las mejores prestaciones posibles.

Se denominan límites pesimistas a los límites inferior de la productividad y superior del

tiempo de respuesta, ya que son los que indican las peores prestaciones posibles.

La validez de los límites depende de un supuesto: que la demanda de servicio de un

cliente en una estación no dependa de cuantos clientes haya concurrentemente en el

sistema, o en que estaciones estén localizados.

5.3.1 Carga transaccional

En este tipo de cargas, el límite de la productividad indica la frecuencia máxima de

llegadas de clientes que el sistema puede procesar con éxito. Si la tasa de llegada excede

este límite, los clientes sin procesar se irán acumulando cada vez en mayor cantidad. En

este caso se dice que el sistema está saturado.

Se indicará la estación cuello de botella como estación max.

El límite superior de la productividad en función de la frecuencia de llegada λ es:

maxDX

1)( ≤λ (5.1)

Mientras que el límite inferior del tiempo de respuesta en función de la frecuencia de

llegada λ es:

)(λRD ≤ (5.2)

◊ Demostración:

La utilización de la estación k viene dada mediante la ley de utilización:

kkk SXU ⋅= (5.3)

Si se denomina mediante λ a la frecuencia de llegada, entonces por la ley del flujo forzado (X= λ mientras

el sistema pueda):

kk VX ⋅= λ (5.4)

Page 109: apuntes de dec

Diseño y evaluación de configuraciones

101

Es posible reescribir la ley de utilización de la siguiente forma:

kk DU ⋅= λ (5.5)

Siendo Dk la demanda de servicio de la estación k.

Para obtener el límite de la frecuencia de llegada λ, hay que darse cuenta que mientras que a todas las

estaciones les quede capacidad sin utilizar (que su utilización sea menor que 1), se puede permitir una

frecuencia de llegada mayor. Por el contrario, si cualquiera de las estaciones se satura (su utilización

llega a 1), se satura todo el sistema, ya que no se puede atender con éxito un incremento en la

frecuencia de llegada. En consecuencia el límite de λ, es la menor frecuencia λsat que satura algunas de

las estaciones.

La estación que satura a la frecuencia λsat se denomina estación cuello de botella, que es la estación

con la mayor demanda de servicio. Se indicará a la estación cuello de botella como la estación max.

Entonces:

1)( ≤⋅= maxmax DU λλ (5.6)

y

maxsat D

1=λ (5.7)

Así se verifica que si λ>λsat, el sistema estará saturado, mientras que si λ<λsat el sistema es capaz de

atenderla.

En el caso del tiempo de respuesta, supuesto que la frecuencia de llegada λ <λsat, se pueden considerar

dos situaciones extremas:

1) El mejor de los casos, es que ningún cliente interfiera nunca con otro, de manera

que no haya retardos de espera. En este caso, el tiempo de respuesta del sistema

para cada cliente es simplemente la suma de sus demandas de servicio, D.

2) En el peor de los casos, n clientes llegan juntos cada n/λ unidades de tiempo. Los

clientes al final del lote tendrán que esperar en cola, experimentando grandes

tiempos de respuesta. A medida que se incrementa el tamaño del lote, más y más

clientes estarán esperando cada vez mayor cantidad de tiempo. En consiguiente, por

muy baja que sea la frecuencia de llegada, no existe límite pesimista para el tiempo

de respuesta.

Page 110: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

102

5.3.2 Carga batch o conversacional

Se puede demostrar que los límites asintóticos de la productividad del sistema X(N) son:

+

≤≤+ ZD

ND

minNXZND

N

max

,1

)( (5.8)

Se observa que el límite optimista consta de dos componentes: 1/Dmax que se aplica

bajo carga pesada (mucha carga en el sistema) y N/(D+Z) que se aplica bajo carga ligera

(poca carga en el sistema).

Existe un valor particular de población, denominado N*, tal que para toda N>N* se

aplicará el límite de carga pesada y si N<N* se aplicara el límite de carga ligera. Dicho valor

N* se obtiene igualando ambos límites:

ZDN

Dmax +=

*1(5.9)

Despejando N* se obtiene:

maxDZD

N+=* (5.10)

N* se denomina punto de saturación del sistema y representa:

• Para cargas batch, N* indica el número teórico de trabajos que pueden

procesarse sin colas. Cuando N supera ese valor se formarán colas de

espera al menos en la estación cuello de botella.

• Para cargas conversacionales, N* indica el número de terminales a partir

del cual al menos un recurso o estación estará saturado.

En las Figura 5.1a y 5.1b se muestra en gris la zonas delimitada por los límites

asintóticos de la productividad en un sistema batch y en un sistema conversacional

respectivamente.

Page 111: apuntes de dec

Diseño y evaluación de configuraciones

103

X(N)

NN*1

1/D

1/Dmax

N/D

(a)

X(N)

NN*1

1/(D+Z)

1/Dmax

N/(D+Z)

N/(ND+Z)

(b)

Figura 5.1: Zonas de productividad definidas por los límites asintóticos en: (a) Un sistema batch.

(b) Un sistema conversacional.

◊ Demostración:

Se considera en primer lugar una situación con mucha carga en el sistema, lo que se denomina como

carga pesada. A medida que aumenta el número de clientes (N) en el sistema, la utilización de todas

las estaciones irá aumentando. No obstante existe un límite a ese incremento, ya que ninguna

utilización puede ser mayor que 1. Por lo tanto de la ley de utilización se establece que para cada

estación k:

1)()( == kk DNXNU (5.11)

Es decir, cada estación limitará la productividad máxima que puede conseguir el sistema. Y como la

estación cuello de botella, aquella para la cual Dk es máxima, será la primera en saturarse, será

también la que restrinja la productividad del sistema de manera más severa. En consecuencia, se puede

concluir que:

maxDNX

1)( ≤ (5.12)

Supóngase ahora una situación de carga ligera. Como caso extremo, un único cliente en el sistema

obtendrá, de acuerdo a la ley de Little, una productividad de ZD +

1 , ya que cada interacción consta de

un periodo de servicio cuya duración media es

∑=

=N

KKDD

1

Page 112: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

104

y de un tiempo de reflexión Z. A medida que se añadan más clientes al sistema se pueden dar dos

situaciones límite:

n La productividad mínima se dará cuando cada cliente adicional sea colocado en cola

tras todos los clientes ya presentes en el sistema. En este caso, con N clientes en

el sistema, consumirá (N-1)D unidades de tiempo hasta que los clientes por delante

de él hayan sido servidos, D unidades de tiempo en su propio servicio, y Z de

reflexión, de manera que la productividad de cada cliente será 1/(ND+Z), y la del

sistema N/(ND+Z).

n La productividad máxima posible se dará cuando cada cliente adicional no sea

retrasado por ningún otro cliente del sistema. En ese caso, no se consumirá tiempo

alguno en cola, se empleará D unidades de tiempo en servicio y Z en reflexión. Así la

productividad de cada cliente será 1/(D+Z), y la del sistema N/(D+Z).

Por otra parte, los límites asintóticos del tiempo de respuesta R(N) son:

( ) NDNRDZNDmax max ≤≤− )(, (5.13)

En las Figura 5.2a y 5.2b se muestra en gris la zonas delimitada por los límites

asintóticos del tiempo de respuesta en un sistema batch y en un sistema conversacional

respectivamente.

R(N)

NN*1

D

N ·D

N ·Dmax

(a)

R(N)

NN*1

D

N ·DN ·Dmax -Z

(b)

Figura 5.2: Zonas de tiempo de respuesta definidas por los límites asintóticos en: (a) Un sistema

batch. (b) Un sistema conversacional.

Page 113: apuntes de dec

Diseño y evaluación de configuraciones

105

♦ Ejemplo 5.1: Utilizar la técnica de los límites asintóticos para calcular las prestaciones más

optimistas de los sistemas IBM 3790, IBM 8130 e IBM 8140, de acuerdo con la demandas de servicio

(en segundos) medidas y estimadas que se muestran en la Tabla 5.1.

Sistema DCPU (s/trans) D disco A(s/trans)IBM 3790 4.6 4.0IBM 8130 5.1 1.9IBM 8140 3.1 1.90

Tabla 5.1

Los tres sistemas informáticos se pueden modelar por el modelo de colas de la Figura 5.3, con los

siguientes parámetros:

• Número de estaciones de servicio K=2.

• La mayor demanda de servicio es: Dmax1=4.6 seg (en el 3790), Dmax2=5.1 seg (en el

8130) y Dmax3=3.1 seg (en el 8140).

• La suma de las demandas de servicio es D1=8.6 seg, D2=7.0 seg, D3=5.0 seg.

• El tipo de clientes es conversacional.

• El tiempo medio de reflexión es Z=60 seg.

Solución:

El límite optimista de la productividad de un sistema de tipo conversacional viene dado por la siguiente

expresión:

+

≤ZD

ND

minNXmax

,1

)(

Sustituyendo los valores de los parámetros conocidos, se obtienen las expresiones de las curvas del

límite optimista de la productividad asociado a cada sistema y el valor del punto de saturación

91.146.68

,6.4

1)( *

11 =⇒

≤ N

NminNX

Disco A

CPU

Terminales

Figura 5.3

Page 114: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

106

14.130.67

,1.5

1)( *

22 =⇒

≤ N

NminNX

97.200.65

,1.3

1)( *

33 =⇒

≤ N

NminNX

0 5 1 0 1 5 2 0 2 5 3 00

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

0 . 3 5

N

X(N

)

3 7 9 0

8 1 3 0

8 1 4 0

Figura 5.4: Límites optimistas de la productividad para los sistemas 3790, 8130 y 8140.

Por otra parte, el límite optimista del tiempo de respuesta de un sistema de tipo conversacional viene

dado por la siguiente expresión:

( ) )(, NRDZNDmax max ≤−

Sustituyendo los valores de los parámetros conocidos, se obtienen las expresiones de las curvas del

límite optimista del tiempo de respuesta asociado a cada sistema.

( ) )(6.8,606.4max 1 NRN ≤−⋅

( ) )(0.7,601.5max 2 NRN ≤−⋅

( ) )(0.5,601.3max 3 NRN ≤−⋅

Page 115: apuntes de dec

Diseño y evaluación de configuraciones

107

0 5 1 0 1 5 2 0 2 5 3 00

5

1 0

1 5

2 0

2 5

3 0

N

R(N

)

3 7 9 0

8 1 3 0

8 1 4 0

Figura 5.5: Límites optimistas del tiempo de respuesta para los sistemas 3790, 8130 y 8140.

Las Figuras 5.4 y 5.5 revelan que con carga pesada las prestaciones del 8130 son inferiores a las del

3790. Esto es consecuencias del hecho de que el 8130 tiene una CPU más lenta, estación que es

precisamente el cuello de botella del sistema. Por lo tanto el reemplazar los 3790 por 8130 conllevaría

una degradación de las prestaciones en cuento el número de terminales activos sobrepasará N*2=13.

♦ Ejemplo 5.2: Se considera un sistema informático de tipo conversacional, modelado mediante un

modelo de colas con tres estaciones de servicio (K=3). Se conocen los siguientes datos del sistema: el

tiempo de reflexión es Z=15, y las demandas de servicio de cada estación son D1=5 seg, D2=4 seg y

D3= 3 seg. a) Obtener los límites asintóticos optimistas, realizar un estudio de los mismos considerando

que Dmax toma los valores 5, 4 y 3 seg. b) Si se duplica la velocidad, reduciendo la demanda de servicio

de la estación cuello de botella primaria, obtener los límites asintóticos optimistas de la productividad y

del tiempo de respuesta del sistema. c) Si se duplica la velocidad, reduciendo la demanda de servicio

de la estación cuello de botella secundaria, obtener los límites asintóticos optimistas. d) Dibujar en una

misma gráfica los límites obtenidos en los tres apartados anteriores.

Page 116: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

108

Solución:

a) De los datos proporcionados en el enunciado se deduce que la estación cuello de botella es la

estación 1, Dmax=D1= 5 seg. Además la demanda total es D=D1+ D2+ D3=5+4+3= 12 seg. Sustituyendo

los valores de los parámetros conocidos, se obtienen las expresiones de las curvas del límite optimista

de la productividad y del tiempo de respuesta del sistema.

=

+≤

27,

51

1512,

51

)(N

minN

minNX

( ) )(12,15·5 NRNmax ≤−

Si se supone, como dice el enunciado, que Dmax=D2=4 seg, las expresiones de las curvas del límite

optimista de la productividad y del tiempo de respuesta del sistema serían:

=

+≤

27,

41

min1512

,41

min)(NN

NX

( ) )(12,15·4max NRN ≤−

Y si se supone la posibilidad, como dice el enunciado, que Dmax=D3=3 seg, las expresiones de las

curvas del límite optimista de la productividad y del tiempo de respuesta del sistema serían:

=

+≤

27,

31

min1512

,31

min)(NN

NX

( ) )(12,15·3max NRN ≤−

Se han representado en la Figura 5.6, los límites asintóticos optimistas de productividad y tiempo de

respuesta para los casos de Dmax=5, 4 y 3 seg. Estos gráficos proporcionan una visión de la mejora de

prestaciones que reportaría la eliminación del cuello de botella primario. Se observa como cuando se

reduce la carga en la estación cuello de botella, se desplaza hacia arriba el límite optimista para carga

pesada de la productividad y hacia abajo el tiempo de respuesta. Los límites para carga ligera, aunque

también sufren una modificación, son menos sensibles a la demanda de servicio en las estaciones que

los de carga pesada.

Page 117: apuntes de dec

Diseño y evaluación de configuraciones

109

0 5 1 0 1 50

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

0 . 3 5

N

X(N

)

D m a x = 5

D m a x = 4

D m a x = 3

(a)

0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 00

5

1 0

1 5

2 0

2 5

3 0

N

R(N

)

D m a x = 5

D m a x = 4

D m a x = 3

(b)

Figura 5.6: Para diferentes valores de Dmax los límites optimistas de: (a)Productividad. (b)Tiempo de

respuesta

Page 118: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

110

Una conclusión muy importante que se puede obtener de este estudio es que cualquier mejora que no

afecte al cuello de botella no producirá ninguna mejora en las prestaciones del sistema. Ya que la

reducción de las demandas de servicio en las estaciones que no sean cuello de botella solo mejora las

asíntotas de carga ligera, y esta mejora suele ser insignificante.

b) Es decir, ahora se considera que D1 pasa de ser 5 seg a 2.5 seg, y Dmax=D2=4 seg con lo que

5.9345.2 =++=D seg

Con lo que los límites asintóticos son:

=

+≤

5.24,

41

155.9,

41

)(N

minN

minNX

( ) )(5.9,15·4 NRNmax ≤−

c) Es decir, ahora se considera que D2 pasa de ser 4 seg a 2 seg, y Dmax=D1=5 seg con lo que

10325 =++=D seg

Con lo que los límites asintóticos son:

=

+≤

25,

51

1510,

51

)(N

minN

minNX

( ) )(10,15·5 NRNmax ≤−

d) En la Figura 5.7 se muestran los límites optimistas de la productividad y del tiempo de respuesta

obtenidos en los tres apartados anteriores.

Page 119: apuntes de dec

Diseño y evaluación de configuraciones

111

0 5 1 0 1 50

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

N

X(N

)

o r i g i n a l

m o d i f i c a n d o D 1

m o d i f i c a n d o D 2

(a)

0 5 1 0 1 50

5

1 0

1 5

2 0

2 5

3 0

N

R(N

)

o r i g i n a l

m o d i f i c a n d o D 1

m o d i f i c a n d o D 2

(b)

Figura 5.7: Límites optimistas: (a)Productividad. (b)Tiempo de respuesta

Page 120: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

112

♦ Ejemplo 5.3: Se considera el sistema interactivo simplificado de la Figura con K=3 estaciones de

servicio, para el cual se han obtenido las siguientes medidas:

2

Discos

3

Discos1

Terminales

CPU

Figura 5.8

n La longitud del intervalo de medida, T=900 seg.

n Ocupación de la CPU, B1=400 seg.

n Ocupación del disco “lento”, B2=100 seg.

n Ocupación del disco “rápido”, B3=600 seg.

n Trabajos completados o terminados, C0=200 trabajos.

n Operaciones en el disco “lento”, C2=2000 peticiones.

n Operaciones en el disco “rápido”, C3=20000 peticiones.

n Tiempo de reflexión, Z=15 seg.

Obtener las expresiones analíticas de los límites asintóticos de la productividad y del tiempo de

respuesta en los siguientes casos:

a) Considerando los datos proporcionados en el enunciado.

b) Reemplazando en el sistema inicial la CPU por una dos veces más rápida.

c) Equilibrando las demandas en los discos en el sistema inicial, desplazando algunos ficheros

del disco rápido al lento. Se considerará sólo el efecto primario, el cambio en la velocidad del

disco, y se ignorarán los posibles efectos secundarios tales como el hecho que el tamaño

medio de bloque puede ser diferente en los dos discos.

d) Añadiendo en el sistema inicial un segundo disco rápido (estación 4) para tratar la mitad de

la carga del disco que esté más ocupado de los dos existentes. De nuevo se considerarán

únicamente los efectos primarios del cambio.

Page 121: apuntes de dec

Diseño y evaluación de configuraciones

113

e) Aplicando los tres cambios de manera conjunta: la CPU más rápida, la carga equilibrada

entre los dos discos rápidos y el disco lento.

f) Representar gráficamente los límites optimistas obtenidos en los apartados anteriores y

comentarlos

Solución:

a) Para poder calcular los límites asintóticos en primer lugar es necesario obtener la demanda total D y

la demanda máxima Dmax. En primer lugar, con los datos del enunciado se va a calcular la demanda

asociada a cada una de las tres estaciones de servicio del sistema.

Es conocido que Dk=VK SK, por ello en primer lugar se va a calcular la tasa de visita de cada estación de

servicio:

102002000

0

22 ===

CC

V peticiones/ trabajo (disco “ lento”)

100200

20000

0

33 ===

CC

V peticiones/ trabajo (disco “rápido”)

1111100101321 =++=++= VVV peticiones/ trabajo. (CPU)

En segundo lugar, hay que calcular los tiempos de servicio de cada estación de servicio:

018.0111·200

400· 10

1

1

11 ====

VCB

CB

S segundos/ petición (CPU)

05.02000100

2

22 ===

CB

S segundos/ petición (disco “lento”)

03.020000600

3

33 ===

CB

S segundos/ petición (disco “rápido”)

Luego, la demanda de servicio de cada estación es:

0.2018.0111111 =⋅=⋅= SVD segundos/ trabajo

5.005.010222 =⋅=⋅= SVD segundos/ trabajo

Page 122: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

114

303.0100333 =⋅=⋅= SVD segundos/ trabajo

La estación cuello de botella es aquella que cumpla Dmax = max{D1, D2, D3}, luego en este caso

Dmax=D3=3 seg/trabajo, es el disco “rápido”.

Por otro lado, la demanda total es:

5.50.35.00.23

1

=++== ∑=k

kDD segundos/ trabajo

Luego los límites asintóticos de la productividad y del tiempo de respuesta son:

≤≤

+ 5.20,

31

)(155.5

NminNX

NN

( ) NNRNmax 5.5)(5.5,15·3 ≤≤−

b) Reemplazando la CPU por una dos veces más rápida, es equivalente a reducir a la mitad su

demanda luego ahora D1= 1 seg/trabajo. La estación cuello de botella sigue siendo el disco “rápido”

Dmax=D3= 3 seg/trab. Y la demanda total ahora es D= 1+0.5+3.0=4.5. Luego:

≤≤

+ 5.19,

31

)(155.4

NminNX

NN

( ) NNRNmax 5.4)(5.4,15·3 ≤≤−

c) Se desea hacer que D2=D3 manteniendo la suma de sus tasas de visita:

11032 =+VV

Desarrollando se obtiene lo siguiente:

+

=⇒=

+⇒=+

32

2

32

2

3

3

2

2

11

110110

11110

SS

DSS

DSD

SD

Puesto que los tiempos de servicio son conocidos, sustituyendo se obtiene:

Page 123: apuntes de dec

Diseño y evaluación de configuraciones

115

06.2

03.01

05.01

11032 =

+

== DD seg/trabajo

La estación cuello de botella serían tanto el disco rápido como el lento con una demanda

Dmax=D2=D3=2.06 seg/trabajo. Y la demanda total ahora es D= 2+2.06+2.06= 6.12, luego:

≤≤

+ 12.21,

06.21

)(1512.6

NminNX

NN

( ) NNRNmax 12.6)(12.6,15·06.2 ≤≤−

d) Es decir, ahora K=4, y el segundo disco rápido D4=D3/2=3/2=1.5 seg/trabajo, con lo que ahora

D3=1.5 seg/ trabajo.

La estación cuello de botella serían Dmax= max{ D1, D2, D3, D4}= max{ 2, 0.5, 1.5, 1.5}=2 seg la “CPU”. Y

la demanda total ahora es D= 2+0.5+1.5+1.5= 5.5, luego:

≤≤

+ 5.20,

21

)(155.5

NminNX

NN

( ) NNRNmax 5.5)(5.5,15·2 ≤≤−

e) Es decir:

• Por una CPU el doble de rápida D1=1.0 seg.

• Añadiendo un segundo disco rápido S3= S4.

• La carga equilibrada entre los dos discos rápidos y el disco lento. Es decir D2=D3=D4,

además se debe cumplir la siguiente relación:

110432 =++ VVV

Desarrollando se obtiene lo siguiente:

++

=⇒=

++⇒=++

432

2

432

2

4

4

3

3

2

2

111

110110

111110

SSS

DSSS

DSD

SD

SD

Puesto que los tiempos de servicio son conocidos, y S4 es el asociado a un disco rápido, sustituyendo

se obtiene:

Page 124: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

116

27.1

03.01

03.01

05.01

110432 =

++

=== DDD seg/trabajo

Ahora Dmax= max{ D1, D2, D3, D4}= max{1, 1.27}=1.27 seg. Y la demanda total ahora es D= 1+3*1.27=

4.81, luego:

≤≤

+ 81.19,

27.11

min)(1581.4

NNX

NN

( ) NNRN 81.4)(81.4,15·27.1max ≤≤−

f) Aunque pueda parecer que el cambio (b) debe ser el más significativo, las gráficas demuestran que

no es así. Como el disco “rápido” es originalmente el cuello de botella, los cambios (c) y (d) tienen una

mayor influencia. El cambio (c) proporciona casi tanta mejora como el (d) a pesar de no requerir de

ningún hardware adicional. La combinación de las tres modificaciones, en el cambio (e) es la que

produce los resultados más significativos.

0 5 1 0 1 5 2 0 2 50

0 . 1

0 . 2

0 . 3

0 . 4

0 . 5

0 . 6

0 . 7

0 . 8

N

X(N

)

a

b

c

d

e

Figura 5.9: Comparación de los limites optimistas de la productividad obtenidos en los apartados

anteriores.

Page 125: apuntes de dec

Diseño y evaluación de configuraciones

117

0 5 1 0 1 5 2 0 2 50

5

1 0

1 5

2 0

2 5

3 0

N

R(N

)

a

b

c

d

e

Figura 5.10: Comparación de los limites optimistas del tiempo de respuesta obtenidos en los apartados

anteriores.

Page 126: apuntes de dec

TEMA 5: Análisis de los cuellos de botella

118

Page 127: apuntes de dec

TEMA 6

SELECCION Y CONFIGURACIÓN DE

COMPUTADORES: BENCHMARKING

119

6.1 INTRODUCCION

En general se puede decir que los benchmarks son programas utilizados para medir el

rendimiento de un sistema informático o de alguna de sus partes. La finalidad de sus estudio

puede ser muy variada: comparación de sistemas, su sintonización, la planificación de su

capacidad, la comparación de compiladores en la generación de código eficiente, el diseño

de sistemas o procesadores, etc.

Como programa benckmark se puede usar prácticamente cualquier programa

ejecutable, escrito en cualquier lenguaje de programación, incluso en lenguaje máquina.

Se denomina benchmarking al proceso de comparar dos o más sistemas mediante la

obtención de medidas.

Para conseguir un buen paquete de programas benchmark se debe de seguir una serie

de pasos, siendo los principales:

1) Determinar los objetivos de utilización del benchmark.

2) Escoger los mejores programas de benchmark según los objetivos

determinados en el paso anterior. Por ejemplo, si se desea estudiar el

rendimiento de E/S de un sistema, se eligirán programas con un consumo

importante de E/S y no programas con consumo intensivo de CPU.

3) Se deben comprobar los aspectos del sistema bajo estudio que influyen en

el rendimiento, como pueden ser el sistema operativo, los compiladores y

Page 128: apuntes de dec

TEMA 6: Selección y configuración de computadores: Benchmarking

120

su nivel de optimización, el uso de memorias caché, etc. Además se deben

comprobar que los programas, versiones y datos usados como benchmark

sean los mismos en todas las pruebas.

4) Finalmente, obtenidos los resultados y entendiendo perfectamente qué

hace cada programa benchmark, se debe intentar estudiar la causa de las

diferencias obtenidas en los distintos sistemas evaluados.

6.2 DEFINICIONES Y NECESIDAD DE LOS BENCHMARKS

La palabra benchmark se puede definir de dos formas:

• Definición 1: Los benchmarks son una forma de evaluar las prestaciones

de un sistema informático, bien en su conjunto o de alguna de sus partes.

Además si el benchmark está estandarizado, se puede utilizar para

comparar diferentes sistemas.

• Definición 2: Los benchmarks se pueden definir como conjuntos de

programas completos escritos en lenguaje de alto nivel extraídos de la

carga real y que se consideran representativos de la carga real.

Una vez dadas las diferentes definiciones de benchmark, conviene conocer las

principales aplicaciones de este tipo de programas:

n En la comparación del rendimiento de diferentes sistemas informáticos con

vistas a la adquisición de equipos. Se debe remarcar que estas

comparaciones serán tanto más importantes cuanto mayores y más

complejos sean el sistema y las aplicaciones que debe soportar. De esta

forma será más importantes en máquinas de tipo UNIX (multitarea y

multiusuario) trabajando sobre arquitecturas diversas que en máquinas MS-

DOS (monopuesto y monotarea) trabajando sobre la base de una misma

familia de chips.

Con vistas a la consecución de este objetivo interesa que los benchmarks

estén formados por programas extraídos de la carga real, programas

estándar o una mezcla de ambos, y servirán para comparar el rendimiento

de sistemas informáticos.

Page 129: apuntes de dec

Diseño y evaluación de configuraciones

121

n En la sintonización de sistemas, es decir, cuando se quiere mejorar el

rendimiento de un sistema informático que ya está en funcionamiento. En

este sentido, interesa que los benchmark permitan detectar que partes del

sistema deben mejorarse, o una vez introducidas las modificaciones

comprobar que efectivamente se ha aumentado el rendimiento del sistema.

Suelen ser programas extraídos de la carga real

n En la planificación de la capacidad de un sistema informático, es decir

conocer la capacidad que le queda disponible en previsión de posibles

ampliaciones. Interesa que los benchmarks usados lleven el rendimiento

del sistema hasta el límite, para así poder prever las carencias que

presentará el sistema en el futuro. Para este fin se utilizan programas

artificiales que disponen de parámetros regulables que permiten modificar

la cantidad de consumo de recursos en el sistema.

n En la comparación de compiladores desde el punto de vista de la

generación de código. Los programas elegidos para la comparación de

compiladores pueden ser estándar o extraídos de la carga real. Además

conviene indicar sobre qué arquitectura y sistema operativo se realizan las

pruebas.

n En el diseño de sistemas informáticos o de procesadores. En este caso se

parte de un sistema general inicial, y mediante simulaciones, tomando

como entrada los benchmarks elegidos, se obtiene unos resultados, a partir

de los cuales se intentará ir mejorando paulatinamente el diseño del

sistema.

En el diseño se debe tener en cuenta el tipo de compilador que se emplea,

ya que deben ser tan independientes como sea posible de la arquitectura.

También se pueden estudiar las interrelaciones existentes entre las

distintas arquitecturas, sus implantaciones, los lenguajes de programación

y los algoritmos que ejecutan.

6.3 FACTORES QUE INFLUYEN EN EL BENCHMARKING

Los aspectos más importantes que se deben tener en cuenta cuando se usa cualquier

modelo de la carga para evaluar el rendimiento de un sistema son:

Page 130: apuntes de dec

TEMA 6: Selección y configuración de computadores: Benchmarking

122

n El rendimiento puede depender del tipo y versión del sistema operativo que

tenga instalado el sistema estudiado. Por ello se recomienda que las

comparaciones se realicen sobre el mismo sistema operativo o en caso de

no ser posible se aconseja que las características y parámetros de los

sistemas operativos sean lo más parecidos posible.

n El compilador usado en la prueba es realmente un elemento determinante

del rendimiento obtenido en el sistema, ya que, según la facilidad que tenga

el compilador en generar código eficiente, el modelo de carga se ejecutará

más o menos rápidamente.

n Los lenguajes de programación también influyen sobre los test realizados

con benchmarks, ya que tienen facilidades diferentes en secuencias de

llamadas, punteros, manejo de cadenas de caracteres, etc., lo que

repercutirá directamente sobre los tiempos de ejecución.

n También se debe tener en cuenta el sistema de librerías de ejecución, ya

que, según sean éstas, las funciones que implantan serán más eficientes,

disminuyendo el tiempo de ejecución.

n El tamaño de la memoria caché es un factor muy importante en los

resultados de pruebas de medición del rendimiento, sobre todo cuando se

usan programas de pequeño tamaño. Los tiempos de ejecución varían

notablemente dependiendo de si el programa cabe entero en la caché o si

no cabe y debe acceder a la memoria principal.

n Es conveniente que los programas usados como modelo de carga realicen

una verificación de los resultados obtenidos, para que el usuario sepa que

el benchmark se ha ejecutado correctamente.

6.4 ERRORES COMUNES EN EL BENCHMARKING

Algunos errores que cometen los analistas muy frecuentemente en la comparación de

las prestaciones de sistemas son:

n Representar en la carga de test sólo los comportamientos medios. Las

cargas de test o de prueba se diseñan para que sean representativas de la

carga real, pero se suele representar sólo el comportamiento medio

Page 131: apuntes de dec

Diseño y evaluación de configuraciones

123

ignorando la varianza. Sin embargo, en ciertas ocasiones, será necesario

introducir la varianza o ir a un representación más detallada de las

demandas de recurso.

n Controlar de manera inadecuada el nivel de carga. La carga de test dispone

de varios parámetros que se pueden modificar para incrementar el nivel de

carga en el sistema:

1) Incrementar el número de usuarios, se trata de la opción más

ajustada a la realidad, pero esto representaría emplear más

recursos, por lo que no se suele modificar.

2) Decrementar el tiempo de reflexión de los usuarios, se trata de una

de las opciones más sencillas de implementar, pero esta

modificación no es equivalente a incrementar los usuarios, ya que

no se modifica el orden de las peticiones a los dispositivos, por lo

que la probabilidad de fallo de caché será inferior a la que se

obtendría en un sistema con más usuarios.

3) Aumentar la demanda de servicio por usuario, cambia

considerablemente la carga por lo que ya no resultaría

representativa de la real.

n Ignorar los efectos de la caché. Las memorias caché son muy sensibles al

orden de las peticiones, por ello cada vez es más necesario modelar de

manera precisa el orden de las llegadas.

n Ignorar el overhead del monitor.

n No validar las medidas. Es necesario hacer comprobaciones de las

medidas y cualquier valor que no pueda ser explicado debe ser investigado.

Se deben incluir en las medidas comprobaciones o test automáticos. Por

ejemplo, comprobar que el número total de paquetes enviados por todos los

nodos de una red sea próximo al número total de paquetes recibido.

n No asegurar las mismas condiciones iniciales. Cada ejecución del

benchmark altera el estado del sistema, así por ejemplo, el espacio en

disco se ve reducido y los registros de datos pueden ver modificado su

Page 132: apuntes de dec

TEMA 6: Selección y configuración de computadores: Benchmarking

124

contenido, por ello el experimento puede no ser repetible si se vuelve a

ejecutar el benchmark sobre el sistema modificado.

n No medir las prestaciones del transitorio. La mayoría de los experimentos

de medida, simulaciones y modelos analíticos se diseñan para predecir las

prestaciones en condiciones estacionarias. Esta aproximación es válida en

la mayoría de las ocasiones, aunque si al sistema le cuesta un largo

periodo de tiempo alcanzar el estado estacionario puede ocurrir que el

sistema esté más tiempo en estado transitorio que en estado estacionario.

En esos casos es más realista estudiar las prestaciones en el transitorio.

n Usar las utilizaciones de los dispositivos para comparar las prestaciones.

Las utilizaciones de los dispositivos son índices de prestaciones en el

sentido que dada la misma carga, es preferible tener una utilización de los

recursos menor. Sin embargo, emplearlas para comparar dos sistemas

puede no resultar adecuado, lo correcto es utilizar la productividad del

sistema como índice de comparación.

n Recoger muchos datos pero no analizarlos adecuadamente

Estos errores se suelen cometer de manera involuntaria debido a la inexperiencia. Ahora

bien, también se puede dar el caso de analistas experimentados que comentan estos errores

a propósito para demostrar así las superioridad de sus sistemas.

6.5 BENCHMARKING GAMES

A continuación se proponen algunos ejemplos que pueden llevar a que el resultado de un

estudio de benchmarking sea erróneo:

• Utilizar configuraciones diferentes para ejecutar la misma carga en dos

sistemas. Las configuraciones pueden tener distinta cantidad de memoria,

discos diferentes o número de discos.

• Los compiladores pueden estar diseñados para optimizar la carga.

• Escoger la carga de manera arbitraria, sin verificar su representatividad de

las aplicaciones reales del sistema.

Page 133: apuntes de dec

Diseño y evaluación de configuraciones

125

• Utilizar benchmarks muy pequeños, que dan un 100% de aciertos de

caché, ignorando las posibles ineficiencias de memoria y de organización

de caché.

• Realizar una traducción manual de los benchmarks para optimizar las

prestaciones. A menudo es necesario traducir los benchmarks de manera

manual para que sean ejecutables en los distintos sistemas. Las

prestaciones pueden entonces depender más de la habilidad del traductor

que del sistema bajo prueba.

6.6 DESCRIPCION DE ALGUNOS BENCHMARKS

Se distinguen dos grandes grupos de benchmarks:

1) Programas generales que son programas pensados y diseñados para

estudios de evaluación de prestaciones. Por ejemplo: LINPACK,

DRYSTONE, WHETSTONE.

2) Programas de aplicación que son programas extraídos de las cargas reales

de sistemas o programas tomados como benchmarks pero que se pueden

encontrar como aplicaciones en los sistemas. Por ejemplo: QNAP2, SMPL,

MCNP, GCC, TEX, SPICE

Por otra parte tres paquetes de benchmark muy utilizados en la actualidad son:

• SPEC (Systems Performance Evaluation Cooperative)

• TPC (Transactions Processing Performance Council)

• The perfect benchmark club

6.6.1 Programas LINPACK

El benchmark LINPACK fue desarrollado por Jack Dongarra en 1976 en el Argone

National Laboratory. Es uno de los benchmarks más utilizados en estudios sobre sistemas

científicos y de ingeniería. Estos programas sirven funcionalmente para resolver sistemas

Page 134: apuntes de dec

TEMA 6: Selección y configuración de computadores: Benchmarking

126

densos de ecuaciones lineales, y los resultados de este benchmark deben interpretarse de

acuerdo con la función que desarrollan. Sus principales características son:

1) Estos benchmarks ponen particular énfasis en el cálculo en coma flotante

y, por ello son muy sensibles a la capacidad que tiene el hardware para

realizar este tipo de operaciones.

2) Se trata de programas fácilmente vectorizables.

3) Dependen mucho de las librerías en tiempo de ejecución porque están gran

parte del tiempo ejecutando unas rutinas llamadas BLAS (Basic Linear

Algebra Subroutines) de las que hay dos tipos, las codificadas en

ensamblador y las que lo están en FORTRAN; los sistemas resueltos por

estos programas son:

• Dos sistemas de orden 100, uno de simple precisión y otro de doble

precisión.

• Dos sistemas de orden 1000, uno de simple precisión y otro de

doble precisión. Aunque se reduce en algunos casos el tamaño del

problema a orden 500 debido al elevado tiempo de ejecución.

6.6.2 DHRYSTONE

Es un programa sintético publicado en 1984 por Reinkold P. Weicker de Siemens-

Nixford Information System. El programa fue escrito inicialmente en ADA y posteriormente

fue traducido a C y PASCAL. Se trata de uno de los programas más usados como

benchmark y existen varias versiones de Dhrystone. Sus principales características son:

1) Dhrystone se basa en aspectos no numéricos de la distribución de

características de lenguajes fuente como sistema operativo, compiladores,

editores, etc.

2) El programa no tiene instrucciones en coma flotante en su bucle de

medición, y tampoco realiza llamadas al sistema.

Page 135: apuntes de dec

Diseño y evaluación de configuraciones

127

3) Gran parte del tiempo de ejecución del programa se gasta en funciones de

manejo de cadenas de caracteres. En algunos casos puede llegar al 40%

del tiempo de ejecución.

4) El Dhrystone tiene pocos bucles, por lo que el tiempo de ejecución depende

mucho del tamaño de la caché; si es pequeña, hay muchos fallos de

acceso a instrucción, pero si es grande, el programa puede caber entero,

con lo que se accede rápidamente a todas las instrucciones.

5) Dispone de pocos datos globales, y su tamaño no puede variar como

ocurre en el Linpack.

6) No tiene mecanismos para frustrar la optimización de los compiladores,

con lo que, al comparar resultados, es importante tener en cuenta el nivel

de optimización usado en las distintas pruebas.

7) El programa se compone de 12 procedimientos incluidos en un bucle de

medida con 94 sentencias. Durante un bucle se ejecutan 103 sentencias y

los resultados, normalmente, se dan en dhrystones/segundo (DIPS).

6.6.3 WHETSTONE

Fue el primer programa diseñado como benchmark en 1976 y sus autores fueron H. J.

Curnow y B. A. Wichmann del National Physical Laboratory de Gran Bretaña. Inicialmente

estaba escrito en ALGOL 60, aunque actualmente sólo se usa la versión FORTRAN, tanto de

simple como de doble precisión.

Uno de los problemas que tiene el Whetstone es que no se dispone de una versión

oficialmente controlada, por lo que se debe cuidar al comparar resultados de este programa,

que se esté ejecutando la misma versión y, además, con el mismo número de iteraciones.

Sus principales características son:

1) El programa está compuesto por una serie de módulos, cada uno de los

cuales contiene sentencias de un tipo determinado.

2) El programa tiene un alto uso de operaciones y datos en coma flotante, ya

que representa programas numéricos.

Page 136: apuntes de dec

TEMA 6: Selección y configuración de computadores: Benchmarking

128

3) Gasta mucho tiempo en funciones de librerías matemáticas y, por tanto,

influye mucho en su rendimiento si las librerías son compiladas

previamente.

4) Whestone usa pocas variables locales, por lo que es conveniente que el

compilador ponga las variables globales más usadas en registros para

aumentar el rendimiento del programa.

5) Debido a su pequeño tamaño, Whestone habitualmente cabe en la

memoria caché, por lo que general no se producen fallos en la búsqueda de

las instrucciones.

6) Los resultados normalmente se expresan en MegaWhestones/segundo

(MWIPS).

6.7 UNIDADES UTILIZADAS EN BENCHMARKING

A continuación se listan algunas de las unidades en las que se expresan los resultados

de las pruebas de evaluación del rendimiento:

• MIPS (millones de instrucciones por segundo). Se trata de una de las

unidades más usadas. Se utiliza para comparar sistemas que usan la

misma familia de procesadores, ya que las instrucciones no son las

mismas entre procesadores de familias distintas.

• MFLOPS (millones de operaciones en coma flotante por segundo). Esta

unidad se ve influida por aspectos tales como la variabilidad del tamaño del

problema, además de no contemplar debidamente otras operaciones que

no sean de coma flotante.

• MWIPS (MegaWhestone Instrucciones por segundo) o los DIPS

(Dhrystones por segundo). Es una forma de hacer la medida

independientemente de la máquina ya que lo que hace es fijar el número de

veces que se ha ejecutado el programa y el resultado es el tiempo que ha

tardado en su ejecución.

Page 137: apuntes de dec

Diseño y evaluación de configuraciones

129

• Otra opción consiste en comparar los resultados de la ejecución de un

modelo de carga usando como unidades los milisegundos, segundos,

minutos, etc.

6.8 UN EJEMPLO DE BENCHMARK: PCW

En 1986 la revista PCW propuso un benchmark, que presenta las siguientes

características:

n Los criterios de diseño se especifican de manera independiente a cualquier

lenguaje de programación. Sirve para comparar diferentes versiones de un

mismo lenguaje en una misma máquina, diferentes lenguajes o bien

diferentes máquinas ejecutando el mismo lenguaje. Es por ello, que al

analizar los resultados, habrá que considerar los tiempos, la máquina, el

lenguaje y el compilador utilizados.

n Se trata de un benchmark de pocas líneas, con lo que se trata de no limitar

así el número de usuarios que pudieran ejecutarlo en sus máquinas.

n Consta de los siguientes test:

1) Dos test separados:

• Aritmética entera (IntMath), que proporciona una buena

indicación de la velocidad general del procesador.

• Aritmética real (RealMath), que dependerá de la calidad de

los algoritmos del software o bien del chip de coma flotante.

2) Un test para las funciones logarítmicas y trigonométricas (TrigLog),

de interés sobre todo para los usuarios científicos.

3) Dos test separados para comprobar la velocidad de E/S de las

pantallas de texto y gráficas (TextScrn y GrafScrn). El texto gráfico

no debería utilizar funciones más complejas que plot(x,y) para

permitir así que se pueda ejecutar en muchas máquinas.

4) Un test de la velocidad de los discos (Store). Era el más difícil de

diseñar ya que se ve afectado por muchos factores.

Page 138: apuntes de dec

TEMA 6: Selección y configuración de computadores: Benchmarking

130

La descripción en lenguaje natural del benchmark de PCW es el siguiente:

intmath:

declarar tres variables enteras X, Y y Z

asignar 0 a la variable X y 9 a la Y

escribir ‘Start’ en pantalla

repetir 1000 veces utilizando I como índice del bucle:

asignar a X el valor de X+(Y*Y-Y)/Y

escribir ‘Finish’ y el valor de X en pantalla

realmath:

declarar dos variables reales X e Y

declarar una variable entera I

asignar 0 a X y 9.9 a la Y

escribir ‘Start’ en pantalla

repetir 1000 veces utilizando I como índice del bucle:

asignar a X el valor de X+(Y*Y-Y)/Y

escribir ‘Finish’ y el valor de X en pantalla

triglog:

declarar dos variables reales X e Y

declarar una variable entera I

asignar 0 a X y 9.9 a la Y

escribir ‘Start’ en pantalla

repetir 1000 veces utilizando I como índice del bucle:

asignar a X el valor de X+ sin(arctan(cos(log(y))))

escribir ‘Finish’ y el valor de X en pantalla

textscrn:

Page 139: apuntes de dec

Diseño y evaluación de configuraciones

131

declarar una variable entera I

escribir ‘Start’ en pantalla

repetir 1000 veces utilizando I como índice del bucle:

escribir ‘1234567890qwertyuiop’en pantalla

escribir el valor de I en pantalla

escribir ‘Finish’ en pantalla

grafscrn:

declarar dos variables enteras X e Y

escribir ‘Start’ en pantalla

repetir 100 veces utilizando X como índice del bucle:

repetir 100 veces utilizando Y como índice del bucle:

Trazar el pixel de la posición de pantalla (X,Y)

escribir ‘Finish’ en la pantalla

store:

declarar una variable entera I

escribir ‘Start’ en pantalla

crear un fichero de disco ‘Test’

abrir el fichero ‘test’ para entrada

repetir 1000 veces utilizando I como índice del bucle:

escribir el registro ‘1234567890qwertyuiop’en ‘Test’

cerrar ‘Test’

borrar ‘Test’

escribir ‘Finish’ en la pantalla

Page 140: apuntes de dec

TEMA 6: Selección y configuración de computadores: Benchmarking

132

Una serie de recomendaciones a tener en cuenta son las siguientes:

• Intmath: Utilizar si es posible la división entera. El resultado final de X debe

ser 8000.

• Realmath: A ser posible, utilizar una precisión de seis dígitos. Especificar si

la precisión está muy por encima o muy por debajo de este valor. El valor

final de X debe ser 8899.96.

• Triglog: Los mismos comentarios que en realmath acerca de los números

en coma flotante. Hay que asegurarse, además, que los cálculos se

realizan en radianes y que el logaritmo es natural (en base e). El valor final

de X debe ser -551.242.

• Textscrn: Utilizar un modo de pantalla de 80 columnas por 25 líneas. Si

esto no es posible , utilizar el modo mayor posible, indicando el número de

filas y de columnas del mismo. Si la pantalla no dispone de scroll por

defecto, habrá que hacerlo sin utilizar ningún truco especial que aumente la

velocidad del scroll.

• Grafscrn: Utilizar la pantalla de menor resolución posible que permita alojar

un cuadrado de 100 x100 pixels.

• Store: Especificar las unidades de disco y el sistema operativo si no son

estándares. Utilizar la manipulación de los registros por defecto. No realizar

una declaración previa del tamaño del registro o del fichero de una

declaración previa del tamaño del registro o del fichero. Para manipular el

fichero, utilizar las órdenes más obvias. No utilizar llamadas directas al

sistema operativo.

Page 141: apuntes de dec

TEMA 7

MEJORA DE LAS PRESTACIONES DE UN

SISTEMA: SINTONIZACION

133

7.1 INTRODUCCION

Para mejorar las prestaciones y la eficiencia de un sistema informático es necesario

llevar a cabo un estudio de evaluación de las prestaciones de dicho sistema. Las

operaciones que hay que llevar a cabo en un método de mejora de prestaciones se pueden

agrupar en las siguientes fases (ver Figura 7.1):

Definición de los objetivos

Caracterizaciónde la carga

Selección de laInstrumentación

Diseño del experimento

Validación

Fin del estudio

Objetivos noalcanzados

Objetivos noalcanzables

Figura 7.1: Etapas de un método de mejora de prestaciones.

En las siguientes secciones se describe en detalle cada una de estas etapas.

Page 142: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

134

7.2 DEFINICION DE OBJETIVOS

La definición de los objetivos del estudio es una fase fundamental, ya que en función de

los mismos se determinará el método que se utilizará para analizar las prestaciones del

sistema, la cantidad de recursos que es preciso emplear y la forma de justificar la inversión

necesaria.

Básicamente, la definición de objetivos consta de las etapas que se muestran en la

Figura 7.2.

Análisis de los requerimientos

Definición del entorno(carga, hardware, software)

Identificación del conjuntode variables a analizar

Figura 7.2: Etapas de la definición de objetivos.

Inicialmente los objetivos iniciales deben ser modestos y estar basados en el análisis de

los datos proporcionados por las rutinas de contabilidad, que proporcionan los datos de

partida del estudio y pueden revelar la existencia de problemas no detectados. Estos

problemas se pueden agrupar en las siguientes clases:

n Análisis de los dispositivos de hardware.

n Eficiencia de los programas.

n Problemas de la carga.

n Localización de los cuellos de botella.

Cada una de estas clases o áreas de estudio requerirá unas herramientas y unas

técnicas especificas.

Page 143: apuntes de dec

Diseño y evaluación de configuraciones

135

Por otra parte, también es conveniente fijar el ámbito de estudio, es decir, si se va a

tratar un problema concreto o un problema global.

Ejemplos de objetivos de estudio a nivel global del sistema son:

1) Verificar la posibilidad de evitar o de, al menos, posponer por algún tiempo

la adquisición de nuevo hardware (memoria, periféricos, CPU,...).

2) Reducir el overhead del sistema y en general todas las actividades que no

sean productivas.

3) Reducir la carga actual.

La consecución del segundo y tercer objetivo aumentará la capacidad residual del

sistema y resultará de interés si lo que se pretende es encontrar espacio para nuevas

aplicaciones sin tener que expandir la configuración del sistema.

Por otro lado, el primero, y especialmente, el segundo de los objetivos suelen requerir la

localización de posibles cuellos de botella del sistema.

Ejemplos de objetivos específicos son:

1) Reducir el tiempo medio de respuesta en un porcentaje dado.

2) Determinar si la tasa de paginación es tan elevada que pueda ser necesaria

algún tipo de intervención (ej: la ampliación de la memoria principal).

3) Determinar la mejor distribución de los archivos en los discos conectados a

los diversos canales.

4) Determinar la relación existente entre las utilizaciones de memoria y de

CPU y el número de usuarios conectados.

5) Equilibrar y optimizar la actividad de los canales.

En ocasiones para lograr un determinado objetivo es necesario analizar y resolver

previamente otros problemas.

Page 144: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

136

7.3 CARACTERIZACION DE LA CARGA

En el Tema 3, se trató la caracterización de la carga en detalle. En la Figura 7.3 se

muestran las principales actividades en esta fase.

Análisis de la informacióndisponible

Selección de la cargade test

Construcción del modelode carga

Figura 7.3: Actividades a realizar en la fase de caracterización de la carga

Para caracterizar la carga se suele intentar fragmentar el tiempo total transcurrido en los

tiempos que pasa el sistema ocupado en las distintas actividades. A partir de este análisis

inicial de la carga se podrán determinar sus principales características (su tendencia a

cargar el subsistema de E/S más que la CPU, el tamaño medio de los programas, las tasas

de llegada, ...) y buscar similitudes.

7.4 SELECCION DE LA INSTRUMENTACION

Una vez definidos los objetivos de estudio y caracterizada la carga el siguiente pasó será

medir todas las variables del sistema que se necesitan para dicho estudio, para ello hay que

escoger la instrumentación adecuada.

En la Figura 7.4 se recoge el esquema de las actividades de esta fase

Page 145: apuntes de dec

Diseño y evaluación de configuraciones

137

Análisis de las variablesdisponibles

identificación de lasvariables a medir

Determinación y adquisiciónde la instrumentación que falta

Diseño del experimento

¿Medida posible?

¿La instrumentaciónactual es suficiente?

SI

NO

NO

SI

Figura 7.4: Actividades de la selección de la instrumentación

Se deben conocer los criterios para la selección de la instrumentación de medida y la

capacidad de las diferentes variables que tienen esas herramientas. Se distinguirán tres

áreas:

• Los componentes hardware del sistema.

• El software del sistema (sistema operativo y los programas de sistema y de

usuario).

• La carga, es decir, el conjunto de programas que el sistema tiene que

procesar durante un periodo dado.

7.4.1 Hardware

Es importante detectar los componentes hardware que causan los cuellos de botella,

pero también aquellos que están prácticamente inactivos o infrautilizados. Por otro lado la

determinación de los porcentajes de utilización de cada componente hardware también es

importante para saber qué porción de la capacidad del sistema queda sin utilizar.

Page 146: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

138

A continuación, se presenta una lista en la que se indica, para cada componente

hardware, las variables más útiles que conviene medir así como las herramientas necesarias

para su obtención:

a) CPU

• CPU ocupada o utilización de la CPU. Para medir esta variable se emplean

tanto monitores software como hardware. También se pueden utilizar rutinas de

contabilidad, pero el grado de fiabilidad de las mismas es mucho menor.

• Sólo CPU. Esta variable permite cuantificar el grado de solapamiento entre la

actividad de la CPU y otras actividades. Para medir esta variable se utiliza un

monitor software o un monitor hardware.

• CPU ocupada en estado supervisor, es decir se trata de una medida del

overhead del sistema. Para medir esta variable se utiliza un monitor software y

en algunos casos un monitor hardware.

• CPU ocupada en estado usuario, indica cuanto tiempo pasa la CPU ejecutando

programas de usuario. Para medir esta variable se utiliza un monitor software y

en algunos casos un monitor hardware.

• Ocupación de la CPU para cada usuario. Representa la contribución de cada

usuario a la ocupación de la CPU. Para medir esta variable se utiliza un monitor

software o rutinas de contabilidad.

b) Canales

• Canal ocupado. Indica la utilización de cada canal. Para medir esta variable se

utiliza un monitor software o un monitor hardware.

• Equilibrio de los canales, indica la demanda relativa de los canales y si las

actividades de E/S están equilibradas entre ellos; se deriva de la utilización de

todos los canales. Para medir esta variable se utiliza un monitor software o un

monitor hardware.

• Solapamiento de canal, indica el grado de solapamiento de los canales entre si,

y entre los canales y la CPU. Para medir esta variable se utiliza un monitor

software o un monitor hardware.

Page 147: apuntes de dec

Diseño y evaluación de configuraciones

139

• Longitud de cola en el canal, indica la cantidad de contención en cada canal, o

lo que es lo mismo, hasta que punto es responsable de la existencia de un

cuello de botella. Se suelen obtener la longitud media y máxima de las colas, así

como la cantidad de tiempo durante la cual las colas no están vacías. Para

medir esta variable se utiliza exclusivamente un monitor software.

c) Unidades de control

• Unidad de control ocupada, siempre será superior al tiempo de ocupación de

canal o canales que acceden a la unidad, ya que el controlador estará ocupado

durante el tiempo de la transferencia de datos y además durante la transmisión

de órdenes a los dispositivos y a los canales; si no dispone de memoria caché

local, la diferencia será generalmente muy pequeña, pero si la tiene, puede

llegar a ser bastante apreciable.

• Una elevada utilización de un controlador puede indicar la existencia de una cola

de espera de peticiones de E/S para una de las unidades conectadas al mismo.

Si un controlador atiende a canales conectados a diferentes CPUs, puede haber

competencia también por el controlador. La utilización de un controlador sólo se

puede obtener a partir de una herramienta hardware, mientras que la contención

provocada por él si es medible mediante herramientas software.

d) Dispositivos de acceso directo (discos).

• Ocupación del dispositivo, indica cuánto tiempo necesita el disco para las

operaciones de E/S, que incluyen los tiempos de movimiento del brazo, de

latencia, de transferencia y de resolución de los conflictos en el camino hacia la

memoria central. Se utiliza un monitor software si sólo se necesita el tiempo

total, y un monitor hardware si además se quiere la descomposición del tiempo

total en sus componentes.

• Frecuencia de acceso al dispositivo, indica la frecuencia de las operaciones de

posicionamiento del brazo del disco. Se utiliza monitor software o hardware.

• Tiempo de movimiento del brazo, indica la duración de las operaciones de

posicionamiento del brazo del disco. También proporciona información acerca

de si la posición relativa de los archivos en el disco es la adecuada.

Page 148: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

140

• Cola de espera en el dispositivo, indica el tiempo durante el cual la cola de

espera no está vacía y la longitud media de la misma. Estos índices sólo se

pueden medir a partir de monitores software.

e) Dispositivos de acceso secuencial (cintas)

• Ocupación del dispositivo, mide los tiempos de lectura-escritura,

posicionamiento y rebobinado de cada unidad de cinta. Se utiliza un monitor

software o hardware.

• Solapamiento en la actividad de las cintas, se refiere al solapamiento con la

actividad de otras unidades de cinta. Este índice proporciona una idea de si el

número de unidades de cinta es el adecuado, para medirlo se utiliza un monitor

software o rutinas de contabilidad.

f) Impresoras de línea

• Disponibilidad, hace referencia al tiempo durante el cual la impresora está

disponible y tiene una notable influencia en la productividad del sistema. Se

utiliza en su medida un monitor software o un monitor hardware.

• Ocupación del dispositivo, se expresa normalmente como el número de líneas

impresas en un periodo determinado. Se utiliza en su medida un monitor

software o un monitor hardware o rutinas de contabilidad.

7.4.2 Software

7.4.2.1 Sistema operativo

El overhead del sistema influye tanto en sus prestaciones como en su capacidad, y

puede variar considerablemente en función de las características de la configuración, sobre

todo por la cantidad de memoria disponible y por la propia configuración del sistema

operativo.

El conocimiento de la utilización de cada uno de los módulos del sistema operativo

puede ser útil a la hora de seleccionar los parámetros de generación.

Page 149: apuntes de dec

Diseño y evaluación de configuraciones

141

Mediante la utilización de herramientas hardware se pueden obtener medidas bastante

ajustadas acerca de la utilización de la CPU por parte del sistema operativo, pero si se quiere

conocer también la utilización de la CPU por parte de cada módulo individual del sistema

operativo, así como la longitud media de las colas de espera en los recursos, se tendrá que

recurrir al uso de herramientas software.

7.4.2.2 Programas de sistema y de usuario

Un programa de usuario o de sistema puede modificarse cuando se comprueba su falta

de ineficiencia. Es importante conocer la utilización de la CPU y el número de operaciones de

E/S de cada uno de los programas, de manera global y de cada uno de sus segmentos.

Para obtener esta información se pueden utilizar en ciertas ocasiones las rutinas de

contabilidad, pero suelen proporcionar una información más completa las herramientas

software.

Por ejemplo, un monitor software permite determinar la frecuencia de ejecución de las

distintas sentencias de un programa, así como el número de llamadas al sistema que

genera.

7.4.3 Carga

La información de la carga de programas se obtienen normalmente mediante rutinas de

contabilidad. Los datos recopilados por éstas son procesados por programas de la siguiente

forma:

1) Inicialmente se validan los datos, ya que pueden existir inconsistencias

debido a anomalías en el funcionamiento del sistema.

2) Se adaptan a un formato adecuado para el programa que los procesará.

3) Procesamiento periódico detallado, que abarca periodos de tiempo

variables (unas horas, un día, etc) seleccionados por el usuario para

analizar situaciones específicas de la carga.

4) Procesamiento periódico global, que basándose en los contenidos de una

base de datos de prestaciones, produce informes acerca de la carga

medida y de las actividades del sistema a lo largo de periodos de tiempo de

Page 150: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

142

longitud fija (un mes, un cuatrimestre, un semestre, etc.). Esta base de

datos es actualizada durante el procesamiento periódico detallado.

Los informes se elaboran a menudo indicando utilizaciones de CPU y de los demás

dispositivos para cada usuario o grupos de ellos. La utilización de estas herramientas

permite obtener gran cantidad de información acerca de la carga del sistema, por ejemplo:

• La actividad de cada componente del sistema durante un periodo de tiempo

determinado.

• La existencia de picos de carga durante uno o más días o en horas

determinadas de cada día.

• Número total de operaciones de E/S llevadas a cabo por cada programa en

los distintos dispositivos.

• La contribución a la actividad de la CPU y de los dispositivos de E/S de los

trabajos batch e interactivos.

• La paginación debida a cada usuario en entornos de memoria virtual.

7.5 DISEÑO Y PLANIFICACIÓN DE LA SESIÓN DE MEDIDA

Las operaciones a realizar en le fase de diseño y planificación de la sesión de medida se

muestran en la Figura 7.5

Selección delos parámetros

Planificación del experimento.Control del escenario y del

overhead de la instrumentación

Validación

¿Experimentoválido?

SI

NO

SI

Realización del experimentode medida

Figura 7.5

Page 151: apuntes de dec

Diseño y evaluación de configuraciones

143

Para poder planificar una sesión de medida debe conocerse, al menos someramente, la

carga y su evolución en el tiempo. Las medidas deben llevarse a cabo en un entorno

controlado con carga conocida y no deben hacerse modificaciones en el hardware ni

cambios en los procedimientos habituales de operación durante su realización.

Por otra parte el problema del overhead que causa un monitor software cuando está

activo es un problema más delicado. Si se selecciona de forma adecuada el período de

muestreo, se podrá mantener prácticamente constante el consumo de tiempo de CPU por

parte de la herramienta. Por lo tanto, habrá que seleccionar la longitud de la sesión de

medida (frecuencia de muestreo) de manera que dado un nivel de confianza, la interferencia

con el sistema sea lo más pequeña posible.

Cuando se utiliza una herramienta hardware, hay que tener en cuenta los siguientes

problemas:

• Conexión incorrecta de los sensores.

• Longitud de los cables, pueden aparecer señales retardadas debido a la

diferente longitud de los cables de las mismas.

• La selección de las señales. A menudo se dispone de más de una señal

para detectar el mismo evento o medir la misma cantidad.

7.6 VALIDACION

El esquema global de las operaciones implicadas en esta fase aparece en la Figura 7.6.

Interpretaciónde los resultados

Acciones desintonización

Fin del estudio

¿se pueden lograr los objetivos?

¿Se han logradolos objetivos?

SI

NO

NO

SI

Caracterizaciónde la carga

Diseño del experimento

Figura 7.6

Page 152: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

144

7.7 ESTUDIOS DE SINTONIZACION

En general a la hora de resolver un problema de sintonización de un sistema hay que

seguir los siguientes pasos:

1) Planteamiento del problema, se plantean los síntomas externos de

ineficiencia que han motivado el estudio, así como los objetivos que se

pretenden alcanzar.

2) Medidas e interpretaciones.

3) Acciones emprendidas y verificación de sus efectos.

En las siguientes subsecciones se plantean dos problemas de sintonización:

• Equilibrar un sistema multiprogramado.

• Sintonización de un sistema interactivo.

7.7.1 Equilibrar un sistema multiprogramado

Para mejorar las prestaciones de un sistema multiprogramado es necesaria determinar

la existencia y localización de cuellos de botella. Una vez detectado hay que proceder a la

eliminación o reducción de dicho cuello de botella.

A menudo se revela la existencia de un cuello de botella por los desequilibrios en la

actividad de los componentes del sistema. Pero esto no siempre es cierto, ya que un

sistema puede estar relativamente bien equilibrado y presentar aún cuellos de botella.

Además se ha demostrado que un sistema perfectamente equilibrado no tiene porque

presentar las mejores prestaciones posibles.

En general, se obtienen mejores prestaciones si los componentes más rápidos (a

excepción de la CPU) están más cargados que los lentos. El estado de equilibrio del sistema

puede dar una idea de la posible existencia de cuellos de botella pero no de su ausencia, ya

que no puede ser considerado como un indicador preciso de su “proximidad” al punto de

máximas prestaciones.

Page 153: apuntes de dec

Diseño y evaluación de configuraciones

145

♦ Ejemplo 7.1: Considérese un sistema con dos unidades de disco (disco 1 y disco 2) con unos

tiempos medios de servicio de S1=10 ms y S2=20 ms, respectivamente. Si la tasa total de peticiones

para los dos discos es λ = 45 peticiones/segundo y si se desea que las utilizaciones de los dos discos

sean idénticas. a)Calcular cuales deben ser las tasas de peticiones de cada disco λ 1 y λ 2. b)Calcular

los tiempos medios de respuesta R1 y R2, conocido que los tiempos entre llegadas y los tiempos de

servicio se distribuyen exponencialmente, es decir ii

ii S

SR

·1 λ−= . c) Calcular el tiempo medio del

subsistema formado por los dos discos. d) Proponer alguna forma de mejorar el tiempo medio de

respuesta.

Solución:

a) Puesto que las utilizaciones de los dos discos se desean que sean idénticas, aplicando la ley de

utilización se obtiene:

02.001.0 212211 λλλλ =⇒= SS

Por otro lado, del enunciado se sabe que:

4521 =+= λλλ peticiones/seg

Luego, despejando λ1 y λ2 de ambas ecuaciones se obtiene:

3021

21 =

+⋅

=SS

Sλλ peticiones/seg

15304512 =−=−= λλλ peticiones/seg

Luego la utilización de ambos discos es

%303.001.0·301112 ⇒==== SUU λ

b) Puesto que se conocen tanto la tasa de petición como el tiempo de servicio de cada disco es posible

aplicar la formula para calcular el tiempo de respuesta que se proporciona en el enunciado.

3.141 11

11 =

⋅−=

SS

mseg

6.281 22

22 =

⋅−=

SS

mseg

Page 154: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

146

c) El tiempo medio de respuesta del subsistema formado por los dos discos es:

190286.04515

0143.04530

22

11 =+=+ RR

λλ

λλ

mseg

d) Una posible forma de mejorar el tiempo medio de respuesta sería envíar λ1=38 peticiones/seg al disco

rápido y λ2=7 peticiones/seg al disco lento. Ahora la utilización de cada disco es:

%1414.002.0·7

%3838.001.0·38

2

1

⇒==⇒==

U

U

El tiempo de respuesta de cada dispositivo sería

13.1601.0381

01.01 11

11 =

⋅−=

⋅−=

SS

mseg

25.2302.071

02.01 22

22 =

⋅−=

⋅−=

SS

mseg

Luego el tiempo medio de respuesta del subsistema formado por los dos discos es:

=+=+ 02325.0457

01613.04538

22

11 RR

λλ

λλ

17.2 mseg

Es decir se ha mejorado el tiempo de respuesta en un 10% con respecto a la situación de carga

equilibrada

♦ Ejemplo 7.2: Cuellos de botella en discos y canales

PLANTEAMIENTO DEL PROBLEMA

Se considera un sistema multiusuario batch como el que se muestra en la Figura 7.7. La memoria del

sistema M está dividida en siete particiones; cinco de ellas se dedican a la ejecución de los programas

que se van a evaluar, una la utiliza el sistema y otra se reserva para programas de elevada prioridad. El

80% de la carga lo constituyen programas administrativos y el 20% restante programas de aplicación

científica.

Page 155: apuntes de dec

Diseño y evaluación de configuraciones

147

Las unidades de disco conectadas al canal C 1 contienen áreas de trabajo, librerías y archivos de

usuario. Los discos del canal C2 se dedican al sistema operativo y contienen el sistema, sus librerías y

sus espacios de trabajo.

El objetivo general del estudio es ver si los parámetros de generación del sistema son adecuados y

obtener información acerca de la utilización de los componentes para plantear posibles reposiciones.

CPU

Memoria

C1

C2

C3 C4

C0

CU

CU

CUCU

D1 D2 D3

D4 D5 D6

Sistema

Usuario

LP

C

Figura 7.7

LAS MEDIDAS Y SU INTERPRETACION

Las medidas se tomaron con un monitor software de muestreo, y las sesiones de medida, de una

duración media de tres horas tuvieron lugar de la siguiente forma:

• Durante periodos en los cuales se había observado una disminución apreciable de la

productividad.

• Durante periodos de elevada carga del sistema.

• Durante periodos de cada modificación de la configuración del sistema y de los

parámetros de generación del mismo.

Page 156: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

148

Las medidas iniciales llevaron a la obtención de los diagramas de Gantt y Kiviat-Kent que se muestran

en las Figuras 7.8 y 7.9 respectivamente.

0 10 20 30 40 50 60 70 80 90 100

CPU

C4

C3

C2

C1

70 %

25 %

15 %

15 %

14 %

% Utilización

CHCPU ^ 42 % CHCPU ^ 12 %

Figura 7.8: Diagrama de Gantt

CPU (70 %)

CHCPU^(42 %)

CHCPU^(28 %)

CHCPU^(28 %)

CH

(46 %)

CPU(30 %)

CPU usuario(40 %)

CPU supervisor(30 %)

Figura 7.9: Diagrama de Kiviat-Kent

La utilización media de la CPU es del 70 %, con oscilaciones a lo largo del día entre el 95 % y el 60 %.

Un 30 % se dedica a funciones de supervisor.

El análisis de actividad de los canales muestra que mientras la carga en los canales C1 y C2 (canales a

los que están conectados los discos) está equilibrada, la carga en C3 y C4 (canales responsables de las

unidades de cinta) no lo está.

Page 157: apuntes de dec

Diseño y evaluación de configuraciones

149

De todos los discos el que presenta una mayor utilización es D4, atendido por C2 y que almacena las

librerías del sistema. Un estudio más detallado de la utilización de los contenidos muestra que la librería

de los módulos de supervisor es la más solicitada. Además, algunos de los módulos de supervisor más

utilizados se cargan en disco cada vez que se requieren, en vez de mantenerlos en memoria principal.

Por lo tanto sería conveniente revisar la lista de los módulos residentes.

ACCIONES QUE HAY QUE EMPRENDER

Basándose en los datos medidos sobre el sistema, se plantearon las siguientes acciones para lograr

una mayor disponibilidad de la CPU para los programas de usuario:

1) La reducción de la carga en D4, optimizando, por una parte, la lista de módulos de supervisor

residentes en memoria y por otra parte la ubicación de los archivos en el disco.

2) Equilibrar las cargas en C3 y C4.

EFECTOS

La revisión de la lista de módulos de supervisor residentes a partir de la frecuencia de acceso produce

una reducción considerable de la carga en el disco. La tasa de acceso a la librería correspondiente se

vio reducida en un 70%.

La mejora en la ubicación de los archivos en el disco D4 se consigue a partir de los datos acerca del

movimiento del cabezal, los cuales permiten interferir la secuencia de acceso. A partir de esta

secuencia se intentará minimizar la distancia entre los archivos más utilizados. Además una reducción

en el movimiento del cabezal reduce también el tiempo de CPU desocupada.

Como consecuencia de las acciones emprendidas, la utilización de la CPU debida a programas de

usuario se vio incrementada en un 17%. Un 8% de este incremento se debió a la reducción de la

frecuencia de acceso a la librería y un 9% a la reducción de los tiempos de espera en D4 y al equilibrio

de carga en C3 y en C4.

La utilización global de la CPU se incrementó en un 8% y la variable cualquier canal ocupado (CH) se

redujo a un 40% (de un 46%). Este aumento de la utilización de la CPU por parte de los programas de

usuario mejoró la productividad del sistema en un 10% aproximadamente.

La Figura 7.10 muestra el gráfico de Kiviat del sistema después de las acciones de sintonización.

Page 158: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

150

CPU (78 %)

CHCPU^(52 %)

CHCPU^(27 %)

CHCPU^(13 %)

CH

(40 %)

CPU(22 %)

CPU usuario(57 %)

CPU supervisor(21 %)

Figura 7.10

♦ Ejemplo 7.3: Memoria insuficiente

PLANTEAMIENTO DEL PROBLEMA

CPU

Memoria

C2

C3

C4

C0CU

CU

CU

LP

C

C1CU

Figura 7.11

Page 159: apuntes de dec

Diseño y evaluación de configuraciones

151

Se dispone del sistema de la Figura 7.11, que posee dispositivos de almacenamiento de diferentes

velocidad: un disco rápido en el canal C1, discos más lentos en los canales C2 y C3 y unidades de cinta

en C4.

La productividad del sistema resultaba ineficiente y había muchos trabajos en espera de conseguir

espacio en memoria. A menudo el sistema se mostraba incapaz de procesar su carga diaria en un

mismo día y programas largos solían procesarse incluso a lo largo de varios días.

Por otra parte, la capacidad del sistema era tal que era muy improbables una saturación del mismo con

el nivel de carga actual. Por tanto, el propósito del estudio consiste en determinar la posible existencia

de un cuello de botella a por si se debe rediseñar la configuración del sistema para adaptarlo a la carga

actual.

LAS MEDIDAS Y SU INTERPRETACION

En este estudio se utilizaron las medidas recogidas por las rutinas de contabilidad. Estas rutinas, que

forman parte del sistema, funcionan como un monitor software conducido por eventos con un coste

prácticamente imposible de suprimir en el funcionamiento normal de cualquier sistema. Se utilizó una

carga test para que así se pudieran comparar de una manera más sencilla los resultados obtenidos

después de las acciones de sintonización.

La carga de test estaba constituida por programas de la carga real escogidos según un criterio de

representatividad, se trataba de una carga de test sintética natural con características similares a las de

la carga real.

De las medidas tomadas durante la ejecución de la carga de test se obtuvieron las utilizaciones de la

CPU y de los canales. Las rutinas de contabilidad son un tipo de herramienta de medida que raramente

suele proporcionar información acerca del grado de solapamiento entre los dispositivos. En la Tabla 7.1

se han resumido los resultados antes y después de la sintonización.

Componente Utilización antes (%) Utilización después (%)

CPU 58 76

Canal 1 27 40

Canal 2 25 37

Canal 3 45 62

Canal 4 25 35

Tabla 7.1

Page 160: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

152

No se puede deducir de estas medidas que exista un dispositivo causante de un cuello de botella, ya

que todas las utilizaciones son bastante bajas. Basándose en estos datos se formularon las siguientes

hipótesis:

1) La carga no es lo suficientemente grande para poder cargar de forma apreciable los

componentes del sistema.

2) La planificación de los recursos o de las colas de entrada no es eficiente (cuello de

botella causado por el planificador).

3) No hay suficiente memoria (el factor de multiprogramación es demasiado bajo para la

capacidad del sistema)

La primera hipótesis quedaba descartada tanto por la carga de test como por la carga real porque

ambas suponían un nivel de carga considerable. La segunda hipótesis también se podía descartar

porque en el mismo tipo de sistema y en instalaciones muy similares se habían observado niveles de

utilización muy superiores. Por tanto, sólo quedaba profundizar en el estudio de la tercera hipótesis.

ACCIONES QUE HAY QUE EMPRENDER Y SUS EFECTOS

Se dobló el espacio de memoria disponible para los usuarios, obteniéndose los niveles de utilización que

se muestran en la tercera columna de la Tabla 7.1. Estos datos demuestran la corrección de la tercera

hipótesis, el cuello de botella era causado por un espacio de memoria insuficiente.

Con un nivel de multiprogramación mayor, se redujo el tiempo de ejecución de la carga de test a un 75

% con respecto al obtenido antes de incrementar el tamaño de la memoria. La productividad, que es

proporcional a la inversa de este tiempo, se incrementó en un 33%.

7.7.2 Sintonización de un sistema interactivo

En un sistema interactivo junto con la carga generada por los usuarios en línea, locales o

remotos, suele haber también carga batch, por lo que más que un sistema interactivo, se

trata de un sistema mixto o híbrido.

Los usuarios en línea, a su vez, pueden dividirse en dos categorías:

Page 161: apuntes de dec

Diseño y evaluación de configuraciones

153

1) Usuarios atendidos siguiendo una técnica de tiempo compartido (time-

sharing). La aplicación principal de este clase de usuarios es el desarrollo y

ejecución interactivo de programas. El usuario puede verificar

interactivamente la existencia de errores sintácticos en su programa, y

analizar en su terminal los resultados de su ejecución, evitando así

abundantes listados y reduciendo de manera apreciable los tiempos de

espera. El tiempo medio de residencia se reduce considerablemente y la

productividad de los programadores aumenta con respecto a las que se

obtenía en un entorno batch.

Por otra parte, las órdenes utilizadas por este tipo de usuario suelen ser

generalmente de tipo “ligero” (inserción y borrado de texto, sustitución de

caracteres, impresión de listados de programas,etc). Por lo tanto este tipo

de carga puede caracterizarse por un considerable consumo de E/S junto

con una escasa demanda de CPU.

2) Usuarios que interaccionan con el sistema para ejecutar uno o más

programas durante su ejecución. La carga que genera este tipo de usuario

es muy variable. Estas aplicaciones suelen requerir la introducción de datos

por parte del usuario, desde un terminal local o remoto, para procesarlos

posteriormente. Este tipo de carga suele estar caracterizado por un gran

número de operaciones de E/S y una demanda variable de CPU en función

de la complejidad de los cálculos.

Para poder atender la demanda de los diferentes tipos de usuarios, en ocasiones se

suele acudir, especialmente en grandes instalaciones, a sistemas “dobles” (twins) en los que

se cuenta con un sistema dedicado a los usuarios interactivos y con otro para ejecutar

programas batch.

También es posible emplear para los tipos de carga descritos, un único sistema, con

una o más CPU’s. En este caso es más difícil equilibrar el sistema ya que, además de un

elevado número de componentes, se tiene el factor añadido de la coexistencia de diferentes

tipos de carga.

De esta forma, por ejemplo, un incremento de la carga batch puede degradar los

tiempos de respuesta interactivos hasta límites no tolerables, mientras que, por otra parte, si

Page 162: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

154

se incrementan el número de usuarios conectados, puede empeorar de manera

considerable el tiempo de presencia en el sistema de los trabajos batch.

♦ Ejemplo 7.4: Canales sobrecargados

PLANTEAMIENTO DEL PROBLEMA

Se dispone de un sistema multiprocesador con dos CPU’s que comparten los periféricos de

almacenamiento secundario. El sistema operativo reside en los discos conectados al canal C2. En el

canal C1 están conectados dos tipos de discos, unos comparativamente más rápidos que otros. La

carga esta compuesta por programas procedentes de usuarios interactivos, que se ejecutan, en tiempo

compartido, y por programas batch.

En un determinado instante de tiempo, los principales índices de prestaciones del sistema, tiempos de

respuesta y de presencia, experimentaron un empeoramiento progresivo hasta alcanzar límites no

tolerables. De tal forma, que durante periodos de mucha carga, un usuario interactivo podía estar de 1 a

2 minutos esperando por una orden “ligera”, y un usuario batch, con un programa de tamaño mediano de

tiempo de ejecución inferior a 5 minutos, podía llegar a esperar de 3 a 4 horas para obtener un listado de

su ejecución.

Por todo ello, se decidió proceder a un análisis del sistema para establecer si se podía mejorar la

eficiencia del mismo eliminando cuellos de botella, o si por el contrario era imprescindible acudir a

terapias de reposición. En este último caso habría que indicar también qué componentes debían

añadirse o sustituirse en el sistema.

LAS MEDIDAS Y SU INTERPRETACION

Se observó la actividad del sistema durante periodos de elevada carga en los cuales el tiempo de

respuesta era particularmente largo. El intervalo de medida fue de 1 h y 11 minutos (4260 seg). Se

empleó para la obtención de las medidas un monitor software conducido por eventos, que presentó un

overhead de sólo 104 seg, es decir de un 2.1 % de la duración de la sesión de medida.

Mientras que la utilización del canal C2 parecía normal, no ocurría lo mismo con los canales C’1 y C’’1.

Por ello se midió la utilización de las unidades conectadas a C’1 y C’’1 (ver Figura 7.12).

T1, T2 y T3 son los discos más rápidos y es donde el sistema aloja los archivos temporales (para el

programa en ejecución, para el compilador, para swapping, etc.), las librerías de los programas, los

compiladores más utilizados, los archivos de programas de utilidades y otros archivos que el sistema

necesita para tratar los usuarios interactivos.

Page 163: apuntes de dec

Diseño y evaluación de configuraciones

155

Los discos más lentos D1, D2, D3, D4 y D5, se dedican a los usuarios y contienen bases de datos, áreas

de trabajo privadas, etc.

CU

CU

T1

C1 T2 T3 D1 D2 D3 D4 D5

C1’

C1’’

Figura 7.12

El sistema envía sus peticiones de E/S a los periféricos prioritariamente a través del canal C’1 (que es el

canal principal). Si está ocupado, es decir, si ya está transfiriendo datos, la CPU envia las peticiones al

canal C’’1, que se considera secundario.

A partir de las medidas se observó una utilización elevada del canal C’1, cercana al 70% (una media de

un 69%; 2942 s), límite de utililización que se ha demostrado con la experiencia que no es

recomendable superar. El canal C’’1, por el contrario presentaba una utilización baja (una media de un

33%; unos 1390 s).

Un estudio de mayor profundidad de las operaciones de E/S en los dos canales antes mencionados

reveló la existencia de un cuello de botella debido a la competencia de las peticiones de acceso a T1, T2

y T3. De hecho, de 28 peticiones/seg, 25.9 (un 92 %) eran peticiones de las unidades T1, T2 y T3 y sólo

un 2.1 % eran peticiones a D1, D2, D3, D4 y D5. La Tabla 7.2 muestra las utilizaciones de cada unidad.

UNIDAD Accesos/seg Peticiones en cola

T1 15.3 85%

T2 3.4 89%

T3 6.9 90%

D1 0.5 -

D2 0.1 -

D3 0.4 -

D4 0.7 -

D5 0.4 -

Tabla 7.2

Page 164: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

156

De la Tabla 7.2 se deduce que el número total de accesos/seg a los discos T es Ttot=25.6 accesos/seg.

Mientras que el número total de accesos/seg a los discos Dtot es Dtot=2.1 accesos/seg. Por lo que en

total se tiene 27.7 accesos/seg a ambos tipos de disco.

Por otra parte se puede observar que los porcentajes de peticiones a las unidades T1, T2 y T3 que tienen

que esperar eran muy elevados, un 85%, 89% y 90% respectivamente. El 28% de las peticiones que

tienen que esperar son, a su vez, colocadas en colas que ya contienen tres peticiones.

Una petición se pone en cola por una de las siguientes razones:

• Canales ocupados y unidades libres: 16%

• Canales y unidades ocupadas: 43%.

• Canales libres y unidades ocupadas: 41%.

El 84% de las peticiones eran puestas en cola porque la unidad estaba ocupada.

La espera en cola de las peticiones produce un incremento del tiempo de respuesta y de presencia, ya

que incrementa el tiempo medio de acceso a T1, T2 y T3. Además, el manejo de esas cola de espera

causa un overhead del sistema que añade un retardo aún mayor.

Un análisis de las causas de tal cantidad de actividad de E/S en C’1 y C’’1 reveló que el sistema tenía un

nivel de multiprogramación demasiado alto. En la Tabla 7.3 se puede ver el número medio de programas

en ejecución, de programas cargados en memoria y de programas en espera de ejecución.

Batch Interactivo Total

Programas en ejecución 15.1 29.8 44.9

Programas en memoria principal 6.5 15.6 22.1

Programas en espera de ejecución 48.2 - 48.2

Tabla 7.3

Se puede observar en la Tabla 7.3, que sólo la mitad de los programas en ejecución están también

cargados en memoria. Esto produce un elevado tráfico entre memoria principal y secundaria (en este

caso el disco T1), lo que se denomina swapping.

Por otra parte el número medio de programas interactivos en ejecución (30) es demasiado elevado.

Como los programas interactivos tienen una prioridad de ejecución mayor que los batch, las

prestaciones para éstos se ven muy degradadas al ser este tipo de programas frecuentemente

Page 165: apuntes de dec

Diseño y evaluación de configuraciones

157

interrumpidos en su ejecución. Por otra parte, la longitud de la cola de programas en espera de

ejecución demuestra que el sistema no es adecuado para la carga que tiene que procesar.

ACCIONES QUE HAY QUE EMPRENDER Y SUS EFECTOS

Una acción posible para reducir la actividad de swapping consiste en incrementar el tamaño de la

memoria principal. Como el nivel de utilización de la CPU puede incrementarse, se podría tener así un

mayor número de programas simultáneamente en memoria principal, reduciendo el tráfico entre dicha

memoria y la memoria secundaria. Esta solución reduciría la carga en el disco T1 (disco de swapping),

pero no eliminaría el cuello de botella debido a T2 y T3. Es probable incluso que empeore el problema.

Por lo tanto se debe examinar la posibilidad de reducir las cargas en las unidades con las mayores

colas de espera. Después de analizar cada uno de los archivos en T1, T2 y T3, se decidió expandir el

subsistema C1 como se muestra en la Figura 7.13, contando ahora con cuatro discos rápidos y ocho

más lentos disponibles para los usuarios.

CU

CU

T1

C1

T2 D1 D2 D3 D4

C1’

C1’’

CU

CU

T3 T4 D5 D6 D7 D8

C2’

C2’’

Figura 7.13

A continuación se investigó la causa de la elevada utilización de los terminales. Se vio que

aproximadamente un 10% de los usuarios interactivos utilizaban estos dispositivos únicamente para

ejecutar sus programas con una prioridad mayor que los usuarios batch. Por todo ello, se decidió reducir

el número de terminales.

Page 166: apuntes de dec

TEMA 7: Mejora de las prestaciones de un sistema: Sintonización

158

Como consecuencia de estas acciones, las prestaciones del sistema mejoraron considerablemente. El

tiempo de respuesta máximo para órdenes ligeras pasó a 30 seg y el tiempo de presencia se redujo en

promedio un 25 %.