#include "csim.h" #include #define IATM 60 /*mean of inter-arrival time distribution */ #define SVTM1 45 #define SVTM2 80 #define K 2 FACILITY facs[K]; /*pointer for facility */ QTABLE qtbl; /*pointer for queue length */ void gencust(); void cust(); void sim() /*1st process - named sim */ { int i; create("sim"); /*required create statement*/ facility_set(facs, "facs", K); /*initialize facility*/ qtbl = qtable("num in sys"); /*initialize qtable*/ qtable_confidence(qtbl); /*add confidence interval*/ qtable_run_length(qtbl, 0.05, 0.95, 1000.0); /*set the run length*/ gencust(); wait(converged); /*wait until all done*/ report(); /*print report*/ } void gencust() /*process to generate customer*/ { create("gencust"); while(1) { hold(expntl(IATM)); /*hold interarrival*/ cust(); /*initiate process cust*/ } } void cust() /*process customer*/ { double r2; create("cust"); /*required create statement*/ note_entry(qtbl); /*note arrival */ use(facs[0], exponential(SVTM1)); /* use node 1*/ r2=uniform(0.0,1.0); if (r2<0.5) use(facs[1], exponential(SVTM2)); /* use node 2*/ note_exit(qtbl); /*note departure */ }