Este documento presenta una introducción a la simulación de sistemas informáticos. Explica conceptos clave como entidades, eventos, actividades, estados y modelos de simulación. También describe los componentes utilizados en la simulación de sistemas informáticos como servidores, trabajos, estaciones de retardo y sumideros. Finalmente, resume los pasos para realizar un estudio de simulación incluyendo la formulación del problema, objetivos, conceptualización del modelo y colección de datos.
1. 1
Explotación de
Sistemas Informáticos
Luis de la Ossa
Departamento de Sistemas Informáticos - UCLM
Tema 6: Simulación de sistemas
informáticos
En este tema se hace una breve introducción a lo que
es la simulación de sistemas y el modo en que esta
puede utilizarse para estudios de evaluación del
rendimiento.
Los conceptos que se presentarán serán ampliados y
utilizados en el desarrollo de la práctica 2.
Tema 6: Simulación de sistemasESSII
2. 2
Índice
6.1 Introducción
6.2 Conceptos en simulación de eventos discretos.
6.3 Simulación de sistemas informáticos.
6.4 Pasos y errores en la simulación.
Tema 6: Simulación de sistemasESSII
Tema 6:
Simulación de sistemas
6.1 Introducción
Tema 7: Simulación de sistemasESSII
3. 3
6.1: Introducción
Tema 6: Simulación de sistemasESSII
¿Qué es la simulación?
La simulación reproduce el comportamiento de un sistema mediante el uso de
un programa informático y sirve para analizar su comportamiento y rendimiento.
Entradas: Un conjunto de parámetros.
Algunos fijos y otros generados a partir de distribuciones de probabilidad.
Con trazas de la carga de trabajo real.
Salidas:
Datos numéricos y de otros tipos recogidos.
Estos datos pueden ser considerados como muestras del rendimiento del
sistema.
6.1: Introducción
Tema 6: Simulación de sistemasESSII
¿Por qué usar simulación?
La simulación resulta útil para estimar el rendimiento de un sistema en distintos
casos:
El sistema es demasiado complejo como para modelarlo analíticamente.
Es demasiado costoso construir un prototipo para mediciones.
Se ha de estudiar un número importante de alternativas.
Proporciona un sistema virtual basado en qué aplicaciones pueden ser
diseñadas y testeadas.
Problema: Las simulaciones pueden fallar.
4. 4
6.1: Introducción
Tema 6: Simulación de sistemasESSII
Sistemas y entornos
Un sistema se define como un grupo de objetos que se unen en una
interacción o interdependencia regular para un propósito determinado común.
Por ejemplo: En una línea de producción de automóviles las máquinas,
partes componentes y obreros operan de manera conjunta a lo largo de
luna línea de ensamblaje para producir un vehículo.
Entorno: El sistema es afectado por los cambios que ocurren en el exterior.
Estos cambios se dicen que ocurren en el entorno del sistema.
Hay una separación entre el sistema y el entorno.
6.1: Introducción
Tema 6: Simulación de sistemasESSII
Componentes de un sistema
Entidad: Es un objeto de interés en el sistema.
Atributo: Es una propiedad de una entidad.
Actividad: Es el periodo de tiempo de una longitud específica:
Por ejemplo: En un banco, los clientes serían una de las entidades, su
balance un atributo, y hacer un depósito es una actividad.
Estado: Es una colección de variables que son necesarias para escribir el
sistema en cualquier instante y que son relativas a los objetivos del estudio.
Evento: Es una ocurrencia instantánea que puede cambiar el estado del
sistema.
Dependiendo del propósito, el número de componentes (entidades,
atributos, actividades, estados y eventos) varía.
5. 5
6.1: Introducción
Tema 6: Simulación de sistemasESSII
Modelo de un sistema
Un modelo se define como la representación de un sistema con el propósito
de estudiar el sistema.
Hay modelos matemáticos y físicos.
Un modelo matemático usa notación simbólica y ecuaciones matemáticas
para representar un sistema. Un modelo de simulación es un tipo particular de
modelado matemático de un sistema.
6.1: Introducción
Tema 6: Simulación de sistemasESSII
Modelos de simulación
Estáticos o dinámicos: En los modelos estáticos el sistema se comporta
igual durante toda la simulación, mientras que en el dinámico cambia a lo largo
del tiempo.
Deterministas o estocásticos: En los modelos deterministas siempre se
obtiene una misma salida ante las mismas entradas, mientras que los
estocásticos cuentan con una componente aleatoria.
Simulación de eventos o de sistemas continuos: Simulan sistemas
discretos o continuos.
Sistemas abiertos o cerrados: En los sistemas abiertos, la entrada es
externa e independiente del modelo, mientras que en los cerrados no hay
entrada externa.
6. 6
6.1: Introducción
Tema 6: Simulación de sistemasESSII
Sistemas discretos y continuos.
En los sistemas discretos las variables de estado cambian solamente en un
conjunto discreto de puntos en el tiempo.
En los sistemas continuos los cambios de estado ocurren continuamente en
el tiempo.
1
2
3
time t time t
water
Tema 6:
Simulación de sistemas
6.2 Conceptos en simulación de eventos
discretos
Tema 6: Simulación de sistemasESSII
7. 7
6.2: Conceptos en simulación de eventos discretos
Tema 6: Simulación de sistemasESSII
Existen una serie de componentes específicos en los sistemas de simulación basados
en eventos discretos:
Lista: Una colección de entidades asociadas o ordenadas con algún criterio lógico.
Notificación de un evento: El registro de un evento que ocurre en el instante actual o
en el futuro, junto con los datos asociados necesarios para ejecutar el evento. Como
mínimo, hay que registrar cuando se ejecutará y de qué tipo es.
Lista de eventos: Una lista de notificaciones de futuros eventos ordenados por
tiempo de ocurrencia. Esto se conoce también como lista futura de eventos (FEL).
Actividad: Una duración de tiempo de longitud específica, que es conocida cuando
comienza:
Por ejemplo: Tiempo de servicio o tiempo entre llegadas.
Retraso: Una duración de tiempo de longitud desconocida y que no se sabe hasta
que termina.
6.2: Conceptos en simulación de eventos discretos
Tema 6: Simulación de sistemasESSII
Una actividad representa típicamente un tiempo de servicio, un tiempo entre llegadas
o cualquier otro tiempo de proceso cuya duración haya sido caracterizada por el analista.
La duración de una actividad puede ser especificada de varios modos:
De modo determinista: con un valor.
Estadísticamente: Una variable aleatoria que se ajuste a una determinada
distribución.
Como una función que depende de variables del sistema y atributos de la
entidad.
La duración de una actividad es computable a partir de su especificación en el
instante que comienza.
Una notificación de evento se crea con un tiempo que es igual al de la completitud de
la actividad.
Por ejemplo si tenemos el reloj a 100 y la actividad dura 5 segundos, la
notificación de eventos se genera con otro tipo de evento en el instante 105.
En contraste con la actividad, la duración de un retardo no es especificada por el
analista, sino determinada por las condiciones del sistema.
Actividad
8. 8
6.2: Conceptos en simulación de eventos discretos
Tema 6: Simulación de sistemasESSII
El mecanismo para avanzar el tiempo de simulación y garantizar que todos los
eventos ocurren en el orden cronológico correcto se basa en la lista de eventos futuros
(FEL).
La lista contiene todas las notificaciones de evento para los eventos que han sido
asignados a un tiempo futuro.
Asignar un evento futuro significa que en el instante que la actividad comienza, su
duración se computa en base a alguna distribución.
En el mundo real, la mayoría de los eventos futuros suceden meramente.
En el modelo, esos eventos se representan mediante el fin de alguna actividad.
En el instante t, la FEL contiene todos los eventos futuros previamente agenciados y
sus instantes asociados.
El FEL se ordena por tiempo de evento. Eso significa que los eventos se colocan
cronológicamente.
El algoritmo de asignación de eventos y avance de tiempo
6.2: Conceptos en simulación de eventos discretos
Tema 6: Simulación de sistemasESSII
El evento asociado con el instante t es llamado el evento inminente; esto significa que
será el siguiente evento en ocurrir.
Después de que el estado del sistema en el periodo t haya sido actualizado, el reloj
avanza hasta el periodo t1, y el evento inminente se borra de la FEL.
La ejecución de un evento inminente implica un nuevo estado.
Durante el instante ti pueden generarse nuevos eventos futuro. Si son generados, se
agendan creando nuevas notificaciones y colocándolas en el sitio adecuado de la fEL.
Entonces el reloj avanza hasta el siguiente evento inminente.
Este proceso se repite hasta que la simulación termina.
El algoritmo de asignación de eventos y avance de tiempo
9. 9
6.2: Conceptos en simulación de eventos discretos
Tema 6: Simulación de sistemasESSII
Paso 1: Borrar la notificación de evento para el inminente.
Paso 2: Ejecutar el evento inminente y cambiar el estado del sistema.
Cambiar los atributos de las entidades si se necesita.
Paso 3: Generar los eventos futuros (si es necesario) y situar sus
notificaciones en la FEL ordenados por tiempo.
Paso 4: Avanzar el reloj hasta el siguiente evento inminente.
Paso 5: Refrescar las estadísticas y contadores.
Este proceso se repite hasta que la simulación termina.
El algoritmo de avance de tiempo
6.2: Conceptos en simulación de eventos discretos
Tema 6: Simulación de sistemasESSII
La longitud y el contenido de la FEL cambia constantemente mientras la
simulación progresa.
Eventos principales:
Borrado de un evento inminente.
Adición de un evento nuevo a la lista.
Borrado ocasional de un evento.
La adición o borrado de un evento requiere una operación de búsqueda.
El algoritmo de avance de tiempo
10. 10
Tema 6:
Simulación de sistemas
6.3 Simulación de sistemas informáticos
Tema 6: Simulación de sistemasESSII
6.3: Simulación de sistemas informáticos.
Tema 6: Simulación de sistemasESSII
Como se comentó en el tema anterior, los sistemas informáticos suelen
modelarse como sistemas de colas. En ellos, determinados componentes
llamados servidores atienden peticiones de los distintos trabajos.
En el análisis operacional, se hacen una serie de asunciones que no tienen
por qué darse en el sistema real, como por ejemplo que todos los trabajos sean
iguales, o que la tasa de llegadas sea fija.
La simulación permite estudiar sistemas más complejos.
A continuación se describirán los componentes utilizados en la simulación
de sistemas.
11. 11
6.3: Simulación de sistemas informáticos.
Tema 6: Simulación de sistemasESSII
La principal entidad en la simulación de un sistema informático es un servidor, ya que
cada una de las componentes del sistema que ha de realizar una parte del proceso se
modela mediante un objeto de este tipo.
Los servidores tienen asociada una cola, en la que se almacenarán trabajos a la espera
de ser atendidos, y estarán conectados a otras entidades del sistema.
Cuentan con una serie de propiedades de interés:
Política de servicio: que es el criterio que utilizan para escoger qué trabajo de la
cola atender (FCFS, prioridades, etc.).
Tiempo de servicio: Que es el tiempo que utilizan para atender una petición. Este
puede ser fijo o ajustarse a una distribución que, a su vez, dependerá del tipo de
trabajo, de la carga que tenga ese recurso, etc.
Política de enrutamiento: Los trabajos atendidos se dirigirán a otras partes del
sistema en función de este parámetro, que igualmente dependerá de factores como el
tipo de trabajo, la carga, etc.
Servidores
6.3: Simulación de sistemas informáticos.
Tema 6: Simulación de sistemasESSII
La llegada de un trabajo a un servidor constituye un cambio de estado en el sistema.
El fin del proceso de una petición, constituye un evento, que da lugar al inicio de otra
actividad (el comienzo de otra petición) que, a su vez, producirá un evento futuro (el fin de
esa actividad).
Un servidor puede representar desde un procesador a un disco o incluso una red.
Servidores
12. 12
6.3: Simulación de sistemas informáticos.
Tema 6: Simulación de sistemasESSII
Los trabajos son las entidades que serán procesadas por los servidores.
Se dividen en clases, y cada una de ellas contará con una serie de atributos:
En los sistemas abiertos, cada clase llegará al sistema con una frecuencia que irá
determinada por una distribución de probabilidad.
En los sistemas cerrados, en los que el número de trabajos permanece constante,
existirá un número determinados de trabajos de cada clase.
Cada clase tendrá un tratamiento en los servidores, tanto en lo relativo al tiempo de
proceso por petición como en lo relativo al encaminamiento del trabajo.
En los sistemas abiertos, las clases van relacionadas con un tipo de objeto especial, una
fuente, que genera los trabajos con las distribuciones especificadas y los envía a los
distintos recursos según sea la política que se ha establecido.
La generación de un trabajo es también un evento.
Trabajos
6.3: Simulación de sistemas informáticos.
Tema 6: Simulación de sistemasESSII
Es un componente que simula un número infinito de servidores, por tanto no dispone de
cola y los trabajos son atendidos de manera inmediata.
El resto de parámetros (tiempos de servicio y política de encaminamiento) se establecen
del mismo modo que en un servidor.
Un trabajo desaparece al llegar a esta entidad.
Estaciones de retardo
Sumidero
13. 13
6.3: Simulación de sistemas informáticos.
Tema 6: Simulación de sistemasESSII
Tiene como único objetivo el encaminar los trabajos. Se configura igual que la política de
enrutamiento de un servidor o de una fuente.
El Fork sirve para crear peticiones similares a la que llega, mientras que Join sirve para
avanzar si todas esas peticiones han acabado.
Divisor de carga
Fork y Join
7.1: Introducción
Tema 7: Simulación de sistemasESSII
Ejemplo de un sistema
14. 14
Tema 6:
Simulación de sistemas
6.4 Pasos y errores en la simulación
Tema 7: Simulación de sistemasESSII
6.4: Pasos y errores en la simulación
Tema 6: Simulación de sistemasESSII
Pasos en un estudio de simulación
Formulación del problema:
Descripción del problema
Este debe ser comprendido con claridad.
Fijar los objetivos y el plan general:
Los objetivos indican las cuestiones que deben ser respondidas por la
simulación.
Se debe determinar donde es apropiada la simulación y donde no.
Conceptualización del modelo:
Abstraer las características esenciales del problema.
Seleccionar y modificar las asunciones básicas que caracterizan el
sistema.
Enriquecer y elaborar el modelo hasta obtener una aproximación útil.
Es mejor empezar por un modelo simple y enriquecerlo.
No es necesario plasmar el sistema de manera completa.
Solamente se necesita la esencia de un sistema real.
15. 15
6.4: Pasos y errores en la simulación
Tema 6: Simulación de sistemasESSII
Pasos en un estudio de simulación
Colección de datos:
Se deben identificar y recoger diferentes tipos de datos cuando se
construye el modelo.
Plasmación del modelo:
El modelo debe ser plasmado en un programa.
Verificación:
¿Funciona el programa de manera correcta?
Es difícil con modelos complejos.
Validación
Comprobación de la fidelidad del modelo.
Diseño experimental
Longitud del periodo de inicialización.
Duración de las simulaciones.
El número de repeticiones que debe hacerse para cada ejecución.
6.4: Pasos y errores en la simulación
Tema 6: Simulación de sistemasESSII
Pasos en un estudio de simulación
Documentación
Dos tipos: programa y proceso.
Implementación.
16. 16
6.4: Pasos y errores en la simulación
Tema 6: Simulación de sistemasESSII
Errores comunes en simulación
Usar un nivel de detalle inapropiado:
Se puede simular un sistema con distinto nivel de detalle. Un nivel de
detalle bajo puede hacer que se pierda mucha información mientras que un
nivel alto supone un aumento de coste y de probabilidad de error.
Elección del lenguaje inapropiada:
Los lenguajes de propósito general son flexibles, de ejecución rápida,
pero requieren implementar un número considerable de funciones de
simulación generales.
Los lenguajes de simulación son más utilizados. El problema que
conllevan, además de la eficiencia, es que hay que aprenderlos.
Modelos no verificados:
Los programas pueden tener errores.
6.4: Pasos y errores en la simulación
Tema 6: Simulación de sistemasESSII
Errores comunes en simulación
Modelos inválidos
El modelo simulado puede no ser representativo del sistema real.
Manejo no adecuado de las condiciones iniciales:
El sistema puede estar en un estado determinado al principio de la
simulación.
Simulaciones demasiado cortas.