Sistemas y Modelos
QUE SON MODELOS ?
Tipología de 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
Objetivos
Abstracción
Sistema Real Modelo de
Validación Sistema
Selección
Datos Reales Paradigma
Datos Simulados
Codificación
Programa Modelo
Simulación Computacional
Validación
Lenguaje de Simulación
Tipos de Modelos
Sistema Real
Experimento real Experimento sobre modelo
Modelo físico Modelo matemático
Analítico
Simulado
Estático Dinámico
(no existe el tiempo)
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
Nombre de clase Nodo
+ Id: integer
Declaración + NumProcesados: integer
de + TiempoServicioMedio: float
atributos + TiempoRestrasoMedio: float
+ PeticionServicio(Paquete)
+ FinServicio()
Declaración + Procesa()
de métodos + EnProceso():bool
(solo cabeceras) + ColaVacía():bool
+ SiguienteNodo():Nodo
Relaciones entre Clases
Nodo Cola
Red EnEspera
+ Id: integer + NMedio: integer
+ Creados: integer 1..N Nodos + Procesados: integer + Tamaño: float
+ RetrasoMedio: float + ServicioMedio: float 1..1
+ RestrasoMedio: float + Encola(Paquete)
+ CreaPaquete() 1..1 + Desencola():Paquete
... ...
1..N
Siguiente Origen
Paquetes
Agregación Paquete
Asociación 1..1 + Id: integer
Destino + tamaño: integer
Herencia 1..1
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.
Diagramas de Sucesos
t El suceso A planifica B para dentro
A B de t unidades de tiempo.
t El suceso A planifica B para dentro
A B de t unidades de tiempo solo si se
cond satisface la condición cond.
El suceso A cancela al suceso B
t después de t unidades de tiempo.
A B
(t puede ser una variable aleatoria)
Diagramas de Sucesos
A
t
B
El suceso A planifica el suceso B
con la probabilidad p, para dentro
X=p de t unidades de tiempo.
t1 B
X=p
1
El suceso A planifica a B, a C o a D
t2
C
según la distribución de
A X=p2 probabilidades (p1, p2, p3).
X=p3 t3
Solo se planifica un suceso.
D
Diagramas de Sucesos
t
Suceso periódico de ciclo t.
A
t
S Sucesos inciales de la simulación.
F
AMacro-suceso
D Definición de macro-sucesos.
G
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 Servicio
Servidores
Fuente de Cola espera
clientes
Diagrama de sucesos (FCFS):
tprep
Tllegada
C2
C1
tprep Tservicio
llega
1 2 ESTACIÓN FCFS
3 4
nuevo cliente t0 solicita entra en sale del
servicio servidor servidor
C1: M.ServidorLibre( )
C2: not M.Cola_vacía( )
tprep: tiempo preparación
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 CPU
T3
T4
D1 D2
Diagrama UML
EstaciónFCFS Cola
EnEspera
Sistema + Id: int + Nq: int
+ Procesados: int + W: double
+ Ntrans: int + R: double 1..1
+ TMedio: double ... + Encola(Tr)
+ Niter: int
1..1 + Desencola():Tr
...
1..N
1..2
ítems
Disco CPU Transacción
+ Id: int
+Ttrans: double
Diagrama de colas
D1
CPU
M/M/1
M/M/1 D2
Terminales
M/M/1
Diagrama de sucesos
P1
1ª 1
transacción
D1
2ª 2
transacción Terminales CPU P2
3ª 3 P3
transacción
D2
4ª 4
transacción
P1=1/Niter
P2=(1-P1)/2
P3=(1-P1)/2
Diagrama de sucesos
P1
1ª 1
transacción
D1
2ª 2 4000
transacción 14 15 CPU P2
3ª 3 P3
transacción
D2
4ª 4
transacción
Diagrama de sucesos
P1
1ª 1
transacción
D1
2ª 2 4000 C1
C2
14 15 4ms P2
transacción 5 6 7
3ª 3 P3
transacción
D2
4ª 4
transacción
Diagrama de sucesos
P1
1ª 1 C2
transacción 14ms
C1
8 9 10
2ª 2 4000 C2
C1
transacción 14 15 4ms P2
5 6 7
3ª 3
P3 C2
transacción
C1 14ms
11 12 13
4ª 4
transacción
Ejemplo 2
Videos bajo demanda
3 Discos (10 Gb)
Almacén
de DVDs Servidor Internet
Torre DVDs CPU:
500 Mhz
Brazo Robot 512 Mb
...
Esquema del sistema
Cliente Cliente Cliente
COMMON GATEWAY INTERFACE (CGI)
GESTOR DE VÍDEOS
CACHÉ-RAM
3 CACHÉ-DISCO
BRAZO
JUKE-BOX
Descripción de Clases
Nombre de clase
Gestor de videos Film
Definición
de + número_films: integer + código
atributos + Películas: List Film + duración
+ clientes: List Cliente
+ nuevo_film(Film)
+ nuevo_cliente(Cliente) + nuevo_cliente(Cliente)
+ pos_film_cliente(Film, Cliente):Fotograma + dame_cliente():Cliente
+ clientes_en_ pelicula(Film): List Cliente ...
Definición de métodos
(solo cabeceras)
No es necesario definir los tipos exactos de los atributos y de los métodos,
ya que éstos pertañen al modelo computacional.
Ejemplo
normal(2000ms) c1
Gestor Brazo Robot
0
Vídeos
Juke Box
400ms
(0, f2(x))
2 Caché Disco
(0, f1(x))
1 Caché RAM
(0) Llegada de peticiones
(1) Busca GF en RAM
(2) Busca GF en Disco
c1) ¿película en marcha?