You are on page 1of 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Anexo I: Simulacin con GPSS


Introduccin
El GPSS (General Purpose System Simulation) World es un ambiente de simulacin por computadora de propsito general poderoso, diseado para la simulacin profesional. Como una herramienta de modelado comprensivo, cubre tanto simulacin discreta como continua, con un alto nivel de interactividad y visualizacin. GPSS World comenz como lenguaje de Propsito general para la simulacin de sistemas; Este lenguaje fue desarrollado por Geoffrey Gordon en IBM alrededor de 1960, y ha contribuido al desarrollo de importantes conceptos en la simulacin de sistemas comerciales de eventos discretos. GPSS World es un descendiente directo de GPSS/PC, una implementacin anterior de GPSS para PC. Ahora, la implementacin en Windows de GPSS World se extiende a un ambiente de Internet. Se puede simular cualquier tipo de sistema, el cual se describe mediante un diagrama de bloques que representan las actividades, unidos mediante lneas que representan la secuencia que siguen las transacciones, estos bloques muestran adems la circulacin de las transacciones entre ellos. Las transacciones representan entidades que dependen de la naturaleza del sistema, por ejemplo, en un sistema de comunicaciones estas hacen referencia a los mensajes y su movimiento entre las PC; en un sistema de transporte las mismas harn referencia a los vehculos motorizados y su movimiento; las piezas estarn representadas por ellas en un sistema de produccin.

Elementos bsicos
El GPSS es un lenguaje orientado a la simulacin de sistemas discretos cuya estructura de funcionamiento est basada en el enfoque de la interaccin del proceso. Para simular el sistema GPSS clasifica a las entidades en dos grandes grupos: Transacciones: Entidades que se mueven a travs del sistema, entrando, permaneciendo y saliendo de l. Ejemplo: piezas en un taller, personas en un banco. Entidades Permanentes: Entidades que estn siempre en el sistema y actan como recursos disponibles o no. Ejemplo: el obrero en un taller, el cajero en el banco. Dentro de estas entidades permanentes hay otra subdivisin: Facilidades: Son las entidades permanentes capaces de atender una sola transaccin por vez. Ejemplo: el obrero en el taller. Almacenajes: Entidades capaces de atender ms de una transaccin por vez. Ejemplo: si hay ms de un obrero efectuando la misma tarea. Colas: Se forman y se dispone informacin sobre ellas dependiendo si se usa o no el bloque QUEUE en la simulacin. Funciones: Se usan para ingresar datos correspondientes a distribuciones de probabilidades continuas o discretas en el modelo.
Pgina 1 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Tablas: Permiten obtener distribuciones de probabilidades como resultados del modelo. Variables: Mediante su uso se pueden evaluar expresiones matemticas y lgicas. Grabar Valores: Parmetros correspondientes a atributos numricos de las transacciones pueden ser guardados para futuras referencias.

El concepto de funcionamiento general es que las transacciones se mueven a travs del sistema hasta que encuentran una facilidad o un almacenaje. Tanto las entidades que se mueven como las permanentes tienen parmetros asociados. Esos parmetros se denominan, en conjunto, atributos numricos estndar (SNA). Habr proposiciones del programa asociadas a las transacciones, a las facilidades, a los almacenajes y otras a la recoleccin de informacin. Para representar las proposiciones se utilizan diagramas de bloques con una simbologa especial. Cada bloque representa una proposicin. El flujo se produce de la siguiente forma. El programa avanza con una transaccin de un bloque a otro, hasta que algn bloque la retiene, porque representa un tiempo de espera o porque no puede seguir hasta cumplir con alguna condicin lgica; entonces busca otra transaccin que deba moverse en el mismo tiempo, si todas estn completas, avanza el reloj al tiempo del siguiente evento y lo ejecuta.

Estructura del lenguaje


Dentro del editor de GPSS las sentencias se estructuran de la siguiente manera: Etiqueta Bloque Operandos Comentarios

Etiqueta: Representa el nombre de una etiqueta o una direccin. La etiqueta es un campo opcional y su existencia depende de la lgica del programa. Su funcin es derivar la transaccin al bloque con dicha etiqueta, permitiendo el control de flujo de las transacciones. Puede tomar cualquier valor alfanumrico con maysculas o minsculas que deseemos, pero debe ser nica para cada simulacin. Por ejemplo: ET1, ETIQUETA1, E, Etiqueta, etc. Bloque: Es la instruccin especifica por ejecutar. Representa la accin que va a llevar a cabo cada una de las transacciones que pasan por all. Por ejemplo: ENTER, SEIZE, LEAVE, etc. Operandos: Para que cada bloque ejecute la accin correspondiente es necesario incluir un conjunto de calificadores, como por ejemplo el tiempo o el lugar de la accin. Los operandos son las caractersticas individuales de cada bloque, y dependern de la lgica del sistema. Comentarios: Es el espacio donde el usuario puede colocar cualquier indicacin o identificacin de la instruccin. Para escribir un comentario debemos marcarlo con ; al inicio. Por ejemplo: ;esto es un comentario.

Pgina 2 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Expresiones Matemticas y Comparaciones


Las expresiones matemticas que se pueden realiza en GPSS son las siguientes:
NOT ABS() ATN() COS() INT() EXP() LOG() SIN() SQR() TAN() AND OR G L E EN LE GE # / \ + - @ Regresa 1 (true) si el operando es 0 y 0 (falso) si el operando no es cero. Valor absoluto. Arco-tangente en radianes. Coseno en radianes. Trunca aun entero. e elevado a la x. Logaritmo natural. Seno en radianes. Raz cuadrada. Tangente en radianes. Regresa1 (verdad) si el producto aritmtico no es cero y 0 (falso) de lo contrario. Regresa1 (verdad) si cualquier operando no es cero y 0 (falso) de lo contrario. Mayor que. Menor que. Igual que. No igual. Menor o igual a Mayor o igual a. Multiplicacin. Divisin. Divisin entera. Suma. Resta. Resto Entero (mdulo).

Pgina 3 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Bloques de Lgica del Programa


Son las instrucciones conocidas como bloques, que se ejecutarn durante la simulacin; la lgica depender de cada sistema que se desee simular. Debemos ver al bloque como una unidad de ejecucin dentro del Programa de GPSS. En l se generan o ingresan transacciones. Se puede realizar una clasificacin de los bloques teniendo en cuenta la funcin que llevan a cabo:
Inicio de proceso y captura de servidores SEIZE ENTER PREEMPT RELEASE LEAVE RETURN QUEUE ENTER LINK DEPART ENTER UNLINK GENERATE SPLIT TERMINATE ADVANCE ASEEMBLE MATCH GATHER TRANSFER TEST GATE LOGIC SELECT LOOP BUFFER SAVEVALUE MSAVEVALUE ASSIGN INDEX PRIORITY TABULATE

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 de un bloque de espera

Ingreso de una transaccin al sistema Salidas de una transaccin del sistema Procesos

Control de flujo

Bloques de operaciones aritmticas

Bloques de creacin de estadsticas

Pgina 4 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Instrucciones para la Definicin de Variables


Estas instrucciones son de carcter opcional y su inclusin depender del sistema a modelar. Siempre se encuentran relacionadas con las instrucciones de lgica del programa. Las instrucciones de definicin de variables son: inicializacin de variables, definicin de la capacidad de los almacenes, definicin del nmero de operarios o mquinas por estacin, definicin de las funciones a utilizar, definicin de las operaciones matemticas por utilizar, entre otras.

Estructura de un archivo
Si bien GPSS no es estricto con respecto a la estructura o los lugares que toman los bloques de la simulacin, es recomendable mantener un cierto orden dentro de los mismos. La ctedra recomienda guiarse por el siguiente modelo:

Pgina 5 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Funciones de Probabilidad
Funciones Pre-establecidas
GPSS posee una lista de funciones de probabilidad pre-definidas que podemos usar. Esto nos ahorra el hecho de tener que codificarlas y podemos usar las mismas para modelar los distintos comportamientos que esperamos del sistema. GPSS cuenta con 24 funciones de este tipo, se detallan a continuacin solamente las ms usadas. EXPONENTIAL Sintaxis: EXPONENTIAL (ENTRADA, LAMBDA, BETA)

Entrada: El generador de nmeros aleatorios el nmero de registro. Requerido. Debe ser mayor o igual a 1. Lambda: El valor de compresin utilizado para expandir o contraer la distribucin. Beta: El valor de cambio utilizado para la posicin de la distribucin. Teniendo en cuenta adems que:

Ejemplo: la tasa de fallos de un componente se produce con una distribucin exponencial con media de 6 minutos, y una desviacin estndar de 2 minutos. Luego los valores son Beta=2 y Lambda=4 (6=2+Lambda). Y la funcin queda definida de la siguiente manera: EXPONENTIAL (1, 4, 2) UNIFORM Sintaxis: UNIFORM (ENTRADA, A, B)

Entrada: El generador de nmeros aleatorios el nmero de registro. Requerido. Debe ser mayor o igual a 1. A: El valor ms pequeo que cabe extraer de la distribucin. Debe ser inferior al mximo. B: El valor ms grande que se desprende de la distribucin. Deber ser superior al min. Teniendo en cuenta adems que:

Pgina 6 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Ejemplo: a un sistema arriban clientes con una distribucin uniforme de medio 20 min y desviacin estndar de 10 min. Luego los valores son A=10 y B=30. UNIFORM (1, 10, 30) POISSON Sintaxis: POISSON (ENTRADA, LAMBDA)

Entrada: El generador de nmeros aleatorios el nmero de registro. Requerido. Debe ser mayor o igual a 1. Lambda: el valor medio de eventos a ocurrir. Teniendo en cuenta adems que:

NORMAL Sintaxis: NORMAL (ENTRADA, MEDIA, DES_ESTANDAR)

Entrada: El generador de nmeros aleatorios el nmero de registro. Requerido. Debe ser mayor o igual a 1. Media: el valor medio de la distribucin. Requerido. Des_estandar: la desviacin estndar de la distribucin. Estrictamente positiva. Requerido.

Pgina 7 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Instrucciones de Control de la Simulacin


Estas instrucciones son las que controlan la ejecucin, edicin, y manejo de archivos en GPSS/World. Las instrucciones de control en GPSS crean una entidad que no es bloque o que controla de alguna manera la corrida de una simulacin. Aqu se discuten en detalle algunas instrucciones. START Descripcin: la instruccin START inicia la corrida de una simulacin. Sintaxis: START A, B, C, D

A: Contador de terminacin. El operando debe de ser un nmero entero (requerido). B: Operando de impresin. Se utiliza NP cuando no se desea una impresin. El default es una impresin estndar del reporte. El operando debe ser NP o nulo (opcional). C: No se utiliza. D: Impresin de cadena. Se utiliza 1 para incluir CEC (Current Event Chain) y FEC (Future Event Chain) en el reporte estndar. El operando debe de ser nulo o numero entero (opcional). CLEAR Descripcin: la instruccin CLEAR regresa el modelo actual al estado no usado. Cuando se utiliza la instruccin CLEAR O CLEAR ON, ocurre lo siguiente: Todas las transacciones son removidas del modelo. El contenido actual de los bloques (Current Counts) se inicializa en 0. El reloj del sistema se inicializa en 0. Los servidores se convierten a estado disponible. Las tablas (TABLES) se inicializan en 0. Los almacenamientos (STORAGES) se regresan a su disponibilidad total. Contenido total de los bloques (Total Counts) se inicializa en 0. Valores mnimos y mximos de colas, cadena del usuario y almacenamiento sern iguales al contenido actual. Los generadores de nmeros aleatorios no se inicializan. Los controladores lgicos (LOGICSWITCHES) se inicializan. Los elementos de matriz se inicializan en 0. Los SAVEVALUES se inicializan en 0. Sintaxis: CLEAR A

A: ON u OFF. Si no se utiliza el operando A, se supone que es ON. El operando debe ser ON, OFF, o nulo (opcional). Permite hacer varias corridas arrancando con el sistema vaco. Cada corrida representa distintas muestras del sistema.
Pgina 8 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

RESET Descripcin: Esta sentencia de control marca el comienzo de una corrida. Permite iniciar una simulacin con un sistema que no est vaco. Cuando se ejecuta RESET despus de una corrida ocurre lo siguiente: Todas las transacciones que quedaron, permanecen en el sistema. Todos los acumuladores estadsticos se ponen en cero con excepcin del mnimo y el mximo. El tiempo del comienzo de la corrida se toma igual al tiempo del reloj del sistema. Los contadores totalizadores de los bloques se mantienen. Las facilidades y los almacenajes que quedaron en modo ocupado, permanecen ocupadas. Los generadores de nmeros aleatorios no se Inicializan (resetean), ya que permanecen en donde estaban. Los valores mnimos y mximos permanecen iguales en las colas y los almacenajes. El reloj relativo (tiempo desde la ltima vez que se utiliz RESET) se inicializa en 0. La instruccin RESET no remueve transacciones del modelo actual, donde CLEAR si las remueve. Sintaxis: SIMULATE Descripcin: la instruccin SIMULATE permite usar un lmite de tiempo real para la simulacin. Sintaxis: SIMULATE A RESET

A: Tiempo (en minutos) lmite para la simulacin. Ejemplo: SIMULATE 60

Esta instruccin pone un lmite de 1 hora (60 unidades de tiempo) de tiempo real para la simulacin.

Pgina 9 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Bloques de Control de Comportamiento de Transacciones


GENERATE Descripcin: se puede pensar en un bloque GENERATE como una puerta a travs de la cual entran las transacciones. No existe ningn lmite en cuanto a la cantidad de bloques GENERATE que puede contener un modelo. Sintaxis: GENERATE A, B, C, D, E

A: Tiempo medio entre llegadas. El operando tiene que ser nombre, nmero, SNA o nulo. No se pueden utilizar parmetros. Default= 0(opcional). B: Desviacin con respecto a la media (en caso a la distribucin uniforme). El operando tiene que ser nombre, nmero, SNA o nulo. No se pueden utilizar parmetros. Default = 0 (opcional). C: Tiempo en que se generar la primera transaccin. El operando tiene que ser nombre, nmero, SNA, nulo. No se pueden utilizar parmetros. Default = A (opcional) D: Limite de generacin de transacciones. El operando tiene que ser nombre, nmero, SNA o nulo. No se pueden utilizar parmetros. Default = x (opcional). E: Nivel de prioridad. El operando tiene que ser nombre, nmero, SNA o nulo. No se pueden utilizar parmetros. Default = 0 (opcional). Consideraciones Especiales: En GPSS las distribuciones de tiempo entre llegadas estn divididas en dos categoras: Distribucin uniforme. Todas las otras distribuciones. Para la distribucin uniforme, el operando A del bloque GENERATE representa el tiempo medio entre llegadas, es decir, el tiempo promedio entre llegadas consecutivas de transacciones. El operando B representa la mitad del ancho del tiempo entre llegadas. El valor del operando B deber ser menor que el valor del operando A en todos los casos, de lo contrario ocurrira un error al intentar generar una transaccin en el tiempo negativo. El operando C se utiliza cuando solo se requiere fijar el tiempo de generacin de la primera transaccin. Las transacciones subsecuentes se generan de acuerdo con los operandos A y B. TERMINATE Descripcin: el bloque TERMINATE se utiliza para mover las transacciones activas de la simulacin. As, TERMINATE ejecuta una funcin opuesta al bloque GENERATE. Tiene tres propsitos principales: Remover las transacciones activas de la simulacin. Llevar un conteo de la cantidad de transacciones que hayan pasado por el sistema (al utilizar el operando A). Terminar (detener) una corrida de simulacin en combinacin con la instruccin de START.

Pgina 10 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Sintaxis:

TERMINATE A

A: cantidad decremental del contador de terminacin. El operando debe ser nombre, nmero entero o SNA (opcional). TRANSFER Descripcin: El bloque Transfer causa que una transaccin activa se dirija a una nueva ubicacin dentro del modelo de simulacin. Cuando una transaccin entra al bloque de TRANSFER, el operando A se usa para determinar la modalidad de operacin. Cuando no se especifican los operandos B o C (la ubicacin del bloque), se utiliza el siguiente bloque secuencial despus de TRANSFER. Sintaxis: Transfer A, B, C, D

A: La modalidad de transferencia: El operando debe ser BOTH, ALL, PICK, FN, P, SBR, SIMA, Fraccin, nombre, SNA o nulo (opcional). El comportamiento de cada uno se explica en detalle ms adelante. B: Nmero o ubicacin del bloque. Debe ser nombre o nmero cuando est en la modalidad de P. El operando debe ser nombre, SNA o nulo (opcional). C: Nmero o ubicacin del bloque. Debe ser el valor del incremento cuando est en la modalidad de P o FN. El operando debe ser nulo, nombre o SNA (opcional). D: Nmero del incremento del bloque cuando est en la modalidad de ALL. Default = 1. El operando debe ser nulo, nombre o SNA (opcional). Modalidad Incondicional: El bloque TRANSFER entra en la modalidad incondicional cuando se omite el operando A. La transaccin activa ser dirigida siempre hacia la ubicacin indicada por el operando B. Ejemplo: TRANSFER; REG

La transaccin que entra a este bloque se dirigir hacia el bloque con la etiqueta REG. Modalidad Aleatoria (fraccional): El bloque TRANSFER entra en la modalidad aleatoria cuando el operando A es un nmero fraccional (con decimal). La transaccin activa ser dirigida hacia la ubicacin indicada por el operando C con la probabilidad dada en el operando A. La transaccin se dirigir hacia la ubicacin indicada por el operando B con el complemento (1 - A) de la probabilidad dada en el operando A. Ejemplo 1: TRANSFER .40, OPC1, OPC2

El 40 % de las transacciones que entren a estos bloques se dirigirn hacia el bloque con la etiqueta OPC2, el resto (60 %) de las transacciones se dirigirn al bloque con la etiqueta OPC1. Ejemplo 2: TRANSFER .40, OPC2.

Pgina 11 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

El 40 % de las transacciones que entren a este bloque se dirigirn hacia el bloque con la etiqueta OPC2, el resto (60 %) de las transacciones se dirigirn hacia el siguiente bloque secuencial. Ejemplo 3: Si tuvisemos que modelar un comportamiento ms complejo, lo que podemos hacer es anidar varios transfers. Por ejemplo: el 60% son expedientes de tipo A, el 30% de tipo B y el 10% de tipo C. TRANSFER TRANSFER .40, TIPOA,SEGUIR. .75,TIPOC,TIPOB

SEGUIR

El 40 % de las transacciones que entren a este bloque se dirigirn hacia el bloque con la etiqueta SEGUIR (Representan los expedientes de tipo B y C), el resto (60 %) de las transacciones se dirigirn hacia el bloque TIPOA. Al bloque SEGUIR arriba el 40% de las transacciones originales, de las cuales un 30% de las originales (75% de las que arriban efectivamente) son de tipo B y el resto (25% de las que arriban) son de tipo C. Modalidad Both: el bloque TRANSFER entra en la modalidad BOTH, cuando el operando A es BOTH. En esta modalidad, cuando entra una transaccin activa, primero se prueba el operando B para entrar al bloque cuya etiqueta est indicada en el operando B. En caso de rechazo, la transaccin intentara entrar al bloque cuya etiqueta est indicada con el operando C. Si la transaccin no puede entrar en ninguno de los bloques indicados por las etiquetas B y C, se quedara en el bloque TRANSFER hasta que pueda entrar en uno de los dos bloques. Ejemplo: TRANSFER BOTH, SEC1, SEC2.

La transaccin que entra a este bloque primero intentar entrar al bloque con la etiqueta SEC1, si no puede, intentar entrar al bloque con la etiqueta SEC2, y si tambin es rechazado, se quedar en el bloque TRANSFER hasta que pueda entrar a uno de los dos bloques con las etiquetas SEC1 o SEC2. Modalidad All: el bloque TRANSFER entra en la modalidad ALL cuando el operando A es ALL. En esta modalidad, cuando entra una transaccin activa, se testea el bloque del operando B, si ste rechaza la transaccin (por estar ocupado por ejemplo), se siguen testeando en secuencia los siguientes bloques hasta el del operando C, en un intervalo especificado por el operando D. En caso de no poder ocupar ninguno, quedar esperando en el transfer hasta que alguno se desocupe. Ejemplo: TRANSFER SEC1 SEC2 SEC3 SEIZE TRANSFER SEIZE TRANSFER SEIZE EMPLEADO1 ,SEGUIR EMPLEADO2 ,SEGUIR EMPLEADO3
Pgina 12 de 34

ALL,SEC1,SEC4,2

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

SEC4

TRANSFER SEIZE TRANSFER

,SEGUIR EMPLEADO4 ,SEGUIR

La transaccin que entra a este bloque primero intentar entrar al bloque con la etiqueta SEC1, si no puede intentar entrar al bloque con la etiqueta SEC2 y as sucesivamente, de a 2 bloques hasta llegar a SEC4, si no logra capturar ninguno, quedar esperando en el transfer. SELECT Descripcin: el bloque SELECT nos permite modelar la seleccin entre distintos bloques y almacenar el nmero de entidad en un parmetro de la transaccin. El SELECT nos permite adems que esta seleccin sea basada en algn criterio comparativo o SNA. Sintaxis: SELECT O A, B, C, D, E, F

O: operador condicional o un operador lgico. Requerido A: Nombre de parmetro o un nmero para recibir el nmero de la entidad seleccionada. Requerido. B: El nmero de entidad inferior. Requerido. C: El nmero de entidad superior. Requerido. D: El Valor de referencia para un operador, cuando se usa en el modo condicional. Opcional E: SNA. Entidad especificador de atributo para las pruebas de modo condicional. Opcional. F: Suplente nmero de bloque. El destino del bloque si no hay ninguna entidad est seleccionada. Opcional. Ejemplo: PRIMERO SEGUNDO TERCERO PRIMERO SEGUNDO TERCERO SELECT EQU EQU EQU 1 2 3 15 10 56

STORAGE STORAGE STORAGE

SNF NUMERO,PRIMERO,TERCERO,,,SIN_LUGAR

Debemos definir nombres de entidad igual a nmero contiguos para que el SELECT funcione. Esto lo hacemos con el comando EQU. Lo que logra esto es que GPSS interprete PRIMERO como 1, luego utilizamos esos nombres que definimos anteriormente como nombre de las entidades que queremos utilizar en el SELECT, en este caso los STORAGE. Esto permite que el SELECT pueda saber que rango de entidades tiene que comprobar. En este ejemplo definimos tres STORAGES distintos, la transaccin que llegue al bloque SELECT, guardar en su variable NUMERO, el id del primero que no est lleno (SNF). En caso de que los tres lo estn, ir a la etiqueta SIN_LUGAR. El resto de los parmetros los dejamos vacos.
Pgina 13 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

TEST Descripcin: un bloque test comprar valores y controla el destino de la transaccin que ingres al mismo basado en el resultado de la comparacin. Puede trabajar tanto en modo de Rechazo, en donde bloquea a la transaccin hasta que se cumpla la condicin, o (en caso de especificarse el tercer parmetro) enviar a la transaccin a un Destino Alternativo. Sintaxis: TEST O A, B, C

O: operador condicional o un operador lgico. Requerido. A: es el valor de prueba para realizar el test. Requerido. B: el valor de referencia contra el cual comparar. Requerido C: destino o nmero del bloque en caso de no cumplirse la condicin. Opcional. ADVANCE Descripcin: Su objetivo es simular retrasos en el flujo de transacciones, de manera que puede visualizarse como el tiempo de proceso, transporte o servicio. Desde un punto de vista de anlisis de bloques, el ADVANCE permite la entrada a todas las transacciones que llegan. En este bloque puede existir en un mismo tiempo una o ms transacciones. El funcionamiento de este bloque se lleva acabo de la siguiente forma: cuando una transaccin cruza por el ADVANCE en el tiempo t1 se genera a un tiempo de proceso (TP) dado por las condiciones presentadas en los operandos A, B, y se enva la transaccin a la cadena de eventos futuros en espera de que el reloj de simulacin avance hasta el tiempo t2=t1 + TP, tiempo en el cual la transaccin abandona la cadena de eventos futuros y contina su cambio al siguiente bloque secuencial. Sintaxis: ADVANCE A, B

A: Es el tiempo medio de retraso de la actividad (servicio). El operando debe de ser nombre, nmero, entero positivo o SNA (requerido). B: Desviacin con respecto a la media para la distribucin uniforme. El operando debe de ser nombre, nmero, entero positivo o SNA (opcional). SEIZE Descripcin: el objetivo del bloque SEIZE es simular la captura de un servidor, proceso o instalacin. Este bloque acta como controlador de flujo de transacciones y trabaja en conjunto con el bloque RELEASE. Su funcionamiento general consiste en el manejo de una variable interna llamada F, la que puede tomar los valores de 0 y 1; cuando una transaccin llega a este bloque y trata de entrar, lo podr hacer si el atributo numrico estndar (SNA) F tiene un valor de 0 (ocioso) e inmediatamente cambiar el estado del atributo F a 1 (ocupado). Si una transaccin llega al bloque y el atributo numrico estndar F tiene un valor de 1, la transaccin ser enviada a la cadena de eventos actuales en espera de que el valor de F cambie de 1 a 0.
Pgina 14 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Sintaxis:

SEIZE A

A: Identificacin del servidor. Puede ser nombre, nmero, o SNA (requerido). RELEASE Descripcin: El bloque RELEASE es la contraparte del bloque SEIZE, y permite simular la liberacin del servidor, proceso o instalacin que haba sido capturada. La funcin de este bloque es cambiar el atributo numrico estndar F de 1 (ocupado) a 0 (ocioso). Sintaxis: RELEASE A

A: Identificacin del servidor. Puede ser nombre, nmero, SNA (requerido). QUEUE Descripcin: El bloque QUEUE permite obtener estadsticas de colas que se forman al momento que las transacciones esperan usar un servidor. El bloque QUEUE debe complementarse con el bloque DEPART. El bloque QUEUE se puede visualizar como punto de inicio para la toma de datos estadsticos de las colas que se pueden formar. Sintaxis: QUEUE A, B

A: Nombre o nmero de la cola .El operando debe ser nombre, entero positivo o SNA (requerido). B: Nmero de unidades en que se incrementa el contenido de la entidad de cola Default=1. El operando debe ser nombre, entero positivo o SNA (opcional). Ejemplo: QUEUE QESPERA,10

La transaccin entra en la cola QESPERA, incrementando en 10 la cantidad de elementos que esperan en la misma. DEPART Descripcin: Es la contraparte del bloque QUEUE. Se utiliza para simular la salida de la cola. Sintaxis: DEPART A, B

A: Nombre o nmero de la cola .El operando debe ser nombre, entero positivo o SNA (requerido). B: Nmero de unidades en que se decrementa el contenido de la entidad de cola Default=1. El operando debe ser nombre, entero positivo o SNA (opcional). Ejemplo: DEPART QESPERA,10
Pgina 15 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

La transaccin deja la cola QESPERA, decrementando en 10 la cantidad de elementos que esperan en la misma. ENTER Descripcin: La funcin del bloque ENTER es simular la seleccin o captura de uno o ms servidores en paralelo (definidos por un STORAGE). La transaccin que entre al bloque ENTER capturar cualquier servicio que est disponible en ese momento. En caso de no encontrar ningn servidor disponible (segn la capacidad definida en STORAGE), la transaccin en espera ser puesta a en la cadena de espera. Sintaxis: ENTER A, B

A: Nombre o nmero de almacenaje (STORAGE) por utilizar, debe ser nombre, entero positivo, SNA (requerido). B: Nmero de unidades por las que se decrementa la capacidad disponible de almacenaje (STORAGE). Default = 1. El operando debe ser nombre, entero positivo o SNA (requerido). Ejemplo: ENTER STO_1,5

En este caso la transaccin toma el recurso STO_1, ocupando 5 lugares del mismo. (STO1 debe ser definido como un STORAGE). LEAVE Descripcin: es la contraparte del bloque ENTER. Su funcin es la de simular la liberacin de uno o ms servidores o la salida y la desocupacin de un lugar en una fila finita. Sintaxis: LEAVE A, B

A: Nombre o nmero de almacenaje (STORAGE) por utilizar. El operando debe ser nombre, entero positivo o SNA (requerido). B: Nmero de unidades de almacenaje (STORAGE). Default = 1. El operando debe ser nombre, entero positivo o SNA (opcional). LINK Descripcin: un bloque link controla la colocacin de la transaccin activa en la cadena de usuario de una Entidad de tipo UserChain. Estas entidades son entidades de tipo especial que permiten modelar los comportamientos complejos de cola. Sintaxis: LINK A, B, C

Pgina 16 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

A: Nmero de cadena de usuario Es la unidad a la cual se le asignar las transacciones. Requerido. B: Orden o disciplina de encadenamiento. Requerido. Puede ser LIFO, FIFO, o un valor particular que le asigne el usuario. C: Nombre del bloque al que se derivan las transacciones en caso de que la cadena se encuentre en estado de RESET. Ejemplo 1: LINK Espera,FIFO

En este caso iremos encolando las transacciones en la cola Espera, con orden First In Firs Out. UNLINK Descripcin: un bloque unlink remueve las transacciones de la cadena de usuario de la Entidad UserChain que se especifica. Sintaxis: O UNLINK A, B, C, D, E, F

O: Operador relacional. Opcional. Puede ser Null, E, G, GE, L, LE, NE. Si no se lo coloca se utiliza E. A: Nombre de la entidad UserChain. Requerido. B: Bloque destino donde irn las transacciones a ser removidas. Requerido. C: Lmite de remocin. Cantidad mxima de transacciones a ser removidas. Opcional. D: Valor a ser testeado con el operando O. Opcional. E: Valor de referencia. Valor contra el cual se comprar el valor del atributo D. Opcional. F: Nombre del bloque donde adonde se enviarn los valores que no cumplen la condicin. Opcional. Ejemplo 1: UNLINK Espera, Seguir, 1

En este caso iremos sacando las transacciones que se encuentran encoladas en la UserChain Espera, una a la vez, envindolas al bloque Seguir. PREEMPT Descripcin: una transaccin que utiliza PREEMPT quita el control a otra de una facilidad. La transaccin removida puede seguir siendo procesada cuando la que hizo el PREEMPT retorna la facilidad o puede volver a ser puesta en cola dependiendo de los parmetros que utilicemos. Si utilizamos el modo Prioridad, la transaccin slo har el PREEMPT cuando posea una mayor prioridad que la que ocupa la facilidad en ese momento. Sintaxis: PREEMPT A, B, C, D, E

A: Nombre o nmero de la facilidad. El operando debe ser nombre, entero positivo o SNA. Requerido. B: Modo de prioridad. PR, para Modo de prioridad, o en modo de interrupcin, si se omite. Opcional. C: el nombre o nmero de bloque. Nuevo destino para las transacciones actuales propietarios de las instalaciones. Opcional.
Pgina 17 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

D: parmetro en donde almacenar el tiempo restante que le quedaba a la transaccin en la facilidad. Opcional. E: modo de remocin (RE). Remueve a la transaccin que posea la facilidad. Si utilizamos este modo, debemos indicar el operando C. Opcional. Ejemplo 1: PREEMPT Empleado1

En este caso la transaccin tomar el control de Empleado1. Si haba en ese momento una transaccin que lo posea (esperando en un ADVANCE por ejemplo), sta esperar y cuando devuelva la segunda transaccin la facilidad, continuar procesndose el tiempo que le quedaba. Ejemplo 2: PREEMPT Empleado1,,Empleado2,TIEMPO_REST,RE

En este caso la transaccin tomar el control de Empleado1. Si haba en ese momento una transaccin que lo posea (esperando en un ADVANCE por ejemplo), el tiempo que le quedaba por procesarse en Empleado1 se guardar en el parmetro TIEMPO_REST de la transaccin y se la enviar al bloque Empleado2, por estar activado el modo Remove (RE). ADOPT Descripcin: el bloque adopt permite cambiar el Assembly Set de la transaccin activa. Sintaxis: ADOPT A

A: Assembly Set a adoptar por la transaccin. Requerido. SPLIT Descripcin: crea nuevas transacciones con el mismo Assembly Set que la transaccin activa. Las nuevas transacciones comparten los mismos atributos de las que la gener. A su vez podemos mandar las nuevas transacciones a otro lugar, o que stas continen el mismo camino de la primera. Sintaxis: SPLIT A, B, C

A: Cantidad de transacciones a ser creadas. Requerido. B: Numero de bloque al que irn las nuevas transacciones. Opcional. C: Nombre del parmetro de la nueva transaccin en la que deseamos guardar un nmero de serie. Opcional. Ejemplo: SPLIT 3,SEGUIR,NUMERO_SERIE

En este caso se crearn 3 transacciones ms que irn a la etiqueta SEGUIR, y su nmero de serie se guardar en NUMERO_SERIE. La transaccin original ir a la siguiente lnea.

Pgina 18 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

ASSEMBLE Descripcin: el comando ASSEMBLE espera y destruye una cantidad de transacciones asociadas por un mismo Assembly Set, se puede ver tambin como que ensambla varias transacciones en una sola. Sintaxis: ASSEMBLE A

A: Cantidad de transacciones a ser ensambladas. Requerido. Ejemplo: ASSEMBLE 5

Cuando arriben 5 transacciones con el mismo assembly set al bloque, se destruirn y continuar solo la primera que llego al mismo. GATHER Descripcin: el comando GATHER funciona como una barrera, esperando que lleguen al mismo la cantidad de transacciones (del mismo assembly set) especificada en su nico parmetro. Sintaxis: GATHER A

A: Cantidad de transacciones por las que esperar. Requerido. Ejemplo: GATHER 5

Cuando arriben 5 transacciones con el mismo assembly set al bloque, continuarn las 5 al siguiente bloque. PRIORITY Descripcin: el comando PRIORITY permite establecer la prioridad que tiene la transaccin que pasa por el bloque. Sintaxis: PRIORITY A

A: el nuevo valor de prioridad. Requerido. ALTER Descripcin: el bloque alter permite cambiar la prioridad o un parmetro de miembros de un Grupo de Transacciones. Sintaxis: ALTER O A, B, C, D, E, F, G

Pgina 19 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

O: Operador Relacional. La relacin del parmetro E con el F para que la alteracin ocurra. Opcional. A: Grupo de transacciones. El grupo cuyos miembros sern testeados para una alteracin. Requerido. B: Limite. El mximo nmero de Transacciones a ser alteradas. Por defecto son todas. Opcional. C: Atributo a alterar. El parmetro de la transaccin miembro a ser alterado, o PR para alterar la prioridad del miembro del grupo. Requerido D: Valor a Reemplazar. El valor que reemplazar al actual del parmetro C de la transaccin. Requerido E: Valor de test. Valor a testear de la transaccin miembro del grupo, usando el operador O. Opcional F: Valor de Referencia. Valor contra el cual el operando E es comparado. Opcional G: Bloque alterno. El bloque de destino alterno para la transaccin que ingresa. Opcional

Pgina 20 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

Definicin de Variables y Entidades


STORAGE Descripcin: la instruccin STORAGE se utiliza para definir la capacidad mxima de almacenaje de nmero de servidores paralelos utilizados en los bloques ENTER y LEAVE. Sintaxis: Nombre STORAGE A

A: Capacidad de almacenamiento FUNCTION Descripcin: la distribucin FUNCTION sirve para definir una probabilidad en base de una serie (en pares) de datos que provienen de las observaciones. Sintaxis: Nombre FUNCTION A, B

X1, Y1/X2, Y2/................../Xn,Yn Nombre: Es el nombre de referencia de la funcin. A: Argumento de la funcin. Debe ser nombre, SNA o entero positivo (requerido). B: Tipo de funcin (C, D, L, M) seguido por la cantidad de pares que aparecer en forma X1, Y1 (requerido). Xi, Yi: Son pares de datos para crear la funcin de la distribucin. Xi: es el valor de referencia y Yi: es el valor que se regresa evaluar la funcin. Funcin tipo C: la letra C en la funcin significa CONTINUA: En este tipo de funciones, dado que un valor de X, despus de una interpolacin lineal, la funcin trunca el resultado y regresa un valor entero para Y: Cuando el operando A de la instruccin FUNCTION es RN (es un argumento de SNA que significa nmero aleatorio), la funcin se utilizar para definir una distribucin de probabilidad continua. En este caso la funcin tiene que definirse entre 0 y 1 (aunque el nmero aleatorio llega hasta 0.999999) como una distribucin acumulada. El nico caso donde el resultado de la evaluacin de la funcin del tipo C no se trunca, es cuando la funcin esta dentro de un FVARIABLE. Ejemplo: TPROCESO FUNCTION RN1, C6 0,35/.05,40/.17,45/.5,50/.9,55/1,60

En este caso la funcin TPROCESO est definida como una funcin continua, es decir, que permite a la variable tiempo de desensamble tomar valores intermedios, por ejemplo, 37 minutos. En esta funcin el primer par ordenado indica que existe una probabilidad de cero de que el tiempo sea menor a 35 minutos. El segundo par indica que existe una probabilidad de que el tiempo sea menor a 40 minutos. Cuando la funcin se codifica como continua, el procesador de GPSS realiza una interpolacin lineal
Pgina 21 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

entre pares ordenados consecutivos, de forma que si al ejecutar un modelo con la funcin TPROCESO se generar el nmero aleatorio 0.025, se llevara a cabo un proceso de interpolacin entre los dos primeros pares ordenados dando como resultado un valor de 37.5 minutos de tiempo de proceso. En este punto es necesario hacer una consideracin importante. Algunas versiones slo trabajan con nmeros enteros, por lo que la evaluacin anterior puede arrojar un tiempo de 37 minutos, mientras que en otras se mantienen los decimales. Funcin tipo D: la letra D en la funcin significa DISCRETA. Cada valor de argumento tendr un valor entero. En este caso de argumento no aleatorio (operando A de la funcin), los valores de X en la instruccin complementaria deben ser crecientes (internamente se almacenan como enteros). Cuando se evala una funcin, el valor de X, se investiga desde el valor ms bajo hasta el valor ms alto de la instruccin complementaria. Si se encuentra un valor de X igual o mayor al valor de argumento, se regresa el valor correspondiente Y (entero). Si no existe el valor de X, se regresa el valor de Y asociado con un valor ms grande de X. Ejemplo: TIEMPOPROC FUNCTION RN2,D6 1,35/.3,36/.6,37/.8,38/.9,39/1,40

En el ejemplo observamos la funcin TIEMPOPROC, que representa es el tiempo de proceso que depende de una variable aleatoria uniforme (0,1). El valor que toma esta variable es representado por el generador nmero 2 de nmeros aleatorios (RN2). Por otra parte la funcin de probabilidad contiene 6 pares ordenados de tipo discreto (D6) y finalmente estn colocadas las 6 parejas ordenadas en forma creciente. Al utilizar la funcin, si el nmero aleatorio generado es menor a 0.1, el tiempo de proceso ser de 35 minutos, si el nmero aleatorio se encuentra entre 0.1 y 0.3, el tiempo de proceso ser de 36 minutos, y as sucesivamente hasta llegar al ltimo intervalo, que indica que el nmero aleatorio generado se encuentra entre 0.9 y 1, el tiempo de proceso ser de 40 minutos. Funcin tipo L: la funcin tipo L es una funcin de VALOR DE LIST. El valor del argumento se utiliza para determinar la posicin del valor por regresar. La instruccin complementaria define una lista de enteros que entre que se selecciona el resultado. Cuando la funcin se evala, el argumento ser evaluado y usado como nmero ordinal (valor de X) de los miembros de la lista. El valor que se regresa como Y es la posicin correspondiente al valor de X. Los valores de X deben empezar con 1 e incrementarse en 1 (sin interrupcin). Ejemplo: TIPO FUNCTION P$2,L4 1,3/2,5/3,8/4,12

En este caso si el parmetro 2 (P2) vale 2, entonces la funcin regresa el valor de 5. Funcin tipo E: la funcin tipo L es una funcin que requiere dos evaluaciones. Primero evala el valor del argumento, busca su correspondiente valor Y, y evala este nuevamente. Ejemplo: ARRIBOS FUNCTION M1,E2
Pgina 22 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

200, (UNIFORM(1,2,20))/400,(UNIFORM(1,4,40)) En este caso si el parmetro M1 se encuentra entre 0 y 200, entonces la funcin regresa el resultado de evaluar UNIFORM(1,2,20), si el valor est entre 200 y 400 evala UNIFORM(1,4,40) y as sucesivamente. TABLE Descripcin: La instruccin TABLE inicializa una tabla de distribucin de frecuencia. Sintaxis: Nombre TABLE A, B, C, D

Nombre: nombre de referencia. El operando debe tener el mismo nombre utilizado en el operando A del bloque TABULATE (requerido). A: Argumento de la tabla. El nombre del SNA cuyo valor va a ser tabulados. Debe ser SNA (requerido). B: Limite superior del primer intervalo de frecuencia. El operando debe ser entero (requerido). C: Tamao de intervalo de frecuencia. El operando debe de ser entero (requerido). D: Nmero de intervalos de frecuencias. No puede exceder a 8191. El operando debe ser entero (requerido). Ejemplo: TiempoEnSistema TABLE M1, 1, 5, 20

En la TABLE TiempoEnSistema se almacenar (cada vez que la transaccin pase por un bloque que tabule la tabla) el valor del SNA M1 de la transaccin. Esta tabla tendr un primer intervalo de 0 a 1, luego vendrn 20 intervalos con amplitud 5. TABULATE Descripcin: el bloque TABULATE permite obtener una estadstica de datos sobre una entidad en el modelo. Esta estadstica incluye datos como la media, desviacin estndar y distribucin de frecuencias. El bloque TABULATE debe colocarse donde se requiere obtener una distribucin de frecuencias de datos ingresados, en cuyo caso har referencia a una instruccin TABLE para dar mayor informacin sobre los datos, rangos y sobre la amplitud de la distribucin. Cada vez que una transaccin pase por un bloque de este tipo, se agregar el valor que guarda la tabla a la misma. Sintaxis: TABULATE A

A: Identificacin del TABLE. El operando debe ser nombre, nmero o SNA (requerido). Ejemplo: TABULATE TIEMPO

Todas las transacciones que pasan por este bloque se utilizan para crear esta distribucin de frecuencia de la informacin indicada en el TABLE con la etiqueta TIEMPO.
Pgina 23 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

ASSIGN Descripcin: El bloque de ASSIGN se utiliza para dar o modificar el valor de un parmetro de las transacciones. Cuando una transaccin entra al bloque ASSIGN, el valor del segundo operando se evaluar para modificar el valor del parmetro indicado por el primer operando. Esta modificacin puede lograrse en forma directa, es decir, con una asignacin directa o incrementar o decrementar el valor del parmetro. Si el parmetro no existe, al entrar al bloque ASSIGN se crear el mismo. En el caso de usar el tercer parmetro, se evala la funcin cuyo nmero es indicado por el mismo, se lo multiplica por el valor del segundo parmetro y se lo guarda en el primer parmetro. Sintaxis: ASSIGN A, B, C

A: Nmero del parmetro de una transaccin activa que recibe la informacin. El operando debe ser nmero entero, nombre o SNA seguido por nulo + o - (requerido). B: El valor que ser asignado al parmetro indicado por el operando A. El operando debe ser nmero entero, nombre o SNA (requerido). C: El nmero de la funcin (modificador de la funcin). El operando debe ser nulo, nmero entero, nombre o SNA (requerido). Ejemplo 1: ASSIGN 1,20

Produce que el valor de 20 se asigne al parmetro nmero 1 de la transaccin que est entrando al bloque ASSIGN. Ejemplo 2: ASSIGN 2,FN$INF

En este caso, la funcin con el nombre INF se evaluar y la informacin ser asignada al parmetro nmero 2 de la transaccin que entra al bloque ASSIGN. Ejemplo 3: ASSIGN 1+,3

En este caso, el valor 3 ser sumado al valor anterior del parmetro nmero 1 de la transaccin que entra al bloque ASSIGN. Ejemplo 4: ASSIGN 2-,P$3

En este caso, el valor del parmetro 3 de esta transaccin se restara del valor actual del parmetro 2 de la transaccin que entra al bloque ASSIGN. Ejemplo 5: ASSIGN 4+,3,2

En este caso se evala la funcin nmero 2 (previamente definida). Vamos a suponer un valor de 2.5 de la evaluacin de la funcin 2. Despus 2.5 se multiplicar por el operando B (en este caso tiene un

Pgina 24 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

valor de 3). El resultado de esta multiplicacin es 7.5, luego se trunca. El valor entero que es 7 se suma al valor actual del parmetro nmero 4 de la transaccin que entra al bloque ASSIGN. SAVEVALUE Descripcin: el bloque SAVEVALUE se utiliza para dar valor o modificar el contenido de una entidad de savevalue. A diferencia de un parmetro que es de una transaccin en particular, el SAVEVALUE se utilizar para almacenar informacin numrica de cualquier bloque en el que sea accedido, podemos entenderlo como una variable global de la simulacin. Cuando una transaccin entra al bloque SAVEVALUE, el valor del segundo operando ser evaluado para modificar el valor del savevalue indicado por el primer operando. Esta modificacin puede lograrse en forma directa, es decir, con una asignacin directa, o incrementar o decrementar el valor del savevalue. Sintaxis: SAVEVALUE A,B

A: Nombre del savevalue que recibe la informacin. El operando debe ser un nmero entero o un nombre seguido por nulo, + o - (requerido). B: El valor que ser asignado al savevalue. El operando debe ser un nmero entero, nombre o SNA (requerido). Ejemplo 1: SAVEVALUE INV,30

Significa que el valor de 30 ser asignado al savevalue con el nombre INV. Ejemplo 2: SAVEVALUE 3,FN$INF

En este caso, la funcin con el nombre INF ser evaluada y la informacin ser asignada al savevalue de nombre 3. Ejemplo 3: SAVEVALUE NOM+,3

En este caso, el valor de 3 ser agregado al valor anterior del savevalue con el nombre NOM. Ejemplo 4: SAVEVALUE 2-,P3

En este caso, el valor del parmetro 3 de esta transaccin se restara del valor actual del savevalue 2 VARIABLE Descripcin: la instruccin VARIABLE permite definir operaciones matemticas que sern utilizadas en los clculos dentro de la simulacin. Los resultados intermedios se truncarn. El resultado puede llamarse (ser regresado) usando el SNA de clase V. Cuando una transaccin activa entra a un bloque

Pgina 25 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

que contenga un SNA de clase V (inicial de VARIABLE) y un nombre de referencia. La instruccin variable ser evaluada y su valor final ser regresado al bloque. Sintaxis: Nombre VARIABLE X

Nombre: Nombre de referencia de VARIABLE (requerido). X: Expresin matemtica. Puede ser SNA, nmero, etc. (requerido). Ejemplo: PORG1 ADVANCE V$PROG1 VARIABLE LOG(Q$COL)/3

La transaccin que entra al bloque ADVANCE hace una llamada a la instruccin de variable con el nombre de referencia PROG1. En este momento la VARIABLE se evaluar por su expresin matemtica. Primero ser evaluado el contenido actual de QUEUE con el nombre COL, despus se sacar el LOG (logaritmo) de ste y su resultado se truncar; despus el resultado se divide entre 3 y se volver a truncar. El resultado final se regresar al ADVANCE. FVARIABLE Descripcin: la instruccin FVARIABLE permite definir operaciones y frmulas matemticas que se utilizarn dentro de los clculos de la simulacin. Los resultados intermedios NO sern truncados, sino slo el resultado final. El resultado puede llamarse (ser regresado) usando el SNA de clase V. Cuando una transaccin activa entra a un bloque que contenga una SNA de clase V (inicial de VARIABLE) y un nombre de referencia, la instruccin FVARIABLE se evaluar y su valor final regresar al bloque. Sintaxis: Nombre FVARIABLE X

Nombre: Nombre de referencia de FVARIABLE. Debe ser nombre (requerido). X : Expresin matemtica. Puede ser SNA. Nmero, etc. (requerido). Ejemplo: PORG1 ADVANCE V$PROG1 FVARIABLE LOG(Q$COL)/3

La transaccin que entra al bloque ADVANCE hace una llamada a la instruccin FVARIABLE con el nombre de referencia PROG1. En este momento la FVARIABLE ser evaluada por su expresin matemtica; primero se evaluar su contenido actual QUEUE con el nombre COL, despus se sacar el

Pgina 26 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

LOG (logaritmo) de ste y despus el resultado se dividir entre 3. El resultado final se truncar y regresar al ADVANCE. BVARIABLE Descripcin: la instruccin BVARIABLE permite definir entidades booleanas o lgicas que sern utilizadas en los clculos dentro de la simulacin. Devuelve un 1 por Verdadero o un 0 por Falso. El resultado puede llamarse usando la SNA de clase BV. Aunque la instruccin BVARIABLE pueda utilizarse para evaluar cualquier expresin matemtica, por lo general se usa para evaluar expresiones matemticas lgicas como NOT, AND, OR, G ( ), L ( ), E (=), GE ( ), LE ( ), EN ( ), definidas en la seccin VARIABLE. Sintaxis: Nombre BVARIABLE X

Nombre: Nombre de referencia de BVARIABLE. X: Expresin matemtica. Puede ser SNA, nmero, etctera. (Requerida).

Ejemplo:

ABC

BVARIABLE

(ABS (X2) G 3) AND (BV$XYZ)

Devolver el valor 1 si el savevalue 2 es mayor que 3 y la BVARIABLE llamada XYZ es verdadera, en caso contrario el valor que retorna es 0.

Pgina 27 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

SNAs
Bloque Atributos Numricos Estndares (SNA) SNA AC1: Valor absoluto del reloj del Sistema. Tiempo de simulacin desde el ltimo CLEAR. C1: Valor relativo del reloj del sistema. Tiempo de simulacin desde el ltimo RESET. M1: Tiempo en trnsito. M1 retorna el tiempo de reloj absoluto desde el ltimo MARK de la transaccin. Si no hubo ninguno desde que la transaccin comenz. Nentnum: Cantidad de Entradas a un Bloque. El nmero total de transacciones que entraron al bloque entnum es retornado. Wentnum: Cantidad en el bloque actual. La cantidad actual de transacciones en el bloque entnum. TG1: Cuenta remanente para terminacin. TG1 retorna la cantidad que es decrementada por los bloques TERMINATE con un operando A positivo. El valor es inicializado por START e indica el final de simulacin cuando vale 0. BVARIABLE FUNCTION FVARIABLE INITIAL B: Resultado de evaluar una variable de tipo booleano FN: Resultado de evaluar la funcin V: Resultado de evaluar una variable aritmtica L: Regresa el valor del LOGICSWITCH M: Regresa el valor del rengln m y columna n de la matriz X: Regresa el valor del SAVEVALUE M: Regresa el valor del rengln m y columna n de la matriz. Q: Tamao de la cola (contenido actual) QA: Contenido promedio de la cola QC: Nmero total de entradas a la cola QT: Tiempo promedio por transaccin en la cola (a base de QC) QM: Contenido mximo de la cola QX: Tiempo promedio por transaccin en la cola (a base de QZ) QZ: Total de entradas con cero tiempo de espera en la cola RN: Genera un nmero aleatorio entero (0-999) TG1: Contador de terminacin S: Capacidad ocupada de almacenaje SA: Nmero promedio de transacciones que son atendidas (nmero de servidores ocupados) SC: Nmero de transacciones que han entrado al almacenaje SE: Regresa el valor de 1 si el storage est vaco, y 0 de otra manera SF: Regresa el valor de 1 si el storage est lleno, y 0 de otra manera SR: Utilizacin de la capacidad de almacenaje SM: Nmero mximo de servidores ocupados ST: Tiempo promedio de utilizacin del almacenaje SV: Regresa 1 si el storage est en estado disponible, y 0 de otra manera TB: Promedio de entradas no ponderadas en la tabla TC: Conteo de entradas no ponderadas de la tabla
Pgina 28 de 34

MATRIX QTABLE DEPART QUEUE

RMULT START STORAGE

TABLE

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

VARIABLE ALTER ASSIGN ENTER EXAMINE FAVAIL

TD: Desviacin estndar de las entradas no ponderadas de la tabla V: Regresa el resultado de evaluar una variable aritmtica GT: Regresa el conteo de la transaccin de grupo P: Regresa el valor del parmetro R: Capacidad disponible del storage S: Cantidad del storage que est en uso GN: Regresa el conteo de membreca de un grupo numrico F: Estatus de la instalacin (1 = ocupado, 0 = ocioso) FC: Nmero de veces que fue capturada la instalacin FL: Regresa el valor de 1 si la instalacin ha sido pre-vaciada, de otra manera regresa 0 FR: Utilizacin fraccional de la instalacin FT: Tiempo promedio de utilizacin FV: Regresa 1 si la instalacin est disponible, y 0 de otra manera F: Estatus de la instalacin (1 = ocupado, 0 = ocioso) FC: Nmero de veces que fue capturada la instalacin FL: Regresa el valor de 1 si la instalacin ha sido pre-vaciada, de otra manera regresa 0 FR: Utilizacin fraccional de la instalacin FT: Tiempo promedio de utilizacin de la instalacin FV: Regresa 1 si la instalacin est en estado disponible, 0 de otra manera P: Valor del parmetro P GN: Regresa el conteo de membreca de un grupo numrico GT: Regresa el conteo de membreca de una transaccin de grupo R: Capacidad disponible del storage S: Cantidad del storage que est en uso SA: Nmero promedio de transacciones que son atendidas (nmero de servidores ocupados) SC: Nmero de transacciones que han entrado al almacenaje SE: Regresa el valor de 1 si el storage est vaco, y 0 de otra manera SF: Regresa el valor de 1 si el storage est lleno, y 0 de otra manera SR: Utilizacin de la capacidad de almacenaje SM: Nmero mximo de servidores ocupados ST: Tiempo promedio de utilizacin del almacenaje SV: Regresa 1 si el storage est disponible, 0 de otra manera CA: Contenido promedio de usuarios de la cadena CC: Entradas totales de usuarios a la cadena CH: Contenido actual de usuarios en la cadena CM: Contenido mximo de usuarios en la cadena CT: Tiempo promedio de estancia de los usuarios en la cadena LS: Regresa el valor de 1 si el LOGIC SWITCH est listo y 0 de otra manera P: Valor del parmetro P. MP: Regresa el valor del reloj del sistema menos el valor del parmetro.
Pgina 29 de 34

FUNAVAIL

INDEX JOIN LEAVE

LINK

LOGIC LOOP MARK

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

MSAVEVALUE PREEMPT

M1: Regresa el valor del reloj del sistema menos el valor del MARK MX: Regresa el valor de la matriz del rengln m y la columna n F: Estatus de la instalacin (1 = ocupado, 0 = ocioso) FC: Nmero de veces que fue capturada la instalacin FL: Regresa el valor de 1 si la instalacin ha sido pre-vaciada, de otra manera regresa 0 FR: Utilizacin fraccional de la instalacin FT: Tiempo promedio de utilizacin de la instalacin FV: Regresa 1 si la instalacin est en estado disponible, 0 de otra manera PR: Valor de prioridad de la transaccin activa F: Estatus de la instalacin (1 = ocupado, 0 = ocioso) FC: Nmero de veces que fue capturada la instalacin FL: Regresa el valor de 1 si la instalacin ha sido pre-vaciada, de otra manera regresa 0 FR: Utilizacin fraccional de la instalacin FV: Regresa 1 si la instalacin est en estado disponible, 0 de otra manera GN: Regresa el conteo de membreca de un grupo numrico GT: Regresa el conteo de membreca de una transaccin de grupo F: Estatus de la instalacin (1 = ocupado, 0 = ocioso) FC: Nmero de veces que fue capturada la instalacin FL: Regresa el valor de 1 si la instalacin ha sido pre-vaciada, de otra manera regresa 0 FR: Utilizacin fraccional de la instalacin FT: Tiempo promedio de utilizacin de la instalacin FV: Regresa 1 si la instalacin est disponible, 0 de otra manera R: Capacidad disponible del storage S: Cantidad del storage que est en uso SA: Nmero promedio de transacciones que son atendidas (nmero de servidores ocupados) SC: Nmero de transacciones que han entrado al almacenaje SE: Regresa el valor de 1 si el storage est vaco, y 0 de otra manera SF: Regresa el valor de 1 si el storage est lleno, y 0 de otra manera SR: Utilizacin de la capacidad de almacenaje SM: Nmero mximo de servidores ocupados ST: Tiempo promedio de utilizacin del almacenaje SV: Regresa 1 si el storage est en estado disponible, 0 de otra manera X: Regresa el valor del savevalue GT: Regresa el conteo de membreca de una transaccin de grupo F: Estatus de la instalacin (1 = ocupado, 0 = ocioso) FC: Nmero de veces que fue capturada la instalacin FL: Regresa el valor de 1 si la instalacin fue pre-vaciada, de otra manera regresa 0 FR: Utilizacin fraccional de la instalacin FT: Tiempo promedio de utilizacin de la instalacin FV: Regresa 1 si la instalacin est en estado disponible, 0 de otra manera R: Capacidad disponible del storage
Pgina 30 de 34

PRIORITY RELEASE

REMOVE RETURN

SAVAIL

SAVEVALUE SCAN SEIZE

SUNAVAIL

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

S: Cantidad del storage que est en uso SA: Nmero promedio de transacciones que estn siendo atendidas (nmero de servidores ocupados) SC: Nmero de transacciones que han entrado al almacenaje SE: Regresa el valor de 1 si el storage est vaco, y 0 de otra manera SF: Regresa el valor de 1 si el storage est lleno, y 0 de otra manera SR: Utilizacin de la capacidad de almacenaje SM: Nmero mximo de servidores ocupados ST: Tiempo promedio de utilizacin del almacenaje SV: Regresa 1 si el storage est disponible, 0 de otra manera TB: Promedio de entradas no ponderadas en la tabla TC: Conteo de entradas no ponderadas de la tabla TD: Desviacin estndar de las entradas no ponderadas de la tabla TG1: Contador de terminacin CA: Contenido promedio de usuarios de la cadena CC: Entradas totales de usuarios a la cadena CH: Contenido actual de usuarios en la cadena CM: Contenido mximo de usuarios en la cadena CT: Tiempo promedio de estancia de los usuarios en la cadena SF: Regresa el valor de 1 si el storage est lleno, y 0 de otra manera SR: Utilizacin de la capacidad de almacenaje SM: Nmero mximo de servidores ocupados ST: Tiempo promedio de utilizacin del almacenaje SV: Regresa 1 si el storage est disponible, 0 de otra manera TB: Promedio de entradas no ponderadas en la tabla TC: Conteo de entradas no ponderadas de la tabla TD: Desviacin estndar de las entradas no ponderadas de la tabla TG1: Contador de terminacin CA: Contenido promedio de usuarios de la cadena CC: Entradas totales de usuarios a la cadena CH: Contenido actual de usuarios en la cadena CM: Contenido mximo de usuarios en la cadena CT: Tiempo promedio de estancia de los usuarios en la cadena

TABULATE

TERMINATE UNLINK

TABULATE

TERMINATE UNLINK

Pgina 31 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

La salida de la Simulacin
Reportes
Cuando finaliza la corrida de la simulacin, GPSS escribe un reporte no formateado en el archivo REPORT.GPS. El contenido del reporte puede ser modificado por medio de la instruccin START.

Contenido del Reporte Estndar de GPSS


Ttulo: Este ttulo es tomado de la seccin de comentarios del comando REPORT. Subttulo: START TIME. El reloj del sistema al inicio del perodo. END TIME. El tiempo de reloj absoluto cuando el contador de terminacin se iguala a 0. BLOCKS. El nmero de bloques en el modelo actual al final de la simulacin. FACILITIES. El nmero de servidores (SEIZE/RELEASE) en el modelo al final de la simulacin. STORAGES. El nmero de almacenamientos (ENTER/LEAVE) en el modelo al final de la simulacin. FREE MEMORY. La memoria libre al final de la simulacin. Nombres: NAMES. Nombres asignados por el usuario. VALUE. El valor numrico asignado al nombre. Los nmeros asignados por el sistema inician en 10 000. TYPE. 0 significa que el valor del nombre es asignado por el usuario, 2 que el valor del nombre es asignado por el sistema y 3 que el nombre es la ubicacin del bloque. Bloques: LINE. El nmero de lnea del listado de programa de GPSS. Los bloques que utilicen etiquetas, las cuales aparecern en lugar del nmero de la lnea. LOC. Nmero o nombre del bloque. LOC es la abreviacin de LOCATION o ubicacin. BLOCK TYPE. El nombre del bloque. ENTRY COUNT. El nmero total de transacciones que entraron a este bloque desde el inicio de la simulacin o desde la ltima RESET o CLEAR. CURRENT COUNT. El nmero de transacciones en este bloque al finalizar la corrida de simulacin. RETRY. Nmero de transacciones esperando una condicin especfica, dependiendo del estado de la entidad de este bloque. Facilidades: FACILITY. Nombre o nmero de la instalacin (servidor). ENTRIES. El nmero de veces que la instalacin fue capturada (o desde la ltima RESET o CLEAR) desde el inicio de la simulacin.
Pgina 32 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

UTIL. La fraccin de utilizacin (ocupacin) del servidor durante el tiempo simulado. AVE.TIME. El tiempo promedio de servicio durante el tiempo simulado o desde la ltima RESET o CLEAR. AVAILABLE. El estado de disponibilidad del servidor al final de la simulacin. El 1 significa disponible, 0 significa ocupado. OWNER. El nmero de la transaccion que es duea del servidor. El 0 significa que el servidor no tuvo dueo. PEND. El nmero de transacciones esperando capturar la instalacin por medio de PREEMPT. (El contador de transacciones entra a la modalidad de interrupcin interrupt mode). INTER. El nmero de transacciones que actualmente capturaron la instalacin por medio de PREEMPT. (El contador de transacciones en la cadena de interrupcin). RETRY. Nmero de transacciones esperando una condicin especfica dependiendo del estado de la entidad de este bloque. DELAY. El nmero de transacciones esperando capturar el servidor por medio de SIEZE. Esta cadena tambin incluye las transacciones esperando capturar el servidor por medio de PREEMPT en la modalidad de prioridad priority mode del bloque de PREEMPT.

Colas: QUEUE. El nombre o nmero de la entidad de cola. MAX. El contenido mximo de la cola durante el tiempo simulado. CONT. El contenido actual de la cola al final de la simulacin. ENTRIES. Entrada total a la entidad de cola durante el tiempo simulado. ENTRIES (0). Entrada total a la entidad de cola durante el tiempo simulado con 0 tiempo de estancia en la fila. (Entradas sin hacer fila). AVE.CONT. El contenido promedio (ponderado) de fila durante el tiempo simulado. AVE.TIME. Tiempo promedio por unidad de fila durante el tiempo simulado. (Tomando en cuenta la entrada total a cola). AVE. (-0). Tiempo promedio por unidad de fila durante el tiempo simulado ajustado por entradas sin hacer fila. (Entrada total-entrada sin hacer fila). RETRY. Nmero de transacciones esperando una condicin especfica, dependiendo del estado de la entidad de este bloque. Almacenamiento: STORAGE. Nombre o nmero de la entidad de almacenamiento. CAP. La capacidad de almacenamiento definida en el programa. REMAIN. Las unidades de almacenamiento no usadas al final de la simulacin. MIN. El mnimo de almacenamiento utilizado durante el tiempo simulado o desde el ltimo RESET o CLEAR. MAX. El nmero mximo de almacenamiento utilizado durante el tiempo simulado. ENTRIES. La entrada total a la entidad de almacenamiento durante el tiempo simulado. La acumulacin total del operando B del bloque ENTER.

Pgina 33 de 34

SIMULACIN Ingeniera Sistemas de Informacin

Unidad 5

AVL. El estado de disponibilidad de la entidad de almacenamiento al final de la simulacin. El 1 significa disponible, 0 significa ocupado. AVE C. El contenido promedio (ponderado) de almacenamiento utilizado durante el tiempo simulado. UTIL. La fraccin de utilizacin (ocupacin) de la entidad de almacenamiento durante el tiempo simulado. RETRY. Nmero de transacciones esperando una condicin especfica dependiendo del estado de la entidad de almacenamiento. DELAY. El nmero de transacciones esperando entrar al bloque ENTER.

Tablas: TABLE. Nombre o nmero de la entidad de SAVEVALUE. MEAN. Promedio ponderado aritmtico de los valores tabulados. STD.DEV. La desviacin estndar de los valores tabulados. RETRY. Nmero de transacciones esperando una condicin especfica, dependiendo del estado de la entidad de la tabla. RANGE. Los lmites inferiores y superiores del rango de los datos tabulados. FRECUENCY. El nmero de veces que la variable tabulada est dentro del rango definido (frecuencia absoluta). CUM%. La frecuencia relativa acumulada en porcentaje. Controlador lgico (Logicswitch): LOGICSWITCH. Nombre o nmero de la entidad de LOGIC. VALUE. El valor de la entidad de LOGIC al final de la simulacin. El 1 significa set o verdadera, 0 significa reset o falsa. RETRY. Nmero de transacciones esperando una condicin especfica dependiendo del estado de LOGIC. Savevalues: SAVEVALUE. Nombre o nmero de la entidad de SAVEVALUE. VALUE. El valor de SAVEVALUE al final de la simulacin. RETRY. Nmero de transacciones esperando una condicin especfica dependiendo del estado de SAVEVALUE. Matriz: MATRIX. El nombre o nmero de la entidad de la matriz. RETRY. Nmero de transacciones esperando una condicin especfica, dependiendo del estado de la matriz. ROW y COLUMN. El nmero (la posicin) del rengln y la columna en la matriz. VALUE. El valor de la matriz al final de la simulacin.

Pgina 34 de 34

You might also like