Sistemas y Modelos
Simulación
La simulación es una herramienta de análisis de sistemas, que se basa en la experimen-tación sobre modelos de éstos para obtener las conclusiones.
En este curso nos centraremos en Sistemas puramente Informáticos (Bases de datos, Redes de Ordenadores, etc.)
Diseño de un Simulador
Sistema Real Modelo deSistema
Datos Reales
Datos Simulados
Codificación
Validación
Abstracción
Validación
SelecciónParadigma
Lenguaje de Simulación
Objetivos
ProgramaSimulación
Modelo Computacional
Tipos de Modelos
Sistema Real
Experimento real Experimento sobre modelo
Modelo físico Modelo matemático
AnalíticoSimulado
Estático(no existe el tiempo)
Dinámico
Continuo Discreto
Elementos de un Modelo
• Estructura del sistema (entidades, sus propiedades y relaciones)
• Recursos del sistema (entidades compartidas)
• Dinámica del sistema (cambios sobre el estado de las entidades)
• Condiciones de contorno del sistema (variables aleatorias del sistema)
Estructura
• Variables de estado:Partes del sistema que cambian a lo largo de la simulación.
• Diseño Orientado a Objeto (notación UML)– Clases: agrupan objetos con igual estructura y
comportamiento.– Objetos: entidades del sistema con identidad
propia y un estado descrito a través de pares atributo valor.
– Métodos: describen las operaciones sobre los objetos, ocultando su implementación.
Descripción de Clases
+ Id: integer+ NumProcesados: integer+ TiempoServicioMedio: float+ TiempoRestrasoMedio: float
+ PeticionServicio(Paquete)+ FinServicio()+ Procesa()+ EnProceso():bool+ ColaVacía():bool+ SiguienteNodo():Nodo
Declaración deatributos
Declaración de métodos(solo cabeceras)
Nombre de clase Nodo
Relaciones entre Clases
1..N
Agregación
Asociación
Herencia
+ Creados: integer+ RetrasoMedio: float
+ CreaPaquete() ...
Red
Nodos+ Id: integer+ Procesados: integer+ ServicioMedio: float+ RestrasoMedio: float ...
Nodo
1..1
+ NMedio: integer+ Tamaño: float
+ Encola(Paquete)+ Desencola():Paquete
ColaEnEspera
1..N
+ Id: integer+ tamaño: integer
Paquete
PaquetesSiguiente
1..1
Origen
1..1
1..1Destino
Dinámica del Sistema
• Un suceso representa un cambio en alguna variable de estado del sistema.– La creación de un paquete en la red (Red.Creados++).– El procesamiento de un paquete en un nodo
(N.Procesados++).
• Los sucesos puede clasificarse en:– Sucesos discretos: modificaciones instantáneas de
las vbles. – Sucesos continuos: variaciones infinitesimales de las
vbles (ecuaciones diferenciales).
• Los sucesos además pueden ser deterministas o estocásticos.
B
Diagramas de Sucesos
El suceso A planifica B para dentro de t unidades de tiempo.
El suceso A planifica B para dentro de t unidades de tiempo solo si se satisface la condición cond.
El suceso A cancela al suceso B después de t unidades de tiempo.
(t puede ser una variable aleatoria)
A Bt
tA B
cond
tA
t1
Diagramas de Sucesos
El suceso A planifica el suceso B con la probabilidad p, para dentro de t unidades de tiempo.
El suceso A planifica a B, a C o a D según la distribución de probabilidades (p1, p2, p3). Solo se planifica un suceso.
B
A
B
C
D
X=p
t
X=p1
X=p2
X=p3
t2
t3
A
Diagramas de Sucesos
Suceso periódico de ciclo t.
Sucesos inciales de la simulación.
Definición de macro-sucesos.
A
t
S
A DF
GMacro-suceso
t
Recursos
• Un recurso es una parte del sistema que debe ser compartida por varios agentes.
• Redes de colas de espera.
• El elemento básico es la estación de servicio con cola de espera.
• Las redes de colas expresan el flujo de los clientes a través de las estaciones de servicio.
Estaciones de Servicio
Una estación de servicio se caracterizan por:– Tasa de llegada– Número de servidores – Distribución del tiempo de servicio– Capacidad del sistema– Política de servicio
Estaciones de ServicioServidores
Fuente declientes
Cola espera
Tllegada
C1: M.ServidorLibre( )C2: not M.Cola_vacía( )tprep: tiempo preparación
2 solicita servicio
Diagrama de sucesos (FCFS):
Tserviciotprep
C1
tprep
C2
1 lleganuevo cliente
3entra en servidor
4sale del servidor
ESTACIÓN FCFSt0
Políticas de Servicio
¿cómo deben procesarse los clientes de una estación?
• FCFS (o FIFO): First Come, First Served• LCFS (o LIFO): Last Come, First Served• Round-Robin (RR)• Processor Sharing (PS)• Service in Random Order (SIRO)• Control de Prioridades
– Expulsiva con reanudación (preempt)– No expulsiva– Expulsiva con reinicialización
Ejemplo 1
Sistema Informático
T1
T2
T3
T4
CPU
D1 D2
Diagrama UML
+ Ntrans: int+ TMedio: double+ Niter: int...
Sistema + Id: int+ Procesados: int+ R: double ...
EstaciónFCFS
1..1
+ Nq: int+ W: double
+ Encola(Tr)
+ Desencola():Tr
ColaEnEspera
1..N
+ Id: int+Ttrans: double
Transacción
ítems
Disco CPU
1..1
1..2
Diagrama de colas
Terminales
CPU
D1
D2M/M/1
M/M/1
M/M/1
Diagrama de sucesos
1 1ª transacción
2 2ª transacción
3 3ª transacción
4 4ª transacción
Terminales CPU
D1
D2
P1
P2
P3
P1=1/NiterP2=(1-P1)/2P3=(1-P1)/2
1 1ª transacción
2 2ª transacción
3 3ª transacción
4 4ª transacción
CPU
D1
D2
P1
P2
P3
14 154000
Diagrama de sucesos
Diagrama de sucesos
1 1ª transacción
2 2ª transacción
3 3ª transacción
4 4ª transacción
D1
D2
P1
P2
P3
14 154000
54ms C1
C2
6 7
Diagrama de sucesos
1 1ª transacción
2 2ª transacción
3 3ª transacción
4 4ª transacción
P1
P2
P3
14 154000
54ms C1
C2
6 7
814ms C1
C2
9 10
1114ms C1
C2
12 13
Ejemplo 2
Videos bajo demanda
Almacénde DVDs
Torre DVDs
Brazo Robot
Servidor
3 Discos (10 Gb)
CPU:500 Mhz512 Mb...
Internet
Esquema del sistema
CACHÉ-RAM
CACHÉ-DISCO
JUKE-BOX
GESTOR DE VÍDEOS
COMMON GATEWAY INTERFACE (CGI)
Cliente Cliente Cliente
3
BRAZO
Descripción de Clases
Gestor de videos
+ número_films: integer+ Películas: List Film
+ nuevo_film(Film)+ nuevo_cliente(Cliente)+ pos_film_cliente(Film, Cliente):Fotograma+ clientes_en_ pelicula(Film): List Cliente
Definición deatributos
Definición de métodos(solo cabeceras)
Nombre de clase
No es necesario definir los tipos exactos de los atributos y de los métodos,ya que éstos pertañen al modelo computacional.
Film
+ código+ duración+ clientes: List Cliente
+ nuevo_cliente(Cliente)+ dame_cliente():Cliente...
GestorVídeos
Brazo Robot
Juke Box
Caché Disco
Caché RAM
0
1
2
(0) Llegada de peticiones(1) Busca GF en RAM(2) Busca GF en Discoc1) ¿película en marcha?
Ejemplo
normal(2000ms)
400ms
c1
(0, f1(x))
(0, f2(x))
Top Related