Sei sulla pagina 1di 21

Simulacin

Ingeniera en Sistemas de Informacin

Simulacin con GPSS


GPSS (General Purpose System Simulation) Lenguaje de propsito general para la simulacin de sistemas. Desarrollado por Geoffrey Gordon en IBM alrededor de 1960. Lenguaje orientado a la simulacin de sistemas discretos cuya estructura de funcionamiento est basada en el enfoque de Interaccin del Proceso.

GPSS. SOFTWARE DE SIMULACIN DE EVENTOS DISCRETOS.

Elementos bsicos
Entidades Transacciones: se mueven a travs del sistema, entran, permanecen y salen. Entidades Permanentes: estn siempre en el sistema y actan como recursos disponibles o no.

Elementos bsicos
Funcionamiento: las transacciones se mueven a travs del sistema hasta que encuentran una entidad que las atiende. Flujo: el programa avanza con una transaccin de un bloque a otro, hasta que algn bloque las retiene, porque representa un tiempo de espera o por que no puede seguir hasta cumplir con alguna condicin lgica.

Simulacin

Estructura del Lenguaje


Instrucciones de comandos o de definicin de Variables.
Definicin de Funciones: FUNCTION Definicin de capacidad de almacenes: STORAGE Definicin de matrices: MATRIX Asignacin numrica a variables: EQU Inicializacin de variables: INITIAL Definicin de histogramas: TABLE, QTABLE Definicin de operaciones: VARIABLE y FVARIABLE De control de la simulacin: CLEAR, RESET, START, SHOW, BVARIABLE

Estructura del Lenguaje


Instrucciones de lgica del programa (Block statements).
Inicio de proceso y captura de servidores Fin de proceso y liberacin de servidores Ingreso de transacciones a un almacn o un bloque de espera Egreso de transacciones a un almacn o un bloque de espera SEIZE, ENTER, PREEMPT RELEASE, LEAVE, RETURN QUEUE, ENTER, LINK DEPART, LEAVE, UNLINK

Estructura del Lenguaje


Instrucciones de lgica del programa (Block statements).
Ingreso de una transaccin GENERATE, SPLIT al sistema Salida de una transaccin TERMINATE del sistema Procesos ADVANCE, ASSEMBLE, MATCH, GATHER Control de flujo TRANSFER, TEST, GATE, LOGIC, SELECT, LOOP, BUFFER

Estructura del Lenguaje


Instrucciones de lgica del programa (Block statements).
Bloques de operaciones aritm ticas Bloques de creacin de estadsticas SAVEVALUE, M SAVEVALUE, ASSIG N, INDEX, PRIO RITY TABULATE

Simulacin

Estructura del Lenguaje


Formato de las instrucciones-fields: en definicin de variables o de lgica.
ETIQUETA BLOQUE VERBOS
ES LA INSTRUCCIN ESPECFICA A EJECUTAR

SNAs: System Numerical Attributes


Son variables de estados en la simulacin que estn disponibles para ser usadas en la simulacin. Ellas retornan un valor string o numrico y pueden ser usadas en los operandos y en expresiones. AC1: valor absoluto del reloj de la simulacin,
desde el ltimo CLEAR

OPERANDOS

;COMENTARIOS

REPRESENTA EL NOMBRE DE UN ETIQUETA O UNA DIRECCIN

ES EL ESPACIO DONDE EL USUARIO PUEDE COLOCAR CUALQUIR INDICACIN

PARA QUE CADA BLOQUE EJECUTE LA ACCIN CORRESPONDIENTE ES NECESARIO INCLUIR UN CONJUNTO DE CALIFICADORES

M1: tiempo de trnsito de un transaccin

Distribucciones de Probabilidad
Librera: EXPONENTIAL(nro. generador,0,media) UNIFORM(nro. generador,mnimo,mximo) NORMAL(nro. generador,media,desviacin) POISSON(nro. generador,media) Otras Empricas: se deben crear usando el comando FUNCTION.

Cmo ingresa una transaccin al sistema? Cmo la genero??


Ingreso de una transaccin GENERATE, SPLIT al sistema

GENERATE

A,B,C,D,E

A: tiempo medio entre llegadas B: Desviacin respecto a la media C: Tiempo en que se generar la primera transaccin D: Lmite de generacin de transacciones E: Nivel de prioridad

Simulacin

GENERATE
Ejemplo 1: Los tiempos entre arribos de llegada de los clientes al banco es exponencial con media de 7 minutos.

SPLIT
SPLIT A,B
A: Cantidad de transacciones a generar B: Destino de las nuevas transacciones (opcional)
Ejemplo 1: En un sistema arriban lotes exponencialmente con media de 30 minutos. El tamao de cada lote es de 10 piezas las cuales se procesan individualmente

GENERATE

(EXPONENTIAL(1,0,7))

Ejemplo 2: otro tipo de cliente arriba unif. cada 4+-2 minutos y cuyo primer arribo ocurre luego de 1hs.30min. despus del inicio de apertura del banco.

GENERATE O GENERATE

(UNIFORM(1,2,6)),,90 4,2,90

GENERATE SPLIT 9
10

(EXPONENTIAL(1,0,30))
SE CREAN 9 TRANSACCIONES GEMELAS

SPLIT
Modificacin Ejemplo 1: Todas las piezas (10) van a ser procesadas en la mquina 2.

Cmo salen las transacciones del sistema?


TERMINATE: se utiliza para mover las transacciones activas de la simulacin. Ejecuta una funcin opuesta al GENERATE.

SPLIT
1

10,procesoMaq2
LAS 10 TRANSACCIONES GEMELAS VAN A LA ETIQUETA PROCESO MAQ2

LA TRANSACCIN ORIGINAL

TERMINATE

A: Cantidad decremental del contador de terminacin (opcional)

Simulacin

Cmo salen las transacciones del sistema?


Ejemplo: Las piezas arriban exponencialmente con media de 1 minuto y luego son procesadas en una mquina y luego salen de la fabrica.

Cmo salen las transacciones del sistema?


Utilizacin del TERMINATE para decrementar el contador de terminacin de la simulacin. Ejemplo: el proceso se simula por una hora (en minutos)

GENERATE .............. .............. TERMINATE


transaccin del sistema

(EXPONENTIAL(1,0,1))

Estoy sacando la

GENERATE TERMINATE
START 1

60 1

decrementa el contador

Captura de servidores
SEIZE: simula la captura de un servidor. Acta como
bloque controlador del flujo de transacciones. Maneja una variable interna llamada F, que puede tomar los valores 0 o 1.

Captura de servidores
ENTER: simula la seleccin o captura de uno o ms
servidores en paralelo.

SEIZE

A:identificacin del servidor


Ejemplo: GENERATE (EXPONENTIAL(1,0,1)) SEIZE MAQUINA .............. TERMINATE

ENTER A,B A: nombre o nmero del almacn por utilizar. B: nmero de unidades para las que se decrementa la capacidad disponible del almacn. Por default 1.
Para los almacenes se necesita definir su capacidad. Nomb_almacen STORAGE 100

Simulacin

Captura de servidores
ENTER
Ejemplo: Las piezas arriban exponencialmente con media de 1 minuto y luego son pueden ser procesadas cualquiera de las 4 mquinas con igual tiempo de procesamiento y luego salen de la fabrica. MAQUINAS STORAGE 4

Liberacin de los servidores


RELEASE: permite simular la liberacin de un servidor
que haba sido capturado, con el bloque SEIZE.

RELEASE A
A: Identificacin del servidor. Ejemplo: GENERATE SEIZE .............. RELEASE TERMINATE MAQUINA (EXPONENTIAL(1,0,1)) MAQUINA

GENERATE (EXPONENTIAL(1,0,1)) ENTER MAQUINAS ............ ............ TERMINATE

Liberacin de los servidores


LEAVE: permite simular la liberacin de uno o ms
servidores que haban sido capturados con el bloque ENTER.

Bloques de espera/cola
Ingreso QUEUE: nos permitir obtener estadsticas de colas que se forman al momento que las transacciones esperan usar un servidor. QUEUE A,B A: nombre/nro. de cola B: nro. de unidades en que se incrementa el contenido de la entidad de cola . Default =1

LEAVE

A,B

A: Identificacin del servidor.


B: nro. de unidades a liberar
MAQUINAS STORAGE 4 GENERATE (EXPONENTIAL(1,0,1)) ENTER MAQUINAS ............ LEAVE MAQUINAS TERMINATE

Simulacin

Bloques de espera/cola
Salida DEPART: reduce el contenido de la entidad cola. DEPART A,B A: nombre/nro. de cola B: nro. de unidades en que se decrementa el contenido de la entidad de cola . Default =1

Bloques de espera/cola
Ejemplo:
GENERATE QUEUE SEIZE DEPART .............. RELEASE TERMINATE MAQUINA (EXPONENTIAL(1,0,1)) COLAMAQ MAQUINA COLAMAQ

Proceso
ADVANCE: este bloque retarda el progreso de
una transaccin por una cantidad especificada de tiempo de simulacin

Ejemplo 1
Una mquina procesa 1 pieza en un tiempo de 10+-3 minutos. Las piezas arriban al sector de la mquina con tiempo de arribo exponencial con media de 2.4 minutos. a) Simule el modelo planteado durante 8 horas, para conocer cuntas piezas han sido procesadas durante ese perodo. Y tiempo en cola de espera. b) Simule el modelo planteado para conocer el tiempo total para procesar 100 piezas

ADVANCE A,B
A: es el tiempo de retraso de la actividad (servicio) B: desviacin con respecto a la media para una distribucin uniforme.

MQUINA

PIEZA PROCESADA

Simulacin

Ejemplo 1
Entonces debemos: 1 - generar el tiempo de arribo de las piezas al sector de la mquina 2- colocar en cola de espera 3- ocupar la mquina si est disponible 4- procesar la pieza 5- sacar la pieza , liberar la mquina

Ejemplo 1 item a)
Proceso de arribo y procesamiento de las piezas GENERATE (EXPONENTIAL(1,0,2.4)) ;arribo de las piezas QUEUE COLAMAQ ;coloco la pieza en cola de espera SEIZE MAQUINA ; si mq. Disponible, se ocupa DEPART COLAMAQ ;se saca la pieza de la cola ADVANCE 10,3 ;avanzo el tiempo tambin puede ser UNIFORM(2,7,13) RELEASE MAQUINA ; libero la mquina TERMINATE ; sale una pieza procesada Proceso de control de fin de la simulacin GENERATE 480 ; se ejecuta a las 8 horas TERMINATE 1 ; decrementa el contador START 1

Ejemplo 1 item b)
Proceso de arribo y procesamiento de las piezas GENERATE (EXPONENTIAL(1,0,2.4)) ;arribo de las piezas QUEUE COLAMAQ ;coloco la pieza en cola de espera SEIZE MAQUINA ; si mq. Disponible, se ocupa DEPART COLAMAQ ;se saca la pieza de la cola ADVANCE UNIFORM(2,7,13) ;avanzo el tiempo RELEASE MAQUINA ; libero la mquina TERMINATE 1 ; sale una pieza procesada

Entorno GPSS
Pantalla Principal

Crear un nuevo modelo

START 100

Simulacin

Entorno GPSS
Se ejecuta la simulacin, utilizando la opcin CREATE SIMULATION del Menu COMMAND. Si no existen errores de sintaxis el software mostrar un mensaje de listo (Ready). Desde el menu COMMAND, seleccionar la opcin START, que nos permitir ingresar el valor del contador de terminacin.

Entorno GPSS Ejemplo 1


Cargar el modelo item a) en el software , ejecutar e interpretar las salidas Cargar el modelo item b) en el software , ejecutar e interpretar las salidas

Ejemplo 2
Cuatro mquinas procesan piezas en un tiempo de 10+-3 minutos. Las piezas arriban al sector de las mquinas con tiempo de arribo exponencial con media de 2.4 minutos. a) Simule el modelo planteado durante 8 horas, para conocer cuntas piezas han sido procesadas durante ese perodo. Y tiempo en cola de espera. Entonces debemos: 1 - generar el tiempo de arribo de las piezas al sector de la mquina 2- colocar en cola de espera 3- ocupar cualquier de las mquinas que est disponible 4- procesar la pieza 5- sacar la pieza , liberar la mquina

Ejemplo 2
Proceso de arribo y procesamiento de las piezas GENERATE (EXPONENTIAL(1,0,2.4)) ;arribo de las piezas QUEUE COLAMAQ ;coloco la pieza en cola de espera ENTER MAQUINAS ; si hay mq. Disponible, ocupa una DEPART COLAMAQ ;se saca la pieza de la cola ADVANCE 10,3 ;avanzo el tiempo tambin puede ser UNIFORM(2,7,13) LEAVE MAQUINAS ; libero una mquina TERMINATE ; sale una pieza procesada Proceso de control de fin de la simulacin GENERATE 480 ; se ejecuta a las 8 horas TERMINATE 1 ; decrementa el contador Definicin de la capacidad del almacen MAQUINAS STORAGE 4 ; para simular las 4 mquinas

Simulacin

Entorno GPSS Ejemplo 2


Cargar el modelo en el software , ejecutar e interpretar las salidas

Control de Flujo
TEST: compara valores y controla el destino de
la transaccin de acuerdo al resultado de la comparacin.

TEST O

A,B,C

O: es un operador relacional entre A, B. Puede ser E, G, L, NE, GE o LE. A: es el valor para el test B: es un valor de referencia. C: bloque destino si el test no se cumple

Ejemplo: TEST LE AC1,60,FIN

Control de Flujo
TRANSFER: este bloque permite que una
transaccin activa se dirija a una nueva ubicacin dentro del modelo.

Control de Flujo Incondicional TRANSFER ,Lugar


Se deja en blanco

TRANSFER

A,B,C,D

A: modalidad de referencia. El operando puede ser BOTH, ALL, fraccin, etc. B: nmero o ubicacin del bloque. C: nmero o ubicacin del bloque D: nmero de incremento de bloques cuando est en modalidad ALL

Fraccional TRANSFER %,Lugar1,Lugar2


La transaccin va a C (Lugar2) con la probabilidad indicada en A y a B (Lugar1) con la probabilidad 1-A. Ver problema 1 y 4 del ANEXO 5

El mtodo que se utiliza para la eleccin se indica mediante un factor de seleccin en el campo A.

Simulacin

10

Control de Flujo
Gua de Trabajos Prcticos N 5 - ANEXO Problema 1 A un taller llegan piezas cada 15 minutos, las que son procesadas por una mquina en 14 4 minutos. Luego son inspeccionadas en 11 3 minutos. El 90% de las piezas son aceptadas y el 10% restante va a ser reprocesado por la mquina. a) Cunto tiempo toma aceptar 50 piezas? b) Cul es el tiempo medio de espera para ser atendida por la mquina?

Control de Flujo

GPSS ejercicios resueltos

Control de Flujo
BOTH: TRANSFER BOTH,Lugar1,Lugar2

La transaccin va a B (Lugar1) si est desocupada, sino va a C (Lugar2). Ver problema 2 del ANEXO 5

Simulacin

11

Problema 2 Los usuarios del laboratorio de computacin llegan cada 5 3 minutos. Si el laboratorio esta lleno van al bar donde permanecen 5 minutos. Pasado ese tiempo, el 50% de los alumnos vuelve a intentar usar el laboratorio, el resto permanece durante 60 minutos ms y luego se va. El tiempo de permanencia en el laboratorio es de 60 20 minutos, y su capacidad es de 10 mquinas. a) Cuntos alumnos se van sin haber usado el laboratorio despus de 8 horas de simulacin? b) Cuntos usaron el laboratorio?

Control de Flujo
ALL TRANSFER ALL,primerlugar,ltimolugar,incremento
Si hay ms de 2 destinos, chequea si estn disponibles todos los bloques comprendidos entre el bloque especfico en B y el bloque C. Si se quiere saltar cierto nro. fijo de bloques, se lo especifica en D. Ver problema 3 del ANEXO 5

Simulacin

12

Control de Flujo
TEST: compara valores y controla el destino de
la transaccin de acuerdo al resultado de la comparacin.

TEST O

A,B,C

O: es un operador relacional entre A, B. Puede ser E, G, L, NE, GE o LE. A: es el valor para el test B: es un valor de referencia. C: bloque destino si el test no se cumple

Ver problema 5 ANEXO 5

Simulacin

13

TABLE
TABLE: Inicializa una tabla de distribucin de
frecuencias.

MARK
MARK: permite asignar un tiempo a la
transaccin activa diferente al tiempo de entrada.

nombre_tabla

TABLE

A,B,C,D

MARK

A: Variable a tabular B: lmite superior de la primera frecuencia. C: incremento D: cantidad de intervalos El operando A puede ser un SNA como M1(tiempo trasncurrido), Qi (contenidos de una queue), Si (contenidos de un storage) o Xi (contenidos de un savevalue)

A: es un parmetro numrico que recibe el valor del reloj del sistema. Si no se especifica el operando A se toma el tiempo del reloj del sistema en el momento que la transaccin pasa por el bloque MARK. Si el operando A es especificado , el tiempo del reloj se toma de acuerdo al parmetro especificado en el operando A

Ejemplo:

TIEMPO

TABLE

M1,50,50,10

TABULATE
TABULATE: recolecta los datos de la medicin y los coloca en una tabla. TABULATE A
A: es el nombre o nmero de la tabla que debe ser incluido obligatoriamente. Ejemplo: Un sistema simple de telfono tiene 2 lneas externas. Las llamadas que se originan externamente arriban en forma uniforme cada 100 +- 60 segundos. Cuando la lnea est ocupada la persona que llama vuelve a discar despus de 5+- 1 minuto. Las llamadas duran 3+-1 minuto. Se necesita la distribucin de frecuencias para cada llamada que se complete. Cmo ser para completar 100 llamadas

TABLE - MARK - TABULATE


SET STORAGE 2 TRANS TABLE M1,100,100,20 GENERATE TEST L MARK ENTER SET ADVANCE LEAVE SET TABULATE TERMINATE ADVANCE TRANSFER 100,60 S$SET,2,OCUPA

REPETIR

180,60 TRANS 1 300,60 ,REPETIR

OCUPA

START 100

Simulacin

14

QTABLE QTABLE: inicializa una tabla de distribucin de frecuencia para una cola Nomb_qtabla QTABLE A,B,C,D
A: es el nombre o nmero de la cola.
B: lmite superior de la primera frecuencia. C: incremento D: cantidad de intervalos No se necesita incluir el TABULATE, yq que la medicin del tiempo ser entre el QUEUE y el DEPART de la cola A

FUNCTION
FUNCTION: se utiliza para definir funciones y distribuciones estadsticas. Nombre FUNCTION A,BN X1,Y1/X2,Y2/......./Xn,Yn
A: es el argumento de la funcin que puede ser un nombre, un entero positivo o un SNA
BN: donde B es el tipo de la funcin : C(continua), D(discreta), L(lista) y N es el nmero de pares de puntos que se ingresan

Ej: tiemposcola QTABLE

nomb_cola,0,10,50

Ej: Una estacin de servicio ofrece 4 tipos de combustibles. Existen las siguientes preferencias de los clientes: el 40% prefiere 87octanos, 30% prefiere 89 octanos, 20% prefiere 95 octanos y el resto diesel. COMBUSTIBLE FUNCTION RN1,D4 0.40,87/0.70,89/0.90,95/1.0,100

ASSIGN: este bloque se utiliza para asignar o modificar un entero en un parmetro de una transaccin. ASSIGN A,B,C
A: es el nro. del parmetro de la transaccin activa, debe ser incluido necesariamente B: valor C: nombre de un funcin que es opcional Ejemplo: ASSIGN 2,10 ASSIGN SUMA+,1 O ASSIGN RESTO-,3 ASSIGN TIPO,FN$COMBUSTIBLE ASSIGN 1,AC1 El valor del parmetro puedo ser invocado usando el P y el nombre o nro. de parmetro. Ej: TEST E P$TIPO,100,VER

ASSIGN

SAVEVALUE
SAVEVALUE: este bloque cambia el valor de una entidad savevalue (que graba o guarda valores). SAVEVALUE A,B A: es el nombre de la entidad savevalue B: es el valor a reemplazar, sumar o restar Ejemplo: SAVEVALUE 3,5
SAVEVALUE SUMA+,1 O SAVEVALUE RESTA-3 El valor del savevalue puede ser invocado usando X y el nombre del savevalue Ej: TEST G X$SUMA,20,SALIR

Simulacin

15

Preempt
Bloque PREEMPT en su versin elemental: Interrumpe el ADVANCE donde una transaccin est haciendo uso de la FACILITY. Cuando se produce la devolucin del recurso se reanuda el ADVANCE (es decir, se reinicia el ADVANCE con el tiempo que quedaba por hacerse al momento de la interrupcin). Ejemplo:
GENERATE clientes ... QUEUE empleado SEIZE empleado DEPART empleado ADVANCE 60 RELEASE empleado ... TERMINATE

Preempt
PREEMPT A,B,C,D,E A: Facility que se intenta arrebatar B: PR para indicar que es un arrebato con prioridad (el mismo se produce si el que arrebata tiene mayor prioridad que el arrebatado) C: Rtulo al que bifurca la transaccin afectada por el arrebato si la transaccin afectada est en un ADVANCE D: Parmetro de la transaccin afectada por el arrebato donde el GPSS pone el tiempo remanente para terminar el ADVANCE. E: RE para indicar que el arrebato es definitivo (con REMOVE de la FACILITY arrebatada)

Preempt
Cmo se simulan las interrupciones a empleado que suceden concurrentemente con la atencin de clientes por parte de empleado? GENERATE clientes ... QUEUE empleado SEIZE empleado DEPART empleado ADVANCE 60 RELEASE empleado . .. TERMINATE GENERATE interrupciones PREEMPT empleado ADVANCE 15 RETURN empleado TERMINATE El bloque PREEMPT arrebata al recurso que fue tomado por el bloque SEIZE, interrumpiendo el ADVANCE que estuviera ejecutando la transaccin afectada.

Preempt
Existe la posibilidad que se produzcan arrebatos de arrebatos? S, ejecutando el bloque: PREEMPT A,PR A: FACILITY que se intenta arrebatar PR: modalidad de arrebato que determina que el arrebato Se produce si la transaccin que tiene la facility es de menor prioridad que la que hace el PREEMPT A,PR si una transaccin ejecuta un PREEMPT empleado,PR y la prioridad de la transaccin que tiene a empleado es mayor o igual que la que ejecuta el PREEMPT, la transaccin no puede arrebatar a empleado y queda en una PENDING CHAIN

Simulacin

16

Preempt
Cmo podemos simular que la transaccin que sufre el arrebato, debe reiniciar la tarea, o sufre un recargo de tiempo, de 5 segundos, por ejemplo?
GENERATE 60 PRIORITY 100 SEIZE empleado ADVANCE 25 RELEASE empleado SAVEVALUE CUEN+,1 SAVEVALUE X$CUEN,AC1 TERMINATE 1 GENERATE 60,,10 PREEMPT empleado,,DENU ADVANCE 20 RETURN empleado TERMINATE REAN

Preempt
GENERATE 60 PRIORITY 100 ASSIGN 3,25 SEIZE empleado ADVANCE P3 RELEASE empleado SAVEVALUE CUEN+,1 SAVEVALUE X$CUEN,AC1 TERMINATE 1 GENERATE 60,,10 PREEMPT empleado,,DENU,3 RETURN empleado TERMINATE ASSIGN 3+,5 TRANSFER ,RENAN

DENU

DENU

Select
SELECT O A,B,C,D,E Selecciona una entidad y coloca el nmero de esta entidad en un parmetro de la transaccin activa.
FNV - The Facility Entity must be unavailable in order to be selected. Operandos : Special Restrictions FV - The Facility Entity must be available in order to be selected. O Operador condicional operador lgico :FNV, (preempted) FV, I, LS, LR, to NI, NU, I - The Facility u Entity must be currently interrupted in order be selected. LS - The Logicswitch be set in order be selected. Either conditional operator aEntity logical operator SE, SF,aSNE, SNF, SNV,or SV, U,must E, G, GE, L, to LE, MIN, MAX, or NE. is required. LR - The Logicswitch Entity must be reset in order to be selected. A Nombre o nmero del paramtro que recibe el nmero de la entidad NI - The Facility Entity must NOT be currently interrupted (preempted) in order to be selected. seleccionada. NU - The Facility Entity must not be in use in order to be selected. Evaluated entity numbers must be positive SE - The Storage Entity must be empty in order to be selected. B Nmero integers. de la entidad menor. SF - The Storage Entity must be full in order to be selected. C Nmero de la entidad mayor. SNE - The Storage Entity must NOT be empty in order to be selected. D and E are required if Storage O is a conditional SNF - The Entity must NOT be full in order to be selected. D - Opcional. No usado MIN. operator. Other than MIN con or MAX. SNV - The Storage Entity must NOT be available in order to be selected. E Nombre de la clase SNA.Entity must be available in order to be selected. SV - The Storage

Ejemplo uso del Select


Una Compaa est diseando un nuevo programa para sus estaciones expendedoras de combustible. La estacin de servicio ofrecer 4 tipos de combustibles: 87 octanos, 89 octanos, 95 octanos y diesel. Cada surtidor puede dispensar los tres grados de gasolina. Slo un surtidor de las cuatro expender diesel, adems de los distintos grados de gasolina. Un estudio reciente de los clientes determin las siguientes preferencias: el 40 % prefiere 87 octanos, 30 % prefiere 89 octanos, 20 % prefiere 95 octanos y el resto diesel. Durante perodos picos los clientes arriban uniformemente distribuidos entre 15 y 45 segundos. El combustible es bombeado a una velocidad de 5 litros por minuto. El tiempo requerido para comenzar y terminar la carga de combustible est distribuido uniformemente entre 2 y 7 minutos. El modelo en GPSS, utilizando sentencia select, es el siguiente :

When evaluated, U - The C must Facility be Entity greater must than be in or use equal in order to be selected. to B.

Simulacin

17

COMBUSTIBLE FUNCTION 0.40,87/0.70,89/0.90,95/1.0,100 COLA1 COLA4 EQU EQU 1 4

RN1,D4

Ejemplo uso del Select


a) b) c) d)

GENERATE (UNIFORM(1,15,45)) ASSIGN TIPO,FN$COMBUSTIBLE TEST E P$TIPO,100,VERCOLAS TRANSFER ,IRDIESEL VERCOLAS SELECT MIN MCOLA,COLA1,COLA4,,Q QUEUE P$MCOLA SEIZE P$MCOLA DEPART P$MCOLA ADVANCE (UNIFORM(1,120,420)) RELEASE P$MCOLA TERMINATE

IRDIESEL

ASSIGN QUEUE SEIZE DEPART ADVANCE RELEASE TERMINATE

DIESEL,4 P$DIESEL P$DIESEL P$DIESEL (UNIFORM(1,120,420)) P$DIESEL

GENERATE 3600 TERMINATE 1

Aplicar sentencias alternativas para obtener el mismo resultado. Test Calcular en el modelo, la consumicin promedio de combustible por cliente y tipo. Calcular en el modelo, qu tiempo promedio permanece en el sistema un cliente que compra diesel. Modifique el problema anterior para tratar una falla en los surtidores que en forma aleatoria afecta a cualquiera de los surtidores y se produce en forma exponencial cada 30 minutos. Y deja al surtidor fuera de servicio por 51,5 Preempt minutos. El auto que est en servicio y la cola esperan la reparacin del mismo para seguir la carga de combustible.

1.

El reporte de la simulacin del modelo original es la siguiente :


START TIME 0.000 END TIME 3600.000 BLOCK TYPE GENERATE ASSIGN TEST TRANSFER SELECT QUEUE SEIZE DEPART ADVANCE RELEASE TERMINATE ASSIGN QUEUE SEIZE DEPART ADVANCE RELEASE TERMINATE GENERATE TERMINATE BLOCKS 20 FACILITIES 4 STORAGES 0

LABEL

VERCOLAS

IRDIESEL

LOC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ENTRIES 15 14 14 11 UTIL. 0.989 0.968 0.937 0.925

ENTRY COUNT CURRENT COUNT RETRY surtidor 117 0 0 diesel? 117 0 0 117 0 0 17 0 0 100 0 0 100 52 0 48 0 0 Cul es el 48 0 0 nmero mximo 48 4 0 de autos 44 0 0 esperando por el 44 0 0 servicio en todos 17 0 0 los surtidores? 17 11 0 6 0 0 6 0 0 6 0 0 6 0 0 6 0 0 1 0 0 1 0 0

Cuntos clientes usaron el

Assemble
ASSEMBLE A el comando ASSEMBLE espera y destruye una cantidad de transacciones asociadas por un mismo Assembly Set. Es usado para sincronizacin. Las transacciones relacionadas son destruidas A- cantidad de transacciones. Requerido. Debe ser nombre , posint, SNA, SNA*param) Ejemplo: ASSEMBLE 2 La primera transaccin de un conjunto de reunin (assembly set) es puesta a esperar cuando ingresa en el bloque ASSEMBLE. Cuando otra transaccin del mismo conjunto de reunin ingresa al bloque, sta es destruida y la transaccin que esperaba es permitida para que contine.

FACILITY 1 2 3 4 QUEUE 1 2 3 4

AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY 237.315 1 50 0 0 0 16 248.917 1 53 0 0 0 15 240.910 1 59 0 0 0 15 302.886 1 52 0 0 0 17 AVE.(-0) RETRY 903.818 0 936.798 0 889.026 0 972.960 0

MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME 16 16 31 1 7.532 874.662 15 15 29 1 7.286 904.495 15 15 29 1 6.915 858.370 17 17 28 1 7.297 938.211

Simulacin

18

Assemble- Ejercicio 9
A una mquina llegan pares de componentes (como una unidad) cada 130 segundos. Una vez dentro de la mquina, este par de componentes es desensamblado en 105 segundos. Cada componente se procesa en forma separada demorando 805 segundos (el procesamiento de cada uno de los componentes se realiza en forma simultnea). La mquina slo puede procesar de a un par por vez, los que lleguen detrs esperan en cola. Luego de procesar cada par de componentes, la misma mquina los ensambla en 4020 segundos y los libera, para continuar con el par siguiente. Simular 1000 pares de componentes procesados. Se necesita conocer la cantidad en cola encontrada por cada par de componentes llegados a la mquina, antes de ingresar a la cola.

Assemble- Ejercicio 9
CANTIDAD TABLE MAQUINA STORAGE GENERATE TABULATE QUEUE ENTER DEPART ADVANCE SPLIT ADVANCE TRANSFER Q$COLA,2,2,20 1 130 CANTIDAD COLA MAQUINA COLA 10,5 1,OTRA 80,5 ,SEGUIR

OTRA SEGUIR

ADVANCE ASSEMBLE ADVANCE LEAVE TERMINATE

80,5 2 40,2 MAQUINA 1

Gather
GATHER A funciona como una barrera, esperando que lleguen al mismo la cantidad de transacciones (del mismo assembly set) especificada en su nico parmetro. A- cantidad de transacciones a esperar Es similar al assemble pero no destruye

Link
LINK A,B,[C] Encadena una transaccin a la cadena A. Las transacciones quedan congeladas hasta que otra haga un UNLINK A- nombre o nro. de la cadena donde se encadena la transacc. (nom, posint, SNA) B- disciplina por la cual se encadena (FIFO, LIFO, PR, Pn, M1, etc). Por param. de menor a mayor. Es aconsejable no mezclar disciplinas distintas para una misma cadena (FIFO, LIFO, nom, posint, SNA, SNA*param) C- es a la etiqueta al que van las transacciones en caso de que la cadena este en estado de reset. (nom, posint, SNA*Param. O al que bifurca la primera transaccin de la cadena(no se utiliza en sistema transporte)

Simulacin

19

Unlink
UNLINK [O] A, B, [C], [D], [E], [F] Libera C transacciones encadenadas que cumplen la condicin que se establece relacionando los operandos D y E mediante el operador O. envindolas a la etiqueta B
O. operador relacional entre D y E para seleccionar que transacciones pueden liberarse. (E, G, GE, L, LE, NE). Si no se coloca operador es E (equal). A. nombre o nro. de la cadena desde donde se libera. (nom, posint, SNA, SNA*param) B. rtulo al que van las transacc. liberadas. (nom, posint, SNA, SNA*param) C. [ALL] mxima cantidad de transacciones a liberar. Para que el UNLINK sea Verd. Deben poder liberarse todas las pedidas. DyE definen la condicin que deben cumplir para ser liberadas. D. param, PR, BV, BACK. Si no es BV se comp. con valor de E para ver si se puede liberar (nom, int, SNA, SNA*param, BACK). BACK saca de la cola. E. valor que debe tener parm. D para que la transacc. sea liberada. No se usa con BV en D. (nom, int, SNA, SNA*param) F. Etiqueta alternativa si no se puede cumplir el UNLINK, o sea si no se pueden liberar C transacciones. (nom, posint, SNA, SNA*param)

Uso en el transporte de objetos


Activas
transportan

Pasivas
transportadas

Los que viajan tienen dos momentos en que son objetos pasivos (dependen del colectivo): 1. Cuando esperan el colectivo. No saben cunto tiempo van a estar en la parada ya que ignoran cunto va a tardar en venir el colectivo. 2. Cuando viajan: No saben cunto tiempo van a demorar viajando porque no saben lo rpido que van a llegar a destino.

Uso en el transporte de objetos


Las transacciones pueden entrar en un estado de letargo si ejecutan un Link encadenndose a una cadena. (ej, a la PARADA para esperar el colectivo, BUS cuando estn viajando en el colectivo) Una transaccin que ejecuta un LINK sale de circulacin. Pasividad total, nada de lo que pasa a su alrededor le afecta, slo aguarda que otra transaccin la libere mediante el bloque UNLINK. Una transaccin que est encadenada en ningn caso puede liberarse a si misma.

Ejemplo de uso en el transporte de objetos


En una Institucin Gubernamental, donde el pblico presenta notas que las hace ingresar por MESA DE ENTRADAS, un empleado la recibe y la apila a la espera que un nico cadete la recoja y la lleve a DESPACHO. Las notas estn en la PILA de notas aguardando ser transportadas. El cadete, realiza una tarea inicial habitual (se cambia, limpia su lugar de trabajo, ordena sus cosas, etc), se dirige a Mesa de entradas, all recoge todas las notas (saca todas las notas de la PILA), se dirige a Despacho, all entrega todas las notas, hace otras tareas, vuelve a Mesa de entradas repitiendo el ciclo aqu descripto. Las notas hacen un LINK a PILA y luego hacen un LINK a CAD. En ambos casos es el cadete el que hace el UNLINK cuando saca todas las notas de la PILA y cuando saca a todas de CAD.

Transacciones pasivas Pasajeros en la parada Pasajeros viajando en el colectivo Bultos apilados Bultos en la pluma de la gra Expedientes apilados Expedientes bajo el brazo del cadete

Transacciones activas Colectivo Gra Cadete

Simulacin

20

Ejemplo de uso en el transporte de objetos


Subsistemas de notas (pasivo) Subsistema Cadete (activo) Se encadenan a PILA y a CAD antes de llegar (transporta las notas) a despacho (rtulo ENT) GENERATE notas GENERATE ,,,1 Se representan las tareas que se hacen ADVANCE tiempo tarea inicial . ... con las notas antes de ponerlas en la pila... VUEL ADVANCE tiempo ir a Mesa Entr LINK PILA,FIFO UNLINK PILA,BRA,ALL BRA LINK CAD,FIFO ADVANCE tiempo ir a Despacho ENT se representa el trmite en DESPACHO UNLINK CAD,ENT,ALL (otra descripcin de tareas que se realizan all) ADVANCE otras tareas TRANSFER ,VUEL

Ejemplo de uso en el transporte de objetos


BRA ENT GENERATE 4,1 ADVANCE 2 LINK PILA,FIFO LINK CAD,FIFO SAVEVALUE CONTA+,1 TERMINATE GENERATE ,,,1 ADVANCE 10 ADVANCE 2 UNLINK PILA,BRA,ALL ADVANCE 10 UNLINK CAD,ENT,ALL ADVANCE 5 TRANSFER ,VUEL GENERATE 480 TERMINATE 1

VUEL

START TIME 0.000 NAME BRA CAD CONTA ENT PILA VUEL LABEL

END TIME 480.000

BLOCKS 16

FACILITIES 0 VALUE 4.000 10001.000 10002.000 5.000 10000.000 9.000

STORAGES 0

BRA ENT

VUEL

LOC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

BLOCK TYPE GENERATE ADVANCE LINK LINK SAVEVALUE TERMINATE GENERATE ADVANCE ADVANCE UNLINK ADVANCE UNLINK ADVANCE TRANSFER GENERATE TERMINATE

ENTRY COUNT CURRENT COUNT RETRY 120 0 0 120 1 0 119 3 0 116 4 0 112 0 0 112 0 0 1 0 0 1 0 0 28 0 0 28 0 0 28 1 0 27 0 0 27 0 0 27 0 0 1 0 0 1 0 0

USER CHAIN PILA CAD SAVEVALUE CONTA

SIZE RETRY 3 0 4 0 RETRY 0

AVE.CONT 2.181 2.408 VALUE 112.000

ENTRIES 119 116

MAX 5 5

AVE.TIME 8.799 9.966

Simulacin

21

Potrebbero piacerti anche