Ejercicio 1 GPSS
Problema 1
Un dispositivo electrónico de red recibe un paquete de datos cada 5 +/- 3 milisegundos. Demora 5 +/- 1 milisegundo en procesarlo. En el buffer se pueden encolar hasta 5 paquetes. Por lo tanto, el dispositivo tiene lugar para 1 paquete en proceso + 5 paquetes más en el buffer. Si el buffer está lleno, un paquete nuevo que llega se descarta. Simular 1000 paquetes salidos del sistema (procesados + descartados). Solución 1
Se modela el buffer como una cola, y se pregunta por su tamaño antes de poder ingresar. GENERATE 5,3 TEST L Q$buff,5,descartar QUEUE buff SEIZE dispositivo DEPART buff ADVANCE 5,1 RELEASE dispositivo TERMINATE 1 descartar ;guía
TERMINATE 1
;porque también se consideran los descartados
START 1000
BLOQUES
START 1000
Solución 2
Se modela el buffer como un almacén, y se pregunta si está lleno antes de poder ingresar. buff
descartar guía
START 1000
STORAGE 5
;capacidad de almacén = 5
GENERATE 5,3 ;generar paquetes cada 5+/-3 ms TEST E SF$buff,0,descartar ENTER buff SEIZE dispositivo LEAVE buff ADVANCE 5,1 RELEASE dispositivo TERMINATE 1 TERMINATE 1
BLOQUES
START 1000
Solución 3
Se modela el buffer como un almacén, dentro del cual se produce el servicio, y se libera recién al terminar el mismo. buff
STORAGE 6 GENERATE 5,3 TEST E SF$buff,0,descartar ENTER buff SEIZE dispositivo ADVANCE 5,1 RELEASE dispositivo LEAVE buff TERMINATE 1
descartar TERMINATE 1
;guía START 1000
BLOQUES
START
Problema 2
A un banco ingresa una persona cada 60 +/- 10 segundos. Al entrar se dirigen a una cola demorando 5 +/- 2 segundos en llegar. Hay tres cajas atendiendo, cada una demora 3 +/- 2 minutos en atender a cada persona, la que luego se retira demorando 7 +/- 2 segundos en llegar a la puerta. Hay una puerta de entrada y otra de salida. Por cada una de las puertas sólo puede pasar de a una persona por vez demorando 3 +/- 2 segundos. Simular 5 horas de atención, indicando la cola máxima registrada. Tabular, cada 2 minutos, la cantidad de clientes dentro del banco. Utilizar, además, una QTABLE que tabule el tiempo en la cola de las cajas. clientes TABLE Q$banco,2,2,20 tiempoQCajas QTABLE S$colaCajas,30,30,30 banco puertaE puertaS cajas
STORAGE STORAGE STORAGE STORAGE
1000 1 1 3
GENERATE 60,10 ENTER puertaE ENTER banco ADVANCE 3,2 LEAVE puertaE ADVANCE 5,2 QUEUE colaCajas ENTER cajas DEPART colaCajas ADVANCE 180,120 LEAVE cajas ADVANCE 7,2 ENTER puertaS ADVANCE 3,2 LEAVE puertaS LEAVE banco TERMINATE GENERATE 18000 TERMINATE 1 GENERATE 120 TABULATE clientes TERMINATE ;guía START 1
BLOQUES
START
Problema 3
A una oficina telefónica llegan personas a razón de 10 +/- 5 minutos, las cuales caminan a lo largo de un corredor hasta llegar a un mostrador demorando 3 +/- 1 min., donde hay un empleado al cual se le solicita una llamada telefónica, demorando 4 +/- 2 min en pedir la llamada. Luego un 60% se dirige a una cabina de llamadas de corta distancia y el resto a una única cabina de larga distancia, demorando en el primer caso 15 +/- 5 min en hablar y en el segundo caso 7 +/- 3 min. Al terminar de hablar se retiran del lugar. Simular 3 horas de simulación. Y obtener:
El tiempo que estuvieron las personas en el sistema. Cada minuto la cantidad de clientes que hay dentro de la oficina telefónica. Al salir del corredor tabular la cantidad de personas haciendo cola frente al empleado. Tiempo de espera en dicha cola.
cantClientes TABLE S$oficina 2,2,20 clientesEnCola TABLE Q$colaMostrador 4,4,20
tiempo cola
TABLE M1 4,4,20 QTABLE colaMostrador 4,4,20
oficina cabinasLargas cabinasCortas
STORAGE 1000 STORAGE 1 STORAGE 5 GENERATE 10,5 ENTER oficina ADVANCE 3,1 TABULATE clientesEnCola QUEUE colaMostrador SEIZE empleado DEPART colaMostrador ADVANCE 4,2 RELEASE empleado TRANSFER 0.6, ACabCor,ACabLar
ACabLar
QUEUE colaLarga ENTER cabinasLargas DEPART colaLarga ADVANCE 7,3 LEAVE cabinasLargas LEAVE oficina TABULATE tiempo TERMINATE
ACabCor
QUEUE colaCorta ENTER cabinasCortas DEPART colaCorta ADVANCE 15,5 LEAVE cabinasCortas LEAVE oficina TABULATE tiempo TERMINATE GENERATE 1 TABULATE cantClientes TERMINATE GENERATE 180 TERMINATE 1
;guía START 1
BLOQUES
START
Problema 4
A un supermercado llegan clientes por 2 puertas. Por la puerta 1, uno cada 2 +/- 1 minutos, y por la puerta 2 cada 45 +/- 15 seg. Los que ingresaron por la puerta 1 demoran 40 +/- 20 segundos en juntarse con los que ingresaron por la puerta 2. Un 30% va a dejar los envases a una empleada que los atiende en 30 +/- 10 seg., el resto sigue el recorrido. El 60% va a fiambrería donde sacan un número por el cual los llaman; el puesto es atendido por 3 empleados y el tiempo de atención es de 100 +/- 45 seg. El resto va a verdulería donde hay un único empleado que atiende en 50 +/- 20 seg. Luego recorren la zona de autoservicio durante 300 +/- 120 seg. Una vez finalizadas las compras se dirigen a una única caja que demora 60 +/- 30 segundos en atenderlos. Al terminar de pagar se retiran del supermercado. Simular de 9 a 13 horas. Y obtener:
La cantidad de personas que hay en cola frente a la empleada que recibe los envases, vista por una persona antes de ponerse en la citada cola. El tiempo de permanencia de los clientes en el s upermercado.
tiempo cantCola
TABLE M1 300,300,25 TABLE Q$colaEnv 4,4,10
supermercado STORAGE 10000 fiambres STORAGE 3 GENERATE 120,60 ENTER supermercado MARK ADVANCE 40,20 ;caminando TRANSFER ,entrada2
entrada2 irEnvases
sigue irFiamb
irVerd
compras
GENERATE 45,15 ENTER supermercado MARK TRANSFER 0.3,sigue,irEnvases TABULATE cantCola QUEUE colaEnv SEIZE empleada DEPART colaEnv ADVANCE 30,10 RELEASE empleada TRANSFER 0.6,irVerd,irFiamb ENTER fiambres ADVANCE 100,45 LEAVE fiambres TRANSFER ,compras SEIZE verdulero ADVANCE 50,20 RELEASE verdulero ADVANCE 300,120 SEIZE caja ADVANCE 60,30 RELEASE caja LEAVE supermercado TABULATE tiempo TERMINATE GENERATE 14400 TERMINATE 1
;guía START 1
Como se ve, para evitar código redundante, se utiliza un TRANSFER incondicional que lleva a la transacción a un bloque ubicado en la secuencia de bloques de otro GENERATE.
BLOQUES
START