Modelos de Sistemas con

1 Modelos de Sistemas conAweSim ! III Ing. Rafael A. Díaz...
Author: Julia Vega Macías
0 downloads 4 Views

1 Modelos de Sistemas conAweSim ! III Ing. Rafael A. Díaz Chacón U.C.V. RAD/99

2 Variables y Funciones en Visual SLAMRAD/99

3 Variables Visual SLAM Tipos Variables Globales modificables.Variables Locales de las entidades. Variables Globales sólo para lectura. RAD/99

4 Variables Visual SLAM II (Variable global entera)Variables Globales modificables II (Variable global entera) XX(I) (Vector global de valores reales*) LL(I) (Vector global de valores enteros*) SZ(I) (Vector global de valores alfabéticos*) SS(I) (Vector global de variables de estado**) DD(I) (Vector global de derivadas de variables de estado**) * debe definirse el valor máximo en la instrucción LIMITS ** debe definirse el valor máximo en la instrucción CONTINUOUS RAD/99

5 Variables Visual SLAM ARRAY[I,J] (Arreglo global*)Variables Globales modificables ARRAY[I,J] (Arreglo global*) XXINST(I) (Vector global de valores reales en una subred**) LLINST(I) (Vector global de valores enteros en una subred**) SZINST(I) (Vector global de valores alfabéticos en una subred **) MSTOP (Debe colocarse en -1 para parar la simulación) *Cada fila debe definirse en la instrucción ARRAY ** debe definirse el valor máximo en la instrucción LIMITSVSN RAD/99

6 Variables Visual SLAM ETYPE (Atributo entero de cada entidad)Variables Locales de las entidades ETYPE (Atributo entero de cada entidad) ATRIB(I) (Vector de atributos reales de cada entidad*) LTRIB(I) (Vector de atributos enteros de cada entidad*) STRIB(I) (Vector de atributos alfabéticos de cada entidad*) ENUM (Identificador entero de cada entidad**) * debe definirse el valor máximo en la instrucción LIMITS ** sólo para lectura RAD/99

7 Válidos sólo en subredesVariables Visual SLAM Variables Locales de las entidades Válidos sólo en subredes ERETURN (Atributo que guarda el último retorno) ANTRIB(I) (Vector de atributos reales de cada entidad*) LNTRIB(I) (Vector de atributos enteros de cada entidad*) SNTRIB(I) (Vector de atributos alfabéticos de cada entidad*) INSTNAME (Identificador de la instancia actual) * debe definirse el valor máximo en la instrucción LIMITSVSN RAD/99

8 Variables Visual SLAM TNOW (Instante actual en la simulación)Variables Globales sólo para lectura TNOW (Instante actual en la simulación) TTBEG (Instante de inicio de la simulación) TTFIN (Instante de finalización de la simulación) DTNOW (Tamaño actual del paso de integración*) DTMIN (Tamaño mínimo del paso de integración*) DTMAX (Tamaño máximo del paso de integración*) * en el algoritmo numérico de RKF RAD/99

9 Variables Visual SLAM MATRIB (Dimensión del vector ATRIB)Variables Globales sólo para lectura MATRIB (Dimensión del vector ATRIB) MLTRIB (Dimensión del vector LTRIB) MSTRIB (Dimensión del vector STRIB) MXXX (Dimensión del vector XX) MXLL (Dimensión del vector LL) MXSZ (Dimensión del vector SZ) RAD/99

10 Variables Visual SLAM NNCLT (Número de nodos COLCT utilizados)Variables Globales sólo para lectura NNCLT (Número de nodos COLCT utilizados) NNSTA (Número de instrucciones TIMST utilizadas) NNRUN (Corrida actual de la simulación) NNRNS (Número total de corridas de la simulación) NNEQD (Dimensión del vector DD) NNEQS (Dimensión del vector SS) SCENARIO (Nombre del escenario actual) RAD/99

11 Funciones Visual SLAM Tipos Funciones Globales.Funciones de Variables Aleatorias. Funciones Intrínsecas. Funciones Estadísticas. RAD/99

12 Funciones Visual SLAM Funciones GlobalesNGUSE(I) (Unidades del grupo de recursos I en uso) NNGRP(I) (Unidades del grupo de recursos I disponibles) NNCNT(I) (Entidades que han completado la actividad I) NNACT(I) (Entidades actualmente en la actividad I) NNGAT(I) (Valor actual de la compuerta I) NNRSC(I) (Unidades del recurso I disponibles) NRUSE(I) (Unidades del recurso I en uso) NNQ(I) (Entidades actualmente en el archivo de espera I) RAD/99

13 Funciones Visual SLAM Funciones GlobalesPROB(P) (Devuelve el valor TRUE si un número aleatorio entre 0.0 y 1.0 es menor que P; P debe estar entre 0.0 y 1.0*) USERF(N) (Devuelve el valor de una función escrita por el usuario correspondiente al argumento N) VSNEXPR(VSN,INST,EXPR) (Evalúa la expresión EXPR dentro de la subred VSN y la instancia INST) * sólo válido como condición en un ACTIVITY RAD/99

14 Funciones Visual SLAM Funciones GlobalesASSERT(VAL,MIN,MAX) (Devuelve el valor VAL si y sólo si está entre MIN y MAX; en caso contrario da un error) GETEXCEL(HOJA,IFILA,ICOL) (Devuelve el valor de la casilla (IFILA,ICOL) de la hoja de cálculo HOJA de EXCEL) GGTBLN(IEJEX,IEJEY,XVALOR) (Devuelve el valor en el eje Y de interpolar XVALOR en la tabla de datos (x,y) dados por los arreglos IEJEX y IEJEY, respectivamente) RAD/99

15 Funciones Visual SLAM Funciones de Variables AleatoriasDRAND(I) (Número pseudo-aleatorio entre 0.0 y 1.0*) EXPON(PROM,I) (Muestra de una distribución Exponencial con media PROM*) UNFRM(UMIN,UMAX,I) (Muestra de una distribución Uniforme entre UMIN y UMAX*) WEIBL(ALFA,BETA,I) (Muestra de una distribución Weibull con parámetro de escala ALFA y parámetro de forma BETA*) * usando el generador de números aleatorios I RAD/99

16 Funciones Visual SLAM Funciones de Variables AleatoriasTRIAG(UMIN,UMODA,UMAX,I) (Muestra de una distribución Triangular entre UMIN y UMAX con moda en UMODA*) RNORM(PROM,DESV,I) (Muestra de una distribución Normal con media PROM y desviación estándar DESV*) RLOGN(PROM,DESV,I) (Muestra de una distribución Lognormal con media PROM y desviación estándar DESV*) ERLNG(PROM,UK,I) (Muestra de una distribución Erlang la cual es la suma de UK muestras exponenciales cada una con media PROM*) * usando el generador de números aleatorios I RAD/99

17 Funciones Visual SLAM Funciones de Variables AleatoriasGAMA(BETA,ALFA,I) (Muestra de una distribución Gamma con parámetros BETA y ALFA*) BETA(THETA,PHI,I) (Muestra de una distribución Beta con parámetros THETA y PHI*) NPSSN(PROM,I) (Muestra de una distribución Poisson con media PROM*) DPROBN(IACUM,IVALOR,I) (Muestra de una distribución empírica cuyas probabilidades acumuladas están en el arreglo IACUM y cuyos correspondientes valores posibles están en el arreglo IVALOR*) * usando el generador de números aleatorios I RAD/99

18 Funciones Visual SLAM Funciones IntrínsecasABS(VALOR) (Valor absoluto de VALOR) ACOS(VALOR) (Arco coseno de VALOR) ASIN(VALOR) (Arco seno de VALOR) ATAN(VALOR) (Arco tangente de VALOR) ATAN2(A,B) (Arco tangente de (A/B)) ATOI(ALFA) (Convierte la palabra ALFA en un valor entero) ATOF(ALFA) (Convierte la palabra ALFA en un valor real) CEIL(VALOR) (Valor real igual al menor entero >= que VALOR) CHAR(ENT) (Convierte el valor entero ENT en caracteres ASCII) COS(ANGULO) (Coseno de ANGULO) COSH(ANGULO) (Coseno hiperbólico de ANGULO) RAD/99

19 Funciones Visual SLAM Funciones IntrínsecasDBLE(ENT) (Convierte el valor entero ENT en valor real) DIM(A,B) (Diferencia positiva entre A y B) EXP(VALOR) (Exponencial de VALOR) FLOOR(VALOR) (Mayor entero <= que VALOR) FMOD(A,B) (Residuo del cociente entre los reales A y B) FTOA(VALOR) (Convierte el valor real VALOR en una palabra) IILEN(ALFA) (Longitud de la palabra ALFA sin contar espacios en blanco) INDEX(a,b) (Encuentra el contenido de a dentro de b) INT(VALOR) (Trunca VALOR y lo retorna como entero) ITOA(ENT) (Convierte el valor entero ENT en una palabra) LDEXP(VAL,EX) (Calcula (2*VAL) elevado a la potencia EX) RAD/99

20 Funciones Visual SLAM Funciones IntrínsecasLEN(ALFA) (Longitud de la palabra ALFA) LLE(a,b) (Retorna TRUE si la palabra a es <= que la palabra b) LGE(a,b) (Retorna TRUE si la palabra a es >= que la palabra b) LGT(a,b) (Retorna TRUE si la palabra a es > que la palabra b) LLT(a,b) (Retorna TRUE si la palabra a es < que la palabra b) LOG(VALOR) (Logaritmo natural de VALOR) LOG10(VALOR) (Logaritmo en base 10 de VALOR) MAX(A,B) (Máximo entre A y B) MIN(A,B) (Mínimo entre A y B) MOD(ENT1,ENT2) (Residuo del cociente ENT1/ENT2) NINT(VALOR) (Redondea VALOR al entero más cercano) RAD/99

21 Funciones Visual SLAM Funciones IntrínsecasPOW(A,B) (Calcula A elevado a la potencia B) SIGN(A,B) (Si B<0.0 retorna -ABS(A), en otro caso retorna ABS(A)) SIN(ANGULO) (Seno de ANGULO) SINH(ANGULO) (Seno hiperbólico de ANGULO) SQRT(VALOR) (Raíz Cuadrada de VALOR) STRCAT(a,b) (Retorna la palabra b concatenada en la palabra a) TAN(ANGULO) (Tangente de ANGULO) TANH(ANGULO) (Tangente hiperbólica de ANGULO) RAD/99

22 Funciones Visual SLAM Funciones EstadísticasAAAVG(I) (Valor promedio de la utilización de la actividad I*) AAMAX(I) (Máxima utilización de la actividad I*) AASTD(I) (Desviación estándar de la utilización de la actividad I*) AATLC(I) (Instante del último cambio de estado de la actividad I) CCAVG(I) (Promedio de la variable estadística del nodo COLCT I*) CCMAX(I) (Máximo de la variable estadística del nodo COLCT I*) CCMIN(I) (Mínimo de la variable estadística del nodo COLCT I*) CCNUM(I ) (Muestras de la variable estadística del nodo COLCT I*) CCSTD(I ) (Desviación estándar de la variable del nodo COLCT I*) FFAVG(I ) (Número promedio de entidades en el archivo I*) FFAWT(I ) (Tiempo promedio de espera en el archivo I*) FFMAX(I ) (Número máximo de entidades en el archivo I*) * desde que se inició el muestreo actual RAD/99

23 Funciones Visual SLAM Funciones EstadísticasFFPRD(I) (Periodo de tiempo del muestreo del archivo I*) FFSTD(I) (Desviación estándar de la longitud del archivo I*) FFTLC(I) (Instante del último cambio de longitud del archivo I*) GGOPN(I) (Porcentaje de tiempo que ha estado abierta la puerta I*) GGTLC(I) (Instante del último cambio de estado de la puerta I*) GRPAVA(I) (Promedio de disponibilidad de los recursos del grupo I*) GRPAVG(I) (Promedio de utilización de los recursos del grupo I*) GRPMAX(I ) (Utilización máxima de los recursos del grupo I*) GRPPRD(I ) (Periodo de muestreo para el grupo I*) GRPSTD(I ) (Desviación estándar de la utilización del grupo I*) GRPTLC(I ) (Instante del último cambio de estado de la utilización del grupo de recursos I*) * desde que se inició el muestreo actual RAD/99

24 Funciones Visual SLAM Funciones EstadísticasRRAVA(I) (Promedio de disponibilidad del recurso I*) RRAVG(I) (Promedio de utilización del recurso I*) RRMAX(I) (Utilización máxima del recurso I*) RRPRD(I) (Periodo de muestreo para el recurso I*) RRSTD(I) (Desviación estándar de la utilización del recurso I*) RRTLC(I) (Instante del último cambio de la utilización del recurso I*) TTAVG(I) (Promedio de la variable persistente en tiempo I*) TTMAX(I ) (Máximo valor de la variable persistente en tiempo I*) TTMIN(I ) (Mínimo valor de la variable persistente en tiempo I*) TTPRD(I ) (Periodo de muestreo para la variable temporal I*) TTSTD(I ) (Desviación estándar de la variable temporal I*) TTTLC(I) (Instante del último cambio de la variable temporal I*) * desde que se inició el muestreo actual RAD/99

25 Funciones en Ambiente CTipos de funciones Sirven como interfaz entre los ambientes AweSim y C. Ya están declaradas en el archivo de encabezado vslam.h Se pueden usar en el ambiente gráfico de redes SLAM o dentro de otro tipo de funciones en C escritas por el usuario. Las funciones en ambiente C son de dos tipos: Funciones que deben ser escritas por el usuario. Funciones escritas previamente para ser utilizadas por el usuario. RAD/99

26 ENTRY*SWFUNC ALLOC(int código,ENTRY*primera);Funciones en Ambiente C Escritas por el usuario ALLOC: Se utiliza para realizar una asignación de recursos en un nodo AWAIT, según una regla particular. ENTRY*SWFUNC ALLOC(int código,ENTRY*primera); código: Valor entero para escoger la regla de asignación de recursos asociada al nodo AWAIT que está haciendo la llamada a la función. primera: Ubicación de la primera entidad en el archivo asociado al nodo AWAIT. Valor de retorno: Posición de la entidad que será liberada del nodo AWAIT. Si no hay asignación retorna NULL. Nota: En el ambiente AweSim se usa ALLOC(código). RAD/99

27 ENTITY*SWFUNC ASSEMBLE(int código,SN_NODE*apuntador);Funciones en Ambiente C Escritas por el usuario ASSEMBLE: Se utiliza para realizar una selección de colas en un nodo SELECT, según una regla particular. ENTITY*SWFUNC ASSEMBLE(int código,SN_NODE*apuntador); código: Valor entero para escoger la regla de selección de colas asociada al nodo SELECT que está haciendo la llamada a la función. apuntador: Apuntador del nodo SELECT que será liberado. Valor de retorno: Apuntador de la entidad que será liberada del nodo SELECT. Nota: En el ambiente AweSim se usa USERASSEMBLE(código). RAD/99

28 Valor de retorno: No retorna ningún valor.Funciones en Ambiente C Escritas por el usuario BATCHSAVE: Se utiliza para salvar atributos de entidades que se acumulan en un nodo BATCH, según una regla particular. void SWFUNC BATCHSAVE(int código, ENTITY*lote, ENTITY*llegada); código: Valor entero para escoger la regla de selección de lotes asociada al nodo BATCH que está haciendo la llamada a la función. lote: Apuntador de la entidad lote que se está formando. llegada: Apuntador de la entidad que llega al lote Valor de retorno: No retorna ningún valor. Nota: En el ambiente AweSim se usa USER(código) en un nodo BATCH. RAD/99

29 void SWFUNC EVENT(int código, ENTITY*entidad);Funciones en Ambiente C Escritas por el usuario EVENT: Se utiliza para programar acciones particulares en un nodo EVENT. void SWFUNC EVENT(int código, ENTITY*entidad); código: Valor entero para escoger el caso apropiado para el evento que se desea ejecutar en esta llamada a la función. entidad: Apuntador de la entidad que provoca la llamada a la función EVENT. Valor de retorno: No retorna ningún valor. Nota: En el ambiente AweSim se usa EVENT(código) en un nodo EVENT. RAD/99

30 BOOL SWFUNC INTLC(int corrida);Funciones en Ambiente C Escritas por el usuario INTLC: Se utiliza para inicializar variables propias de C o también del ambiente AweSim y programar eventos iniciales. BOOL SWFUNC INTLC(int corrida); corrida: Número de la corrida que se va a iniciar. Valor de retorno: Retorna TRUE si se va a realizar la corrida y FALSE en caso contrario. RAD/99

31 UINT SWFUNC NQS(int código, ENTITY*entidad, SN_NODE*nodo);Funciones en Ambiente C Escritas por el usuario NQS: Se utiliza para seleccionar, según una regla particular, el nodo QUEUE a atender desde un nodo SELECT. UINT SWFUNC NQS(int código, ENTITY*entidad, SN_NODE*nodo); código: Valor entero para escoger el caso apropiado para la regla de selección de colas asociada al nodo SELECT. entidad: Apuntador de la entidad que provoca la llamada a la función NQS. nodo: Apuntador del nodo SELECT asociado. Valor de retorno: Número del archivo del nodo QUEUE seleccionado o 0 si no se seleccionó ninguno. Nota: En el ambiente AweSim se usa NQS(código) en un nodo SELECT. RAD/99

32 UINT SWFUNC NRS(int código, ENTITY*entidad, int grupo, int unidades);Funciones en Ambiente C Escritas por el usuario NRS: Se utiliza para seleccionar, según una regla particular, el recurso que formará parte de un grupo en el bloque GROUP. UINT SWFUNC NRS(int código, ENTITY*entidad, int grupo, int unidades); código: Valor entero para escoger el caso apropiado para la regla de selección de recursos para un grupo asociada al bloque GROUP. entidad: Apuntador de la entidad que provoca la llamada a la función NRS. grupo: Número del grupo para el cual se asignarán los recursos. unidades: Número de unidades especificadas en el nodo AWAIT. Valor de retorno: Número del recurso seleccionado o 0 si no se seleccionó ninguno. Nota: En el ambiente AweSim se usa NRS(código) en un bloque GROUP. RAD/99

33 UINT SWFUNC NSS(int código, ENTITY*entidad, SN_NODE*nodo);Funciones en Ambiente C Escritas por el usuario NSS: Se utiliza para seleccionar, según una regla particular, la actividad de servicio que sigue a un nodo SELECT. UINT SWFUNC NSS(int código, ENTITY*entidad, SN_NODE*nodo); código: Valor entero para escoger el caso apropiado para la regla de selección de servidores asociada al nodo SELECT. entidad: Apuntador de la entidad que provoca la llamada a la función NSS. nodo: Apuntador del nodo SELECT asociado. Valor de retorno: Número de la actividad de servicio seleccionada o 0 si no se seleccionó ninguna. Nota: En el ambiente AweSim se usa NSS(código) en un nodo SELECT. RAD/99

34 Funciones en Ambiente CEscritas por el usuario ORDER: Se utiliza para ordenar un archivo que no pertenece a una red SLAM cuando la regla no es ni FIFO ni LIFO. UINT SWFUNC ORDER(int código,void argumento, ENTITY*entidad, ENTITY*nueva); código: Valor entero para escoger el caso apropiado para la regla de ordenamiento de entiaddes definida en la función su_filnew. argumento: Argumento de la regla de ordenamiento especificada por la función su_filnew entidad: Apuntador de la entidad que existe actualmente en el archivo. nueva: Apuntador de la entidad que será sumada en el archivo. Valor de retorno: Ubicación de la nueva entidad respecto a la entidad de referencia. RAD/99

35 BOOL SWFUNC OTPUT(int corrida);Funciones en Ambiente C Escritas por el usuario OTPUT: Se utiliza para escribir un reporte en C al final de la corrida actual de la simulación. BOOL SWFUNC OTPUT(int corrida); corrida: Número de la corrida que finaliza. Valor de retorno: Retorna TRUE si se va a realizar la siguiente corrida y FALSE en caso contrario. RAD/99

36 void SWFUNC STATE(void);Funciones en Ambiente C Escritas por el usuario STATE: Se utiliza para escribir las ecuaciones diferenciales o en diferencias que rigen el comportamiento del sistema cuando se incluyen variables continuas en el modelo. void SWFUNC STATE(void); No requiere de argumento ni retorna valor alguno. RAD/99

37 BOOL SWFUNC UERR(int código);Funciones en Ambiente C Escritas por el usuario UERR: Se utiliza para escribir un reporte con mensajes particulares cuando ocurre un error en la ejecución de la simulación; Es llamada por la función ERROR. BOOL SWFUNC UERR(int código); código: Número del tipo de error que se cometió. Valor de retorno: Retorna TRUE si se va a parar la simulación y FALSE en caso contrario. RAD/99

38 BOOL SWFUNC UMONT(int evento, ENTITY* entidad);Funciones en Ambiente C Escritas por el usuario UMONT: Se utiliza para escribir un reporte particular del seguimiento de entidades sólo cuando se está utilizando la opción TRACE de la instrucción MONTR. BOOL SWFUNC UMONT(int evento, ENTITY* entidad); evento: Número del tipo de evento que ocurrió. entidad: Apuntador de la entidad que provoca la llamada a la función UMONT Valor de retorno: Retorna TRUE si se va a monitorear el evento y FALSE en caso contrario. RAD/99

39 double SWFUNC USERF(int código, ENTITY* entidad);Funciones en Ambiente C Escritas por el usuario USERF: Se utiliza para escribir una función particular para ser ejecutada en el ambiente de una red SLAM. double SWFUNC USERF(int código, ENTITY* entidad); código: Número del tipo de caso a ejecutar de la función USERF. entidad: Apuntador de la entidad que provoca la llamada a la función USERF Valor de retorno: Retorna el valor asignado por la función USERF según el número código. Nota: En el ambiente AweSim se usa USERF(código). RAD/99

40 Funciones en Ambiente CPara ser utilizadas por el usuario VARIABLES ALEATORIAS. ESTADÍSTICA DE LAS VARIABLES SLAM. MANIPULACIÓN DE ARCHIVOS DE ESPERA. ESTADO ACTUAL DE LA RED SLAM. ESTADO ACTUAL DE LA SIMULACIÓN. REPORTES DE SALIDA. ATRIBUTOS AUXILIARES. VALORES EN LAS TABLAS DE DATOS. ESTADO ACTUAL DE LAS ENTIDADES. ASIGNACIÓN DE MEMORIA. RAD/99

41 Funciones en Ambiente CPara ser utilizadas por el usuario VARIABLES ALEATORIAS. (I) double BETA(double dtheta,double dphi, int generador); double DPROB(double*probacum,double*valor, int número, int generador); double DRAND( int generador); double ERLNG(double dmedia,double iXK, int generador); double EXPON(double dmedia, int generador); double GAMA(double dbeta,double dalpha, int generador); long INTRN( int generador); long NPSSN(double dmedia, int generador); RAD/99

42 Funciones en Ambiente CPara ser utilizadas por el usuario VARIABLES ALEATORIAS. (II) double RLOGN(double dmedia,double desviacion, int generador); double RNORM(double dmedia,double desviacion, int generador); double TRIAG(double dminimo,double dmoda, double dmaximo, int generador); double UNFRM(double dminimo,double dmaximo, int generador); double WEIBL(double dbeta,double dalpha, int generador); BOOL su_setseed( int generador, long semilla); BOOL su_streams( int generador); double XRN( int generador); RAD/99

43 Estadística de las actividadesFunciones en Ambiente C Para ser utilizadas por el usuario ESTADÍSTICA DE LAS VARIABLES SLAM. (I) Estadística de las actividades double AAAVG( int número_de_la_actividad); double AAMAX(int número_de_la_actividad); double AASTD(int número_de_la_actividad); double AATLC(int número_de_la_actividad); RAD/99

44 Estadística de los nodos COLCTFunciones en Ambiente C Para ser utilizadas por el usuario ESTADÍSTICA DE LAS VARIABLES SLAM. (II) Estadística de los nodos COLCT double CCAVG( int número_del_nodo_COLCT); double CCMAX( int número_del_nodo_COLCT); double CCMIN(int número_del_nodo_COLCT); double CCNUM(int número_del_nodo_COLCT); double CCSTD(int número_del_nodo_COLCT); BOOL COLCT(double valor, int número_del_nodo_COLCT); BOOL su_colnew(int número_del_nodo_COLCT, char*nombre, int celdas, double minimo, double ancho); RAD/99

45 Estadística de los archivos de espera dentro de una red SLAMFunciones en Ambiente C Para ser utilizadas por el usuario ESTADÍSTICA DE LAS VARIABLES SLAM. (III) Estadística de los archivos de espera dentro de una red SLAM double FFAVG( int número_del_archivo_de_espera); double FFAWT( int número_del_ archivo_de_espera); double FFMAX(int número_del_ archivo_de_espera); double FFPRD(int número_del_ archivo_de_espera); double FFSTD(int número_del_ archivo_de_espera); double FFTLC( int número_del_ archivo_de_espera); RAD/99

46 Estadística de los archivos de espera fuera de una red SLAMFunciones en Ambiente C Para ser utilizadas por el usuario ESTADÍSTICA DE LAS VARIABLES SLAM. (IV) Estadística de los archivos de espera fuera de una red SLAM double su_filavg( SIM_FILE*número_del_archivo_de_espera); double su_filawt(SIM_FILE* número_del_ archivo_de_espera); double su_filmax( SIM_FILE* número_del_ archivo_de_espera); double su_filprd(SIM_FILE* número_del_ archivo_de_espera); double su_filstd(SIM_FILE* número_del_ archivo_de_espera); double su_filtlc(SIM_FILE* número_del_ archivo_de_espera); RAD/99

47 Estadística de las compuertas, recursos y grupos de recursosFunciones en Ambiente C Para ser utilizadas por el usuario ESTADÍSTICA DE LAS VARIABLES SLAM. (V) Estadística de las compuertas, recursos y grupos de recursos double GGOPN( int número_de_la_compuerta); double GGTLC(int número_de_la_compuerta); double GRPAVA(int número_del_grupo_de_recursos); double GRPAVG(int número_del_grupo_de_recursos); double GRPMAX(int número_del_grupo_de_recursos); double GRPPRD(int número_del_grupo_de_recursos); double GRPSTD(int número_del_grupo_de_recursos); RAD/99

48 Estadística de las compuertas, recursos y grupos de recursosFunciones en Ambiente C Para ser utilizadas por el usuario ESTADÍSTICA DE LAS VARIABLES SLAM. (VI) Estadística de las compuertas, recursos y grupos de recursos double GRPTLC(int número_del_grupo_de_recursos); double RRAVA(int número_del_recurso); double RRAVG(int número_del_recurso); double RRMAX(int número_del_recurso); double RRPRD(int número_del_recurso); double RRSTD(int número_del_recurso); double RRTLC(int número_del_recurso); RAD/99

49 Estadística de las variables persistentes en el tiempoFunciones en Ambiente C Para ser utilizadas por el usuario ESTADÍSTICA DE LAS VARIABLES SLAM. (VII) Estadística de las variables persistentes en el tiempo double TTAVG(int número_de_la_variable); double TTMAX(int número_ de_la_variable); double TTMIN(int número_ de_la_variable); double TTPRD(int número_ de_la_variable); double TTSTD(int número_ de_la_variable); double TTTLC(int número_ de_la_variable); RAD/99

50 Archivos definidos dentro de una red SLAMFunciones en Ambiente C Para ser utilizadas por el usuario MANIPULACIÓN DE ARCHIVOS DE ESPERA. (I) Archivos definidos dentro de una red SLAM ENTRY*FILEM(int número_del_archivo, ENTITY*entidad); ENTRY*LOCAT(int número_del_archivo, long ubicación); ENTITY*RMOVE(int número_del_archivo, long ubicación); ENTRY*MMFE(int número_del_archivo); ENTRY*MMLE(int número_del_archivo); long NNQ(int número_del_archivo); ENTRY*NPRED(int número_del_archivo, ENTRY*posición_actual); ENTRY*NSUCR(int número_del_archivo, ENTRY*posición_actual); ENTRY*SCHDL(int número_del_evento, ENTITY*entidad, double intervalo); SIM_FILE*su_fnfile(int número_del_archivo); ENTITY*su_sfnentity(ENTRY*posición_actual); RAD/99

51 Archivos definidos fuera de una red SLAMFunciones en Ambiente C Para ser utilizadas por el usuario MANIPULACIÓN DE ARCHIVOS DE ESPERA. (II) Archivos definidos fuera de una red SLAM SIM_FILE*su_filnew(int número_del_archivo, char*nombre, BOOL status, int tipo, int max, int,código_de_orden, void*argumento_de_orden, int, código_para_empates, void*argumento_para_empates); int su_orderascattrib(ENTITY*entidad_actual, ENTITY*entidad_nueva,int índice); int su_ orderdesattrib(ENTITY*entidad_actual, ENTITY*entidad_nueva,int índice); int su_ orderasclttrib(ENTITY*entidad_actual, ENTITY*entidad_nueva,int índice); int su_ orderdeslttrib(ENTITY*entidad_actual, ENTITY*entidad_nueva,int índice); int su_ orderascsttrib(ENTITY*entidad_actual, ENTITY*entidad_nueva,int índice); int su_ orderdessttrib(ENTITY*entidad_actual, ENTITY*entidad_nueva,int índice); RAD/99

52 Archivos definidos fuera de una red SLAMFunciones en Ambiente C Para ser utilizadas por el usuario MANIPULACIÓN DE ARCHIVOS DE ESPERA. (III) Archivos definidos fuera de una red SLAM SIM_FILE*su_filreorder( SIM_FILE*posición_en_la_lista, int tipo, int max, int,código_de_orden, void*argumento_de_orden, int, código_para_empates, void*argumento_para_empates); int su_fildestroy( SIM_FILE*posición_en_la_lista); ENTRY*su_filfind(SIM_FILE*posición_del_archivo_en_la_lista, ENTRY*posición_de_inicio, SF_FILTER comparación, void filtro); BOOL su_filterattrib(SU_FINDARG*argumento); BOOL su_filterentity(long número_de_la_entidad); BOOL su_filterEQentity(ENTITY*apuntador_buscado); BOOL su_filterNEentity(ENTITY*apuntador_buscado); BOOL su_filterevent(int código); RAD/99

53 Archivos definidos fuera de una red SLAMFunciones en Ambiente C Para ser utilizadas por el usuario MANIPULACIÓN DE ARCHIVOS DE ESPERA. (IV) Archivos definidos fuera de una red SLAM ENTRY*su_filinsert( SIM_FILE*posición_del_archivo, ENTITY * apuntador_de_la_entidad); ENTITY su_filentremove( SIM_FILE*posición_en_la_lista, long rango); BOOL su_filremove(SIM_FILE*posición_del_archivo_en_la_lista, ENTRY*posición_a_eliminar); ENTRY* su_filfirst(SIM_FILE*posición_del_archivo_en_la_lista); ENTRY* su_fillast(SIM_FILE*posición_del_archivo_en_la_lista); long su_filsize(SIM_FILE*posición_del_archivo_en_la_lista); ENTRY* su_filprev(SIM_FILE*posición_del_archivo_en_la_lista, ENTRY* posición_actual); ENTRY* su_filnext(SIM_FILE*posición_del_archivo_en_la_lista, ENTRY* posición_actual); RAD/99

54 Estado de recursos y grupos de recursosFunciones en Ambiente C Para ser utilizadas por el usuario ESTADO ACTUAL DE LA RED SLAM. (I) Estado de recursos y grupos de recursos BOOL ALTER( int número_del_recurso, int unidades); BOOL FREE( int número_del_recurso, int unidades); int NGUSE(int número_del_grupo); int NNGRP(int número_del_grupo); int NNRSC(int número_del_recurso); int NRUSE(int número_del_recurso); BOOL SEIZE( int número_del_recurso, int unidades); int su_grpnumres( int número_del_grupo); int su_grpres( int número_del_grupo, int enésimo_recurso_de_la_lista); int su_resnumfiles(int número_del_recurso); SIM_FILE*su_resfile(int número_del_recurso, int enésimo_archivo_de_la_lista); SIM_FILE*su_resinterruptfile(int número_del_recurso); RAD/99

55 Funciones en Ambiente CPara ser utilizadas por el usuario ESTADO ACTUAL DE LA RED SLAM. (II) Estado de compuertas BOOL CLOSX( int número_de_la_compuerta); BOOL NNGAT( int número_de_la_compuerta); BOOL OPEN(int número_de_la_compuerta); int su_gatnumfiles(int número_de_la_compuerta); SIM_FILE* su_gatfile(int número_de_la_compuerta, int posición); RAD/99

56 Estado de actividades regulares y de servicioFunciones en Ambiente C Para ser utilizadas por el usuario ESTADO ACTUAL DE LA RED SLAM. (III) Estado de actividades regulares y de servicio int NNACT( int número_de_la_actividad); int NNBLK( int número_de_la_actividad, int número_del_archivo); int NNCNT( int número_de_la_actividad); BOOL STOPA(int código); ENTITY*su_actentity(SN_ACT*apuntador_de_la_actividad, int posición_de_la_entidad); SN_ACT*su_actfind(int número_de_la_actividad); SN_NODE*su_actnode(SN_ACT*apuntador_de_la_actividad); int su_actnumber(SN_ACT*apuntador_de_la_actividad); int su_actserver(SN_ACT*apuntador_de_la_actividad); RAD/99

57 Funciones en Ambiente CPara ser utilizadas por el usuario ESTADO ACTUAL DE LA RED SLAM. (IV) Estado de nodos BOOL ARRIVE( char*nombre_del_nodo, ENTITY* apuntador_de_la_entidad); BOOL ENTER( int código, ENTITY* apuntador_de_la_entidad); SN_NODE*su_entnode(ENTITY* apuntador_de_la_entidad); SN_NODE*su_nodefind(char*nombre_del_nodo); int su_nodenumfile(SN_NODE* nodo); SIM_FILE*su_nodefile(SN_NODE* nodo, int apuntador_del_archivo); char*su_nodelabel(SN_NODE* nodo, int apuntador_del_archivo); RAD/99

58 Funciones en Ambiente CPara ser utilizadas por el usuario ESTADO ACTUAL DE LA RED SLAM. (V) Estado de nodos SN_NODE*su_nodenext(SN_NODE* nodo); int su_nodenumact(SN_NODE* nodo); SN_ACT*su_nodeact(SN_NODE* nodo, int apuntador_de_la_actividad); int su_nodetype(SN_NODE* nodo); int su_selnumq(SN_NODE* nodo); SN_NODE*su_selqueue(SN_NODE* nodo, int apuntador_del_nodo_QUEUE); RAD/99

59 Funciones en Ambiente CPara ser utilizadas por el usuario ESTADO ACTUAL DE LA SIMULACIÓN. void CLEAR(void); void su_error(int código, char*mensaje); void su_gdlay(int primer_valor, int último_valor, double entrada_al_retardo, double valor_del_retardo); int SSEVT(int código_del_evento); void su_warn(int código, char*mensaje); RAD/99

60 Funciones en Ambiente CPara ser utilizadas por el usuario REPORTES DE SALIDA. (I) BOOL GPLOT( int número_de_la_actividad); BOOL PRNTA( int número_de_la_actividad); BOOL PRNTB(int código); BOOL PRNTC(int código); BOOL PRNTF(int número_del_archivo); BOOL su_outfilecontent( SIM_FILE* apuntador_del_archivo_de_salida, FILE* apuntador_del_archivo_de_escritura); BOOL PRNTG(int número_de_la_compuerta); BOOL PRNTH(int código); BOOL PRNTO(int código); BOOL PRNTR(int código); RAD/99

61 Funciones en Ambiente CPara ser utilizadas por el usuario REPORTES DE SALIDA. (II) BOOL PRNTS( void); BOOL PRNTT( int código); BOOL SUMRY(void); void SU_OUT(BOOL pantalla, BOOL reporte_intermedio, char*formato); FILE*su_iogetreadfile(char*nombre); FILE*su_iogetwritefile(char*nombre); void su_iosetfile (char*nombre, FILE*apuntador_del_archivo, BOOL lectura); void su_ioclosefile (char*nombre); BOOL TRACE(void); BOOL UNTRA(void); RAD/99

62 Funciones en Ambiente CPara ser utilizadas por el usuario ATRIBUTOS AUXILIARES. BOOL su_auxset(ENTITY*apuntador_de_la_entidad, void*apuntador_auxiliar, int longitud); void*su_auxget(ENTITY*apuntador_de_la_entidad); RAD/99

63 Funciones en Ambiente CPara ser utilizadas por el usuario VALORES EN LAS TABLAS DE DATOS. double GETARY( int número_de_la_fila, int número_de_la_columna); double GGTBL( int número_de_muestras, double*arreglo_X, double*arreglo_Y, double valor_en_X); double GTABL( int número_de_muestras, double*arreglo_Y, double valor_X, double mínimo, double máximo, double incremento); BOOL PUTARY( int número_de_la_fila, int número_de_la_columna, double valor); BOOL SETARY( int número_de_la_fila, double*arreglo_de_valores, int número_de_columnas); RAD/99

64 Funciones en Ambiente CPara ser utilizadas por el usuario ESTADO ACTUAL DE LAS ENTIDADES. (I) char*NNLBL( ENTITY* apuntador_de_la_entidad); int NNVNT( ENTITY* apuntador_de_la_entidad); int NNUMB( ENTITY* apuntador_de_la_entidad); ENTITY*su_entnew(int tipo, double*atributos_reales, long* atributos_enteros, char*atributos_alfabéticos); void su_entterminate(ENTITY* apuntador_de_la_entidad); ENTITY* su_entclone(ENTITY* apuntador_de_la_entidad, int tipo); ENTITY* su_entcurrent(void); int su_entnumber(ENTITY* apuntador_de_la_entidad); RAD/99

65 Funciones en Ambiente CPara ser utilizadas por el usuario ESTADO ACTUAL DE LAS ENTIDADES. (II) int su_enttype(ENTITY* apuntador_de_la_entidad); STIME su_enttime(ENTITY* apuntador_de_la_entidad); int su_entwhere(ENTITY* apuntador_de_la_entidad); double*su_entrealattrib(ENTITY* apuntador_de_la_entidad); long*su_entlongattrib(ENTITY* apuntador_de_la_entidad); char*su_entstringattrib(ENTITY* apuntador_de_la_entidad); void su_entsetattrib(ENTITY* apuntador_de_la_entidad, double*atributos_reales, long* atributos_enteros, char*atributos_alfabéticos); void su_entsettype(ENTITY* apuntador_de_la_entidad, int tipo); RAD/99

66 Funciones en Ambiente CPara ser utilizadas por el usuario ASIGNACIÓN DE MEMORIA. void*su_memalloc(int tamaño); void su_memfree(void*apuntador); void su_memcalloc(int número, int tamaño); void*su_memrealloc(void*apuntador, int tamaño); char*su_memstrdup(char*tamaño); RAD/99