You are on page 1of 34

SIMULACIN

Ingeniera Sistemas de Informacin Unidad 5


Pgina 1 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 2 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 3 de 34

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

SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 4 de 34

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
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 de un bloque de espera DEPART
ENTER
UNLINK
Ingreso de una transaccin al sistema GENERATE
SPLIT
Salidas de una transaccin del sistema TERMINATE
Procesos ADVANCE
ASEEMBLE
MATCH
GATHER
Control de flujo TRANSFER
TEST
GATE
LOGIC
SELECT
LOOP
BUFFER
Bloques de operaciones aritmticas SAVEVALUE MSAVEVALUE
ASSIGN
INDEX
PRIORITY
Bloques de creacin de estadsticas TABULATE

SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 5 de 34

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:


SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 6 de 34

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:



SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 7 de 34

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.


SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 8 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 9 de 34

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: RESET
SIMULATE
Descripcin: la instruccin SIMULATE permite usar un lmite de tiempo real para la simulacin.
Sintaxis: SIMULATE A
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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 10 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 11 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 12 de 34

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 .40, TIPOA,SEGUIR.
SEGUIR TRANSFER .75,TIPOC,TIPOB
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 ALL,SEC1,SEC4,2

SEC1 SEIZE EMPLEADO1
TRANSFER ,SEGUIR
SEC2 SEIZE EMPLEADO2
TRANSFER ,SEGUIR
SEC3 SEIZE EMPLEADO3
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 13 de 34

TRANSFER ,SEGUIR
SEC4 SEIZE EMPLEADO4
TRANSFER ,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 EQU 1
SEGUNDO EQU 2
TERCERO EQU 3

PRIMERO STORAGE 15
SEGUNDO STORAGE 10
TERCERO STORAGE 56

SELECT 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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 14 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 15 de 34

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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 16 de 34

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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 17 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 18 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 19 de 34

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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 20 de 34

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


SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 21 de 34

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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 22 de 34

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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 23 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 24 de 34

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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 25 de 34

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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 26 de 34

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 VARIABLE LOG(Q$COL)/3

ADVANCE V$PROG1
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 FVARIABLE LOG(Q$COL)/3

ADVANCE V$PROG1
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
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 27 de 34

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.


SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 28 de 34

SNAs
Bloque SNA
Atributos
Numricos
Estndares
(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 B: Resultado de evaluar una variable de tipo booleano
FUNCTION FN: Resultado de evaluar la funcin
FVARIABLE V: Resultado de evaluar una variable aritmtica
INITIAL 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
MATRIX M: Regresa el valor del rengln m y columna n de la matriz.
QTABLE Q: Tamao de la cola (contenido actual)
DEPART QA: Contenido promedio de la cola
QUEUE 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
RMULT RN: Genera un nmero aleatorio entero (0-999)
START TG1: Contador de terminacin
STORAGE 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
TABLE TB: Promedio de entradas no ponderadas en la tabla
TC: Conteo de entradas no ponderadas de la tabla
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 29 de 34

TD: Desviacin estndar de las entradas no ponderadas de la tabla
VARIABLE V: Regresa el resultado de evaluar una variable aritmtica
ALTER GT: Regresa el conteo de la transaccin de grupo
ASSIGN P: Regresa el valor del parmetro
ENTER R: Capacidad disponible del storage
S: Cantidad del storage que est en uso
EXAMINE GN: Regresa el conteo de membreca de un grupo numrico
FAVAIL 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
FUNAVAIL 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
INDEX P: Valor del parmetro P
JOIN GN: Regresa el conteo de membreca de un grupo numrico
GT: Regresa el conteo de membreca de una transaccin de grupo
LEAVE 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
LINK 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
LOGIC LS: Regresa el valor de 1 si el LOGIC SWITCH est listo y 0 de otra manera
LOOP P: Valor del parmetro P.
MARK MP: Regresa el valor del reloj del sistema menos el valor del parmetro.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 30 de 34

M1: Regresa el valor del reloj del sistema menos el valor del MARK
MSAVEVALUE MX: Regresa el valor de la matriz del rengln m y la columna n
PREEMPT 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
PRIORITY PR: Valor de prioridad de la transaccin activa
RELEASE 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
REMOVE GN: Regresa el conteo de membreca de un grupo numrico
GT: Regresa el conteo de membreca de una transaccin de grupo
RETURN 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
SAVAIL 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
SAVEVALUE X: Regresa el valor del savevalue
SCAN GT: Regresa el conteo de membreca de una transaccin de grupo
SEIZE 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
SUNAVAIL R: Capacidad disponible del storage
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 31 de 34

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
TABULATE 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
TERMINATE TG1: Contador de terminacin
UNLINK 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
TABULATE 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
TERMINATE TG1: Contador de terminacin
UNLINK 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

SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 32 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 33 de 34

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.
SIMULACIN
Ingeniera Sistemas de Informacin Unidad 5
Pgina 34 de 34

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.

You might also like