gpss - transparencias

21
Simulación 1 GPSS. SOFTWARE DE SIMULACIÓN DE EVENTOS DISCRETOS. Simulación Ingeniería en Sistemas de Información Simulación con GPSS GPSS (General Purpose System Simulation) Lenguaje de propósito general para la simulación de sistemas. Desarrollado por Geoffrey Gordon en IBM alrededor de 1960. Lenguaje orientado a la simulación de sistemas discretos cuya estructura de funcionamiento está basada en el enfoque de Interacción del Proceso. Elementos básicos Entidades Transacciones : se mueven a través del sistema, entran, permanecen y salen. Entidades Permanentes : están siempre en el sistema y actúan como recursos disponibles o no. Elementos básicos Funcionamiento : las transacciones se mueven a través del sistema hasta que encuentran una entidad que las atiende. Flujo : el programa avanza con una transacción de un bloque a otro, hasta que algún bloque las retiene, porque representa un tiempo de espera o por que no puede seguir hasta cumplir con alguna condición lógica.

Upload: naye-diego

Post on 19-Oct-2015

177 views

Category:

Documents


7 download

TRANSCRIPT

  • Simulacin 1

    GPSS. SOFTWARE DE SIMULACIN DE EVENTOS DISCRETOS.

    SimulacinIngeniera en Sistemas de

    Informacin Simulacin con GPSSGPSS (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.

    Elementos bsicosEntidades 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 bsicosFuncionamiento: 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 2

    Estructura del LenguajeInstrucciones 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 LenguajeInstrucciones de lgica del programa (Block statements).

    Inicio de proceso y captura de servidores

    SEIZE, ENTER, PREEMPT

    Fin de proceso y liberacin de servidores

    RELEASE, LEAVE, RETURN

    Ingreso de transacciones a un almacn o un bloque de espera

    QUEUE, ENTER, LINK

    Egreso de transacciones a un almacn o un bloque de espera

    DEPART, LEAVE, UNLINK

    Estructura del LenguajeInstrucciones de lgica del programa (Block statements).

    Ingreso de una transaccin al sistema

    GENERATE, SPLIT

    Salida de una transaccin del sistema

    TERMINATE

    Procesos ADVANCE, ASSEMBLE, MATCH, GATHER

    Control de flujo TRANSFER, TEST, GATE, LOGIC, SELECT, LOOP, BUFFER

    Estructura del LenguajeInstrucciones de lgica del programa (Block statements).

    Bloques de operaciones aritmticas

    SAVEVALUE, MSAVEVALUE, ASSIGN, INDEX, PRIORITY

    Bloques de creacin de estadsticas

    TABULATE

  • Simulacin 3

    Estructura del LenguajeFormato de las instrucciones-fields: en definicin de variables o de lgica.

    ETIQUETA BLOQUE OPERANDOS ;COMENTARIOSVERBOS

    REPRESENTA EL NOMBRE DE UN ETIQUETA O UNA DIRECCIN

    ES LA INSTRUCCIN ESPECFICA A EJECUTAR

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

    ES EL ESPACIO DONDE EL USUARIO PUEDE COLOCAR CUALQUIR INDICACIN

    SNAs: System Numerical AttributesSon 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

    M1: tiempo de trnsito de un transaccin

    Distribucciones de ProbabilidadLibrera:

    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 al sistema

    GENERATE, SPLIT

    GENERATE A,B,C,D,EA: tiempo medio entre llegadasB: Desviacin respecto a la mediaC: Tiempo en que se generar la primera transaccinD: Lmite de generacin de transaccionesE: Nivel de prioridad

  • Simulacin 4

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

    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 (UNIFORM(1,2,6)),,90O

    GENERATE 4,2,90

    SPLITSPLIT 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,30))SPLIT 9

    10SE CREAN 9 TRANSACCIONES GEMELAS

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

    SPLIT 10,procesoMaq21 LAS 10 TRANSACCIONES

    GEMELAS VAN A LA ETIQUETA PROCESO MAQ2

    LA TRANSACCIN ORIGINAL

    Cmo salen las transacciones del sistema?

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

    TERMINATE AA: Cantidad decremental del contador de

    terminacin (opcional)

  • Simulacin 5

    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.

    GENERATE (EXPONENTIAL(1,0,1))..............

    ..............

    TERMINATE Estoy sacando la transaccin del sistema

    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 60TERMINATE 1 decrementa el contador

    START 1

    Captura de servidoresSEIZE: 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.

    SEIZE AA:identificacin del servidor

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

    TERMINATE

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

    ENTER A,BA: 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 6

    Captura de servidoresENTER

    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

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

    ............

    TERMINATE

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

    RELEASE AA: Identificacin del servidor.

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

    RELEASE MAQUINATERMINATE

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

    LEAVE A,BA: Identificacin del servidor.B: nro. de unidades a liberarMAQUINAS STORAGE 4

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

    LEAVE MAQUINASTERMINATE

    Bloques de espera/colaIngresoQUEUE: nos permitir obtener estadsticas de colas que se forman al momento que las transacciones esperan usar un servidor.

    QUEUE A,BA: nombre/nro. de cola B: nro. de unidades en que se incrementa el

    contenido de la entidad de cola . Default =1

  • Simulacin 7

    Bloques de espera/colaSalidaDEPART: reduce el contenido de la entidad cola.

    DEPART A,BA: nombre/nro. de cola B: nro. de unidades en que se decrementa el

    contenido de la entidad de cola . Default =1

    Bloques de espera/colaEjemplo:

    GENERATE (EXPONENTIAL(1,0,1))QUEUE COLAMAQSEIZE MAQUINADEPART COLAMAQ..............

    RELEASE MAQUINATERMINATE

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

    ADVANCE A,B

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

    distribucin uniforme.

    Ejemplo 1Una 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

    MQUINA

    PIEZA PROCESADA

  • Simulacin 8

    Ejemplo 1Entonces debemos: 1- generar el tiempo de arribo de las piezas al sector de la mquina 2- colocar en cola de espera3- ocupar la mquina si est disponible4- procesar la pieza5- 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 piezasQUEUE COLAMAQ ;coloco la pieza en cola de esperaSEIZE MAQUINA ; si mq. Disponible, se ocupaDEPART COLAMAQ ;se saca la pieza de la colaADVANCE 10,3 ;avanzo el tiempo tambin puede ser UNIFORM(2,7,13)RELEASE MAQUINA ; libero la mquinaTERMINATE ; sale una pieza procesada

    Proceso de control de fin de la simulacinGENERATE 480 ; se ejecuta a las 8 horasTERMINATE 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 piezasQUEUE COLAMAQ ;coloco la pieza en cola de esperaSEIZE MAQUINA ; si mq. Disponible, se ocupaDEPART COLAMAQ ;se saca la pieza de la colaADVANCE UNIFORM(2,7,13) ;avanzo el tiempo RELEASE MAQUINA ; libero la mquinaTERMINATE 1 ; sale una pieza procesada

    START 100

    Entorno GPSSPantalla Principal

    Crear un nuevo modelo

  • Simulacin 9

    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 1Cargar 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 2Cuatro 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 piezasQUEUE COLAMAQ ;coloco la pieza en cola de esperaENTER MAQUINAS ; si hay mq. Disponible, ocupa unaDEPART COLAMAQ ;se saca la pieza de la colaADVANCE 10,3 ;avanzo el tiempo tambin puede ser UNIFORM(2,7,13)LEAVE MAQUINAS ; libero una mquinaTERMINATE ; sale una pieza procesada

    Proceso de control de fin de la simulacinGENERATE 480 ; se ejecuta a las 8 horasTERMINATE 1 ; decrementa el contador

    Definicin de la capacidad del almacenMAQUINAS STORAGE 4 ; para simular las 4 mquinas

  • Simulacin 10

    Entorno GPSS Ejemplo 2Cargar 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,CO: es un operador relacional entre A, B. Puede ser E, G, L,

    NE, GE o LE.A: es el valor para el testB: es un valor de referencia.C: bloque destino si el test no se cumpleEjemplo:

    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.

    TRANSFER A,B,C,DA: modalidad de referencia. El operando puede ser BOTH,

    ALL, fraccin, etc.B: nmero o ubicacin del bloque.C: nmero o ubicacin del bloqueD: nmero de incremento de bloques cuando est en

    modalidad ALLEl mtodo que se utiliza para la eleccin se indica

    mediante un factor de seleccin en el campo A.

    Control de Flujo IncondicionalTRANSFER ,Lugar

    Se deja en blanco

    FraccionalTRANSFER %,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 5Ver problema 1 y 4 del ANEXO 5

  • Simulacin 11

    Gua de Trabajos Prcticos N 5 - ANEXO GPSS ejercicios resueltos

    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 Control de Flujo

    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 5Ver problema 2 del ANEXO 5

  • Simulacin 12

    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 5Ver problema 3 del ANEXO 5

  • Simulacin 13

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

    TEST O A,B,CO: es un operador relacional entre A, B. Puede ser E, G, L,

    NE, GE o LE.A: es el valor para el testB: es un valor de referencia.C: bloque destino si el test no se cumpleVer problema 5 ANEXO 5

  • Simulacin 14

    TABLE TABLE: Inicializa una tabla de distribucin de frecuencias.nombre_tabla TABLE A,B,C,D

    A: Variable a tabularB: lmite superior de la primera frecuencia.C: incrementoD: cantidad de intervalosEl 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)

    Ejemplo: TIEMPO TABLE M1,50,50,10

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

    MARK AA: 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

    TABULATE TABULATE: recolecta los datos de la medicin y los coloca en una tabla.

    TABULATE AA: 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 2TRANS TABLE M1,100,100,20

    GENERATE 100,60REPETIR TEST L S$SET,2,OCUPA

    MARKENTER SETADVANCE 180,60LEAVE SETTABULATE TRANSTERMINATE 1

    OCUPA ADVANCE 300,60TRANSFER ,REPETIR

    START 100

  • Simulacin 15

    QTABLEQTABLE: 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: incrementoD: cantidad de intervalosNo se necesita incluir el TABULATE, yq que la medicin del

    tiempo ser entre el QUEUE y el DEPART de la cola AEj: tiemposcola QTABLE nomb_cola,0,10,50

    FUNCTIONFUNCTION: se utiliza para definir funciones y distribuciones estadsticas.

    Nombre FUNCTION A,BNX1,Y1/X2,Y2/......./Xn,YnA: es el argumento de la funcin que puede ser un nombre,

    un entero positivo o un SNABN: 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 ingresanEj: 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,D40.40,87/0.70,89/0.90,95/1.0,100

    ASSIGNASSIGN: este bloque se utiliza para asignar o modificar un entero en un parmetro de una transaccin.

    ASSIGN A,B,CA: es el nro. del parmetro de la transaccin activa, debe ser

    incluido necesariamenteB: valor C: nombre de un funcin que es opcionalEjemplo: ASSIGN 2,10

    ASSIGN SUMA+,1 O ASSIGN RESTO-,3ASSIGN TIPO,FN$COMBUSTIBLEASSIGN 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

    SAVEVALUESAVEVALUE: este bloque cambia el valor de una entidad savevalue (que graba o guarda valores).

    SAVEVALUE A,BA: es el nombre de la entidad savevalueB: es el valor a reemplazar, sumar o restarEjemplo: 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 16

    PreemptBloque 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 empleadoSEIZE empleadoDEPART empleadoADVANCE 60RELEASE empleado...

    TERMINATE

    PreemptPREEMPT A,B,C,D,EA: Facility que se intenta arrebatarB: 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)

    PreemptCmo se simulan las interrupciones a empleado que suceden concurrentemente con la atencin de

    clientes por parte de empleado?GENERATE clientes...

    QUEUE empleadoSEIZE empleadoDEPART empleadoADVANCE 60RELEASE empleado

    . ..

    TERMINATEGENERATE interrupcionesPREEMPT empleadoADVANCE 15RETURN empleadoTERMINATE

    El bloque PREEMPT arrebata al recurso que fue tomado por el bloque SEIZE, interrumpiendo el ADVANCE que estuviera ejecutando la transaccin afectada.

    PreemptExiste la posibilidad que se produzcan arrebatos de arrebatos?S, ejecutando el bloque:

    PREEMPT A,PRA: FACILITY que se intenta arrebatarPR: modalidad de arrebato que determina que el arrebatoSe 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 17

    PreemptCmo 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

    DENU ADVANCE 25 RELEASE empleadoSAVEVALUE CUEN+,1 SAVEVALUE X$CUEN,AC1 TERMINATE 1 GENERATE 60,,10PREEMPT empleado,,DENU ADVANCE 20 RETURN empleadoTERMINATE

    PreemptGENERATE 60 PRIORITY 100 ASSIGN 3,25 SEIZE empleado

    REAN ADVANCE P3 RELEASE empleadoSAVEVALUE CUEN+,1 SAVEVALUE X$CUEN,AC1 TERMINATE 1

    GENERATE 60,,10 PREEMPT empleado,,DENU,3RETURN empleadoTERMINATE

    DENU ASSIGN 3+,5TRANSFER ,RENAN

    SelectSELECT O A,B,C,D,ESelecciona una entidad y coloca el nmero de esta entidad en un

    parmetro de la transaccin activa.

    Operandos :O Operador condicional u operador lgico :FNV, FV, I, LS, LR, NI, NU,

    SE, SF, SNE, SNF, SNV, SV, U, E, G, GE, L, LE, MIN, MAX, or NE.A Nombre o nmero del paramtro que recibe el nmero de la entidad

    seleccionada.B Nmero de la entidad menor.C Nmero de la entidad mayor.D - Opcional. No usado con MIN.E Nombre de la clase SNA.

    FNV - The Facility Entity must be unavailable in order to be selected. FV - The Facility Entity must be available in order to be selected. I - The Facility Entity must be currently interrupted (preempted) in order to be selected. LS - The Logicswitch Entity must be set in order to be selected. LR - The Logicswitch Entity must be reset in order to be selected. NI - The Facility Entity must NOT be currently interrupted (preempted) in order to be selected. NU - The Facility Entity must not be in use in order to be selected. SE - The Storage Entity must be empty in order to be selected. SF - The Storage Entity must be full in order to be selected. SNE - The Storage Entity must NOT be empty in order to be selected. SNF - The Storage Entity must NOT be full in order to be selected. SNV - The Storage Entity must NOT be available in order to be selected. SV - The Storage Entity must be available in order to be selected. U - The Facility Entity must be in use in order to be selected.

    Special Restrictions

    Either a conditional operator or a logical operator is required.

    Evaluated entity numbers must be positive integers.

    D and E are required if O is a conditional operator. Other than MIN or MAX.

    When evaluated, C must be greater than or equal to B.

    Ejemplo uso del SelectUna 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 :

  • Simulacin 18

    COMBUSTIBLE FUNCTION RN1,D4 0.40,87/0.70,89/0.90,95/1.0,100

    COLA1 EQU 1 COLA4 EQU 4

    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 DIESEL,4 QUEUE P$DIESEL SEIZE P$DIESEL DEPART P$DIESEL ADVANCE (UNIFORM(1,120,420)) RELEASE P$DIESEL TERMINATE

    GENERATE 3600 TERMINATE 1

    Ejemplo uso del Selecta) Aplicar sentencias alternativas para obtener el mismo

    resultado. b) Calcular en el modelo, la consumicin promedio de

    combustible por cliente y tipo.c) Calcular en el modelo, qu tiempo promedio permanece

    en el sistema un cliente que compra diesel.d) 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 minutos. El auto que est en servicio y la cola esperan la reparacin del mismo para seguir la carga de combustible.

    Test

    Preempt

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

    START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 3600.000 20 4 0

    LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 117 0 0 2 ASSIGN 117 0 0 3 TEST 117 0 0 4 TRANSFER 17 0 0 VERCOLAS 5 SELECT 100 0 0 6 QUEUE 100 52 0 7 SEIZE 48 0 0 8 DEPART 48 0 0 9 ADVANCE 48 4 0 10 RELEASE 44 0 0 11 TERMINATE 44 0 0 IRDIESEL 12 ASSIGN 17 0 0 13 QUEUE 17 11 0 14 SEIZE 6 0 0 15 DEPART 6 0 0 16 ADVANCE 6 0 0 17 RELEASE 6 0 0 18 TERMINATE 6 0 0 19 GENERATE 1 0 0 20 TERMINATE 1 0 0

    FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY 1 15 0.989 237.315 1 50 0 0 0 16 2 14 0.968 248.917 1 53 0 0 0 15 3 14 0.937 240.910 1 59 0 0 0 15 4 11 0.925 302.886 1 52 0 0 0 17

    QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 16 16 31 1 7.532 874.662 903.818 0 2 15 15 29 1 7.286 904.495 936.798 0 3 15 15 29 1 6.915 858.370 889.026 0 4 17 17 28 1 7.297 938.211 972.960 0

    Cuntos clientes usaron el surtidor diesel?

    Cul es el nmero mximo de autos esperando por el servicio en todos los surtidores?

    AssembleASSEMBLE Ael comando ASSEMBLE espera y destruye una cantidad de

    transacciones asociadas por un mismo Assembly Set.Es usado para sincronizacin. Las transacciones relacionadas son

    destruidasA- cantidad de transacciones. Requerido. Debe ser nombre , posint, SNA,

    SNA*param)Ejemplo: ASSEMBLE 2La 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.

  • Simulacin 19

    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 9CANTIDAD TABLE Q$COLA,2,2,20 MAQUINA STORAGE 1

    GENERATE 130 TABULATE CANTIDAD QUEUE COLA ENTER MAQUINA DEPART COLA ADVANCE 10,5 SPLIT 1,OTRA ADVANCE 80,5 TRANSFER ,SEGUIR

    OTRA ADVANCE 80,5 SEGUIR ASSEMBLE 2 ADVANCE 40,2 LEAVE MAQUINA TERMINATE 1

    GatherGATHER Afunciona 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

    LinkLINK 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 20

    UnlinkUNLINK [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

    Pasivastransportadas

    Activastransportan

    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.

    Transacciones pasivas Transacciones activas Pasajeros en la parada Pasajeros viajando en el colectivo

    Colectivo

    Bultos apilados Bultos en la pluma de la gra

    Gra

    Expedientes apilados Expedientes bajo el brazo del cadete

    Cadete

    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.

  • Simulacin 21

    Ejemplo de uso en el transporte de objetosSubsistemas de notas (pasivo)

    Se encadenan a PILA y a CAD antes de llegar a despacho (rtulo ENT)

    Subsistema Cadete (activo) (transporta las notas)

    GENERATE notas Se representan las tareas que se hacen . ... con las notas antes de ponerlas en la pila... LINK PILA,FIFO BRA LINK CAD,FIFO ENT se representa el trmite en DESPACHO (otra descripcin de tareas que se realizan all)

    GENERATE ,,,1 ADVANCE tiempo tarea inicial VUEL ADVANCE tiempo ir a Mesa Entr UNLINK PILA,BRA,ALL ADVANCE tiempo ir a Despacho UNLINK CAD,ENT,ALL ADVANCE otras tareas TRANSFER ,VUEL

    Ejemplo de uso en el transporte de objetosGENERATE 4,1

    ADVANCE 2 LINK PILA,FIFO BRA LINK CAD,FIFO ENT SAVEVALUE CONTA+,1 TERMINATE

    GENERATE ,,,1 ADVANCE 10 VUEL ADVANCE 2 UNLINK PILA,BRA,ALL ADVANCE 10 UNLINK CAD,ENT,ALL ADVANCE 5 TRANSFER ,VUEL

    GENERATE 480 TERMINATE 1

    START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 480.000 16 0 0

    NAME VALUE BRA 4.000 CAD 10001.000 CONTA 10002.000 ENT 5.000 PILA 10000.000 VUEL 9.000

    LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 120 0 0 2 ADVANCE 120 1 0 3 LINK 119 3 0 BRA 4 LINK 116 4 0 ENT 5 SAVEVALUE 112 0 0 6 TERMINATE 112 0 0 7 GENERATE 1 0 0 8 ADVANCE 1 0 0 VUEL 9 ADVANCE 28 0 0 10 UNLINK 28 0 0 11 ADVANCE 28 1 0 12 UNLINK 27 0 0 13 ADVANCE 27 0 0 14 TRANSFER 27 0 0 15 GENERATE 1 0 0 16 TERMINATE 1 0 0

    USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME PILA 3 0 2.181 119 5 8.799 CAD 4 0 2.408 116 5 9.966

    SAVEVALUE RETRY VALUE CONTA 0 112.000